minerva-design 1.17.2 → 1.19.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/CHANGELOG.md +23 -0
- package/custom-elements.json +10 -6
- package/dist/angular/fesm2022/minerva-angular.mjs +173 -70
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +33 -21
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +1 -0
- package/dist/charts/core.d.ts +1 -0
- package/dist/charts/core.js +22 -21
- package/dist/charts/engine/chart.cjs +1 -1
- package/dist/charts/engine/chart.cjs.map +1 -1
- package/dist/charts/engine/chart.js +414 -376
- package/dist/charts/engine/chart.js.map +1 -1
- package/dist/charts/engine/overlay.cjs +1 -1
- package/dist/charts/engine/overlay.cjs.map +1 -1
- package/dist/charts/engine/overlay.d.cts +5 -0
- package/dist/charts/engine/overlay.d.ts +5 -0
- package/dist/charts/engine/overlay.js +94 -69
- package/dist/charts/engine/overlay.js.map +1 -1
- package/dist/charts/engine/quadrant-card.cjs +2 -0
- package/dist/charts/engine/quadrant-card.cjs.map +1 -0
- package/dist/charts/engine/quadrant-card.d.cts +83 -0
- package/dist/charts/engine/quadrant-card.d.ts +83 -0
- package/dist/charts/engine/quadrant-card.js +154 -0
- package/dist/charts/engine/quadrant-card.js.map +1 -0
- package/dist/charts/engine/scene.cjs +1 -1
- package/dist/charts/engine/scene.cjs.map +1 -1
- package/dist/charts/engine/scene.d.cts +5 -0
- package/dist/charts/engine/scene.d.ts +5 -0
- package/dist/charts/engine/scene.js +32 -32
- package/dist/charts/engine/scene.js.map +1 -1
- package/dist/charts/engine/types.d.cts +14 -0
- package/dist/charts/engine/types.d.ts +14 -0
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.js +28 -27
- package/dist/charts/react/Chart.cjs +1 -1
- package/dist/charts/react/Chart.cjs.map +1 -1
- package/dist/charts/react/Chart.d.cts +4 -2
- package/dist/charts/react/Chart.d.ts +4 -2
- package/dist/charts/react/Chart.js +42 -42
- package/dist/charts/react/Chart.js.map +1 -1
- package/dist/charts/react/charts.cjs +1 -1
- package/dist/charts/react/charts.cjs.map +1 -1
- package/dist/charts/react/charts.js +395 -391
- package/dist/charts/react/charts.js.map +1 -1
- package/dist/charts/react/types.d.cts +8 -2
- package/dist/charts/react/types.d.ts +8 -2
- package/dist/core/contracts.cjs +1 -1
- package/dist/core/contracts.cjs.map +1 -1
- package/dist/core/contracts.js +1 -1
- package/dist/core/contracts.js.map +1 -1
- package/dist/native/charts/src/engine/overlay.cjs +1 -1
- package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
- package/dist/native/charts/src/engine/overlay.js +89 -65
- package/dist/native/charts/src/engine/overlay.js.map +1 -1
- package/dist/native/charts/src/engine/scene.cjs +1 -1
- package/dist/native/charts/src/engine/scene.cjs.map +1 -1
- package/dist/native/charts/src/engine/scene.js +32 -32
- package/dist/native/charts/src/engine/scene.js.map +1 -1
- package/dist/react/components/QuadrantTaskBoard/QuadrantTaskBoard.cjs +1 -1
- package/dist/react/components/QuadrantTaskBoard/QuadrantTaskBoard.cjs.map +1 -1
- package/dist/react/components/QuadrantTaskBoard/QuadrantTaskBoard.js +14 -8
- package/dist/react/components/QuadrantTaskBoard/QuadrantTaskBoard.js.map +1 -1
- package/dist/react/components/QuadrantTaskBoard/quadrantTaskBoard.module.scss.cjs +1 -1
- package/dist/react/components/QuadrantTaskBoard/quadrantTaskBoard.module.scss.cjs.map +1 -1
- package/dist/react/components/QuadrantTaskBoard/quadrantTaskBoard.module.scss.js +16 -15
- package/dist/react/components/QuadrantTaskBoard/quadrantTaskBoard.module.scss.js.map +1 -1
- package/dist/react/style.css +1 -1
- package/dist/react/styles/quadrant-task-board.css +1 -1
- package/dist/taro/index.js +1521 -1496
- package/dist/taro/style.css +22 -0
- package/dist/uni/manifest.d.ts +34 -34
- package/dist/uni/manifest.js +34 -39
- package/dist/uni/style.css +22 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +4 -3
- package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -1
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +186 -142
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/vue/components/Chart/cartesian.d.ts +5 -1
- package/dist/vue/components/Chart/cartesian.js +2 -0
- package/dist/vue/components/Chart/cartesian.js.map +1 -1
- package/dist/vue/components/QuadrantTaskBoard/QuadrantTaskBoard.vue.js.map +1 -1
- package/dist/vue/components/QuadrantTaskBoard/QuadrantTaskBoard.vue_vue_type_script_setup_true_lang.js +18 -12
- package/dist/vue/components/QuadrantTaskBoard/QuadrantTaskBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/weapp/charts/canvas.js +48 -11
- package/dist/weapp/controls.wxss +22 -0
- package/dist/web-components/components/chart/chart.d.ts +4 -1
- package/dist/web-components/components/chart/chart.js +3 -1
- package/dist/web-components/components/chart/chart.js.map +1 -1
- package/dist/web-components/components/chart/charts.d.ts +34 -14
- package/dist/web-components/components/chart/charts.js +145 -98
- package/dist/web-components/components/chart/charts.js.map +1 -1
- package/dist/web-components/components/quadrant-task-board/quadrant-task-board.d.ts +8 -8
- package/dist/web-components/components/quadrant-task-board/quadrant-task-board.js +16 -12
- package/dist/web-components/components/quadrant-task-board/quadrant-task-board.js.map +1 -1
- package/dist/web-components/styles/QuadrantTaskBoard/quadrantTaskBoard.css.js +1 -1
- package/dist/web-components/styles/QuadrantTaskBoard/quadrantTaskBoard.css.js.map +1 -1
- package/package.json +1 -1
|
@@ -9544,9 +9544,11 @@ export declare class MnSparkline extends MnCartesianChartBase {
|
|
|
9544
9544
|
* focused dot to the neighbouring quadrant (`pointDrop`, announced in a live
|
|
9545
9545
|
* region). The focused dot gets a focus ring and is reported by `hover`.
|
|
9546
9546
|
*
|
|
9547
|
-
*
|
|
9548
|
-
*
|
|
9549
|
-
* the
|
|
9547
|
+
* One point card (in place of the engine tooltip) names the hovered,
|
|
9548
|
+
* keyboard-focused or dragged point and its quadrant; with `pointActions`
|
|
9549
|
+
* it also holds the actions of the point (e.g. edit / delete buttons) and
|
|
9550
|
+
* the `selectedIndex` point keeps it. `quadrantHeader` takes a template
|
|
9551
|
+
* placed in the outer corner of each quadrant (e.g. with an add button).
|
|
9550
9552
|
*/
|
|
9551
9553
|
export declare class MnQuadrantChart extends MnCartesianChartBase {
|
|
9552
9554
|
/** Points to place */
|
|
@@ -9601,10 +9603,11 @@ export declare class MnQuadrantChart extends MnCartesianChartBase {
|
|
|
9601
9603
|
*/
|
|
9602
9604
|
readonly quadrantHeader: import("@angular/core").InputSignal<TemplateRef<QuadrantHeaderContext> | null | undefined>;
|
|
9603
9605
|
/**
|
|
9604
|
-
*
|
|
9605
|
-
*
|
|
9606
|
-
*
|
|
9607
|
-
*
|
|
9606
|
+
* Actions of a point (e.g. edit / delete buttons), rendered in the first
|
|
9607
|
+
* row of its point card (the card of the hovered, keyboard-focused or
|
|
9608
|
+
* `selectedIndex` point; not while dragging); they receive pointer events
|
|
9609
|
+
* and keep the card while the pointer or the focus is on them. Context:
|
|
9610
|
+
* `let-point`, `let-index="index"`
|
|
9608
9611
|
*/
|
|
9609
9612
|
readonly pointActions: import("@angular/core").InputSignal<TemplateRef<QuadrantPointActionsContext> | null | undefined>;
|
|
9610
9613
|
/** A point was clicked */
|
|
@@ -9630,14 +9633,20 @@ export declare class MnQuadrantChart extends MnCartesianChartBase {
|
|
|
9630
9633
|
private lastClick;
|
|
9631
9634
|
/** Keyboard-focused point of the accessible layer (drawn with a focus ring) */
|
|
9632
9635
|
private readonly focusedIndex;
|
|
9633
|
-
/** Point under the pointer (engine hover) */
|
|
9634
|
-
private readonly hoveredIndex;
|
|
9635
9636
|
/** Plot area reported by the engine (position of the templates) */
|
|
9636
9637
|
private readonly plot;
|
|
9637
9638
|
private readonly pointsHost;
|
|
9639
|
+
private readonly cardHost;
|
|
9640
|
+
private readonly viewContainer;
|
|
9641
|
+
/** The point card: DOM of its own, fed by the engine and the point layer */
|
|
9642
|
+
private card;
|
|
9643
|
+
/** The `pointActions` view of the point of the card, moved into the card */
|
|
9644
|
+
private actionsView;
|
|
9638
9645
|
private destroyed;
|
|
9639
|
-
/** Overlay
|
|
9646
|
+
/** Overlay over the plot area: the header templates and the point card */
|
|
9640
9647
|
protected readonly overlayStyle: import("@angular/core").Signal<string | null>;
|
|
9648
|
+
/** Box of the point card: the plot area, sized in pixels (read by the card) */
|
|
9649
|
+
protected readonly cardHostStyle: import("@angular/core").Signal<string>;
|
|
9641
9650
|
/** Position of a data point in the plot, in fractions of its size */
|
|
9642
9651
|
private visual;
|
|
9643
9652
|
/** The quadrant headers: their box, slot style and template context */
|
|
@@ -9647,18 +9656,20 @@ export declare class MnQuadrantChart extends MnCartesianChartBase {
|
|
|
9647
9656
|
box: string;
|
|
9648
9657
|
style: string;
|
|
9649
9658
|
}[]>;
|
|
9650
|
-
/** The point showing `pointActions` (hovered, focused, then selected), as a list of 0 or 1 */
|
|
9651
|
-
protected readonly activePoint: import("@angular/core").Signal<{
|
|
9652
|
-
context: QuadrantPointActionsContext;
|
|
9653
|
-
style: string;
|
|
9654
|
-
}[]>;
|
|
9655
9659
|
constructor();
|
|
9660
|
+
/** Settings of the point card (shared with the other renderers) */
|
|
9661
|
+
private cardOptions;
|
|
9662
|
+
/** Renders the `pointActions` of the point of the card into the card */
|
|
9663
|
+
private renderActions;
|
|
9664
|
+
private destroyCard;
|
|
9656
9665
|
/** Settings of the accessible point layer (shared with the other DOM renderers) */
|
|
9657
9666
|
private layerOptions;
|
|
9658
9667
|
private geometry;
|
|
9659
9668
|
protected engineOptions(): ChartOptions;
|
|
9660
9669
|
protected bindEngine(chart: ChartInstance): Array<() => void>;
|
|
9661
9670
|
protected clicked(event: ChartHoverEvent): void;
|
|
9671
|
+
/** A click on a dot or on its card; two quick ones in a row count as a double click */
|
|
9672
|
+
private clickPoint;
|
|
9662
9673
|
protected plotClicked(event: ChartPlotClickEvent): void;
|
|
9663
9674
|
private dropAt;
|
|
9664
9675
|
protected dragged(event: ChartDragEvent): void;
|
|
@@ -11973,10 +11984,10 @@ type Panel = {
|
|
|
11973
11984
|
};
|
|
11974
11985
|
/**
|
|
11975
11986
|
* Task board on a four-quadrant matrix (MnQuadrantChart): an add button per
|
|
11976
|
-
* quadrant, edit and delete buttons
|
|
11977
|
-
* anchored inside the board at the button or the task to name a
|
|
11978
|
-
* pick its quadrant, an inline confirmation before a delete (Escape
|
|
11979
|
-
* press outside closes the panel), drag and drop and keyboard moves
|
|
11987
|
+
* quadrant, edit and delete buttons in the point card of the active task, an
|
|
11988
|
+
* inline panel anchored inside the board at the button or the task to name a
|
|
11989
|
+
* task and pick its quadrant, an inline confirmation before a delete (Escape
|
|
11990
|
+
* or a press outside closes the panel), drag and drop and keyboard moves
|
|
11980
11991
|
* (Shift + arrows). Controlled: `points` in, `pointsChange` out
|
|
11981
11992
|
* (`[(points)]`). The other inputs go to the chart.
|
|
11982
11993
|
*
|
|
@@ -12066,7 +12077,7 @@ export declare class MnQuadrantTaskBoard {
|
|
|
12066
12077
|
readonly zoom: import("@angular/core").OutputEmitterRef<ChartView>;
|
|
12067
12078
|
/** The backend is ready (or fell back after a GPU loss) */
|
|
12068
12079
|
readonly rendererChange: import("@angular/core").OutputEmitterRef<ChartRendererKind>;
|
|
12069
|
-
protected readonly s: Readonly<Record<"footer" | "form" | "header" | "title" | "badge" | "swatch" | "count" | "panel" | "actions" | "board" | "field" | "add" | "actions-in" | "panel-in" | "panelText" | "panelTitle" | "quadrant" | "quadrantGrid" | "quadrantName" | "quadrants", string>>;
|
|
12080
|
+
protected readonly s: Readonly<Record<"footer" | "form" | "header" | "title" | "badge" | "swatch" | "count" | "panel" | "actions" | "board" | "field" | "add" | "actions-in" | "cardActions" | "panel-in" | "panelText" | "panelTitle" | "quadrant" | "quadrantGrid" | "quadrantName" | "quadrants", string>>;
|
|
12070
12081
|
protected readonly icons: {
|
|
12071
12082
|
readonly add: "M12 5v14M5 12h14";
|
|
12072
12083
|
readonly edit: "m15 5 4 4M4 20l4-1L20 7a2.8 2.8 0 0 0-4-4L4 15v5Z";
|
|
@@ -12075,6 +12086,7 @@ export declare class MnQuadrantTaskBoard {
|
|
|
12075
12086
|
protected readonly corners: readonly (keyof QuadrantRegions)[];
|
|
12076
12087
|
private readonly scope;
|
|
12077
12088
|
private readonly chart;
|
|
12089
|
+
private readonly chartElement;
|
|
12078
12090
|
private readonly host;
|
|
12079
12091
|
private readonly document;
|
|
12080
12092
|
private readonly panelRef;
|
|
@@ -12121,7 +12133,7 @@ export declare class MnQuadrantTaskBoard {
|
|
|
12121
12133
|
protected boxOf(el: EventTarget | null | undefined): QuadrantTaskBox;
|
|
12122
12134
|
/** The last press in the board, as a 0 x 0 box */
|
|
12123
12135
|
protected pointerBox(): QuadrantTaskBox;
|
|
12124
|
-
/** Box around a task (
|
|
12136
|
+
/** Box around a task (where the chart draws it), else the last press */
|
|
12125
12137
|
private pointBox;
|
|
12126
12138
|
private open;
|
|
12127
12139
|
protected close(): void;
|
package/dist/charts/core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./engine/format.cjs"),t=require("./engine/defaults.cjs"),n=require("./engine/chart.cjs"),r=require("./engine/presets.cjs"),i=require("./engine/quadrant-keyboard.cjs"),a=require("./engine/shapes/chart.cjs"),
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./engine/format.cjs"),t=require("./engine/defaults.cjs"),n=require("./engine/chart.cjs"),r=require("./engine/presets.cjs"),i=require("./engine/quadrant-keyboard.cjs"),a=require("./engine/quadrant-card.cjs"),o=require("./engine/shapes/chart.cjs"),s=require("./engine/trading/indicators.cjs"),c=require("./engine/trading/chart.cjs"),l=require("./engine/orderbook/book.cjs"),u=require("./engine/orderbook/depth.cjs"),d=require("./engine/orderbook/heatmap.cjs"),f=require("./engine/orderbook/ladder.cjs"),p=require("./engine/orderbook/tape.cjs"),m=require("./engine/three-d/chart.cjs"),h=require("./engine/graph/force.cjs"),g=require("./engine/graph/circular.cjs"),_=require("./engine/graph/dag.cjs"),v=require("./engine/graph/tree.cjs"),y=require("./engine/graph/chart.cjs"),b=require("./engine/shapes/canvas.cjs"),x=require("./engine/controller.cjs"),S=require("./engine/canvas.cjs"),C=require("./engine/trading/sync.cjs");require("./engine/trading/index.cjs"),require("./engine/orderbook/index.cjs"),require("./engine/three-d/index.cjs"),require("./engine/graph/index.cjs");const w=require("./engine/quadrant-layer.cjs"),T=require("./engine/quadrant-tasks.cjs");exports.QUADRANT_CARD_LINGER_MS=a.CARD_LINGER_MS,exports.QUADRANT_CORNERS=i.QUADRANT_CORNERS,exports.QUADRANT_TASK_ICONS=T.QUADRANT_TASK_ICONS,exports.applyQuadrantTaskDraft=T.applyQuadrantTaskDraft,exports.arcLayout=g.arcLayout,exports.areaSeries=r.areaSeries,exports.atr=s.atr,exports.barSeries=r.barSeries,exports.binValues=r.binValues,exports.bollinger=s.bollinger,exports.boxplotData=r.boxplotData,exports.boxplotSeries=r.boxplotSeries,exports.boxplotStats=r.boxplotStats,exports.bubbleSeries=r.bubbleSeries,exports.canSaveQuadrantTask=T.canSaveQuadrantTask,exports.candlestickSeries=r.candlestickSeries,exports.cci=s.cci,exports.circularLayout=g.circularLayout,exports.countCrossings=_.countCrossings,exports.createCanvasChart=S.createCanvasChart,exports.createCanvasShapeChart=b.createCanvasShapeChart,exports.createChart=n.createChart,exports.createChart3D=m.createChart3D,exports.createChartController=x.createChartController,exports.createDepthChart=u.createDepthChart,exports.createForceSimulation=h.createForceSimulation,exports.createGraphChart=y.createGraphChart,exports.createOrderBook=f.createOrderBook,exports.createOrderBookHeatmap=d.createOrderBookHeatmap,exports.createOrderBookStore=l.createOrderBookStore,exports.createQuadrantPointCard=a.createQuadrantPointCard,exports.createQuadrantPointLayer=w.createQuadrantPointLayer,exports.createShapeChart=o.createShapeChart,exports.createTimeAndSales=p.createTimeAndSales,exports.createTradingChart=c.createTradingChart,exports.criticalPath=_.criticalPath,exports.dagLayout=_.dagLayout,exports.dmi=s.dmi,exports.donchian=s.donchian,exports.editQuadrantTaskDraft=T.editQuadrantTaskDraft,exports.ema=s.ema,exports.forceLayout=h.forceLayout,exports.formatCompact=e.formatCompact,exports.formatDuration=e.formatDuration,exports.formatValue=e.formatValue,exports.ganttSeries=r.ganttSeries,exports.getDefaultChartRenderer=t.getDefaultChartRenderer,exports.heatmapChartOptions=r.heatmapChartOptions,exports.heikinAshi=s.heikinAshi,exports.histogramSeries=r.histogramSeries,exports.ichimoku=s.ichimoku,exports.kdj=s.kdj,exports.keltner=s.keltner,exports.lineSeries=r.lineSeries,exports.macd=s.macd,exports.mfi=s.mfi,exports.moveQuadrantTask=T.moveQuadrantTask,exports.newQuadrantTaskDraft=T.newQuadrantTaskDraft,exports.obv=s.obv,exports.placeQuadrantTaskPanel=T.placeQuadrantTaskPanel,exports.psar=s.psar,exports.quadrantAccessibleGroups=i.quadrantAccessibleGroups,exports.quadrantCenter=r.quadrantCenter,exports.quadrantChartOptions=r.quadrantChartOptions,exports.quadrantCountText=r.quadrantCountText,exports.quadrantGroups=r.quadrantGroups,exports.quadrantKeyTarget=i.quadrantKeyTarget,exports.quadrantLabels=r.quadrantLabels,exports.quadrantOf=r.quadrantOf,exports.quadrantTaskColor=T.quadrantTaskColor,exports.quadrantTaskDeleteText=T.quadrantTaskDeleteText,exports.quadrantTaskIconUri=T.quadrantTaskIconUri,exports.quadrantTaskLabels=T.quadrantTaskLabels,exports.quantiles=r.quantiles,exports.rangeAreaSeries=r.rangeAreaSeries,exports.removeQuadrantTask=T.removeQuadrantTask,exports.resampleBars=s.resampleBars,exports.rsi=s.rsi,exports.scatterSeries=r.scatterSeries,exports.scenePrimitives=x.scenePrimitives,exports.selectionAfterRemove=T.selectionAfterRemove,exports.setDefaultChartRenderer=t.setDefaultChartRenderer,exports.sma=s.sma,exports.sparklineOptions=r.sparklineOptions,exports.stochRsi=s.stochRsi,exports.subscribeDefaultChartRenderer=t.subscribeDefaultChartRenderer,exports.supertrend=s.supertrend,exports.syncCharts=C.syncCharts,exports.treeLayout=v.treeLayout,exports.volumeProfile=s.volumeProfile,exports.vwap=s.vwap,exports.waterfallSeries=r.waterfallSeries,exports.williamsR=s.williamsR,exports.withQuadrantCard=a.withQuadrantCard,exports.withSeriesType=r.withSeriesType,exports.wma=s.wma;
|
package/dist/charts/core.d.cts
CHANGED
|
@@ -13,6 +13,7 @@ export * from './engine/graph/index.cjs';
|
|
|
13
13
|
export { areaSeries, barSeries, binValues, boxplotData, boxplotSeries, boxplotStats, bubbleSeries, candlestickSeries, ganttSeries, histogramSeries, lineSeries, quantiles, rangeAreaSeries, scatterSeries, waterfallSeries, withSeriesType, type LineSeriesOptions, type BinOptions, type BoxplotGroup, type BoxplotStats, type BoxplotStatsOptions, type BubbleOptions, type GanttOptions, type GanttSeries, type GanttTask, type HistogramBinning, type HistogramBins, type HistogramSeriesOptions, type WaterfallOptions, type WaterfallStep, heatmapChartOptions, quadrantCenter, quadrantChartOptions, quadrantCountText, quadrantGroups, quadrantLabels, quadrantOf, sparklineOptions, type HeatmapCell, type HeatmapConfig, type QuadrantAxisLabels, type QuadrantChartState, type QuadrantConfig, type QuadrantCorner, type QuadrantGroup, type QuadrantLabels, type QuadrantPoint, type QuadrantRegion, type QuadrantRegions, type SparklineConfig, } from './engine/presets.cjs';
|
|
14
14
|
export { QUADRANT_CORNERS, quadrantAccessibleGroups, quadrantKeyTarget, type QuadrantAccessibleConfig, type QuadrantAccessibleGroup, type QuadrantAccessibleMove, type QuadrantAccessiblePoint, type QuadrantKeyInput, } from './engine/quadrant-keyboard.cjs';
|
|
15
15
|
export { createQuadrantPointLayer, type QuadrantPointLayer, type QuadrantPointLayerOptions, type QuadrantPointMove, } from './engine/quadrant-layer.cjs';
|
|
16
|
+
export { CARD_LINGER_MS as QUADRANT_CARD_LINGER_MS, createQuadrantPointCard, withQuadrantCard, type QuadrantCardPosition, type QuadrantPointCard, type QuadrantPointCardOptions, } from './engine/quadrant-card.cjs';
|
|
16
17
|
export { QUADRANT_TASK_ICONS, applyQuadrantTaskDraft, canSaveQuadrantTask, editQuadrantTaskDraft, moveQuadrantTask, newQuadrantTaskDraft, placeQuadrantTaskPanel, quadrantTaskColor, quadrantTaskIconUri, quadrantTaskDeleteText, quadrantTaskLabels, removeQuadrantTask, selectionAfterRemove, type QuadrantTaskBox, type QuadrantTaskDraft, type QuadrantTaskGeometry, type QuadrantTaskLabels, type QuadrantTaskPanelPlacement, } from './engine/quadrant-tasks.cjs';
|
|
17
18
|
export type { ChartThemeInput } from './engine/theme.cjs';
|
|
18
19
|
export type { ChartAnnotation, ChartAxisOptions, ChartAxisType, ChartColorScheme, ChartColumnData, ChartConnectorOptions, ChartCurve, ChartDependency, ChartDragEndEvent, ChartDragEvent, ChartEventMap, ChartHoverEvent, ChartHoverItem, ChartInstance, ChartInteractionOptions, ChartLabelPosition, ChartLabels, ChartLegendOptions, ChartLineAnnotation, ChartOptions, ChartOrientation, ChartPadding, ChartPlotClickEvent, ChartPointDatum, ChartRect, ChartRectAnnotation, ChartRendererKind, ChartRendererPreference, ChartSeries, ChartSeriesData, ChartSeriesType, ChartTextAnnotation, ChartTimeZone, ChartTooltipDetail, ChartTooltipLabels, ChartTooltipOptions, ChartView, ChartXValue, } from './engine/types.cjs';
|
package/dist/charts/core.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export * from './engine/graph/index.js';
|
|
|
13
13
|
export { areaSeries, barSeries, binValues, boxplotData, boxplotSeries, boxplotStats, bubbleSeries, candlestickSeries, ganttSeries, histogramSeries, lineSeries, quantiles, rangeAreaSeries, scatterSeries, waterfallSeries, withSeriesType, type LineSeriesOptions, type BinOptions, type BoxplotGroup, type BoxplotStats, type BoxplotStatsOptions, type BubbleOptions, type GanttOptions, type GanttSeries, type GanttTask, type HistogramBinning, type HistogramBins, type HistogramSeriesOptions, type WaterfallOptions, type WaterfallStep, heatmapChartOptions, quadrantCenter, quadrantChartOptions, quadrantCountText, quadrantGroups, quadrantLabels, quadrantOf, sparklineOptions, type HeatmapCell, type HeatmapConfig, type QuadrantAxisLabels, type QuadrantChartState, type QuadrantConfig, type QuadrantCorner, type QuadrantGroup, type QuadrantLabels, type QuadrantPoint, type QuadrantRegion, type QuadrantRegions, type SparklineConfig, } from './engine/presets.js';
|
|
14
14
|
export { QUADRANT_CORNERS, quadrantAccessibleGroups, quadrantKeyTarget, type QuadrantAccessibleConfig, type QuadrantAccessibleGroup, type QuadrantAccessibleMove, type QuadrantAccessiblePoint, type QuadrantKeyInput, } from './engine/quadrant-keyboard.js';
|
|
15
15
|
export { createQuadrantPointLayer, type QuadrantPointLayer, type QuadrantPointLayerOptions, type QuadrantPointMove, } from './engine/quadrant-layer.js';
|
|
16
|
+
export { CARD_LINGER_MS as QUADRANT_CARD_LINGER_MS, createQuadrantPointCard, withQuadrantCard, type QuadrantCardPosition, type QuadrantPointCard, type QuadrantPointCardOptions, } from './engine/quadrant-card.js';
|
|
16
17
|
export { QUADRANT_TASK_ICONS, applyQuadrantTaskDraft, canSaveQuadrantTask, editQuadrantTaskDraft, moveQuadrantTask, newQuadrantTaskDraft, placeQuadrantTaskPanel, quadrantTaskColor, quadrantTaskIconUri, quadrantTaskDeleteText, quadrantTaskLabels, removeQuadrantTask, selectionAfterRemove, type QuadrantTaskBox, type QuadrantTaskDraft, type QuadrantTaskGeometry, type QuadrantTaskLabels, type QuadrantTaskPanelPlacement, } from './engine/quadrant-tasks.js';
|
|
17
18
|
export type { ChartThemeInput } from './engine/theme.js';
|
|
18
19
|
export type { ChartAnnotation, ChartAxisOptions, ChartAxisType, ChartColorScheme, ChartColumnData, ChartConnectorOptions, ChartCurve, ChartDependency, ChartDragEndEvent, ChartDragEvent, ChartEventMap, ChartHoverEvent, ChartHoverItem, ChartInstance, ChartInteractionOptions, ChartLabelPosition, ChartLabels, ChartLegendOptions, ChartLineAnnotation, ChartOptions, ChartOrientation, ChartPadding, ChartPlotClickEvent, ChartPointDatum, ChartRect, ChartRectAnnotation, ChartRendererKind, ChartRendererPreference, ChartSeries, ChartSeriesData, ChartSeriesType, ChartTextAnnotation, ChartTimeZone, ChartTooltipDetail, ChartTooltipLabels, ChartTooltipOptions, ChartView, ChartXValue, } from './engine/types.js';
|
package/dist/charts/core.js
CHANGED
|
@@ -3,28 +3,29 @@ import { getDefaultChartRenderer as r, setDefaultChartRenderer as i, subscribeDe
|
|
|
3
3
|
import { createChart as o } from "./engine/chart.js";
|
|
4
4
|
import { areaSeries as s, barSeries as c, binValues as l, boxplotData as u, boxplotSeries as d, boxplotStats as f, bubbleSeries as p, candlestickSeries as m, ganttSeries as h, heatmapChartOptions as g, histogramSeries as _, lineSeries as v, quadrantCenter as y, quadrantChartOptions as b, quadrantCountText as x, quadrantGroups as S, quadrantLabels as C, quadrantOf as w, quantiles as T, rangeAreaSeries as E, scatterSeries as D, sparklineOptions as O, waterfallSeries as k, withSeriesType as A } from "./engine/presets.js";
|
|
5
5
|
import { QUADRANT_CORNERS as j, quadrantAccessibleGroups as M, quadrantKeyTarget as N } from "./engine/quadrant-keyboard.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
6
|
+
import { CARD_LINGER_MS as P, createQuadrantPointCard as F, withQuadrantCard as I } from "./engine/quadrant-card.js";
|
|
7
|
+
import { createShapeChart as L } from "./engine/shapes/chart.js";
|
|
8
|
+
import { atr as R, bollinger as z, cci as B, dmi as V, donchian as H, ema as U, heikinAshi as W, ichimoku as G, kdj as K, keltner as q, macd as J, mfi as Y, obv as X, psar as Z, resampleBars as Q, rsi as $, sma as ee, stochRsi as te, supertrend as ne, volumeProfile as re, vwap as ie, williamsR as ae, wma as oe } from "./engine/trading/indicators.js";
|
|
9
|
+
import { createTradingChart as se } from "./engine/trading/chart.js";
|
|
10
|
+
import { createOrderBookStore as ce } from "./engine/orderbook/book.js";
|
|
11
|
+
import { createDepthChart as le } from "./engine/orderbook/depth.js";
|
|
12
|
+
import { createOrderBookHeatmap as ue } from "./engine/orderbook/heatmap.js";
|
|
13
|
+
import { createOrderBook as de } from "./engine/orderbook/ladder.js";
|
|
14
|
+
import { createTimeAndSales as fe } from "./engine/orderbook/tape.js";
|
|
15
|
+
import { createChart3D as pe } from "./engine/three-d/chart.js";
|
|
16
|
+
import { createForceSimulation as me, forceLayout as he } from "./engine/graph/force.js";
|
|
17
|
+
import { arcLayout as ge, circularLayout as _e } from "./engine/graph/circular.js";
|
|
18
|
+
import { countCrossings as ve, criticalPath as ye, dagLayout as be } from "./engine/graph/dag.js";
|
|
19
|
+
import { treeLayout as xe } from "./engine/graph/tree.js";
|
|
20
|
+
import { createGraphChart as Se } from "./engine/graph/chart.js";
|
|
21
|
+
import { createCanvasShapeChart as Ce } from "./engine/shapes/canvas.js";
|
|
22
|
+
import { createChartController as we, scenePrimitives as Te } from "./engine/controller.js";
|
|
23
|
+
import { createCanvasChart as Ee } from "./engine/canvas.js";
|
|
24
|
+
import { syncCharts as De } from "./engine/trading/sync.js";
|
|
24
25
|
import "./engine/trading/index.js";
|
|
25
26
|
import "./engine/orderbook/index.js";
|
|
26
27
|
import "./engine/three-d/index.js";
|
|
27
28
|
import "./engine/graph/index.js";
|
|
28
|
-
import { createQuadrantPointLayer as
|
|
29
|
-
import { QUADRANT_TASK_ICONS as
|
|
30
|
-
export { j as QUADRANT_CORNERS,
|
|
29
|
+
import { createQuadrantPointLayer as Oe } from "./engine/quadrant-layer.js";
|
|
30
|
+
import { QUADRANT_TASK_ICONS as ke, applyQuadrantTaskDraft as Ae, canSaveQuadrantTask as je, editQuadrantTaskDraft as Me, moveQuadrantTask as Ne, newQuadrantTaskDraft as Pe, placeQuadrantTaskPanel as Fe, quadrantTaskColor as Ie, quadrantTaskDeleteText as Le, quadrantTaskIconUri as Re, quadrantTaskLabels as ze, removeQuadrantTask as Be, selectionAfterRemove as Ve } from "./engine/quadrant-tasks.js";
|
|
31
|
+
export { P as QUADRANT_CARD_LINGER_MS, j as QUADRANT_CORNERS, ke as QUADRANT_TASK_ICONS, Ae as applyQuadrantTaskDraft, ge as arcLayout, s as areaSeries, R as atr, c as barSeries, l as binValues, z as bollinger, u as boxplotData, d as boxplotSeries, f as boxplotStats, p as bubbleSeries, je as canSaveQuadrantTask, m as candlestickSeries, B as cci, _e as circularLayout, ve as countCrossings, Ee as createCanvasChart, Ce as createCanvasShapeChart, o as createChart, pe as createChart3D, we as createChartController, le as createDepthChart, me as createForceSimulation, Se as createGraphChart, de as createOrderBook, ue as createOrderBookHeatmap, ce as createOrderBookStore, F as createQuadrantPointCard, Oe as createQuadrantPointLayer, L as createShapeChart, fe as createTimeAndSales, se as createTradingChart, ye as criticalPath, be as dagLayout, V as dmi, H as donchian, Me as editQuadrantTaskDraft, U as ema, he as forceLayout, e as formatCompact, t as formatDuration, n as formatValue, h as ganttSeries, r as getDefaultChartRenderer, g as heatmapChartOptions, W as heikinAshi, _ as histogramSeries, G as ichimoku, K as kdj, q as keltner, v as lineSeries, J as macd, Y as mfi, Ne as moveQuadrantTask, Pe as newQuadrantTaskDraft, X as obv, Fe as placeQuadrantTaskPanel, Z as psar, M as quadrantAccessibleGroups, y as quadrantCenter, b as quadrantChartOptions, x as quadrantCountText, S as quadrantGroups, N as quadrantKeyTarget, C as quadrantLabels, w as quadrantOf, Ie as quadrantTaskColor, Le as quadrantTaskDeleteText, Re as quadrantTaskIconUri, ze as quadrantTaskLabels, T as quantiles, E as rangeAreaSeries, Be as removeQuadrantTask, Q as resampleBars, $ as rsi, D as scatterSeries, Te as scenePrimitives, Ve as selectionAfterRemove, i as setDefaultChartRenderer, ee as sma, O as sparklineOptions, te as stochRsi, a as subscribeDefaultChartRenderer, ne as supertrend, De as syncCharts, xe as treeLayout, re as volumeProfile, ie as vwap, k as waterfallSeries, ae as williamsR, I as withQuadrantCard, A as withSeriesType, oe as wma };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./data.cjs"),t=require("./tooltip.cjs"),n=require("./dom.cjs"),r=require("./layout.cjs"),i=require("./overlay.cjs"),a=require("./locale.cjs"),o=require("./labels.cjs"),s=require("./model.cjs"),c=require("./scene.cjs"),l=require("./drag-preview.cjs"),u=require("./hover-rect.cjs"),d=require("./items.cjs"),f=require("./renderers/detect.cjs"),p=require("./renderers/follow.cjs"),m=require("./signature.cjs"),h=require("./theme.cjs"),g=require("./viewport.cjs");var ee=e=>(e[0]+e[1])/2,te=(e,t)=>{if(!e||!t)return e??t;let n=Math.min(e.x,t.x),r=Math.min(e.y,t.y);return{x:n,y:r,width:Math.max(e.x+e.width,t.x+t.width)-n,height:Math.max(e.y+e.height,t.y+t.height)-r}},_=e=>({x:[e.x[0],e.x[1]],y:[e.y[0],e.y[1]]}),ne=(ne,re)=>{let v=ne.ownerDocument,y=v.defaultView,b=n.createChartDom(ne),ie=new Map,ae=new Set,x={},S=re,C=h.readTheme(b.root,S.palette);t.themeTooltip(b.tooltip,C);let w,T={x:[0,1],y:[0,1]},E=!1,D={x:0,y:0},oe=[],O=!0,se=0,k=[],ce=[],A=null,le=null,j=null,ue=null,M=null,de=0,N=!1,P=0,F=null,fe=``,I=null,L=null,R=null,pe=!1,me=[],z=null,he=null,B=null,ge=[],_e=[],ve=[],ye=[],be=[],V=null,H=null,U=null,xe=``,Se=0,Ce=``,we=``,W=null,G=null,Te=()=>{},Ee=new Promise(e=>{Te=e}),K=(e,t)=>{x[e]?.forEach(e=>e(t))},De=null,Oe=null,q=()=>{if(De===S)return Oe;De=S;let e=S.interaction;if(e===!1)return Oe=null;let t=typeof e==`object`?e:{};return Oe={zoom:t.zoom??!0,wheel:t.wheel??`modifier`,pan:t.pan??!0,keyboard:t.keyboard??!0,dragPoints:t.dragPoints??!1,dropTargets:t.dropTargets??!1,dragLabel:t.dragLabel??!0}},ke=()=>S.tooltip===!1?null:typeof S.tooltip==`object`?S.tooltip:{},J=()=>{N||P||(P=y?.requestAnimationFrame?y.requestAnimationFrame(Fe):setTimeout(Fe,16))},Y=()=>{w=s.buildModel(S,C,ae,ie);let{base:e,zoom:t,minSpan:n}=w;E?(T={x:t.x?g.clampRange(T.x,e.x,n.x):[...e.x],y:t.y?g.clampRange(T.y,e.y,n.y):[...e.y]},E=!g.sameRange(T.x,e.x)||!g.sameRange(T.y,e.y)):T=_(e);let r=m.itemsSignature(w,Se,e=>S.series[e]?.stack);r!==Ce&&(Ce=r,D={x:ee(e.x),y:ee(e.y)},O=!0,F&&!F.keyboard&&(F=null,K(`hover`,null))),R&&(clearTimeout(R.timer),R=null,pe=!0),k=c.resolveAnnotations(S.annotations,C,w.y.type===`log`?Math.log10:void 0,w.x.type===`log`?Math.log10:void 0),ce=c.resolveDependencies(S.dependencies,C),je(),Me(),J()},Ae=()=>{let e=(e,t)=>Math.max(Math.abs(e[0]-t),Math.abs(e[1]-t))>(e[1]-e[0])*2e3;(e(T.x,D.x)||e(T.y,D.y))&&(D={x:ee(T.x),y:ee(T.y)},O=!0)},je=()=>{let e=S.legend,t=S.series.filter(e=>e.name).length,r=c.legendShown(e,w,t),i=typeof e==`object`?e:{},a=i.toggle??!0,o=i.position===`bottom`,s=r?c.colorLegend(w):null,l=`${r}|${o}|${a}`;if(s)l+=`\n${s.stops.join(`;`)}|${s.labels.map(e=>e.text).join(`;`)}`;else if(r)for(let e of w.series)l+=`\n${e.id}\u0001${e.name}\u0001${e.colorCss}\u0001${c.legendShape(e.type)}\u0001${e.hidden}`;if(l===we)return;we=l;let u=[...b.legend.children].indexOf(v.activeElement);if(b.legend.replaceChildren(),U=null,b.legend.style.display=r?`flex`:`none`,r){if(b.legend.style.order=o?`1`:`0`,b.legend.style.padding=o?`8px 4px 0`:`0 4px 8px`,s){b.legend.style.justifyContent=`flex-end`;let e=v.createElement(`div`);n.styleElement(e,{display:`flex`,alignItems:`center`,gap:`8px`,color:`var(--text-secondary-color, #6b7280)`,fontSize:`11px`,fontVariantNumeric:`tabular-nums`});let t=s.labels[0],r=s.labels[s.labels.length-1],i=v.createElement(`div`);if(n.styleElement(i,{position:`relative`,width:`160px`,height:`8px`,borderRadius:`4px`,background:`linear-gradient(to right, ${s.stops.join(`, `)})`,boxShadow:`inset 0 0 0 1px color-mix(in srgb, var(--text-color, #1f2937) 8%, transparent)`}),s.labels.length>2){let e=v.createElement(`div`);n.styleElement(e,{position:`absolute`,left:`50%`,top:`-2px`,width:`1px`,height:`12px`,background:`color-mix(in srgb, var(--text-color, #1f2937) 35%, transparent)`}),i.appendChild(e)}U=v.createElement(`div`),n.styleElement(U,{position:`absolute`,top:`-3px`,width:`4px`,height:`14px`,marginLeft:`-2px`,borderRadius:`2px`,background:`var(--text-color, #1f2937)`,boxShadow:`0 0 0 1.5px var(--surface-color, var(--background-color, #fff))`,display:`none`}),i.appendChild(U);let a=e=>{let t=v.createElement(`span`);return t.textContent=e,t};e.append(a(t?.text??``),i,a(r?.text??``)),b.legend.appendChild(e);return}b.legend.style.justifyContent=``;for(let e of w.series){let t=v.createElement(a?`button`:`span`);t instanceof HTMLButtonElement&&(t.type=`button`,t.setAttribute(`aria-pressed`,String(!e.hidden)),t.addEventListener(`click`,()=>{ae.has(e.id)?ae.delete(e.id):ae.add(e.id),Y()})),n.styleElement(t,{display:`inline-flex`,alignItems:`center`,gap:`6px`,padding:`2px 4px`,margin:`0`,border:`0`,borderRadius:`4px`,background:`none`,font:`inherit`,color:`var(--text-secondary-color, #6b7280)`,cursor:a?`pointer`:`default`,opacity:e.hidden?`0.45`:`1`,textDecoration:e.hidden?`line-through`:`none`}),t.append(n.swatch(v,e.colorCss,c.legendShape(e.type)),v.createTextNode(e.name)),b.legend.appendChild(t)}u>=0&&b.legend.children[u]?.focus()}},Me=()=>{b.stage.setAttribute(`aria-label`,S.ariaLabel??o.chartAriaLabel(w));let e=q()?.keyboard;b.stage.style.touchAction=q()?.dragPoints?`none`:`pan-y`,e?b.stage.tabIndex=0:b.stage.removeAttribute(`tabindex`)},Ne=(e,t,n,r)=>{let i=Math.max(1,Math.round(t*r)),a=Math.max(1,Math.round(n*r));e.width!==i&&(e.width=i),e.height!==a&&(e.height=a),e.style.width=`${t}px`,e.style.height=`${n}px`},Pe=(e,t,n)=>{let r=2/(e[1]-e[0]),i=(t-e[0])*r-1;return n?[-r,-i]:[r,i]};function Fe(){if(P=0,N)return;let e=b.stage.clientWidth,t=b.stage.clientHeight;if(e<=0||t<=0)return;let r=y?.devicePixelRatio||1;Ne(b.background,e,t,r),Ne(b.foreground,e,t,r);let a=b.background.getContext(`2d`),o=b.foreground.getContext(`2d`);a&&(a.setTransform(r,0,0,r,0,0),a.font=i.font(C));let s=c.layoutChart({model:w,view:T,theme:C,width:e,height:t,padding:S.padding,measure:a?e=>a.measureText(e).width:e=>e.length*C.fontSize*.6}),{plot:l}=s;le=s.xTicks,j=s.yTicks,ue=s.y2Ticks,A=s.scales;let u=Le();if(u&&u.join()!==fe&&(fe=u.join(),K(`layout`,{x:u[0],y:u[1],width:u[2],height:u[3]})),a&&i.drawBackground(a,{width:e,height:t,scales:A,x:w.x,y:w.y,xTicks:le,yTicks:j,y2:w.y2,y2Ticks:ue,theme:C,annotations:k}),o&&(o.setTransform(r,0,0,r,0,0),me=i.drawForeground(o,{width:e,height:t,scales:A,theme:C,annotations:k,pointLabels:c.collectPointLabels(w,T,A,j,C.background,I?.moved?I.item:R?.item??null),connectors:c.connectorSegments(w,A),arrows:c.dependencyArrows(w,A,ce)})),M){let e=M.canvas,t=w.horizontal,i=t?l.height:l.width,a=t?l.width:l.height;n.styleElement(e,{left:`${l.x}px`,top:`${l.y}px`,width:`${i}px`,height:`${a}px`,transformOrigin:t?`0 0`:``,transform:t?`matrix(0, 1, 1, 0, 0, 0)`:``});let o=Math.max(1,Math.round(i*r)),s=Math.max(1,Math.round(a*r));(e.width!==o||e.height!==s)&&M.resize(o,s),Ae();let c={x:1/Math.abs(A.xPerPx),y:1/Math.abs(A.yPerPx)},u=d.cellStyleKey(w,c);u!==xe&&(xe=u,O=!0),O&&(se++,oe=d.buildItems(w,D,se,c),O=!1);let[f,p]=Pe(T.x,D.x,w.x.reverse),[m,h]=Pe(T.y,D.y,t?!w.y.reverse:w.y.reverse);M.render(oe,{transform:{xScale:f,xOffset:p,yScale:m,yOffset:h},width:o,height:s,dpr:r})}Ve(),pe?(pe=!1,I?.moved||qe()):I?.moved&&Ge()}let Ie=(e,t)=>A?c.hitTest(w,A,le,e,t):null,Le=()=>{let e=A?.plot;return e?[e.x+b.stage.offsetLeft,e.y+b.stage.offsetTop,e.width,e.height]:null},Re=(e,t)=>q()?.dragPoints?Ie(e,t)?.items.find(e=>w.series[e.seriesIndex].type===`scatter`)??null:null,X=e=>{let t=!c.sameHover(F?.event??null,e?.event??null);F=e,Ve(),t&&K(`hover`,e?e.event:null)},ze=e=>{let t=ke()?.render;if(t)return t(e);let r=c.tooltipContent(w,e,j,ue),i=v.createDocumentFragment(),a=v.createElement(`div`);if(n.styleElement(a,{display:`flex`,alignItems:`center`,gap:`6px`,fontWeight:`600`,marginBottom:r.subtitle?`0`:`4px`,color:`var(--text-color, #1f2937)`}),r.titleColor&&a.appendChild(n.swatch(v,r.titleColor,`dot`)),a.appendChild(v.createTextNode(r.title)),i.append(a),r.subtitle){let e=v.createElement(`div`);n.styleElement(e,{color:`var(--text-secondary-color, #6b7280)`,fontSize:`11px`,margin:`1px 0 6px`,paddingLeft:r.titleColor?`14px`:`0`}),e.textContent=r.subtitle,i.append(e)}if(!r.rows.length)return i;let o=r.rows.some(e=>e.color),s=v.createElement(`div`);n.styleElement(s,{display:`grid`,gridTemplateColumns:o?`auto minmax(0, 1fr) auto`:`minmax(0, 1fr) auto`,columnGap:`0`,rowGap:`2px`,alignItems:`center`});for(let e of r.rows){if(o){let t=v.createElement(`span`);n.styleElement(t,{display:`inline-flex`,width:`14px`,justifyContent:`flex-start`}),e.color&&t.appendChild(n.swatch(v,e.color,`dot`)),s.appendChild(t)}let t=v.createElement(`span`);n.styleElement(t,{color:`var(--text-secondary-color, #6b7280)`,paddingRight:`16px`,overflow:`hidden`,textOverflow:`ellipsis`}),t.textContent=e.name;let r=v.createElement(`span`);n.styleElement(r,{fontWeight:`600`,fontVariantNumeric:`tabular-nums`,textAlign:`right`,color:`var(--text-color, #1f2937)`}),r.textContent=e.value,s.append(t,r)}return i.append(s),i},Be=(e,t,n,r=b.hover)=>(e[t]||(e[t]=n(),r.appendChild(e[t])),e[t].style.display=`block`,e[t]);function Ve(){let e=A;F&&e&&W&&W.scales===e&&W.model===w&&c.sameHover(W.event,F.event)||He(e);let n=b.tooltip;if(!F||!e||!ke()||B?.moved||I?.moved){n.style.display=`none`;return}let r=ke()?.render,i,a;if(!r&&G&&G.model===w&&G.yTicks===j&&c.sameHover(G.event,F.event)&&n.style.display===`block`)i=G.width,a=G.height;else{G=null;let e=ze(F.event);if(e===null||e===``){n.style.display=`none`;return}typeof e==`string`?(n.textContent=e,n.style.whiteSpace=`pre`):(n.replaceChildren(e),n.style.whiteSpace=`nowrap`),n.style.display=`block`,i=n.offsetWidth,a=n.offsetHeight,r||(G={event:F.event,model:w,yTicks:j,width:i,height:a})}t.positionTooltip(n,b.stage,{anchor:{x:F.anchorX,y:F.anchorY},avoid:te(u.hoverRect(w,e,F.event),he),obstacles:u.tooltipObstacles(w,e),prefer:e.horizontal?`vertical`:`side`,size:{width:i,height:a},animate:!0})}function He(e){let r=0,i=0,a=0,o=0,s=0,l=!1;if(Ue(),W=null,b.crosshair.style.display=`none`,F&&e){W={event:F.event,model:w,scales:e};let{plot:u}=e;b.hover.style.width=`${b.stage.clientWidth}px`,b.hover.style.height=`${b.stage.clientHeight}px`;let d=c.crosshairAt(w,e,F.event,S.crosshair);if(d!==null){let t=`1px dashed color-mix(in srgb, var(--text-secondary-color, #6b7280) 45%, transparent)`;n.styleElement(b.crosshair,e.horizontal?{display:`block`,left:`${u.x}px`,top:`${Math.round(d)}px`,width:`${u.width}px`,height:`0`,borderLeft:`0`,borderTop:t}:{display:`block`,left:`${Math.round(d)}px`,top:`${u.y}px`,width:`0`,height:`${u.height}px`,borderLeft:t,borderTop:`0`})}let f=c.hoverMarks(w,e,F.event),p=f.some(e=>e.kind===`bar`);for(let e of f){if(e.kind===`band`||e.kind===`guide`){let t=e.kind===`band`?Be(_e,i++,()=>n.createBand(v),b.underlay):Be(ye,o++,()=>n.styleElement(n.createBand(v),{borderRadius:`0`,background:`color-mix(in srgb, var(--text-color, #1f2937) 6%, transparent)`}),b.lift);n.styleElement(t,{left:`${e.x}px`,top:`${e.y}px`,width:`${e.width}px`,height:`${e.height}px`}),e.kind===`band`&&(t.style.background=`color-mix(in srgb, var(--text-color, #1f2937) ${p?4:6}%, transparent)`);continue}if(e.kind===`bar`){let r=w.series.some(e=>!e.hidden&&(e.type===`line`||e.type===`area`)),i=r?b.underlay:b.lift;V||(V=n.styleElement(v.createElement(`div`),{position:`absolute`,overflow:`hidden`})),(V.parentElement!==i||r&&i.lastElementChild!==V)&&i.appendChild(V),!l&&!r&&(l=!0,H||(H=n.styleElement(v.createElement(`div`),{position:`absolute`,background:`color-mix(in srgb, ${n.PLOT_BACKGROUND} 42%, transparent)`,opacity:`0`}),b.lift.insertBefore(H,V.parentElement===b.lift?V:null)),n.styleElement(H,{left:`${u.x}px`,top:`${u.y}px`,width:`${u.width}px`,height:`${u.height}px`,transition:t.prefersReducedMotion(y)?`none`:`opacity 140ms ease-out`,opacity:`1`})),n.styleElement(V,{left:`${u.x}px`,top:`${u.y}px`,width:`${u.width}px`,height:`${u.height}px`});let a=`${e.seriesIndex}:${e.index}`,o=be[s],d=!o||o.style.display!==`block`||o.dataset.key!==a,f=Be(be,s++,()=>n.createBand(v),V);f.dataset.key=a;let p=c.liftedBarRect(e),m=e.base===`top`||e.base===`bottom`,h=e.ring===null?null:{color:e.ring,width:Math.min(e.backdrop?2:1.5,Math.max(0,(Math.min(p.width,p.height)-2)/4))};f.dataset.hoverMark=`bar`;let g=h?n.liftShadow(h,1.5,null):`none`;if(n.styleElement(f,{left:`${p.x-u.x}px`,top:`${p.y-u.y}px`,width:`${p.width}px`,height:`${p.height}px`,borderRadius:`${e.radius}px`,filter:`brightness(1.08) saturate(1.08)`,background:e.backdrop?`linear-gradient(${e.color}, ${e.color}), ${n.PLOT_BACKGROUND}`:e.color,boxShadow:g}),d){let t=m?p.width:p.height,r=t>0?(t-e.grow*2)/t:1;n.playLift(f,{transform:m?`scaleX(${r})`:`scaleY(${r})`,...h?{boxShadow:n.liftShadow(h,1.5,null,!0)}:{}},{transform:`none`,...h?{boxShadow:g}:{}},y)}continue}if(e.kind===`cell`){let t=`${e.seriesIndex}:${e.index}`,r=ve[a],i=!r||r.style.display!==`block`||r.dataset.key!==t,o=Be(ve,a++,()=>n.styleElement(n.createBand(v),{zIndex:`1`,transform:`scale(${n.CELL_LIFT})`}),b.lift);o.dataset.key=t;let s={color:e.ring,width:Math.min(2,Math.min(e.width,e.height)/5)},c=n.liftShadow(s,2,n.CELL_ACCENT);n.styleElement(o,{left:`${e.x}px`,top:`${e.y}px`,width:`${e.width}px`,height:`${e.height}px`,background:e.color,borderRadius:`${Math.max(e.radius,2)}px`,boxShadow:c}),i&&n.playLift(o,{transform:`scale(1)`,boxShadow:n.liftShadow(s,2,n.CELL_ACCENT,!0)},{transform:`scale(${n.CELL_LIFT})`,boxShadow:c},y);continue}let d=ge[r],f=!d||d.style.display!==`block`||d.style.left!==`${e.x}px`||d.style.top!==`${e.y}px`,m=Be(ge,r++,()=>n.createMarker(v));n.styleElement(m,{left:`${e.x}px`,top:`${e.y}px`,width:`${e.size}px`,height:`${e.size}px`,background:e.color,boxShadow:n.markerHalo(e.halo)}),f&&n.playLift(m,{transform:`translate(-50%, -50%) scale(0.6)`,opacity:`0.6`},{transform:`translate(-50%, -50%) scale(1)`,opacity:`1`},y)}We(e)}else z&&(z.style.display=`none`,he=null);for(let e=r;e<ge.length;e++)ge[e].style.display=`none`;for(let e=i;e<_e.length;e++)_e[e].style.display=`none`;for(let e=a;e<ve.length;e++)ve[e].style.display=`none`;for(let e=o;e<ye.length;e++)ye[e].style.display=`none`;for(let e=s;e<be.length;e++)be[e].style.display=`none`;H&&!l&&(H.style.opacity=`0`)}function Ue(){let e=U;if(!e)return;let t=F?.event.items[0],n=t?w.series[t.seriesIndex]:void 0;if(!t||!n||n.type!==`heatmap`||t.value===void 0){e.style.display=`none`;return}e.style.display=`block`,e.style.left=`${(s.heatPosition(n,t.value)*100).toFixed(2)}%`}function We(e){let t=F?.event.items[0],r=t?w.series[t.seriesIndex]:void 0,i;if(t&&r?.type===`scatter`&&t.label&&!I?.moved){let n=c.pointOf(r,t.index,e);i=me.find(({label:e})=>e.text===t.label&&Math.abs(e.x-n.px)<.5&&Math.abs(e.y-n.py)<.5)}if(he=null,!i||!t){z&&(z.style.display=`none`);return}z||(z=n.createLabelPill(v),z.dataset.hoverMark=`label`,b.hover.appendChild(z)),z.textContent=i.label.text,n.styleElement(z,{display:`block`,left:`${i.box.x-10}px`,top:`${i.box.y+i.box.height/2}px`,transform:`translateY(-50%)`,background:`color-mix(in srgb, ${t.color} 14%, var(--surface-color, var(--background-color, #fff)))`,borderColor:`color-mix(in srgb, ${t.color} 45%, transparent)`,boxShadow:`0 4px 12px -4px rgba(15, 23, 42, 0.28)`}),he={x:i.box.x-10,y:i.box.y+i.box.height/2-11,width:i.box.width*1.1+20,height:22}}function Ge(){let e=I,t=A;e?.moved&&t&&Ke(l.dragPreview(w,t,k,e.item,e.px,e.py,!!q()?.dropTargets),!0)}function Ke(e,t){L||(L={dot:n.createDragDot(v),pill:n.createLabelPill(v),placeholder:n.createDragPlaceholder(v),target:n.createDropTarget(v)},L.dot.dataset.dragMark=`dot`,L.pill.dataset.dragMark=`label`,L.placeholder.dataset.dragMark=`origin`,L.target.dataset.dragMark=`target`,b.underlay.appendChild(L.target),b.hover.append(L.placeholder,L.dot,L.pill));let{dot:r,pill:i,placeholder:a,target:o}=L;if(b.hover.style.width=`${b.stage.clientWidth}px`,b.hover.style.height=`${b.stage.clientHeight}px`,n.styleElement(r,{display:`block`,left:`${e.x}px`,top:`${e.y}px`,width:`${e.size}px`,height:`${e.size}px`,background:e.color,boxShadow:n.dragDotShadow(e.color)}),e.label&&q()?.dragLabel!==!1){i.textContent=e.label;let t=A,r=!t||e.x<t.plot.x+t.plot.width*.62;n.styleElement(i,{display:`block`,left:`${e.x}px`,top:`${e.y}px`,transform:r?`translate(${e.size/2+8}px, -50%)`:`translate(calc(-100% - ${e.size/2+8}px), -50%)`})}else i.style.display=`none`;if(t&&e.origin){let t=e.size-2;n.styleElement(a,{display:`block`,left:`${e.origin.x}px`,top:`${e.origin.y}px`,width:`${t}px`,height:`${t}px`,borderColor:e.color,background:`color-mix(in srgb, ${n.PLOT_BACKGROUND} 62%, transparent)`})}else a.style.display=`none`;t&&e.target?n.styleElement(o,{display:`block`,left:`${e.target.x}px`,top:`${e.target.y}px`,width:`${e.target.width}px`,height:`${e.target.height}px`,background:`color-mix(in srgb, ${e.target.color} 12%, transparent)`,boxShadow:`inset 0 0 0 2px color-mix(in srgb, ${e.target.color} 70%, transparent)`}):o.style.display=`none`}function qe(){if(L)for(let e of Object.values(L))e.style.display=`none`}let Je=e=>{e.key===`Escape`&&I&&(e.preventDefault(),e.stopPropagation(),Xe())},Ye=e=>{b.stage.hasPointerCapture?.(e)&&b.stage.releasePointerCapture(e)};function Xe(){let e=I;e&&(I=null,y?.removeEventListener(`keydown`,Je,!0),Ye(e.id),b.stage.style.cursor=``,qe(),e.moved&&(J(),K(`dragEnd`,{item:e.item,cancelled:!0})))}let Z=(e,t)=>{let{base:n,minSpan:r}=w;T={x:g.clampRange(e.x,n.x,r.x),y:g.clampRange(e.y,n.y,r.y)},E=!g.sameRange(T.x,n.x)||!g.sameRange(T.y,n.y);let i=q();b.stage.style.cursor=E&&i?.pan?`grab`:``,t&&K(`zoom`,s.viewToValues(w,T)),J()},Ze=(e,t,n)=>{let i=A;if(!i)return;let a=_(T),o=r.toData(i,e,t);w.zoom.x&&(a.x=g.zoomRange(T.x,o.x,n)),w.zoom.y&&(a.y=g.zoomRange(T.y,o.y,n)),Z(a,!0)},Q=e=>{let t=b.stage.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},Qe=(e,t)=>{let n=A?.plot;return!!n&&e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height},$e=(e,t)=>{let n=A;if(!n)return null;let{plot:i}=n,a=Math.max(i.x,Math.min(i.x+i.width,e)),o=Math.max(i.y,Math.min(i.y+i.height,t)),c=r.toData(n,a,o);return{x:s.fromPlotX(w,c.x),y:s.fromPlotY(w,c.y)}},et=e=>{let{x:t,y:n}=Q(e);if(I&&I.id===e.pointerId){let r=I;if(r.px=t,r.py=n,!r.moved&&Math.hypot(t-r.x,n-r.y)>3){r.moved=!0,b.stage.setPointerCapture?.(e.pointerId),b.stage.style.cursor=`grabbing`,y?.addEventListener(`keydown`,Je,!0),R&&(clearTimeout(R.timer),R=null),X(null),J();let t=$e(r.x,r.y);t&&K(`dragStart`,{item:r.item,x:t.x,y:t.y})}if(r.moved&&I===r){Ge();let e=$e(t,n);e&&K(`drag`,{item:r.item,x:e.x,y:e.y})}return}if(B&&B.id===e.pointerId){let i=t-B.x,a=n-B.y;if(!B.moved&&Math.hypot(i,a)>3){let t=q();E&&t?.pan&&(B.moved=!0,b.stage.setPointerCapture?.(e.pointerId),b.stage.style.cursor=`grabbing`)}if(B.moved&&A){let e=_(B.view),i=r.toData(A,B.x,B.y),a=r.toData(A,t,n);w.zoom.x&&(e.x=g.panRange(B.view.x,i.x-a.x)),w.zoom.y&&(e.y=g.panRange(B.view.y,i.y-a.y)),Z(e,!0);return}}let i=Ie(t,n);X(i?{event:i,anchorX:t,anchorY:n,keyboard:!1}:null),!B&&q()?.dragPoints&&(b.stage.style.cursor=Re(t,n)||E&&q()?.pan?`grab`:``)},tt=e=>{if(e.button!==0)return;let{x:t,y:n}=Q(e);if(!Qe(t,n))return;let r=Re(t,n);if(r){I={id:e.pointerId,item:r,x:t,y:n,px:t,py:n,moved:!1};return}B={id:e.pointerId,x:t,y:n,view:_(T),moved:!1}},nt=e=>{if(I&&I.id===e.pointerId){let t=I,{x:n,y:r}=Q(e);if(t.moved&&e.type===`pointercancel`){Xe();return}if(I=null,y?.removeEventListener(`keydown`,Je,!0),Ye(e.pointerId),b.stage.style.cursor=Re(n,r)?`grab`:``,t.moved){t.px=n,t.py=r;let e=$e(n,r),i=A;i?(Ke(l.dragPreview(w,i,k,t.item,n,r,!1),!1),R&&clearTimeout(R.timer),R={item:t.item,timer:setTimeout(()=>{R=null,I?.moved||qe(),J()},320)}):qe(),e&&K(`drop`,{item:t.item,x:e.x,y:e.y}),K(`dragEnd`,{item:t.item,cancelled:!e}),Ve()}else{let e=Ie(n,r);e&&K(`click`,e)}return}if(!B||B.id!==e.pointerId)return;let t=B.moved;if(B=null,b.stage.hasPointerCapture?.(e.pointerId)&&b.stage.releasePointerCapture(e.pointerId),b.stage.style.cursor=E&&q()?.pan?`grab`:``,t)Ve();else{let{x:t,y:n}=Q(e),r=Ie(t,n);if(r)K(`click`,r);else if(e.type!==`pointercancel`&&Qe(t,n)){let e=$e(t,n);e&&K(`plotClick`,e)}}},rt=()=>{!B?.moved&&!I?.moved&&X(null)},it=e=>{let t=q();if(!t||t.zoom===!1||!w.zoom.x&&!w.zoom.y)return;let{x:n,y:r}=Q(e);if(!Qe(n,r))return;let i=e.ctrlKey||e.metaKey;if(t.wheel===`always`||i)e.preventDefault(),Ze(n,r,g.wheelFactor(e.deltaY,e.deltaMode,e.ctrlKey&&!e.metaKey));else if(E&&w.zoom.x&&A&&!A.horizontal&&Math.abs(e.deltaX)>Math.abs(e.deltaY)){e.preventDefault();let t=_(T);t.x=g.panRange(T.x,e.deltaX*A.xPerPx*(w.x.reverse?-1:1)),Z(t,!0)}},at=e=>{let{x:t,y:n}=Q(e);q()&&E&&Qe(t,n)&&ht()},ot=t=>{let n=A;if(!n)return;let i=F?.keyboard?F.event.items[0]:null,a=(i&&w.series[i.seriesIndex])??w.series.find(e=>!e.hidden&&e.cols.count>0);if(!a)return;let{x:o,y:s,count:l}=a.cols,u;for(i?u=i.index+t:(u=a.cols.sorted?e.lowerBound(o,l,T.x[0]):0,t<0&&(u=a.cols.sorted?e.lowerBound(o,l,T.x[1])-1:l-1));u>=0&&u<l&&!Number.isFinite(s[u]);)u+=t||1;if(u<0||u>=l)return;let d=n;if(w.zoom.x&&(o[u]<T.x[0]||o[u]>T.x[1])){let e=T.x[1]-T.x[0];Z({x:[o[u]-e/2,o[u]+e/2],y:T.y},!0),d=A=r.createScales(n.plot,T,w.x.reverse,w.y.reverse,w.horizontal)}let f=c.pointOf(a,u,d),p=c.hoverItemOf(a,u),m={items:[p,...w.tooltipMode===`axis`&&a.type!==`scatter`?(Ie(f.px,f.py)?.items??[]).filter(e=>e.seriesIndex!==a.index):[]],x:p.x,xLabel:le?.formatValue(p.x)??String(p.x)};X({event:m,anchorX:f.px,anchorY:f.py,keyboard:!0});let h=p;b.live.textContent=`${h.seriesName}: ${m.xLabel}, ${j?.formatValue(h.y)??h.y}${h.label?` (${h.label})`:``}`},st=e=>{if(!q()?.keyboard)return;let t=()=>{let e=A?.plot;return e?[e.x+e.width/2,e.y+e.height/2]:[0,0]};switch(e.key){case`ArrowRight`:case`ArrowLeft`:if(w.horizontal)return;e.preventDefault(),ot(e.key===`ArrowRight`===w.x.reverse?-1:1);break;case`ArrowDown`:case`ArrowUp`:if(!w.horizontal)return;e.preventDefault(),ot(e.key===`ArrowDown`===w.x.reverse?-1:1);break;case`+`:case`=`:{if(!w.zoom.x&&!w.zoom.y)return;e.preventDefault();let[n,r]=t();Ze(n,r,.8);break}case`-`:case`_`:{if(!w.zoom.x&&!w.zoom.y)return;e.preventDefault();let[n,r]=t();Ze(n,r,1.25);break}case`0`:e.preventDefault(),ht();break;case`Escape`:F&&(e.preventDefault(),X(null))}},ct=()=>{let e;try{e=b.stage.matches(`:focus-visible`)}catch{e=!0}e&&(b.stage.style.boxShadow=`0 0 0 2px var(--primary-color, #4f46e5)`)},lt=()=>{b.stage.style.boxShadow=``,F?.keyboard&&X(null)},$=b.stage;$.addEventListener(`pointermove`,et),$.addEventListener(`pointerdown`,tt),$.addEventListener(`pointerup`,nt),$.addEventListener(`pointercancel`,nt),$.addEventListener(`pointerleave`,rt),$.addEventListener(`wheel`,it,{passive:!1}),$.addEventListener(`dblclick`,at),$.addEventListener(`keydown`,st),$.addEventListener(`focus`,ct),$.addEventListener(`blur`,lt);let ut=typeof ResizeObserver==`function`?new ResizeObserver(()=>J()):null;ut?.observe(b.stage);let dt=()=>{if(N)return;let e=h.readTheme(b.root,S.palette);h.themeColorsChanged(C,e)&&Se++,C=e,t.themeTooltip(b.tooltip,C),Y()},ft=h.watchTheme(dt),pt=a.watchLocale(()=>{!N&&!S.locale&&Y()}),mt=async(e=new Set)=>{let t=++de,r=await f.createRenderer(S.renderer??`auto`,()=>n.createDataCanvas(v),t=>{N||M?.kind!==t||(M.destroy(),M.canvas.remove(),M=null,mt(new Set([...e,t])))},e);if(N||t!==de){r?.destroy();return}M&&(M.destroy(),M.canvas.remove()),M=r,r&&(b.root.dataset.renderer=r.kind,b.stage.insertBefore(r.canvas,b.lift),O=!0,K(`renderer`,r.kind)),Te(r?.kind??null),J()};function ht(){E&&Z(_(w.base),!0)}Y(),mt();let gt=p.followDefaultRenderer(()=>S.renderer,()=>void mt());return{setOptions(e){if(N)return;let t=S;S=e,(e.palette??[]).join()!==(t.palette??[]).join()&&(C=h.readTheme(b.root,e.palette),Se++),(e.renderer??`auto`)!==(t.renderer??`auto`)&&mt(),Y()},resize(){J()},resetZoom:ht,getView:()=>s.viewToValues(w,T),setView(e){N||Z(s.viewFromValues(w,e,T),!1)},getRenderer:()=>M?.kind??null,getPlotRect(){let e=Le();return e?{x:e[0],y:e[1],width:e[2],height:e[3]}:null},toPixel(e,t){if(!A)return null;let n=r.toScreen(A,s.toPlotX(w,e),s.toPlotY(w,t));return{x:n.x+b.stage.offsetLeft,y:n.y+b.stage.offsetTop}},fromPixel(e,t){if(!A)return null;let n=r.toData(A,e-b.stage.offsetLeft,t-b.stage.offsetTop);return{x:s.fromPlotX(w,n.x),y:s.fromPlotY(w,n.y)}},ready:Ee,refreshTheme:dt,on(e,t){let n=x[e];return n||(n=new Set,x[e]=n),n.add(t),()=>{n.delete(t)}},destroy(){if(!N){N=!0,y?.removeEventListener(`keydown`,Je,!0),R&&clearTimeout(R.timer),P&&(y?.cancelAnimationFrame?y.cancelAnimationFrame(P):clearTimeout(P)),ut?.disconnect(),gt(),ft(),pt(),$.removeEventListener(`wheel`,it),M?.destroy(),M=null,t.releaseTooltip(b.tooltip),b.root.remove();for(let e of Object.keys(x))delete x[e]}}}};exports.createChart=ne;
|
|
1
|
+
const e=require("./data.cjs"),t=require("./tooltip.cjs"),n=require("./dom.cjs"),r=require("./layout.cjs"),i=require("./overlay.cjs"),a=require("./locale.cjs"),o=require("./labels.cjs"),s=require("./model.cjs"),c=require("./scene.cjs"),l=require("./drag-preview.cjs"),u=require("./hover-rect.cjs"),d=require("./items.cjs"),f=require("./renderers/detect.cjs"),p=require("./renderers/follow.cjs"),m=require("./signature.cjs"),h=require("./theme.cjs"),g=require("./viewport.cjs");var ee=e=>(e[0]+e[1])/2,te=(e,t)=>{if(!e||!t)return e??t;let n=Math.min(e.x,t.x),r=Math.min(e.y,t.y);return{x:n,y:r,width:Math.max(e.x+e.width,t.x+t.width)-n,height:Math.max(e.y+e.height,t.y+t.height)-r}},_=e=>({x:[e.x[0],e.x[1]],y:[e.y[0],e.y[1]]}),ne=(ne,re)=>{let v=ne.ownerDocument,y=v.defaultView,b=n.createChartDom(ne),ie=new Map,ae=new Set,oe={},x=re,S=h.readTheme(b.root,x.palette);t.themeTooltip(b.tooltip,S);let C,w={x:[0,1],y:[0,1]},T=!1,E={x:0,y:0},se=[],D=!0,ce=0,O=[],le=[],k=null,ue=null,A=null,de=null,j=null,fe=0,M=!1,N=0,pe=!1,me=``,P=null,F=null,he=``,I=null,L=null,R=null,ge=!1,_e=[],z=null,ve=null,ye=null,B=null,be=[],xe=[],Se=[],Ce=[],we=[],V=null,H=null,U=null,Te=``,Ee=0,De=``,Oe=``,W=null,G=null,ke=()=>{},Ae=new Promise(e=>{ke=e}),K=(e,t)=>{oe[e]?.forEach(e=>e(t))},je=null,Me=null,q=()=>{if(je===x)return Me;je=x;let e=x.interaction;if(e===!1)return Me=null;let t=typeof e==`object`?e:{};return Me={zoom:t.zoom??!0,wheel:t.wheel??`modifier`,pan:t.pan??!0,keyboard:t.keyboard??!0,dragPoints:t.dragPoints??!1,dropTargets:t.dropTargets??!1,dragLabel:t.dragLabel??!0,hoverLabel:t.hoverLabel??!0}},Ne=()=>x.tooltip===!1?null:typeof x.tooltip==`object`?x.tooltip:{},Pe=()=>{N=y?.requestAnimationFrame?y.requestAnimationFrame(Ue):setTimeout(Ue,16)},J=()=>{M||(pe=!0,N||Pe())},Fe=()=>{M||N||Pe()},Ie=()=>{C=s.buildModel(x,S,ae,ie);let{base:e,zoom:t,minSpan:n}=C;T?(w={x:t.x?g.clampRange(w.x,e.x,n.x):[...e.x],y:t.y?g.clampRange(w.y,e.y,n.y):[...e.y]},T=!g.sameRange(w.x,e.x)||!g.sameRange(w.y,e.y)):w=_(e);let r=m.itemsSignature(C,Ee,e=>x.series[e]?.stack);r!==De&&(De=r,E={x:ee(e.x),y:ee(e.y)},D=!0,P&&!P.keyboard&&(F={x:P.anchorX,y:P.anchorY,event:F?.event??P.event},P=null)),R&&(clearTimeout(R.timer),R=null,ge=!0),O=c.resolveAnnotations(x.annotations,S,C.y.type===`log`?Math.log10:void 0,C.x.type===`log`?Math.log10:void 0),le=c.resolveDependencies(x.dependencies,S),Re(),ze(),J()},Le=()=>{let e=(e,t)=>Math.max(Math.abs(e[0]-t),Math.abs(e[1]-t))>(e[1]-e[0])*2e3;(e(w.x,E.x)||e(w.y,E.y))&&(E={x:ee(w.x),y:ee(w.y)},D=!0)},Re=()=>{let e=x.legend,t=x.series.filter(e=>e.name).length,r=c.legendShown(e,C,t),i=typeof e==`object`?e:{},a=i.toggle??!0,o=i.position===`bottom`,s=r?c.colorLegend(C):null,l=`${r}|${o}|${a}`;if(s)l+=`\n${s.stops.join(`;`)}|${s.labels.map(e=>e.text).join(`;`)}`;else if(r)for(let e of C.series)l+=`\n${e.id}\u0001${e.name}\u0001${e.colorCss}\u0001${c.legendShape(e.type)}\u0001${e.hidden}`;if(l===Oe)return;Oe=l;let u=[...b.legend.children].indexOf(v.activeElement);if(b.legend.replaceChildren(),U=null,b.legend.style.display=r?`flex`:`none`,r){if(b.legend.style.order=o?`1`:`0`,b.legend.style.padding=o?`8px 4px 0`:`0 4px 8px`,s){b.legend.style.justifyContent=`flex-end`;let e=v.createElement(`div`);n.styleElement(e,{display:`flex`,alignItems:`center`,gap:`8px`,color:`var(--text-secondary-color, #6b7280)`,fontSize:`11px`,fontVariantNumeric:`tabular-nums`});let t=s.labels[0],r=s.labels[s.labels.length-1],i=v.createElement(`div`);if(n.styleElement(i,{position:`relative`,width:`160px`,height:`8px`,borderRadius:`4px`,background:`linear-gradient(to right, ${s.stops.join(`, `)})`,boxShadow:`inset 0 0 0 1px color-mix(in srgb, var(--text-color, #1f2937) 8%, transparent)`}),s.labels.length>2){let e=v.createElement(`div`);n.styleElement(e,{position:`absolute`,left:`50%`,top:`-2px`,width:`1px`,height:`12px`,background:`color-mix(in srgb, var(--text-color, #1f2937) 35%, transparent)`}),i.appendChild(e)}U=v.createElement(`div`),n.styleElement(U,{position:`absolute`,top:`-3px`,width:`4px`,height:`14px`,marginLeft:`-2px`,borderRadius:`2px`,background:`var(--text-color, #1f2937)`,boxShadow:`0 0 0 1.5px var(--surface-color, var(--background-color, #fff))`,display:`none`}),i.appendChild(U);let a=e=>{let t=v.createElement(`span`);return t.textContent=e,t};e.append(a(t?.text??``),i,a(r?.text??``)),b.legend.appendChild(e);return}b.legend.style.justifyContent=``;for(let e of C.series){let t=v.createElement(a?`button`:`span`);t instanceof HTMLButtonElement&&(t.type=`button`,t.setAttribute(`aria-pressed`,String(!e.hidden)),t.addEventListener(`click`,()=>{ae.has(e.id)?ae.delete(e.id):ae.add(e.id),Ie()})),n.styleElement(t,{display:`inline-flex`,alignItems:`center`,gap:`6px`,padding:`2px 4px`,margin:`0`,border:`0`,borderRadius:`4px`,background:`none`,font:`inherit`,color:`var(--text-secondary-color, #6b7280)`,cursor:a?`pointer`:`default`,opacity:e.hidden?`0.45`:`1`,textDecoration:e.hidden?`line-through`:`none`}),t.append(n.swatch(v,e.colorCss,c.legendShape(e.type)),v.createTextNode(e.name)),b.legend.appendChild(t)}u>=0&&b.legend.children[u]?.focus()}},ze=()=>{b.stage.setAttribute(`aria-label`,x.ariaLabel??o.chartAriaLabel(C));let e=q()?.keyboard;b.stage.style.touchAction=q()?.dragPoints?`none`:`pan-y`,e?b.stage.tabIndex=0:b.stage.removeAttribute(`tabindex`)},Be=(e,t,n,r)=>{let i=Math.max(1,Math.round(t*r)),a=Math.max(1,Math.round(n*r));e.width!==i&&(e.width=i),e.height!==a&&(e.height=a),e.style.width=`${t}px`,e.style.height=`${n}px`},Ve=(e,t,n)=>{let r=2/(e[1]-e[0]),i=(t-e[0])*r-1;return n?[-r,-i]:[r,i]},He=(e,t,n)=>{let r=b.foreground.getContext(`2d`);r&&k&&(r.setTransform(n,0,0,n,0,0),_e=i.drawForeground(r,{width:e,height:t,scales:k,theme:S,annotations:O,pointLabels:c.collectPointLabels(C,w,k,A,S.background,I?.moved?I.item:R?.item??null,ye),connectors:c.connectorSegments(C,k),arrows:c.dependencyArrows(C,k,le)}))};function Ue(){if(N=0,M)return;let e=pe;pe=!1;let t=b.stage.clientWidth,r=b.stage.clientHeight;if(t<=0||r<=0)return;let a=y?.devicePixelRatio||1,o=`${t}x${r}@${a}`;if(!e&&o===me&&k){He(t,r,a),Ye(),I?.moved&&$e();return}me=o,Be(b.background,t,r,a),Be(b.foreground,t,r,a);let s=b.background.getContext(`2d`);s&&(s.setTransform(a,0,0,a,0,0),s.font=i.font(S));let l=c.layoutChart({model:C,view:w,theme:S,width:t,height:r,padding:x.padding,measure:s?e=>s.measureText(e).width:e=>e.length*S.fontSize*.6}),{plot:u}=l;ue=l.xTicks,A=l.yTicks,de=l.y2Ticks,k=l.scales;let f=We();if(f&&f.join()!==he&&(he=f.join(),K(`layout`,{x:f[0],y:f[1],width:f[2],height:f[3]})),s&&i.drawBackground(s,{width:t,height:r,scales:k,x:C.x,y:C.y,xTicks:ue,yTicks:A,y2:C.y2,y2Ticks:de,theme:S,annotations:O}),He(t,r,a),j){let e=j.canvas,t=C.horizontal,r=t?u.height:u.width,i=t?u.width:u.height;n.styleElement(e,{left:`${u.x}px`,top:`${u.y}px`,width:`${r}px`,height:`${i}px`,transformOrigin:t?`0 0`:``,transform:t?`matrix(0, 1, 1, 0, 0, 0)`:``});let o=Math.max(1,Math.round(r*a)),s=Math.max(1,Math.round(i*a));(e.width!==o||e.height!==s)&&j.resize(o,s),Le();let c={x:1/Math.abs(k.xPerPx),y:1/Math.abs(k.yPerPx)},l=d.cellStyleKey(C,c);l!==Te&&(Te=l,D=!0),D&&(ce++,se=d.buildItems(C,E,ce,c),D=!1);let[f,p]=Ve(w.x,E.x,C.x.reverse),[m,h]=Ve(w.y,E.y,t?!C.y.reverse:C.y.reverse);j.render(se,{transform:{xScale:f,xOffset:p,yScale:m,yOffset:h},width:o,height:s,dpr:a})}Ke(),Ye(),ge?(ge=!1,I?.moved||tt()):I?.moved&&$e()}let Y=(e,t)=>k?c.hitTest(C,k,ue,e,t):null,We=()=>{let e=k?.plot;return e?[e.x+b.stage.offsetLeft,e.y+b.stage.offsetTop,e.width,e.height]:null},Ge=(e,t)=>q()?.dragPoints?Y(e,t)?.items.find(e=>C.series[e.seriesIndex].type===`scatter`)??null:null,X=e=>{let t=F?F.event:P?.event??null;F=null;let n=!c.sameHover(t,e?.event??null);P=e,Ye(),n&&K(`hover`,e?e.event:null)},Ke=()=>{let e=F;if(!e||!k)return;F=null;let t=Y(e.x,e.y);P=t?{event:t,anchorX:e.x,anchorY:e.y,keyboard:!1}:null,c.sameHover(e.event,t)&&e.event.items.every((e,n)=>e.x===t.items[n].x&&e.y===t.items[n].y)||K(`hover`,t)},qe=e=>{let t=Ne()?.render;if(t)return t(e);let r=c.tooltipContent(C,e,A,de),i=v.createDocumentFragment(),a=v.createElement(`div`);if(n.styleElement(a,{display:`flex`,alignItems:`center`,gap:`6px`,fontWeight:`600`,marginBottom:r.subtitle?`0`:`4px`,color:`var(--text-color, #1f2937)`}),r.titleColor&&a.appendChild(n.swatch(v,r.titleColor,`dot`)),a.appendChild(v.createTextNode(r.title)),i.append(a),r.subtitle){let e=v.createElement(`div`);n.styleElement(e,{color:`var(--text-secondary-color, #6b7280)`,fontSize:`11px`,margin:`1px 0 6px`,paddingLeft:r.titleColor?`14px`:`0`}),e.textContent=r.subtitle,i.append(e)}if(!r.rows.length)return i;let o=r.rows.some(e=>e.color),s=v.createElement(`div`);n.styleElement(s,{display:`grid`,gridTemplateColumns:o?`auto minmax(0, 1fr) auto`:`minmax(0, 1fr) auto`,columnGap:`0`,rowGap:`2px`,alignItems:`center`});for(let e of r.rows){if(o){let t=v.createElement(`span`);n.styleElement(t,{display:`inline-flex`,width:`14px`,justifyContent:`flex-start`}),e.color&&t.appendChild(n.swatch(v,e.color,`dot`)),s.appendChild(t)}let t=v.createElement(`span`);n.styleElement(t,{color:`var(--text-secondary-color, #6b7280)`,paddingRight:`16px`,overflow:`hidden`,textOverflow:`ellipsis`}),t.textContent=e.name;let r=v.createElement(`span`);n.styleElement(r,{fontWeight:`600`,fontVariantNumeric:`tabular-nums`,textAlign:`right`,color:`var(--text-color, #1f2937)`}),r.textContent=e.value,s.append(t,r)}return i.append(s),i},Je=(e,t,n,r=b.hover)=>(e[t]||(e[t]=n(),r.appendChild(e[t])),e[t].style.display=`block`,e[t]);function Ye(){let e=k;P&&e&&W&&W.scales===e&&W.model===C&&c.sameHover(W.event,P.event)||Xe(e);let n=b.tooltip;if(!P||!e||!Ne()||B?.moved||I?.moved){n.style.display=`none`;return}let r=Ne()?.render,i,a;if(!r&&G&&G.model===C&&G.yTicks===A&&c.sameHover(G.event,P.event)&&n.style.display===`block`)i=G.width,a=G.height;else{G=null;let e=qe(P.event);if(e===null||e===``){n.style.display=`none`;return}typeof e==`string`?(n.textContent=e,n.style.whiteSpace=`pre`):(n.replaceChildren(e),n.style.whiteSpace=`nowrap`),n.style.display=`block`,i=n.offsetWidth,a=n.offsetHeight,r||(G={event:P.event,model:C,yTicks:A,width:i,height:a})}t.positionTooltip(n,b.stage,{anchor:{x:P.anchorX,y:P.anchorY},avoid:te(u.hoverRect(C,e,P.event),ve),obstacles:u.tooltipObstacles(C,e),prefer:e.horizontal?`vertical`:`side`,size:{width:i,height:a},animate:!0})}function Xe(e){let r=0,i=0,a=0,o=0,s=0,l=!1;if(Ze(),W=null,b.crosshair.style.display=`none`,P&&e){W={event:P.event,model:C,scales:e};let{plot:u}=e;b.hover.style.width=`${b.stage.clientWidth}px`,b.hover.style.height=`${b.stage.clientHeight}px`;let d=c.crosshairAt(C,e,P.event,x.crosshair);if(d!==null){let t=`1px dashed color-mix(in srgb, var(--text-secondary-color, #6b7280) 45%, transparent)`;n.styleElement(b.crosshair,e.horizontal?{display:`block`,left:`${u.x}px`,top:`${Math.round(d)}px`,width:`${u.width}px`,height:`0`,borderLeft:`0`,borderTop:t}:{display:`block`,left:`${Math.round(d)}px`,top:`${u.y}px`,width:`0`,height:`${u.height}px`,borderLeft:t,borderTop:`0`})}let f=c.hoverMarks(C,e,P.event),p=f.some(e=>e.kind===`bar`);for(let e of f){if(e.kind===`band`||e.kind===`guide`){let t=e.kind===`band`?Je(xe,i++,()=>n.createBand(v),b.underlay):Je(Ce,o++,()=>n.styleElement(n.createBand(v),{borderRadius:`0`,background:`color-mix(in srgb, var(--text-color, #1f2937) 6%, transparent)`}),b.lift);n.styleElement(t,{left:`${e.x}px`,top:`${e.y}px`,width:`${e.width}px`,height:`${e.height}px`}),e.kind===`band`&&(t.style.background=`color-mix(in srgb, var(--text-color, #1f2937) ${p?4:6}%, transparent)`);continue}if(e.kind===`bar`){let r=C.series.some(e=>!e.hidden&&(e.type===`line`||e.type===`area`)),i=r?b.underlay:b.lift;V||(V=n.styleElement(v.createElement(`div`),{position:`absolute`,overflow:`hidden`})),(V.parentElement!==i||r&&i.lastElementChild!==V)&&i.appendChild(V),!l&&!r&&(l=!0,H||(H=n.styleElement(v.createElement(`div`),{position:`absolute`,background:`color-mix(in srgb, ${n.PLOT_BACKGROUND} 42%, transparent)`,opacity:`0`}),b.lift.insertBefore(H,V.parentElement===b.lift?V:null)),n.styleElement(H,{left:`${u.x}px`,top:`${u.y}px`,width:`${u.width}px`,height:`${u.height}px`,transition:t.prefersReducedMotion(y)?`none`:`opacity 140ms ease-out`,opacity:`1`})),n.styleElement(V,{left:`${u.x}px`,top:`${u.y}px`,width:`${u.width}px`,height:`${u.height}px`});let a=`${e.seriesIndex}:${e.index}`,o=we[s],d=!o||o.style.display!==`block`||o.dataset.key!==a,f=Je(we,s++,()=>n.createBand(v),V);f.dataset.key=a;let p=c.liftedBarRect(e),m=e.base===`top`||e.base===`bottom`,h=e.ring===null?null:{color:e.ring,width:Math.min(e.backdrop?2:1.5,Math.max(0,(Math.min(p.width,p.height)-2)/4))};f.dataset.hoverMark=`bar`;let g=h?n.liftShadow(h,1.5,null):`none`;if(n.styleElement(f,{left:`${p.x-u.x}px`,top:`${p.y-u.y}px`,width:`${p.width}px`,height:`${p.height}px`,borderRadius:`${e.radius}px`,filter:`brightness(1.08) saturate(1.08)`,background:e.backdrop?`linear-gradient(${e.color}, ${e.color}), ${n.PLOT_BACKGROUND}`:e.color,boxShadow:g}),d){let t=m?p.width:p.height,r=t>0?(t-e.grow*2)/t:1;n.playLift(f,{transform:m?`scaleX(${r})`:`scaleY(${r})`,...h?{boxShadow:n.liftShadow(h,1.5,null,!0)}:{}},{transform:`none`,...h?{boxShadow:g}:{}},y)}continue}if(e.kind===`cell`){let t=`${e.seriesIndex}:${e.index}`,r=Se[a],i=!r||r.style.display!==`block`||r.dataset.key!==t,o=Je(Se,a++,()=>n.styleElement(n.createBand(v),{zIndex:`1`,transform:`scale(${n.CELL_LIFT})`}),b.lift);o.dataset.key=t;let s={color:e.ring,width:Math.min(2,Math.min(e.width,e.height)/5)},c=n.liftShadow(s,2,n.CELL_ACCENT);n.styleElement(o,{left:`${e.x}px`,top:`${e.y}px`,width:`${e.width}px`,height:`${e.height}px`,background:e.color,borderRadius:`${Math.max(e.radius,2)}px`,boxShadow:c}),i&&n.playLift(o,{transform:`scale(1)`,boxShadow:n.liftShadow(s,2,n.CELL_ACCENT,!0)},{transform:`scale(${n.CELL_LIFT})`,boxShadow:c},y);continue}let d=be[r],f=!d||d.style.display!==`block`||d.style.left!==`${e.x}px`||d.style.top!==`${e.y}px`,m=Je(be,r++,()=>n.createMarker(v));n.styleElement(m,{left:`${e.x}px`,top:`${e.y}px`,width:`${e.size}px`,height:`${e.size}px`,background:e.color,boxShadow:n.markerHalo(e.halo)}),f&&n.playLift(m,{transform:`translate(-50%, -50%) scale(0.6)`,opacity:`0.6`},{transform:`translate(-50%, -50%) scale(1)`,opacity:`1`},y)}Qe(e)}else z&&(z.style.display=`none`,ve=null);for(let e=r;e<be.length;e++)be[e].style.display=`none`;for(let e=i;e<xe.length;e++)xe[e].style.display=`none`;for(let e=a;e<Se.length;e++)Se[e].style.display=`none`;for(let e=o;e<Ce.length;e++)Ce[e].style.display=`none`;for(let e=s;e<we.length;e++)we[e].style.display=`none`;H&&!l&&(H.style.opacity=`0`)}function Ze(){let e=U;if(!e)return;let t=P?.event.items[0],n=t?C.series[t.seriesIndex]:void 0;if(!t||!n||n.type!==`heatmap`||t.value===void 0){e.style.display=`none`;return}e.style.display=`block`,e.style.left=`${(s.heatPosition(n,t.value)*100).toFixed(2)}%`}function Qe(e){let t=P?.event.items[0],r=t?C.series[t.seriesIndex]:void 0,i;if(t&&r?.type===`scatter`&&t.label&&!I?.moved&&q()?.hoverLabel!==!1){let n=c.pointOf(r,t.index,e);i=_e.find(({label:e})=>!e.hidden&&e.text===t.label&&Math.abs(e.x-n.px)<.5&&Math.abs(e.y-n.py)<.5)}if(ve=null,!i||!t){z&&(z.style.display=`none`);return}z||(z=n.createLabelPill(v),z.dataset.hoverMark=`label`,b.hover.appendChild(z)),z.textContent=i.label.text,n.styleElement(z,{display:`block`,left:`${i.box.x-10}px`,top:`${i.box.y+i.box.height/2}px`,transform:`translateY(-50%)`,background:`color-mix(in srgb, ${t.color} 14%, var(--surface-color, var(--background-color, #fff)))`,borderColor:`color-mix(in srgb, ${t.color} 45%, transparent)`,boxShadow:`0 4px 12px -4px rgba(15, 23, 42, 0.28)`}),ve={x:i.box.x-10,y:i.box.y+i.box.height/2-11,width:i.box.width*1.1+20,height:22}}function $e(){let e=I,t=k;e?.moved&&t&&et(l.dragPreview(C,t,O,e.item,e.px,e.py,!!q()?.dropTargets),!0)}function et(e,t){L||(L={dot:n.createDragDot(v),pill:n.createLabelPill(v),placeholder:n.createDragPlaceholder(v),target:n.createDropTarget(v)},L.dot.dataset.dragMark=`dot`,L.pill.dataset.dragMark=`label`,L.placeholder.dataset.dragMark=`origin`,L.target.dataset.dragMark=`target`,b.underlay.appendChild(L.target),b.hover.append(L.placeholder,L.dot,L.pill));let{dot:r,pill:i,placeholder:a,target:o}=L;if(b.hover.style.width=`${b.stage.clientWidth}px`,b.hover.style.height=`${b.stage.clientHeight}px`,n.styleElement(r,{display:`block`,left:`${e.x}px`,top:`${e.y}px`,width:`${e.size}px`,height:`${e.size}px`,background:e.color,boxShadow:n.dragDotShadow(e.color)}),e.label&&q()?.dragLabel!==!1){i.textContent=e.label;let t=k,r=!t||e.x<t.plot.x+t.plot.width*.62;n.styleElement(i,{display:`block`,left:`${e.x}px`,top:`${e.y}px`,transform:r?`translate(${e.size/2+8}px, -50%)`:`translate(calc(-100% - ${e.size/2+8}px), -50%)`})}else i.style.display=`none`;if(t&&e.origin){let t=e.size-2;n.styleElement(a,{display:`block`,left:`${e.origin.x}px`,top:`${e.origin.y}px`,width:`${t}px`,height:`${t}px`,borderColor:e.color,background:`color-mix(in srgb, ${n.PLOT_BACKGROUND} 62%, transparent)`})}else a.style.display=`none`;t&&e.target?n.styleElement(o,{display:`block`,left:`${e.target.x}px`,top:`${e.target.y}px`,width:`${e.target.width}px`,height:`${e.target.height}px`,background:`color-mix(in srgb, ${e.target.color} 12%, transparent)`,boxShadow:`inset 0 0 0 2px color-mix(in srgb, ${e.target.color} 70%, transparent)`}):o.style.display=`none`}function tt(){if(L)for(let e of Object.values(L))e.style.display=`none`}let nt=e=>{e.key===`Escape`&&I&&(e.preventDefault(),e.stopPropagation(),it())},rt=e=>{b.stage.hasPointerCapture?.(e)&&b.stage.releasePointerCapture(e)};function it(){let e=I;e&&(I=null,y?.removeEventListener(`keydown`,nt,!0),rt(e.id),b.stage.style.cursor=``,tt(),e.moved&&(J(),K(`dragEnd`,{item:e.item,cancelled:!0})))}let Z=(e,t)=>{let{base:n,minSpan:r}=C;w={x:g.clampRange(e.x,n.x,r.x),y:g.clampRange(e.y,n.y,r.y)},T=!g.sameRange(w.x,n.x)||!g.sameRange(w.y,n.y);let i=q();b.stage.style.cursor=T&&i?.pan?`grab`:``,t&&K(`zoom`,s.viewToValues(C,w)),J()},at=(e,t,n)=>{let i=k;if(!i)return;let a=_(w),o=r.toData(i,e,t);C.zoom.x&&(a.x=g.zoomRange(w.x,o.x,n)),C.zoom.y&&(a.y=g.zoomRange(w.y,o.y,n)),Z(a,!0)},Q=e=>{let t=b.stage.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},ot=(e,t)=>{let n=k?.plot;return!!n&&e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height},st=(e,t)=>{let n=k;if(!n)return null;let{plot:i}=n,a=Math.max(i.x,Math.min(i.x+i.width,e)),o=Math.max(i.y,Math.min(i.y+i.height,t)),c=r.toData(n,a,o);return{x:s.fromPlotX(C,c.x),y:s.fromPlotY(C,c.y)}},ct=e=>{let{x:t,y:n}=Q(e);if(I&&I.id===e.pointerId){let r=I;if(r.px=t,r.py=n,!r.moved&&Math.hypot(t-r.x,n-r.y)>3){r.moved=!0,b.stage.setPointerCapture?.(e.pointerId),b.stage.style.cursor=`grabbing`,y?.addEventListener(`keydown`,nt,!0),R&&(clearTimeout(R.timer),R=null),X(null),J();let t=st(r.x,r.y);t&&K(`dragStart`,{item:r.item,x:t.x,y:t.y})}if(r.moved&&I===r){$e();let e=st(t,n);e&&K(`drag`,{item:r.item,x:e.x,y:e.y})}return}if(B&&B.id===e.pointerId){let i=t-B.x,a=n-B.y;if(!B.moved&&Math.hypot(i,a)>3){let t=q();T&&t?.pan&&(B.moved=!0,b.stage.setPointerCapture?.(e.pointerId),b.stage.style.cursor=`grabbing`)}if(B.moved&&k){let e=_(B.view),i=r.toData(k,B.x,B.y),a=r.toData(k,t,n);C.zoom.x&&(e.x=g.panRange(B.view.x,i.x-a.x)),C.zoom.y&&(e.y=g.panRange(B.view.y,i.y-a.y)),Z(e,!0);return}}let i=Y(t,n);X(i?{event:i,anchorX:t,anchorY:n,keyboard:!1}:null),!B&&q()?.dragPoints&&(b.stage.style.cursor=Ge(t,n)||T&&q()?.pan?`grab`:``)},lt=e=>{if(e.button!==0)return;let{x:t,y:n}=Q(e);if(!ot(t,n))return;let r=Ge(t,n);if(r){I={id:e.pointerId,item:r,x:t,y:n,px:t,py:n,moved:!1};return}B={id:e.pointerId,x:t,y:n,view:_(w),moved:!1}},ut=e=>{if(I&&I.id===e.pointerId){let t=I,{x:n,y:r}=Q(e);if(t.moved&&e.type===`pointercancel`){it();return}if(I=null,y?.removeEventListener(`keydown`,nt,!0),rt(e.pointerId),b.stage.style.cursor=Ge(n,r)?`grab`:``,t.moved){t.px=n,t.py=r;let e=st(n,r),i=k;i?(et(l.dragPreview(C,i,O,t.item,n,r,!1),!1),R&&clearTimeout(R.timer),R={item:t.item,timer:setTimeout(()=>{R=null,I?.moved||tt(),J()},320)}):tt(),e&&K(`drop`,{item:t.item,x:e.x,y:e.y}),K(`dragEnd`,{item:t.item,cancelled:!e}),Ye()}else{let e=Y(n,r);e&&K(`click`,e)}return}if(!B||B.id!==e.pointerId)return;let t=B.moved;if(B=null,b.stage.hasPointerCapture?.(e.pointerId)&&b.stage.releasePointerCapture(e.pointerId),b.stage.style.cursor=T&&q()?.pan?`grab`:``,t)Ye();else{let{x:t,y:n}=Q(e),r=Y(t,n);if(r)K(`click`,r);else if(e.type!==`pointercancel`&&ot(t,n)){let e=st(t,n);e&&K(`plotClick`,e)}}},dt=()=>{!B?.moved&&!I?.moved&&X(null)},ft=e=>{let t=q();if(!t||t.zoom===!1||!C.zoom.x&&!C.zoom.y)return;let{x:n,y:r}=Q(e);if(!ot(n,r))return;let i=e.ctrlKey||e.metaKey;if(t.wheel===`always`||i)e.preventDefault(),at(n,r,g.wheelFactor(e.deltaY,e.deltaMode,e.ctrlKey&&!e.metaKey));else if(T&&C.zoom.x&&k&&!k.horizontal&&Math.abs(e.deltaX)>Math.abs(e.deltaY)){e.preventDefault();let t=_(w);t.x=g.panRange(w.x,e.deltaX*k.xPerPx*(C.x.reverse?-1:1)),Z(t,!0)}},pt=e=>{let{x:t,y:n}=Q(e);q()&&T&&ot(t,n)&&Ct()},mt=t=>{let n=k;if(!n)return;let i=P?.keyboard?P.event.items[0]:null,a=(i&&C.series[i.seriesIndex])??C.series.find(e=>!e.hidden&&e.cols.count>0);if(!a)return;let{x:o,y:s,count:l}=a.cols,u;for(i?u=i.index+t:(u=a.cols.sorted?e.lowerBound(o,l,w.x[0]):0,t<0&&(u=a.cols.sorted?e.lowerBound(o,l,w.x[1])-1:l-1));u>=0&&u<l&&!Number.isFinite(s[u]);)u+=t||1;if(u<0||u>=l)return;let d=n;if(C.zoom.x&&(o[u]<w.x[0]||o[u]>w.x[1])){let e=w.x[1]-w.x[0];Z({x:[o[u]-e/2,o[u]+e/2],y:w.y},!0),d=k=r.createScales(n.plot,w,C.x.reverse,C.y.reverse,C.horizontal)}let f=c.pointOf(a,u,d),p=c.hoverItemOf(a,u),m={items:[p,...C.tooltipMode===`axis`&&a.type!==`scatter`?(Y(f.px,f.py)?.items??[]).filter(e=>e.seriesIndex!==a.index):[]],x:p.x,xLabel:ue?.formatValue(p.x)??String(p.x)};X({event:m,anchorX:f.px,anchorY:f.py,keyboard:!0});let h=p;b.live.textContent=`${h.seriesName}: ${m.xLabel}, ${A?.formatValue(h.y)??h.y}${h.label?` (${h.label})`:``}`},ht=e=>{if(!q()?.keyboard)return;let t=()=>{let e=k?.plot;return e?[e.x+e.width/2,e.y+e.height/2]:[0,0]};switch(e.key){case`ArrowRight`:case`ArrowLeft`:if(C.horizontal)return;e.preventDefault(),mt(e.key===`ArrowRight`===C.x.reverse?-1:1);break;case`ArrowDown`:case`ArrowUp`:if(!C.horizontal)return;e.preventDefault(),mt(e.key===`ArrowDown`===C.x.reverse?-1:1);break;case`+`:case`=`:{if(!C.zoom.x&&!C.zoom.y)return;e.preventDefault();let[n,r]=t();at(n,r,.8);break}case`-`:case`_`:{if(!C.zoom.x&&!C.zoom.y)return;e.preventDefault();let[n,r]=t();at(n,r,1.25);break}case`0`:e.preventDefault(),Ct();break;case`Escape`:P&&(e.preventDefault(),X(null))}},gt=()=>{let e;try{e=b.stage.matches(`:focus-visible`)}catch{e=!0}e&&(b.stage.style.boxShadow=`0 0 0 2px var(--primary-color, #4f46e5)`)},_t=()=>{b.stage.style.boxShadow=``,P?.keyboard&&X(null)},$=b.stage;$.addEventListener(`pointermove`,ct),$.addEventListener(`pointerdown`,lt),$.addEventListener(`pointerup`,ut),$.addEventListener(`pointercancel`,ut),$.addEventListener(`pointerleave`,dt),$.addEventListener(`wheel`,ft,{passive:!1}),$.addEventListener(`dblclick`,pt),$.addEventListener(`keydown`,ht),$.addEventListener(`focus`,gt),$.addEventListener(`blur`,_t);let vt=typeof ResizeObserver==`function`?new ResizeObserver(()=>J()):null;vt?.observe(b.stage);let yt=()=>{if(M)return;let e=h.readTheme(b.root,x.palette);h.themeColorsChanged(S,e)&&Ee++,S=e,t.themeTooltip(b.tooltip,S),Ie()},bt=h.watchTheme(yt),xt=a.watchLocale(()=>{!M&&!x.locale&&Ie()}),St=async(e=new Set)=>{let t=++fe,r=await f.createRenderer(x.renderer??`auto`,()=>n.createDataCanvas(v),t=>{M||j?.kind!==t||(j.destroy(),j.canvas.remove(),j=null,St(new Set([...e,t])))},e);if(M||t!==fe){r?.destroy();return}j&&(j.destroy(),j.canvas.remove()),j=r,r&&(b.root.dataset.renderer=r.kind,b.stage.insertBefore(r.canvas,b.lift),D=!0,K(`renderer`,r.kind)),ke(r?.kind??null),J()};function Ct(){T&&Z(_(C.base),!0)}Ie(),St();let wt=p.followDefaultRenderer(()=>x.renderer,()=>void St());return{setOptions(e){if(M)return;let t=x;x=e,(e.palette??[]).join()!==(t.palette??[]).join()&&(S=h.readTheme(b.root,e.palette),Ee++),(e.renderer??`auto`)!==(t.renderer??`auto`)&&St(),Ie()},resize(){J()},resetZoom:Ct,getView:()=>s.viewToValues(C,w),setView(e){M||Z(s.viewFromValues(C,e,w),!1)},getRenderer:()=>j?.kind??null,getPlotRect(){let e=We();return e?{x:e[0],y:e[1],width:e[2],height:e[3]}:null},toPixel(e,t){if(!k)return null;let n=r.toScreen(k,s.toPlotX(C,e),s.toPlotY(C,t));return{x:n.x+b.stage.offsetLeft,y:n.y+b.stage.offsetTop}},fromPixel(e,t){if(!k)return null;let n=r.toData(k,e-b.stage.offsetLeft,t-b.stage.offsetTop);return{x:s.fromPlotX(C,n.x),y:s.fromPlotY(C,n.y)}},ready:Ae,refreshTheme:yt,setLabelHidden(e){let t=e?{seriesIndex:e.seriesIndex,index:e.index}:null;(t?.seriesIndex!==ye?.seriesIndex||t?.index!==ye?.index)&&(ye=t,Fe())},on(e,t){let n=oe[e];return n||(n=new Set,oe[e]=n),n.add(t),()=>{n.delete(t)}},destroy(){if(!M){M=!0,y?.removeEventListener(`keydown`,nt,!0),R&&clearTimeout(R.timer),N&&(y?.cancelAnimationFrame?y.cancelAnimationFrame(N):clearTimeout(N)),vt?.disconnect(),wt(),bt(),xt(),$.removeEventListener(`wheel`,ft),j?.destroy(),j=null,t.releaseTooltip(b.tooltip),b.root.remove();for(let e of Object.keys(oe))delete oe[e]}}}};exports.createChart=ne;
|
|
2
2
|
//# sourceMappingURL=chart.cjs.map
|