Gantt Task Editor Dialog
Module Extensions
Section titled “Module Extensions”HTMLRevoGridElement (Extended from global)
Section titled “HTMLRevoGridElement (Extended from global)”interface HTMLRevoGridElement { ganttTaskEditorDialog?: GanttTaskEditorDialogOptions; 'gantt-task-editor-dialog'?: GanttTaskEditorDialogOptions}Plugin API
Section titled “Plugin API”DependencyEditor
Section titled “DependencyEditor”export function DependencyEditor(;DependencyEditorProps
Section titled “DependencyEditorProps”interface DependencyEditorProps { readonly direction: 'predecessors' | 'successors'; readonly task: TaskEntity | null; readonly tasks: readonly TaskEntity[]; readonly drafts: readonly GanttTaskEditorDialogDependencyDraft[]; readonly localeText: GanttTaskEditorDialogLocaleText; readonly onChange: (drafts: readonly GanttTaskEditorDialogDependencyDraft[]) => void}FieldControl
Section titled “FieldControl”export function FieldControl(;ResourceSelection
Section titled “ResourceSelection”interface ResourceSelection { readonly resources: readonly ResourceEntity[]; readonly selectedResourceIds: readonly ResourceId[]; readonly onChange: (resourceIds: readonly ResourceId[]) => void}FieldControlProps
Section titled “FieldControlProps”interface FieldControlProps { readonly field: TaskEditorFieldSchema; readonly values: TaskEditorFormValues; readonly localeText: GanttTaskEditorDialogLocaleText; readonly dateFormatProject?: GanttPluginConfig | null; readonly dateTimeEnabled?: boolean; readonly resourceSelection?: ResourceSelection; readonly onChange: (values: TaskEditorFormValues) => void; readonly onDateTimeToggle?: (enabled: boolean) => void}TaskEditorTabId
Section titled “TaskEditorTabId”export type TaskEditorTabId = 'details' | 'advanced' | 'predecessors' | 'successors' | 'assignments';DETAIL_FIELDS
Section titled “DETAIL_FIELDS”DETAIL_FIELDS: readonly TaskEditorFieldId[];ADVANCED_FIELDS
Section titled “ADVANCED_FIELDS”ADVANCED_FIELDS: readonly TaskEditorFieldId[];ASSIGNMENT_FIELDS
Section titled “ASSIGNMENT_FIELDS”ASSIGNMENT_FIELDS: readonly TaskEditorFieldId[];DEFAULT_FIELDS
Section titled “DEFAULT_FIELDS”DEFAULT_FIELDS: readonly TaskEditorFieldId[];TAB_LABELS
Section titled “TAB_LABELS”TAB_LABELS: { details: string; advanced: string; predecessors: string; successors: string; assignments: string;};DEPENDENCY_TYPE_OPTIONS
Section titled “DEPENDENCY_TYPE_OPTIONS”DEPENDENCY_TYPE_OPTIONS: readonly { readonly label: string; readonly value: DependencyType; }[];createTaskEditorDialogLocaleText
Section titled “createTaskEditorDialogLocaleText”export function createTaskEditorDialogLocaleText( localeText: GanttTaskEditorDialogLocaleTextOptions | undefined,): GanttTaskEditorDialogLocaleText;DEFAULT_TASK_EDITOR_DIALOG_LOCALE_TEXT
Section titled “DEFAULT_TASK_EDITOR_DIALOG_LOCALE_TEXT”DEFAULT_TASK_EDITOR_DIALOG_LOCALE_TEXT: { title: string; description: string; fallbackTaskTitle: string; closeLabel: string; closeButtonText: string; applyLabel: string; resetLabel: string; menuItemName: string; tabListAriaLabel: string; readOnlyLabel: string; noResourcesAvailable: string; noAssignedResources: string; assignedResourcesAriaLabel: string; projectDefaultOption: string; noConstraintOption: string; timeToggleLabel: string; switchOnLabel: string; switchOffLabel: string; manualSchedulingOnLabel: string; manualSchedulingOffLabel: string; dependencyTargetLabel: { predecessors: string; successors: string; }; dependencyEmptyLabel: { predecessors: string; successors: string; }; dependencySearch: { predecessors: { placeholder: string; ariaLabel: string; empty: string; }; successors: { placeholder: string; ariaLabel: string; empty: string; }; }; resourcesSearch: { placeholder: string; ariaLabel: string; empty: string; }; dependencyTypeLabel: string; dependencyLagDaysLabel: string; removeDependencyLabel: (targetLabel: string) => string; removeDependencyButton: string; addDependencyButton: { predecessors: string; successors: string; }; tabs: { details: string; advanced: string; predecessors: string; successors: string; assignments: string; }; dependencyTypes: { 'finish-to-start': string; 'start-to-start': string; 'finish-to-finish': string; 'start-to-finish': string; }; fields: Partial<Record<TaskEditorFieldId, string>>; fieldOptions: Partial<Record<TaskEditorFieldId, readonly TaskEditorFieldOption<string>[]>>; status: { ready: string; closed: string; changesSaved: string; noChangesToSave: string; readOnlyProject: string; fixValidationErrors: string; saveFailed: string; }; validation: { checkRequiredFields: string; couldNotSave: string; fieldError: (error: TaskEditorSubmitError) => string; resourceNotFound: (resourceId: string) => string; taskCannotDependOnItself: string; predecessorTaskNotFound: (taskId: string) => string; successorTaskNotFound: (taskId: string) => string; dependencyMustIncludeCurrentTask: string; duplicateDependencyLinks: string; };};GanttTaskEditorDialog
Section titled “GanttTaskEditorDialog”export function GanttTaskEditorDialog(;GanttTaskEditorDialogSubmitContext
Section titled “GanttTaskEditorDialogSubmitContext”interface GanttTaskEditorDialogSubmitContext { readonly grid: HTMLRevoGridElement; readonly task: TaskEntity; readonly values: TaskEditorFormValues; readonly result: TaskEditorSubmitSuccess; readonly assignmentResourceIds: readonly ResourceId[]; readonly assignments: readonly AssignmentEntity[]; readonly assignmentsChanged: boolean; readonly dependencyDrafts: readonly GanttTaskEditorDialogDependencyDraft[]; readonly dependencies: readonly DependencyEntity[]; readonly dependenciesChanged: boolean}GanttTaskEditorDialogResourcesOptions
Section titled “GanttTaskEditorDialogResourcesOptions”interface GanttTaskEditorDialogResourcesOptions { readonly editable?: boolean; readonly defaultAllocationUnits?: number; readonly defaultResponsibility?: string}GanttTaskEditorDialogDependencyDraft
Section titled “GanttTaskEditorDialogDependencyDraft”interface GanttTaskEditorDialogDependencyDraft { readonly id?: DependencyId; readonly predecessorTaskId: TaskId | ''; readonly successorTaskId: TaskId | ''; readonly type: DependencyType; readonly lagDays: number}GanttTaskEditorDialogSearchText
Section titled “GanttTaskEditorDialogSearchText”interface GanttTaskEditorDialogSearchText { readonly placeholder: string; readonly ariaLabel: string; readonly empty: string}GanttTaskEditorDialogStatusText
Section titled “GanttTaskEditorDialogStatusText”interface GanttTaskEditorDialogStatusText { readonly ready: string; readonly closed: string; readonly changesSaved: string; readonly noChangesToSave: string; readonly readOnlyProject: string; readonly fixValidationErrors: string; readonly saveFailed: string}GanttTaskEditorDialogValidationText
Section titled “GanttTaskEditorDialogValidationText”interface GanttTaskEditorDialogValidationText { readonly checkRequiredFields: string; readonly couldNotSave: string; readonly fieldError: (error: TaskEditorSubmitError, fieldLabel: string) => string; readonly resourceNotFound: (resourceId: ResourceId) => string; readonly taskCannotDependOnItself: string; readonly predecessorTaskNotFound: (taskId: TaskId) => string; readonly successorTaskNotFound: (taskId: TaskId) => string; readonly dependencyMustIncludeCurrentTask: string; readonly duplicateDependencyLinks: string}GanttTaskEditorDialogLocaleText
Section titled “GanttTaskEditorDialogLocaleText”interface GanttTaskEditorDialogLocaleText { readonly title: string; readonly description: string; readonly fallbackTaskTitle: string; readonly closeLabel: string; readonly closeButtonText: string; readonly applyLabel: string; readonly resetLabel: string; readonly menuItemName: string; readonly tabListAriaLabel: string; readonly readOnlyLabel: string; readonly noResourcesAvailable: string; readonly noAssignedResources: string; readonly assignedResourcesAriaLabel: string; readonly projectDefaultOption: string; readonly noConstraintOption: string; readonly timeToggleLabel: string; readonly switchOnLabel: string; readonly switchOffLabel: string; readonly manualSchedulingOnLabel: string; readonly manualSchedulingOffLabel: string; readonly dependencyTargetLabel: { readonly predecessors: string; readonly successors: string; }; readonly dependencyEmptyLabel: { readonly predecessors: string; readonly successors: string; }; readonly dependencySearch: { readonly predecessors: GanttTaskEditorDialogSearchText; readonly successors: GanttTaskEditorDialogSearchText; }; readonly resourcesSearch: GanttTaskEditorDialogSearchText; readonly dependencyTypeLabel: string; readonly dependencyLagDaysLabel: string; readonly removeDependencyLabel: (targetLabel: string) => string; readonly removeDependencyButton: string; readonly addDependencyButton: { readonly predecessors: string; readonly successors: string; }; readonly tabs: Record<TaskEditorTabId, string>; readonly dependencyTypes: Record<DependencyType, string>; readonly fields: Partial<Record<TaskEditorFieldId, string>>; readonly fieldOptions: Partial<Record<TaskEditorFieldId, readonly TaskEditorFieldOption[]>>; readonly status: GanttTaskEditorDialogStatusText; readonly validation: GanttTaskEditorDialogValidationText}GanttTaskEditorDialogLocaleTextOptions (Extended from gantt-task-editor-dialog.types.ts)
Section titled “GanttTaskEditorDialogLocaleTextOptions (Extended from gantt-task-editor-dialog.types.ts)”export type GanttTaskEditorDialogLocaleTextOptions = Partial<Omit< GanttTaskEditorDialogLocaleText, | 'dependencyTargetLabel' | 'dependencyEmptyLabel' | 'dependencySearch' | 'resourcesSearch' | 'addDependencyButton' | 'tabs' | 'dependencyTypes' | 'fields' | 'fieldOptions' | 'status' | 'validation'>> & { readonly dependencyTargetLabel?: Partial<GanttTaskEditorDialogLocaleText['dependencyTargetLabel']>; readonly dependencyEmptyLabel?: Partial<GanttTaskEditorDialogLocaleText['dependencyEmptyLabel']>; readonly dependencySearch?: { readonly predecessors?: Partial<GanttTaskEditorDialogSearchText>; readonly successors?: Partial<GanttTaskEditorDialogSearchText>; }; readonly resourcesSearch?: Partial<GanttTaskEditorDialogSearchText>; readonly addDependencyButton?: Partial<GanttTaskEditorDialogLocaleText['addDependencyButton']>; readonly tabs?: Partial<Record<TaskEditorTabId, string>>; readonly dependencyTypes?: Partial<Record<DependencyType, string>>; readonly fields?: Partial<Record<TaskEditorFieldId, string>>; readonly fieldOptions?: Partial<Record<TaskEditorFieldId, readonly TaskEditorFieldOption[]>>; readonly status?: Partial<GanttTaskEditorDialogStatusText>; readonly validation?: Partial<GanttTaskEditorDialogValidationText>;};GanttTaskEditorDialogOptions
Section titled “GanttTaskEditorDialogOptions”interface GanttTaskEditorDialogOptions { readonly fields?: readonly TaskEditorFieldId[]; readonly localeText?: GanttTaskEditorDialogLocaleTextOptions; readonly menuItemName?: string; readonly title?: string; readonly description?: string; readonly applyLabel?: string; readonly resetLabel?: string; readonly closeLabel?: string; /** * Controls the packaged row context-menu entry for opening the task editor. * Defaults to the Gantt context-menu setting. Set to `false` to remove only * the editor menu item, or `true` to keep it when `gantt.contextMenu` is * disabled. */ readonly contextMenu?: boolean; /** * Opens the dialog immediately after the Gantt plugin creates a task. Defaults * to `true`. Set to `false` to keep task creation silent. This * covers task creation from the toolbar, row context menu, and custom * dispatches of the task-create event. */ readonly openOnCreate?: boolean; /** * Controls the built-in resource assignment picker. Set to `false` to keep * the resources field read-only. */ readonly resources?: false | GanttTaskEditorDialogResourcesOptions; /** * Shows the normalized TaskUpdate JSON preview. Intended for documentation, * diagnostics, and custom developer tooling; hidden by default for end-user UI. */ readonly preview?: boolean; readonly readOnly?: boolean; readonly onSubmit?: (context: GanttTaskEditorDialogSubmitContext) => boolean | void | Promise<boolean | void>; readonly getTask?: (taskId: TaskId, grid: HTMLRevoGridElement) => TaskEntity | null | undefined}GanttTaskEditorDialogState
Section titled “GanttTaskEditorDialogState”interface GanttTaskEditorDialogState { readonly taskId: TaskId | null; readonly task: TaskEntity | null; readonly values: TaskEditorFormValues; readonly status: string}formatValue
Section titled “formatValue”export function formatValue(value: unknown): string;formatDateInputValue
Section titled “formatDateInputValue”export function formatDateInputValue(value: unknown): string;formatDateTimeInputValue
Section titled “formatDateTimeInputValue”export function formatDateTimeInputValue(value: unknown): string;isEditableInputField
Section titled “isEditableInputField”export function isEditableInputField(field: TaskEditorFieldSchema): boolean;cloneValues
Section titled “cloneValues”export function cloneValues(values: TaskEditorFormValues): TaskEditorFormValues;hasActiveConstraint
Section titled “hasActiveConstraint”export function hasActiveConstraint(values: TaskEditorFormValues): boolean;createNormalizedDialogValues
Section titled “createNormalizedDialogValues”export function createNormalizedDialogValues(values: TaskEditorFormValues): TaskEditorFormValues;hasTimeGranularity
Section titled “hasTimeGranularity”export function hasTimeGranularity(value: unknown): boolean;createUtcDateTimeValue
Section titled “createUtcDateTimeValue”export function createUtcDateTimeValue(value: string): string;createInitialDateTimeFieldIds
Section titled “createInitialDateTimeFieldIds”export function createInitialDateTimeFieldIds( values: TaskEditorFormValues, fields: readonly TaskEditorFieldSchema[],): readonly TaskEditorFieldId[];isTaskEntity
Section titled “isTaskEntity”export function isTaskEntity(model: unknown): model is TaskEntity;getGridTasks
Section titled “getGridTasks”export function getGridTasks(grid: HTMLRevoGridElement): readonly TaskEntity[];createDependencyDrafts
Section titled “createDependencyDrafts”export function createDependencyDrafts( task: TaskEntity | null, dependencies: readonly DependencyEntity[],): readonly GanttTaskEditorDialogDependencyDraft[];areDependencyDraftsEqual
Section titled “areDependencyDraftsEqual”export function areDependencyDraftsEqual( left: readonly GanttTaskEditorDialogDependencyDraft[], right: readonly GanttTaskEditorDialogDependencyDraft[],): boolean;normalizeDependencyLagDaysInput
Section titled “normalizeDependencyLagDaysInput”export function normalizeDependencyLagDaysInput(value: unknown): number;getFieldsForTab
Section titled “getFieldsForTab”export function getFieldsForTab( tab: TaskEditorTabId, fields: readonly TaskEditorFieldSchema[],): readonly TaskEditorFieldSchema[];areResourceIdsEqual
Section titled “areResourceIdsEqual”export function areResourceIdsEqual(left: readonly ResourceId[], right: readonly ResourceId[]): boolean;createSelectedResourceIds
Section titled “createSelectedResourceIds”export function createSelectedResourceIds( task: TaskEntity | null, assignments: readonly AssignmentEntity[],): readonly ResourceId[];createErrors
Section titled “createErrors”export function createErrors( errors: readonly TaskEditorSubmitError[], fields: readonly TaskEditorFieldSchema[], localeText: GanttTaskEditorDialogLocaleText,): Map<string, string>;shouldShowStatusMessage
Section titled “shouldShowStatusMessage”export function shouldShowStatusMessage(status: string, statusText: GanttTaskEditorDialogStatusText): boolean;compareTextAscending
Section titled “compareTextAscending”export function compareTextAscending(left: string, right: string): number;includesSearchText
Section titled “includesSearchText”export function includesSearchText(value: string, searchText: string): boolean;getFieldLabel
Section titled “getFieldLabel”export function getFieldLabel( field: TaskEditorFieldSchema, localeText: GanttTaskEditorDialogLocaleText,): string;getSortedFieldOptions
Section titled “getSortedFieldOptions”export function getSortedFieldOptions( field: TaskEditorFieldSchema, localeText: GanttTaskEditorDialogLocaleText,): readonly;EMPTY_RESOURCES
Section titled “EMPTY_RESOURCES”EMPTY_RESOURCES: readonly ResourceEntity[];EMPTY_ASSIGNMENTS
Section titled “EMPTY_ASSIGNMENTS”EMPTY_ASSIGNMENTS: readonly AssignmentEntity[];EMPTY_DEPENDENCIES
Section titled “EMPTY_DEPENDENCIES”EMPTY_DEPENDENCIES: readonly DependencyEntity[];ganttTaskEditorDialogDependencies
Section titled “ganttTaskEditorDialogDependencies”Dependencies
Section titled “Dependencies”- Optional
GanttPlugin: Uses Gantt task metadata, resource assignments, and read-only state when present. - Auto-installed
ContextMenuPlugin: Adds the Edit task action to the row context menu.
ganttTaskEditorDialogDependencies: PluginDependency[];GanttTaskEditorDialogPlugin
Section titled “GanttTaskEditorDialogPlugin”class GanttTaskEditorDialogPlugin { openTask(taskId: TaskId | null): void;
closeTaskEditor(): void;
destroy(): void;}ResourcePicker
Section titled “ResourcePicker”export function ResourcePicker(;ResourcePickerProps
Section titled “ResourcePickerProps”interface ResourcePickerProps { readonly resources: readonly ResourceEntity[]; readonly selectedResourceIds: readonly ResourceId[]; readonly localeText: GanttTaskEditorDialogLocaleText; readonly onChange: (resourceIds: readonly ResourceId[]) => void}TaskEditorField
Section titled “TaskEditorField”export function TaskEditorField(;TaskEditorFieldProps
Section titled “TaskEditorFieldProps”interface TaskEditorFieldProps { readonly field: TaskEditorFieldSchema; readonly values: TaskEditorFormValues; readonly errors: ReadonlyMap<string, string>; readonly localeText: GanttTaskEditorDialogLocaleText; readonly dateFormatProject?: GanttPluginConfig | null; readonly dateTimeEnabled?: boolean; readonly resourceSelection?: ResourceSelection; readonly onChange: (values: TaskEditorFormValues) => void; readonly onDateTimeToggle?: (fieldId: TaskEditorFieldId, enabled: boolean) => void}TaskEditorTabs
Section titled “TaskEditorTabs”export function TaskEditorTabs(;TaskEditorTabsProps
Section titled “TaskEditorTabsProps”interface TaskEditorTabsProps { readonly activeTab: TaskEditorTabId; readonly tabs: readonly TaskEditorTabId[]; readonly localeText: GanttTaskEditorDialogLocaleText; readonly onChange: (tab: TaskEditorTabId) => void}