Premium and feature events

Generated callback signatures, payloads and cancellation rules; existing family signatures and optional standard event arguments.

View .md Agent setup

Generated from types/premium-events.d.ts and checked against literal emitters in src/premium and src/features. Edit the declarations, then run node tools/docs/gen-events.cjs.

chart.eventSignature defaults to 'legacy': each family keeps its established argument order. With 'standard', premium and feature callbacks and chart.addEventListener() listeners receive (eventOrNull, chart, payload). Synthetic events use null; the Sankey error event supplies its Error as origin. Core lifecycle callbacks such as mounted(chart, options) are unchanged.

Inline chart-options callbacks remain permissively typed for compatibility, including strict TypeScript projects that omit eventSignature. Use named WccStandardEventHandler or WccLegacyEventHandler handlers for precise payload types. The eventSignature option selects the runtime argument convention; it does not change TypeScript contextual inference.

Event names are case-sensitive. Premium drilldown / drillup and feature drillDownStart / drillDownEnd / drillUp are separate contracts. Only rows marked cancelable use a callback return value of false to reject the pending operation. Notifications (including history replay) cannot be assumed to undo an action.

ts
const onSelect: WccStandardEventHandler<WccPremiumEventPayloads['quintSelect']> =
  (event, chart, payload) => { console.log(payload.keys) }
