Gantt
Module Extensions
Section titled “Module Extensions”HTMLRevoGridElement (Extended from global)
Section titled “HTMLRevoGridElement (Extended from global)”Properties added to the grid element for Gantt configuration and data.
interface HTMLRevoGridElement { /** Top-level Gantt plugin configuration. */ gantt?: GanttPluginConfig; /** Dependency links between tasks. */ ganttDependencies?: readonly DependencyEntity[]; /** Working calendars (working days, holidays, hours per day). */ ganttCalendars?: readonly CalendarEntity[]; /** Available resources (people, equipment). */ ganttResources?: readonly ResourceEntity[]; /** Task–resource assignments. */ ganttAssignments?: readonly AssignmentEntity[]; /** Historical baseline snapshots for schedule comparison. */ ganttBaselines?: readonly BaselineSnapshot[]; /** Columns to hide from the task table. */ hideColumns?: readonly string[] | string;}HTMLRevoGridElementEventMap (Extended from global)
Section titled “HTMLRevoGridElementEventMap (Extended from global)”interface HTMLRevoGridElementEventMap { 'gantt-dependency-hover': GanttDependencyInteractionDetail; 'gantt-dependency-select': GanttDependencyInteractionDetail; 'gantt-task-create': GanttCreateTaskOptions | undefined; 'gantt-task-indent': GanttTaskHierarchyActionDetail | undefined; 'gantt-task-outdent': GanttTaskHierarchyActionDetail | undefined; 'gantt-zoom-in': undefined; 'gantt-zoom-out': undefined; 'gantt-zoom-set-level': GanttZoomSetLevelDetail; 'gantt-panel-resize': GanttPanelResizeEventDetail; 'gantt-before-task-change': GanttBeforeTaskChangeDetail; 'gantt-before-dependency-change': GanttBeforeDependencyChangeDetail; 'gantt-before-assignment-change': GanttBeforeAssignmentChangeDetail;}Plugin API
Section titled “Plugin API”GanttPlugin
Section titled “GanttPlugin”The GanttPlugin is an enterprise plugin for RevoGrid that adds a full-featured
Gantt chart timeline alongside the standard data grid.
Key Features:
- Interactive Timeline – Task bars, milestones, and summary rollups on a scrollable, zoomable time axis.
- Dependency Arrows – FS, SS, FF, SF links with drag-to-create.
- Critical Path – Automatic calculation and visual highlighting.
- Baseline Comparison – Overlay a saved baseline beneath task bars.
- Resource Assignments – Assign resources and display labels on task bars.
- Drag & Drop – Move, resize, and adjust progress directly on the timeline.
- Multi-Level Zoom – Smooth zooming from day to year.
- Task Hierarchy – Indent/outdent, expand/collapse, and auto WBS codes.
- Calendar-Aware Scheduling – Working days, holidays, and multiple calendars.
- Visual Decorations – Time-range bands, project line, non-working-day shading, task markers.
- Before-Change Events – Cancelable events for all mutations.
Usage:
- Assign
GanttPluginto the grid’spluginsarray. - Set project config via
grid.gantt. - Set task data via
grid.source. - Set dependencies, calendars, resources, assignments, and baselines via the corresponding
gantt*properties.
Example
Section titled “Example”import { GanttPlugin } from '@revolist/revogrid-enterprise';import type { GanttPluginConfig } from '@revolist/revogrid-enterprise';
const grid = document.createElement('revo-grid');grid.plugins = [GanttPlugin];grid.gantt = { id: 'my-project', name: 'My Project', version: '1', currency: 'USD', timeZone: 'UTC', primaryCalendarId: 'cal-1', updatedAt: '2026-01-01T00:00:00Z', zoomPreset: 'week',};grid.source = tasks;grid.ganttDependencies = dependencies;grid.ganttCalendars = calendars;Configuration Types
Section titled “Configuration Types”GanttPluginConfig
Section titled “GanttPluginConfig”Top-level configuration for the Gantt plugin.
interface GanttPluginConfig { /** Unique project identifier. */ readonly id: EntityId; /** Project display name. */ readonly name: string; /** Project data schema version. */ readonly version: string; /** Currency code (e.g. "USD"). */ readonly currency: string; /** IANA time zone (e.g. "America/New_York"). */ readonly timeZone: string; /** Default calendar for new tasks. */ readonly primaryCalendarId: CalendarId; /** ISO 8601 timestamp of last modification. */ readonly updatedAt: ISODateTimeString; /** Pre-defined zoom level. */ readonly zoomPreset?: TimelineZoomPreset; /** Advanced zoom configuration. */ readonly zoom?: TimelineZoomConfig; /** Scheduling engine options. */ readonly scheduling?: GanttSchedulingConfig; /** Enable inline task creation. */ readonly allowTaskCreate?: boolean; /** Restrict creatable dependency types. */ readonly allowedDependencyTypes?: readonly DependencyType[]; /** Filter the resource list. */ readonly resourceFilterIds?: readonly ResourceId[]; /** Visual overlay options. */ readonly visuals?: GanttVisualConfig;}GanttVisualConfig
Section titled “GanttVisualConfig”Controls visual overlays and decorations on the timeline.
interface GanttVisualConfig { /** Show baseline bars beneath task bars. */ readonly showBaseline?: boolean; /** Highlight tasks on the critical path. */ readonly showCriticalPath?: boolean; /** Display task names on timeline bars. */ readonly showTaskLabels?: boolean; /** Which baseline to display. */ readonly baselineId?: BaselineId; /** Vertical "today" / status-date line. */ readonly projectLineDate?: ISODateString; /** Highlighted date ranges on the background. */ readonly timeRanges?: readonly GanttTimeRange[]; /** Shade weekends and holidays. */ readonly shadeNonWorkingTime?: boolean; /** Hook to produce per-task markers. */ readonly taskMarkerHook?: GanttTaskMarkerHook;}GanttSchedulingConfig
Section titled “GanttSchedulingConfig”interface GanttSchedulingConfig { /** Exclude holidays from task duration calculations. */ readonly excludeHolidaysFromDuration?: boolean;}Domain Types
Section titled “Domain Types”TaskEntity
Section titled “TaskEntity”A single task (work item) in the project.
interface TaskEntity { readonly id: TaskId; readonly projectId: EntityId; readonly parentId: TaskId | null; readonly wbsCode: string; readonly name: string; readonly type: TaskType; // 'summary' | 'task' | 'milestone' readonly status: TaskStatus; // 'not-started' | 'in-progress' | 'done' | 'blocked' readonly startDate: ISODateString; readonly endDate: ISODateString; readonly durationDays: number; readonly manuallyScheduled?: boolean; readonly inactive?: boolean; readonly constraintType?: TaskConstraintType; readonly constraintDate?: ISODateString; readonly deadlineDate?: ISODateString; readonly progressPercent: number; readonly calendarId: CalendarId; readonly isCritical: boolean; readonly notes?: string; readonly tags: readonly string[];}DependencyEntity
Section titled “DependencyEntity”A directed link between two tasks.
interface DependencyEntity { readonly id: DependencyId; readonly predecessorTaskId: TaskId; readonly successorTaskId: TaskId; readonly type: DependencyType; // 'finish-to-start' | 'start-to-start' | 'finish-to-finish' | 'start-to-finish' readonly lagDays: number;}CalendarEntity
Section titled “CalendarEntity”Working schedule for tasks and resources.
interface CalendarEntity { readonly id: CalendarId; readonly name: string; readonly timeZone: string; readonly workingDays: readonly number[]; // ISO weekdays 1–7 readonly holidays: readonly ISODateString[]; readonly hoursPerDay: number;}ResourceEntity
Section titled “ResourceEntity”A person, team, or piece of equipment.
interface ResourceEntity { readonly id: ResourceId; readonly name: string; readonly role: string; readonly calendarId: CalendarId; readonly allocationCapacity: number; readonly hourlyCost: number;}AssignmentEntity
Section titled “AssignmentEntity”Links a resource to a task.
interface AssignmentEntity { readonly id: AssignmentId; readonly taskId: TaskId; readonly resourceId: ResourceId; readonly allocationUnits: number; readonly responsibility: string;}BaselineSnapshot
Section titled “BaselineSnapshot”Point-in-time snapshot for schedule comparison.
interface BaselineSnapshot { readonly id: BaselineId; readonly name: string; readonly capturedAt: ISODateTimeString; readonly tasks: readonly BaselineTaskSnapshot[];}
interface BaselineTaskSnapshot { readonly taskId: TaskId; readonly startDate: ISODateString; readonly endDate: ISODateString; readonly durationDays: number; readonly progressPercent: number;}Event Constants
Section titled “Event Constants”| Constant | Value | Detail Type |
|---|---|---|
GANTT_DEPENDENCY_HOVER_EVENT | 'gantt-dependency-hover' | GanttDependencyInteractionDetail |
GANTT_DEPENDENCY_SELECT_EVENT | 'gantt-dependency-select' | GanttDependencyInteractionDetail |
GANTT_TASK_CREATE_EVENT | 'gantt-task-create' | GanttCreateTaskOptions | undefined |
GANTT_TASK_INDENT_EVENT | 'gantt-task-indent' | GanttTaskHierarchyActionDetail | undefined |
GANTT_TASK_OUTDENT_EVENT | 'gantt-task-outdent' | GanttTaskHierarchyActionDetail | undefined |
GANTT_ZOOM_IN_EVENT | 'gantt-zoom-in' | undefined |
GANTT_ZOOM_OUT_EVENT | 'gantt-zoom-out' | undefined |
GANTT_ZOOM_SET_LEVEL_EVENT | 'gantt-zoom-set-level' | GanttZoomSetLevelDetail |
GANTT_PANEL_RESIZE_EVENT | 'gantt-panel-resize' | GanttPanelResizeEventDetail |
GANTT_BEFORE_TASK_CHANGE_EVENT | 'gantt-before-task-change' | GanttBeforeTaskChangeDetail |
GANTT_BEFORE_DEPENDENCY_CHANGE_EVENT | 'gantt-before-dependency-change' | GanttBeforeDependencyChangeDetail |
GANTT_BEFORE_ASSIGNMENT_CHANGE_EVENT | 'gantt-before-assignment-change' | GanttBeforeAssignmentChangeDetail |
Before-Mutation Event Details
Section titled “Before-Mutation Event Details”GanttBeforeTaskChangeDetail
Section titled “GanttBeforeTaskChangeDetail”interface GanttBeforeTaskChangeDetail { readonly action: 'move' | 'resize' | 'create' | 'edit' | 'progress' | 'indent' | 'outdent'; readonly taskId: TaskId; readonly changes: Partial<TaskEntity>; readonly previousValues: Partial<TaskEntity>;}GanttBeforeDependencyChangeDetail
Section titled “GanttBeforeDependencyChangeDetail”interface GanttBeforeDependencyChangeDetail { readonly action: 'create' | 'delete' | 'edit'; readonly dependencyId: DependencyId | null; readonly dependency: DependencyEntity; readonly previousDependency?: DependencyEntity;}GanttBeforeAssignmentChangeDetail
Section titled “GanttBeforeAssignmentChangeDetail”interface GanttBeforeAssignmentChangeDetail { readonly action: 'edit'; readonly taskId: TaskId; readonly assignments: readonly AssignmentEntity[]; readonly previousAssignments: readonly AssignmentEntity[];}Utility Functions
Section titled “Utility Functions”createDefaultTaskTableColumn
Section titled “createDefaultTaskTableColumn”Creates a pre-configured column definition for a standard task-table field.
function createDefaultTaskTableColumn(prop: string): ColumnRegular | null;createGanttColumn
Section titled “createGanttColumn”Creates the timeline column appended to the right side of the grid.
function createGanttColumn(scale: TimelineScale): ColumnRegular;