@lineandvertexsoftware/vertexa-chart 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Vertexa contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,43 @@
1
+ # @vertexa-chart/vertexa-chart-core
2
+
3
+ Core chart API for Vertexa Chart.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @vertexa-chart/vertexa-chart-core
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { Chart } from "@vertexa-chart/vertexa-chart-core";
15
+
16
+ const chart = new Chart(document.querySelector("#root")!, {
17
+ width: 920,
18
+ height: 520,
19
+ traces: []
20
+ });
21
+ ```
22
+
23
+ ## Public API
24
+
25
+ - `setTraces(traces)`
26
+ - `appendPoints(updates, options?)`
27
+ - `exportPng(options?)`
28
+ - `exportSvg(options?)`
29
+ - `exportCsvPoints(options?)`
30
+ - `setLayout(layout)`
31
+ - `setSize(width, height)`
32
+ - `panBy(dxCss, dyCss)`
33
+ - `zoomBy(factor, centerPlot?)`
34
+ - `resetView()`
35
+ - `fitToData()`
36
+ - `autoscaleY()`
37
+ - `setAspectLock(enabled)`
38
+ - `setPerformanceMode(mode)`
39
+ - `getPerformanceStats()`
40
+ - `destroy()`
41
+
42
+ For full examples and docs, see the monorepo README:
43
+ [https://github.com/LineandVertexSoftware/vertexa-chart/blob/main/README.md](https://github.com/LineandVertexSoftware/vertexa-chart/blob/main/README.md)
@@ -0,0 +1,256 @@
1
+ import type { ChartAppendPointsOptions, ChartExportCsvPointsOptions, ChartExportPngOptions, ChartExportSvgOptions, ChartAppendPointsUpdate, ChartOptions, ChartPerformanceMode, ChartPerformanceStats, ChartPublicApi, Layout, Trace } from "./types.js";
2
+ /**
3
+ * High-performance chart component with a frozen, minimal public API.
4
+ *
5
+ * Public API (v1):
6
+ * - `setTraces`
7
+ * - `appendPoints`
8
+ * - `exportPng`
9
+ * - `exportSvg`
10
+ * - `exportCsvPoints`
11
+ * - `setLayout`
12
+ * - `setSize`
13
+ * - `getPerformanceStats`
14
+ * - `destroy`
15
+ */
16
+ export declare class Chart implements ChartPublicApi {
17
+ private root;
18
+ private container;
19
+ private svgGrid;
20
+ private canvas;
21
+ private svg;
22
+ private tooltip;
23
+ private toolbar;
24
+ private toolbarEl;
25
+ private toolbarExportWrap;
26
+ private toolbarExportMenu;
27
+ private toolbarExportButton;
28
+ private toolbarFullscreenButton;
29
+ private toolbarExportOpen;
30
+ private toolbarExportBusy;
31
+ private toolbarPreFullscreenSize;
32
+ private overlay;
33
+ private renderer;
34
+ private initialized;
35
+ private destroyed;
36
+ private initPromise;
37
+ private width;
38
+ private height;
39
+ private basePadding;
40
+ private padding;
41
+ private layout;
42
+ private theme;
43
+ private a11y;
44
+ private traces;
45
+ private pickingMode;
46
+ private onHoverHook?;
47
+ private onClickHook?;
48
+ private onZoomHook?;
49
+ private onLegendToggleHook?;
50
+ private onSelectHook?;
51
+ private tooltipFormatter?;
52
+ private tooltipRenderer?;
53
+ private handleContainerKeyDown;
54
+ private handleToolbarExportToggle;
55
+ private handleToolbarExportMenuClick;
56
+ private handleToolbarFullscreenClick;
57
+ private handleToolbarDocumentPointerDown;
58
+ private handleToolbarDocumentKeyDown;
59
+ private handleToolbarFullscreenChange;
60
+ private handleToolbarWindowResize;
61
+ private zoom;
62
+ private dpr;
63
+ private xDomainNum;
64
+ private yDomainNum;
65
+ private traceData;
66
+ private heatmapValueByTrace;
67
+ private heatmapHoverSizeByTrace;
68
+ private markerNormByTrace;
69
+ private markerNormLayers;
70
+ private idRanges;
71
+ private xSorted;
72
+ private ySorted;
73
+ private hoverRpx;
74
+ private hoverThrottleMs;
75
+ private lastHoverTs;
76
+ private hoverRaf;
77
+ private aspectLockEnabled;
78
+ private performanceMode;
79
+ private gridCellPx;
80
+ private gridMap;
81
+ private gridX;
82
+ private gridY;
83
+ private gridTrace;
84
+ private gridPoint;
85
+ private gridBuilt;
86
+ private gridRebuildPending;
87
+ private gridRebuildTimer;
88
+ private gridLastBuildTs;
89
+ private gridMinBuildIntervalMs;
90
+ private lastGridZoomK;
91
+ private lastGridZoomX;
92
+ private lastGridZoomY;
93
+ private gridMinScaleRelDelta;
94
+ private gridMinTransRelDelta;
95
+ private enablePerfMonitoring;
96
+ private perfStats;
97
+ /**
98
+ * Create a new chart and start async renderer initialization immediately.
99
+ */
100
+ constructor(target: string | HTMLElement, opts: ChartOptions);
101
+ private init;
102
+ /**
103
+ * Replace all traces and redraw the chart.
104
+ *
105
+ * @param traces New full trace list.
106
+ * @throws Error if called after `destroy()`.
107
+ */
108
+ setTraces(traces: Trace[]): void;
109
+ /**
110
+ * Incrementally append points to one or more traces and redraw.
111
+ *
112
+ * Use `maxPoints` for sliding-window behavior.
113
+ *
114
+ * @throws Error if called after `destroy()`.
115
+ * @throws RangeError if a target `traceIndex` does not exist.
116
+ */
117
+ appendPoints(updates: ChartAppendPointsUpdate | ChartAppendPointsUpdate[], options?: ChartAppendPointsOptions): void;
118
+ /**
119
+ * Export the current chart view as a PNG image.
120
+ */
121
+ exportPng(options?: ChartExportPngOptions): Promise<Blob>;
122
+ /**
123
+ * Export the current chart view as an SVG document.
124
+ *
125
+ * The rendered plot layer is embedded as a PNG image to preserve the WebGPU output,
126
+ * while grid/overlay layers remain SVG.
127
+ */
128
+ exportSvg(options?: ChartExportSvgOptions): Promise<Blob>;
129
+ /**
130
+ * Export chart points as CSV rows.
131
+ */
132
+ exportCsvPoints(options?: ChartExportCsvPointsOptions): Blob;
133
+ /**
134
+ * Replace the chart layout and redraw.
135
+ *
136
+ * @param layout New layout object.
137
+ * @throws Error if called after `destroy()`.
138
+ */
139
+ setLayout(layout: Layout): void;
140
+ private setLOD;
141
+ setPerformanceMode(mode: ChartPerformanceMode): void;
142
+ /**
143
+ * Read runtime performance stats for rendering and picking.
144
+ */
145
+ getPerformanceStats(): ChartPerformanceStats;
146
+ private toggleTrace;
147
+ /**
148
+ * Resize the chart viewport in CSS pixels and redraw.
149
+ *
150
+ * @param width New outer width in CSS pixels.
151
+ * @param height New outer height in CSS pixels.
152
+ * @throws Error if called after `destroy()`.
153
+ */
154
+ setSize(width: number, height: number): void;
155
+ panBy(dxCss: number, dyCss: number): void;
156
+ zoomBy(factor: number, centerPlot?: {
157
+ x: number;
158
+ y: number;
159
+ }): void;
160
+ resetView(): void;
161
+ fitToData(): void;
162
+ autoscaleY(): void;
163
+ setAspectLock(enabled: boolean): void;
164
+ /**
165
+ * Release GPU/DOM resources and make the chart unusable.
166
+ *
167
+ * Idempotent: calling this multiple times is safe.
168
+ */
169
+ destroy(): void;
170
+ private assertActive;
171
+ private toRuntimeTrace;
172
+ private resolveLayoutPadding;
173
+ private isLegendVisible;
174
+ private getAxis;
175
+ private setAxisInLayout;
176
+ private getVisibleAxisRangeNum;
177
+ private getHoverMode;
178
+ private createExportCanvas;
179
+ private getExport2dContext;
180
+ private drawSvgLayerToContext;
181
+ private serializeSvgLayerForExport;
182
+ private captureCanvasLayerDataUrl;
183
+ private drawCanvasLayerToContext;
184
+ private resolveAxisType;
185
+ private makeOverlayAxisSpec;
186
+ private makeOverlayAnnotations;
187
+ private resolveOverlayGrid;
188
+ private paletteColor;
189
+ private render;
190
+ private onHover;
191
+ private gpuPickOverride;
192
+ private handleClick;
193
+ private normalizeHoverToCss;
194
+ private normalizePickCss;
195
+ private toChartPoint;
196
+ private emitHoverHook;
197
+ private emitClickHook;
198
+ private handleSelection;
199
+ private handleBoxSelect;
200
+ private applyHover;
201
+ private requestRender;
202
+ private screenToPlot;
203
+ private cpuPickClosest;
204
+ private cpuPickFallbackScan;
205
+ private pickSnapX;
206
+ private pickSnapY;
207
+ private compileScene;
208
+ private computeAxisDomain;
209
+ private applyAxisBounds;
210
+ private normalizeInterleaved;
211
+ private smoothLinePoints;
212
+ private getTraceColor;
213
+ private getTraceHoverSizePx;
214
+ private normalizeBarBaseY;
215
+ private normalizeAreaBaseY;
216
+ private computeAreaFillWidthPx;
217
+ private toHeatmapRows;
218
+ private normalizeAxisValues;
219
+ private computeAxisEdges;
220
+ private resolveHeatmapScale;
221
+ private resolveHeatmapZRange;
222
+ private interpolateHeatmapColor;
223
+ private estimateHeatmapHoverSize;
224
+ private getHeatmapLegendColor;
225
+ private makeLegendItems;
226
+ private scheduleGridRebuild;
227
+ private shouldRebuildGrid;
228
+ private rebuildGridIndex;
229
+ private gridKey;
230
+ private idToHit;
231
+ private toScreenFromNorm;
232
+ private getNormPoint;
233
+ private formatHover;
234
+ private makeTooltipContext;
235
+ private showTooltip;
236
+ private showCursorTooltip;
237
+ private hideTooltip;
238
+ private onContainerKeyDown;
239
+ private mountToolbar;
240
+ private createToolbarButton;
241
+ private setToolbarExportMenuOpen;
242
+ private onToolbarExportToggle;
243
+ private onToolbarExportMenuClick;
244
+ private downloadToolbarBlob;
245
+ private onToolbarFullscreenClick;
246
+ private onToolbarDocumentPointerDown;
247
+ private onToolbarDocumentKeyDown;
248
+ private onToolbarFullscreenChange;
249
+ private onToolbarWindowResize;
250
+ private resizeToFullscreenViewport;
251
+ private syncToolbarFullscreenButton;
252
+ private cleanupToolbar;
253
+ private applyAriaAttributes;
254
+ private mountDom;
255
+ }
256
+ //# sourceMappingURL=Chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../src/Chart.ts"],"names":[],"mappings":"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"}