const options = { chart: { eventSignature: 'standard' as const, events: { quintSelect: onSelect } } }
Event Family Legacy arguments Standard arguments Payload Cancelable Meaning
beatChange storyboard (chart, payload) (eventOrNull, chart, payload) { index: number; key?: string | number; previous: number; direction: -1 | 0 | 1; element: Element | null } No The active story beat changed.
childrenLoad tree (event, chart, payload) (eventOrNull, chart, payload) { w: WccEventChartState; id: string; node: WccEventRecord; children: WccEventRecord[] } No Lazy children arrived.
childrenLoadError tree (event, chart, payload) (eventOrNull, chart, payload) { w: WccEventChartState; id: string; node: WccEventRecord; error: unknown } No Loading lazy children failed.
crossFilter link (chart, payload) (eventOrNull, chart, payload) { sourceChartID: string; xaxis: { min: number; max: number } } No A linked range filter changed.
dataPointMouseEnter gantt, sankey, stock, tree (event, chart, payload) (eventOrNull, chart, payload) WccTaskPointEvent | WccFlowPointEvent | WccStockPointEvent | WccTreePointEvent No The pointer entered a premium mark; narrow by its family payload fields.
dataPointMouseLeave gantt, sankey, tree (event, chart, payload) (eventOrNull, chart, payload) WccTaskPointEvent | WccFlowPointEvent | WccTreePointEvent No The pointer left a premium mark.
dataPointSelection chord, gantt, map, marimekko, network, radialColumn, sankey, stock, tree (event, chart, payload) (eventOrNull, chart, payload) WccPremiumPointEvent No A premium mark was selected; payload shape is family-specific.
dependencyCreate gantt (event, chart, payload) (eventOrNull, chart, payload) WccDependencyEvent Yes — return false A dependency is proposed; false rejects creation.
dependencyDelete gantt (event, chart, payload) (eventOrNull, chart, payload) WccDependencyEvent Yes — return false A dependency is proposed for removal; false rejects removal.
drawingChange stock (event, chart, payload) (eventOrNull, chart, payload) { w: WccEventChartState; action: string; drawing: WccStockDrawing | null; drawings: WccStockDrawing[] } Yes — return false A drawing is added, edited or removed; false rejects the change.
drilldown sankey, map (event, chart, payload) (eventOrNull, chart, payload) WccPremiumDrillEvent Yes — return false A premium level is about to open; false rejects navigation.
drillDownEnd drilldown feature (chart, payload) (eventOrNull, chart, payload) WccFeatureDrillEvent No A core drilldown transition completed; case-sensitive name.
drilldownError sankey, map (event, chart, payload) (eventOrNull, chart, payload) WccPremiumDrillEvent No A premium level loader failed.
drillDownError drilldown feature (chart, payload) (eventOrNull, chart, payload) { id: string | number; error: unknown } No A core drilldown loader failed; case-sensitive name.
drillDownStart drilldown feature (chart, payload) (eventOrNull, chart, payload) WccFeatureDrillEvent No A core drilldown transition started; case-sensitive name.
drillup sankey, map (event, chart, payload) (eventOrNull, chart, payload) WccPremiumDrillEvent Yes — return false A premium level is about to close; false rejects navigation.
drillUp drilldown feature (chart, payload) (eventOrNull, chart, payload) WccFeatureDrillEvent No A core drill-up transition completed; case-sensitive name.
error sankey (event, chart, payload) (eventOrNull, chart, payload) { type: 'sankey'; cycle: string[] } No The Sankey cycle policy rejected input; the origin argument is the error.
filterChange link (chart, payload) (eventOrNull, chart, payload) { filters: Record<string, unknown>; filteredCount: number; total: number; sourceChartID: string; key: unknown } No A crossfilter bucket selection or clear changed the filter set.
groupToggle gantt (event, chart, payload) (eventOrNull, chart, payload) { w: WccEventChartState; group: string; collapsed: boolean } No A task group was collapsed or expanded.
highlightFilterChanged highlight-filter (chart, payload) (eventOrNull, chart, payload) { active: boolean; phase: 'enter' | 'update' | 'clear' } No The highlight filter was applied, updated or cleared.
historyChange gantt (event, chart, payload) (eventOrNull, chart, payload) { w: WccEventChartState; action: string; entry: WccEventRecord; canUndo: boolean; canRedo: boolean; undo: number; redo: number } No The Gantt edit history changed.
layoutSettled network (event, chart, payload) (eventOrNull, chart, payload) { nodes: number } No A network layout reached its settled position.
legendClick marimekko, radialColumn (event, chart, payload) (eventOrNull, chart, payload) { seriesName: string; hidden: boolean } No A premium legend toggle changed visibility; false does not veto it.
nodeDragEnd network (event, chart, payload) (eventOrNull, chart, payload) { node: WccEventNetworkNode } No A network node drag ended.
nodeMove sankey (event, chart, payload) (eventOrNull, chart, payload) { w: WccEventChartState; node: { id: string; name: string }; offset: number } No A Sankey node drag ended; offset is the layout-axis displacement.
nodeToggle tree (event, chart, payload) (eventOrNull, chart, payload) WccTreePointEvent Yes — return false A tree node is about to toggle; collapsed is the proposed state and false rejects it.
panelMounted trellis (chart, payload) (eventOrNull, chart, payload) WccPanelEvent No A trellis panel mounted or remounted.
panelPromoted trellis-extras (chart, payload) (eventOrNull, chart, payload) WccPanelEvent No A trellis panel was promoted to the main view.
panelRestored trellis-extras (chart, payload) (eventOrNull, chart, payload) WccPanelEvent No A promoted panel was restored to the grid.
perspectiveApplied perspectives (chart, payload) (eventOrNull, chart, payload) WccPerspectiveEvent No A captured view state was applied.
perspectiveCaptured perspectives (chart, payload) (eventOrNull, chart, payload) WccPerspectiveEvent No A view state was captured.
playbackFrame sankey (event, chart, payload) (eventOrNull, chart, payload) { w: WccEventChartState; frame: number; label?: string } No A Sankey playback frame changed.
quintLens quintTimeline, quintConvergence (payload, chart) (eventOrNull, chart, payload) { enabled: boolean } No The Quint lens was enabled or disabled.
quintPin quintTimeline, quintConvergence (payload, chart) (eventOrNull, chart, payload) { time: number | null; slot: number | null } No The Quint time pin changed or was cleared.
quintSelect quintTimeline, quintConvergence (payload, chart) (eventOrNull, chart, payload) { keys: string[] | null } No The selected Quint keys changed or were cleared.
scheduleChange schedule (payload, chart) (eventOrNull, chart, payload) WccScheduleProposalEvent No A controlled move proposal was produced; the application decides whether to apply it.
scheduleConflict schedule (payload, chart) (eventOrNull, chart, payload) { conflicts: WccScheduleConflictEvent[] } No Once per render, conflicts in the visible schedule are reported.
scheduleSelect schedule (payload, chart) (eventOrNull, chart, payload) { item: string | null; person: string | null } No The selected appointment or highlighted person changed.
slotClick schedule (payload, chart) (eventOrNull, chart, payload) { time: number; lane: string | null; by: 'person' | 'resource'; day: number } No Free schedule time was clicked.
taskChange gantt (event, chart, payload) (eventOrNull, chart, payload) WccTaskChangeEvent Yes — return false A task edit is proposed; false rejects it.
taskCreate gantt (event, chart, payload) (eventOrNull, chart, payload) WccTaskMutationEvent Yes — return false A task creation is proposed; false rejects it. History replay also reports this event.
taskDelete gantt (event, chart, payload) (eventOrNull, chart, payload) WccTaskMutationEvent Yes — return false A task deletion is proposed; false rejects it. History replay also reports this event.
trellisMounted trellis (chart, payload) (eventOrNull, chart, payload) { panels: WccPanelEvent[] } No The trellis grid mounted or changed its mounted panels.
wccDrillPathChange drilldown feature (chart, payload) (eventOrNull, chart, payload) { path: Array<string | number>; depth: number } No The current drill path changed.
wccFrameChange narrative (chart, payload) (eventOrNull, chart, payload) { index: number; t?: number | string; label: string; direction: number } No The narrative frame changed.
wccHistoryChange history feature (chart, payload) (eventOrNull, chart, payload) WccHistoryPositionEvent No The shared history journal position changed.
wccNarrativeState narrative (chart, payload) (eventOrNull, chart, payload) { playing: boolean; live: boolean } No Narrative playback state changed.
wccOrientChange orient (chart, payload) (eventOrNull, chart, payload) WccOrientChangeEvent No The radial view orientation changed.
zoomed gantt, stock, network (event, chart, payload) (eventOrNull, chart, payload) WccZoomEvent No A premium date range or network scale changed.

