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.
Files changed (98) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/custom-elements.json +10 -6
  3. package/dist/angular/fesm2022/minerva-angular.mjs +173 -70
  4. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  5. package/dist/angular/types/minerva-angular.d.ts +33 -21
  6. package/dist/charts/core.cjs +1 -1
  7. package/dist/charts/core.d.cts +1 -0
  8. package/dist/charts/core.d.ts +1 -0
  9. package/dist/charts/core.js +22 -21
  10. package/dist/charts/engine/chart.cjs +1 -1
  11. package/dist/charts/engine/chart.cjs.map +1 -1
  12. package/dist/charts/engine/chart.js +414 -376
  13. package/dist/charts/engine/chart.js.map +1 -1
  14. package/dist/charts/engine/overlay.cjs +1 -1
  15. package/dist/charts/engine/overlay.cjs.map +1 -1
  16. package/dist/charts/engine/overlay.d.cts +5 -0
  17. package/dist/charts/engine/overlay.d.ts +5 -0
  18. package/dist/charts/engine/overlay.js +94 -69
  19. package/dist/charts/engine/overlay.js.map +1 -1
  20. package/dist/charts/engine/quadrant-card.cjs +2 -0
  21. package/dist/charts/engine/quadrant-card.cjs.map +1 -0
  22. package/dist/charts/engine/quadrant-card.d.cts +83 -0
  23. package/dist/charts/engine/quadrant-card.d.ts +83 -0
  24. package/dist/charts/engine/quadrant-card.js +154 -0
  25. package/dist/charts/engine/quadrant-card.js.map +1 -0
  26. package/dist/charts/engine/scene.cjs +1 -1
  27. package/dist/charts/engine/scene.cjs.map +1 -1
  28. package/dist/charts/engine/scene.d.cts +5 -0
  29. package/dist/charts/engine/scene.d.ts +5 -0
  30. package/dist/charts/engine/scene.js +32 -32
  31. package/dist/charts/engine/scene.js.map +1 -1
  32. package/dist/charts/engine/types.d.cts +14 -0
  33. package/dist/charts/engine/types.d.ts +14 -0
  34. package/dist/charts/index.cjs +1 -1
  35. package/dist/charts/index.js +28 -27
  36. package/dist/charts/react/Chart.cjs +1 -1
  37. package/dist/charts/react/Chart.cjs.map +1 -1
  38. package/dist/charts/react/Chart.d.cts +4 -2
  39. package/dist/charts/react/Chart.d.ts +4 -2
  40. package/dist/charts/react/Chart.js +42 -42
  41. package/dist/charts/react/Chart.js.map +1 -1
  42. package/dist/charts/react/charts.cjs +1 -1
  43. package/dist/charts/react/charts.cjs.map +1 -1
  44. package/dist/charts/react/charts.js +395 -391
  45. package/dist/charts/react/charts.js.map +1 -1
  46. package/dist/charts/react/types.d.cts +8 -2
  47. package/dist/charts/react/types.d.ts +8 -2
  48. package/dist/core/contracts.cjs +1 -1
  49. package/dist/core/contracts.cjs.map +1 -1
  50. package/dist/core/contracts.js +1 -1
  51. package/dist/core/contracts.js.map +1 -1
  52. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  53. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  54. package/dist/native/charts/src/engine/overlay.js +89 -65
  55. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  56. package/dist/native/charts/src/engine/scene.cjs +1 -1
  57. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  58. package/dist/native/charts/src/engine/scene.js +32 -32
  59. package/dist/native/charts/src/engine/scene.js.map +1 -1
  60. package/dist/react/components/QuadrantTaskBoard/QuadrantTaskBoard.cjs +1 -1
  61. package/dist/react/components/QuadrantTaskBoard/QuadrantTaskBoard.cjs.map +1 -1
  62. package/dist/react/components/QuadrantTaskBoard/QuadrantTaskBoard.js +14 -8
  63. package/dist/react/components/QuadrantTaskBoard/QuadrantTaskBoard.js.map +1 -1
  64. package/dist/react/components/QuadrantTaskBoard/quadrantTaskBoard.module.scss.cjs +1 -1
  65. package/dist/react/components/QuadrantTaskBoard/quadrantTaskBoard.module.scss.cjs.map +1 -1
  66. package/dist/react/components/QuadrantTaskBoard/quadrantTaskBoard.module.scss.js +16 -15
  67. package/dist/react/components/QuadrantTaskBoard/quadrantTaskBoard.module.scss.js.map +1 -1
  68. package/dist/react/style.css +1 -1
  69. package/dist/react/styles/quadrant-task-board.css +1 -1
  70. package/dist/taro/index.js +1521 -1496
  71. package/dist/taro/style.css +22 -0
  72. package/dist/uni/manifest.d.ts +34 -34
  73. package/dist/uni/manifest.js +34 -39
  74. package/dist/uni/style.css +22 -0
  75. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +4 -3
  76. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -1
  77. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +186 -142
  78. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  79. package/dist/vue/components/Chart/cartesian.d.ts +5 -1
  80. package/dist/vue/components/Chart/cartesian.js +2 -0
  81. package/dist/vue/components/Chart/cartesian.js.map +1 -1
  82. package/dist/vue/components/QuadrantTaskBoard/QuadrantTaskBoard.vue.js.map +1 -1
  83. package/dist/vue/components/QuadrantTaskBoard/QuadrantTaskBoard.vue_vue_type_script_setup_true_lang.js +18 -12
  84. package/dist/vue/components/QuadrantTaskBoard/QuadrantTaskBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  85. package/dist/weapp/charts/canvas.js +48 -11
  86. package/dist/weapp/controls.wxss +22 -0
  87. package/dist/web-components/components/chart/chart.d.ts +4 -1
  88. package/dist/web-components/components/chart/chart.js +3 -1
  89. package/dist/web-components/components/chart/chart.js.map +1 -1
  90. package/dist/web-components/components/chart/charts.d.ts +34 -14
  91. package/dist/web-components/components/chart/charts.js +145 -98
  92. package/dist/web-components/components/chart/charts.js.map +1 -1
  93. package/dist/web-components/components/quadrant-task-board/quadrant-task-board.d.ts +8 -8
  94. package/dist/web-components/components/quadrant-task-board/quadrant-task-board.js +16 -12
  95. package/dist/web-components/components/quadrant-task-board/quadrant-task-board.js.map +1 -1
  96. package/dist/web-components/styles/QuadrantTaskBoard/quadrantTaskBoard.css.js +1 -1
  97. package/dist/web-components/styles/QuadrantTaskBoard/quadrantTaskBoard.css.js.map +1 -1
  98. 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
