apexcharts 8.2.0 → 8.3.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 (222) hide show
  1. package/README.md +7 -7
  2. package/dist/apexcharts.common.js +2 -2
  3. package/dist/apexcharts.core.js +271 -173
  4. package/dist/apexcharts.core.min.js +2 -2
  5. package/dist/apexcharts.css +35 -0
  6. package/dist/apexcharts.esm.js +1722 -1527
  7. package/dist/apexcharts.full.js +1459 -1075
  8. package/dist/apexcharts.full.min.js +2 -2
  9. package/dist/apexcharts.js +994 -715
  10. package/dist/apexcharts.min.js +2 -2
  11. package/dist/apexcharts.ssr.common.js +2 -2
  12. package/dist/apexcharts.ssr.esm.js +994 -715
  13. package/dist/area.common.js +2 -2
  14. package/dist/area.esm.js +91 -40
  15. package/dist/bar.common.js +2 -2
  16. package/dist/bar.esm.js +433 -394
  17. package/dist/bar.js +2 -2
  18. package/dist/boxPlot.common.js +2 -2
  19. package/dist/boxPlot.esm.js +364 -322
  20. package/dist/bubble.common.js +2 -2
  21. package/dist/bubble.esm.js +91 -40
  22. package/dist/candlestick.common.js +2 -2
  23. package/dist/candlestick.esm.js +364 -322
  24. package/dist/candlestick.js +2 -2
  25. package/dist/column.common.js +2 -2
  26. package/dist/column.esm.js +433 -394
  27. package/dist/core.common.js +2 -2
  28. package/dist/core.esm.js +271 -173
  29. package/dist/donut.common.js +1 -1
  30. package/dist/donut.esm.js +1 -1
  31. package/dist/dumbbell.common.js +2 -2
  32. package/dist/dumbbell.esm.js +433 -394
  33. package/dist/features/all.common.js +2 -2
  34. package/dist/features/all.esm.js +250 -187
  35. package/dist/features/annotations.common.js +1 -1
  36. package/dist/features/annotations.esm.js +1 -1
  37. package/dist/features/annotations.js +1 -1
  38. package/dist/features/context-menu.common.js +1 -1
  39. package/dist/features/context-menu.esm.js +1 -1
  40. package/dist/features/context-menu.js +1 -1
  41. package/dist/features/drilldown.common.js +2 -2
  42. package/dist/features/drilldown.esm.js +4 -2
  43. package/dist/features/drilldown.js +2 -2
  44. package/dist/features/dumbbell.common.js +1 -1
  45. package/dist/features/dumbbell.esm.js +1 -1
  46. package/dist/features/dumbbell.js +1 -1
  47. package/dist/features/exports.common.js +1 -1
  48. package/dist/features/exports.esm.js +1 -1
  49. package/dist/features/exports.js +1 -1
  50. package/dist/features/facet.common.js +1 -1
  51. package/dist/features/facet.esm.js +1 -1
  52. package/dist/features/facet.js +1 -1
  53. package/dist/features/highlight-filter.common.js +2 -2
  54. package/dist/features/highlight-filter.esm.js +14 -9
  55. package/dist/features/highlight-filter.js +2 -2
  56. package/dist/features/history.common.js +1 -1
  57. package/dist/features/history.esm.js +1 -1
  58. package/dist/features/history.js +1 -1
  59. package/dist/features/ink.common.js +1 -1
  60. package/dist/features/ink.esm.js +1 -1
  61. package/dist/features/ink.js +1 -1
  62. package/dist/features/keyboard.common.js +2 -2
  63. package/dist/features/keyboard.esm.js +97 -145
  64. package/dist/features/keyboard.js +2 -2
  65. package/dist/features/legend.common.js +2 -2
  66. package/dist/features/legend.esm.js +63 -43
  67. package/dist/features/legend.js +2 -2
  68. package/dist/features/link.common.js +1 -1
  69. package/dist/features/link.esm.js +1 -1
  70. package/dist/features/link.js +1 -1
  71. package/dist/features/marks.common.js +1 -1
  72. package/dist/features/marks.esm.js +1 -1
  73. package/dist/features/marks.js +1 -1
  74. package/dist/features/measure.common.js +1 -1
  75. package/dist/features/measure.esm.js +1 -1
  76. package/dist/features/measure.js +1 -1
  77. package/dist/features/morph.common.js +1 -1
  78. package/dist/features/morph.esm.js +1 -1
  79. package/dist/features/morph.js +1 -1
  80. package/dist/features/perspectives.common.js +1 -1
  81. package/dist/features/perspectives.esm.js +1 -1
  82. package/dist/features/perspectives.js +1 -1
  83. package/dist/features/raincloud.common.js +1 -1
  84. package/dist/features/raincloud.esm.js +1 -1
  85. package/dist/features/raincloud.js +1 -1
  86. package/dist/features/renderer-canvas.common.js +2 -2
  87. package/dist/features/renderer-canvas.esm.js +2 -1
  88. package/dist/features/renderer-canvas.js +2 -2
  89. package/dist/features/stats.common.js +1 -1
  90. package/dist/features/stats.esm.js +1 -1
  91. package/dist/features/stats.js +1 -1
  92. package/dist/features/storyboard.common.js +1 -1
  93. package/dist/features/storyboard.esm.js +1 -1
  94. package/dist/features/storyboard.js +1 -1
  95. package/dist/features/streamgraph.common.js +2 -2
  96. package/dist/features/streamgraph.esm.js +3 -2
  97. package/dist/features/streamgraph.js +2 -2
  98. package/dist/features/toolbar.common.js +2 -2
  99. package/dist/features/toolbar.esm.js +92 -2
  100. package/dist/features/toolbar.js +2 -2
  101. package/dist/features/trellis.common.js +2 -2
  102. package/dist/features/trellis.esm.js +83 -47
  103. package/dist/features/trellis.js +2 -2
  104. package/dist/features/waterfall.common.js +1 -1
  105. package/dist/features/waterfall.esm.js +1 -1
  106. package/dist/features/waterfall.js +1 -1
  107. package/dist/features/weave.common.js +1 -1
  108. package/dist/features/weave.esm.js +1 -1
  109. package/dist/features/weave.js +1 -1
  110. package/dist/full.common.js +2 -2
  111. package/dist/full.esm.js +950 -795
  112. package/dist/heatmap.common.js +2 -2
  113. package/dist/heatmap.esm.js +3 -17
  114. package/dist/heatmap.js +2 -2
  115. package/dist/histogram.common.js +2 -2
  116. package/dist/histogram.esm.js +433 -394
  117. package/dist/icicle.common.js +2 -2
  118. package/dist/icicle.esm.js +54 -38
  119. package/dist/icicle.js +2 -2
  120. package/dist/line.common.js +2 -2
  121. package/dist/line.esm.js +91 -40
  122. package/dist/line.js +2 -2
  123. package/dist/locales/en.json +2 -1
  124. package/dist/locales/ro.json +3 -2
  125. package/dist/pictograms.common.js +1 -1
  126. package/dist/pictograms.esm.js +1 -1
  127. package/dist/pictograms.js +1 -1
  128. package/dist/pie.common.js +1 -1
  129. package/dist/pie.esm.js +1 -1
  130. package/dist/pie.js +1 -1
  131. package/dist/polarArea.common.js +1 -1
  132. package/dist/polarArea.esm.js +1 -1
  133. package/dist/radar.common.js +2 -2
  134. package/dist/radar.esm.js +5 -4
  135. package/dist/radar.js +2 -2
  136. package/dist/radialBar.common.js +1 -1
  137. package/dist/radialBar.esm.js +1 -1
  138. package/dist/radialBar.js +1 -1
  139. package/dist/raincloud.common.js +2 -2
  140. package/dist/raincloud.esm.js +72 -26
  141. package/dist/rangeArea.common.js +2 -2
  142. package/dist/rangeArea.esm.js +91 -40
  143. package/dist/rangeBar.common.js +2 -2
  144. package/dist/rangeBar.esm.js +433 -394
  145. package/dist/scatter.common.js +2 -2
  146. package/dist/scatter.esm.js +91 -40
  147. package/dist/streamgraph.common.js +2 -2
  148. package/dist/streamgraph.esm.js +93 -41
  149. package/dist/sunburst.common.js +2 -2
  150. package/dist/sunburst.esm.js +103 -93
  151. package/dist/sunburst.js +2 -2
  152. package/dist/treemap.common.js +2 -2
  153. package/dist/treemap.esm.js +105 -86
  154. package/dist/treemap.js +2 -2
  155. package/dist/unit-shapes.common.js +1 -1
  156. package/dist/unit-shapes.esm.js +1 -1
  157. package/dist/unit-shapes.js +1 -1
  158. package/dist/unit.common.js +2 -2
  159. package/dist/unit.esm.js +280 -202
  160. package/dist/unit.js +2 -2
  161. package/dist/violin.common.js +2 -2
  162. package/dist/violin.esm.js +72 -26
  163. package/dist/violin.js +2 -2
  164. package/dist/waterfall.common.js +2 -2
  165. package/dist/waterfall.esm.js +432 -393
  166. package/package.json +1 -1
  167. package/src/apexcharts.js +13 -6
  168. package/src/assets/apexcharts.css +35 -0
  169. package/src/charts/Bar.js +62 -55
  170. package/src/charts/BarStacked.js +80 -88
  171. package/src/charts/BoxCandleStick.js +28 -31
  172. package/src/charts/Icicle.js +37 -37
  173. package/src/charts/Line.js +118 -42
  174. package/src/charts/Radar.js +5 -7
  175. package/src/charts/RangeBar.js +47 -43
  176. package/src/charts/Sunburst.js +101 -98
  177. package/src/charts/Treemap.js +108 -66
  178. package/src/charts/Unit.js +368 -250
  179. package/src/charts/Violin.js +48 -30
  180. package/src/charts/common/Breadcrumb.js +2 -2
  181. package/src/charts/common/Hierarchy.js +32 -11
  182. package/src/charts/common/Jitter.js +32 -7
  183. package/src/charts/common/bar/DataLabels.js +76 -81
  184. package/src/charts/common/bar/Helpers.js +43 -7
  185. package/src/charts/common/line/Helpers.js +12 -15
  186. package/src/charts/common/partition/NodeTooltip.js +8 -1
  187. package/src/charts/common/partition/Partition.js +33 -1
  188. package/src/charts/common/treemap/Helpers.js +3 -11
  189. package/src/locales/en.json +2 -1
  190. package/src/locales/ro.json +3 -2
  191. package/src/modules/Core.js +4 -0
  192. package/src/modules/CoreUtils.js +18 -42
  193. package/src/modules/Data.js +23 -24
  194. package/src/modules/DataLabels.js +6 -6
  195. package/src/modules/Graphics.js +62 -49
  196. package/src/modules/Markers.js +3 -1
  197. package/src/modules/Range.js +44 -29
  198. package/src/modules/RendererController.js +17 -3
  199. package/src/modules/Scales.js +32 -9
  200. package/src/modules/Series.js +39 -18
  201. package/src/modules/Theme.js +1 -1
  202. package/src/modules/ZoomPanSelection.js +119 -2
  203. package/src/modules/accessibility/KeyboardNavigation.js +114 -186
  204. package/src/modules/animations/LengthTransition.js +22 -2
  205. package/src/modules/drilldown/Breadcrumb.js +5 -2
  206. package/src/modules/helpers/Destroy.js +1 -1
  207. package/src/modules/highlightFilter/HighlightFilter.js +8 -9
  208. package/src/modules/highlightFilter/TreemapPart.js +2 -2
  209. package/src/modules/legend/HeatmapGradientLegend.js +76 -45
  210. package/src/modules/legend/Helpers.js +2 -0
  211. package/src/modules/legend/Legend.js +11 -12
  212. package/src/modules/settings/Options.js +7 -0
  213. package/src/modules/streamgraph/StreamLabels.js +1 -0
  214. package/src/modules/tooltip/Tooltip.js +20 -4
  215. package/src/modules/tooltip/Utils.js +8 -0
  216. package/src/modules/trellis/Trellis.js +6 -0
  217. package/src/modules/trellis/TrellisChrome.js +18 -7
  218. package/src/modules/trellis/TrellisSync.js +2 -0
  219. package/src/renderers/canvas/CanvasGraphics.js +1 -0
  220. package/src/ssr/DOMShim.js +10 -0
  221. package/src/types/internal.d.ts +9 -3
  222. package/types/apexcharts.d.ts +31 -12
@@ -7,6 +7,7 @@ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
7
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
9
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __pow = Math.pow;
10
11
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
12
  var __spreadValues = (a, b) => {
12
13
  for (var prop in b || (b = {}))
@@ -54,7 +55,7 @@ var __async = (__this, __arguments, generator) => {
54
55
  });
55
56
  };
56
57
  /*!
57
- * ApexCharts v8.2.0
58
+ * ApexCharts v8.3.0
58
59
  * (c) 2018-2026 ApexCharts
59
60
  */
60
61
 
@@ -128,6 +129,15 @@ var __async = (__this, __arguments, generator) => {
128
129
  setAttribute(name2, value) {
129
130
  this.attributes.set(name2, value);
130
131
  }
132
+ /**
133
+ * Namespaced attributes serialize by their qualified name.
134
+ * @param {any} _ns
135
+ * @param {string} name
136
+ * @param {any} value
137
+ */
138
+ setAttributeNS(_ns, name2, value) {
139
+ this.setAttribute(name2, value);
140
+ }
131
141
  /**
132
142
  * @param {string} name
133
143
  */
@@ -1925,7 +1935,7 @@ var __async = (__this, __arguments, generator) => {
1925
1935
  }
1926
1936
  }
1927
1937
  const name = "en";
1928
- const options = { "months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], "shortMonths": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], "shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "toolbar": { "exportToSVG": "Download SVG", "exportToPNG": "Download PNG", "exportToCSV": "Download CSV", "menu": "Menu", "selection": "Selection", "selectionZoom": "Selection Zoom", "zoomIn": "Zoom In", "zoomOut": "Zoom Out", "pan": "Panning", "reset": "Reset Zoom", "measure": "Measure" } };
1938
+ const options = { "months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], "shortMonths": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], "shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "toolbar": { "exportToSVG": "Download SVG", "exportToPNG": "Download PNG", "exportToCSV": "Download CSV", "menu": "Menu", "selection": "Selection", "selectionZoom": "Selection Zoom", "zoomIn": "Zoom In", "zoomOut": "Zoom Out", "pan": "Panning", "reset": "Reset Zoom", "measure": "Measure", "wheelZoomHint": "Use {key} + scroll to zoom" } };
1929
1939
  const en = {
1930
1940
  name,
1931
1941
  options
@@ -2735,7 +2745,14 @@ var __async = (__this, __arguments, generator) => {
2735
2745
  // asked for and nobody can undo is a trap. Set either to true to
2736
2746
  // force the gesture on regardless (for a page that supplies its own
2737
2747
  // reset control), or false to turn it off outright.
2748
+ //
2749
+ // The 'auto' wheel is also cooperative: a bare wheel scrolls the
2750
+ // page, and Ctrl/Cmd + wheel (or a trackpad pinch) zooms, so a page
2751
+ // of charts scrolls past them. `true` zooms on every wheel.
2738
2752
  allowMouseWheelZoom: "auto",
2753
+ // With the cooperative wheel, a bare scroll over the chart briefly
2754
+ // shows how to zoom it ("Use Ctrl + scroll to zoom").
2755
+ wheelHint: true,
2739
2756
  // Momentum: two-finger pinch-zoom on touch devices. Zooms the x-axis
2740
2757
  // around the pinch centroid (matching the x-only wheel/toolbar zoom),
2741
2758
  // frame-by-frame rather than the 400ms wheel throttle.
@@ -9073,21 +9090,6 @@ var __async = (__this, __arguments, generator) => {
9073
9090
  });
9074
9091
  gl.seriesYAxisMap = axisSeriesMap.map((x) => x);
9075
9092
  gl.seriesYAxisReverseMap = seriesYAxisReverseMap.map((x) => x);
9076
- gl.seriesYAxisMap.forEach((axisSeries, ai) => {
9077
- axisSeries.forEach((si) => {
9078
- if (
9079
- /** @type {any} */
9080
- cnf.series[si] && /** @type {any} */
9081
- cnf.series[si].group === void 0
9082
- ) {
9083
- const _series = (
9084
- /** @type {any} */
9085
- cnf.series[si]
9086
- );
9087
- _series.group = "apexcharts-axis-".concat(ai.toString());
9088
- }
9089
- });
9090
- });
9091
9093
  }