Payload contracts

Required and optional fields, unions for per-family selections, and reusable nested structures are declared below. Raw caller data and error values stay unknown; no promise is made about renderer internals in w.

ts
type WccEventRecord = Record<string, unknown>

type WccEventOrigin = Event | Error | null

interface WccEventChartState { config: ApexCharts.ApexOptions; globals: WccEventRecord }

interface WccEventPointIndex { seriesIndex: number; dataPointIndex: number; w?: WccEventChartState }

interface WccEventFlow { from: string; to: string; value: number }

interface WccEventNode { id: string; name: string; value?: number; inflow?: number; outflow?: number; column?: number }

interface WccEventNetworkNode { id: string; name: string; group?: string; value?: number; degree: number; keys?: string[] }

interface WccEventTask { id: string; name: string; start: number; end: number; progress?: number; group: string; critical: boolean }

interface WccTaskPointEvent extends WccEventPointIndex { task: WccEventTask; selected?: string[] }

interface WccTreePointEvent extends WccEventPointIndex { node: WccEventRecord; id: string; name: string; depth: number; collapsed: boolean; children: number }

interface WccStockPointEvent extends WccEventPointIndex { x: number; open: number; high: number; low: number; close: number; volume?: number }

interface WccFlowPointEvent extends WccEventPointIndex { kind: 'link' | 'node'; link?: WccEventFlow; node?: WccEventNode }

interface WccNetworkPointEvent extends WccEventPointIndex { node?: WccEventNetworkNode; edge?: { from: string; to: string; weight: number; causal?: boolean } }

interface WccMapPointEvent extends WccEventPointIndex { id?: string; name?: string; value?: number; distance?: number; data?: unknown; properties?: WccEventRecord; selected: boolean }

interface WccMekkoPointEvent extends WccEventPointIndex { category: string; series: string; value: number }

interface WccRadialPointEvent {
  seriesIndex?: number; dataPointIndex?: number; category?: string;
  values?: Array<{ series: string; value: number | null }>;
  layerIndex?: number; layer?: string; flow?: WccEventFlow;
  segment?: { name: string; value?: number | null; path: string[]; row?: unknown; col?: unknown };
  linked?: string[]; selected: boolean
}

type WccPremiumPointEvent = WccTaskPointEvent | WccTreePointEvent | WccStockPointEvent | WccFlowPointEvent | WccNetworkPointEvent | WccMapPointEvent | WccMekkoPointEvent | WccRadialPointEvent

interface WccScheduleConflictEvent {
  id: string; type: 'room' | 'person' | 'transfer' | 'hours'; severity: 'error' | 'warning';
  items: string[]; resource?: string; person?: string; resources?: string[];
  from: number; to: number; gap?: number; outside?: number; text: string
}

interface WccSchedulePosition { start: number; end: number; resource: string; people: string[] }

interface WccScheduleProposalEvent { id: string; from: WccSchedulePosition; to: WccSchedulePosition; conflicts: WccScheduleConflictEvent[]; added: WccScheduleConflictEvent[]; resolved: WccScheduleConflictEvent[] }

interface WccTaskChangeEvent extends WccTaskPointEvent { start: number; end: number; previous: { start: number; end: number; name?: string }; source: string; name?: string }

interface WccTaskMutationEvent { w?: WccEventChartState; seriesIndex: number; index: number; data: WccEventRecord; source: string; start?: number; end?: number; task?: WccEventTask; dataPointIndex?: number }

interface WccDependencyEvent { w: WccEventChartState; from: string; to: string; type?: 'FS' | 'SS' | 'FF' | 'SF'; lag?: number; source: string }

