@wick-charts/vue 0.5.1 → 0.6.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/README.md +18 -3
- package/dist/BarSeries.vue.js +26 -20
- package/dist/CandlestickSeries.vue.js +30 -24
- package/dist/ChartContainer.vue.js +88 -65
- package/dist/HeatmapSeries.vue.js +40 -0
- package/dist/HeatmapSeries.vue2.js +4 -0
- package/dist/LineSeries.vue.js +26 -20
- package/dist/PieSeries.vue.js +24 -18
- package/dist/core/dist/animation/animator.js +21 -21
- package/dist/core/dist/animation/config.js +114 -87
- package/dist/core/dist/animation/easing.js +3 -1
- package/dist/core/dist/animation/intro-wave.js +68 -0
- package/dist/core/dist/axis/dom-labels.js +13 -14
- package/dist/core/dist/chart/badge-animator.js +56 -0
- package/dist/core/dist/chart/edge-indicators.js +28 -13
- package/dist/core/dist/chart/last-value.js +18 -17
- package/dist/core/dist/chart/y-target.js +13 -12
- package/dist/core/dist/chart.js +679 -452
- package/dist/core/dist/components/annotation-chip.js +28 -0
- package/dist/core/dist/components/edge-indicator.js +58 -26
- package/dist/core/dist/components/loading-indicator.js +46 -0
- package/dist/core/dist/components/marker.js +49 -31
- package/dist/core/dist/components/reference-line.js +27 -36
- package/dist/core/dist/components/time-region.js +30 -28
- package/dist/core/dist/data/store.js +38 -19
- package/dist/core/dist/data/sync.js +60 -38
- package/dist/core/dist/heatmap-tooltip.js +16 -0
- package/dist/core/dist/interactions/handler.js +67 -43
- package/dist/core/dist/perf/perf-hud.js +5 -5
- package/dist/core/dist/scales/x-scale.js +85 -37
- package/dist/core/dist/scales/y-scale.js +38 -27
- package/dist/core/dist/series/bar-intro.js +18 -0
- package/dist/core/dist/series/bar.js +337 -205
- package/dist/core/dist/series/base-multi-layer.js +224 -96
- package/dist/core/dist/series/candlestick-intro.js +57 -0
- package/dist/core/dist/series/candlestick.js +454 -276
- package/dist/core/dist/series/heatmap.js +387 -0
- package/dist/core/dist/series/line-intro.js +85 -0
- package/dist/core/dist/series/line.js +590 -282
- package/dist/core/dist/series/painters/builtins.js +2 -2
- package/dist/core/dist/series/pie.js +396 -259
- package/dist/core/dist/series/register-builtins.js +8 -7
- package/dist/core/dist/series/types.js +6 -0
- package/dist/core/dist/series/wave-intro.js +26 -0
- package/dist/core/dist/theme/create.js +69 -63
- package/dist/core/dist/theme/themes/mint-breeze.js +2 -2
- package/dist/core/dist/theme/themes/sand-dune.js +2 -2
- package/dist/core/dist/utils/color.js +109 -34
- package/dist/core/dist/utils/deep-equal.js +18 -0
- package/dist/core/dist/utils/time.js +25 -19
- package/dist/index.d.ts +1405 -123
- package/dist/index.js +177 -130
- package/dist/ui/Crosshair.vue.js +20 -21
- package/dist/ui/HeatmapTooltip.vue.js +96 -0
- package/dist/ui/HeatmapTooltip.vue2.js +4 -0
- package/dist/ui/InfoBar.vue.js +46 -47
- package/dist/ui/Legend.vue.js +80 -79
- package/dist/ui/PieLegend.vue.js +5 -5
- package/dist/ui/PieTooltip.vue.js +77 -67
- package/dist/ui/Tooltip.vue.js +60 -60
- package/dist/ui/YAxis.vue.js +2 -2
- package/dist/ui/YLabel.vue.js +94 -61
- package/package.json +2 -2
- package/src/BarSeries.vue +23 -7
- package/src/CandlestickSeries.vue +23 -7
- package/src/ChartContainer.vue +134 -12
- package/src/HeatmapSeries.vue +69 -0
- package/src/LineSeries.vue +23 -7
- package/src/PieSeries.vue +22 -6
- package/src/index.ts +84 -3
- package/src/ui/Crosshair.vue +1 -2
- package/src/ui/HeatmapTooltip.vue +144 -0
- package/src/ui/InfoBar.vue +1 -2
- package/src/ui/Legend.vue +13 -0
- package/src/ui/Marker.vue +1 -1
- package/src/ui/PieTooltip.vue +10 -0
- package/src/ui/ReferenceLine.vue +2 -2
- package/src/ui/TimeRegion.vue +2 -2
- package/src/ui/Tooltip.vue +2 -2
- package/src/ui/YLabel.vue +123 -8
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { ShallowRef } from 'vue';
|
|
|
8
8
|
declare const __VLS_component: DefineComponent<__VLS_Props_3, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_3> & Readonly<{}>, {
|
|
9
9
|
theme: ChartTheme;
|
|
10
10
|
gradient: boolean;
|
|
11
|
+
interactive: boolean;
|
|
11
12
|
headerLayout: "overlay" | "inline";
|
|
12
13
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
13
14
|
titleAnchor: HTMLDivElement;
|
|
@@ -19,30 +20,30 @@ legendAnchor: HTMLDivElement;
|
|
|
19
20
|
navigatorAnchor: HTMLDivElement;
|
|
20
21
|
}, HTMLDivElement>;
|
|
21
22
|
|
|
22
|
-
declare const __VLS_component_2: DefineComponent<
|
|
23
|
+
declare const __VLS_component_2: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
23
24
|
|
|
24
|
-
declare const __VLS_component_3: DefineComponent<
|
|
25
|
+
declare const __VLS_component_3: DefineComponent<__VLS_Props_9, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_9> & Readonly<{}>, {
|
|
25
26
|
position: "bottom" | "right";
|
|
26
27
|
mode: LegendMode;
|
|
27
28
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
28
29
|
|
|
29
|
-
declare const __VLS_component_4: DefineComponent<
|
|
30
|
+
declare const __VLS_component_4: DefineComponent<__VLS_Props_13, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_13> & Readonly<{}>, {
|
|
30
31
|
position: PieLegendPosition;
|
|
31
32
|
format: ValueFormatter;
|
|
32
33
|
mode: PieLegendMode;
|
|
33
34
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
34
35
|
|
|
35
|
-
declare const __VLS_component_5: DefineComponent<
|
|
36
|
+
declare const __VLS_component_5: DefineComponent<__VLS_Props_14, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_14> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
36
37
|
containerRef: HTMLDivElement;
|
|
37
38
|
}, any>;
|
|
38
39
|
|
|
39
|
-
declare const __VLS_component_6: DefineComponent<
|
|
40
|
+
declare const __VLS_component_6: DefineComponent<__VLS_Props_18, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_18> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
40
41
|
|
|
41
|
-
declare const __VLS_component_7: DefineComponent<
|
|
42
|
+
declare const __VLS_component_7: DefineComponent<__VLS_Props_19, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_19> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
42
43
|
containerRef: HTMLDivElement;
|
|
43
44
|
}, any>;
|
|
44
45
|
|
|
45
|
-
declare const __VLS_component_8: DefineComponent<
|
|
46
|
+
declare const __VLS_component_8: DefineComponent<__VLS_Props_21, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_21> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
46
47
|
|
|
47
48
|
declare type __VLS_Props = {
|
|
48
49
|
/** Flat `TimePoint[]`, `TimePoint[][]`, or named `{ label, color?, data }` layers. Time accepts ms or `Date`. */
|
|
@@ -50,9 +51,34 @@ declare type __VLS_Props = {
|
|
|
50
51
|
options?: Partial<BarSeriesOptions>;
|
|
51
52
|
/** Stable series ID — same value across remounts. */
|
|
52
53
|
id?: string;
|
|
54
|
+
/** Show/hide the series without unmounting it — excludes it from the Y-range fit and tooltip/legend. Default `true`. Live. */
|
|
55
|
+
visible?: boolean;
|
|
53
56
|
};
|
|
54
57
|
|
|
55
58
|
declare type __VLS_Props_10 = {
|
|
59
|
+
/** X anchor — epoch ms or a `Date`. */
|
|
60
|
+
time: TimeValue;
|
|
61
|
+
/** Y anchor as a data value. Omit and set `seriesId` to snap to that series' value at `time`. */
|
|
62
|
+
value?: number;
|
|
63
|
+
/** Snap Y to this series' value at `time` when `value` is omitted. Also the default color source. */
|
|
64
|
+
seriesId?: string;
|
|
65
|
+
/** Glyph at the anchor. Default: `'dot'`. Arrows point their tip at the anchor. */
|
|
66
|
+
shape?: MarkerShape;
|
|
67
|
+
/** Reuse the line pulse halo around the anchor. Default: `false`. */
|
|
68
|
+
pulse?: boolean;
|
|
69
|
+
/** Optional text label drawn as a callout chip whose tail points at the anchor. */
|
|
70
|
+
label?: string;
|
|
71
|
+
/** Color override. Falls back to the series color (when `seriesId` is set), then the theme line color. */
|
|
72
|
+
color?: string;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
declare type __VLS_Props_11 = {
|
|
76
|
+
data: NavigatorData;
|
|
77
|
+
/** Strip height in CSS pixels. Defaults to `theme.navigator.height` (60). */
|
|
78
|
+
height?: number;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
declare type __VLS_Props_12 = {
|
|
56
82
|
value: number;
|
|
57
83
|
/**
|
|
58
84
|
* Value-to-string formatter. Defaults to the current locale's
|
|
@@ -64,7 +90,7 @@ declare type __VLS_Props_10 = {
|
|
|
64
90
|
spinDuration?: number;
|
|
65
91
|
};
|
|
66
92
|
|
|
67
|
-
declare type
|
|
93
|
+
declare type __VLS_Props_13 = {
|
|
68
94
|
/**
|
|
69
95
|
* Owning series id. **Optional** — when omitted, the first visible pie
|
|
70
96
|
* series is picked.
|
|
@@ -78,7 +104,7 @@ declare type __VLS_Props_11 = {
|
|
|
78
104
|
position?: PieLegendPosition;
|
|
79
105
|
};
|
|
80
106
|
|
|
81
|
-
declare type
|
|
107
|
+
declare type __VLS_Props_14 = {
|
|
82
108
|
/**
|
|
83
109
|
* Owning series id. **Optional** — when omitted, the first visible pie
|
|
84
110
|
* series is picked.
|
|
@@ -88,14 +114,14 @@ declare type __VLS_Props_12 = {
|
|
|
88
114
|
format?: ValueFormatter;
|
|
89
115
|
};
|
|
90
116
|
|
|
91
|
-
declare type
|
|
117
|
+
declare type __VLS_Props_15 = {
|
|
92
118
|
/** Horizontal line at this Y data value. Mutually exclusive with `time`. */
|
|
93
119
|
value?: number;
|
|
94
120
|
/** Vertical line at this `time` (epoch ms or `Date`). Mutually exclusive with `value`. */
|
|
95
121
|
time?: TimeValue;
|
|
96
|
-
/** Line and label-
|
|
122
|
+
/** Line and label-chip accent color. Default: the theme line color. */
|
|
97
123
|
color?: string;
|
|
98
|
-
/** Optional text label drawn in
|
|
124
|
+
/** Optional text label drawn in an annotation chip at the line's near end. */
|
|
99
125
|
label?: string;
|
|
100
126
|
/** Dash style. Default: `'dashed'`. */
|
|
101
127
|
style?: ReferenceLineStyle;
|
|
@@ -103,27 +129,27 @@ declare type __VLS_Props_13 = {
|
|
|
103
129
|
width?: number;
|
|
104
130
|
};
|
|
105
131
|
|
|
106
|
-
declare type
|
|
132
|
+
declare type __VLS_Props_16 = {
|
|
107
133
|
/** Desired number of labels (≥ 2). Overrides chart-level `axis.x.labelCount`. */
|
|
108
134
|
labelCount?: number;
|
|
109
135
|
/** Minimum pixel gap between adjacent labels (hard floor). Overrides chart-level. */
|
|
110
136
|
minLabelSpacing?: number;
|
|
111
137
|
};
|
|
112
138
|
|
|
113
|
-
declare type
|
|
139
|
+
declare type __VLS_Props_17 = {
|
|
114
140
|
/** Left edge — epoch ms or a `Date`. */
|
|
115
141
|
from: TimeValue;
|
|
116
142
|
/** Right edge — epoch ms or a `Date`. Omit (or pass `'now'`) for an open-ended band to the right edge. */
|
|
117
143
|
to?: TimeRegionEnd;
|
|
118
144
|
/** Band fill — any CSS color, typically translucent. Default: a faint tint of `color`. */
|
|
119
145
|
fill?: string;
|
|
120
|
-
/** Optional text label drawn in
|
|
146
|
+
/** Optional text label drawn in an annotation chip at the top of the band. */
|
|
121
147
|
label?: string;
|
|
122
|
-
/** Edge-line and label-
|
|
148
|
+
/** Edge-line and label-chip accent. Default: the theme's muted axis text color. */
|
|
123
149
|
color?: string;
|
|
124
150
|
};
|
|
125
151
|
|
|
126
|
-
declare type
|
|
152
|
+
declare type __VLS_Props_18 = {
|
|
127
153
|
/**
|
|
128
154
|
* @deprecated Use the named `sub` slot instead — it accepts arbitrary
|
|
129
155
|
* inline markup (icons, badges, formatted text) to mirror React's
|
|
@@ -137,12 +163,22 @@ declare type __VLS_Props_16 = {
|
|
|
137
163
|
sub?: string;
|
|
138
164
|
};
|
|
139
165
|
|
|
140
|
-
declare type
|
|
166
|
+
declare type __VLS_Props_19 = {
|
|
141
167
|
sort?: SnapshotSort;
|
|
142
168
|
format?: TooltipFormatter;
|
|
143
169
|
};
|
|
144
170
|
|
|
145
|
-
declare type
|
|
171
|
+
declare type __VLS_Props_2 = {
|
|
172
|
+
/** Flat `OHLCInput[]`, or `{ label, data }` to name the stream. */
|
|
173
|
+
data: CandlestickData;
|
|
174
|
+
options?: Partial<CandlestickSeriesOptions>;
|
|
175
|
+
/** Stable series ID — same value across remounts. */
|
|
176
|
+
id?: string;
|
|
177
|
+
/** Show/hide the series without unmounting it — excludes it from the Y-range fit and tooltip/legend. Default `true`. Live. */
|
|
178
|
+
visible?: boolean;
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
declare type __VLS_Props_20 = {
|
|
146
182
|
/** Custom tick-label formatter. Overrides the built-in range-adaptive default. */
|
|
147
183
|
format?: ValueFormatter;
|
|
148
184
|
/**
|
|
@@ -154,7 +190,7 @@ declare type __VLS_Props_18 = {
|
|
|
154
190
|
minLabelSpacing?: number;
|
|
155
191
|
};
|
|
156
192
|
|
|
157
|
-
declare type
|
|
193
|
+
declare type __VLS_Props_21 = {
|
|
158
194
|
/**
|
|
159
195
|
* Owning series id. **Optional** — when omitted, the first visible
|
|
160
196
|
* single-layer time series is picked, falling back to the first visible
|
|
@@ -164,18 +200,17 @@ declare type __VLS_Props_19 = {
|
|
|
164
200
|
color?: string;
|
|
165
201
|
/** Custom formatter; routed through NumberFlow's `formatter` so the digit animation still plays. */
|
|
166
202
|
format?: ValueFormatter;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
options?: Partial<CandlestickSeriesOptions>;
|
|
173
|
-
/** Stable series ID — same value across remounts. */
|
|
174
|
-
id?: string;
|
|
203
|
+
/**
|
|
204
|
+
* Badge motion. `true` (default) glides + counts up + fades in with the
|
|
205
|
+
* intro; `false` snaps with no easing; an object tunes individual parts.
|
|
206
|
+
*/
|
|
207
|
+
animate?: YLabelAnimate;
|
|
175
208
|
};
|
|
176
209
|
|
|
177
210
|
declare type __VLS_Props_3 = {
|
|
211
|
+
/** Visual theme. Live — changing this at runtime updates all themed elements. */
|
|
178
212
|
theme?: ChartTheme;
|
|
213
|
+
/** Grouped axis configuration (Y/X visibility, bounds, sizing). Live. */
|
|
179
214
|
axis?: AxisConfig;
|
|
180
215
|
/**
|
|
181
216
|
* Viewport padding. `top`/`bottom` are in pixels. `left`/`right` accept either pixels (`50`)
|
|
@@ -215,16 +250,33 @@ declare type __VLS_Props_3 = {
|
|
|
215
250
|
*/
|
|
216
251
|
initialRange?: VisibleRangeSpec;
|
|
217
252
|
};
|
|
218
|
-
/**
|
|
253
|
+
/**
|
|
254
|
+
* Controlled visible range. Same shape as the imperative
|
|
255
|
+
* `chart.setVisibleRange` — a bar count, an explicit `{from, to}` window,
|
|
256
|
+
* or `{from, bars}`. Every reference/value change applies via
|
|
257
|
+
* `chart.setVisibleRange`, so pair it with `onVisibleRangeChange` for a
|
|
258
|
+
* two-way binding; a same-value literal (compared structurally) is a
|
|
259
|
+
* no-op, so an inline object doesn't re-apply on every render.
|
|
260
|
+
*
|
|
261
|
+
* For a one-shot initial window that isn't re-applied on every prop
|
|
262
|
+
* change, use `viewport.initialRange` instead.
|
|
263
|
+
*/
|
|
264
|
+
visibleRange?: VisibleRangeSpec;
|
|
265
|
+
/** Show the chart background gradient. Live. Defaults to true. */
|
|
219
266
|
gradient?: boolean;
|
|
220
|
-
/**
|
|
267
|
+
/**
|
|
268
|
+
* Enable zoom, pan, and crosshair interactions. Defaults to true.
|
|
269
|
+
*
|
|
270
|
+
* Mount-only — core has no `setInteractive`, so changing this prop after
|
|
271
|
+
* mount is ignored.
|
|
272
|
+
*/
|
|
221
273
|
interactive?: boolean;
|
|
222
|
-
/** Background grid configuration. Default: `{ visible: true }`. */
|
|
274
|
+
/** Background grid configuration. Live. Default: `{ visible: true }`. */
|
|
223
275
|
grid?: {
|
|
224
276
|
visible: boolean;
|
|
225
277
|
};
|
|
226
278
|
/**
|
|
227
|
-
* How `<Title>` and `<InfoBar>` are positioned relative to the canvas.
|
|
279
|
+
* How `<Title>` and `<InfoBar>` are positioned relative to the canvas. Live.
|
|
228
280
|
* - `'overlay'` (default): absolute overlays on top of the canvas.
|
|
229
281
|
* - `'inline'`: flex siblings above the canvas — the canvas (and grid) shift down.
|
|
230
282
|
*/
|
|
@@ -235,10 +287,10 @@ declare type __VLS_Props_3 = {
|
|
|
235
287
|
* `<CandlestickSeries>` / `<BarSeries>` override these chart-level
|
|
236
288
|
* defaults unless the category here is explicitly `false`.
|
|
237
289
|
*
|
|
238
|
-
* **Init-only by reference
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
290
|
+
* **Init-only, but diffed by value, not reference.** A same-value
|
|
291
|
+
* inline object literal is a no-op — only a genuine change to the
|
|
292
|
+
* resolved config recreates the underlying `ChartInstance`, since the
|
|
293
|
+
* animation engine doesn't support live reconfiguration yet.
|
|
242
294
|
*/
|
|
243
295
|
animations?: boolean | AnimationsConfig;
|
|
244
296
|
/**
|
|
@@ -253,56 +305,94 @@ declare type __VLS_Props_3 = {
|
|
|
253
305
|
* the prop identity later is ignored.
|
|
254
306
|
*/
|
|
255
307
|
onEdgeReached?: (info: EdgeReachedInfo) => void;
|
|
308
|
+
/**
|
|
309
|
+
* Fired on a click (or tap) on the chart canvas that isn't the tail end
|
|
310
|
+
* of a pan drag. `info.spatialHit` resolves a pie/heatmap/custom-spatial
|
|
311
|
+
* series directly under the pointer; for a time-series series, resolve
|
|
312
|
+
* the point yourself from `info.time` (`chart.getDataAtTime` /
|
|
313
|
+
* `buildHoverSnapshots`). Live — the latest callback is always used.
|
|
314
|
+
*/
|
|
315
|
+
onPointClick?: (info: PointClickInfo) => void;
|
|
316
|
+
/**
|
|
317
|
+
* Fired on a double-click on the chart canvas. The chart also responds
|
|
318
|
+
* by calling `fitContent()`. Live — the latest callback is always used.
|
|
319
|
+
*/
|
|
320
|
+
onPointDoubleClick?: (info: PointClickInfo) => void;
|
|
321
|
+
/**
|
|
322
|
+
* Fired when the spatially-hovered series/index changes (pie, heatmap,
|
|
323
|
+
* or a custom spatial kind) — `null` when the pointer leaves every hit
|
|
324
|
+
* area. Live — the latest callback is always used.
|
|
325
|
+
*/
|
|
326
|
+
onSeriesHover?: (hit: SeriesHoverInfo | null) => void;
|
|
327
|
+
/**
|
|
328
|
+
* Fired once the underlying `ChartInstance` is constructed — on mount,
|
|
329
|
+
* and again if the chart is ever rebuilt (a genuine `animations` value
|
|
330
|
+
* change). Live — the latest callback is always used for the next rebuild.
|
|
331
|
+
*/
|
|
332
|
+
onReady?: (chart: ChartInstance) => void;
|
|
333
|
+
/**
|
|
334
|
+
* Fired whenever the committed visible range changes — pan, zoom,
|
|
335
|
+
* `fitContent()`, a data update that shifts the tail-scroll window, or a
|
|
336
|
+
* `visibleRange` prop change. Live — the latest callback is always used.
|
|
337
|
+
*/
|
|
338
|
+
onVisibleRangeChange?: (range: VisibleRange) => void;
|
|
339
|
+
/**
|
|
340
|
+
* Fired on every crosshair move, with `null` when the pointer leaves the
|
|
341
|
+
* chart. Live — the latest callback is always used.
|
|
342
|
+
*/
|
|
343
|
+
onCrosshairMove?: (position: CrosshairPosition | null) => void;
|
|
256
344
|
};
|
|
257
345
|
|
|
258
346
|
declare type __VLS_Props_4 = {
|
|
347
|
+
data: HeatmapCellData[];
|
|
348
|
+
options?: Partial<HeatmapSeriesOptions>;
|
|
349
|
+
/** Stable series ID — same value across remounts. */
|
|
350
|
+
id?: string;
|
|
351
|
+
/** Show/hide the series without unmounting it — excludes it from the Y-range fit and tooltip/legend. Default `true`. Live. */
|
|
352
|
+
visible?: boolean;
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
declare type __VLS_Props_5 = {
|
|
259
356
|
/** Flat `TimePoint[]`, `TimePoint[][]`, or named `{ label, color?, data }` layers. Time accepts ms or `Date`. */
|
|
260
357
|
data: MultiLayerData;
|
|
261
358
|
options?: Partial<LineSeriesOptions>;
|
|
262
359
|
/** Stable series ID — same value across remounts. */
|
|
263
360
|
id?: string;
|
|
361
|
+
/** Show/hide the series without unmounting it — excludes it from the Y-range fit and tooltip/legend. Default `true`. Live. */
|
|
362
|
+
visible?: boolean;
|
|
264
363
|
};
|
|
265
364
|
|
|
266
|
-
declare type
|
|
365
|
+
declare type __VLS_Props_6 = {
|
|
267
366
|
data: PieSliceData[];
|
|
268
367
|
options?: Partial<PieSeriesOptions>;
|
|
269
368
|
/** Stable series ID — same value across remounts. */
|
|
270
369
|
id?: string;
|
|
370
|
+
/** Show/hide the series without unmounting it — excludes it from the Y-range fit and tooltip/legend. Default `true`. Live. */
|
|
371
|
+
visible?: boolean;
|
|
271
372
|
};
|
|
272
373
|
|
|
273
|
-
declare type
|
|
374
|
+
declare type __VLS_Props_7 = {
|
|
375
|
+
/**
|
|
376
|
+
* Owning series id. **Optional** — when omitted, the first visible heatmap
|
|
377
|
+
* series is picked.
|
|
378
|
+
*/
|
|
379
|
+
seriesId?: string;
|
|
380
|
+
/** Custom formatter for the cell value. Default: plain integers, compact decimals. */
|
|
381
|
+
format?: ValueFormatter;
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
declare type __VLS_Props_8 = {
|
|
274
385
|
sort?: SnapshotSort;
|
|
275
386
|
format?: TooltipFormatter;
|
|
276
387
|
};
|
|
277
388
|
|
|
278
|
-
declare type
|
|
389
|
+
declare type __VLS_Props_9 = {
|
|
279
390
|
items?: LegendItemOverride[];
|
|
280
391
|
position?: 'bottom' | 'right';
|
|
281
392
|
/** `'isolate'` shows only the clicked item; `'solo'` is a @deprecated alias. */
|
|
282
393
|
mode?: LegendMode;
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
declare type __VLS_Props_8 = {
|
|
286
|
-
/** X anchor — epoch ms or a `Date`. */
|
|
287
|
-
time: TimeValue;
|
|
288
|
-
/** Y anchor as a data value. Omit and set `seriesId` to snap to that series' value at `time`. */
|
|
289
|
-
value?: number;
|
|
290
|
-
/** Snap Y to this series' value at `time` when `value` is omitted. Also the default color source. */
|
|
291
|
-
seriesId?: string;
|
|
292
|
-
/** Glyph at the anchor. Default: `'dot'`. Arrows point their tip at the anchor. */
|
|
293
|
-
shape?: MarkerShape;
|
|
294
|
-
/** Reuse the line pulse halo around the anchor. Default: `false`. */
|
|
295
|
-
pulse?: boolean;
|
|
296
|
-
/** Optional text label drawn in a pill next to the anchor. */
|
|
297
|
-
label?: string;
|
|
298
|
-
/** Color override. Falls back to the series color (when `seriesId` is set), then the theme line color. */
|
|
299
|
-
color?: string;
|
|
300
|
-
};
|
|
301
|
-
|
|
302
|
-
declare type __VLS_Props_9 = {
|
|
303
|
-
data: NavigatorData;
|
|
304
|
-
/** Strip height in CSS pixels. Defaults to `theme.navigator.height` (60). */
|
|
305
|
-
height?: number;
|
|
394
|
+
/** Fired after a click changes series visibility — via the built-in UI or a custom slot calling `item.toggle()`/`isolate()` directly. */
|
|
395
|
+
onToggle?: (info: LegendToggleInfo) => void;
|
|
306
396
|
};
|
|
307
397
|
|
|
308
398
|
declare function __VLS_template(): {
|
|
@@ -452,6 +542,7 @@ declare function __VLS_template_8(): {
|
|
|
452
542
|
isLive: boolean;
|
|
453
543
|
direction: YLabelDirection;
|
|
454
544
|
format: ValueFormatter;
|
|
545
|
+
opacity: number;
|
|
455
546
|
}): unknown;
|
|
456
547
|
}> & {
|
|
457
548
|
default?(ctx: {
|
|
@@ -461,6 +552,7 @@ declare function __VLS_template_8(): {
|
|
|
461
552
|
isLive: boolean;
|
|
462
553
|
direction: YLabelDirection;
|
|
463
554
|
format: ValueFormatter;
|
|
555
|
+
opacity: number;
|
|
464
556
|
}): unknown;
|
|
465
557
|
};
|
|
466
558
|
refs: {};
|
|
@@ -542,7 +634,7 @@ export declare const andromeda: ThemePreset;
|
|
|
542
634
|
* - `axis.ticks` — axis tick label cross-fade.
|
|
543
635
|
* - `toggle` — series visibility (alpha fade + Y re-fit, locked to one
|
|
544
636
|
* duration so they finish on the same frame).
|
|
545
|
-
* - `series.{line,candlestick,bar,pie}` — per-series-type data tweens.
|
|
637
|
+
* - `series.{line,candlestick,bar,pie,heatmap}` — per-series-type data tweens.
|
|
546
638
|
*
|
|
547
639
|
* Top-level `false` disables every animation category. `axis: false`
|
|
548
640
|
* disables both axes and ticks. `axis.y: false` / `axis.x: false` disables
|
|
@@ -555,7 +647,7 @@ export declare const andromeda: ThemePreset;
|
|
|
555
647
|
* own override; an explicit `series.<type>: false` (or top-level `false`)
|
|
556
648
|
* is a hard disable that overrides per-series.
|
|
557
649
|
*/
|
|
558
|
-
declare interface AnimationsConfig {
|
|
650
|
+
export declare interface AnimationsConfig {
|
|
559
651
|
/**
|
|
560
652
|
* Axis-level animation. `false` collapses both axes and ticks to instant.
|
|
561
653
|
*/
|
|
@@ -664,6 +756,15 @@ declare interface AnimationsConfig {
|
|
|
664
756
|
* @default {@link DEFAULT_LINE_ENTRY}
|
|
665
757
|
*/
|
|
666
758
|
entry?: AnimationTime;
|
|
759
|
+
/**
|
|
760
|
+
* Initial-load reveal — the line draws itself left-to-right
|
|
761
|
+
* on the first data seed, with a glowing head riding the
|
|
762
|
+
* reveal front. The value is the per-element wave duration;
|
|
763
|
+
* the full sweep lasts ~2×. `false` / `0` disables the intro.
|
|
764
|
+
*
|
|
765
|
+
* @default {@link DEFAULT_LINE_INTRO}
|
|
766
|
+
*/
|
|
767
|
+
intro?: AnimationTime;
|
|
667
768
|
/**
|
|
668
769
|
* Last-value chase duration on `updateLastPoint`. `false` /
|
|
669
770
|
* `0` snaps to the target instantly.
|
|
@@ -691,6 +792,15 @@ declare interface AnimationsConfig {
|
|
|
691
792
|
* @default {@link DEFAULT_CANDLESTICK_ENTRY}
|
|
692
793
|
*/
|
|
693
794
|
entry?: AnimationTime;
|
|
795
|
+
/**
|
|
796
|
+
* Initial-load reveal — candles unfold in a left-to-right
|
|
797
|
+
* wave on the first data seed. The value is the per-candle
|
|
798
|
+
* wave duration; the full wave lasts ~2×. `false` / `0`
|
|
799
|
+
* disables the intro.
|
|
800
|
+
*
|
|
801
|
+
* @default {@link DEFAULT_CANDLESTICK_INTRO}
|
|
802
|
+
*/
|
|
803
|
+
intro?: AnimationTime;
|
|
694
804
|
/**
|
|
695
805
|
* Live OHLC chase duration on `updateLastPoint`. `false` / `0`
|
|
696
806
|
* snaps to the target instantly.
|
|
@@ -710,6 +820,15 @@ declare interface AnimationsConfig {
|
|
|
710
820
|
* @default {@link DEFAULT_BAR_ENTRY}
|
|
711
821
|
*/
|
|
712
822
|
entry?: AnimationTime;
|
|
823
|
+
/**
|
|
824
|
+
* Initial-load reveal — bars grow from the baseline in a
|
|
825
|
+
* left-to-right wave on the first data seed. The value is the
|
|
826
|
+
* per-bar wave duration; the full wave lasts ~2×. `false` /
|
|
827
|
+
* `0` disables the intro.
|
|
828
|
+
*
|
|
829
|
+
* @default {@link DEFAULT_BAR_INTRO}
|
|
830
|
+
*/
|
|
831
|
+
intro?: AnimationTime;
|
|
713
832
|
/**
|
|
714
833
|
* Live value chase duration on `updateLastPoint`. `false` /
|
|
715
834
|
* `0` snaps to the target instantly.
|
|
@@ -719,13 +838,15 @@ declare interface AnimationsConfig {
|
|
|
719
838
|
smooth?: AnimationTime;
|
|
720
839
|
};
|
|
721
840
|
/**
|
|
722
|
-
* Pie segment entry/update tweens.
|
|
723
|
-
*
|
|
724
|
-
*
|
|
841
|
+
* Pie segment entry/update tweens. `false` disables the slice
|
|
842
|
+
* entry sweep (`update` is still parse-only; wiring lands in a
|
|
843
|
+
* later phase).
|
|
725
844
|
*/
|
|
726
845
|
pie?: false | {
|
|
727
846
|
/**
|
|
728
|
-
*
|
|
847
|
+
* Initial-load reveal — slices unfurl clockwise over this
|
|
848
|
+
* total duration on the first data seed, then the outside
|
|
849
|
+
* labels chain in. `false` / `0` disables the intro.
|
|
729
850
|
*
|
|
730
851
|
* @default {@link DEFAULT_PIE_ENTRY}
|
|
731
852
|
*/
|
|
@@ -737,6 +858,25 @@ declare interface AnimationsConfig {
|
|
|
737
858
|
*/
|
|
738
859
|
update?: AnimationTime;
|
|
739
860
|
};
|
|
861
|
+
/**
|
|
862
|
+
* Heatmap tweens. `false` disables the entrance wave, value tween,
|
|
863
|
+
* and hover lift.
|
|
864
|
+
*/
|
|
865
|
+
heatmap?: false | {
|
|
866
|
+
/**
|
|
867
|
+
* Per-cell entrance duration — the diagonal reveal wave on
|
|
868
|
+
* first paint / grid-shape change.
|
|
869
|
+
*
|
|
870
|
+
* @default {@link DEFAULT_HEATMAP_ENTRY}
|
|
871
|
+
*/
|
|
872
|
+
entry?: AnimationTime;
|
|
873
|
+
/**
|
|
874
|
+
* In-place value/color tween and hover-lift ease.
|
|
875
|
+
*
|
|
876
|
+
* @default {@link DEFAULT_HEATMAP_UPDATE}
|
|
877
|
+
*/
|
|
878
|
+
update?: AnimationTime;
|
|
879
|
+
};
|
|
740
880
|
};
|
|
741
881
|
}
|
|
742
882
|
|
|
@@ -757,7 +897,7 @@ declare interface AnimationState {
|
|
|
757
897
|
* - `string` in `<n>ms` or `<n>s` form (`"250ms"`, `"1s"`, `"2.5s"`)
|
|
758
898
|
* - `false` — disable (equivalent to `0`)
|
|
759
899
|
*/
|
|
760
|
-
declare type AnimationTime = Milliseconds | string | false;
|
|
900
|
+
export declare type AnimationTime = Milliseconds | string | false;
|
|
761
901
|
|
|
762
902
|
/**
|
|
763
903
|
* Build a 2-stop candle-body gradient around a single hex color — a lightened
|
|
@@ -853,6 +993,21 @@ declare interface AxisTickTrackerOptions {
|
|
|
853
993
|
|
|
854
994
|
export declare const ayuMirage: ThemePreset;
|
|
855
995
|
|
|
996
|
+
/**
|
|
997
|
+
* History back-fill: the reveal front sweeps from the data boundary into
|
|
998
|
+
* the prepended span. Meant for the `historyReveal` option, whose localized
|
|
999
|
+
* frame interprets clip coordinates in reveal space — `x = 0` at the
|
|
1000
|
+
* boundary, increasing toward the older end, `width` = the prepended span's
|
|
1001
|
+
* bitmap width — so the line reads as plotting itself backwards. The
|
|
1002
|
+
* default `historyReveal` for the line series.
|
|
1003
|
+
*/
|
|
1004
|
+
export declare function backfillSweepIntro(): LineIntroFn;
|
|
1005
|
+
|
|
1006
|
+
/** Declarative per-bar transform — translation and opacity only; growth is
|
|
1007
|
+
* expressed through {@link BarIntroDirectives.value} instead so stacked
|
|
1008
|
+
* columns rise as one attached unit. */
|
|
1009
|
+
export declare type BarElementTransform = WaveIntroTransform;
|
|
1010
|
+
|
|
856
1011
|
/**
|
|
857
1012
|
* Entrance animation styles for bars.
|
|
858
1013
|
* - `'none'` — no animation.
|
|
@@ -861,7 +1016,7 @@ export declare const ayuMirage: ThemePreset;
|
|
|
861
1016
|
* - `'slide'` — translates in from the right with a fade.
|
|
862
1017
|
* - `'fade-grow'` *(default)* — fade + grow combined.
|
|
863
1018
|
*/
|
|
864
|
-
declare type BarEntryAnimation = 'none' | 'fade' | 'grow' | 'slide' | 'fade-grow';
|
|
1019
|
+
export declare type BarEntryAnimation = 'none' | 'fade' | 'grow' | 'slide' | 'fade-grow';
|
|
865
1020
|
|
|
866
1021
|
/** Post-transform bitmap rectangle a bar painter fills. */
|
|
867
1022
|
declare interface BarGeometry {
|
|
@@ -873,6 +1028,57 @@ declare interface BarGeometry {
|
|
|
873
1028
|
baselineY: number;
|
|
874
1029
|
}
|
|
875
1030
|
|
|
1031
|
+
/** What one intro frame should look like. */
|
|
1032
|
+
export declare interface BarIntroDirectives {
|
|
1033
|
+
/** Horizontal clip window in bitmap px applied to the whole pass.
|
|
1034
|
+
* Omitted sides default to the pane edges. */
|
|
1035
|
+
clip?: {
|
|
1036
|
+
fromX?: number;
|
|
1037
|
+
toX?: number;
|
|
1038
|
+
};
|
|
1039
|
+
/** Per-value transform applied before geometry and stacking. Scaling the
|
|
1040
|
+
* value grows the bar from the baseline on every render path. */
|
|
1041
|
+
value?: (args: BarIntroValueArgs) => number;
|
|
1042
|
+
/** Per-bar transform applied after the geometry is resolved. */
|
|
1043
|
+
element?: (el: BarIntroElement) => BarElementTransform;
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
/** Arguments handed to {@link BarIntroDirectives.element} per drawn bar. */
|
|
1047
|
+
export declare interface BarIntroElement extends WaveIntroElement {
|
|
1048
|
+
/** Settled left edge in bitmap px. */
|
|
1049
|
+
x: number;
|
|
1050
|
+
/** Settled top edge in bitmap px. */
|
|
1051
|
+
topY: number;
|
|
1052
|
+
/** Settled bar height in bitmap px. */
|
|
1053
|
+
barHeight: number;
|
|
1054
|
+
/** Y the bar grows from — the zero line, or the segment's own base for
|
|
1055
|
+
* stacked bars. */
|
|
1056
|
+
baselineY: number;
|
|
1057
|
+
/** Bar body width in bitmap px. */
|
|
1058
|
+
barWidth: number;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
/** One frame of bar intro choreography. */
|
|
1062
|
+
export declare type BarIntroFn = (frame: BarIntroFrame) => BarIntroDirectives;
|
|
1063
|
+
|
|
1064
|
+
/** Read view of one bar intro frame. */
|
|
1065
|
+
export declare interface BarIntroFrame extends WaveIntroFrame {
|
|
1066
|
+
/** Time → bitmap X through the live time scale. */
|
|
1067
|
+
timeToX(time: number): number;
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
/** Arguments handed to {@link BarIntroDirectives.value} for every rendered value. */
|
|
1071
|
+
export declare interface BarIntroValueArgs {
|
|
1072
|
+
layerIndex: number;
|
|
1073
|
+
time: number;
|
|
1074
|
+
/** The value the renderer would draw without the intro (live smoothing included). */
|
|
1075
|
+
value: number;
|
|
1076
|
+
/** Normalized x-position across the visible window, clamped to `[0, 1]`. */
|
|
1077
|
+
position: number;
|
|
1078
|
+
/** Eased wave progress for this value, staggered left → right. */
|
|
1079
|
+
progress: number;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
876
1082
|
/** Arguments handed to a {@link BarPainter} once per bar / stacked segment. */
|
|
877
1083
|
export declare interface BarPaintArgs {
|
|
878
1084
|
geom: BarGeometry;
|
|
@@ -898,7 +1104,9 @@ export declare interface BarPaintArgs {
|
|
|
898
1104
|
/** Paints one bar / stacked segment. Owns its fill — it calls `ctx.fill()`. */
|
|
899
1105
|
export declare type BarPainter = (env: PaintEnv, args: BarPaintArgs) => void;
|
|
900
1106
|
|
|
901
|
-
export declare const BarSeries: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
1107
|
+
export declare const BarSeries: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
1108
|
+
visible: boolean;
|
|
1109
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
902
1110
|
|
|
903
1111
|
/** Series definition for `chart.addSeries` — keeps the chart renderer-agnostic
|
|
904
1112
|
* so hosts that never render bars don't bundle this module. */
|
|
@@ -938,6 +1146,63 @@ export declare interface BarSeriesOptions {
|
|
|
938
1146
|
* @see BarSeriesOptions.entryAnimation
|
|
939
1147
|
*/
|
|
940
1148
|
entryMs?: number | false;
|
|
1149
|
+
/**
|
|
1150
|
+
* Initial-load intro animation — a `BarIntroFn`, usually one of the
|
|
1151
|
+
* shipped factories: `growIntro()` (the default), `springIntro()`,
|
|
1152
|
+
* `riseIntro()`, `fadeIntro()`, `wipeIntro()`. Independent of
|
|
1153
|
+
* `entryAnimation` — the intro plays once on the first data seed,
|
|
1154
|
+
* streaming entrances keep their own style.
|
|
1155
|
+
*
|
|
1156
|
+
* @see introMs — cross-linked duration for this animation.
|
|
1157
|
+
*/
|
|
1158
|
+
introAnimation?: BarIntroFn;
|
|
1159
|
+
/**
|
|
1160
|
+
* Initial-load reveal duration in milliseconds. On the first data seed
|
|
1161
|
+
* (empty → non-empty) bars reveal in a left-to-right wave: each bar
|
|
1162
|
+
* tweens for `introMs`, starts staggered across another `introMs`, so
|
|
1163
|
+
* the full wave lasts ~2×. The visual style is picked by
|
|
1164
|
+
* `introAnimation`. Default: `500`.
|
|
1165
|
+
*
|
|
1166
|
+
* ```
|
|
1167
|
+
* // Per-series override:
|
|
1168
|
+
* <BarSeries options={{ introMs: 800 }} data={data} />
|
|
1169
|
+
*
|
|
1170
|
+
* // Chart-level default:
|
|
1171
|
+
* <ChartContainer animations={{ series: { bar: { intro: 800 } } }}>
|
|
1172
|
+
* <BarSeries data={data} />
|
|
1173
|
+
* </ChartContainer>
|
|
1174
|
+
* ```
|
|
1175
|
+
*
|
|
1176
|
+
* `false` or `0` disables the intro. Bulk re-seeds of a non-empty series
|
|
1177
|
+
* never replay it. Skipped entirely under `prefers-reduced-motion`.
|
|
1178
|
+
*/
|
|
1179
|
+
introMs?: number | false;
|
|
1180
|
+
/**
|
|
1181
|
+
* History-prepend reveal — plays when older points land at the front of
|
|
1182
|
+
* the series (the `EdgeLoader` load-more-on-scroll path). A wave sweeps
|
|
1183
|
+
* from the data boundary into the new history; each bar's stagger
|
|
1184
|
+
* position is `0` at the boundary and `1` at the deepest new point, so
|
|
1185
|
+
* intro factories that read `el.progress` (`fadeIntro()` — the default,
|
|
1186
|
+
* `riseIntro()`, `growIntro()`, `springIntro()`) work here unchanged.
|
|
1187
|
+
* Clip directives are interpreted in reveal space: `x = 0` at the
|
|
1188
|
+
* boundary, increasing toward the older end.
|
|
1189
|
+
*
|
|
1190
|
+
* The fn receives a localized frame: `range` is the prepended time span
|
|
1191
|
+
* (not the visible window) and `width` is that span's bitmap width.
|
|
1192
|
+
*
|
|
1193
|
+
* `'none'` disables the reveal — prepended points appear instantly.
|
|
1194
|
+
*
|
|
1195
|
+
* @see historyRevealMs — cross-linked duration for this animation.
|
|
1196
|
+
*/
|
|
1197
|
+
historyReveal?: BarIntroFn | 'none';
|
|
1198
|
+
/**
|
|
1199
|
+
* History-prepend reveal duration in milliseconds — the per-bar wave
|
|
1200
|
+
* duration; the full reveal lasts ~2×. Default: `400`. `false` or `0`
|
|
1201
|
+
* disables the reveal. Skipped entirely under `prefers-reduced-motion`.
|
|
1202
|
+
*
|
|
1203
|
+
* @see BarSeriesOptions.historyReveal
|
|
1204
|
+
*/
|
|
1205
|
+
historyRevealMs?: number | false;
|
|
941
1206
|
/**
|
|
942
1207
|
* How long the displayed bar value takes to catch up to the actual one
|
|
943
1208
|
* on every `updateLastPoint`. Default: `250` ms.
|
|
@@ -995,10 +1260,11 @@ export declare interface BarSeriesOptions {
|
|
|
995
1260
|
* Multi-layer renderers (Line, Bar) override them against each internal store.
|
|
996
1261
|
*
|
|
997
1262
|
* Time-series data queries are NOT here — they live on {@link TimeSeriesRenderer}
|
|
998
|
-
* as required methods, so Chart narrows via
|
|
999
|
-
* directly (no optional chaining).
|
|
1263
|
+
* as required methods, so Chart narrows via {@link isTimeSeriesRenderer} and
|
|
1264
|
+
* calls them directly (no optional chaining). Never narrow by comparing `kind`
|
|
1265
|
+
* against a single spatial value — new spatial kinds slip through such guards.
|
|
1000
1266
|
*/
|
|
1001
|
-
declare interface BaseSeriesRenderer {
|
|
1267
|
+
export declare interface BaseSeriesRenderer {
|
|
1002
1268
|
/** Paint the series on the main layer. */
|
|
1003
1269
|
render(ctx: SeriesRenderContext): void;
|
|
1004
1270
|
/**
|
|
@@ -1008,6 +1274,21 @@ declare interface BaseSeriesRenderer {
|
|
|
1008
1274
|
setData(data: unknown, layerIndex?: number): void;
|
|
1009
1275
|
/** Append a single point (real-time tick). Optional — not all renderers support streaming. */
|
|
1010
1276
|
appendPoint?(point: unknown, layerIndex?: number): void;
|
|
1277
|
+
/**
|
|
1278
|
+
* Insert older points at the front of the series (history prepend / load-more).
|
|
1279
|
+
* The suffix already on screen is untouched, so — unlike {@link setData} — this
|
|
1280
|
+
* does NOT re-arm the intro, clear entrance/chase state, or force a Y snap.
|
|
1281
|
+
* Optional; not all renderers support it.
|
|
1282
|
+
*/
|
|
1283
|
+
prependPoints?(points: unknown[], layerIndex?: number): void;
|
|
1284
|
+
/**
|
|
1285
|
+
* Seed the placeholder shapes a loading indicator was showing at the data
|
|
1286
|
+
* boundary, called by the chart right before the matching
|
|
1287
|
+
* {@link prependPoints}. A history reveal that supports morphing (e.g.
|
|
1288
|
+
* `skeletonMorphIntro`) grows the real elements out of these shapes; a
|
|
1289
|
+
* renderer that doesn't implement this simply plays its plain reveal.
|
|
1290
|
+
*/
|
|
1291
|
+
setHistoryHandoff?(bars: PlaceholderBar[]): void;
|
|
1011
1292
|
/** Replace the last point in place (live candle update). Optional. */
|
|
1012
1293
|
updateLastPoint?(point: unknown, layerIndex?: number): void;
|
|
1013
1294
|
/**
|
|
@@ -1077,6 +1358,14 @@ declare interface BaseSeriesRenderer {
|
|
|
1077
1358
|
value: number;
|
|
1078
1359
|
isLive: boolean;
|
|
1079
1360
|
} | null;
|
|
1361
|
+
/**
|
|
1362
|
+
* Stacked value at an arbitrary `time` — the cumulative stack top at that
|
|
1363
|
+
* sample, mirroring {@link getStackedLastValue} but anywhere in the window
|
|
1364
|
+
* (used for the YLabel intro count-up start so it shares the stack basis).
|
|
1365
|
+
* Single-layer renderers return the nearest sample's value; `null` when no
|
|
1366
|
+
* layer has a sample near `time`.
|
|
1367
|
+
*/
|
|
1368
|
+
getStackedValueAtTime?(time: number, interval: number): number | null;
|
|
1080
1369
|
/**
|
|
1081
1370
|
* Per-layer last snapshots, each with its own `time`. Useful for ragged
|
|
1082
1371
|
* multi-layer series where layers advance independently — last-mode
|
|
@@ -1124,6 +1413,13 @@ declare interface BaseSeriesRenderer {
|
|
|
1124
1413
|
getLayerAlpha?(index: number): number;
|
|
1125
1414
|
/** True while the renderer has an active animation (Chart polls per frame). */
|
|
1126
1415
|
readonly needsAnimation?: boolean;
|
|
1416
|
+
/**
|
|
1417
|
+
* Reveal-front position in `[0, 1]` of the initial-load intro across the
|
|
1418
|
+
* visible window — `1` once settled (or when the renderer has no intro).
|
|
1419
|
+
* Overlays (the Y-label badge, annotations) key their own entrance off this
|
|
1420
|
+
* so they reveal in step with the series draw. Omitted → treated as `1`.
|
|
1421
|
+
*/
|
|
1422
|
+
getIntroFront?(): number;
|
|
1127
1423
|
/**
|
|
1128
1424
|
* Optional overlay hook. Chart invokes this during the overlay pass so each
|
|
1129
1425
|
* renderer can paint type-specific overlays (crosshair dots, pulse dots).
|
|
@@ -1146,7 +1442,7 @@ declare interface BaseSeriesRenderer {
|
|
|
1146
1442
|
dispose(): void;
|
|
1147
1443
|
}
|
|
1148
1444
|
|
|
1149
|
-
declare interface BitmapCoordinateSpace {
|
|
1445
|
+
export declare interface BitmapCoordinateSpace {
|
|
1150
1446
|
context: CanvasRenderingContext2D;
|
|
1151
1447
|
bitmapSize: {
|
|
1152
1448
|
width: number;
|
|
@@ -1204,6 +1500,24 @@ export declare interface BuildLastSnapshotsArgs {
|
|
|
1204
1500
|
cacheKey: string;
|
|
1205
1501
|
}
|
|
1206
1502
|
|
|
1503
|
+
/** What one element should look like this frame. Every field is optional —
|
|
1504
|
+
* an empty object renders the element settled. */
|
|
1505
|
+
export declare interface CandleElementTransform extends WaveIntroTransform {
|
|
1506
|
+
/** Lerp factor from `anchorY` toward the settled edges: `0` = collapsed
|
|
1507
|
+
* at the anchor, `1` = settled. Applied before the offsets. */
|
|
1508
|
+
unfold?: number;
|
|
1509
|
+
/** Absolute top edge override in bitmap px — replaces the `unfold` math
|
|
1510
|
+
* for this frame (the offsets still apply). Lets a morph start from
|
|
1511
|
+
* arbitrary geometry instead of the anchor. */
|
|
1512
|
+
topY?: number;
|
|
1513
|
+
/** Absolute bottom edge override in bitmap px — see {@link topY}. */
|
|
1514
|
+
bottomY?: number;
|
|
1515
|
+
/** Blend of the element's fill toward the theme's muted placeholder gray
|
|
1516
|
+
* (the axis text color): `0` = the candle's own color, `1` = fully
|
|
1517
|
+
* placeholder-colored. Volume bars ignore it. */
|
|
1518
|
+
tint?: number;
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1207
1521
|
/** Post-transform bitmap rectangle a candle-body painter fills. */
|
|
1208
1522
|
declare interface CandleGeometry {
|
|
1209
1523
|
x: number;
|
|
@@ -1212,6 +1526,51 @@ declare interface CandleGeometry {
|
|
|
1212
1526
|
height: number;
|
|
1213
1527
|
}
|
|
1214
1528
|
|
|
1529
|
+
/** What one intro frame should look like. */
|
|
1530
|
+
export declare interface CandleIntroDirectives {
|
|
1531
|
+
/** Horizontal clip window in bitmap px applied to the whole pass (volume
|
|
1532
|
+
* band included). Omitted sides default to the pane edges. */
|
|
1533
|
+
clip?: {
|
|
1534
|
+
fromX?: number;
|
|
1535
|
+
toX?: number;
|
|
1536
|
+
};
|
|
1537
|
+
/** Per-element transform — called for every wick, body, and volume bar. */
|
|
1538
|
+
element?: (el: CandleIntroElement) => CandleElementTransform;
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
/** Arguments handed to {@link CandleIntroDirectives.element} per element. */
|
|
1542
|
+
export declare interface CandleIntroElement extends WaveIntroElement {
|
|
1543
|
+
/** Which candle element is being transformed. */
|
|
1544
|
+
element: 'wick' | 'body' | 'volume';
|
|
1545
|
+
/** Settled left edge in bitmap px. */
|
|
1546
|
+
x: number;
|
|
1547
|
+
/** Settled top edge in bitmap px. */
|
|
1548
|
+
topY: number;
|
|
1549
|
+
/** Settled bottom edge in bitmap px. */
|
|
1550
|
+
bottomY: number;
|
|
1551
|
+
/** Y the element unfolds around — the open price for wick/body, the band
|
|
1552
|
+
* baseline for volume. */
|
|
1553
|
+
anchorY: number;
|
|
1554
|
+
/** Element width in bitmap px. */
|
|
1555
|
+
barWidth: number;
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
/** One frame of candlestick intro choreography. */
|
|
1559
|
+
export declare type CandleIntroFn = (frame: CandleIntroFrame) => CandleIntroDirectives;
|
|
1560
|
+
|
|
1561
|
+
/** Read view of one candlestick intro frame. */
|
|
1562
|
+
export declare interface CandleIntroFrame extends WaveIntroFrame {
|
|
1563
|
+
/** Time → bitmap X through the live time scale. */
|
|
1564
|
+
timeToX(time: number): number;
|
|
1565
|
+
/**
|
|
1566
|
+
* Placeholder shapes the loading indicator was showing when this history
|
|
1567
|
+
* reveal armed — present only on a history-reveal frame that followed a
|
|
1568
|
+
* loading-indicator hand-off (see `skeletonMorphIntro`). Absent on
|
|
1569
|
+
* initial-load intro frames and on reveals with no hand-off.
|
|
1570
|
+
*/
|
|
1571
|
+
placeholders?: readonly MorphPlaceholder[];
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1215
1574
|
/** Arguments handed to a {@link CandlePainter} once per candle body. */
|
|
1216
1575
|
export declare interface CandlePaintArgs {
|
|
1217
1576
|
geom: CandleGeometry;
|
|
@@ -1265,9 +1624,11 @@ declare interface CandlestickDirectionColors {
|
|
|
1265
1624
|
* - `'fade-unfold'` *(default)* — fade + unfold combined; the default because a lone fade is
|
|
1266
1625
|
* hard to notice in streaming demos, while the body-unfold gives a clear visual anchor.
|
|
1267
1626
|
*/
|
|
1268
|
-
declare type CandlestickEntryAnimation = 'none' | 'fade' | 'unfold' | 'slide' | 'fade-unfold';
|
|
1627
|
+
export declare type CandlestickEntryAnimation = 'none' | 'fade' | 'unfold' | 'slide' | 'fade-unfold';
|
|
1269
1628
|
|
|
1270
|
-
export declare const CandlestickSeries: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{}>, {
|
|
1629
|
+
export declare const CandlestickSeries: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{}>, {
|
|
1630
|
+
visible: boolean;
|
|
1631
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
1271
1632
|
|
|
1272
1633
|
/** Series definition for `chart.addSeries` — keeps the chart renderer-agnostic
|
|
1273
1634
|
* so hosts that never render candles don't bundle this module. */
|
|
@@ -1310,6 +1671,63 @@ export declare interface CandlestickSeriesOptions {
|
|
|
1310
1671
|
* @see CandlestickSeriesOptions.entryAnimation
|
|
1311
1672
|
*/
|
|
1312
1673
|
entryMs?: number | false;
|
|
1674
|
+
/**
|
|
1675
|
+
* Initial-load intro animation — a `CandleIntroFn`, usually one of the
|
|
1676
|
+
* shipped factories: `candleUnfoldIntro()` (the default),
|
|
1677
|
+
* `wickBodyIntro()`, `riseIntro()`, `fadeIntro()`. Independent of
|
|
1678
|
+
* `entryAnimation` — the intro plays once on the first data seed,
|
|
1679
|
+
* streaming entrances keep their own style.
|
|
1680
|
+
*
|
|
1681
|
+
* @see introMs — cross-linked duration for this animation.
|
|
1682
|
+
*/
|
|
1683
|
+
introAnimation?: CandleIntroFn;
|
|
1684
|
+
/**
|
|
1685
|
+
* Initial-load reveal duration in milliseconds. On the first data seed
|
|
1686
|
+
* (empty → non-empty) candles reveal in a left-to-right wave: each candle
|
|
1687
|
+
* tweens for `introMs`, starts staggered across another `introMs`, so the
|
|
1688
|
+
* full wave lasts ~2×. The visual style is picked by `introAnimation`.
|
|
1689
|
+
* Default: `500`.
|
|
1690
|
+
*
|
|
1691
|
+
* ```
|
|
1692
|
+
* // Per-series override:
|
|
1693
|
+
* <CandlestickSeries options={{ introMs: 800 }} data={data} />
|
|
1694
|
+
*
|
|
1695
|
+
* // Chart-level default:
|
|
1696
|
+
* <ChartContainer animations={{ series: { candlestick: { intro: 800 } } }}>
|
|
1697
|
+
* <CandlestickSeries data={data} />
|
|
1698
|
+
* </ChartContainer>
|
|
1699
|
+
* ```
|
|
1700
|
+
*
|
|
1701
|
+
* `false` or `0` disables the intro. Bulk re-seeds of a non-empty series
|
|
1702
|
+
* never replay it. Skipped entirely under `prefers-reduced-motion`.
|
|
1703
|
+
*/
|
|
1704
|
+
introMs?: number | false;
|
|
1705
|
+
/**
|
|
1706
|
+
* History-prepend reveal — plays when older points land at the front of
|
|
1707
|
+
* the series (the `EdgeLoader` load-more-on-scroll path). A wave sweeps
|
|
1708
|
+
* from the data boundary into the new history; each candle's stagger
|
|
1709
|
+
* position is `0` at the boundary and `1` at the deepest new point, so
|
|
1710
|
+
* intro factories that read `el.progress` (`fadeIntro()` — the default,
|
|
1711
|
+
* `riseIntro()`, `candleUnfoldIntro()`, `wickBodyIntro()`) work here
|
|
1712
|
+
* unchanged. Clip directives are interpreted in reveal space: `x = 0` at
|
|
1713
|
+
* the boundary, increasing toward the older end.
|
|
1714
|
+
*
|
|
1715
|
+
* The fn receives a localized frame: `range` is the prepended time span
|
|
1716
|
+
* (not the visible window) and `width` is that span's bitmap width.
|
|
1717
|
+
*
|
|
1718
|
+
* `'none'` disables the reveal — prepended points appear instantly.
|
|
1719
|
+
*
|
|
1720
|
+
* @see historyRevealMs — cross-linked duration for this animation.
|
|
1721
|
+
*/
|
|
1722
|
+
historyReveal?: CandleIntroFn | 'none';
|
|
1723
|
+
/**
|
|
1724
|
+
* History-prepend reveal duration in milliseconds — the per-candle wave
|
|
1725
|
+
* duration; the full reveal lasts ~2×. Default: `400`. `false` or `0`
|
|
1726
|
+
* disables the reveal. Skipped entirely under `prefers-reduced-motion`.
|
|
1727
|
+
*
|
|
1728
|
+
* @see CandlestickSeriesOptions.historyReveal
|
|
1729
|
+
*/
|
|
1730
|
+
historyRevealMs?: number | false;
|
|
1313
1731
|
/**
|
|
1314
1732
|
* How long the displayed OHLC takes to catch up to the actual last value
|
|
1315
1733
|
* on every `updateLastPoint`. Default: `250` ms.
|
|
@@ -1349,13 +1767,36 @@ export declare interface CandlestickSeriesOptions {
|
|
|
1349
1767
|
candlePainter?: CandlePainter;
|
|
1350
1768
|
}
|
|
1351
1769
|
|
|
1770
|
+
/** Each candle unfolds from its open price in a left-to-right wave — the
|
|
1771
|
+
* default intro. Alpha rides the same progress as the unfold so a candle
|
|
1772
|
+
* still waiting for the wave front stays invisible instead of painting as
|
|
1773
|
+
* a flat, min-height line at its open price. */
|
|
1774
|
+
export declare function candleUnfoldIntro(): CandleIntroFn;
|
|
1775
|
+
|
|
1352
1776
|
export declare const catppuccin: ThemePreset;
|
|
1353
1777
|
|
|
1778
|
+
/**
|
|
1779
|
+
* Center-out reveal: the clip window opens from the pane's horizontal
|
|
1780
|
+
* center outward, a glowing head riding each front.
|
|
1781
|
+
*/
|
|
1782
|
+
export declare function centerOutIntro(): LineIntroFn;
|
|
1783
|
+
|
|
1354
1784
|
export declare const ChartContainer: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
1355
1785
|
|
|
1356
1786
|
/** Events emitted by {@link ChartInstance}. */
|
|
1357
1787
|
declare interface ChartEvents {
|
|
1358
1788
|
crosshairMove: (pos: CrosshairPosition | null) => void;
|
|
1789
|
+
/** Fired on a click (or tap) on the chart canvas that isn't the tail end of a pan drag. */
|
|
1790
|
+
pointClick: (info: PointClickInfo) => void;
|
|
1791
|
+
/** Fired on a double-click on the chart canvas. Chart also responds by calling `fitContent()`. */
|
|
1792
|
+
pointDoubleClick: (info: PointClickInfo) => void;
|
|
1793
|
+
/**
|
|
1794
|
+
* Fired when the spatially-hovered series/index changes (pie, heatmap, or
|
|
1795
|
+
* a custom spatial kind) — `null` when the pointer leaves every hit area.
|
|
1796
|
+
* Time-series series have no pixel geometry to hover this way; read
|
|
1797
|
+
* `crosshairMove` + `getDataAtTime`/`buildHoverSnapshots` for those.
|
|
1798
|
+
*/
|
|
1799
|
+
seriesHover: (hit: SeriesHoverInfo | null) => void;
|
|
1359
1800
|
viewportChange: () => void;
|
|
1360
1801
|
dataUpdate: () => void;
|
|
1361
1802
|
seriesChange: () => void;
|
|
@@ -1422,6 +1863,10 @@ export declare class ChartInstance extends EventEmitter<ChartEvents> implements
|
|
|
1422
1863
|
id?: string;
|
|
1423
1864
|
label?: string;
|
|
1424
1865
|
}>): string;
|
|
1866
|
+
addSeries(type: 'heatmap', options?: Partial<HeatmapSeriesOptions & {
|
|
1867
|
+
id?: string;
|
|
1868
|
+
label?: string;
|
|
1869
|
+
}>): string;
|
|
1425
1870
|
addSeries<O>(def: SeriesDefinition<O>, options?: Partial<O> & {
|
|
1426
1871
|
layers?: number;
|
|
1427
1872
|
id?: string;
|
|
@@ -1488,6 +1933,14 @@ export declare class ChartInstance extends EventEmitter<ChartEvents> implements
|
|
|
1488
1933
|
* underlying animator mutates between frames.
|
|
1489
1934
|
*/
|
|
1490
1935
|
getAnimationState(): AnimationState;
|
|
1936
|
+
/**
|
|
1937
|
+
* Reveal-front position in `[0, 1]` of any in-flight initial-load intro.
|
|
1938
|
+
* With a `seriesId`, that series' own front; without, the minimum across
|
|
1939
|
+
* every visible time series — overlays wait for the slowest reveal. `1`
|
|
1940
|
+
* whenever nothing is introing. Overlay components (the Y-label badge,
|
|
1941
|
+
* annotations) read this to reveal their entrance in step with the draw.
|
|
1942
|
+
*/
|
|
1943
|
+
getIntroFront(seriesId?: string): number;
|
|
1491
1944
|
/**
|
|
1492
1945
|
* Replace all data for a series.
|
|
1493
1946
|
*
|
|
@@ -1500,6 +1953,20 @@ export declare class ChartInstance extends EventEmitter<ChartEvents> implements
|
|
|
1500
1953
|
setSeriesData(id: string, data: unknown, layerIndex?: number): void;
|
|
1501
1954
|
/** Append a new data point to the end of a series (real-time tick). */
|
|
1502
1955
|
appendData(id: string, point: OHLCInput | TimePointInput, layerIndex?: number): void;
|
|
1956
|
+
/**
|
|
1957
|
+
* Prepend older points to the front of a series — the "load more history on
|
|
1958
|
+
* scroll" path. Unlike {@link setSeriesData}, this deliberately does NOT set
|
|
1959
|
+
* `#dataReplaceSnapPending`: the visible window and the data inside it don't
|
|
1960
|
+
* change, so the viewport must stay put (X) and the Y axis eases if newly
|
|
1961
|
+
* revealed history shifts the range — instead of the full-span re-fit and
|
|
1962
|
+
* instant dual-axis snap a bulk `setSeriesData` replace would force. Routes
|
|
1963
|
+
* through the streaming `onPointAppended` engine signal via `onDataChanged`.
|
|
1964
|
+
*
|
|
1965
|
+
* `points` must be sorted ascending and sit strictly before the current
|
|
1966
|
+
* first point; the sync reconciler guarantees this before calling here.
|
|
1967
|
+
* No-op if the renderer doesn't support prepend.
|
|
1968
|
+
*/
|
|
1969
|
+
prependData(id: string, points: (OHLCInput | TimePointInput)[], layerIndex?: number): void;
|
|
1503
1970
|
/** Update the last data point of a series in place (e.g. live candle update). */
|
|
1504
1971
|
updateData(id: string, point: OHLCInput | TimePointInput, layerIndex?: number): void;
|
|
1505
1972
|
/**
|
|
@@ -1517,7 +1984,7 @@ export declare class ChartInstance extends EventEmitter<ChartEvents> implements
|
|
|
1517
1984
|
*/
|
|
1518
1985
|
keepLast(id: string, count: number, layerIndex?: number): void;
|
|
1519
1986
|
/** Update visual options (color, width, etc.) for an existing series. */
|
|
1520
|
-
updateSeriesOptions(id: string, options: Partial<CandlestickSeriesOptions> | Partial<LineSeriesOptions> | Partial<BarSeriesOptions> | Partial<PieSeriesOptions>): void;
|
|
1987
|
+
updateSeriesOptions(id: string, options: Partial<CandlestickSeriesOptions> | Partial<LineSeriesOptions> | Partial<BarSeriesOptions> | Partial<PieSeriesOptions> | Partial<HeatmapSeriesOptions>): void;
|
|
1521
1988
|
/**
|
|
1522
1989
|
* Batch multiple updates: suppress recomputes until `fn` returns. Exceptions
|
|
1523
1990
|
* inside `fn` still flush the batch so counters don't leak across calls.
|
|
@@ -1651,15 +2118,17 @@ export declare class ChartInstance extends EventEmitter<ChartEvents> implements
|
|
|
1651
2118
|
}[] | null;
|
|
1652
2119
|
getSeriesIds(): string[];
|
|
1653
2120
|
/**
|
|
1654
|
-
* Filter `getSeriesIds()` by renderer type. `'pie'
|
|
1655
|
-
* `'
|
|
2121
|
+
* Filter `getSeriesIds()` by renderer type. A concrete kind (`'pie'`,
|
|
2122
|
+
* `'heatmap'`, a custom kind, …) returns series of that exact kind;
|
|
2123
|
+
* `'time'` returns every time-axis series (line/bar/candlestick and any
|
|
2124
|
+
* custom time-series kind).
|
|
1656
2125
|
*
|
|
1657
2126
|
* - `opts.visibleOnly` — exclude series with `isSeriesVisible=false`; for
|
|
1658
2127
|
* multi-layer series also exclude when every layer is hidden.
|
|
1659
2128
|
* - `opts.singleLayerOnly` — exclude series with more than one layer.
|
|
1660
2129
|
* Useful for YLabel fallback priority (stick to a single line first).
|
|
1661
2130
|
*/
|
|
1662
|
-
getSeriesIdsByType(type:
|
|
2131
|
+
getSeriesIdsByType(type: SeriesKind | 'time', opts?: {
|
|
1663
2132
|
visibleOnly?: boolean;
|
|
1664
2133
|
singleLayerOnly?: boolean;
|
|
1665
2134
|
}): string[];
|
|
@@ -1673,6 +2142,14 @@ export declare class ChartInstance extends EventEmitter<ChartEvents> implements
|
|
|
1673
2142
|
value: number;
|
|
1674
2143
|
isLive: boolean;
|
|
1675
2144
|
} | null;
|
|
2145
|
+
/**
|
|
2146
|
+
* Stacked value at an arbitrary `time` — the cumulative stack top at that
|
|
2147
|
+
* sample, sharing a basis with {@link getStackedLastValue}. Falls back to the
|
|
2148
|
+
* nearest raw sample (close / value) for renderers without a stacked concept
|
|
2149
|
+
* (Candlestick, single-layer Line/Bar). Returns `null` for unknown ids or
|
|
2150
|
+
* when no sample sits near `time`. Used by the YLabel intro count-up start.
|
|
2151
|
+
*/
|
|
2152
|
+
getStackedValueAtTime(seriesId: string, time: number): number | null;
|
|
1676
2153
|
/**
|
|
1677
2154
|
* Per-layer last snapshots with each layer's own `time`. Returns `null`
|
|
1678
2155
|
* for single-layer renderers or when no visible layer has data. Used by
|
|
@@ -1717,6 +2194,12 @@ export declare class ChartInstance extends EventEmitter<ChartEvents> implements
|
|
|
1717
2194
|
/** Apply a new theme and update series colors where appropriate. */
|
|
1718
2195
|
setTheme(theme: ChartTheme): void;
|
|
1719
2196
|
getTheme(): ChartTheme;
|
|
2197
|
+
/** BCP 47 locale applied to the built-in time-axis / tooltip / crosshair formatting. */
|
|
2198
|
+
setLocale(locale: string | undefined): void;
|
|
2199
|
+
getLocale(): string | undefined;
|
|
2200
|
+
/** IANA timezone applied to the same built-in date-time formatting. */
|
|
2201
|
+
setTimeZone(timeZone: string | undefined): void;
|
|
2202
|
+
getTimeZone(): string | undefined;
|
|
1720
2203
|
/** Update axis configuration and re-render. */
|
|
1721
2204
|
setAxis(config: AxisConfig): void;
|
|
1722
2205
|
/**
|
|
@@ -1763,6 +2246,13 @@ export declare class ChartInstance extends EventEmitter<ChartEvents> implements
|
|
|
1763
2246
|
setEdgeState(side: EdgeSide, state: EdgeState): void;
|
|
1764
2247
|
/** Read the current host-declared state for a given edge. */
|
|
1765
2248
|
getEdgeState(side: EdgeSide): EdgeState;
|
|
2249
|
+
/**
|
|
2250
|
+
* Swap the painter used for a side's `loading` spinner — the same
|
|
2251
|
+
* pluggable-function contract as the series intro animations. `null`
|
|
2252
|
+
* (default) falls back to the built-in three-dot spinner. Takes effect
|
|
2253
|
+
* immediately if that side is currently in the `loading` state.
|
|
2254
|
+
*/
|
|
2255
|
+
setEdgeIndicator(side: EdgeSide, indicator: LoadingIndicatorFn | null): void;
|
|
1766
2256
|
/**
|
|
1767
2257
|
* Notify chart that a YLabel overlay is mounted / unmounted. Currently a
|
|
1768
2258
|
* no-op — placeholder for the right-padding reflow that will adjust the
|
|
@@ -1867,6 +2357,19 @@ export declare interface ChartOptions {
|
|
|
1867
2357
|
};
|
|
1868
2358
|
/** Enable zoom, pan, and crosshair interactions. Defaults to true. */
|
|
1869
2359
|
interactive?: boolean;
|
|
2360
|
+
/**
|
|
2361
|
+
* BCP 47 locale applied to the built-in time-axis / tooltip / crosshair
|
|
2362
|
+
* date-time formatting (e.g. `'de-DE'`). Default: `'en-US'`. Live —
|
|
2363
|
+
* `chart.setLocale()` updates it after construction. Ignored for a series
|
|
2364
|
+
* that installs a custom formatter via `chart.timeScale.setFormat()`.
|
|
2365
|
+
*/
|
|
2366
|
+
locale?: string;
|
|
2367
|
+
/**
|
|
2368
|
+
* IANA timezone applied to the same built-in date-time formatting (e.g.
|
|
2369
|
+
* `'America/New_York'`). Default: the browser's local timezone. Live —
|
|
2370
|
+
* `chart.setTimeZone()` updates it after construction.
|
|
2371
|
+
*/
|
|
2372
|
+
timeZone?: string;
|
|
1870
2373
|
/** Background grid configuration. Default: `{ visible: true }`. */
|
|
1871
2374
|
grid?: {
|
|
1872
2375
|
visible: boolean;
|
|
@@ -1993,6 +2496,20 @@ export declare interface ChartTheme {
|
|
|
1993
2496
|
*/
|
|
1994
2497
|
otherColor: string;
|
|
1995
2498
|
};
|
|
2499
|
+
/**
|
|
2500
|
+
* Heatmap sequential ramp. Optional so hand-built theme literals keep
|
|
2501
|
+
* compiling — the renderer falls back to a ramp derived from
|
|
2502
|
+
* {@link ChartTheme.line} `color` and the background at render time.
|
|
2503
|
+
*/
|
|
2504
|
+
heatmap?: {
|
|
2505
|
+
/**
|
|
2506
|
+
* Ramp stops, low → high, interpolated perceptually. {@link createTheme}
|
|
2507
|
+
* derives a two-stop single-hue ramp: a faint accent wash near the
|
|
2508
|
+
* surface up to the full accent — which flips anchor automatically with
|
|
2509
|
+
* theme polarity (low values sink into the background in both modes).
|
|
2510
|
+
*/
|
|
2511
|
+
colors: string[];
|
|
2512
|
+
};
|
|
1996
2513
|
/** Bollinger band / envelope fill colors. */
|
|
1997
2514
|
bands: {
|
|
1998
2515
|
/** Fill for the upper band region (above the middle band). */
|
|
@@ -2163,12 +2680,38 @@ export declare interface CrosshairPosition {
|
|
|
2163
2680
|
/** Path-shape selector for {@link tracePath}. */
|
|
2164
2681
|
export declare type CurveKind = 'straight' | 'smooth' | 'stepped';
|
|
2165
2682
|
|
|
2166
|
-
|
|
2167
|
-
|
|
2683
|
+
/**
|
|
2684
|
+
* A custom spatial renderer with no time axis — implement this (rather than
|
|
2685
|
+
* {@link PieSeriesRenderer} / {@link HeatmapSeriesRenderer}, which are reserved
|
|
2686
|
+
* for the built-ins) when writing a new non-time-axis series from scratch,
|
|
2687
|
+
* e.g. a radar or treemap chart. Pick any `kind` that isn't a built-in one.
|
|
2688
|
+
*/
|
|
2689
|
+
export declare interface CustomSpatialSeriesRenderer extends BaseSeriesRenderer {
|
|
2690
|
+
readonly kind: string;
|
|
2691
|
+
}
|
|
2692
|
+
|
|
2693
|
+
/**
|
|
2694
|
+
* Structural equality for plain option bags that may carry function-valued
|
|
2695
|
+
* fields (e.g. `AnimationsConfig.axis.y.curve`, a transition factory).
|
|
2696
|
+
* Functions (and any other non-plain value) compare by reference — only
|
|
2697
|
+
* arrays and plain objects recurse. Used to tell a caller's brand-new inline
|
|
2698
|
+
* object literal (same values, new reference) apart from a genuine option
|
|
2699
|
+
* change, so wrappers can skip an expensive rebuild in the former case.
|
|
2700
|
+
*/
|
|
2701
|
+
export declare function deepEqual(a: unknown, b: unknown): boolean;
|
|
2702
|
+
|
|
2703
|
+
declare const _default: DefineComponent<__VLS_Props_16, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_16> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
2704
|
+
containerRef: HTMLDivElement;
|
|
2705
|
+
}, HTMLDivElement>;
|
|
2706
|
+
export { _default as TimeAxis }
|
|
2707
|
+
export { _default as XAxis }
|
|
2708
|
+
|
|
2709
|
+
export declare function detectInterval(times: number[]): number;
|
|
2710
|
+
|
|
2168
2711
|
export declare const dracula: ThemePreset;
|
|
2169
2712
|
|
|
2170
2713
|
/** Payload for {@link ChartOptions.onEdgeReached}. */
|
|
2171
|
-
declare interface EdgeReachedInfo {
|
|
2714
|
+
export declare interface EdgeReachedInfo {
|
|
2172
2715
|
side: EdgeSide;
|
|
2173
2716
|
/** Time units the user pulled past the soft bound. */
|
|
2174
2717
|
overshoot: number;
|
|
@@ -2177,7 +2720,9 @@ declare interface EdgeReachedInfo {
|
|
|
2177
2720
|
}
|
|
2178
2721
|
|
|
2179
2722
|
/** Which data side the user pulled past during a gesture. */
|
|
2180
|
-
declare type EdgeSide = 'left' | 'right';
|
|
2723
|
+
export declare type EdgeSide = 'left' | 'right';
|
|
2724
|
+
|
|
2725
|
+
declare type EdgeSide_2 = 'left' | 'right';
|
|
2181
2726
|
|
|
2182
2727
|
/**
|
|
2183
2728
|
* Host-controlled visual state for a chart edge:
|
|
@@ -2186,7 +2731,7 @@ declare type EdgeSide = 'left' | 'right';
|
|
|
2186
2731
|
* - `no-data`: a dashed boundary line + "No more data" label appears at the data edge.
|
|
2187
2732
|
* - `has-more`: reserved — currently behaves like `idle`. Use when more data exists but is not being fetched.
|
|
2188
2733
|
*/
|
|
2189
|
-
declare type EdgeState = 'idle' | 'loading' | 'no-data' | 'has-more';
|
|
2734
|
+
export declare type EdgeState = 'idle' | 'loading' | 'no-data' | 'has-more';
|
|
2190
2735
|
|
|
2191
2736
|
declare class EventEmitter<Events = Record<string, Listener>> {
|
|
2192
2737
|
private listeners;
|
|
@@ -2196,6 +2741,12 @@ declare class EventEmitter<Events = Record<string, Listener>> {
|
|
|
2196
2741
|
removeAllListeners(): void;
|
|
2197
2742
|
}
|
|
2198
2743
|
|
|
2744
|
+
/**
|
|
2745
|
+
* Plain staggered fade-in, no geometry motion. Works for both bar and
|
|
2746
|
+
* candlestick series.
|
|
2747
|
+
*/
|
|
2748
|
+
export declare function fadeIntro(): WaveIntroFn;
|
|
2749
|
+
|
|
2199
2750
|
/**
|
|
2200
2751
|
* Fill a rounded rectangle with per-corner masking, using manual `arcTo` so the
|
|
2201
2752
|
* output is deterministic and independent of `CanvasRenderingContext2D.roundRect`
|
|
@@ -2218,7 +2769,7 @@ export declare function formatCompact(v: number, opts?: {
|
|
|
2218
2769
|
decimals?: number;
|
|
2219
2770
|
}): string;
|
|
2220
2771
|
|
|
2221
|
-
export declare function formatDate(timestamp: number): string;
|
|
2772
|
+
export declare function formatDate(timestamp: number, opts?: TimeFormatOptions): string;
|
|
2222
2773
|
|
|
2223
2774
|
/**
|
|
2224
2775
|
* Full-precision display that adapts decimal count to the value's magnitude.
|
|
@@ -2227,7 +2778,7 @@ export declare function formatDate(timestamp: number): string;
|
|
|
2227
2778
|
*/
|
|
2228
2779
|
export declare function formatPriceAdaptive(v: number): string;
|
|
2229
2780
|
|
|
2230
|
-
export declare function formatTime(timestamp: number, interval: number): string;
|
|
2781
|
+
export declare function formatTime(timestamp: number, interval: number, opts?: TimeFormatOptions): string;
|
|
2231
2782
|
|
|
2232
2783
|
declare type FrameKind = 'main' | 'overlay';
|
|
2233
2784
|
|
|
@@ -2242,10 +2793,103 @@ declare interface FrameTimingSample {
|
|
|
2242
2793
|
|
|
2243
2794
|
export declare const githubLight: ThemePreset;
|
|
2244
2795
|
|
|
2796
|
+
/** Bars fade-grow up from the baseline in a left-to-right wave — the
|
|
2797
|
+
* default intro. */
|
|
2798
|
+
export declare function growIntro(): BarIntroFn;
|
|
2799
|
+
|
|
2245
2800
|
export declare const gruvbox: ThemePreset;
|
|
2246
2801
|
|
|
2247
2802
|
export declare const handwritten: ThemePreset;
|
|
2248
2803
|
|
|
2804
|
+
/** One cell of a heatmap matrix — a (column, row) coordinate with a magnitude. */
|
|
2805
|
+
export declare interface HeatmapCellData {
|
|
2806
|
+
/** Column key. Column order follows first appearance unless {@link HeatmapSeriesOptions.columns} pins it. */
|
|
2807
|
+
x: string;
|
|
2808
|
+
/** Row key. Row order follows first appearance unless {@link HeatmapSeriesOptions.rows} pins it. */
|
|
2809
|
+
y: string;
|
|
2810
|
+
/** Magnitude mapped onto the sequential color ramp. */
|
|
2811
|
+
value: number;
|
|
2812
|
+
/** Explicit fill override for this cell. Skips the ramp entirely. */
|
|
2813
|
+
color?: string;
|
|
2814
|
+
}
|
|
2815
|
+
|
|
2816
|
+
/** Per-cell value labels drawn inside heatmap cells. */
|
|
2817
|
+
export declare interface HeatmapCellLabelsOptions {
|
|
2818
|
+
/** Font size in CSS pixels. Default: 10. */
|
|
2819
|
+
fontSize?: number;
|
|
2820
|
+
/**
|
|
2821
|
+
* Value formatter. Default: decimals adapt to the value domain — 2 for
|
|
2822
|
+
* unit-scale domains (correlations), integers for wide ones, compact
|
|
2823
|
+
* notation (`1.2K`) past 1000.
|
|
2824
|
+
*/
|
|
2825
|
+
format?: (value: number) => string;
|
|
2826
|
+
}
|
|
2827
|
+
|
|
2828
|
+
export declare const HeatmapSeries: DefineComponent<__VLS_Props_4, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_4> & Readonly<{}>, {
|
|
2829
|
+
visible: boolean;
|
|
2830
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
2831
|
+
|
|
2832
|
+
/** Series definition for `chart.addSeries` — keeps the chart renderer-agnostic
|
|
2833
|
+
* so hosts that never render heatmaps don't bundle this module. */
|
|
2834
|
+
export declare const HeatmapSeriesDef: SeriesDefinition<HeatmapSeriesOptions>;
|
|
2835
|
+
|
|
2836
|
+
/** Visual options for a heatmap series. */
|
|
2837
|
+
export declare interface HeatmapSeriesOptions {
|
|
2838
|
+
/**
|
|
2839
|
+
* Sequential ramp stops, low → high, interpolated perceptually (OKLab).
|
|
2840
|
+
* Two stops give a classic single-hue ramp; three make a diverging scale.
|
|
2841
|
+
* Default: derived from the theme — a faint wash of the accent color near
|
|
2842
|
+
* the surface up to the full accent (`theme.heatmap.colors` when present).
|
|
2843
|
+
*/
|
|
2844
|
+
colors?: string[];
|
|
2845
|
+
/** Domain minimum mapped to the first ramp stop. Default: the data minimum. */
|
|
2846
|
+
min?: number;
|
|
2847
|
+
/** Domain maximum mapped to the last ramp stop. Default: the data maximum. */
|
|
2848
|
+
max?: number;
|
|
2849
|
+
/** Surface gap between adjacent cells in CSS pixels. Default: 2. */
|
|
2850
|
+
gap?: number;
|
|
2851
|
+
/** Cell corner radius in CSS pixels. Default: 3. */
|
|
2852
|
+
cornerRadius?: number;
|
|
2853
|
+
/** Draw row labels (left) and column labels (bottom). Default: true. */
|
|
2854
|
+
axisLabels?: boolean;
|
|
2855
|
+
/** Draw the value inside each cell (auto-skipped when it doesn't fit). Default: false. */
|
|
2856
|
+
cellLabels?: boolean | HeatmapCellLabelsOptions;
|
|
2857
|
+
/** Explicit column order. Keys absent from the data render as empty columns. */
|
|
2858
|
+
columns?: string[];
|
|
2859
|
+
/** Explicit row order. Keys absent from the data render as empty rows. */
|
|
2860
|
+
rows?: string[];
|
|
2861
|
+
/**
|
|
2862
|
+
* Entrance duration per cell in milliseconds — the diagonal reveal wave on
|
|
2863
|
+
* first paint / grid-shape change. `0` paints instantly.
|
|
2864
|
+
* Default: chart animation config (600).
|
|
2865
|
+
*/
|
|
2866
|
+
entryMs?: number;
|
|
2867
|
+
/**
|
|
2868
|
+
* Value/color tween duration when a cell's value changes in place, and the
|
|
2869
|
+
* hover-lift ease. `0` snaps. Default: chart animation config (300).
|
|
2870
|
+
*/
|
|
2871
|
+
updateMs?: number;
|
|
2872
|
+
}
|
|
2873
|
+
|
|
2874
|
+
/** A spatial matrix renderer with no time axis (Heatmap). Has no time-series queries. */
|
|
2875
|
+
export declare interface HeatmapSeriesRenderer extends BaseSeriesRenderer {
|
|
2876
|
+
readonly kind: 'heatmap';
|
|
2877
|
+
}
|
|
2878
|
+
|
|
2879
|
+
export declare const HeatmapTooltip: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
2880
|
+
|
|
2881
|
+
/**
|
|
2882
|
+
* Velocity-matched cubic Hermite Y transition. Direction-aware: per-call
|
|
2883
|
+
* `expandMs` (outward, default 250 ms via the engine) and `contractMs`
|
|
2884
|
+
* (inward, default 2500 ms — sticky-Y) are supplied through `retarget()`.
|
|
2885
|
+
*
|
|
2886
|
+
* Default Y transition. Bounded duration — after the supplied settle each
|
|
2887
|
+
* side lands exactly at the target with zero velocity, unlike spring's
|
|
2888
|
+
* asymptotic approach. Predictable for animations whose end-state matters
|
|
2889
|
+
* (axis labels can settle in a known time).
|
|
2890
|
+
*/
|
|
2891
|
+
export declare function hermite(): TransitionFactory<YRange>;
|
|
2892
|
+
|
|
2249
2893
|
export declare const highContrast: ThemePreset;
|
|
2250
2894
|
|
|
2251
2895
|
/** Horizontal padding expressed as a fixed pixel offset or a number of data intervals. */
|
|
@@ -2263,6 +2907,17 @@ export declare interface HoverInfo {
|
|
|
2263
2907
|
|
|
2264
2908
|
export declare const InfoBar: __VLS_WithTemplateSlots_2<typeof __VLS_component_2, __VLS_TemplateResult_2["slots"]>;
|
|
2265
2909
|
|
|
2910
|
+
export declare function isDarkBg(bg: string): boolean;
|
|
2911
|
+
|
|
2912
|
+
/**
|
|
2913
|
+
* Narrow a renderer to the time-axis variant. A capability check, not a
|
|
2914
|
+
* `kind` allowlist — any renderer implementing the required time-series
|
|
2915
|
+
* queries (own a `getTimeBounds()`) counts, including custom series kinds.
|
|
2916
|
+
* The chart's viewport, crosshair, interval detection, and Y autoscale all
|
|
2917
|
+
* dispatch through this guard.
|
|
2918
|
+
*/
|
|
2919
|
+
export declare function isTimeSeriesRenderer(renderer: SeriesRenderer): renderer is TimeSeriesRenderer;
|
|
2920
|
+
|
|
2266
2921
|
export declare const lavenderMist: ThemePreset;
|
|
2267
2922
|
|
|
2268
2923
|
export declare const Legend: __VLS_WithTemplateSlots_3<typeof __VLS_component_3, __VLS_TemplateResult_3["slots"]>;
|
|
@@ -2312,6 +2967,14 @@ declare interface LegendItemOverride {
|
|
|
2312
2967
|
|
|
2313
2968
|
declare type LegendMode = 'toggle' | 'isolate' | 'solo';
|
|
2314
2969
|
|
|
2970
|
+
/** Payload for the `onToggle` prop — one entry per user click, regardless of built-in vs custom rendering. */
|
|
2971
|
+
declare interface LegendToggleInfo {
|
|
2972
|
+
/** The clicked item's id (matches {@link LegendItem.id}). */
|
|
2973
|
+
id: string;
|
|
2974
|
+
/** Which interaction produced this change. */
|
|
2975
|
+
action: 'toggle' | 'isolate' | 'unisolate';
|
|
2976
|
+
}
|
|
2977
|
+
|
|
2315
2978
|
export declare const lightPink: ThemePreset;
|
|
2316
2979
|
|
|
2317
2980
|
/** Internal bookkeeping for a registered reference line. `coord` is a Y value (horizontal) or normalized epoch ms (vertical). */
|
|
@@ -2333,6 +2996,91 @@ declare interface LineEntry {
|
|
|
2333
2996
|
*/
|
|
2334
2997
|
declare type LineEntryAnimation = 'none' | 'grow' | 'fade';
|
|
2335
2998
|
|
|
2999
|
+
/** What one intro frame should look like. Every field is optional — an empty
|
|
3000
|
+
* object renders the frame settled. */
|
|
3001
|
+
export declare interface LineIntroDirectives {
|
|
3002
|
+
/**
|
|
3003
|
+
* Horizontal clip window in bitmap pixels. Omitted sides default to the
|
|
3004
|
+
* pane edges, so `{ toX }` is a left-to-right reveal and `{ fromX }` a
|
|
3005
|
+
* right-to-left one.
|
|
3006
|
+
*/
|
|
3007
|
+
clip?: {
|
|
3008
|
+
fromX?: number;
|
|
3009
|
+
toX?: number;
|
|
3010
|
+
};
|
|
3011
|
+
/**
|
|
3012
|
+
* Draw a stroke-only ghost of the full line under the main pass at this
|
|
3013
|
+
* alpha (the area fill is left to the main pass).
|
|
3014
|
+
*/
|
|
3015
|
+
ghostAlpha?: number;
|
|
3016
|
+
/**
|
|
3017
|
+
* Head-glow anchors — the renderer draws a pulse dot per visible layer at
|
|
3018
|
+
* each head's `time` (bell-faded over the intro window). Heads are
|
|
3019
|
+
* skipped for stacked series, where a single layer's Y is meaningless.
|
|
3020
|
+
*/
|
|
3021
|
+
heads?: Array<{
|
|
3022
|
+
x: number;
|
|
3023
|
+
time: number;
|
|
3024
|
+
}>;
|
|
3025
|
+
/**
|
|
3026
|
+
* Per-value transform applied to every rendered value (stroke, area,
|
|
3027
|
+
* stacked cumulative, trailing endpoint, overlay pulse) via the
|
|
3028
|
+
* renderer's `effectiveValue` hook.
|
|
3029
|
+
*/
|
|
3030
|
+
value?: (args: LineIntroValueArgs) => number;
|
|
3031
|
+
}
|
|
3032
|
+
|
|
3033
|
+
/** One frame of intro choreography. See the module docs for the contract. */
|
|
3034
|
+
export declare type LineIntroFn = (frame: LineIntroFrame) => LineIntroDirectives;
|
|
3035
|
+
|
|
3036
|
+
/** Read view of one intro frame — everything a {@link LineIntroFn} may need. */
|
|
3037
|
+
export declare interface LineIntroFrame {
|
|
3038
|
+
/** Linear intro progress in `[0, 1]` over the whole reveal window. */
|
|
3039
|
+
progress: number;
|
|
3040
|
+
/** Visible time range. */
|
|
3041
|
+
range: VisibleRange;
|
|
3042
|
+
/**
|
|
3043
|
+
* Plot-area width in bitmap pixels — the span `timeToX` maps the visible
|
|
3044
|
+
* range onto (excludes the Y-axis strip sharing the canvas).
|
|
3045
|
+
*/
|
|
3046
|
+
width: number;
|
|
3047
|
+
/** Plot-area height in bitmap pixels (excludes the X-axis strip). */
|
|
3048
|
+
height: number;
|
|
3049
|
+
/** The series' stacking mode — path-based intros usually degrade to a plain clip when stacked. */
|
|
3050
|
+
stacking: StackingMode;
|
|
3051
|
+
/** Time → bitmap X through the live time scale. */
|
|
3052
|
+
timeToX(time: number): number;
|
|
3053
|
+
/** Bitmap X → time — the inverse of {@link timeToX}, for mapping a clip front back into the time domain. */
|
|
3054
|
+
xToTime(x: number): number;
|
|
3055
|
+
/** Value → bitmap Y through the live Y scale. */
|
|
3056
|
+
valueToY(value: number): number;
|
|
3057
|
+
/** Number of layers in the series. */
|
|
3058
|
+
layerCount: number;
|
|
3059
|
+
/** Visible data of one layer (memoized per frame). */
|
|
3060
|
+
layerData(layerIndex: number): readonly TimePoint[];
|
|
3061
|
+
/** Mean of the layer's visible finite values, or `null` for an empty/poisoned layer (memoized per frame). */
|
|
3062
|
+
layerMean(layerIndex: number): number | null;
|
|
3063
|
+
/**
|
|
3064
|
+
* Bitmap-space polyline of the first visible layer (finite values only,
|
|
3065
|
+
* memoized per frame), or `null` when no layer has two drawable points.
|
|
3066
|
+
*/
|
|
3067
|
+
primaryPath(): ReadonlyArray<{
|
|
3068
|
+
x: number;
|
|
3069
|
+
y: number;
|
|
3070
|
+
time: number;
|
|
3071
|
+
}> | null;
|
|
3072
|
+
}
|
|
3073
|
+
|
|
3074
|
+
/** Arguments handed to {@link LineIntroDirectives.value} for every rendered value. */
|
|
3075
|
+
export declare interface LineIntroValueArgs {
|
|
3076
|
+
layerIndex: number;
|
|
3077
|
+
time: number;
|
|
3078
|
+
/** The value the renderer would draw without the intro (live smoothing included). */
|
|
3079
|
+
value: number;
|
|
3080
|
+
/** Normalized x-position of `time` across the visible range, clamped to `[0, 1]`. */
|
|
3081
|
+
position: number;
|
|
3082
|
+
}
|
|
3083
|
+
|
|
2336
3084
|
/** Arguments handed to a {@link LinePainter} once per finite run. */
|
|
2337
3085
|
export declare interface LinePaintArgs {
|
|
2338
3086
|
/**
|
|
@@ -2372,7 +3120,9 @@ declare interface LinePoint {
|
|
|
2372
3120
|
y: number;
|
|
2373
3121
|
}
|
|
2374
3122
|
|
|
2375
|
-
export declare const LineSeries: DefineComponent<
|
|
3123
|
+
export declare const LineSeries: DefineComponent<__VLS_Props_5, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_5> & Readonly<{}>, {
|
|
3124
|
+
visible: boolean;
|
|
3125
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
2376
3126
|
|
|
2377
3127
|
/** Series definition for `chart.addSeries` — keeps the chart renderer-agnostic
|
|
2378
3128
|
* so hosts that never render lines don't bundle this module. */
|
|
@@ -2441,6 +3191,66 @@ export declare interface LineSeriesOptions {
|
|
|
2441
3191
|
* @see LineSeriesOptions.entryAnimation
|
|
2442
3192
|
*/
|
|
2443
3193
|
entryMs?: number | false;
|
|
3194
|
+
/**
|
|
3195
|
+
* Initial-load reveal duration in milliseconds. On the first data seed
|
|
3196
|
+
* (empty → non-empty) the line draws itself left-to-right — stroke and
|
|
3197
|
+
* area sweep in behind a glowing head that rides the reveal front. The
|
|
3198
|
+
* full sweep lasts ~2× `introMs`. Default: `500`.
|
|
3199
|
+
*
|
|
3200
|
+
* ```
|
|
3201
|
+
* // Per-series override:
|
|
3202
|
+
* <LineSeries options={{ introMs: 800 }} data={data} />
|
|
3203
|
+
*
|
|
3204
|
+
* // Chart-level default:
|
|
3205
|
+
* <ChartContainer animations={{ series: { line: { intro: 800 } } }}>
|
|
3206
|
+
* <LineSeries data={data} />
|
|
3207
|
+
* </ChartContainer>
|
|
3208
|
+
* ```
|
|
3209
|
+
*
|
|
3210
|
+
* `false` or `0` disables the intro. Bulk re-seeds of a non-empty series
|
|
3211
|
+
* never replay it. Skipped entirely under `prefers-reduced-motion`.
|
|
3212
|
+
*/
|
|
3213
|
+
introMs?: number | false;
|
|
3214
|
+
/**
|
|
3215
|
+
* Initial-load reveal choreography — a `LineIntroFn` called once per
|
|
3216
|
+
* frame while the intro plays. The shipped styles are factories over the
|
|
3217
|
+
* same contract: `unfoldIntro()` (the default — amplitude springs from
|
|
3218
|
+
* the mean into shape), `sweepIntro()` (left-to-right draw-on with a
|
|
3219
|
+
* glowing head), `traceIntro()` (faint ghost, then an ink sweep),
|
|
3220
|
+
* `plotterIntro()` (head advances at constant path speed), `centerOutIntro()`
|
|
3221
|
+
* (clip opens from the pane's center outward). Style is specific to the
|
|
3222
|
+
* line series; there is no chart-level override for style — only for
|
|
3223
|
+
* duration (`introMs`).
|
|
3224
|
+
*
|
|
3225
|
+
* @see LineIntroFn — the custom-fn contract (frame → directives).
|
|
3226
|
+
* @see introMs — cross-linked duration for this animation.
|
|
3227
|
+
*/
|
|
3228
|
+
introAnimation?: LineIntroFn;
|
|
3229
|
+
/**
|
|
3230
|
+
* History-prepend reveal — plays when older points land at the front of
|
|
3231
|
+
* the series (the `EdgeLoader` load-more-on-scroll path). Default: the
|
|
3232
|
+
* line back-fills itself from the data boundary into the new history
|
|
3233
|
+
* behind a moving clip front (`backfillSweepIntro()`).
|
|
3234
|
+
*
|
|
3235
|
+
* A custom `LineIntroFn` receives a localized frame: `range` is the
|
|
3236
|
+
* prepended time span with `range.to` at the data boundary (not the
|
|
3237
|
+
* visible window), `width` is that span's bitmap width, and `progress`
|
|
3238
|
+
* runs over the reveal. Value-transform directives are applied to the
|
|
3239
|
+
* prepended points only.
|
|
3240
|
+
*
|
|
3241
|
+
* `'none'` disables the reveal — prepended points appear instantly.
|
|
3242
|
+
*
|
|
3243
|
+
* @see historyRevealMs — cross-linked duration for this animation.
|
|
3244
|
+
*/
|
|
3245
|
+
historyReveal?: LineIntroFn | 'none';
|
|
3246
|
+
/**
|
|
3247
|
+
* History-prepend reveal duration in milliseconds — the full sweep lasts
|
|
3248
|
+
* ~2×. Default: `400`. `false` or `0` disables the reveal. Skipped
|
|
3249
|
+
* entirely under `prefers-reduced-motion`.
|
|
3250
|
+
*
|
|
3251
|
+
* @see LineSeriesOptions.historyReveal
|
|
3252
|
+
*/
|
|
3253
|
+
historyRevealMs?: number | false;
|
|
2444
3254
|
/**
|
|
2445
3255
|
* How long the displayed last value takes to catch up to the actual one
|
|
2446
3256
|
* on every `updateLastPoint`. Default: `250` ms.
|
|
@@ -2502,11 +3312,90 @@ export declare interface LineSeriesOptions {
|
|
|
2502
3312
|
/** Color below the threshold. Default: the series' resolved color. */
|
|
2503
3313
|
below?: string;
|
|
2504
3314
|
};
|
|
3315
|
+
/**
|
|
3316
|
+
* Dot markers at each data point. Hidden by default.
|
|
3317
|
+
*
|
|
3318
|
+
* Dots ride the same animated geometry as the stroke (entrance unfurl,
|
|
3319
|
+
* live-value smoothing, stacked cumulative), so they glide with the line
|
|
3320
|
+
* instead of snapping. When the visible points sit too dense to read as
|
|
3321
|
+
* discrete markers (average spacing under ~1.5 dot diameters, e.g. zoomed
|
|
3322
|
+
* far out), the dots are skipped for that frame — they'd merge into a fat
|
|
3323
|
+
* line and hide the stroke. Zooming back in brings them back.
|
|
3324
|
+
*
|
|
3325
|
+
* ```
|
|
3326
|
+
* <LineSeries data={data} options={{ points: { visible: true } }} />
|
|
3327
|
+
* ```
|
|
3328
|
+
*/
|
|
3329
|
+
points?: {
|
|
3330
|
+
/** Whether a dot is drawn at each data point. */
|
|
3331
|
+
visible: boolean;
|
|
3332
|
+
/** Dot radius in CSS pixels. Default: `3`. */
|
|
3333
|
+
radius?: number;
|
|
3334
|
+
/** Fill color override. Default: the layer's resolved series color. */
|
|
3335
|
+
color?: string;
|
|
3336
|
+
};
|
|
2505
3337
|
}
|
|
2506
3338
|
|
|
2507
3339
|
declare type Listener = (...args: any[]) => void;
|
|
2508
3340
|
|
|
2509
|
-
|
|
3341
|
+
/** Read view of one loading-indicator frame — everything a {@link LoadingIndicatorFn} may need. */
|
|
3342
|
+
export declare interface LoadingIndicatorArgs {
|
|
3343
|
+
scope: BitmapCoordinateSpace;
|
|
3344
|
+
theme: ChartTheme;
|
|
3345
|
+
/**
|
|
3346
|
+
* Plot-area size in CSS/media pixels (excludes the axis bands) — multiply
|
|
3347
|
+
* by the scope's pixel ratios to get bitmap units.
|
|
3348
|
+
*/
|
|
3349
|
+
chartMediaWidth: number;
|
|
3350
|
+
chartMediaHeight: number;
|
|
3351
|
+
/** Animation timestamp, typically `performance.now()`. */
|
|
3352
|
+
now: number;
|
|
3353
|
+
/**
|
|
3354
|
+
* Which edge this indicator's stage is anchored to. `'left'` means the
|
|
3355
|
+
* data boundary sits at local x = `chartMediaWidth` (the stage extends
|
|
3356
|
+
* further away from the data as x decreases); `'right'` means the
|
|
3357
|
+
* boundary sits at local x = `0`. Present only when painted by
|
|
3358
|
+
* `chart.setEdgeIndicator` — absent for a hypothetical future non-edge
|
|
3359
|
+
* caller.
|
|
3360
|
+
*/
|
|
3361
|
+
side?: EdgeSide_2;
|
|
3362
|
+
/**
|
|
3363
|
+
* Y position (media px, within `[0, chartMediaHeight]`) of the boundary
|
|
3364
|
+
* point on the chart's primary visible time series — lets an indicator
|
|
3365
|
+
* start exactly where the real data leaves off. `undefined` when there's
|
|
3366
|
+
* no visible time series or no data resolvable at the boundary.
|
|
3367
|
+
*/
|
|
3368
|
+
edgeValueY?: number;
|
|
3369
|
+
/**
|
|
3370
|
+
* Media px between adjacent bars at the chart's current zoom level — lets
|
|
3371
|
+
* an indicator size its placeholder shapes to match the real candles/bars
|
|
3372
|
+
* that will render once data lands. `undefined` when not resolvable (e.g.
|
|
3373
|
+
* a chart with no meaningful viewport span yet).
|
|
3374
|
+
*/
|
|
3375
|
+
barSpacing?: number;
|
|
3376
|
+
/**
|
|
3377
|
+
* Kind of the primary visible time series (`'candlestick'`, `'line'`,
|
|
3378
|
+
* `'bar'`, ...) — lets an indicator adapt its shape to what's actually
|
|
3379
|
+
* loading instead of always drawing one fixed shape. `undefined` when
|
|
3380
|
+
* unresolvable.
|
|
3381
|
+
*/
|
|
3382
|
+
seriesKind?: SeriesKind;
|
|
3383
|
+
/**
|
|
3384
|
+
* Report the placeholder shapes drawn this frame. The chart snapshots the
|
|
3385
|
+
* latest report and, when the fetched history lands, hands it to the
|
|
3386
|
+
* series' history reveal — a morph-style reveal (`skeletonMorphIntro`)
|
|
3387
|
+
* grows the real candles out of these exact placeholders instead of
|
|
3388
|
+
* cross-fading. Optional both ways: an indicator that never reports (or
|
|
3389
|
+
* a chart caller that doesn't collect) simply falls back to the plain
|
|
3390
|
+
* reveal.
|
|
3391
|
+
*/
|
|
3392
|
+
reportPlaceholders?(bars: PlaceholderBar[]): void;
|
|
3393
|
+
}
|
|
3394
|
+
|
|
3395
|
+
/** Pure function contract for a pluggable loading indicator. */
|
|
3396
|
+
export declare type LoadingIndicatorFn = (args: LoadingIndicatorArgs) => void;
|
|
3397
|
+
|
|
3398
|
+
export declare const Marker: DefineComponent<__VLS_Props_10, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_10> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
2510
3399
|
|
|
2511
3400
|
/**
|
|
2512
3401
|
* A point annotation pinned to a `time` (X) and a `value` (Y) — "anomaly opened
|
|
@@ -2528,7 +3417,12 @@ export declare interface MarkerConfig {
|
|
|
2528
3417
|
shape?: MarkerShape;
|
|
2529
3418
|
/** Reuse the line pulse halo around the anchor. Default: `false`. */
|
|
2530
3419
|
pulse?: boolean;
|
|
2531
|
-
/**
|
|
3420
|
+
/**
|
|
3421
|
+
* Optional text label, drawn as a callout chip whose tail points at the
|
|
3422
|
+
* anchor — above it for `arrow-down` / `dot` / `circle`, below for
|
|
3423
|
+
* `arrow-up`, flipping when the plot edge would cut it off. On arrow
|
|
3424
|
+
* shapes the tail replaces the glyph.
|
|
3425
|
+
*/
|
|
2532
3426
|
label?: string;
|
|
2533
3427
|
/** Color override. Falls back to the series color (when `seriesId` is set), then the theme line color. */
|
|
2534
3428
|
color?: string;
|
|
@@ -2546,7 +3440,13 @@ declare interface MarkerEntry {
|
|
|
2546
3440
|
color?: string;
|
|
2547
3441
|
}
|
|
2548
3442
|
|
|
2549
|
-
/**
|
|
3443
|
+
/**
|
|
3444
|
+
* Glyph drawn at the marker anchor. On a bare marker, arrows point their tip
|
|
3445
|
+
* *at* the anchor point. On a labeled marker the callout tail does the
|
|
3446
|
+
* pointing instead — the arrow glyph is dropped and the shape only picks the
|
|
3447
|
+
* callout's side: above the anchor for `arrow-down`, below for `arrow-up`.
|
|
3448
|
+
* `dot` and `circle` keep their glyph under the callout.
|
|
3449
|
+
*/
|
|
2550
3450
|
export declare type MarkerShape = 'dot' | 'circle' | 'arrow-up' | 'arrow-down';
|
|
2551
3451
|
|
|
2552
3452
|
export declare const materialPalenight: ThemePreset;
|
|
@@ -2564,8 +3464,37 @@ export declare const minimalLight: ThemePreset;
|
|
|
2564
3464
|
|
|
2565
3465
|
export declare const mintBreeze: ThemePreset;
|
|
2566
3466
|
|
|
3467
|
+
/**
|
|
3468
|
+
* Blend two colors perceptually (OKLab), `t` in [0, 1]. Accepts `#rgb`,
|
|
3469
|
+
* `#rrggbb`, and `rgb()/rgba()` inputs; anything else (named colors,
|
|
3470
|
+
* `hsl()`) falls back to a hard switch at `t = 0.5` — it never produces a
|
|
3471
|
+
* NaN canvas fill. An `rgba()` input's alpha interpolates linearly alongside
|
|
3472
|
+
* the OKLab channels — the result is an `rgba()` string whenever either
|
|
3473
|
+
* endpoint is translucent, an opaque hex otherwise. Results are cached on a
|
|
3474
|
+
* quantized `t` (1/256 steps), so per-frame per-cell sampling stays
|
|
3475
|
+
* allocation-free after the first frame.
|
|
3476
|
+
*/
|
|
3477
|
+
export declare function mixColors(from: string, to: string, t: number): string;
|
|
3478
|
+
|
|
2567
3479
|
export declare const monokaiPro: ThemePreset;
|
|
2568
3480
|
|
|
3481
|
+
/**
|
|
3482
|
+
* One placeholder shape a loading indicator painted at the data boundary,
|
|
3483
|
+
* mapped into bitmap space — what a morph-style history reveal grows the
|
|
3484
|
+
* real candles out of. Re-anchored to the boundary every frame, so the
|
|
3485
|
+
* morph stays glued while the user keeps panning.
|
|
3486
|
+
*/
|
|
3487
|
+
declare interface MorphPlaceholder {
|
|
3488
|
+
/** Bar center X, bitmap px. */
|
|
3489
|
+
x: number;
|
|
3490
|
+
/** Bar center Y, bitmap px. */
|
|
3491
|
+
y: number;
|
|
3492
|
+
/** Half the body height, bitmap px. */
|
|
3493
|
+
halfHeight: number;
|
|
3494
|
+
/** Body width, bitmap px. */
|
|
3495
|
+
width: number;
|
|
3496
|
+
}
|
|
3497
|
+
|
|
2569
3498
|
/**
|
|
2570
3499
|
* Omnivorous `data` shape for line and bar series. Accepts, interchangeably:
|
|
2571
3500
|
* - `TimePointInput[]` — one auto-named layer (the common single-series case);
|
|
@@ -2576,9 +3505,9 @@ export declare const monokaiPro: ThemePreset;
|
|
|
2576
3505
|
* Everything normalizes to `SeriesLayer[]` internally (see `toLayers`). Time
|
|
2577
3506
|
* accepts epoch milliseconds or a `Date` on every point.
|
|
2578
3507
|
*/
|
|
2579
|
-
declare type MultiLayerData = TimePointInput[] | SeriesLayer<TimePointInput> | Array<TimePointInput[] | SeriesLayer<TimePointInput>>;
|
|
3508
|
+
export declare type MultiLayerData = TimePointInput[] | SeriesLayer<TimePointInput> | Array<TimePointInput[] | SeriesLayer<TimePointInput>>;
|
|
2580
3509
|
|
|
2581
|
-
declare const Navigator_2: DefineComponent<
|
|
3510
|
+
declare const Navigator_2: DefineComponent<__VLS_Props_11, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
2582
3511
|
stripRef: HTMLDivElement;
|
|
2583
3512
|
}, any>;
|
|
2584
3513
|
export { Navigator_2 as Navigator }
|
|
@@ -2670,7 +3599,7 @@ export declare const nightOwl: ThemePreset;
|
|
|
2670
3599
|
/** Convert a {@link TimeValue} (number ms or Date) to a millisecond timestamp. */
|
|
2671
3600
|
export declare function normalizeTime(t: TimeValue): number;
|
|
2672
3601
|
|
|
2673
|
-
export declare const NumberFlow: DefineComponent<
|
|
3602
|
+
export declare const NumberFlow: DefineComponent<__VLS_Props_12, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_12> & Readonly<{}>, {
|
|
2674
3603
|
locale: string;
|
|
2675
3604
|
spinDuration: number;
|
|
2676
3605
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
|
|
@@ -2693,7 +3622,7 @@ export declare type OHLCInput = Omit<OHLCData, 'time'> & {
|
|
|
2693
3622
|
export declare const oneDarkPro: ThemePreset;
|
|
2694
3623
|
|
|
2695
3624
|
/** Overlay render state passed to {@link SeriesRenderer.drawOverlay}. */
|
|
2696
|
-
declare interface OverlayRenderContext {
|
|
3625
|
+
export declare interface OverlayRenderContext {
|
|
2697
3626
|
scope: BitmapCoordinateSpace;
|
|
2698
3627
|
timeScale: XScale;
|
|
2699
3628
|
yScale: YScale;
|
|
@@ -2753,6 +3682,13 @@ declare interface PanZoomTarget {
|
|
|
2753
3682
|
zoomAt(centerTime: number, factor: number, chartWidth?: number): void;
|
|
2754
3683
|
}
|
|
2755
3684
|
|
|
3685
|
+
/**
|
|
3686
|
+
* Parse an {@link AnimationTime} to milliseconds. Invalid strings throw at
|
|
3687
|
+
* config-resolution time, so a typo surfaces at startup, not silently as zero
|
|
3688
|
+
* animation later. Used once per field in `resolveAnimationsConfig`.
|
|
3689
|
+
*/
|
|
3690
|
+
export declare function parseAnimationTime(value: AnimationTime): Milliseconds;
|
|
3691
|
+
|
|
2756
3692
|
export declare const peachCream: ThemePreset;
|
|
2757
3693
|
|
|
2758
3694
|
/**
|
|
@@ -2968,7 +3904,9 @@ declare interface PieOtherOptions {
|
|
|
2968
3904
|
color?: string;
|
|
2969
3905
|
}
|
|
2970
3906
|
|
|
2971
|
-
export declare const PieSeries: DefineComponent<
|
|
3907
|
+
export declare const PieSeries: DefineComponent<__VLS_Props_6, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_6> & Readonly<{}>, {
|
|
3908
|
+
visible: boolean;
|
|
3909
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
2972
3910
|
|
|
2973
3911
|
/** Series definition for `chart.addSeries` — keeps the chart renderer-agnostic
|
|
2974
3912
|
* so hosts that never render pies don't bundle this module. */
|
|
@@ -2982,6 +3920,16 @@ export declare interface PieSeriesOptions {
|
|
|
2982
3920
|
innerRadiusRatio: number;
|
|
2983
3921
|
/** Gap between slices in degrees. Default: 1.15° (≈ 0.02 rad). */
|
|
2984
3922
|
padAngle: number;
|
|
3923
|
+
/**
|
|
3924
|
+
* Rounds each slice's corners in CSS pixels — the two where the outer rim
|
|
3925
|
+
* meets the straight edges, plus two more on the inner rim once
|
|
3926
|
+
* `innerRadiusRatio > 0` carves out a donut hole. Default: 3 (matching the
|
|
3927
|
+
* bar/candlestick families); pass 0 for sharp wedges. Thin rings and narrow
|
|
3928
|
+
* slices automatically clamp the radius down to whatever they can fit
|
|
3929
|
+
* without the corners overlapping, so a value that's too large for a given
|
|
3930
|
+
* slice degrades gracefully instead of producing a malformed shape.
|
|
3931
|
+
*/
|
|
3932
|
+
cornerRadius?: number;
|
|
2985
3933
|
/** Display the label shown in the tooltip. */
|
|
2986
3934
|
label?: string;
|
|
2987
3935
|
/** Per-slice label rendering on the pie itself. See {@link PieLabelsOptions}. */
|
|
@@ -3002,6 +3950,27 @@ export declare interface PieSeriesOptions {
|
|
|
3002
3950
|
* value.
|
|
3003
3951
|
*/
|
|
3004
3952
|
animate?: boolean;
|
|
3953
|
+
/**
|
|
3954
|
+
* Initial-load reveal duration in milliseconds. On the first data seed
|
|
3955
|
+
* (empty → non-empty) slices unfurl clockwise over this total duration,
|
|
3956
|
+
* then the outside labels draw in. Default: `600`.
|
|
3957
|
+
*
|
|
3958
|
+
* ```
|
|
3959
|
+
* // Per-series override:
|
|
3960
|
+
* <PieSeries options={{ entryMs: 900 }} data={data} />
|
|
3961
|
+
*
|
|
3962
|
+
* // Chart-level default:
|
|
3963
|
+
* <ChartContainer animations={{ series: { pie: { entry: 900 } } }}>
|
|
3964
|
+
* <PieSeries data={data} />
|
|
3965
|
+
* </ChartContainer>
|
|
3966
|
+
* ```
|
|
3967
|
+
*
|
|
3968
|
+
* `false` or `0` disables the intro (a chart-level
|
|
3969
|
+
* `animations.series.pie: false` also force-disables it). Bulk re-seeds
|
|
3970
|
+
* of a non-empty series never replay it. Skipped entirely under
|
|
3971
|
+
* `prefers-reduced-motion`.
|
|
3972
|
+
*/
|
|
3973
|
+
entryMs?: number | false;
|
|
3005
3974
|
/**
|
|
3006
3975
|
* Per-slice radial *depth* gradient — a subtle lightening from the slice
|
|
3007
3976
|
* center toward its edge that gives the pie a soft 3D sheen. On by default.
|
|
@@ -3046,7 +4015,7 @@ export declare interface PieSeriesOptions {
|
|
|
3046
4015
|
}
|
|
3047
4016
|
|
|
3048
4017
|
/** A spatial renderer with no time axis (Pie). Has no time-series queries. */
|
|
3049
|
-
declare interface PieSeriesRenderer extends BaseSeriesRenderer {
|
|
4018
|
+
export declare interface PieSeriesRenderer extends BaseSeriesRenderer {
|
|
3050
4019
|
readonly kind: 'pie';
|
|
3051
4020
|
}
|
|
3052
4021
|
|
|
@@ -3061,6 +4030,51 @@ export declare interface PieSliceData {
|
|
|
3061
4030
|
|
|
3062
4031
|
export declare const PieTooltip: __VLS_WithTemplateSlots_5<typeof __VLS_component_5, __VLS_TemplateResult_5["slots"]>;
|
|
3063
4032
|
|
|
4033
|
+
/**
|
|
4034
|
+
* One placeholder shape a loading indicator painted, in chart-media pixels
|
|
4035
|
+
* relative to the data boundary — the hand-off currency between an edge
|
|
4036
|
+
* indicator and a series' history reveal. `offsetX` grows away from the
|
|
4037
|
+
* data (into the overshoot zone), so the geometry stays glued to the
|
|
4038
|
+
* boundary while the user keeps panning.
|
|
4039
|
+
*/
|
|
4040
|
+
declare interface PlaceholderBar {
|
|
4041
|
+
/** Distance from the data boundary to the bar's center, media px, ≥ 0. */
|
|
4042
|
+
offsetX: number;
|
|
4043
|
+
/** Bar center Y, media px within the plot area. */
|
|
4044
|
+
y: number;
|
|
4045
|
+
/** Half the body height, media px. */
|
|
4046
|
+
halfHeight: number;
|
|
4047
|
+
/** Body width, media px. */
|
|
4048
|
+
width: number;
|
|
4049
|
+
}
|
|
4050
|
+
|
|
4051
|
+
/**
|
|
4052
|
+
* Chart-recorder pen: the reveal front advances at constant speed along the
|
|
4053
|
+
* polyline's arc length (bitmap space), so it decelerates through volatile
|
|
4054
|
+
* stretches and races across flat ones. Falls back to the plain sweep for
|
|
4055
|
+
* stacked series and degenerate paths.
|
|
4056
|
+
*/
|
|
4057
|
+
export declare function plotterIntro(): LineIntroFn;
|
|
4058
|
+
|
|
4059
|
+
/**
|
|
4060
|
+
* Payload for `pointClick` / `pointDoubleClick`. `spatialHit` resolves a
|
|
4061
|
+
* no-time-axis series (pie, heatmap, or a custom spatial kind) directly
|
|
4062
|
+
* under the pointer — for time-series series (line/bar/candlestick, or a
|
|
4063
|
+
* custom time-axis kind), resolve the point yourself from `time`, e.g. via
|
|
4064
|
+
* `buildHoverSnapshots(chart, { time: info.time, cacheKey: '…' })` or
|
|
4065
|
+
* `chart.getDataAtTime(seriesId, info.time)`.
|
|
4066
|
+
*/
|
|
4067
|
+
export declare interface PointClickInfo {
|
|
4068
|
+
mediaX: number;
|
|
4069
|
+
mediaY: number;
|
|
4070
|
+
time: number;
|
|
4071
|
+
y: number;
|
|
4072
|
+
spatialHit: {
|
|
4073
|
+
seriesId: string;
|
|
4074
|
+
index: number;
|
|
4075
|
+
} | null;
|
|
4076
|
+
}
|
|
4077
|
+
|
|
3064
4078
|
export declare const quietLight: ThemePreset;
|
|
3065
4079
|
|
|
3066
4080
|
/** Axis-aligned rectangle in media (CSS) coordinates. */
|
|
@@ -3071,7 +4085,7 @@ declare interface Rect {
|
|
|
3071
4085
|
height: number;
|
|
3072
4086
|
}
|
|
3073
4087
|
|
|
3074
|
-
export declare const ReferenceLine: DefineComponent<
|
|
4088
|
+
export declare const ReferenceLine: DefineComponent<__VLS_Props_15, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_15> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
3075
4089
|
|
|
3076
4090
|
/**
|
|
3077
4091
|
* A straight reference line across the plot — a horizontal threshold / baseline
|
|
@@ -3086,9 +4100,9 @@ export declare interface ReferenceLineConfig {
|
|
|
3086
4100
|
value?: number;
|
|
3087
4101
|
/** Vertical line at this `time` (epoch ms or `Date`). Mutually exclusive with {@link value}. */
|
|
3088
4102
|
time?: TimeValue;
|
|
3089
|
-
/** Line and label-
|
|
4103
|
+
/** Line and label-chip accent color. Default: the theme line color. */
|
|
3090
4104
|
color?: string;
|
|
3091
|
-
/** Optional text label drawn in
|
|
4105
|
+
/** Optional text label drawn in an annotation chip at the line's near end. */
|
|
3092
4106
|
label?: string;
|
|
3093
4107
|
/** Dash style. Default: `'dashed'`. */
|
|
3094
4108
|
style?: ReferenceLineStyle;
|
|
@@ -3113,7 +4127,7 @@ declare interface RegionEntry {
|
|
|
3113
4127
|
}
|
|
3114
4128
|
|
|
3115
4129
|
/**
|
|
3116
|
-
* Register the
|
|
4130
|
+
* Register the five built-in series so the string form
|
|
3117
4131
|
* `chart.addSeries('line', …)` resolves. Call it once at startup.
|
|
3118
4132
|
*
|
|
3119
4133
|
* Importing this helper pulls every renderer into the bundle — hosts that
|
|
@@ -3143,7 +4157,7 @@ export declare function registerSeriesDefinition(def: SeriesDefinition): void;
|
|
|
3143
4157
|
* but spatial renderers (Pie) need the raw pixel reservation to keep their
|
|
3144
4158
|
* layout out of the Title / InfoBar overlay regions.
|
|
3145
4159
|
*/
|
|
3146
|
-
declare interface RenderPadding {
|
|
4160
|
+
export declare interface RenderPadding {
|
|
3147
4161
|
top: number;
|
|
3148
4162
|
bottom: number;
|
|
3149
4163
|
}
|
|
@@ -3202,6 +4216,14 @@ declare interface RetargetOptions {
|
|
|
3202
4216
|
contractMs?: number;
|
|
3203
4217
|
}
|
|
3204
4218
|
|
|
4219
|
+
/**
|
|
4220
|
+
* Elements float up into place from below, fading in along the wave.
|
|
4221
|
+
* Works for both bar and candlestick series.
|
|
4222
|
+
*/
|
|
4223
|
+
export declare function riseIntro(options?: {
|
|
4224
|
+
travel?: number;
|
|
4225
|
+
}): WaveIntroFn;
|
|
4226
|
+
|
|
3205
4227
|
export declare const rosePineDawn: ThemePreset;
|
|
3206
4228
|
|
|
3207
4229
|
/** DEFAULT bar painter (registered as `'rounded'`). Trusts the engine-supplied
|
|
@@ -3225,6 +4247,13 @@ export declare interface RoundedRectArgs {
|
|
|
3225
4247
|
corners: CornerMask;
|
|
3226
4248
|
}
|
|
3227
4249
|
|
|
4250
|
+
/**
|
|
4251
|
+
* Sample a multi-stop ramp at `t` in [0, 1] with perceptual interpolation
|
|
4252
|
+
* between adjacent stops. A single-stop ramp returns that stop; an empty
|
|
4253
|
+
* ramp returns transparent black (defensive — resolved options never allow it).
|
|
4254
|
+
*/
|
|
4255
|
+
export declare function sampleRamp(stops: readonly string[], t: number): string;
|
|
4256
|
+
|
|
3228
4257
|
export declare const sandDune: ThemePreset;
|
|
3229
4258
|
|
|
3230
4259
|
/** Environment the chart hands a {@link SeriesDefinition} when constructing its renderer. */
|
|
@@ -3250,6 +4279,20 @@ export declare interface SeriesDefinition<O = Record<string, unknown>> {
|
|
|
3250
4279
|
create(env: SeriesCreateEnv, options: Partial<O>): SeriesRenderer;
|
|
3251
4280
|
}
|
|
3252
4281
|
|
|
4282
|
+
/** Which spatial series (pie, heatmap, or a custom spatial kind) is currently hovered, and its slice/cell info. */
|
|
4283
|
+
export declare interface SeriesHoverInfo {
|
|
4284
|
+
seriesId: string;
|
|
4285
|
+
index: number;
|
|
4286
|
+
info: HoverInfo | null;
|
|
4287
|
+
}
|
|
4288
|
+
|
|
4289
|
+
/**
|
|
4290
|
+
* Discriminant for the {@link SeriesRenderer} union. Open-ended — a custom
|
|
4291
|
+
* series (see {@link CustomSpatialSeriesRenderer} / {@link TimeSeriesRenderer})
|
|
4292
|
+
* picks any string that isn't one of the built-ins.
|
|
4293
|
+
*/
|
|
4294
|
+
export declare type SeriesKind = 'candlestick' | 'line' | 'bar' | 'pie' | 'heatmap' | (string & {});
|
|
4295
|
+
|
|
3253
4296
|
/**
|
|
3254
4297
|
* A single named (and optionally colored) layer. Carries the layer's display
|
|
3255
4298
|
* name and color *alongside* its data, so `Tooltip` / `Legend` show per-layer
|
|
@@ -3265,7 +4308,7 @@ declare interface SeriesLayer<T> {
|
|
|
3265
4308
|
data: T[];
|
|
3266
4309
|
}
|
|
3267
4310
|
|
|
3268
|
-
declare interface SeriesRenderContext {
|
|
4311
|
+
export declare interface SeriesRenderContext {
|
|
3269
4312
|
scope: BitmapCoordinateSpace;
|
|
3270
4313
|
timeScale: XScale;
|
|
3271
4314
|
yScale: YScale;
|
|
@@ -3289,9 +4332,10 @@ declare interface SeriesRenderContext {
|
|
|
3289
4332
|
|
|
3290
4333
|
/**
|
|
3291
4334
|
* Every series renderer is one of these. Discriminated on `kind`: narrow with
|
|
3292
|
-
*
|
|
4335
|
+
* {@link isTimeSeriesRenderer} to reach the time-axis surface — spatial kinds
|
|
4336
|
+
* (pie, heatmap, and any custom spatial kind) have no time-series queries.
|
|
3293
4337
|
*/
|
|
3294
|
-
declare type SeriesRenderer = TimeSeriesRenderer | PieSeriesRenderer;
|
|
4338
|
+
export declare type SeriesRenderer = TimeSeriesRenderer | PieSeriesRenderer | HeatmapSeriesRenderer | CustomSpatialSeriesRenderer;
|
|
3295
4339
|
|
|
3296
4340
|
/**
|
|
3297
4341
|
* Frozen, per-row snapshot of a series at a single point in time. The shape
|
|
@@ -3319,8 +4363,8 @@ export declare interface SeriesSnapshot {
|
|
|
3319
4363
|
readonly color: string;
|
|
3320
4364
|
}
|
|
3321
4365
|
|
|
3322
|
-
/**
|
|
3323
|
-
export declare type SeriesType = 'candlestick' | 'line' | 'bar' | 'pie';
|
|
4366
|
+
/** Primary series types. Open-ended — a custom {@link SeriesDefinition} picks any string that isn't a built-in. */
|
|
4367
|
+
export declare type SeriesType = 'candlestick' | 'line' | 'bar' | 'pie' | 'heatmap' | (string & {});
|
|
3324
4368
|
|
|
3325
4369
|
/** Width and height pair. */
|
|
3326
4370
|
declare interface Size {
|
|
@@ -3328,17 +4372,97 @@ declare interface Size {
|
|
|
3328
4372
|
height: number;
|
|
3329
4373
|
}
|
|
3330
4374
|
|
|
4375
|
+
/**
|
|
4376
|
+
* "Chart skeleton" — muted placeholder candle shapes with a soft shimmer
|
|
4377
|
+
* band sweeping across them, the classic skeleton-screen pattern adapted for
|
|
4378
|
+
* a time-series stage. The bar nearest the boundary is centered on the real
|
|
4379
|
+
* {@link LoadingIndicatorArgs.edgeValueY} so it still visually picks up
|
|
4380
|
+
* where the chart leaves off; the rest are honest placeholders (a gentle
|
|
4381
|
+
* taper), not a prediction. Falls back to mid-height when no boundary value
|
|
4382
|
+
* is resolvable (e.g. an empty chart).
|
|
4383
|
+
*
|
|
4384
|
+
* Placeholder size tracks {@link LoadingIndicatorArgs.barSpacing} — the
|
|
4385
|
+
* chart's actual current zoom level — so bars don't visually "pop" to a
|
|
4386
|
+
* different size once real data lands; when it isn't resolvable, falls back
|
|
4387
|
+
* to a fixed gap. Wick stubs only draw for `seriesKind === 'candlestick'`
|
|
4388
|
+
* (or when the kind isn't resolvable, since candlestick is the common case);
|
|
4389
|
+
* a `'line'`/`'bar'` series gets a plain placeholder body instead, since a
|
|
4390
|
+
* wick reads as OHLC-specific.
|
|
4391
|
+
*/
|
|
4392
|
+
export declare const skeletonLoadingIndicator: LoadingIndicatorFn;
|
|
4393
|
+
|
|
4394
|
+
/**
|
|
4395
|
+
* Skeleton morph: candles that land where the loading indicator's
|
|
4396
|
+
* placeholder bars stood grow out of those exact shapes — geometry eases
|
|
4397
|
+
* from the placeholder body to the real OHLC, fill blends from the muted
|
|
4398
|
+
* placeholder gray to the candle's own color. Candles outside the
|
|
4399
|
+
* placeholder zone (and any reveal with no hand-off, e.g. a custom
|
|
4400
|
+
* indicator that never reports its shapes) play the `fallback` instead —
|
|
4401
|
+
* `fadeIntro()` unless overridden.
|
|
4402
|
+
*
|
|
4403
|
+
* Meant for the `historyReveal` option, paired with an `EdgeLoader` whose
|
|
4404
|
+
* indicator reports placeholders (`skeletonLoadingIndicator` does).
|
|
4405
|
+
*/
|
|
4406
|
+
export declare function skeletonMorphIntro(options?: {
|
|
4407
|
+
fallback?: CandleIntroFn;
|
|
4408
|
+
}): CandleIntroFn;
|
|
4409
|
+
|
|
3331
4410
|
export declare type SliceInfo = HoverInfo;
|
|
3332
4411
|
|
|
3333
4412
|
/** `curve: 'smooth'` — monotone cubic. The in-flight last segment stays straight
|
|
3334
4413
|
* while the trailing endpoint is growing so the head can't wobble / overshoot. */
|
|
3335
4414
|
export declare const smoothCurve: LinePainter;
|
|
3336
4415
|
|
|
4416
|
+
/**
|
|
4417
|
+
* Snap factory — no animation, no parameters. Generic so it works for both
|
|
4418
|
+
* Y and X. Exposed so power users can opt out of axis motion without
|
|
4419
|
+
* disabling other animations:
|
|
4420
|
+
*
|
|
4421
|
+
* ```
|
|
4422
|
+
* animations: { axis: { y: { curve: snap() } } }
|
|
4423
|
+
* ```
|
|
4424
|
+
*/
|
|
4425
|
+
export declare function snap<T extends YRange | VisibleRange = YRange>(): TransitionFactory<T>;
|
|
4426
|
+
|
|
3337
4427
|
/** Sort order applied to a snapshot list by the helper. */
|
|
3338
4428
|
export declare type SnapshotSort = 'none' | 'asc' | 'desc';
|
|
3339
4429
|
|
|
3340
4430
|
export declare const solarizedLight: ThemePreset;
|
|
3341
4431
|
|
|
4432
|
+
/**
|
|
4433
|
+
* Critically-damped spring transition factory. Generic over the value type
|
|
4434
|
+
* so the same factory works for both Y (`YRange`) and X (`VisibleRange`).
|
|
4435
|
+
*
|
|
4436
|
+
* The factory dispatches at construction time based on the shape of the
|
|
4437
|
+
* initial value:
|
|
4438
|
+
*
|
|
4439
|
+
* - `{ min, max }` → {@link YRangeSpring} (direction-aware ω: expand vs
|
|
4440
|
+
* contract, used by the sticky-Y mechanism).
|
|
4441
|
+
* - `{ from, to }` → {@link VisibleRangeSpring} (single ω, no direction
|
|
4442
|
+
* asymmetry — X has no analog of sticky-Y).
|
|
4443
|
+
*
|
|
4444
|
+
* Both implementations carry velocity through mid-flight retargets so
|
|
4445
|
+
* wheel-zoom sequences and rapid streaming ticks stay continuous.
|
|
4446
|
+
*
|
|
4447
|
+
* Usage:
|
|
4448
|
+
* ```ts
|
|
4449
|
+
* animations: {
|
|
4450
|
+
* axis: {
|
|
4451
|
+
* y: { curve: spring() },
|
|
4452
|
+
* x: { curve: spring() },
|
|
4453
|
+
* },
|
|
4454
|
+
* }
|
|
4455
|
+
* ```
|
|
4456
|
+
*
|
|
4457
|
+
* The engine is the single source of truth for the per-call durations —
|
|
4458
|
+
* settle times come through `RetargetOptions.expandMs` / `contractMs`.
|
|
4459
|
+
*/
|
|
4460
|
+
export declare function spring<T extends YRange | VisibleRange = YRange>(): TransitionFactory<T>;
|
|
4461
|
+
|
|
4462
|
+
/** Bars grow from the baseline with a soft ease-out-back overshoot past
|
|
4463
|
+
* their final height before settling. */
|
|
4464
|
+
export declare function springIntro(): BarIntroFn;
|
|
4465
|
+
|
|
3342
4466
|
/** Stacking mode for bar/line series: off (overlap), normal (stacked), percent (100% stacked). */
|
|
3343
4467
|
export declare type StackingMode = 'off' | 'normal' | 'percent';
|
|
3344
4468
|
|
|
@@ -3349,6 +4473,11 @@ export declare const steppedCurve: LinePainter;
|
|
|
3349
4473
|
* the pre-feature stroke path. */
|
|
3350
4474
|
export declare const straightCurve: LinePainter;
|
|
3351
4475
|
|
|
4476
|
+
/** Left-to-right draw-on behind a clip edge with a glowing head. */
|
|
4477
|
+
export declare function sweepIntro(options?: {
|
|
4478
|
+
head?: boolean;
|
|
4479
|
+
}): LineIntroFn;
|
|
4480
|
+
|
|
3352
4481
|
/**
|
|
3353
4482
|
* Input config for {@link createTheme}. Mirrors the structure of {@link ChartTheme}
|
|
3354
4483
|
* but everything is optional except `background`. Missing values are derived automatically.
|
|
@@ -3368,6 +4497,7 @@ export declare interface ThemeConfig {
|
|
|
3368
4497
|
seriesColors?: string[];
|
|
3369
4498
|
bar?: Partial<NonNullable<ChartTheme['bar']>>;
|
|
3370
4499
|
pie?: Partial<NonNullable<ChartTheme['pie']>>;
|
|
4500
|
+
heatmap?: Partial<NonNullable<ChartTheme['heatmap']>>;
|
|
3371
4501
|
bands?: Partial<ChartTheme['bands']>;
|
|
3372
4502
|
crosshair?: Partial<ChartTheme['crosshair']>;
|
|
3373
4503
|
axis?: Partial<ChartTheme['axis']>;
|
|
@@ -3431,9 +4561,18 @@ declare interface TickTrackerSnapshot {
|
|
|
3431
4561
|
readonly isAnimating: boolean;
|
|
3432
4562
|
}
|
|
3433
4563
|
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
4564
|
+
/** Locale / timezone override for {@link formatTime} / {@link formatDate}. Any field omitted keeps the built-in default. */
|
|
4565
|
+
export declare interface TimeFormatOptions {
|
|
4566
|
+
/** BCP 47 locale tag (e.g. `'de-DE'`). Default: `'en-US'`. */
|
|
4567
|
+
locale?: string;
|
|
4568
|
+
/** IANA timezone name (e.g. `'America/New_York'`). Default: the browser's local timezone. */
|
|
4569
|
+
timeZone?: string;
|
|
4570
|
+
/** 12-hour clock. Default: `false` (24-hour), preserved from the original hardcoded behavior. */
|
|
4571
|
+
hour12?: boolean;
|
|
4572
|
+
}
|
|
4573
|
+
|
|
4574
|
+
/** Custom time-tick formatter, mirroring {@link YScale}'s `ValueFormatter` contract. */
|
|
4575
|
+
export declare type TimeFormatter = (timestamp: number, interval: number) => string;
|
|
3437
4576
|
|
|
3438
4577
|
/** A single time-value data point for line and bar series. Time is a timestamp in milliseconds. */
|
|
3439
4578
|
export declare interface TimePoint {
|
|
@@ -3446,7 +4585,7 @@ export declare type TimePointInput = Omit<TimePoint, 'time'> & {
|
|
|
3446
4585
|
time: TimeValue;
|
|
3447
4586
|
};
|
|
3448
4587
|
|
|
3449
|
-
export declare const TimeRegion: DefineComponent<
|
|
4588
|
+
export declare const TimeRegion: DefineComponent<__VLS_Props_17, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_17> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
3450
4589
|
|
|
3451
4590
|
/**
|
|
3452
4591
|
* A translucent vertical band shading the interval `[from, to]` — Grafana's
|
|
@@ -3465,9 +4604,9 @@ export declare interface TimeRegionConfig {
|
|
|
3465
4604
|
to?: TimeRegionEnd;
|
|
3466
4605
|
/** Band fill — any CSS color, typically translucent. Default: a faint tint of `color`. */
|
|
3467
4606
|
fill?: string;
|
|
3468
|
-
/** Optional text label drawn in
|
|
4607
|
+
/** Optional text label drawn in an annotation chip at the top of the band. */
|
|
3469
4608
|
label?: string;
|
|
3470
|
-
/** Edge-line and label-
|
|
4609
|
+
/** Edge-line and label-chip accent. Default: the theme's muted axis text color. */
|
|
3471
4610
|
color?: string;
|
|
3472
4611
|
}
|
|
3473
4612
|
|
|
@@ -3485,8 +4624,8 @@ export declare type TimeRegionEnd = TimeValue | 'now';
|
|
|
3485
4624
|
* `getLastDataPoint` / `getSecondLastDataPoint` / `getVisibleDataPoints` are
|
|
3486
4625
|
* pinned to layer 0 (see {@link BaseMultiLayerSeries}).
|
|
3487
4626
|
*/
|
|
3488
|
-
declare interface TimeSeriesRenderer extends BaseSeriesRenderer {
|
|
3489
|
-
readonly kind: 'candlestick' | 'line' | 'bar';
|
|
4627
|
+
export declare interface TimeSeriesRenderer extends BaseSeriesRenderer {
|
|
4628
|
+
readonly kind: 'candlestick' | 'line' | 'bar' | (string & {});
|
|
3490
4629
|
/** Earliest/latest sample time across all owned layers, or null when empty. */
|
|
3491
4630
|
getTimeBounds(): {
|
|
3492
4631
|
first: number;
|
|
@@ -3507,6 +4646,9 @@ declare interface TimeSeriesRenderer extends BaseSeriesRenderer {
|
|
|
3507
4646
|
} | null;
|
|
3508
4647
|
}
|
|
3509
4648
|
|
|
4649
|
+
/** Custom tick-value generator — replaces the built-in `niceTimeIntervals` tier resolution entirely when installed. */
|
|
4650
|
+
export declare type TimeTickGenerator = (range: XRange, dataInterval: number) => number[];
|
|
4651
|
+
|
|
3510
4652
|
/**
|
|
3511
4653
|
* Accepted time input: a timestamp in **milliseconds** (like `Date.now()`) or a `Date` object.
|
|
3512
4654
|
* `Date` values are converted to milliseconds internally via `Date.getTime()`.
|
|
@@ -3557,6 +4699,15 @@ export declare interface TooltipPositionArgs {
|
|
|
3557
4699
|
offsetY?: number;
|
|
3558
4700
|
}
|
|
3559
4701
|
|
|
4702
|
+
/**
|
|
4703
|
+
* Blueprint → ink: a faint stroke-only ghost of the whole line shows from
|
|
4704
|
+
* the first frame, while the full-color pass (area included) sweeps across
|
|
4705
|
+
* behind the same front as `'sweep'`.
|
|
4706
|
+
*/
|
|
4707
|
+
export declare function traceIntro(options?: {
|
|
4708
|
+
ghostAlpha?: number;
|
|
4709
|
+
}): LineIntroFn;
|
|
4710
|
+
|
|
3560
4711
|
/**
|
|
3561
4712
|
* Emit path commands for one run of points onto `env.ctx`. Issues only
|
|
3562
4713
|
* `moveTo` / `lineTo` / `bezierCurveTo`; it never opens or closes a path, so the
|
|
@@ -3591,7 +4742,7 @@ export declare interface TracePathArgs {
|
|
|
3591
4742
|
* Other animation math (entry tweens, pulse, axis tick fade) stays
|
|
3592
4743
|
* engine-fixed.
|
|
3593
4744
|
*/
|
|
3594
|
-
declare interface Transition<T> {
|
|
4745
|
+
export declare interface Transition<T> {
|
|
3595
4746
|
/** Current sampled position. Read by renderers on every frame. */
|
|
3596
4747
|
readonly current: T;
|
|
3597
4748
|
/** Active retarget destination. May equal `current` after settle. */
|
|
@@ -3617,7 +4768,7 @@ declare interface Transition<T> {
|
|
|
3617
4768
|
* Holds the initial value so the produced transition starts pinned to
|
|
3618
4769
|
* the same value the chart will render on its first frame.
|
|
3619
4770
|
*/
|
|
3620
|
-
declare interface TransitionContext<T> {
|
|
4771
|
+
export declare interface TransitionContext<T> {
|
|
3621
4772
|
initial: T;
|
|
3622
4773
|
}
|
|
3623
4774
|
|
|
@@ -3627,7 +4778,7 @@ declare interface TransitionContext<T> {
|
|
|
3627
4778
|
* smoothing strategy. Built-in factories: {@link hermite} (Y default),
|
|
3628
4779
|
* {@link spring} (X default, also valid for Y), {@link snap} (no animation).
|
|
3629
4780
|
*/
|
|
3630
|
-
declare type TransitionFactory<T> = (ctx: TransitionContext<T>) => Transition<T>;
|
|
4781
|
+
export declare type TransitionFactory<T> = (ctx: TransitionContext<T>) => Transition<T>;
|
|
3631
4782
|
|
|
3632
4783
|
/** Font family and base font size used across the chart. */
|
|
3633
4784
|
export declare interface Typography {
|
|
@@ -3637,6 +4788,17 @@ export declare interface Typography {
|
|
|
3637
4788
|
fontSize: number;
|
|
3638
4789
|
}
|
|
3639
4790
|
|
|
4791
|
+
/**
|
|
4792
|
+
* Amplitude unfold: every value lerps from its layer's visible mean toward
|
|
4793
|
+
* its real value with a soft ease-out-back overshoot, staggered
|
|
4794
|
+
* left-to-right by `stagger` (fraction of the window; default 0.35,
|
|
4795
|
+
* clamped to `[0, 0.9]` — at 1 the rightmost points would never finish
|
|
4796
|
+
* their tween and snap on settle).
|
|
4797
|
+
*/
|
|
4798
|
+
export declare function unfoldIntro(options?: {
|
|
4799
|
+
stagger?: number;
|
|
4800
|
+
}): LineIntroFn;
|
|
4801
|
+
|
|
3640
4802
|
export declare function useChartInstance(): ChartInstance;
|
|
3641
4803
|
|
|
3642
4804
|
export declare function useCrosshairPosition(chart: ChartInstance): Ref<CrosshairPosition | null>;
|
|
@@ -3685,6 +4847,9 @@ declare type ValueColor = string | ((value: number) => string);
|
|
|
3685
4847
|
/** Signature for a value-to-string formatter (YAxis, YLabel, Pie, Sparkline, NumberFlow). */
|
|
3686
4848
|
export declare type ValueFormatter = (value: number) => string;
|
|
3687
4849
|
|
|
4850
|
+
/** Custom tick-value generator — replaces the built-in {1,2,5}×10^k resolution entirely when installed. */
|
|
4851
|
+
export declare type ValueTickGenerator = (range: YRange) => number[];
|
|
4852
|
+
|
|
3688
4853
|
/** @deprecated Use {@link XRange} instead. Visible time range of the chart. */
|
|
3689
4854
|
export declare type VisibleRange = XRange;
|
|
3690
4855
|
|
|
@@ -3698,7 +4863,7 @@ export declare type VisibleRange = XRange;
|
|
|
3698
4863
|
* right by `bars` data intervals. Useful for "show N bars starting
|
|
3699
4864
|
* here" patterns (warm-up windows for streaming charts, etc.).
|
|
3700
4865
|
*/
|
|
3701
|
-
declare type VisibleRangeSpec = number | {
|
|
4866
|
+
export declare type VisibleRangeSpec = number | {
|
|
3702
4867
|
from: TimeValue;
|
|
3703
4868
|
to: TimeValue;
|
|
3704
4869
|
} | {
|
|
@@ -3706,6 +4871,70 @@ declare type VisibleRangeSpec = number | {
|
|
|
3706
4871
|
bars: number;
|
|
3707
4872
|
};
|
|
3708
4873
|
|
|
4874
|
+
/** Directives shape common to both series (each extends it with its own
|
|
4875
|
+
* element/value callbacks). */
|
|
4876
|
+
export declare interface WaveIntroDirectives {
|
|
4877
|
+
/**
|
|
4878
|
+
* Horizontal clip window in bitmap pixels applied to the whole series
|
|
4879
|
+
* pass. Omitted sides default to the pane edges, so `{ toX }` is a
|
|
4880
|
+
* left-to-right reveal.
|
|
4881
|
+
*/
|
|
4882
|
+
clip?: {
|
|
4883
|
+
fromX?: number;
|
|
4884
|
+
toX?: number;
|
|
4885
|
+
};
|
|
4886
|
+
element?: (el: WaveIntroElement) => WaveIntroTransform;
|
|
4887
|
+
}
|
|
4888
|
+
|
|
4889
|
+
/** Per-element fields common to the bar and candlestick intro contracts. */
|
|
4890
|
+
export declare interface WaveIntroElement {
|
|
4891
|
+
/** Eased wave progress for this element, staggered left → right. */
|
|
4892
|
+
progress: number;
|
|
4893
|
+
/** Normalized x-position across the visible window, clamped to `[0, 1]`. */
|
|
4894
|
+
position: number;
|
|
4895
|
+
/** The element's time coordinate. */
|
|
4896
|
+
time: number;
|
|
4897
|
+
}
|
|
4898
|
+
|
|
4899
|
+
/** An intro function built only from the shared fields — assignable to both
|
|
4900
|
+
* `BarIntroFn` and `CandleIntroFn`. */
|
|
4901
|
+
export declare type WaveIntroFn = (frame: WaveIntroFrame) => WaveIntroDirectives;
|
|
4902
|
+
|
|
4903
|
+
/** Frame fields common to the bar and candlestick intro contracts. */
|
|
4904
|
+
export declare interface WaveIntroFrame {
|
|
4905
|
+
/** Linear intro progress in `[0, 1]` over the whole reveal window. */
|
|
4906
|
+
progress: number;
|
|
4907
|
+
/**
|
|
4908
|
+
* Plot-area width in bitmap pixels — the span the time scale maps the
|
|
4909
|
+
* visible range onto (excludes the Y-axis strip sharing the canvas).
|
|
4910
|
+
*/
|
|
4911
|
+
width: number;
|
|
4912
|
+
/** Plot-area height in bitmap pixels (excludes the X-axis strip). */
|
|
4913
|
+
height: number;
|
|
4914
|
+
/** Visible time range. */
|
|
4915
|
+
range: VisibleRange;
|
|
4916
|
+
}
|
|
4917
|
+
|
|
4918
|
+
/** Declarative transform understood by both series' element callbacks. */
|
|
4919
|
+
export declare interface WaveIntroTransform {
|
|
4920
|
+
/** Horizontal translation in bitmap px. */
|
|
4921
|
+
offsetX?: number;
|
|
4922
|
+
/** Vertical translation in bitmap px. */
|
|
4923
|
+
offsetY?: number;
|
|
4924
|
+
/** Opacity multiplier in `[0, 1]`. */
|
|
4925
|
+
alpha?: number;
|
|
4926
|
+
}
|
|
4927
|
+
|
|
4928
|
+
/** Two-phase reveal: wicks needle out first as a skeleton, then bodies (and
|
|
4929
|
+
* volume) unfold over them from the open price. */
|
|
4930
|
+
export declare function wickBodyIntro(): CandleIntroFn;
|
|
4931
|
+
|
|
4932
|
+
/**
|
|
4933
|
+
* A hard reveal front sweeps left to right; elements appear fully formed
|
|
4934
|
+
* behind it. Works for both bar and candlestick series.
|
|
4935
|
+
*/
|
|
4936
|
+
export declare function wipeIntro(): WaveIntroFn;
|
|
4937
|
+
|
|
3709
4938
|
/** Configuration for the X (time) axis. */
|
|
3710
4939
|
export declare interface XAxisConfig {
|
|
3711
4940
|
/** Height in CSS pixels. Default: 30. */
|
|
@@ -3720,7 +4949,7 @@ declare interface XRange {
|
|
|
3720
4949
|
to: number;
|
|
3721
4950
|
}
|
|
3722
4951
|
|
|
3723
|
-
declare class XScale {
|
|
4952
|
+
export declare class XScale {
|
|
3724
4953
|
/**
|
|
3725
4954
|
* Shared fade state for time ticks. Grid lines (canvas) and DOM tick labels
|
|
3726
4955
|
* read opacity from the same tracker, so a tick fading in/out looks
|
|
@@ -3734,6 +4963,12 @@ declare class XScale {
|
|
|
3734
4963
|
private dataInterval;
|
|
3735
4964
|
private labelCountHintValue;
|
|
3736
4965
|
private minSpacingValue;
|
|
4966
|
+
/** Custom formatter (driven by `setFormat` / a future `<TimeAxis format=…>`). */
|
|
4967
|
+
private customFormat;
|
|
4968
|
+
/** Custom tick generator — bypasses tier resolution in `niceTickValues` when set. */
|
|
4969
|
+
private customTickGenerator;
|
|
4970
|
+
private localeValue;
|
|
4971
|
+
private timeZoneValue;
|
|
3737
4972
|
private resolvedInterval;
|
|
3738
4973
|
private lastInterval;
|
|
3739
4974
|
/**
|
|
@@ -3750,6 +4985,28 @@ declare class XScale {
|
|
|
3750
4985
|
update(range: XRange, mediaWidth: number, pixelRatio: number, dataInterval?: number): void;
|
|
3751
4986
|
setLabelCount(n: number | null | undefined): void;
|
|
3752
4987
|
setMinSpacing(px: number | null | undefined): void;
|
|
4988
|
+
/** Install (or clear) a custom tick-label formatter. */
|
|
4989
|
+
setFormat(fn: TimeFormatter | null): void;
|
|
4990
|
+
/** Read back the currently installed formatter — null when the built-in is active. */
|
|
4991
|
+
getFormat(): TimeFormatter | null;
|
|
4992
|
+
/**
|
|
4993
|
+
* Install (or clear) a custom tick-value generator. When set, it replaces
|
|
4994
|
+
* `niceTimeIntervals` tier resolution entirely — `niceTickValues` calls it
|
|
4995
|
+
* directly with the current range and reports its own tick spacing.
|
|
4996
|
+
*/
|
|
4997
|
+
setTickGenerator(fn: TimeTickGenerator | null): void;
|
|
4998
|
+
/** BCP 47 locale applied to the built-in formatter. Ignored while a custom `setFormat` is installed. */
|
|
4999
|
+
setLocale(locale: string | undefined): void;
|
|
5000
|
+
getLocale(): string | undefined;
|
|
5001
|
+
/** IANA timezone applied to the built-in formatter. Ignored while a custom `setFormat` is installed. */
|
|
5002
|
+
setTimeZone(timeZone: string | undefined): void;
|
|
5003
|
+
getTimeZone(): string | undefined;
|
|
5004
|
+
/**
|
|
5005
|
+
* Format a tick timestamp for display. A custom formatter (via
|
|
5006
|
+
* {@link setFormat}) wins; otherwise falls back to the built-in
|
|
5007
|
+
* `formatTime`, applying the installed locale/timezone.
|
|
5008
|
+
*/
|
|
5009
|
+
formatX(timestamp: number, interval: number): string;
|
|
3753
5010
|
private resetHysteresis;
|
|
3754
5011
|
timeToX(time: number): number;
|
|
3755
5012
|
timeToBitmapX(time: number): number;
|
|
@@ -3777,7 +5034,7 @@ declare class XScale {
|
|
|
3777
5034
|
private countTicks;
|
|
3778
5035
|
}
|
|
3779
5036
|
|
|
3780
|
-
export declare const YAxis: DefineComponent<
|
|
5037
|
+
export declare const YAxis: DefineComponent<__VLS_Props_20, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_20> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
3781
5038
|
containerRef: HTMLDivElement;
|
|
3782
5039
|
}, HTMLDivElement>;
|
|
3783
5040
|
|
|
@@ -3795,6 +5052,23 @@ export declare interface YAxisConfig {
|
|
|
3795
5052
|
|
|
3796
5053
|
export declare const YLabel: __VLS_WithTemplateSlots_8<typeof __VLS_component_8, __VLS_TemplateResult_8["slots"]>;
|
|
3797
5054
|
|
|
5055
|
+
/**
|
|
5056
|
+
* Badge motion: `true` (default) glides + counts up + fades in with the intro;
|
|
5057
|
+
* `false` snaps with no easing (the pre-animation behavior); an object tunes
|
|
5058
|
+
* individual parts.
|
|
5059
|
+
*/
|
|
5060
|
+
declare type YLabelAnimate = boolean | YLabelAnimateOptions;
|
|
5061
|
+
|
|
5062
|
+
/** Fine-grained badge motion tuning. See the framework `YLabel`'s `animate` prop. */
|
|
5063
|
+
declare interface YLabelAnimateOptions {
|
|
5064
|
+
/** Glide the badge vertically across value jumps instead of snapping. Default `true`. */
|
|
5065
|
+
glide?: boolean;
|
|
5066
|
+
/** Count the value up from the first visible sample to the last during the initial reveal. Default `true`. */
|
|
5067
|
+
countUp?: boolean;
|
|
5068
|
+
/** Settle time (ms) for the vertical glide. Default {@link DEFAULT_SETTLE_MS}. */
|
|
5069
|
+
settleMs?: number;
|
|
5070
|
+
}
|
|
5071
|
+
|
|
3798
5072
|
/** Direction of the current value vs. previous close. Drives the badge color in the default UI. */
|
|
3799
5073
|
declare type YLabelDirection = 'up' | 'down' | 'neutral';
|
|
3800
5074
|
|
|
@@ -3811,7 +5085,7 @@ export declare interface YRange {
|
|
|
3811
5085
|
* Maps values to vertical pixel positions (and vice versa).
|
|
3812
5086
|
* Also provides tick generation and value formatting for the Y axis.
|
|
3813
5087
|
*/
|
|
3814
|
-
declare class YScale {
|
|
5088
|
+
export declare class YScale {
|
|
3815
5089
|
/** Shared fade state for Y ticks; see {@link TimeScale.tickTracker}. */
|
|
3816
5090
|
readonly tickTracker: AxisTickTracker;
|
|
3817
5091
|
private min;
|
|
@@ -3834,6 +5108,8 @@ declare class YScale {
|
|
|
3834
5108
|
private lastRawInterval;
|
|
3835
5109
|
/** Custom formatter (driven by `<YAxis format=…>`). */
|
|
3836
5110
|
private customFormat;
|
|
5111
|
+
/** Custom tick generator — bypasses {1,2,5}×10^k resolution in `niceTickValues` when set. */
|
|
5112
|
+
private customTickGenerator;
|
|
3837
5113
|
private get labelCountHint();
|
|
3838
5114
|
private get minLabelSpacing();
|
|
3839
5115
|
/** Recalculate the scale with a new Y range, chart height, and device pixel ratio. */
|
|
@@ -3847,6 +5123,12 @@ declare class YScale {
|
|
|
3847
5123
|
setFormat(fn: ValueFormatter | null): void;
|
|
3848
5124
|
/** Read back the currently installed formatter — null when the built-in is active. */
|
|
3849
5125
|
getFormat(): ValueFormatter | null;
|
|
5126
|
+
/**
|
|
5127
|
+
* Install (or clear) a custom tick-value generator. When set, it replaces
|
|
5128
|
+
* {1,2,5}×10^k resolution entirely — `niceTickValues` calls it directly
|
|
5129
|
+
* with the current range.
|
|
5130
|
+
*/
|
|
5131
|
+
setTickGenerator(fn: ValueTickGenerator | null): void;
|
|
3850
5132
|
/** Convert a value to a Y position in CSS (media) pixels. */
|
|
3851
5133
|
valueToY(value: number): number;
|
|
3852
5134
|
/** Convert a value to a Y position in physical (bitmap) pixels. */
|