9092
9094
  /**
9093
9095
  * @param {number | null} [index]
@@ -9221,12 +9223,15 @@ var __async = (__this, __arguments, generator) => {
9221
9223
  (s2, i2) => isBarSeries(s2) ? -1 : i2
9222
9224
  ).filter((i2) => i2 !== -1) : [];
9223
9225
  const stackedTotals = excluded.length ? this.getStackedSeriesTotals(excluded) : w.seriesData.stackedSeriesTotals;
9224
- const sx = w.axisFlags.isXNumeric && !w.config.plotOptions.bar.horizontal && w.seriesData.seriesX;
9226
+ const sx = w.axisFlags.isXNumeric && w.seriesData.seriesX;
9227
+ const gi = w.labelData.seriesGroupIndex;
9228
+ const byKey = sx || w.labelData.seriesGroups.length > 1;
9229
+ const key = (i2, j2) => gi[i2] + " " + (sx ? sx[i2][j2] : j2);
9225
9230
  const byX = /* @__PURE__ */ new Map();
9226
- if (sx) {
9231
+ if (byKey) {
9227
9232
  w.seriesData.series.forEach((s2, i2) => {
9228
9233
  if (excluded.indexOf(i2) < 0) {
9229
- s2.forEach((v, j2) => byX.set(sx[i2][j2], (byX.get(sx[i2][j2]) || 0) + v));
9234
+ s2.forEach((v, j2) => byX.set(key(i2, j2), (byX.get(key(i2, j2)) || 0) + v));
9230
9235
  }
9231
9236
  });
9232
9237
  }
@@ -9234,7 +9239,7 @@ var __async = (__this, __arguments, generator) => {
9234
9239
  const seriesPercent = [];
9235
9240
  if (Array.isArray(ser)) {
9236
9241
  for (let j2 = 0; j2 < ser.length; j2++) {
9237
- const total = sx ? byX.get(sx[i2][j2]) : stackedTotals[j2];
9242
+ const total = byKey ? byX.get(key(i2, j2)) : stackedTotals[j2];
9238
9243
  let percent = 0;
9239
9244
  if (total) {
9240
9245
  percent = 100 * ser[j2] / total;
@@ -9281,13 +9286,11 @@ var __async = (__this, __arguments, generator) => {
9281
9286
  if (!zRatio) {
9282
9287
  zRatio = 1;
9283
9288
  }
9284
- if (gl.minY !== Number.MIN_VALUE && Math.abs(gl.minY) !== 0) {
9285
- const _hasNegsGl = (
9286
- /** @type {any} */
9287
- gl
9288
- );
9289
- _hasNegsGl.hasNegs = true;
9290
- }
9289
+ const _hasNegsGl = (
9290
+ /** @type {any} */
9291
+ gl
9292
+ );
9293
+ _hasNegsGl.hasNegs = gl.minY !== Number.MIN_VALUE && Math.abs(gl.minY) !== 0;
9291
9294
  if (w.globals.seriesYAxisReverseMap.length > 0) {
9292
9295
  const scaleBaseLineYScale = (y, i2) => {
9293
9296
  const yAxis = w.config.yaxis[w.globals.seriesYAxisReverseMap[i2]];
@@ -9444,7 +9447,7 @@ var __async = (__this, __arguments, generator) => {
9444
9447
  // other series of the same type on the same axis.
9445
9448
  /**
9446
9449
  * @param {Record<string, any>} typeSeries
9447
- * @param {string[]} typeGroups
9450
+ * @param {number[]} typeGroups
9448
9451
  * @param {string} type
9449
9452
  * @param {string} chartClass
9450
9453
  */
@@ -9456,10 +9459,7 @@ var __async = (__this, __arguments, generator) => {
9456
9459
  const gs = [];
9457
9460
  const gi = [];
9458
9461
  typeSeries.i.forEach((i2, ii) => {
9459
- if (
9460
- /** @type {Record<string,any>} */
9461
- w.config.series[i2].group === gn
9462
- ) {
9462
+ if (w.labelData.seriesGroupIndex[i2] === gn) {
9463
9463
  gs.push(typeSeries.series[ii]);
9464
9464
  gi.push(i2);
9465
9465
  }
@@ -11502,6 +11502,22 @@ var __async = (__this, __arguments, generator) => {
11502
11502
  ].join(" ");
11503
11503
  return arc;
11504
11504
  }
11505
+ /**
11506
+ * stroke.dashArray of a series, shared with the canvas renderer. A plugin
11507
+ * may have claimed it: resolved here rather than written into the config,
11508
+ * so the caller's own dashing is untouched and there is nothing to restore
11509
+ * when the claim goes. See weave/Claims.
11510
+ * @param {number} realIndex
11511
+ */
11512
+ seriesDash(realIndex) {
11513
+ const d = this.w.config.stroke.dashArray;
11514
+ return resolveClaimed(
11515
+ this.w,
11516
+ "stroke.dashArray",
11517
+ realIndex,
11518
+ Array.isArray(d) ? d[realIndex] : d
11519
+ );
11520
+ }
11505
11521
  /**
11506
11522
  * @memberof Graphics
11507
11523
  * @param {Record<string, any>} opts
@@ -11574,19 +11590,6 @@ var __async = (__this, __arguments, generator) => {
11574
11590
  w.globals.animationEnded = true;
11575
11591
  }
11576
11592
  }
11577
- const strokeDashArrayOpt = w.config.stroke.dashArray;
11578
- let strokeDashArray = 0;
11579
- if (Array.isArray(strokeDashArrayOpt)) {
11580
- strokeDashArray = strokeDashArrayOpt[realIndex];
11581
- } else {
11582
- strokeDashArray = w.config.stroke.dashArray;
11583
- }
11584
- strokeDashArray = resolveClaimed(
11585
- w,
11586
- "stroke.dashArray",
11587
- realIndex,
11588
- strokeDashArray
11589
- );
11590
11593
  const el = this.drawPath({
11591
11594
  d,
11592
11595
  stroke,
@@ -11595,7 +11598,7 @@ var __async = (__this, __arguments, generator) => {
11595
11598
  fillOpacity: 1,
11596
11599
  classes: className,
11597
11600
  strokeLinecap,
11598
- strokeDashArray
11601
+ strokeDashArray: this.seriesDash(realIndex)
11599
11602
  });
11600
11603
  el.attr("index", realIndex);
11601
11604
  if (shouldClipToGrid) {
@@ -11788,13 +11791,19 @@ var __async = (__this, __arguments, generator) => {
11788
11791
  }
11789
11792
  return g;
11790
11793
  }
11791
- /** @param {{ text: any, maxWidth: any, fontSize: any, fontFamily?: any }} opts */
11792
- getTextBasedOnMaxWidth({ text, maxWidth, fontSize, fontFamily }) {
11793
- const tRects = this.getTextRects(text, fontSize, fontFamily, "");
11794
- const wordWidth = tRects.width / text.length;
11795
- const wordsBasedOnWidth = Math.floor(maxWidth / wordWidth);
11794
+ /** @param {{ text: any, maxWidth: any, fontSize: any, fontFamily?: any, fontWeight?: any }} opts */
11795
+ getTextBasedOnMaxWidth({ text, maxWidth, fontSize, fontFamily, fontWeight }) {
11796
+ const tRects = this.getTextRects(
11797
+ text,
11798
+ fontSize,
11799
+ fontFamily,
11800
+ "",
11801
+ true,
11802
+ fontWeight
11803
+ );
11804
+ const n2 = Math.floor(maxWidth / (tRects.width / text.length)) - 3;
11796
11805
  if (maxWidth < tRects.width) {
11797
- return text.slice(0, wordsBasedOnWidth - 3) + "...";
11806
+ return n2 < 0 ? "" : text.slice(0, n2) + "...";
11798
11807
  }
11799
11808
  return text;
11800
11809
  }
@@ -11831,7 +11840,8 @@ var __async = (__this, __arguments, generator) => {
11831
11840
  const commonProps = {
11832
11841
  maxWidth,
11833
11842
  fontSize,
11834
- fontFamily
11843
+ fontFamily,
11844
+ fontWeight
11835
11845
  };
11836
11846
  let elText;
11837
11847
  if (Array.isArray(text)) {
@@ -12032,7 +12042,12 @@ var __async = (__this, __arguments, generator) => {
12032
12042
  if (w.config.states.hover.filter.type !== "none") {
12033
12043
  if (!w.interact.isTouchDevice) {
12034
12044
  const hoverFilter = w.config.states.hover.filter;
12035
- filters.applyFilter(path, i2, hoverFilter.type, hoverFilter.value);
12045
+ filters.applyFilter(
12046
+ path,
12047
+ Filters.isSliceChart(w) ? j2 : i2,
12048
+ hoverFilter.type,
12049
+ hoverFilter.value
12050
+ );
12036
12051
  }
12037
12052
  }
12038
12053
  }
@@ -12066,33 +12081,28 @@ var __async = (__this, __arguments, generator) => {
12066
12081
  }
12067
12082
  if (Filters.hoverOutlineOwnsHoverState(w)) return;
12068
12083
  if (w.config.states.hover.filter.type !== "none") {
12069
- filters.getDefaultFilter(path, i2);
12084
+ filters.getDefaultFilter(path, Filters.isSliceChart(w) ? j2 : i2);
12070
12085
  }
12071
12086
  }
12072
12087
  /**
12073
12088
  * Clear every selected data point (single-select mode): reset the selection
12074
- * array and restore the default filter on all series path/circle/rect nodes.
12075
- * NOTE: preserves the original behavior of passing the clicked series index
12076
- * `i` to getDefaultFilter for every element (not each element's own index).
12077
- * @param {any} filters @param {number} i
12089
+ * array and restore the default filter on each selected node, with its own
12090
+ * series index (dropShadow.enabledOnSeries is per series; a pie slice's
12091
+ * shadow is per slice, j).
12092
+ * @param {any} filters
12078
12093
  */
12079
- _clearAllDataPointSelections(filters, i2) {
12094
+ _clearAllDataPointSelections(filters) {
12080
12095
  const w = this.w;
12081
12096
  w.interact.selectedDataPoints = [];
12082
- const elPaths = w.dom.Paper.find(
12083
- ".apexcharts-series path:not(.apexcharts-decoration-element)"
12084
- );
12085
- const elCircles = w.dom.Paper.find(
12086
- ".apexcharts-series circle:not(.apexcharts-decoration-element), .apexcharts-series rect:not(.apexcharts-decoration-element)"
12087
- );
12088
- const deSelect = (els) => {
12089
- Array.prototype.forEach.call(els, (el) => {
12097
+ w.dom.Paper.find('.apexcharts-series [selected="true"]').forEach(
12098
+ (el) => {
12090
12099
  el.node.setAttribute("selected", "false");
12091
- filters.getDefaultFilter(el, i2);
12092
- });
12093
- };
12094
- deSelect(elPaths);
12095
- deSelect(elCircles);
12100
+ filters.getDefaultFilter(
12101
+ el,
12102
+ +el.node.getAttribute(Filters.isSliceChart(w) ? "j" : "index")
12103
+ );
12104
+ }
12105
+ );
12096
12106
  }
12097
12107
  /**
12098
12108
  * Toggle the selected state of a single data point. Mutates
@@ -12112,7 +12122,7 @@ var __async = (__this, __arguments, generator) => {
12112
12122
  return "false";
12113
12123
  }
12114
12124
  if (!w.config.states.active.allowMultipleDataPointsSelection && w.interact.selectedDataPoints.length > 0) {
12115
- this._clearAllDataPointSelections(filters, i2);
12125
+ this._clearAllDataPointSelections(filters);
12116
12126
  }
12117
12127
  path.node.setAttribute("selected", "true");
12118
12128
  if (typeof w.interact.selectedDataPoints[i2] === "undefined") {
@@ -12132,10 +12142,10 @@ var __async = (__this, __arguments, generator) => {
12132
12142
  if (Filters.sliceOffsetOwnsActiveState(w)) return;
12133
12143
  if (selected === "true") {
12134
12144
  const activeFilter = w.config.states.active.filter;
12135
- if (activeFilter !== "none") {
12145
+ if (activeFilter.type !== "none") {
12136
12146
  filters.applyFilter(path, i2, activeFilter.type, activeFilter.value);
12137
12147
  } else {
12138
- if (w.config.states.hover.filter !== "none") {
12148
+ if (w.config.states.hover.filter.type !== "none") {
12139
12149
  if (!w.interact.isTouchDevice) {
12140
12150
  const hoverFilter = w.config.states.hover.filter;
12141
12151
  filters.applyFilter(path, i2, hoverFilter.type, hoverFilter.value);
@@ -12168,7 +12178,12 @@ var __async = (__this, __arguments, generator) => {
12168
12178
  const crossfilterClick = !!(link && (typeof link.dimension === "function" || link.enabled));
12169
12179
  if (!crossfilterClick) {
12170
12180
  const selected = this._togglePointSelection(path, filters, i2, j2);
12171
- this._applyPointSelectionFilter(path, filters, i2, selected);
12181
+ this._applyPointSelectionFilter(
12182
+ path,
12183
+ filters,
12184
+ Filters.isSliceChart(w) ? j2 : i2,
12185
+ selected
12186
+ );
12172
12187
  }
12173
12188
  if (typeof w.config.chart.events.dataPointSelection === "function") {
12174
12189
  w.config.chart.events.dataPointSelection(e2, this.ctx, {
@@ -12956,7 +12971,7 @@ var __async = (__this, __arguments, generator) => {
12956
12971
  }
12957
12972
  setGlobalMarkerSize() {
12958
12973
  const w = this.w;
12959
- w.globals.markers.size = Array.isArray(w.config.markers.size) ? w.config.markers.size : [w.config.markers.size];
12974
+ w.globals.markers.size = Array.isArray(w.config.markers.size) ? w.config.markers.size.slice() : [w.config.markers.size];
12960
12975
  if (w.globals.markers.size.length > 0) {
12961
12976
  if (w.globals.markers.size.length < w.seriesData.series.length + 1) {
12962
12977
  for (let i2 = 0; i2 <= w.seriesData.series.length; i2++) {
@@ -13666,6 +13681,7 @@ var __async = (__this, __arguments, generator) => {
13666
13681
  * @param {string} fontSize
13667
13682
  */
13668
13683
  dataLabelsCorrection(x, y, val, i2, dataPointIndex, alwaysDrawDataLabel, fontSize) {
13684
+ var _a;
13669
13685
  const w = this.w;
13670
13686
  const graphics = new Graphics(this.w);
13671
13687
  let drawnextLabel = false;
@@ -13708,6 +13724,9 @@ var __async = (__this, __arguments, generator) => {
13708
13724
  if (dataPointIndex === 0 || alwaysDrawDataLabel) {
13709
13725
  drawnextLabel = true;
13710
13726
  }
13727
+ if (drawnextLabel) {
13728
+ ((_a = w.globals.lastDrawnDataLabelsIndexes)[i2] || (_a[i2] = [])).push(len + 1);
13729
+ }
13711
13730
  return {
13712
13731
  x,
13713
13732
  y,
@@ -13953,10 +13972,6 @@ var __async = (__this, __arguments, generator) => {
13953
13972
  }
13954
13973
  parent.add(dataLabelText);
13955
13974
  if (penDrawn(w, i2)) applyProgressiveReveal(dataLabelText, x, w);
13956
- if (typeof w.globals.lastDrawnDataLabelsIndexes[i2] === "undefined") {
13957
- w.globals.lastDrawnDataLabelsIndexes[i2] = [];
13958
- }
13959
- w.globals.lastDrawnDataLabelsIndexes[i2].push(j2);
13960
13975
  }
13961
13976
  return dataLabelText;
13962
13977
  }
@@ -15920,6 +15935,13 @@ var __async = (__this, __arguments, generator) => {
15920
15935
  if (typeof gl.yAxisScale[index] === "undefined") {
15921
15936
  gl.yAxisScale[index] = [];
15922
15937
  }
15938
+ if (y.logarithmic && minY <= Number.MIN_VALUE) {
15939
+ const s2 = this.w.seriesData.series;
15940
+ const map = gl.isMultipleYAxis && gl.seriesYAxisMap[index];
15941
+ const b = y.logBase || 10;
15942
+ const m = (map ? map.map((i2) => s2[i2]) : s2).flat().reduce((a2, v) => v > 0 && (!a2 || v < a2) ? v : a2, 0);
15943
+ minY = m && Math.min(b, __pow(b, Math.floor(Math.log(m) / Math.log(b))));
15944
+ }
15923
15945
  const range = Math.abs(maxY - minY);
15924
15946
  const spansABase = y.logarithmic && this._logDomainSpan(minY, maxY, y.logBase) >= 1;
15925
15947
  const validLogScale = y.logarithmic && (spansABase || range > 5);
@@ -15952,19 +15974,26 @@ var __async = (__this, __arguments, generator) => {
15952
15974
  * @param {number} maxX
15953
15975
  */
15954
15976
  setXScale(minX, maxX) {
15977
+ var _a;
15955
15978
  const w = this.w;
15956
15979
  const gl = w.globals;
15957
15980
  if (maxX === -Number.MAX_VALUE || !Utils$1.isNumber(maxX)) {
15958
15981
  gl.xAxisScale = this.linearScale(0, 10, 10);
15959
15982
  } else {
15960
- const ticks = gl.xTickAmount;
15961
- gl.xAxisScale = this.linearScale(
15962
- minX,
15963
- maxX,
15964
- ticks,
15965
- 0,
15966
- w.config.xaxis.max === void 0 ? w.config.xaxis.stepSize : void 0
15967
- );
15983
+ const x = w.config.xaxis;
15984
+ let step = ((_a = x.max) != null ? _a : x.range) === void 0 ? x.stepSize : void 0;
15985
+ const fit = step > 0 && !gl.isBarHorizontal && x.type !== "datetime";
15986
+ if (fit) {
15987
+ const n2 = Math.ceil((maxX - minX) / step - 1e-9);
15988
+ n2 > 1e3 ? step = void 0 : gl.xTickAmount = n2;
15989
+ }
15990
+ let s2 = this.linearScale(minX, maxX, gl.xTickAmount, 0, step);
15991
+ if (fit && step) {
15992
+ while (s2.niceMax < maxX)
15993
+ s2 = this.linearScale(minX, maxX, ++gl.xTickAmount, 0, step);
15994
+ gl.maxX = s2.niceMax;
15995
+ }
15996
+ gl.xAxisScale = s2;
15968
15997
  }
15969
15998
  return gl.xAxisScale;
15970
15999
  }
@@ -16599,22 +16628,21 @@ var __async = (__this, __arguments, generator) => {
16599
16628
  gl.barGroups = [];
16600
16629
  gl.lineGroups = [];
16601
16630
  gl.areaGroups = [];
16602
- cnf.series.forEach((s2) => {
16603
- const _s = (
16631
+ cnf.series.forEach((s2, i2) => {
16632
+ const g = this.w.labelData.seriesGroupIndex[i2];
16633
+ switch (
16604
16634
  /** @type {any} */
16605
- s2
16606
- );
16607
- const type = _s.type || cnf.chart.type;
16608
- switch (type) {
16635
+ s2.type || cnf.chart.type
16636
+ ) {
16609
16637
  case "bar":
16610
16638
  case "column":
16611
- gl.barGroups.push(_s.group);
16639
+ gl.barGroups.push(g);
16612
16640
  break;
16613
16641
  case "line":
16614
- gl.lineGroups.push(_s.group);
16642
+ gl.lineGroups.push(g);
16615
16643
  break;
16616
16644
  case "area":
16617
- gl.areaGroups.push(_s.group);
16645
+ gl.areaGroups.push(g);
16618
16646
  break;
16619
16647
  }
16620
16648
  });
@@ -16699,9 +16727,10 @@ var __async = (__this, __arguments, generator) => {
16699
16727
  ticks = gl.dataPoints - 1;
16700
16728
  }
16701
16729
  } else if (cnf.xaxis.tickAmount === "dataPoints") {
16702
- if (this.w.seriesData.series.length > 1) {
16703
- ticks = this.w.seriesData.series[gl.maxValsInArrayIndex].length - 1;
16704
- }
16730
+ ticks = Math.max(
16731
+ 1,
16732
+ (this.w.seriesData.series[gl.maxValsInArrayIndex] || []).length - 1
16733
+ );
16705
16734
  if (this.w.axisFlags.isXNumeric) {
16706
16735
  const diff = Math.round(gl.maxX - gl.minX);
16707
16736
  if (diff < 30) {
@@ -16759,8 +16788,26 @@ var __async = (__this, __arguments, generator) => {
16759
16788
  }
16760
16789
  }
16761
16790
  if (isXNumeric && gl.isBarHorizontal) {
16791
+ const rows = (this.w.seriesData.seriesX[gl.maxValsInArrayIndex] || []).slice();
16792
+ const seen = new Set(rows);
16793
+ const n2 = rows.length;
16794
+ if (cnf.chart.type === "bar") {
16795
+ this.w.seriesData.seriesX.forEach(
16796
+ (s2) => s2 == null ? void 0 : s2.forEach((x) => {
16797
+ if (x != null && !seen.has(x)) {
16798
+ seen.add(x);
16799
+ rows.push(x);
16800
+ }
16801
+ })
16802
+ );
16803
+ }
16804
+ if (rows.length > n2) {
16805
+ const dir = rows[0] > rows[n2 - 1] ? -1 : 1;
16806
+ rows.sort((a2, b) => (a2 - b) * dir);
16807
+ gl.dataPoints = rows.length;
16808
+ }
16762
16809
  this.w.labelData.labels = /** @type {any} */
16763
- (this.w.seriesData.seriesX[gl.maxValsInArrayIndex] || []).slice();
16810
+ rows;
16764
16811
  } else if (isXNumeric) {
16765
16812
  this.w.labelData.labels = /** @type {any} */
16766
16813
  gl.xAxisScale.result.slice();
@@ -16885,7 +16932,7 @@ var __async = (__this, __arguments, generator) => {
16885
16932
  const windowed = this._autoScaleYEnabled();
16886
16933
  if (!this.w.seriesData.series.length) return;
16887
16934
  const gIdx = this.w.labelData.seriesGroupIndex;
16888
- const byX = this.w.axisFlags.isXNumeric && !this.w.config.plotOptions.bar.horizontal;
16935
+ const byX = this.w.axisFlags.isXNumeric;
16889
16936
  const stacks = /* @__PURE__ */ new Map();
16890
16937
  this.w.config.series.forEach(
16891
16938
  (serie, i2) => {
@@ -16900,7 +16947,7 @@ var __async = (__this, __arguments, generator) => {
16900
16947
  if (!st) stacks.set(key, st = [0, 0]);
16901
16948
  const v = this.w.seriesData.series[i2][j2];
16902
16949
  if (stackSeries && v !== null && Utils$1.isNumber(v)) {
16903
- v > 0 ? st[0] += parseFloat(String(v)) + 1e-4 : st[1] += parseFloat(String(v));
16950
+ v > 0 ? st[0] += v * 1.000001 : st[1] += +v;
16904
16951
  }
16905
16952
  }
16906
16953
  }
@@ -18322,6 +18369,11 @@ var __async = (__this, __arguments, generator) => {
18322
18369
  return count === 0 ? k : `${k}#${count}`;
18323
18370
  });
18324
18371
  }
18372
+ function seriesKeys(w, realIndex, n2 = ((_a) => (_a = w.seriesData.series[realIndex]) == null ? void 0 : _a.length)() | 0) {
18373
+ return uniquifyKeys(
18374
+ Array.from({ length: n2 }, (_, j2) => datumKey(w, realIndex, j2))
18375
+ );
18376
+ }
18325
18377
  function seriesJoin(w, realIndex, includeIdentity = false, allowReorder = false) {
18326
18378
  var _a, _b;
18327
18379
  if (!lengthTransitionEnabled(w)) return null;
@@ -18334,7 +18386,7 @@ var __async = (__this, __arguments, generator) => {
18334
18386
  const oldKeys = uniquifyKeys(
18335
18387
  oldY.map((_, j2) => frameDatumKey(frame, realIndex, j2))
18336
18388
  );
18337
- const newKeys = uniquifyKeys(newY.map((_, j2) => datumKey(w, realIndex, j2)));
18389
+ const newKeys = seriesKeys(w, realIndex);
18338
18390
  const join = joinKeys(oldKeys, newKeys);
18339
18391
  if (!join.ordered && !allowReorder) return null;
18340
18392
  if (!join.changed && !includeIdentity) return null;
@@ -19510,11 +19562,8 @@ var __async = (__this, __arguments, generator) => {
19510
19562
  */
19511
19563
  isSeriesHidden(seriesName) {
19512
19564
  var _a;
19513
- const targetElement = this.getSeriesByName(seriesName);
19514
- const el = (
19515
- /** @type {Element} */
19516
- targetElement
19517
- );
19565
+ const el = this.getSeriesByName(seriesName);
19566
+ if (!el) return { isHidden: false, realIndex: -1 };
19518
19567
  const realIndex = parseInt((_a = el.getAttribute("data:realIndex")) != null ? _a : "0", 10);
19519
19568
  const gl = this.w.globals;
19520
19569
  const isHidden = el.classList.contains("apexcharts-series-collapsed") || gl.collapsedSeriesIndices.includes(realIndex) || gl.ancillaryCollapsedSeriesIndices.includes(realIndex);
@@ -19664,9 +19713,9 @@ var __async = (__this, __arguments, generator) => {
19664
19713
  */
19665
19714
  toggleSeries(seriesName) {
19666
19715
  var _a;
19667
- const isSeriesHidden = this.isSeriesHidden(seriesName);
19668
- (_a = this._toggleDataSeries) == null ? void 0 : _a.call(this, isSeriesHidden.realIndex, isSeriesHidden.isHidden);
19669
- return isSeriesHidden.isHidden;
19716
+ const { isHidden, realIndex } = this.isSeriesHidden(seriesName);
19717
+ if (realIndex > -1) (_a = this._toggleDataSeries) == null ? void 0 : _a.call(this, realIndex, isHidden);
19718
+ return isHidden;
19670
19719
  }
19671
19720
  /**
19672
19721
  * @param {string} seriesName
@@ -19684,7 +19733,7 @@ var __async = (__this, __arguments, generator) => {
19684
19733
  hideSeries(seriesName) {
19685
19734
  var _a;
19686
19735
  const isSeriesHidden = this.isSeriesHidden(seriesName);
19687
- if (!isSeriesHidden.isHidden) {
19736
+ if (!isSeriesHidden.isHidden && isSeriesHidden.realIndex > -1) {
19688
19737
  (_a = this._toggleDataSeries) == null ? void 0 : _a.call(this, isSeriesHidden.realIndex, false);
19689
19738
  }
19690
19739
  }
@@ -19760,10 +19809,10 @@ var __async = (__this, __arguments, generator) => {
19760
19809
  * @param {any[]} series
19761
19810
  */
19762
19811
  emptyCollapsedSeries(series) {
19763
- const w = this.w;
19812
+ const gl = this.w.globals;
19764
19813
  if (!Array.isArray(series)) return series;
19765
19814
  for (let i2 = 0; i2 < series.length; i2++) {
19766
- if (w.globals.collapsedSeriesIndices.indexOf(i2) > -1) {
19815
+ if (gl.collapsedSeriesIndices.includes(i2) || gl.ancillaryCollapsedSeriesIndices.includes(i2)) {
19767
19816
  if (series[i2] && typeof series[i2] === "object") {
19768
19817
  series[i2].data = [];
19769
19818
  } else {
@@ -19969,9 +20018,11 @@ var __async = (__this, __arguments, generator) => {
19969
20018
  * @param {'highlight'|'reset'} action
19970
20019
  */
19971
20020
  highlightRangeInSeries(rangeIndex, action) {
20021
+ var _a, _b;
19972
20022
  const w = this.w;
20023
+ const t2 = w.config.chart.type === "treemap" ? "treemap" : "heatmap";
19973
20024
  const allHeatMapElements = w.dom.baseEl.getElementsByClassName(
19974
- "apexcharts-heatmap-rect"
20025
+ `apexcharts-${t2}-rect`
19975
20026
  );
19976
20027
  const toggleAllInactive = (op) => {
19977
20028
  for (let i2 = 0; i2 < allHeatMapElements.length; i2++) {
@@ -19988,14 +20039,23 @@ var __async = (__this, __arguments, generator) => {
19988
20039
  toggleAllInactive("remove");
19989
20040
  return;
19990
20041
  }
19991
- const ranges = w.config.plotOptions.heatmap.colorScale.ranges;
20042
+ const ranges = w.config.plotOptions[t2].colorScale.ranges;
19992
20043
  const range = ranges && ranges[rangeIndex];
19993
20044
  if (!range) return;
19994
20045
  toggleAllInactive("add");
19995
20046
  for (let i2 = 0; i2 < allHeatMapElements.length; i2++) {
19996
- const val = Number(allHeatMapElements[i2].getAttribute("val"));
20047
+ const el = allHeatMapElements[i2];
20048
+ const val = Number(
20049
+ (_b = el.getAttribute("val")) != null ? _b : (_a = w.seriesData.series[
20050
+ /** @type {any} */
20051
+ el.getAttribute("i")
20052
+ ]) == null ? void 0 : _a[
20053
+ /** @type {any} */
20054
+ el.getAttribute("j")
20055
+ ]
20056
+ );
19997
20057
  if (val >= range.from && val <= range.to) {
19998
- allHeatMapElements[i2].classList.remove(this.legendInactiveClass);
20058
+ el.classList.remove(this.legendInactiveClass);
19999
20059
  }
20000
20060
  }
20001
20061
  }
@@ -20009,10 +20069,7 @@ var __async = (__this, __arguments, generator) => {
20009
20069
  const activeSeriesIndex = w.config.series.map((s2, index) => {
20010
20070
  const checkChartType = () => {
20011
20071
  if (w.globals.comboCharts) {
20012
- return chartTypes.length === 0 || chartTypes.length && chartTypes.indexOf(
20013
- /** @type {Record<string,any>} */
20014
- w.config.series[index].type
20015
- ) > -1;
20072
+ return chartTypes.length === 0 || chartTypes.length && chartTypes.indexOf(s2.type || w.config.chart.type) > -1;
20016
20073
  }
20017
20074
  return true;
20018
20075
  };
@@ -20050,7 +20107,7 @@ var __async = (__this, __arguments, generator) => {
20050
20107
  let last = -1;
20051
20108
  w.config.series.forEach((s2, i2) => {
20052
20109
  if (w.labelData.seriesGroupIndex[i2] !== gi) return;
20053
- if (w.globals.comboCharts && chartTypes.length && chartTypes.indexOf(s2.type) === -1) {
20110
+ if (w.globals.comboCharts && chartTypes.length && chartTypes.indexOf(s2.type || w.config.chart.type) === -1) {
20054
20111
  return;
20055
20112
  }
20056
20113
  const hasData = s2.data && s2.data.length > 0 && w.globals.collapsedSeriesIndices.indexOf(i2) === -1;
@@ -20063,7 +20120,8 @@ var __async = (__this, __arguments, generator) => {
20063
20120
  const w = this.w;
20064
20121
  if (w.globals.comboCharts) {
20065
20122
  return this.w.config.series.map((s2, i2) => {
20066
- return s2.type === "bar" || s2.type === "column" ? i2 : -1;
20123
+ const t2 = s2.type || w.config.chart.type;
20124
+ return t2 === "bar" || t2 === "column" ? i2 : -1;
20067
20125
  }).filter((i2) => {
20068
20126
  return i2 !== -1;
20069
20127
  });
@@ -20118,6 +20176,11 @@ var __async = (__this, __arguments, generator) => {
20118
20176
  for (let j2 = 0; j2 < paths.length; j2++) {
20119
20177
  if (paths[j2].hasAttribute("pathTo")) {
20120
20178
  const d = (type === "line" || type === "area") && paths[j2].getAttribute("d") || paths[j2].getAttribute("pathTo");
20179
+ if (paths[j2].classList.contains("apexcharts-raincloud-box")) {
20180
+ const body = dArr.paths[dArr.paths.length - 1];
20181
+ if (body) (body.box || (body.box = [])).push(d);
20182
+ continue;
20183
+ }
20121
20184
  dArr.paths.push({
20122
20185
  d,
20123
20186
  key: paths[j2].getAttribute("data:pathKey"),
@@ -20141,7 +20204,8 @@ var __async = (__this, __arguments, generator) => {
20141
20204
  "rangeArea",
20142
20205
  "candlestick",
20143
20206
  "boxPlot",
20144
- "radar"
20207
+ "radar",
20208
+ "violin"
20145
20209
  ];
20146
20210
  chartTypes.forEach((type) => {
20147
20211
  const paths = getPaths(type);
@@ -20716,7 +20780,7 @@ var __async = (__this, __arguments, generator) => {
20716
20780
  applyColorTypes(colorTypes, defaultColors) {
20717
20781
  const w = this.w;
20718
20782
  colorTypes.forEach((c) => {
20719
- w.globals[c].colors = w.config[c].colors === void 0 ? this.isColorFn ? w.config.colors.slice() : defaultColors : w.config[c].colors.slice();
20783
+ w.globals[c].colors = w.config[c].colors === void 0 ? this.isColorFn && w.config.colors ? w.config.colors.slice() : defaultColors : w.config[c].colors.slice();
20720
20784
  this.pushExtraColors(
20721
20785
  /** @type {Record<string,any>} */
20722
20786
  w.globals[c].colors
@@ -22565,6 +22629,7 @@ var __async = (__this, __arguments, generator) => {
22565
22629
  const { w, ctx } = this;
22566
22630
  const { config: cnf, globals: gl } = w;
22567
22631
  const { line, boxCandlestick, violin } = renderers;
22632
+ if (cnf.chart.type !== "unit") ctx._unitPrevDots = null;
22568
22633
  let elGraph = [];
22569
22634
  if (gl.comboCharts) {
22570
22635
  const coreUtils = new CoreUtils(this.w);
@@ -23263,26 +23328,33 @@ var __async = (__this, __arguments, generator) => {
23263
23328
  const list = dd && Array.isArray(dd.series) ? dd.series : [];
23264
23329
  return list.find((s2) => s2 && s2.id === id);
23265
23330
  }
23266
- function toNode(w, d, i2, paletteFromParent, parentKey, seenIds = null, opts = {}) {
23331
+ function segment(name2, seen) {
23332
+ var _a;
23333
+ const n2 = String(name2).replace(/\//g, "%2F");
23334
+ const o2 = ((_a = seen.get(n2)) != null ? _a : -1) + 1;
23335
+ seen.set(n2, o2);
23336
+ return `${o2}:${n2}`;
23337
+ }
23338
+ function toNode(w, d, i2, paletteFromParent, parentKey, seenIds = null, opts = {}, seen = /* @__PURE__ */ new Map()) {
23267
23339
  var _a, _b, _c;
23268
23340
  const isObj = d && typeof d === "object";
23269
23341
  const name2 = isObj ? (_b = (_a = d.x) != null ? _a : d.name) != null ? _b : "" : "";
23270
- const value = isObj ? Number((_c = d.y) != null ? _c : d.value) : Number(d);
23342
+ const raw = isObj ? (_c = d.y) != null ? _c : d.value : d;
23343
+ const value = raw == null || raw === "" ? NaN : Number(raw);
23271
23344
  const node = {
23272
23345
  name: String(name2),
23273
23346
  value: isNaN(value) ? null : value,
23274
23347
  color: isObj && d.color ? d.color : void 0,
23275
- // Identity across data updates: the path of names (indexed so same-named
23276
- // siblings stay distinct). Update animations morph matched keys in place.
23277
- _key: `${parentKey}/${i2}:${name2}`
23348
+ _key: `${parentKey}/${segment(name2, seen)}`
23278
23349
  };
23279
23350
  if (paletteFromParent && !node.color) {
23280
23351
  node.color = paletteFromParent[i2 % paletteFromParent.length];
23281
23352
  }
23282
23353
  if (opts.keepDatum) node._datum = d;
23354
+ const kids = /* @__PURE__ */ new Map();
23283
23355
  if (isObj && Array.isArray(d.children) && d.children.length) {
23284
23356
  node.children = d.children.map(
23285
- (c, j2) => toNode(w, c, j2, null, node._key, seenIds, opts)
23357
+ (c, j2) => toNode(w, c, j2, null, node._key, seenIds, opts, kids)
23286
23358
  );
23287
23359
  } else if (isObj && d.drilldown != null && opts.expandDrilldown !== false) {
23288
23360
  const visited = seenIds || /* @__PURE__ */ new Set();
@@ -23293,7 +23365,7 @@ var __async = (__this, __arguments, generator) => {
23293
23365
  nextSeen.add(d.drilldown);
23294
23366
  const palette = Array.isArray(dd.colors) ? dd.colors : null;
23295
23367
  node.children = dd.data.map(
23296
- (c, j2) => toNode(w, c, j2, palette, node._key, nextSeen, opts)
23368
+ (c, j2) => toNode(w, c, j2, palette, node._key, nextSeen, opts, kids)
23297
23369
  );
23298
23370
  }
23299
23371
  }
@@ -23306,10 +23378,12 @@ var __async = (__this, __arguments, generator) => {
23306
23378
  series || w.config.series
23307
23379
  );
23308
23380
  if (!Array.isArray(cfgSeries)) return [];
23381
+ const seen = /* @__PURE__ */ new Map();
23309
23382
  return cfgSeries.map((s2, i2) => {
23310
23383
  var _a, _b;
23311
23384
  const data = s2 && Array.isArray(s2.data) ? s2.data : [];
23312
- const key = `${i2}:${(_a = s2 == null ? void 0 : s2.name) != null ? _a : ""}`;
23385
+ const key = segment((_a = s2 == null ? void 0 : s2.name) != null ? _a : "", seen);
23386
+ const kids = /* @__PURE__ */ new Map();
23313
23387
  const root = {
23314
23388
  name: String((_b = s2 == null ? void 0 : s2.name) != null ? _b : ""),
23315
23389
  value: null,
@@ -23317,7 +23391,7 @@ var __async = (__this, __arguments, generator) => {
23317
23391
  _key: key,
23318
23392
  _seriesIndex: i2,
23319
23393
  children: data.map(
23320
- (d, j2) => toNode(w, d, j2, null, key, null, opts)
23394
+ (d, j2) => toNode(w, d, j2, null, key, null, opts, kids)
23321
23395
  )
23322
23396
  };
23323
23397
  return root;
@@ -23445,7 +23519,7 @@ var __async = (__this, __arguments, generator) => {
23445
23519
  var _a;
23446
23520
  if (!d || typeof d !== "object") return Utils$1.parseNumber(d) || 0;
23447
23521
  const v = (_a = d.y) != null ? _a : d.value;
23448
- if (v != null) return Utils$1.parseNumber(v) || 0;
23522
+ if (v != null && v !== "") return Utils$1.parseNumber(v) || 0;
23449
23523
  if (!Array.isArray(d.children)) return 0;
23450
23524
  return d.children.reduce(
23451
23525
  (s2, c) => s2 + Math.max(0, subtreeTotal(c)),
@@ -24171,13 +24245,18 @@ var __async = (__this, __arguments, generator) => {
24171
24245
  }
24172
24246
  });
24173
24247
  this.coreUtils.setSeriesYAxisMappings();
24174
- const buckets = [];
24175
- const groups = [
24176
- ...new Set(cnf.series.map((s2) => s2.group))
24177
- ];
24178
- this.w.labelData.seriesGroupIndex = cnf.series.map(
24248
+ const rev = this.w.globals.seriesYAxisReverseMap;
24249
+ const keys = cnf.series.map(
24179
24250
  (s2, i2) => {
24180
- const index = groups.indexOf(s2.group);
24251
+ var _a2;
24252
+ return (_a2 = s2.group) != null ? _a2 : "apexcharts-axis-" + rev[i2];
24253
+ }
24254
+ );
24255
+ const buckets = [];
24256
+ const groups = [...new Set(keys)];
24257
+ this.w.labelData.seriesGroupIndex = keys.map(
24258
+ (k, i2) => {
24259
+ const index = groups.indexOf(k);
24181
24260
  if (!buckets[index]) buckets[index] = [];
24182
24261
  buckets[index].push(this.w.seriesData.seriesNames[i2]);
24183
24262
  return index;
@@ -24460,12 +24539,12 @@ var __async = (__this, __arguments, generator) => {
24460
24539
  if (rootColors && x !== void 0) {
24461
24540
  rootColors[labels.length] = dataPoint.color;
24462
24541
  }
24463
- if (x !== void 0 && y !== void 0) {
24464
- labels.push(String(x));
24465
- values.push(Utils$1.parseNumber(y));
24466
- } else if (x !== void 0 && Array.isArray(dataPoint.children)) {
24542
+ if (x !== void 0 && Array.isArray(dataPoint.children)) {
24467
24543
  labels.push(String(x));
24468
24544
  values.push(subtreeTotal(dataPoint));
24545
+ } else if (x !== void 0 && y !== void 0) {
24546
+ labels.push(String(x));
24547
+ values.push(Utils$1.parseNumber(y));
24469
24548
  } else {
24470
24549
  console.warn(
24471
24550
  "ApexCharts: Invalid data point format for pie chart. Expected {x, y} format:",
@@ -26402,6 +26481,13 @@ var __async = (__this, __arguments, generator) => {
26402
26481
  const markers = this.getElMarkers(capturedSeries);
26403
26482
  return markers.length > 0;
26404
26483
  }
26484
+ /**
26485
+ * Whether any visible series has a marker node, its points' or its hover
26486
+ * dot's.
26487
+ */
26488
+ hasVisibleMarkers() {
26489
+ return this.getAllMarkers(true).some(Boolean);
26490
+ }
26405
26491
  /**
26406
26492
  * @param {any} point
26407
26493
  * @param {number} size
@@ -26848,11 +26934,11 @@ var __async = (__this, __arguments, generator) => {
26848
26934
  */
26849
26935
  placeAroundCell(cell, plot, {
26850
26936
  el = null,
26851
- ttWidth = ((_a) => (_a = this.ttCtx.tooltipRect) == null ? void 0 : _a.ttWidth)() || 0,
26852
- ttHeight = ((_b) => (_b = this.ttCtx.tooltipRect) == null ? void 0 : _b.ttHeight)() || 0
26937
+ ttWidth = ((_b) => (_b = this.ttCtx.tooltipRect) == null ? void 0 : _b.ttWidth)() || 0,
26938
+ ttHeight = ((_c) => (_c = this.ttCtx.tooltipRect) == null ? void 0 : _c.ttHeight)() || 0
26853
26939
  } = {}) {
26854
- var _a2;
26855
- if (!((_a2 = el == null ? void 0 : el.closest) == null ? void 0 : _a2.call(el, '[clip-path*="heatmapHexMask"]'))) {
26940
+ var _a;
26941
+ if (!((_a = el == null ? void 0 : el.closest) == null ? void 0 : _a.call(el, '[clip-path*="heatmapHexMask"]'))) {
26856
26942
  cell = this._visiblePart(cell, plot);
26857
26943
  }
26858
26944
  return this._placeAround(placeAroundCell, cell, plot, {
@@ -26923,11 +27009,11 @@ var __async = (__this, __arguments, generator) => {
26923
27009
  * @param {{ ttWidth?: number, ttHeight?: number, side?: 'left'|'right'|null, beside?: boolean }} [opts]
26924
27010
  * @returns {import('./placement').CellPlacement}
26925
27011
  */
26926
- _placeAround(decide, mark, plot, _e = {}) {
26927
- var _f = _e, {
26928
- ttWidth = ((_c) => (_c = this.ttCtx.tooltipRect) == null ? void 0 : _c.ttWidth)() || 0,
26929
- ttHeight = ((_d) => (_d = this.ttCtx.tooltipRect) == null ? void 0 : _d.ttHeight)() || 0
26930
- } = _f, rest = __objRest(_f, [
27012
+ _placeAround(decide, mark, plot, _f = {}) {
27013
+ var _g = _f, {
27014
+ ttWidth = ((_d) => (_d = this.ttCtx.tooltipRect) == null ? void 0 : _d.ttWidth)() || 0,
27015
+ ttHeight = ((_e) => (_e = this.ttCtx.tooltipRect) == null ? void 0 : _e.ttHeight)() || 0
27016
+ } = _g, rest = __objRest(_g, [
26931
27017
  "ttWidth",
26932
27018
  "ttHeight"
26933
27019
  ]);
@@ -31111,16 +31197,22 @@ var __async = (__this, __arguments, generator) => {
31111
31197
  ttCtx.tooltipLabels.drawSeriesTexts(__spreadProps(__spreadValues({}, commonSeriesTextsParams), {
31112
31198
  shared: this.showOnIntersect ? false : this.tConfig.shared
31113
31199
  }));
31114
- if (hasMarkers || dynamicPoints) {
31200
+ const capturedPoints = hasMarkers || dynamicPoints;
31201
+ if (capturedPoints || w.globals.comboCharts && !canvasMode && this.tooltipUtil.hasVisibleMarkers()) {
31115
31202
  handlePoints();
31116
- } else if (this.tooltipUtil.hasBars()) {
31203
+ }
31204
+ if (this.tooltipUtil.hasBars()) {
31117
31205
  if (canvasMode) {
31118
- ttCtx.tooltipPosition.moveStickyTooltipOverBars(j2, capturedSeries);
31206
+ if (!capturedPoints) {
31207
+ ttCtx.tooltipPosition.moveStickyTooltipOverBars(j2, capturedSeries);
31208
+ }
31119
31209
  } else if ([...bars].some((b) => b.querySelector("path"))) {
31120
31210
  const graphics = new Graphics(this.w, this.ctx);
31121
31211
  const paths = w.dom.Paper.find(`.apexcharts-bar-area[j='${j2}']`);
31122
31212
  this.deactivateHoverFilter();
31123
- ttCtx.tooltipPosition.moveStickyTooltipOverBars(j2, capturedSeries);
31213
+ if (!capturedPoints) {
31214
+ ttCtx.tooltipPosition.moveStickyTooltipOverBars(j2, capturedSeries);
31215
+ }
31124
31216
  for (let b = 0; b < paths.length; b++) {
31125
31217
  graphics.pathMouseEnter(
31126
31218
  /** @type {any} */
@@ -31321,7 +31413,8 @@ var __async = (__this, __arguments, generator) => {
31321
31413
  this._activate(desired, this._instances[desired]);
31322
31414
  return this._activeKind;
31323
31415
  }
31324
- if (mode === desired) {
31416
+ if (mode === desired && !this._warned) {
31417
+ this._warned = 1;
31325
31418
  warnMissingFeature(
31326
31419
  `\`chart.renderer: '${desired}'\``,
31327
31420
  `renderer-${desired}`,
@@ -31330,11 +31423,17 @@ var __async = (__this, __arguments, generator) => {
31330
31423
  }
31331
31424
  );
31332
31425
  }
31333
- } else if (mode === "canvas" && hasCanvasUnsupportedFeature(this.w)) {
31426
+ } else if (mode === "canvas" && !this._warned && hasCanvasUnsupportedFeature(this.w)) {
31427
+ this._warned = 1;
31334
31428
  console.warn(
31335
31429
  `[apexcharts] renderer:"canvas" requested but this chart uses a feature the canvas renderer does not render yet (gradient/pattern/image fill or a state color-matrix filter); falling back to SVG.`
31336
31430
  );
31337
31431
  }
31432
+ const prev = this._instances[this._activeKind];
31433
+ if (prev) {
31434
+ prev.destroy();
31435
+ delete this._instances[this._activeKind];
31436
+ }
31338
31437
  this._activate("svg", this.svg);
31339
31438
  return this._activeKind;
31340
31439
  }
@@ -32585,7 +32684,7 @@ var __async = (__this, __arguments, generator) => {
32585
32684
  if (isUpdating) {
32586
32685
  this.ctx._zoomPanSelection = null;
32587
32686
  this.ctx._toolbar = null;
32588
- (_e = this.ctx._keyboardNavigation) == null ? void 0 : _e.destroy();
32687
+ (_e = this.ctx._keyboardNavigation) == null ? void 0 : _e.destroy(true);
32589
32688
  this.ctx._keyboardNavigation = null;
32590
32689
  } else {
32591
32690
  (_f = this.ctx.perspectives) == null ? void 0 : _f.teardown();
@@ -32871,7 +32970,7 @@ var __async = (__this, __arguments, generator) => {
32871
32970
  ros.delete(fn);
32872
32971
  }
32873
32972
  }
32874
- const apexCSS = '@keyframes opaque{0%{opacity:0}to{opacity:1}}.apexcharts-canvas{position:relative;direction:ltr!important;user-select:none;--apexcharts-focus-color: #008FFB}.apexcharts-canvas .apexcharts-theme-dark,.apexcharts-theme-dark.apexcharts-canvas{--apexcharts-focus-color: #FFD500}.apexcharts-canvas.apexcharts-high-contrast,.apexcharts-high-contrast.apexcharts-canvas{--apexcharts-focus-color: #FFFF00}.apexcharts-sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.apexcharts-canvas:not(.apexcharts-ignore-reduced-motion) *,.apexcharts-canvas:not(.apexcharts-ignore-reduced-motion) *:before,.apexcharts-canvas:not(.apexcharts-ignore-reduced-motion) *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.apexcharts-canvas ::-webkit-scrollbar{-webkit-appearance:none;width:6px}.apexcharts-canvas ::-webkit-scrollbar-thumb{border-radius:4px;background-color:#00000080;box-shadow:0 0 1px #ffffff80;-webkit-box-shadow:0 0 1px rgba(255,255,255,.5)}.apexcharts-inner{position:relative}.apexcharts-text tspan{font-family:inherit}rect.legend-mouseover-inactive,.legend-mouseover-inactive rect,.legend-mouseover-inactive path,.legend-mouseover-inactive circle,.legend-mouseover-inactive line,.legend-mouseover-inactive text.apexcharts-yaxis-title-text,.legend-mouseover-inactive text.apexcharts-yaxis-label{transition:.15s ease all;opacity:.2}.apexcharts-crossfilter-dimmed{transition:opacity .25s ease;opacity:var(--apx-cf-dim, .2)}.apexcharts-cf-table{border-collapse:collapse;width:100%;font-size:13px}.apexcharts-cf-table caption{caption-side:bottom;text-align:right;padding:6px 2px;font-size:12px;opacity:.7}.apexcharts-cf-table th,.apexcharts-cf-table td{padding:6px 10px;text-align:left;border-bottom:1px solid rgba(0,0,0,.08)}.apexcharts-cf-table th{font-weight:600;border-bottom-width:2px}.apexcharts-cf-table tbody tr:hover{background:#6366f10f}.apexcharts-canvas{--apx-measure-up: #16a34a;--apx-measure-down: #dc2626;--apx-measure-neutral: #64748b;--apx-measure-guide: #94a3b8}.apexcharts-measure-capture{cursor:crosshair}.apexcharts-canvas{--apx-menu-bg: #ffffff;--apx-menu-fg: #1e293b;--apx-menu-border: #e2e8f0;--apx-menu-hover: #f1f5f9;--apx-menu-shadow: rgba(15, 23, 42, .18)}.apexcharts-context-menu{min-width:168px;padding:4px;border-radius:8px;background:var(--apx-menu-bg);border:1px solid var(--apx-menu-border);box-shadow:0 6px 22px var(--apx-menu-shadow);font-family:Helvetica,Arial,sans-serif;font-size:13px;z-index:20;user-select:none}.apexcharts-context-menu-item{display:block;width:100%;box-sizing:border-box;text-align:left;padding:7px 12px;border:0;border-radius:5px;background:transparent;color:var(--apx-menu-fg);font:inherit;cursor:pointer}.apexcharts-context-menu-item:hover,.apexcharts-context-menu-item--active{background:var(--apx-menu-hover)}.apexcharts-context-menu-item:focus{outline:none}.apexcharts-canvas{--apx-ink-card-bg: #ffffff;--apx-ink-card-fg: #1e293b;--apx-ink-card-border: #e2e8f0;--apx-ink-card-hover: #f1f5f9;--apx-ink-card-accent: #6366f1;--apx-ink-card-shadow: rgba(15, 23, 42, .18)}.apexcharts-ink-card{position:absolute;z-index:25;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:8px;background:var(--apx-ink-card-bg);border:1px solid var(--apx-ink-card-border);box-shadow:0 6px 22px var(--apx-ink-card-shadow);font-family:Helvetica,Arial,sans-serif;font-size:12px;color:var(--apx-ink-card-fg);user-select:none}.apexcharts-ink-card-row{display:flex;align-items:center;gap:4px}.apexcharts-ink-card input.apexcharts-ink-editor{flex:1 1 auto;width:150px;min-width:0;box-sizing:border-box;padding:4px 6px;font:inherit;color:inherit;background:transparent;border:1px solid var(--apx-ink-card-border);border-radius:5px}.apexcharts-ink-card input.apexcharts-ink-editor:focus{outline:none;border-color:var(--apx-ink-card-accent)}.apexcharts-ink-btn{flex:0 0 auto;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:5px;background:transparent;color:inherit;font:inherit;font-size:12px;line-height:1;cursor:pointer}.apexcharts-ink-btn:hover,.apexcharts-ink-btn--active{background:var(--apx-ink-card-hover)}.apexcharts-ink-btn:focus-visible,.apexcharts-ink-swatch:focus-visible{outline:2px solid var(--apx-ink-card-accent);outline-offset:1px}.apexcharts-ink-btn--bold{font-weight:700}.apexcharts-ink-btn--delete:hover{color:#dc2626}.apexcharts-ink-swatch{flex:0 0 auto;width:16px;height:16px;padding:0;border:1px solid rgba(100,116,139,.45);border-radius:50%;cursor:pointer}.apexcharts-ink-swatch--active{box-shadow:0 0 0 2px var(--apx-ink-card-bg),0 0 0 4px var(--apx-ink-card-accent)}.apexcharts-ink-sep{flex:0 0 auto;width:1px;height:16px;margin:0 2px;background:var(--apx-ink-card-border)}.apexcharts-ink-cardlabel{flex:0 0 auto;font-size:10px;letter-spacing:.4px;text-transform:uppercase;opacity:.65;margin-right:2px}.apexcharts-ink-marker-size{flex:0 0 auto;min-width:16px;text-align:center;font-variant-numeric:tabular-nums}.apexcharts-legend-text{padding-left:15px;margin-left:-15px}.apexcharts-legend-series[role=button]:focus{outline:2px solid var(--apexcharts-focus-color, #008FFB);outline-offset:2px}.apexcharts-legend-series[role=button]:focus:not(:focus-visible){outline:none}.apexcharts-legend-series[role=button]:focus-visible{outline:2px solid var(--apexcharts-focus-color, #008FFB);outline-offset:2px}.apexcharts-series-collapsed{opacity:0}.apexcharts-series-collapsed.apexcharts-series-collapsing{opacity:1}.apexcharts-datalabels.apexcharts-series-collapsing{animation:apexcharts-datalabels-exit var(--apexcharts-dl-exit, .4s) ease-in forwards}@keyframes apexcharts-datalabels-exit{0%{opacity:1}to{opacity:0}}.apexcharts-canvas svg:focus:not(:focus-visible){outline:none}.apexcharts-bar-area.apexcharts-keyboard-focused,.apexcharts-candlestick-area.apexcharts-keyboard-focused,.apexcharts-boxPlot-area.apexcharts-keyboard-focused,.apexcharts-violin-area.apexcharts-keyboard-focused,.apexcharts-rangebar-area.apexcharts-keyboard-focused,.apexcharts-pie-area.apexcharts-keyboard-focused,.apexcharts-heatmap-rect.apexcharts-keyboard-focused,.apexcharts-treemap-rect.apexcharts-keyboard-focused,.apexcharts-keyboard-focus-ring{stroke:var(--apexcharts-focus-color, #008FFB);stroke-width:2;stroke-opacity:1}.apexcharts-keyboard-focus-ring{fill:none;pointer-events:none}.apexcharts-tooltip{--apx-tt-bg: #ffffff;--apx-tt-border: rgba(15, 23, 42, .12);--apx-tt-shadow-dir: 1;--apx-tt-shadow: 0 calc(var(--apx-tt-shadow-dir) * 1px) 2px rgba(15, 23, 42, .06), 0 calc(var(--apx-tt-shadow-dir) * 4px) 8px -2px rgba(15, 23, 42, .1), 0 calc(var(--apx-tt-shadow-dir) * 12px) 20px -8px rgba(15, 23, 42, .14);--apx-tt-arrow-bg: var(--apx-tt-bg);--apx-tt-color: #0f172a;--apx-tt-color-muted: rgba(15, 23, 42, .55);border-radius:8px;background:var(--apx-tt-bg);border:1px solid var(--apx-tt-border);box-shadow:var(--apx-tt-shadow);color:var(--apx-tt-color);cursor:default;font-size:13px;left:0;top:0;opacity:0;pointer-events:none;position:absolute;display:flex;flex-direction:column;padding:2px 0;white-space:nowrap;z-index:12;transition:opacity .12s ease}.apexcharts-tooltip.apexcharts-active{opacity:1;transition:opacity .12s ease}.apexcharts-tooltip.apexcharts-tooltip-interactive.apexcharts-active{pointer-events:auto}.apexcharts-tooltip.apexcharts-active[data-positioned=true]{transition:opacity .12s ease,left .16s ease-out,top .16s ease-out}.apexcharts-tooltip.apexcharts-theme-dark{--apx-tt-bg: #1c1c1f;--apx-tt-border: rgba(255, 255, 255, .16);--apx-tt-shadow: 0 calc(var(--apx-tt-shadow-dir) * 1px) 2px rgba(0, 0, 0, .24), 0 calc(var(--apx-tt-shadow-dir) * 4px) 8px -2px rgba(0, 0, 0, .3), 0 calc(var(--apx-tt-shadow-dir) * 12px) 20px -8px rgba(0, 0, 0, .38);--apx-tt-color: #f3f4f6;--apx-tt-color-muted: rgba(243, 244, 246, .55)}.apexcharts-tooltip *{font-family:inherit}.apexcharts-tooltip.apexcharts-annotation-tooltip{padding:6px 10px;max-width:240px;white-space:normal;line-height:1.4;pointer-events:none;z-index:13}.apexcharts-tooltip-title{padding:8px 12px 4px;font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--apx-tt-color-muted);background:transparent;border-bottom:none;margin-bottom:0}.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title{background:transparent;border-bottom:none}.apexcharts-tooltip.apexcharts-tooltip-fill-series{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;padding:0;overflow:hidden;color:#fff}.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-title{background:#00000038;color:#fff;opacity:1;padding:6px 12px}.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-series-group{color:#fff}.apexcharts-tooltip-arrow{position:absolute;box-sizing:border-box;width:10px;height:10px;background:var(--apx-tt-arrow-bg);transform:rotate(45deg);pointer-events:none;top:calc(var(--apx-tt-arrow-y, calc(50% + 1px) ) - 6px)}.apexcharts-tooltip[data-placement=right] .apexcharts-tooltip-arrow{left:-6px;border-left:1px solid var(--apx-tt-border);border-bottom:1px solid var(--apx-tt-border)}.apexcharts-tooltip[data-placement=left] .apexcharts-tooltip-arrow{right:-6px;border-top:1px solid var(--apx-tt-border);border-right:1px solid var(--apx-tt-border)}.apexcharts-tooltip[data-placement=top] .apexcharts-tooltip-arrow,.apexcharts-tooltip[data-placement=bottom] .apexcharts-tooltip-arrow{top:auto;left:calc(var(--apx-tt-arrow-x, calc(50% + 1px) ) - 6px)}.apexcharts-tooltip[data-placement=top] .apexcharts-tooltip-arrow{bottom:-6px;border-right:1px solid var(--apx-tt-border);border-bottom:1px solid var(--apx-tt-border)}.apexcharts-tooltip[data-placement=bottom] .apexcharts-tooltip-arrow{top:-6px;border-top:1px solid var(--apx-tt-border);border-left:1px solid var(--apx-tt-border)}.apexcharts-tooltip[data-placement=bottom]{--apx-tt-shadow-dir: -1 }.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value{display:inline-block;margin-left:5px;font-weight:600}.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty{display:none}.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value{padding:6px 0 5px}.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value{display:flex}.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty){margin-top:-6px}.apexcharts-tooltip-marker{display:inline-flex;align-items:center;justify-content:center;position:relative;width:12px;height:12px;margin-right:6px;vertical-align:middle;color:inherit}.apexcharts-tooltip-marker svg{width:100%;height:100%;display:block}.apexcharts-tooltip-series-group{padding:4px 12px;display:none;gap:8px;text-align:left;justify-content:left;align-items:center}.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker{opacity:1}.apexcharts-tooltip-series-group.apexcharts-active:last-child,.apexcharts-tooltip-series-group:last-child{padding-bottom:8px}.apexcharts-tooltip-y-group{padding:6px 0 5px}.apexcharts-tooltip.apexcharts-tooltip-compact{padding:3px 8px;font-size:11px;line-height:1.35}.apexcharts-tooltip-compact .apexcharts-tooltip-title{padding:0;font-size:11px;white-space:nowrap}.apexcharts-tooltip-compact .apexcharts-tooltip-series-group,.apexcharts-tooltip-compact .apexcharts-tooltip-series-group.apexcharts-active:last-child,.apexcharts-tooltip-compact .apexcharts-tooltip-series-group:last-child{padding:0;gap:5px}.apexcharts-tooltip-compact .apexcharts-tooltip-y-group{padding:0}.apexcharts-tooltip-compact .apexcharts-tooltip-marker{width:8px;height:8px}.apexcharts-tooltip.apexcharts-tooltip-compact.apexcharts-tooltip-value-only{flex-direction:row;align-items:baseline;gap:6px}.apexcharts-tooltip-value-only .apexcharts-tooltip-marker,.apexcharts-tooltip-value-only .apexcharts-tooltip-text-y-label{display:none}.apexcharts-custom-tooltip,.apexcharts-tooltip-box{padding:4px 8px}.apexcharts-tooltip-boxPlot{display:flex;flex-direction:column-reverse}.apexcharts-tooltip-box>div{margin:4px 0}.apexcharts-tooltip-box span.value{font-weight:700}.apexcharts-tooltip-rangebar{padding:5px 8px}.apexcharts-tooltip-rangebar .category{font-weight:600;color:#777}.apexcharts-tooltip-rangebar .series-name{font-weight:700;display:block;margin-bottom:5px}.apexcharts-tooltip-stream{padding:5px 8px}.apexcharts-tooltip-stream .apexcharts-tooltip-title{background:transparent;border:0;padding:0 0 4px;margin:0;font-weight:700}.apexcharts-tooltip-stream-band{display:flex;align-items:center;gap:5px;line-height:1.6;opacity:.72}.apexcharts-tooltip-stream-band.apexcharts-active{opacity:1;font-weight:700}.apexcharts-tooltip-stream-band .series-name{flex:1 1 auto;margin-right:8px}.apexcharts-tooltip-stream-band .value{font-weight:700;margin-left:auto}.apexcharts-tooltip-stream-total{display:flex;align-items:center;margin-top:4px;padding-top:4px;border-top:1px solid var(--apx-tt-border, rgba(15, 23, 42, .12))}.apexcharts-tooltip-stream-total .series-name{flex:1 1 auto;font-weight:600}.apexcharts-tooltip-stream-total .value{font-weight:700;margin-left:auto}.apexcharts-streamgraph-label{pointer-events:none}.apexcharts-xaxistooltip,.apexcharts-yaxistooltip{--apx-axt-bg: #ffffff;--apx-axt-border: rgba(15, 23, 42, .08);--apx-axt-color: #0f172a;--apx-axt-shadow: 0 4px 12px -4px rgba(15, 23, 42, .18), 0 1px 3px -1px rgba(15, 23, 42, .12);opacity:0;pointer-events:none;color:var(--apx-axt-color);font-size:12px;font-weight:500;text-align:center;border-radius:6px;position:absolute;z-index:10;background:var(--apx-axt-bg);border:1px solid var(--apx-axt-border);box-shadow:var(--apx-axt-shadow)}.apexcharts-xaxistooltip.apexcharts-theme-dark,.apexcharts-yaxistooltip.apexcharts-theme-dark{--apx-axt-bg: #1c1c1f;--apx-axt-border: rgba(255, 255, 255, .1);--apx-axt-color: #f3f4f6;--apx-axt-shadow: 0 4px 12px -4px rgba(0, 0, 0, .55), 0 1px 3px -1px rgba(0, 0, 0, .45) }.apexcharts-xaxistooltip{padding:4px 8px;transition:.15s ease all}.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before{left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.apexcharts-xaxistooltip:after{border-color:transparent;border-width:5px;margin-left:-5px}.apexcharts-xaxistooltip:before{border-color:transparent;border-width:6px;margin-left:-6px}.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before{bottom:100%}.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before{top:100%}.apexcharts-xaxistooltip-bottom:after{border-bottom-color:var(--apx-axt-bg)}.apexcharts-xaxistooltip-bottom:before{border-bottom-color:var(--apx-axt-border)}.apexcharts-xaxistooltip-top:after{border-top-color:var(--apx-axt-bg)}.apexcharts-xaxistooltip-top:before{border-top-color:var(--apx-axt-border)}.apexcharts-xaxistooltip.apexcharts-active{opacity:1;transition:.15s ease all}.apexcharts-yaxistooltip{padding:3px 8px}.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before{top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.apexcharts-yaxistooltip:after{border-color:transparent;border-width:5px;margin-top:-5px}.apexcharts-yaxistooltip:before{border-color:transparent;border-width:6px;margin-top:-6px}.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before{left:100%}.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before{right:100%}.apexcharts-yaxistooltip-left:after{border-left-color:var(--apx-axt-bg)}.apexcharts-yaxistooltip-left:before{border-left-color:var(--apx-axt-border)}.apexcharts-yaxistooltip-right:after{border-right-color:var(--apx-axt-bg)}.apexcharts-yaxistooltip-right:before{border-right-color:var(--apx-axt-border)}.apexcharts-yaxistooltip.apexcharts-active{opacity:1}.apexcharts-yaxistooltip-hidden{display:none}.apexcharts-xcrosshairs,.apexcharts-ycrosshairs{pointer-events:none;opacity:0;transition:.15s ease all}.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active{opacity:1;transition:.15s ease all}.apexcharts-ycrosshairs-hidden{opacity:0}.apexcharts-selection-rect{cursor:move}.svg_select_shape{stroke-width:1;stroke-dasharray:10 10;stroke:#000;stroke-opacity:.1;pointer-events:none;fill:none}.svg_select_handle{stroke-width:3;stroke:#000;fill:none}.svg_select_handle_r{cursor:e-resize}.svg_select_handle_l{cursor:w-resize}.apexcharts-svg.apexcharts-zoomable.hovering-zoom{cursor:crosshair}.apexcharts-svg.apexcharts-zoomable.hovering-pan{cursor:move}.apexcharts-menu-icon,.apexcharts-measure-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon{cursor:pointer;width:26px;height:24px;line-height:24px;color:#6e8192;text-align:center;padding:0;margin:0;background:transparent;border:0;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;transition:background-color .12s ease,color .12s ease}.apexcharts-menu-icon svg,.apexcharts-measure-icon svg,.apexcharts-pan-icon svg,.apexcharts-reset-icon svg,.apexcharts-selection-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.apexcharts-theme-dark .apexcharts-menu-icon,.apexcharts-theme-dark .apexcharts-measure-icon,.apexcharts-theme-dark .apexcharts-pan-icon,.apexcharts-theme-dark .apexcharts-reset-icon,.apexcharts-theme-dark .apexcharts-selection-icon,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon,.apexcharts-theme-dark .apexcharts-zoom-icon,.apexcharts-theme-dark .apexcharts-zoomin-icon,.apexcharts-theme-dark .apexcharts-zoomout-icon{color:#d4d6dc}.apexcharts-canvas .apexcharts-measure-icon.apexcharts-selected,.apexcharts-canvas .apexcharts-pan-icon.apexcharts-selected,.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected{background:#008ffb1f;color:#008ffb}.apexcharts-theme-light .apexcharts-menu-icon:hover,.apexcharts-theme-light .apexcharts-measure-icon:not(.apexcharts-selected):hover,.apexcharts-theme-light .apexcharts-pan-icon:not(.apexcharts-selected):hover,.apexcharts-theme-light .apexcharts-reset-icon:hover,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover,.apexcharts-theme-light .apexcharts-zoomin-icon:hover,.apexcharts-theme-light .apexcharts-zoomout-icon:hover{background:#0f172a0f;color:#1f2937}.apexcharts-theme-dark .apexcharts-menu-icon:hover,.apexcharts-theme-dark .apexcharts-measure-icon:not(.apexcharts-selected):hover,.apexcharts-theme-dark .apexcharts-pan-icon:not(.apexcharts-selected):hover,.apexcharts-theme-dark .apexcharts-reset-icon:hover,.apexcharts-theme-dark .apexcharts-selection-icon:not(.apexcharts-selected):hover,.apexcharts-theme-dark .apexcharts-zoom-icon:not(.apexcharts-selected):hover,.apexcharts-theme-dark .apexcharts-zoomin-icon:hover,.apexcharts-theme-dark .apexcharts-zoomout-icon:hover{background:#ffffff14;color:#fff}.apexcharts-menu-icon,.apexcharts-selection-icon{position:relative}.apexcharts-toolbar{position:absolute;z-index:11;display:inline-flex;align-items:center;gap:1px;padding:3px;border-radius:8px;background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.apexcharts-theme-dark .apexcharts-toolbar{background:#1c1c1fd1}.apexcharts-menu{background:#fffffff2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);position:absolute;top:calc(100% + 4px);border:1px solid rgba(15,23,42,.08);border-radius:8px;padding:4px;right:0;opacity:0;min-width:120px;transition:opacity .15s ease,transform .15s ease;transform:translateY(-2px);pointer-events:none;box-shadow:0 4px 16px -4px #0f172a1f,0 2px 4px -1px #0f172a0f}.apexcharts-menu.apexcharts-menu-open{opacity:1;transform:translateY(0);pointer-events:all}.apexcharts-menu-item{padding:6px 9px;font-size:12px;border-radius:5px;cursor:pointer}.apexcharts-theme-light .apexcharts-menu-item:hover{background:#0f172a0f}.apexcharts-theme-dark .apexcharts-menu{background:#1c1c1feb;border-color:#ffffff14;color:#f3f4f6;box-shadow:0 4px 16px -4px #00000080,0 2px 4px -1px #0006}.apexcharts-theme-dark .apexcharts-menu-item:hover{background:#ffffff14}@media screen and (min-width:768px){.apexcharts-canvas:hover .apexcharts-toolbar{opacity:1}}.apexcharts-toolbar:focus-within{opacity:1}.apexcharts-menu-icon:focus-visible,.apexcharts-measure-icon:focus-visible,.apexcharts-pan-icon:focus-visible,.apexcharts-reset-icon:focus-visible,.apexcharts-selection-icon:focus-visible,.apexcharts-toolbar-custom-icon:focus-visible,.apexcharts-zoom-icon:focus-visible,.apexcharts-zoomin-icon:focus-visible,.apexcharts-zoomout-icon:focus-visible{outline:2px solid var(--apexcharts-focus-color, #008FFB);outline-offset:1px;border-radius:5px}.apexcharts-menu-item:focus-visible{outline:2px solid var(--apexcharts-focus-color, #008FFB);outline-offset:-2px;background:#eee}.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points{opacity:0}.apexcharts-hidden-element-shown{opacity:1;transition:.25s ease all}.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label,.apexcharts-pie-name-label,.apexcharts-pie-name-label-group,.apexcharts-pie-label-connector,.apexcharts-unit-outer-label,.apexcharts-unit-outer-label-group,.apexcharts-unit-label-connector{cursor:default;pointer-events:none}.apexcharts-pie-label-connector,.apexcharts-unit-label-connector{fill:none}.apexcharts-pie-label-delay,.apexcharts-unit-label-delay{opacity:0;animation-name:opaque;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease}.apexcharts-unit-label-delay{animation-duration:.5s}.apexcharts-radialbar-label{cursor:pointer}.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-gridline,.apexcharts-line,.apexcharts-point-annotation-label,.apexcharts-radar-series path:not(.apexcharts-marker),.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect,.no-pointer-events{pointer-events:none}.apexcharts-tooltip-active .apexcharts-marker{transition:.15s ease all}.apexcharts-radar-series .apexcharts-yaxis,.apexcharts-bar-goals-markers,.apexcharts-bar-shadows,.apexcharts-rangebar-goals-markers{pointer-events:none}.apexcharts-drilldown-target{cursor:pointer}.apexcharts-breadcrumb{position:absolute;z-index:11;display:inline-flex;align-items:center;gap:2px;font-size:12px;font-family:inherit;padding:2px 4px}.apexcharts-breadcrumb-item{background:transparent;border:none;padding:2px 6px;border-radius:3px;font:inherit;color:inherit;cursor:pointer;line-height:1.2}.apexcharts-breadcrumb-item:hover:not(.apexcharts-breadcrumb-current){background:#00000014}.apexcharts-breadcrumb-arrow{margin-right:4px;font-weight:600;user-select:none}.apexcharts-breadcrumb-current{cursor:default;font-weight:600;opacity:.85}.apexcharts-breadcrumb-separator{opacity:.5;user-select:none}.apexcharts-theme-dark .apexcharts-breadcrumb-item:hover:not(.apexcharts-breadcrumb-current){background:#ffffff1f}.apexcharts-drilldown-loading{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;font-family:inherit;color:inherit;background:#ffffff9e;cursor:progress}.apexcharts-drilldown-loading-spinner{width:26px;height:26px;border-radius:50%;border:2.5px solid rgba(0,0,0,.16);border-top-color:#0000008c;animation:apexcharts-drilldown-spin .7s linear infinite}.apexcharts-drilldown-loading-text{opacity:.8}.apexcharts-theme-dark .apexcharts-drilldown-loading{background:#1e1e1e9e}.apexcharts-theme-dark .apexcharts-drilldown-loading-spinner{border-color:#ffffff38;border-top-color:#ffffffb3}@keyframes apexcharts-drilldown-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.apexcharts-canvas:not(.apexcharts-ignore-reduced-motion) .apexcharts-drilldown-loading-spinner{animation:apexcharts-drilldown-pulse 1.4s ease-in-out infinite!important}@keyframes apexcharts-drilldown-pulse{0%,to{opacity:.35}50%{opacity:1}}}.apexcharts-disable-transitions *{transition:none!important}.apexcharts-trellis{position:relative}.apexcharts-trellis-grid{display:grid}.apexcharts-trellis-cell{min-width:0;position:relative}.apexcharts-trellis-header{font-size:12px;font-weight:600;line-height:22px;height:22px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-title{font-size:14px;font-weight:700;padding:2px 0 6px;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-mute-y .apexcharts-yaxis,.apexcharts-trellis-mute-x .apexcharts-xaxis{opacity:0}.apexcharts-trellis-has-toolbar{padding-top:24px}.apexcharts-trellis-strip{font-size:12px;font-weight:600;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apexcharts-trellis-strip-column{text-align:center;line-height:22px;height:22px;align-self:end}.apexcharts-trellis-strip-row{align-self:center;max-width:140px;padding-right:6px}.apexcharts-trellis-cell-empty{position:relative}.apexcharts-trellis-empty-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f));opacity:.45;pointer-events:none}.apexcharts-trellis-cell-hidden>*{visibility:hidden}.apexcharts-trellis-gradient-legend{margin:10px auto 0}.apexcharts-trellis-panel.apexcharts-trellis-skeleton{background:var(--apx-fore, var(--apx-trellis-fore, #373d3f));opacity:.05;border-radius:4px}.apexcharts-trellis[data-tooltip-mode=panel] .apexcharts-trellis-cell:not(:hover) .apexcharts-tooltip,.apexcharts-trellis[data-tooltip-mode=panel] .apexcharts-trellis-cell:not(:hover) .apexcharts-xaxistooltip,.apexcharts-trellis[data-tooltip-mode=panel] .apexcharts-trellis-cell:not(:hover) .apexcharts-yaxistooltip{opacity:0!important}.apexcharts-trellis[data-tooltip-mode=grid] .apexcharts-trellis-cell .apexcharts-tooltip,.apexcharts-trellis[data-tooltip-mode=grid] .apexcharts-trellis-cell .apexcharts-xaxistooltip,.apexcharts-trellis[data-tooltip-mode=grid] .apexcharts-trellis-cell .apexcharts-yaxistooltip{opacity:0!important}.apexcharts-trellis-tooltip{position:absolute;top:0;left:0;z-index:14;pointer-events:none;opacity:0;transition:opacity .1s ease;background:var(--apx-bg, #fff);color:var(--apx-fore, var(--apx-trellis-fore, #373d3f));border:1px solid rgba(120,120,120,.25);border-radius:5px;box-shadow:2px 2px 6px -4px #0006;font-size:12px;min-width:140px;max-width:320px}.apexcharts-trellis-tooltip-active{opacity:1}.apexcharts-trellis-tooltip .apexcharts-tooltip-title{padding:5px 10px;font-weight:600;background:#78787814;border-bottom:1px solid rgba(120,120,120,.18);margin-bottom:2px}.apexcharts-trellis-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:2px 10px;line-height:1.6}.apexcharts-trellis-tooltip-row-active{background:#7878781a;font-weight:600}.apexcharts-trellis-tooltip-key{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apexcharts-trellis-tooltip-vals{display:flex;gap:10px;white-space:nowrap}.apexcharts-trellis-tooltip-val{display:inline-flex;align-items:center;gap:5px}.apexcharts-trellis-tooltip-marker{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.apexcharts-trellis-cell-promoted{grid-column:1 / -1}.apexcharts-trellis-cell-parked{display:none}.apexcharts-trellis-cell-promoted.apexcharts-trellis-mute-y .apexcharts-yaxis,.apexcharts-trellis-cell-promoted.apexcharts-trellis-mute-x .apexcharts-xaxis{opacity:1}.apexcharts-trellis-header-clickable{cursor:pointer}.apexcharts-trellis-header-clickable:hover{text-decoration:underline;text-underline-offset:3px}.apexcharts-trellis-breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;padding:2px 0 6px;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-breadcrumb-back{border:none;background:none;padding:0;font-size:12px;cursor:pointer;color:var(--apx-accent, #008ffb)}.apexcharts-trellis-breadcrumb-back:hover{text-decoration:underline}.apexcharts-trellis-breadcrumb-sep{opacity:.5}.apexcharts-trellis-breadcrumb-current{font-weight:600}.apexcharts-trellis-menu{position:absolute;top:26px;right:0;display:none;flex-direction:column;min-width:132px;background:var(--apx-bg, #fff);border:1px solid rgba(120,120,120,.25);border-radius:5px;box-shadow:2px 2px 6px -4px #0006;padding:4px;z-index:15}.apexcharts-trellis-menu-open{display:flex}.apexcharts-trellis-menu-item{border:none;background:none;text-align:left;font-size:12px;padding:5px 8px;border-radius:3px;cursor:pointer;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-menu-item:hover{background:#7878781f}.apexcharts-trellis-toolbar{position:absolute;top:0;right:0;display:flex;gap:2px;z-index:12}.apexcharts-trellis-tool{border:0;background:transparent;padding:2px;cursor:pointer;border-radius:3px;color:#6e8192;line-height:0}.apexcharts-trellis-tool:hover{color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-tool.apexcharts-selected{color:var(--apx-accent, #008ffb)}.apexcharts-trellis-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;padding:8px 10px 2px}.apexcharts-trellis-legend-item{display:flex;align-items:center;gap:6px;cursor:pointer;line-height:1}.apexcharts-trellis-legend-item .apexcharts-legend-marker{width:12px;height:12px;border-radius:50%;display:inline-block}.apexcharts-trellis-legend-item .apexcharts-legend-text{font-size:12px;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-legend-item.apexcharts-inactive-legend{opacity:.45}@media print{.apexcharts-canvas.apexcharts-printing,.apexcharts-canvas.apexcharts-printing svg{max-width:100%!important}.apexcharts-canvas.apexcharts-printing svg{height:auto!important}.apexcharts-canvas.apexcharts-printing{height:auto!important}.apexcharts-toolbar{display:none!important}}';
32973
+ const apexCSS = '@keyframes opaque{0%{opacity:0}to{opacity:1}}.apexcharts-canvas{position:relative;direction:ltr!important;user-select:none;--apexcharts-focus-color: #008FFB}.apexcharts-canvas .apexcharts-theme-dark,.apexcharts-theme-dark.apexcharts-canvas{--apexcharts-focus-color: #FFD500}.apexcharts-canvas.apexcharts-high-contrast,.apexcharts-high-contrast.apexcharts-canvas{--apexcharts-focus-color: #FFFF00}.apexcharts-sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.apexcharts-canvas:not(.apexcharts-ignore-reduced-motion) *,.apexcharts-canvas:not(.apexcharts-ignore-reduced-motion) *:before,.apexcharts-canvas:not(.apexcharts-ignore-reduced-motion) *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.apexcharts-canvas ::-webkit-scrollbar{-webkit-appearance:none;width:6px}.apexcharts-canvas ::-webkit-scrollbar-thumb{border-radius:4px;background-color:#00000080;box-shadow:0 0 1px #ffffff80;-webkit-box-shadow:0 0 1px rgba(255,255,255,.5)}.apexcharts-inner{position:relative}.apexcharts-text tspan{font-family:inherit}rect.legend-mouseover-inactive,.legend-mouseover-inactive rect,.legend-mouseover-inactive path,.legend-mouseover-inactive circle,.legend-mouseover-inactive line,.legend-mouseover-inactive text.apexcharts-yaxis-title-text,.legend-mouseover-inactive text.apexcharts-yaxis-label{transition:.15s ease all;opacity:.2}.apexcharts-crossfilter-dimmed{transition:opacity .25s ease;opacity:var(--apx-cf-dim, .2)}.apexcharts-cf-table{border-collapse:collapse;width:100%;font-size:13px}.apexcharts-cf-table caption{caption-side:bottom;text-align:right;padding:6px 2px;font-size:12px;opacity:.7}.apexcharts-cf-table th,.apexcharts-cf-table td{padding:6px 10px;text-align:left;border-bottom:1px solid rgba(0,0,0,.08)}.apexcharts-cf-table th{font-weight:600;border-bottom-width:2px}.apexcharts-cf-table tbody tr:hover{background:#6366f10f}.apexcharts-canvas{--apx-measure-up: #16a34a;--apx-measure-down: #dc2626;--apx-measure-neutral: #64748b;--apx-measure-guide: #94a3b8}.apexcharts-measure-capture{cursor:crosshair}.apexcharts-canvas{--apx-menu-bg: #ffffff;--apx-menu-fg: #1e293b;--apx-menu-border: #e2e8f0;--apx-menu-hover: #f1f5f9;--apx-menu-shadow: rgba(15, 23, 42, .18)}.apexcharts-context-menu{min-width:168px;padding:4px;border-radius:8px;background:var(--apx-menu-bg);border:1px solid var(--apx-menu-border);box-shadow:0 6px 22px var(--apx-menu-shadow);font-family:Helvetica,Arial,sans-serif;font-size:13px;z-index:20;user-select:none}.apexcharts-context-menu-item{display:block;width:100%;box-sizing:border-box;text-align:left;padding:7px 12px;border:0;border-radius:5px;background:transparent;color:var(--apx-menu-fg);font:inherit;cursor:pointer}.apexcharts-context-menu-item:hover,.apexcharts-context-menu-item--active{background:var(--apx-menu-hover)}.apexcharts-context-menu-item:focus{outline:none}.apexcharts-canvas{--apx-ink-card-bg: #ffffff;--apx-ink-card-fg: #1e293b;--apx-ink-card-border: #e2e8f0;--apx-ink-card-hover: #f1f5f9;--apx-ink-card-accent: #6366f1;--apx-ink-card-shadow: rgba(15, 23, 42, .18)}.apexcharts-ink-card{position:absolute;z-index:25;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:8px;background:var(--apx-ink-card-bg);border:1px solid var(--apx-ink-card-border);box-shadow:0 6px 22px var(--apx-ink-card-shadow);font-family:Helvetica,Arial,sans-serif;font-size:12px;color:var(--apx-ink-card-fg);user-select:none}.apexcharts-ink-card-row{display:flex;align-items:center;gap:4px}.apexcharts-ink-card input.apexcharts-ink-editor{flex:1 1 auto;width:150px;min-width:0;box-sizing:border-box;padding:4px 6px;font:inherit;color:inherit;background:transparent;border:1px solid var(--apx-ink-card-border);border-radius:5px}.apexcharts-ink-card input.apexcharts-ink-editor:focus{outline:none;border-color:var(--apx-ink-card-accent)}.apexcharts-ink-btn{flex:0 0 auto;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:5px;background:transparent;color:inherit;font:inherit;font-size:12px;line-height:1;cursor:pointer}.apexcharts-ink-btn:hover,.apexcharts-ink-btn--active{background:var(--apx-ink-card-hover)}.apexcharts-ink-btn:focus-visible,.apexcharts-ink-swatch:focus-visible{outline:2px solid var(--apx-ink-card-accent);outline-offset:1px}.apexcharts-ink-btn--bold{font-weight:700}.apexcharts-ink-btn--delete:hover{color:#dc2626}.apexcharts-ink-swatch{flex:0 0 auto;width:16px;height:16px;padding:0;border:1px solid rgba(100,116,139,.45);border-radius:50%;cursor:pointer}.apexcharts-ink-swatch--active{box-shadow:0 0 0 2px var(--apx-ink-card-bg),0 0 0 4px var(--apx-ink-card-accent)}.apexcharts-ink-sep{flex:0 0 auto;width:1px;height:16px;margin:0 2px;background:var(--apx-ink-card-border)}.apexcharts-ink-cardlabel{flex:0 0 auto;font-size:10px;letter-spacing:.4px;text-transform:uppercase;opacity:.65;margin-right:2px}.apexcharts-ink-marker-size{flex:0 0 auto;min-width:16px;text-align:center;font-variant-numeric:tabular-nums}.apexcharts-legend-text{padding-left:15px;margin-left:-15px}.apexcharts-legend-series[role=button]:focus{outline:2px solid var(--apexcharts-focus-color, #008FFB);outline-offset:2px}.apexcharts-legend-series[role=button]:focus:not(:focus-visible){outline:none}.apexcharts-legend-series[role=button]:focus-visible{outline:2px solid var(--apexcharts-focus-color, #008FFB);outline-offset:2px}.apexcharts-series-collapsed{opacity:0}.apexcharts-series-collapsed.apexcharts-series-collapsing{opacity:1}.apexcharts-datalabels.apexcharts-series-collapsing{animation:apexcharts-datalabels-exit var(--apexcharts-dl-exit, .4s) ease-in forwards}@keyframes apexcharts-datalabels-exit{0%{opacity:1}to{opacity:0}}.apexcharts-canvas svg:focus:not(:focus-visible){outline:none}.apexcharts-bar-area.apexcharts-keyboard-focused,.apexcharts-candlestick-area.apexcharts-keyboard-focused,.apexcharts-boxPlot-area.apexcharts-keyboard-focused,.apexcharts-violin-area.apexcharts-keyboard-focused,.apexcharts-rangebar-area.apexcharts-keyboard-focused,.apexcharts-pie-area.apexcharts-keyboard-focused,.apexcharts-heatmap-rect.apexcharts-keyboard-focused,.apexcharts-treemap-rect.apexcharts-keyboard-focused,.apexcharts-keyboard-focus-ring{stroke:var(--apexcharts-focus-color, #008FFB);stroke-width:2;stroke-opacity:1}.apexcharts-keyboard-focus-ring{fill:none;pointer-events:none}.apexcharts-tooltip{--apx-tt-bg: #ffffff;--apx-tt-border: rgba(15, 23, 42, .12);--apx-tt-shadow-dir: 1;--apx-tt-shadow: 0 calc(var(--apx-tt-shadow-dir) * 1px) 2px rgba(15, 23, 42, .06), 0 calc(var(--apx-tt-shadow-dir) * 4px) 8px -2px rgba(15, 23, 42, .1), 0 calc(var(--apx-tt-shadow-dir) * 12px) 20px -8px rgba(15, 23, 42, .14);--apx-tt-arrow-bg: var(--apx-tt-bg);--apx-tt-color: #0f172a;--apx-tt-color-muted: rgba(15, 23, 42, .55);border-radius:8px;background:var(--apx-tt-bg);border:1px solid var(--apx-tt-border);box-shadow:var(--apx-tt-shadow);color:var(--apx-tt-color);cursor:default;font-size:13px;left:0;top:0;opacity:0;pointer-events:none;position:absolute;display:flex;flex-direction:column;padding:2px 0;white-space:nowrap;z-index:12;transition:opacity .12s ease}.apexcharts-tooltip.apexcharts-active{opacity:1;transition:opacity .12s ease}.apexcharts-tooltip.apexcharts-tooltip-interactive.apexcharts-active{pointer-events:auto}.apexcharts-tooltip.apexcharts-active[data-positioned=true]{transition:opacity .12s ease,left .16s ease-out,top .16s ease-out}.apexcharts-tooltip.apexcharts-theme-dark{--apx-tt-bg: #1c1c1f;--apx-tt-border: rgba(255, 255, 255, .16);--apx-tt-shadow: 0 calc(var(--apx-tt-shadow-dir) * 1px) 2px rgba(0, 0, 0, .24), 0 calc(var(--apx-tt-shadow-dir) * 4px) 8px -2px rgba(0, 0, 0, .3), 0 calc(var(--apx-tt-shadow-dir) * 12px) 20px -8px rgba(0, 0, 0, .38);--apx-tt-color: #f3f4f6;--apx-tt-color-muted: rgba(243, 244, 246, .55)}.apexcharts-tooltip *{font-family:inherit}.apexcharts-tooltip.apexcharts-annotation-tooltip{padding:6px 10px;max-width:240px;white-space:normal;line-height:1.4;pointer-events:none;z-index:13}.apexcharts-tooltip-title{padding:8px 12px 4px;font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--apx-tt-color-muted);background:transparent;border-bottom:none;margin-bottom:0}.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title{background:transparent;border-bottom:none}.apexcharts-tooltip.apexcharts-tooltip-fill-series{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;padding:0;overflow:hidden;color:#fff}.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-title{background:#00000038;color:#fff;opacity:1;padding:6px 12px}.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-series-group{color:#fff}.apexcharts-tooltip-arrow{position:absolute;box-sizing:border-box;width:10px;height:10px;background:var(--apx-tt-arrow-bg);transform:rotate(45deg);pointer-events:none;top:calc(var(--apx-tt-arrow-y, calc(50% + 1px) ) - 6px)}.apexcharts-tooltip[data-placement=right] .apexcharts-tooltip-arrow{left:-6px;border-left:1px solid var(--apx-tt-border);border-bottom:1px solid var(--apx-tt-border)}.apexcharts-tooltip[data-placement=left] .apexcharts-tooltip-arrow{right:-6px;border-top:1px solid var(--apx-tt-border);border-right:1px solid var(--apx-tt-border)}.apexcharts-tooltip[data-placement=top] .apexcharts-tooltip-arrow,.apexcharts-tooltip[data-placement=bottom] .apexcharts-tooltip-arrow{top:auto;left:calc(var(--apx-tt-arrow-x, calc(50% + 1px) ) - 6px)}.apexcharts-tooltip[data-placement=top] .apexcharts-tooltip-arrow{bottom:-6px;border-right:1px solid var(--apx-tt-border);border-bottom:1px solid var(--apx-tt-border)}.apexcharts-tooltip[data-placement=bottom] .apexcharts-tooltip-arrow{top:-6px;border-top:1px solid var(--apx-tt-border);border-left:1px solid var(--apx-tt-border)}.apexcharts-tooltip[data-placement=bottom]{--apx-tt-shadow-dir: -1 }.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value{display:inline-block;margin-left:5px;font-weight:600}.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty{display:none}.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value{padding:6px 0 5px}.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value{display:flex}.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty){margin-top:-6px}.apexcharts-tooltip-marker{display:inline-flex;align-items:center;justify-content:center;position:relative;width:12px;height:12px;margin-right:6px;vertical-align:middle;color:inherit}.apexcharts-tooltip-marker svg{width:100%;height:100%;display:block}.apexcharts-tooltip-series-group{padding:4px 12px;display:none;gap:8px;text-align:left;justify-content:left;align-items:center}.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker{opacity:1}.apexcharts-tooltip-series-group.apexcharts-active:last-child,.apexcharts-tooltip-series-group:last-child{padding-bottom:8px}.apexcharts-tooltip-y-group{padding:6px 0 5px}.apexcharts-tooltip.apexcharts-tooltip-compact{padding:3px 8px;font-size:11px;line-height:1.35}.apexcharts-tooltip-compact .apexcharts-tooltip-title{padding:0;font-size:11px;white-space:nowrap}.apexcharts-tooltip-compact .apexcharts-tooltip-series-group,.apexcharts-tooltip-compact .apexcharts-tooltip-series-group.apexcharts-active:last-child,.apexcharts-tooltip-compact .apexcharts-tooltip-series-group:last-child{padding:0;gap:5px}.apexcharts-tooltip-compact .apexcharts-tooltip-y-group{padding:0}.apexcharts-tooltip-compact .apexcharts-tooltip-marker{width:8px;height:8px}.apexcharts-tooltip.apexcharts-tooltip-compact.apexcharts-tooltip-value-only{flex-direction:row;align-items:baseline;gap:6px}.apexcharts-tooltip-value-only .apexcharts-tooltip-marker,.apexcharts-tooltip-value-only .apexcharts-tooltip-text-y-label{display:none}.apexcharts-custom-tooltip,.apexcharts-tooltip-box{padding:4px 8px}.apexcharts-tooltip-boxPlot{display:flex;flex-direction:column-reverse}.apexcharts-tooltip-box>div{margin:4px 0}.apexcharts-tooltip-box span.value{font-weight:700}.apexcharts-tooltip-rangebar{padding:5px 8px}.apexcharts-tooltip-rangebar .category{font-weight:600;color:#777}.apexcharts-tooltip-rangebar .series-name{font-weight:700;display:block;margin-bottom:5px}.apexcharts-tooltip-stream{padding:5px 8px}.apexcharts-tooltip-stream .apexcharts-tooltip-title{background:transparent;border:0;padding:0 0 4px;margin:0;font-weight:700}.apexcharts-tooltip-stream-band{display:flex;align-items:center;gap:5px;line-height:1.6;opacity:.72}.apexcharts-tooltip-stream-band.apexcharts-active{opacity:1;font-weight:700}.apexcharts-tooltip-stream-band .series-name{flex:1 1 auto;margin-right:8px}.apexcharts-tooltip-stream-band .value{font-weight:700;margin-left:auto}.apexcharts-tooltip-stream-total{display:flex;align-items:center;margin-top:4px;padding-top:4px;border-top:1px solid var(--apx-tt-border, rgba(15, 23, 42, .12))}.apexcharts-tooltip-stream-total .series-name{flex:1 1 auto;font-weight:600}.apexcharts-tooltip-stream-total .value{font-weight:700;margin-left:auto}.apexcharts-streamgraph-label{pointer-events:none}.apexcharts-xaxistooltip,.apexcharts-yaxistooltip{--apx-axt-bg: #ffffff;--apx-axt-border: rgba(15, 23, 42, .08);--apx-axt-color: #0f172a;--apx-axt-shadow: 0 4px 12px -4px rgba(15, 23, 42, .18), 0 1px 3px -1px rgba(15, 23, 42, .12);opacity:0;pointer-events:none;color:var(--apx-axt-color);font-size:12px;font-weight:500;text-align:center;border-radius:6px;position:absolute;z-index:10;background:var(--apx-axt-bg);border:1px solid var(--apx-axt-border);box-shadow:var(--apx-axt-shadow)}.apexcharts-xaxistooltip.apexcharts-theme-dark,.apexcharts-yaxistooltip.apexcharts-theme-dark{--apx-axt-bg: #1c1c1f;--apx-axt-border: rgba(255, 255, 255, .1);--apx-axt-color: #f3f4f6;--apx-axt-shadow: 0 4px 12px -4px rgba(0, 0, 0, .55), 0 1px 3px -1px rgba(0, 0, 0, .45) }.apexcharts-xaxistooltip{padding:4px 8px;transition:.15s ease all}.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before{left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.apexcharts-xaxistooltip:after{border-color:transparent;border-width:5px;margin-left:-5px}.apexcharts-xaxistooltip:before{border-color:transparent;border-width:6px;margin-left:-6px}.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before{bottom:100%}.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before{top:100%}.apexcharts-xaxistooltip-bottom:after{border-bottom-color:var(--apx-axt-bg)}.apexcharts-xaxistooltip-bottom:before{border-bottom-color:var(--apx-axt-border)}.apexcharts-xaxistooltip-top:after{border-top-color:var(--apx-axt-bg)}.apexcharts-xaxistooltip-top:before{border-top-color:var(--apx-axt-border)}.apexcharts-xaxistooltip.apexcharts-active{opacity:1;transition:.15s ease all}.apexcharts-yaxistooltip{padding:3px 8px}.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before{top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.apexcharts-yaxistooltip:after{border-color:transparent;border-width:5px;margin-top:-5px}.apexcharts-yaxistooltip:before{border-color:transparent;border-width:6px;margin-top:-6px}.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before{left:100%}.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before{right:100%}.apexcharts-yaxistooltip-left:after{border-left-color:var(--apx-axt-bg)}.apexcharts-yaxistooltip-left:before{border-left-color:var(--apx-axt-border)}.apexcharts-yaxistooltip-right:after{border-right-color:var(--apx-axt-bg)}.apexcharts-yaxistooltip-right:before{border-right-color:var(--apx-axt-border)}.apexcharts-yaxistooltip.apexcharts-active{opacity:1}.apexcharts-yaxistooltip-hidden{display:none}.apexcharts-xcrosshairs,.apexcharts-ycrosshairs{pointer-events:none;opacity:0;transition:.15s ease all}.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active{opacity:1;transition:.15s ease all}.apexcharts-ycrosshairs-hidden{opacity:0}.apexcharts-selection-rect{cursor:move}.svg_select_shape{stroke-width:1;stroke-dasharray:10 10;stroke:#000;stroke-opacity:.1;pointer-events:none;fill:none}.svg_select_handle{stroke-width:3;stroke:#000;fill:none}.svg_select_handle_r{cursor:e-resize}.svg_select_handle_l{cursor:w-resize}.apexcharts-svg.apexcharts-zoomable.hovering-zoom{cursor:crosshair}.apexcharts-svg.apexcharts-zoomable.hovering-pan{cursor:move}.apexcharts-wheel-hint{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .2s ease}.apexcharts-wheel-hint-visible{opacity:1}.apexcharts-wheel-hint span{padding:6px 12px;border-radius:8px;font-size:13px;color:#fff;background:#1c1c1fd1}.apexcharts-theme-dark .apexcharts-wheel-hint span{color:#1c1c1f;background:#ffffffe6}@media(prefers-reduced-motion:reduce){.apexcharts-wheel-hint{transition:none}}.apexcharts-menu-icon,.apexcharts-measure-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon{cursor:pointer;width:26px;height:24px;line-height:24px;color:#6e8192;text-align:center;padding:0;margin:0;background:transparent;border:0;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;transition:background-color .12s ease,color .12s ease}.apexcharts-menu-icon svg,.apexcharts-measure-icon svg,.apexcharts-pan-icon svg,.apexcharts-reset-icon svg,.apexcharts-selection-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.apexcharts-theme-dark .apexcharts-menu-icon,.apexcharts-theme-dark .apexcharts-measure-icon,.apexcharts-theme-dark .apexcharts-pan-icon,.apexcharts-theme-dark .apexcharts-reset-icon,.apexcharts-theme-dark .apexcharts-selection-icon,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon,.apexcharts-theme-dark .apexcharts-zoom-icon,.apexcharts-theme-dark .apexcharts-zoomin-icon,.apexcharts-theme-dark .apexcharts-zoomout-icon{color:#d4d6dc}.apexcharts-canvas .apexcharts-measure-icon.apexcharts-selected,.apexcharts-canvas .apexcharts-pan-icon.apexcharts-selected,.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected{background:#008ffb1f;color:#008ffb}.apexcharts-theme-light .apexcharts-menu-icon:hover,.apexcharts-theme-light .apexcharts-measure-icon:not(.apexcharts-selected):hover,.apexcharts-theme-light .apexcharts-pan-icon:not(.apexcharts-selected):hover,.apexcharts-theme-light .apexcharts-reset-icon:hover,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover,.apexcharts-theme-light .apexcharts-zoomin-icon:hover,.apexcharts-theme-light .apexcharts-zoomout-icon:hover{background:#0f172a0f;color:#1f2937}.apexcharts-theme-dark .apexcharts-menu-icon:hover,.apexcharts-theme-dark .apexcharts-measure-icon:not(.apexcharts-selected):hover,.apexcharts-theme-dark .apexcharts-pan-icon:not(.apexcharts-selected):hover,.apexcharts-theme-dark .apexcharts-reset-icon:hover,.apexcharts-theme-dark .apexcharts-selection-icon:not(.apexcharts-selected):hover,.apexcharts-theme-dark .apexcharts-zoom-icon:not(.apexcharts-selected):hover,.apexcharts-theme-dark .apexcharts-zoomin-icon:hover,.apexcharts-theme-dark .apexcharts-zoomout-icon:hover{background:#ffffff14;color:#fff}.apexcharts-menu-icon,.apexcharts-selection-icon{position:relative}.apexcharts-toolbar{position:absolute;z-index:11;display:inline-flex;align-items:center;gap:1px;padding:3px;border-radius:8px;background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.apexcharts-theme-dark .apexcharts-toolbar{background:#1c1c1fd1}.apexcharts-menu{background:#fffffff2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);position:absolute;top:calc(100% + 4px);border:1px solid rgba(15,23,42,.08);border-radius:8px;padding:4px;right:0;opacity:0;min-width:120px;transition:opacity .15s ease,transform .15s ease;transform:translateY(-2px);pointer-events:none;box-shadow:0 4px 16px -4px #0f172a1f,0 2px 4px -1px #0f172a0f}.apexcharts-menu.apexcharts-menu-open{opacity:1;transform:translateY(0);pointer-events:all}.apexcharts-menu-item{padding:6px 9px;font-size:12px;border-radius:5px;cursor:pointer}.apexcharts-theme-light .apexcharts-menu-item:hover{background:#0f172a0f}.apexcharts-theme-dark .apexcharts-menu{background:#1c1c1feb;border-color:#ffffff14;color:#f3f4f6;box-shadow:0 4px 16px -4px #00000080,0 2px 4px -1px #0006}.apexcharts-theme-dark .apexcharts-menu-item:hover{background:#ffffff14}@media screen and (min-width:768px){.apexcharts-canvas:hover .apexcharts-toolbar{opacity:1}}.apexcharts-toolbar:focus-within{opacity:1}.apexcharts-menu-icon:focus-visible,.apexcharts-measure-icon:focus-visible,.apexcharts-pan-icon:focus-visible,.apexcharts-reset-icon:focus-visible,.apexcharts-selection-icon:focus-visible,.apexcharts-toolbar-custom-icon:focus-visible,.apexcharts-zoom-icon:focus-visible,.apexcharts-zoomin-icon:focus-visible,.apexcharts-zoomout-icon:focus-visible{outline:2px solid var(--apexcharts-focus-color, #008FFB);outline-offset:1px;border-radius:5px}.apexcharts-menu-item:focus-visible{outline:2px solid var(--apexcharts-focus-color, #008FFB);outline-offset:-2px;background:#eee}.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points{opacity:0}.apexcharts-hidden-element-shown{opacity:1;transition:.25s ease all}.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label,.apexcharts-pie-name-label,.apexcharts-pie-name-label-group,.apexcharts-pie-label-connector,.apexcharts-unit-outer-label,.apexcharts-unit-outer-label-group,.apexcharts-unit-label-connector{cursor:default;pointer-events:none}.apexcharts-pie-label-connector,.apexcharts-unit-label-connector{fill:none}.apexcharts-pie-label-delay,.apexcharts-unit-label-delay{opacity:0;animation-name:opaque;animation-duration:.3s;animation-fill-mode:forwards;animation-timing-function:ease}.apexcharts-unit-label-delay{animation-duration:.5s}.apexcharts-radialbar-label{cursor:pointer}.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-gridline,.apexcharts-line,.apexcharts-point-annotation-label,.apexcharts-radar-series path:not(.apexcharts-marker),.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect,.no-pointer-events{pointer-events:none}.apexcharts-tooltip-active .apexcharts-marker{transition:.15s ease all}.apexcharts-radar-series .apexcharts-yaxis,.apexcharts-bar-goals-markers,.apexcharts-bar-shadows,.apexcharts-rangebar-goals-markers{pointer-events:none}.apexcharts-drilldown-target{cursor:pointer}.apexcharts-breadcrumb{position:absolute;z-index:11;display:inline-flex;align-items:center;gap:2px;font-size:12px;font-family:inherit;padding:2px 4px}.apexcharts-breadcrumb-item{background:transparent;border:none;padding:2px 6px;border-radius:3px;font:inherit;color:inherit;cursor:pointer;line-height:1.2}.apexcharts-breadcrumb-item:hover:not(.apexcharts-breadcrumb-current){background:#00000014}.apexcharts-breadcrumb-arrow{margin-right:4px;font-weight:600;user-select:none}.apexcharts-breadcrumb-current{cursor:default;font-weight:600;opacity:.85}.apexcharts-breadcrumb-separator{opacity:.5;user-select:none}.apexcharts-theme-dark .apexcharts-breadcrumb-item:hover:not(.apexcharts-breadcrumb-current){background:#ffffff1f}.apexcharts-drilldown-loading{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;font-family:inherit;color:inherit;background:#ffffff9e;cursor:progress}.apexcharts-drilldown-loading-spinner{width:26px;height:26px;border-radius:50%;border:2.5px solid rgba(0,0,0,.16);border-top-color:#0000008c;animation:apexcharts-drilldown-spin .7s linear infinite}.apexcharts-drilldown-loading-text{opacity:.8}.apexcharts-theme-dark .apexcharts-drilldown-loading{background:#1e1e1e9e}.apexcharts-theme-dark .apexcharts-drilldown-loading-spinner{border-color:#ffffff38;border-top-color:#ffffffb3}@keyframes apexcharts-drilldown-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.apexcharts-canvas:not(.apexcharts-ignore-reduced-motion) .apexcharts-drilldown-loading-spinner{animation:apexcharts-drilldown-pulse 1.4s ease-in-out infinite!important}@keyframes apexcharts-drilldown-pulse{0%,to{opacity:.35}50%{opacity:1}}}.apexcharts-disable-transitions *{transition:none!important}.apexcharts-trellis{position:relative}.apexcharts-trellis-grid{display:grid}.apexcharts-trellis-cell{min-width:0;position:relative}.apexcharts-trellis-header{font-size:12px;font-weight:600;line-height:22px;height:22px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-title{font-size:14px;font-weight:700;padding:2px 0 6px;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-mute-y .apexcharts-yaxis,.apexcharts-trellis-mute-x .apexcharts-xaxis{opacity:0}.apexcharts-trellis-has-toolbar{padding-top:24px}.apexcharts-trellis-strip{font-size:12px;font-weight:600;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apexcharts-trellis-strip-column{text-align:center;line-height:22px;height:22px;align-self:end}.apexcharts-trellis-strip-row{align-self:center;max-width:140px;padding-right:6px}.apexcharts-trellis-cell-empty{position:relative}.apexcharts-trellis-empty-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f));opacity:.45;pointer-events:none}.apexcharts-trellis-cell-hidden>*{visibility:hidden}.apexcharts-trellis-gradient-legend{margin:10px auto 0}.apexcharts-trellis-panel.apexcharts-trellis-skeleton{background:var(--apx-fore, var(--apx-trellis-fore, #373d3f));opacity:.05;border-radius:4px}.apexcharts-trellis[data-tooltip-mode=panel] .apexcharts-trellis-cell:not(:hover) .apexcharts-tooltip,.apexcharts-trellis[data-tooltip-mode=panel] .apexcharts-trellis-cell:not(:hover) .apexcharts-xaxistooltip,.apexcharts-trellis[data-tooltip-mode=panel] .apexcharts-trellis-cell:not(:hover) .apexcharts-yaxistooltip{opacity:0!important}.apexcharts-trellis[data-tooltip-mode=grid] .apexcharts-trellis-cell .apexcharts-tooltip,.apexcharts-trellis[data-tooltip-mode=grid] .apexcharts-trellis-cell .apexcharts-xaxistooltip,.apexcharts-trellis[data-tooltip-mode=grid] .apexcharts-trellis-cell .apexcharts-yaxistooltip{opacity:0!important}.apexcharts-trellis-tooltip{position:absolute;top:0;left:0;z-index:14;pointer-events:none;opacity:0;transition:opacity .1s ease;background:var(--apx-bg, #fff);color:var(--apx-fore, var(--apx-trellis-fore, #373d3f));border:1px solid rgba(120,120,120,.25);border-radius:5px;box-shadow:2px 2px 6px -4px #0006;font-size:12px;min-width:140px;max-width:320px}.apexcharts-trellis-tooltip-active{opacity:1}.apexcharts-trellis-tooltip .apexcharts-tooltip-title{padding:5px 10px;font-weight:600;background:#78787814;border-bottom:1px solid rgba(120,120,120,.18);margin-bottom:2px}.apexcharts-trellis-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:2px 10px;line-height:1.6}.apexcharts-trellis-tooltip-row-active{background:#7878781a;font-weight:600}.apexcharts-trellis-tooltip-key{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apexcharts-trellis-tooltip-vals{display:flex;gap:10px;white-space:nowrap}.apexcharts-trellis-tooltip-val{display:inline-flex;align-items:center;gap:5px}.apexcharts-trellis-tooltip-marker{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.apexcharts-trellis-cell-promoted{grid-column:1 / -1}.apexcharts-trellis-cell-parked{display:none}.apexcharts-trellis-cell-promoted.apexcharts-trellis-mute-y .apexcharts-yaxis,.apexcharts-trellis-cell-promoted.apexcharts-trellis-mute-x .apexcharts-xaxis{opacity:1}.apexcharts-trellis-header-clickable{cursor:pointer}.apexcharts-trellis-header-clickable:hover{text-decoration:underline;text-underline-offset:3px}.apexcharts-trellis-breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;padding:2px 0 6px;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-breadcrumb-back{border:none;background:none;padding:0;font-size:12px;cursor:pointer;color:var(--apx-accent, #008ffb)}.apexcharts-trellis-breadcrumb-back:hover{text-decoration:underline}.apexcharts-trellis-breadcrumb-sep{opacity:.5}.apexcharts-trellis-breadcrumb-current{font-weight:600}.apexcharts-trellis-menu{position:absolute;top:26px;right:0;display:none;flex-direction:column;min-width:132px;background:var(--apx-bg, #fff);border:1px solid rgba(120,120,120,.25);border-radius:5px;box-shadow:2px 2px 6px -4px #0006;padding:4px;z-index:15}.apexcharts-trellis-menu-open{display:flex}.apexcharts-trellis-menu-item{border:none;background:none;text-align:left;font-size:12px;padding:5px 8px;border-radius:3px;cursor:pointer;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-menu-item:hover{background:#7878781f}.apexcharts-trellis-toolbar{position:absolute;top:0;right:0;display:flex;gap:2px;z-index:12}.apexcharts-trellis-tool{border:0;background:transparent;padding:2px;cursor:pointer;border-radius:3px;color:#6e8192;line-height:0}.apexcharts-trellis-tool:hover{color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-tool.apexcharts-selected{color:var(--apx-accent, #008ffb)}.apexcharts-trellis-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;padding:8px 10px 2px}.apexcharts-trellis-legend-item{display:flex;align-items:center;gap:6px;cursor:pointer;line-height:1}.apexcharts-trellis-legend-item .apexcharts-legend-marker{width:12px;height:12px;border-radius:50%;display:inline-block}.apexcharts-trellis-legend-item .apexcharts-legend-text{font-size:12px;color:var(--apx-fore, var(--apx-trellis-fore, #373d3f))}.apexcharts-trellis-legend-item.apexcharts-inactive-legend{opacity:.45}@media print{.apexcharts-canvas.apexcharts-printing,.apexcharts-canvas.apexcharts-printing svg{max-width:100%!important}.apexcharts-canvas.apexcharts-printing svg{height:auto!important}.apexcharts-canvas.apexcharts-printing{height:auto!important}.apexcharts-toolbar{display:none!important}}';
32875
32974
  const e = globalThis.console;
32876
32975
  function t(t2, ...s2) {
32877
32976
  e.error(t2, ...s2);
@@ -33817,6 +33916,7 @@ var __async = (__this, __arguments, generator) => {
33817
33916
  if (w.config.chart.accessibility.enabled && w.config.chart.accessibility.keyboard.enabled && w.config.chart.accessibility.keyboard.navigation.enabled) {
33818
33917
  (_i = me.keyboardNavigation) == null ? void 0 : _i.init();
33819
33918
  }
33919
+ w.interact.keyNav = null;
33820
33920
  if (Environment.isBrowser() && w.globals.axisCharts && (w.axisFlags.isXNumeric || /** @type {Record<string,any>} */
33821
33921
  w.config.xaxis.convertedCatToNumeric || w.axisFlags.isRangeBar)) {
33822
33922
  if (w.config.chart.zoom.enabled || w.config.chart.selection && w.config.chart.selection.enabled || // @ts-ignore — chart.pan is an internal toolbar config property
@@ -35121,21 +35221,19 @@ var __async = (__this, __arguments, generator) => {
35121
35221
  * Returns the highest y value in the specified series.
35122
35222
  *
35123
35223
  * @param {number} [seriesIndex=0]
35124
- * @returns {number}
35224
+ * @returns {number | undefined}
35125
35225
  */
35126
35226
  getHighestValueInSeries(seriesIndex = 0) {
35127
- const range = new Range(this.w);
35128
- return range.getMinYMaxY(seriesIndex).highestY;
35227
+ return this.w.seriesData.series[seriesIndex] && new Range(this.w).getMinYMaxY(seriesIndex).highestY;
35129
35228
  }
35130
35229
  /**
35131
35230
  * Returns the lowest y value in the specified series.
35132
35231
  *
35133
35232
  * @param {number} [seriesIndex=0]
35134
- * @returns {number}
35233
+ * @returns {number | undefined}
35135
35234
  */
35136
35235
  getLowestValueInSeries(seriesIndex = 0) {
35137
- const range = new Range(this.w);
35138
- return range.getMinYMaxY(seriesIndex).lowestY;
35236
+ return this.w.seriesData.series[seriesIndex] && new Range(this.w).getMinYMaxY(seriesIndex).lowestY;
35139
35237
  }
35140
35238
  /**
35141
35239
  * Returns the sum of each series (the totals used for percentage calculations).