Support & API docs

Commercial support is ticket-based (see pricing). Below is the supported host API for each library — the SemVer contract hosts should build against.

Getting help

Every license includes Support Basic ticket capacity. Optional Starter / Business / Priority packs add ticket budget and faster response targets. Support is assistance capacity only — it does not expand warranty or indemnity.

  • Defects and integration questions against documented APIs count as tickets.
  • Custom feature work, host redesign, and unrelated Angular coaching do not.
  • Licensing / sales: sales@gerald-neumann.dev

Compare support packs

Current packages

Install from GitHub Packages (@gerald-neumann/*). Versions below match the sibling library repos as of this site update.

Package Version Contract doc
@gerald-neumann/gn-vquery 1.3.1 Supported API
@gerald-neumann/gn-vtable 1.4.1 Supported host API
@gerald-neumann/gn-vgantt 0.3.1 Supported host API

Peers: gn-vgantt expects gn-vtable ^1.4.0; optional chips gn-vquery ^1.3.0.

gn-vquery — supported API

Chip query model + Custom Element chip bar. Compilers for MyERP Advanced Query and ReSpecT REQL WHERE. Prefer the package root for new integrations.

Core (happy path)

Surface Notes
VQueryChip, field config / options, operators Chip + catalog model
chipsToAdvancedQuery, chipsToReqlWhere, compileVQuery Dialect compilers
GnVQueryChipBarElement, registerGnVQueryChipBar Custom Element (GN_VQUERY_CHIP_BAR_TAG)
Events: chips-change, preset-chip-remove, notice Host wiring
commitPendingDraft(), focusDraft() Toolbar / focus
serializeVQueryChips / deserializeVQueryChips Persistence
applyCompiledQueryToVTable / ToVGantt Table / Gantt reload glue
styles/vquery-chip-bar.css, bubble CSS, --vquery-* Versioned style contract (light DOM)

Field catalog knobs

  • options / loadOptions / suggestOptions (+ debounce / require-match)
  • multiValue, includeInFreeText, yearMonthFreeText, quarterMonthField
  • facets, operators, hint

Compile snapshot

Chip Advanced Query REQL
Free-text OR across text fields with includeInFreeText !== false Same participation
Text ~ CSV OR of field~term LIKE / terms
Equality = CSV OR of equalities; negated → AND of != IN / OR of comparisons
Quarter facet OR of month equalities via quarterMonthField Same
import {
  compileVQuery,
  applyCompiledQueryToVTable,
  registerGnVQueryChipBar,
} from '@gerald-neumann/gn-vquery';

registerGnVQueryChipBar();
const compiled = compileVQuery(chips, fields, 'reql-where');
applyCompiledQueryToVTable(table, setQuery, compiled);

gn-vtable — supported host API

<gn-vtable> is the table host. Columns use <vtable-column>. Outline / WBS chrome uses <vtable-outline-prefix>.

Controlled state (two-way models)

State Bind
Search[(searchTerm)]
Sort[(sortColumns)]
Column filters[(columnFilters)]
Pivot[(pivotConfig)]
Group levels[(groupByLevels)]
Column order / widths[(columnOrder)] / [(columnWidths)]
Selection ids[(selectedRowIds)] (null = uncontrolled)

Prefer two-way bindings. (selectionChange) remains for the rich { selectedRows, selectedRowIds } payload.

Key inputs

  • Data: dataProvider, columns, chunkSize, preFetchChunks, maxCachedChunks, initialLoadStrategy, reloadMode
  • Layout: prefer layoutPreset (default | stretch-fill | overview-card)
  • Grouping / outline: groupingStrategy, showGroupRail, outlineMode, outlineParentField, outlineColumn
  • Selection / edit: selectionMode, selectionUi, rowIdField, inlineEditActivation
  • Chrome: customTranslations, iconLibrary / iconLibraries, action templates

Store-construction-only inputs (chunkSize, prefetch / cache / concurrency, initialLoadStrategy, performanceLogger) are read once when the internal store is created.

Imperative methods (frozen)

  • reload(options?), remeasureScrollport(), setScrollTop(px)
  • setSearchTerm / clearSearch
  • expandAllGroups / collapseAllGroups / level helpers
  • getSelectedRows / getSelectedRowIds
  • clearColumnFilter / clearAllColumnFilters / resetColumnWidths
  • Inline edit: startEdit / applyEdit / commitEdit / endEdit / cancelEdit

Provider contract

  • fetchData(params) → Observable<VTableResponse<T>>
  • fetchDataCount(params) → Observable<number>
  • Grouped: fetchGroups + fetchGroupRows (both optional hooks)

fetchChildren is deprecated and is not called. Handle (outlineToggle) in the host instead.

import {
  GnVTableComponent,
  VTableColumnDirective,
  type VTableDataProvider,
} from '@gerald-neumann/gn-vtable';

gn-vgantt — supported host API

<gn-vgantt> / GnVGanttComponent is the product host. The timeline component is package-private. There is no host [(schedule)] model — use scheduleRows() for a readonly snapshot.

Key bindings

  • Data: dataProvider (required), columns, chunkSize, rowHeight
  • Time / layout: timeScale, tablePaneWidth, layoutMode, cascade, holiday inputs, highlightWeekends
  • Navigation: selectedId, pinnedId, focusId, highlightedRowIds
  • Kind / chrome: kindCatalog (prefer), kindGraph, outlineMode, show* flags, reorder / reparent
  • Persist: persistMode (auto | output | provider), commitDebounceMs

Outputs

  • (commit) → GnVGanttCommitOutput (+ persistHandledBy)
  • (rowCreate), (rowOpen)
  • (barChange) / (linkChange) — deprecated; analytics only

Imperative methods

  • reloadTable(), scrollToId(), flashRow()
  • scheduleRows(), setPersistStatus()

Providers

GnVGanttDataProvider<T> extends VTableDataProvider<T> with:

  • fetchTimeDomain? / fetchLinks? — required for HTTP / windowed mode
  • commit? — optional; driven by persistMode
  • setPinnedId? / setMaxDepth? / setVisibleKinds?
  • toggleOutlineExpanded? — memory trees; HTTP typically stamps __expanded

Shipped: HttpVGanttProvider, MemoryVGanttProvider.

Chip filters (optional gn-vquery)

import { applyCompiledQueryToVGantt, compileVQuery } from '@gerald-neumann/gn-vquery';

const compiled = compileVQuery(chips, fields, 'reql-where');
applyCompiledQueryToVGantt(
  gantt,
  (q) => provider.setChipFilterQuery(q, 'reql-where'),
  compiled,
);

Turn [showSearchBar] off when the chip bar owns filtering. HTTP provider forwards chipFilterQuery + dialect on /rows, /count, and /domain.

Gantt REST contract (HTTP provider)

Reference shape used by the demo API and HttpVGanttProvider. Hosts may implement the same endpoints or map domain APIs behind a thin provider.

Method Path Purpose
POST {base}/rows VTableDataParams → chunked GnVGanttRow page
POST {base}/count Filtered total for virtualization
GET / POST {base}/domain Time domain for current filter / pin
POST {base}/links Batch links for visible ids (+ overscan)
POST {base}/commit Optional persist; host may handle (commit) instead

Export tiers

Deep-importing package-private paths is unsupported. Prefer documented inputs, outputs, models, methods, and CSS tokens.

Import Promise
@gerald-neumann/gn-vquery Stable host path
@gerald-neumann/gn-vquery/advanced Internal helpers — may change in minors
@gerald-neumann/gn-vtable Supported host API
@gerald-neumann/gn-vtable/advanced Implementation helpers — may change in minors
@gerald-neumann/gn-vgantt Supported host API
@gerald-neumann/gn-vgantt/advanced detectIssues / proposeFix, schedule math — may change in minors
…/themes/{bootstrap,material,tailwind} Theme entry points (vtable + vgantt)

Need ticketed support?

Starter, Business, and Priority packs sit on top of Support Basic included with every license.

View support pricing