interface WccPremiumDrillEvent { w: WccEventChartState; id?: string; name?: string; value?: number; depth: number; label?: string; error?: unknown }

interface WccFeatureDrillEvent { from: string | number | null; to: string | number | null; point?: unknown; seriesIndex?: number; dataPointIndex?: number }

interface WccHistoryPositionEvent { index: number; size: number; canUndo: boolean; canRedo: boolean }

type WccPanelKey = string | number | boolean | null | WccPanelKey[]

interface WccPanelEvent { key: WccPanelKey; index?: number; chart?: ApexCharts | null; el?: Element; remounted?: boolean }

interface WccPerspectiveEvent { state: WccEventRecord; requested?: WccEventRecord }

interface WccOrientChangeEvent extends WccOrientState { previous: number; picked: string | null }

interface WccZoomEvent { w?: WccEventChartState; xaxis?: { min: number; max: number }; scale?: number }

Source coverage

Every literal premium/feature chart event must have a declaration; conditional event names are included. The generator rejects unknown or stale event names. Low-level crossfilter-engine .on('change') listeners are engine events, separate from chart.events.filterChange and chart.events.crossFilter.

Event Emitters
beatChange src/features/storyboard/index.js
childrenLoad src/premium/tree/Tree.js
childrenLoadError src/premium/tree/Tree.js
crossFilter src/features/link/Controller.js
dataPointMouseEnter src/premium/gantt/Gantt.js, src/premium/sankey/Sankey.js, src/premium/stock/Stock.js, src/premium/tree/Tree.js
dataPointMouseLeave src/premium/gantt/Gantt.js, src/premium/sankey/Sankey.js, src/premium/tree/Tree.js
dataPointSelection src/premium/chord/Chord.js, src/premium/gantt/Gantt.js, src/premium/map/GeoMap.js, src/premium/marimekko/Marimekko.js, src/premium/network/Network.js, src/premium/radial/RadialColumn.js, src/premium/sankey/Sankey.js, src/premium/stock/Stock.js, src/premium/tree/Tree.js
dependencyCreate src/premium/gantt/extras.js
dependencyDelete src/premium/gantt/extras.js
drawingChange src/premium/stock/drawings.js
drillDownEnd src/features/drilldown/Controller.js
drillDownError src/features/drilldown/Controller.js
drillDownStart src/features/drilldown/Controller.js
drillUp src/features/drilldown/Controller.js
drilldown src/premium/base/drill.js
drilldownError src/premium/base/drill.js
drillup src/premium/base/drill.js
error src/premium/sankey/Sankey.js
filterChange src/features/link/Controller.js
groupToggle src/premium/gantt/Gantt.js
highlightFilterChanged src/features/highlight-filter/Controller.js
historyChange src/premium/gantt/Gantt.js
layoutSettled src/premium/network/Network.js
legendClick src/premium/marimekko/Marimekko.js, src/premium/radial/RadialColumn.js
nodeDragEnd src/premium/network/Network.js
nodeMove src/premium/sankey/Sankey.js
nodeToggle src/premium/tree/Tree.js
panelMounted src/features/trellis/Host.js
panelPromoted src/features/trellis-extras/host.js
panelRestored src/features/trellis-extras/host.js
perspectiveApplied src/features/perspectives/index.js
perspectiveCaptured src/features/perspectives/index.js
playbackFrame src/premium/sankey/Sankey.js
quintLens src/premium/layers/quint/Quint.js
quintPin src/premium/layers/quint/Quint.js
quintSelect src/premium/layers/quint/Quint.js
scheduleChange src/premium/layers/schedule/Schedule.js
scheduleConflict src/premium/layers/schedule/Schedule.js
scheduleSelect src/premium/layers/schedule/Schedule.js
slotClick src/premium/layers/schedule/Schedule.js
taskChange src/premium/gantt/Gantt.js
taskCreate src/premium/gantt/Gantt.js
taskDelete src/premium/gantt/Gantt.js
trellisMounted src/features/trellis/Host.js
wccDrillPathChange src/features/drilldown/Controller.js, src/features/drilldown/index.js
wccFrameChange src/features/narrative/index.js
wccHistoryChange src/features/history/index.js
wccNarrativeState src/features/narrative/index.js
wccOrientChange src/features/orient/index.js
zoomed src/premium/gantt/Gantt.js, src/premium/network/Network.js, src/premium/stock/Stock.js

WestCoast Charts 1.1.5 · generated from the library guide at commit 95f093ba. Code examples in the guide are executed by the library's docs check.