Supported host API
Stable consumer surface of @gerald-neumann/gn-vgantt 0.3.x.
Peers: @gerald-neumann/gn-vtable ^1.4.0; optional chips @gerald-neumann/gn-vquery ^1.3.0.
Import from the package root:
import {
GnVGanttComponent,
HttpVGanttProvider,
MemoryVGanttProvider,
type GnVGanttCommitOutput,
type GnVGanttDataProvider,
type GnVGanttRow,
} from '@gerald-neumann/gn-vgantt';
Minimal example (hardcoded)
In-memory schedule — no API, no [kindCatalog]:
const rows: GnVGanttRow[] = [
{
id: '1',
name: 'Design',
parentId: null,
startDate: new Date('2026-01-06'),
endDate: new Date('2026-01-17'),
},
{
id: '2',
name: 'Build',
parentId: null,
startDate: new Date('2026-01-13'),
endDate: new Date('2026-01-31'),
dependency: { predecessorId: '1', type: 'FS' },
},
];
const provider = new MemoryVGanttProvider({ rows });
// template: <gn-vgantt [dataProvider]="provider" />
Required row fields: id, name, parentId, startDate, endDate. Optional: kind, color, dependency, scheduleOrder, …
Runnable: projects/minimum-sample — .\start-minimum-sample.ps1 → http://localhost:4201.
Component
<gn-vgantt>/GnVGanttComponentis the product host.- Timeline (
GnVGanttTimelineComponent) is package-private — used only inside the shell.
Key bindings
- Data:
dataProvider(required),columns,chunkSize,rowHeight - Time / layout:
timeScale,tablePaneWidth,layoutMode,cascade,holidayRegions,holidayResolver,highlightWeekends - Navigation:
selectedId,pinnedId,focusId,highlightedRowIds— see README navigate recipe - Kind / chrome:
kindCatalog(prefer),kindGraph(advanced override),outlineMode,assigneeOptions, show* flags,enableReorder,allowReparent - Persist:
persistMode(auto|output|provider),commitDebounceMs - i18n / icons / perf:
customTranslations,vtableTranslations,iconLibrary,iconLibraries,performanceLogger,enableUserTiming
Outputs
(commit)→GnVGanttCommitOutput(GnVGanttCommitfields +persistHandledBy: 'provider' | 'host')(rowCreate),(rowOpen)(barChange)/(linkChange)— deprecated; analytics only
Imperative methods
reloadTable(),scrollToId(),flashRow(),scheduleRows(),setPersistStatus()
There is no host [(schedule)] model. scheduleRows() is a readonly viewport/scoped snapshot.
Providers
GnVGanttDataProvider<T> extends VTableDataProvider<T> with:
fetchTimeDomain?/fetchLinks?— required for HTTP/windowed mode (dev warns if missing)commit?— optional; driven bypersistModesetPinnedId?/setMaxDepth?/setVisibleKinds?toggleOutlineExpanded?— memory trees; HTTP typically stamps__expanded
Shipped implementations: HttpVGanttProvider, MemoryVGanttProvider.
Chip filters (gn-vquery)
Host-owned. Install @gerald-neumann/gn-vquery (^1.3.0), compile chips, store on the HTTP provider, then reload:
import { applyCompiledQueryToVGantt, compileVQuery } from '@gerald-neumann/gn-vquery';
const compiled = compileVQuery(chips, fields, 'reql-where');
applyCompiledQueryToVGantt(
gantt,
(q) => provider.setChipFilterQuery(q, 'reql-where'),
compiled,
);
HttpVGanttProvider.setChipFilterQuery / clearChipFilterQuery forward chipFilterQuery + chipFilterDialect on /rows, /count, and /domain. Toolbar [(searchTerm)] stays a separate plain-text path — turn [showSearchBar] off when the chip bar is active (demo does this).
Export tiers
| Entry | Promise |
|---|---|
@gerald-neumann/gn-vgantt |
Supported host API (this page) |
@gerald-neumann/gn-vgantt/advanced |
Expert helpers (detectIssues / proposeFix, schedule math, drop planners, calendar, planning). May change between minors. |
| Themes | @gerald-neumann/gn-vgantt/themes/{bootstrap,material,tailwind} |
import { applyCommit, detectIssues, proposeFix } from '@gerald-neumann/gn-vgantt/advanced';
Do not deep-import package-private paths. Prefer documented inputs, outputs, models, methods, and CSS tokens (--gantt-*).