OGE logoOGE

Gantt

A project-plan Gantt built on a framework-free kernel: a virtualized treegrid task pane and a timeline chart share one scroll model, with summary brackets, milestone diamonds, baseline bars, FS/SS/FF/SF dependency arrows routed orthogonally, critical-path highlighting, forward auto-scheduling and calendar-true hour/day/week/month scales. Bars drag to move, resize and set progress — Escape cancels mid-gesture — link dots draw dependencies with cycle rejection, and every edit is one snapshot undo/redo step. Dates are plain local Dates — no date library, no adapter — and every string, aria labels included, lives in the messages config. No WAI-ARIA APG gantt pattern exists, so the widget composes the treegrid pattern with roving-tabindex rows — the focused row drives its bar with Ctrl+Arrow keyboard move/resize — and a polite live region announcing every change.

@oge-ui/gantt is a commercial package — free for evaluation and development, with no watermark and no runtime license checks. See licensing for the terms.

task tree + timeline dependencies critical path baselines undo/redo

Getting started

One element, a working Gantt. Drag a bar to move it (Escape cancels mid-drag), pull its edges to resize, drag the bottom knob to set progress, drag a link dot onto another bar to draw a dependency. Double-click a bar or row for the task dialog — or double-click / drag on empty chart space to create a task right there. Right-click opens the built-in menu (edit, new subtask, indent/outdent, delete); Alt+Shift+Left/Right reparents from the keyboard.

task tree milestones drag & resize Escape-cancel
Task
Start
End
Duration
Release 1.0
Aug 3
Aug 21
18d
Design
Aug 3
Aug 7
4d
Implementation
Aug 7
Aug 17
10d
Ship
Aug 21
Aug 21
0d
Design
Implementation

Field mapping

Any item shape binds through the *Expr inputs — field names, dotted paths or getter functions — for tasks and dependency links alike. String dates parse as local wall time and write back in the same storage shape after edits.

keyExpr dotted paths string dates
Task
Start
End
Duration
Checkout revamp
Aug 3
Aug 14
11d
Payment API
Aug 3
Aug 7
4d
Wallet UI
Aug 7
Aug 14
7d
Payment API
Wallet UI

Dependencies & critical path

showCriticalPath outlines the zero-slack chain; autoScheduling pushes successors forward whenever a predecessor moves, honoring FS/SS/FF/SF semantics. Drawing a link that would close a cycle is rejected and announced.

showCriticalPath autoScheduling cycle rejection
Task
Start
End
Duration
Foundation
Aug 3
Aug 6
3d
Framing
Aug 6
Aug 12
6d
Electrical
Aug 12
Aug 15
3d
Landscaping
Aug 6
Aug 10
4d
Inspection
Aug 17
Aug 18
1d
Foundation
Framing
Electrical
Landscaping
Inspection

Baselines, strip lines & resources

Baseline bars render the original plan under the live bars for slippage at a glance; stripLines mark deadlines (a line) or freeze windows (a range); resources label the bars; weekends shade automatically and holidays join the off-day shading.

baselines stripLines resources holidays
Task
Start
End
Duration
Data migration
Aug 4
Aug 11
7d
Cutover rehearsal
Aug 11
Aug 14
3d
Data migration
Ada
Cutover rehearsal
Grace

Editing pipeline

Every mutation runs a cancelable -ing event before the store changes; the past-tense event fires only for applied changes — persist from there. This demo locks finished tasks, asks before deleting, and disables dependency drawing.

taskUpdating cancel allow flags readOnly
Task
Start
End
Duration
Audit (done — locked)
Aug 3
Aug 6
3d
Remediation
Aug 6
Aug 13
7d
Audit (done — locked)
Remediation

Toolbar, scales & undo/redo

The toolbar adds tasks, zooms between calendar-true hour/day/week/month scales (Ctrl+wheel on the chart works too), fits the whole plan, expands/collapses the tree and drives snapshot undo/redo — every edit, drags included, is one undo step. The task pane is a virtualized treegrid with configurable columns and a draggable splitter.

scaleType zoom to fit undo/redo columns
Task
Progress
Owner
Discovery
100%
Ada
Build
40%
Grace
Rollout
0%
Ada
Discovery
Build
Rollout

Work calendar, teams & export

workCalendar shades every off day (a four-day week here plus a holiday) and auto-scheduling rolls pushed starts onto working days, preserving working-day durations — a resource's own calendar overrides it per task. resourceId may hold an array of ids — the dialog edits assignments with a tag editor, bar labels join the names and showResourceWorkload renders the per-resource utilization band (overallocation in red). Three lazy export entry points: export-excel (exceljs, typed worksheet), export-pdf (jspdf, drawn vector chart) and export-image (dependency-free PNG).

workCalendar multi-resource export-excel export-pdf
Task
Start
End
Duration
Prototype
Aug 3
Aug 6
3d
Field test
Aug 6
Aug 11
5d
Prototype
Ada, Grace
Field test
Grace

Task template

*ogeGanttTaskTemplate replaces the bar's title content and *ogeGanttTooltipTemplate the hover tooltip (default: title, dates + duration, progress, resources) — bar surface, gestures and keyboard semantics stay with the component.

*ogeGanttTaskTemplate
Task
Start
End
Duration
Usability study
Aug 3
Aug 12
9d
Findings report
Aug 12
Aug 17
5d
Usability study · 55%
Findings report · 10%

Configuration & i18n

Every user-facing string, aria labels included, lives in OgeGanttMessages — provide once with provideOgeGanttConfig() or override per instance with [messages]. locale drives every Intl date format; rowHeight and undoLimit are config-level.

provideOgeGanttConfig messages locale
Task
Start
End
Duration
Planung
3. Aug.
10. Aug.
7d
Planung