- * `quadrantHeader` and `pointActions` take templates placed over the plot
9548
- * (the headers of the quadrants, e.g. with an add button; actions next to
9549
- * the active dot, e.g. edit / delete buttons).
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
- * Content shown next to the active point (hovered, keyboard-focused or
9605
- * `selectedIndex`), outside the canvas hit region (e.g. edit / delete
9606
- * buttons); it receives pointer events. Context: `let-point`,
9607
- * `let-index="index"`
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 of the templates over the plot area (`null`: nothing to show) */
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 on the active task, an inline panel
11977
- * anchored inside the board at the button or the task to name a task and
11978
- * pick its quadrant, an inline confirmation before a delete (Escape or a
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 (its anchor in the chart), else the last press */
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;
@@ -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"),o=require("./engine/trading/indicators.cjs"),s=require("./engine/trading/chart.cjs"),c=require("./engine/orderbook/book.cjs"),l=require("./engine/orderbook/depth.cjs"),u=require("./engine/orderbook/heatmap.cjs"),d=require("./engine/orderbook/ladder.cjs"),f=require("./engine/orderbook/tape.cjs"),p=require("./engine/three-d/chart.cjs"),m=require("./engine/graph/force.cjs"),h=require("./engine/graph/circular.cjs"),g=require("./engine/graph/dag.cjs"),_=require("./engine/graph/tree.cjs"),v=require("./engine/graph/chart.cjs"),y=require("./engine/shapes/canvas.cjs"),b=require("./engine/controller.cjs"),x=require("./engine/canvas.cjs"),S=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 C=require("./engine/quadrant-layer.cjs"),w=require("./engine/quadrant-tasks.cjs");exports.QUADRANT_CORNERS=i.QUADRANT_CORNERS,exports.QUADRANT_TASK_ICONS=w.QUADRANT_TASK_ICONS,exports.applyQuadrantTaskDraft=w.applyQuadrantTaskDraft,exports.arcLayout=h.arcLayout,exports.areaSeries=r.areaSeries,exports.atr=o.atr,exports.barSeries=r.barSeries,exports.binValues=r.binValues,exports.bollinger=o.bollinger,exports.boxplotData=r.boxplotData,exports.boxplotSeries=r.boxplotSeries,exports.boxplotStats=r.boxplotStats,exports.bubbleSeries=r.bubbleSeries,exports.canSaveQuadrantTask=w.canSaveQuadrantTask,exports.candlestickSeries=r.candlestickSeries,exports.cci=o.cci,exports.circularLayout=h.circularLayout,exports.countCrossings=g.countCrossings,exports.createCanvasChart=x.createCanvasChart,exports.createCanvasShapeChart=y.createCanvasShapeChart,exports.createChart=n.createChart,exports.createChart3D=p.createChart3D,exports.createChartController=b.createChartController,exports.createDepthChart=l.createDepthChart,exports.createForceSimulation=m.createForceSimulation,exports.createGraphChart=v.createGraphChart,exports.createOrderBook=d.createOrderBook,exports.createOrderBookHeatmap=u.createOrderBookHeatmap,exports.createOrderBookStore=c.createOrderBookStore,exports.createQuadrantPointLayer=C.createQuadrantPointLayer,exports.createShapeChart=a.createShapeChart,exports.createTimeAndSales=f.createTimeAndSales,exports.createTradingChart=s.createTradingChart,exports.criticalPath=g.criticalPath,exports.dagLayout=g.dagLayout,exports.dmi=o.dmi,exports.donchian=o.donchian,exports.editQuadrantTaskDraft=w.editQuadrantTaskDraft,exports.ema=o.ema,exports.forceLayout=m.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=o.heikinAshi,exports.histogramSeries=r.histogramSeries,exports.ichimoku=o.ichimoku,exports.kdj=o.kdj,exports.keltner=o.keltner,exports.lineSeries=r.lineSeries,exports.macd=o.macd,exports.mfi=o.mfi,exports.moveQuadrantTask=w.moveQuadrantTask,exports.newQuadrantTaskDraft=w.newQuadrantTaskDraft,exports.obv=o.obv,exports.placeQuadrantTaskPanel=w.placeQuadrantTaskPanel,exports.psar=o.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=w.quadrantTaskColor,exports.quadrantTaskDeleteText=w.quadrantTaskDeleteText,exports.quadrantTaskIconUri=w.quadrantTaskIconUri,exports.quadrantTaskLabels=w.quadrantTaskLabels,exports.quantiles=r.quantiles,exports.rangeAreaSeries=r.rangeAreaSeries,exports.removeQuadrantTask=w.removeQuadrantTask,exports.resampleBars=o.resampleBars,exports.rsi=o.rsi,exports.scatterSeries=r.scatterSeries,exports.scenePrimitives=b.scenePrimitives,exports.selectionAfterRemove=w.selectionAfterRemove,exports.setDefaultChartRenderer=t.setDefaultChartRenderer,exports.sma=o.sma,exports.sparklineOptions=r.sparklineOptions,exports.stochRsi=o.stochRsi,exports.subscribeDefaultChartRenderer=t.subscribeDefaultChartRenderer,exports.supertrend=o.supertrend,exports.syncCharts=S.syncCharts,exports.treeLayout=_.treeLayout,exports.volumeProfile=o.volumeProfile,exports.vwap=o.vwap,exports.waterfallSeries=r.waterfallSeries,exports.williamsR=o.williamsR,exports.withSeriesType=r.withSeriesType,exports.wma=o.wma;
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;
@@ -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';
@@ -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';
@@ -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 { createShapeChart as P } from "./engine/shapes/chart.js";
7
- import { atr as F, bollinger as I, cci as L, dmi as R, donchian as z, ema as B, heikinAshi as V, ichimoku as H, kdj as U, keltner as W, macd as G, mfi as K, obv as q, psar as J, resampleBars as Y, rsi as X, sma as Z, stochRsi as Q, supertrend as $, volumeProfile as ee, vwap as te, williamsR as ne, wma as re } from "./engine/trading/indicators.js";
8
- import { createTradingChart as ie } from "./engine/trading/chart.js";
9
- import { createOrderBookStore as ae } from "./engine/orderbook/book.js";
10
- import { createDepthChart as oe } from "./engine/orderbook/depth.js";
11
- import { createOrderBookHeatmap as se } from "./engine/orderbook/heatmap.js";
12
- import { createOrderBook as ce } from "./engine/orderbook/ladder.js";
13
- import { createTimeAndSales as le } from "./engine/orderbook/tape.js";
14
- import { createChart3D as ue } from "./engine/three-d/chart.js";
15
- import { createForceSimulation as de, forceLayout as fe } from "./engine/graph/force.js";
16
- import { arcLayout as pe, circularLayout as me } from "./engine/graph/circular.js";
17
- import { countCrossings as he, criticalPath as ge, dagLayout as _e } from "./engine/graph/dag.js";
18
- import { treeLayout as ve } from "./engine/graph/tree.js";
19
- import { createGraphChart as ye } from "./engine/graph/chart.js";
20
- import { createCanvasShapeChart as be } from "./engine/shapes/canvas.js";
21
- import { createChartController as xe, scenePrimitives as Se } from "./engine/controller.js";
22
- import { createCanvasChart as Ce } from "./engine/canvas.js";
23
- import { syncCharts as we } from "./engine/trading/sync.js";
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 Te } from "./engine/quadrant-layer.js";
29
- import { QUADRANT_TASK_ICONS as Ee, applyQuadrantTaskDraft as De, canSaveQuadrantTask as Oe, editQuadrantTaskDraft as ke, moveQuadrantTask as Ae, newQuadrantTaskDraft as je, placeQuadrantTaskPanel as Me, quadrantTaskColor as Ne, quadrantTaskDeleteText as Pe, quadrantTaskIconUri as Fe, quadrantTaskLabels as Ie, removeQuadrantTask as Le, selectionAfterRemove as Re } from "./engine/quadrant-tasks.js";
30
- export { j as QUADRANT_CORNERS, Ee as QUADRANT_TASK_ICONS, De as applyQuadrantTaskDraft, pe as arcLayout, s as areaSeries, F as atr, c as barSeries, l as binValues, I as bollinger, u as boxplotData, d as boxplotSeries, f as boxplotStats, p as bubbleSeries, Oe as canSaveQuadrantTask, m as candlestickSeries, L as cci, me as circularLayout, he as countCrossings, Ce as createCanvasChart, be as createCanvasShapeChart, o as createChart, ue as createChart3D, xe as createChartController, oe as createDepthChart, de as createForceSimulation, ye as createGraphChart, ce as createOrderBook, se as createOrderBookHeatmap, ae as createOrderBookStore, Te as createQuadrantPointLayer, P as createShapeChart, le as createTimeAndSales, ie as createTradingChart, ge as criticalPath, _e as dagLayout, R as dmi, z as donchian, ke as editQuadrantTaskDraft, B as ema, fe as forceLayout, e as formatCompact, t as formatDuration, n as formatValue, h as ganttSeries, r as getDefaultChartRenderer, g as heatmapChartOptions, V as heikinAshi, _ as histogramSeries, H as ichimoku, U as kdj, W as keltner, v as lineSeries, G as macd, K as mfi, Ae as moveQuadrantTask, je as newQuadrantTaskDraft, q as obv, Me as placeQuadrantTaskPanel, J 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, Ne as quadrantTaskColor, Pe as quadrantTaskDeleteText, Fe as quadrantTaskIconUri, Ie as quadrantTaskLabels, T as quantiles, E as rangeAreaSeries, Le as removeQuadrantTask, Y as resampleBars, X as rsi, D as scatterSeries, Se as scenePrimitives, Re as selectionAfterRemove, i as setDefaultChartRenderer, Z as sma, O as sparklineOptions, Q as stochRsi, a as subscribeDefaultChartRenderer, $ as supertrend, we as syncCharts, ve as treeLayout, ee as volumeProfile, te as vwap, k as waterfallSeries, ne as williamsR, A as withSeriesType, re as wma };
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