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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * ApexCharts v8.2.0
2
+ * ApexCharts v8.3.0
3
3
  * (c) 2018-2026 ApexCharts
4
4
  */
5
5
  "use strict";var t=Object.defineProperty,r=Object.defineProperties,e=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(r,e,n)=>e in r?t(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n,a=(t,r)=>{for(var e in r||(r={}))s.call(r,e)&&i(t,e,r[e]);if(n)for(var e of n(r))o.call(r,e)&&i(t,e,r[e]);return t},l=(t,n)=>r(t,e(n));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function u(t){if(t&&t.__esModule)return t;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const e in t)if("default"!==e){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:()=>t[e]})}return r.default=t,Object.freeze(r)}const c=u(require("apexcharts/core")),f=c.__apex_Utils,h="__apexcharts_series_transforms__";function d(t,r){t&&"string"==typeof t?"function"==typeof r?globalThis[h][t]=r:console.warn(`ApexCharts: registerSeriesTransform("${t}") expects a function (series, w) => series.`):console.warn("ApexCharts: registerSeriesTransform requires a non-empty name.")}globalThis[h]||(globalThis[h]={});const y="__apexcharts_row_sources__";function g(t,r){t&&"string"==typeof t?"function"==typeof r?globalThis[y][t]=r:console.warn(`ApexCharts: registerRowSource("${t}") expects a function (w, opts) => series.`):console.warn("ApexCharts: registerRowSource requires a non-empty name.")}function p(t){return(t.collapsedSeriesIndices||[]).concat(t.ancillaryCollapsedSeriesIndices||[])}function b(t,r){const e=(r.collapsedSeries||[]).concat(r.ancillaryCollapsedSeries||[]);return t.map((t,r)=>{const i=t||{},{hidden:u}=i,c=((t,r)=>{var e={};for(var i in t)s.call(t,i)&&r.indexOf(i)<0&&(e[i]=t[i]);if(null!=t&&n)for(var i of n(t))r.indexOf(i)<0&&o.call(t,i)&&(e[i]=t[i]);return e})(i,["hidden"]);let f=c.data;if(Array.isArray(f)&&!f.length){const t=e.find(t=>t.index===r);t&&Array.isArray(t.data)&&(f=t.data)}return l(a({},c),{data:Array.isArray(f)?f.slice():f})})}globalThis[y]||(globalThis[y]={});function m(t,r){const e=t.length;if(0===e)return NaN;if(1===e)return t[0];const n=(e-1)*r,s=Math.floor(n),o=Math.ceil(n);return s===o?t[s]:t[s]+(t[o]-t[s])*(n-s)}function A(t,r={}){if(!Array.isArray(t)||0===t.length)return null;const e=t.slice().sort((t,r)=>t-r);let n=e[0],s=e[e.length-1];const o=r.range;if(Array.isArray(o)&&2===o.length){const t=Number(o[0]),r=Number(o[1]);Number.isFinite(t)&&Number.isFinite(r)&&r>t&&(n=t,s=r)}if(!(s>n)){const t=Math.abs(n)>0?.05*Math.abs(n):.5;return{edges:[n-t,n+t],binWidth:2*t,rule:"single",capped:!1}}const i=s-n;let a,l;if("number"==typeof r.binWidth&&r.binWidth>0)a=r.binWidth,l="binWidth";else if("number"==typeof r.bins&&r.bins>=1)a=i/Math.floor(r.bins),l="count";else{const t=function(t,r,e){const n=t.length,s=t=>r/Math.max(1,Math.ceil(t)),o=()=>s(Math.log2(n)+1);switch(e){case"sqrt":return{width:s(Math.sqrt(n)),rule:"sqrt"};case"rice":return{width:s(2*Math.cbrt(n)),rule:"rice"};case"scott":{const r=function(t){const r=t.length;if(r<2)return 0;let e=0;for(let n=0;n<r;n++)e+=t[n];const n=e/r;let s=0;for(let e=0;e<r;e++){const r=t[e]-n;s+=r*r}return Math.sqrt(s/r)}(t);return r>0?{width:3.49*r*Math.pow(n,-1/3),rule:"scott"}:{width:o(),rule:"sturges"}}case"fd":{const r=m(t,.75)-m(t,.25);return r>0?{width:2*r*Math.pow(n,-1/3),rule:"fd"}:{width:o(),rule:"sturges"}}case"auto":{const r=o(),e=m(t,.75)-m(t,.25);if(e<=0)return{width:r,rule:"sturges"};const s=2*e*Math.pow(n,-1/3);return s<r?{width:s,rule:"fd"}:{width:r,rule:"sturges"}}default:return{width:o(),rule:"sturges"}}}(e,i,"string"==typeof r.bins?r.bins:"auto");a=t.width,l=t.rule}(!Number.isFinite(a)||a<=0)&&(a=i);let u=Math.ceil(i/a);(!Number.isFinite(u)||u<1)&&(u=1);let c=!1;u>1e3&&(u=1e3,c=!0),a=i/u;const f=new Array(u+1);for(let t=0;t<=u;t++)f[t]=n+t*a;return f[u]=Math.max(f[u],s),{edges:f,binWidth:a,rule:l,capped:c}}function w(t,r){const e=r.length-1;if(!(t>=r[0])||t>r[e])return-1;if(t===r[e])return e-1;const n=(r[e]-r[0])/e;if(n>0){let s=Math.floor((t-r[0])/n);return s<0&&(s=0),s>e-1&&(s=e-1),t<r[s]?s--:t>=r[s+1]&&s++,s<0||s>e-1?-1:s}let s=0,o=e-1;for(;s<=o;){const e=s+o>>1;if(t<r[e])o=e-1;else{if(!(t>=r[e+1]))return e;s=e+1}}return-1}function v(t,r){const e=Math.max(0,r.length-1),n=new Array(e);for(let t=0;t<e;t++)n[t]=[];for(let e=0;e<t.length;e++){const s=w(t[e],r);s>=0&&n[s].push(t[e])}return n}function x(t,r={}){if(!Array.isArray(t)||0===t.length)return null;const e=t.slice().sort((t,r)=>t-r),n=e.length;let s=r.bandwidth;if(!("number"==typeof s&&s>0)){const t=function(t){const r=t.length;if(r<2)return 0;let e=0;for(let n=0;n<r;n++)e+=t[n];const n=e/r;let s=0;for(let e=0;e<r;e++){const r=t[e]-n;s+=r*r}return Math.sqrt(s/r)}(e),r=m(e,.75)-m(e,.25);s=.9*(r>0?Math.min(t,r/1.349):t)*Math.pow(n,-.2)}if(!isFinite(s)||s<=0){const t=e[0],r=Math.abs(t)>0?.001*Math.abs(t):.001;return{density:[[t-r,0],[t,1],[t+r,0]],bandwidth:r}}const o=Math.max(8,Math.floor(r.resolution||64)),i=e[0]-2*s,a=(e[n-1]+2*s-i)/(o-1),l=1/(n*s*Math.sqrt(2*Math.PI)),u=[];for(let t=0;t<o;t++){const r=i+t*a;let o=0;for(let t=0;t<n;t++){const n=(r-e[t])/s;o+=Math.exp(-.5*n*n)}u.push([r,o*l])}return{density:u,bandwidth:s}}function M(t,r){var e;if(!t||"object"!=typeof t||Array.isArray(t))return null;let n=null;if(Array.isArray(t.points)?n=t.points:Array.isArray(null==(e=t.y)?void 0:e.points)?n=t.y.points:r&&Array.isArray(t.y)&&"number"==typeof t.y[0]&&(n=t.y),!n)return null;const s=[];for(let t=0;t<n.length;t++){const r=f.parseNumber(n[t]);null!==r&&isFinite(r)&&s.push(r)}return s.length?s:null}function O(t,r){var e,n;const s=null!=(e=t.statsDerived)?e:t.statsDerived={};return null!=(n=s[r])?n:s[r]=new Map}function S(t,r,e){const n=t.get(r);if(!n||!Array.isArray(e)||n.length!==e.length)return!1;for(let t=0;t<e.length;t++){const r=n[t],s=e[t];if(r!==s&&(!Array.isArray(r)||!Array.isArray(s)||r[0]!==s[0]||r[1]!==s[1]))return!1}return!0}function P(t){const r=[];if(!Array.isArray(t))return r;for(let e=0;e<t.length;e++){const n=t[e];let s=n;Array.isArray(n)?s=1===n.length?n[0]:n[1]:n&&"object"==typeof n&&(s=void 0!==n.y?n.y:n.x);const o=f.parseNumber(s);null!==o&&isFinite(o)&&r.push(o)}return r}function _(t,r){var e;const n=r.config,s=r.globals;if(!Array.isArray(t))return t;s.histogramRawSeries||(s.histogramRawSeries=b(t,s));const o=s.histogramRawSeries,i=(null==(e=n.plotOptions)?void 0:e.histogram)||{},u=o.map(t=>P(null==t?void 0:t.data));let c=[];if(1===u.length)c=u[0];else for(const t of u)c=c.concat(t);const f=A(c,{bins:i.bins,binWidth:i.binWidth,range:i.range});if(!f)return r.histogramData={edges:[],binWidth:0,counts:[],rule:"",capped:!1},o;const{edges:h,binWidth:d}=f,y=u.map(t=>function(t,r){const e=new Array(Math.max(0,r.length-1)).fill(0);for(let n=0;n<t.length;n++){const s=w(t[n],r);s>=0&&e[s]++}return e}(t,h));r.histogramData={edges:h,binWidth:d,counts:y,rule:f.rule,capped:f.capped};const g=p(s);return r.seriesObservations=u.map((t,r)=>({values:t,byPoint:-1!==g.indexOf(r)?[]:v(t,h)})),o.map((t,r)=>{if(-1!==g.indexOf(r))return l(a({},t),{data:[]});const e=function(t,r={}){let e=t.slice();if(r.cumulative){let t=0;e=e.map(r=>t+=r)}const n=t.reduce((t,r)=>t+r,0);if(n<=0)return e;if("relative"===r.normalize)return e.map(t=>t/n*100);if("density"===r.normalize){const t=r.binWidth;if("number"==typeof t&&t>0)return e.map(r=>r/(n*t))}return e}(y[r],{normalize:i.normalize,cumulative:i.cumulative,binWidth:d}),n=[];for(let t=0;t<e.length;t++)n.push({x:(h[t]+h[t+1])/2,y:e[t]});return l(a({},t),{data:n})})}function $(t,r){var e,n;if(!Array.isArray(t))return t;const s=(null==(n=null==(e=r.config.plotOptions)?void 0:e.boxPlot)?void 0:n.whiskers)||"minmax",o=O(r,"boxPlot"),i=[],u=t.map((t,r)=>{if(!Array.isArray(null==t?void 0:t.data)||t.type&&"boxPlot"!==t.type)return t;let e=!1;const n=new Array(t.data.length).fill(null),u=t.data.map((t,i)=>{const u=r+":"+i;if(Array.isArray(null==t?void 0:t.y)&&5===t.y.length&&!S(o,u,t.y))return t;const c=M(t,!1);if(!c)return t;const f=function(t,r={}){if(!Array.isArray(t)||0===t.length)return null;const e=t.slice().sort((t,r)=>t-r),n=m(e,.25),s=m(e,.5),o=m(e,.75),i=o-n;let a=e[0],l=e[e.length-1],u=[];if("tukey"===r.whiskers&&i>0){const t=n-1.5*i,r=o+1.5*i;let s=0;for(;s<e.length&&e[s]<t;)s++;let c=e.length-1;for(;c>=0&&e[c]>r;)c--;s<=c&&(a=e[s],l=e[c],u=e.slice(0,s).concat(e.slice(c+1)))}return{summary:[a,n,s,o,l],outliers:u,iqr:i}}(c,{whiskers:s});return f?(e=!0,n[i]=c,o.set(u,f.summary),l(a({},t),{y:f.summary,points:c})):t});return e&&(i[r]=n),e?l(a({},t),{data:u}):t});return R(r,i,t.length),u}function j(t,r){var e,n;if(!Array.isArray(t))return t;const s=(null==(n=null==(e=r.config.plotOptions)?void 0:e.violin)?void 0:n.kde)||{},o=O(r,"violin"),i=[],u=t.map((t,r)=>{if(!Array.isArray(null==t?void 0:t.data)||t.type&&"violin"!==t.type)return t;let e=!1;const n=new Array(t.data.length).fill(null),u=t.data.map((t,i)=>{var u;const c=r+":"+i;if(Array.isArray(null==(u=null==t?void 0:t.y)?void 0:u.density)&&t.y.density.length&&!S(o,c,t.y.density))return t;const f=M(t,!0);if(!f)return t;const h=x(f,{bandwidth:s.bandwidth,resolution:s.resolution});if(!h)return t;e=!0,n[i]=f;const d=t.y&&"object"==typeof t.y&&!Array.isArray(t.y)?t.y:{};return o.set(c,h.density),l(a({},t),{y:l(a({},d),{density:h.density,points:f})})});return e&&(i[r]=n),e?l(a({},t),{data:u}):t});return R(r,i,t.length),u}function R(t,r,e){if(!r.length)return;const n=[];for(let t=0;t<e;t++){const e=r[t];if(!e){n.push(null);continue}const s=[];for(const t of e)if(t)for(let r=0;r<t.length;r++)s.push(t[r]);n.push({values:s,byPoint:e})}t.seriesObservations=n}function D(t,r,e){const n=e&&null!=e.maxRows?e.maxRows:3e3,s=function(t,r){let e=0,n=0;for(const r of t)e+=r.length,r.length>n&&(n=r.length);if(e<=r)return{clusters:t,stride:1,total:e,kept:e};const s=r=>{let e=0;for(const n of t)e+=Math.ceil(n.length/r);return e};let o=Math.max(2,Math.ceil(e/r));for(;o<n&&s(o)>r;)o++;let i=0;return{clusters:t.map(t=>{const r=[];for(let e=0;e<t.length;e+=o)r.push(t[e]);return i+=r.length,r}),stride:o,total:e,kept:i}}(r.map(t=>t.rows),n);s.stride>1&&console.warn(`ApexCharts: rowSeries() thinned ${s.total} rows to ${s.kept} (every ${s.stride}${2===s.stride?"nd":3===s.stride?"rd":"th"} row) to stay under maxRows=${n}. Raise maxRows to draw more.`);const o=t.globals&&t.globals.colors||[];return r.map((t,r)=>{const e=o[t.realIndex]||o[0];return{name:t.name,data:s.clusters[r].map((n,s)=>a({id:`${t.realIndex}:${r}:${s}`,x:t.name,y:n},e?{fillColor:e}:{}))}})}function N(t,r){const e=t.globals,n=t.histogramData,s=e&&e.histogramRawSeries;if(!n||!Array.isArray(n.edges)||n.edges.length<2)return null;if(!Array.isArray(s)||!s.length)return null;const o=p(e),i=n.edges,a=[];return s.forEach((r,e)=>{var n;if(-1!==o.indexOf(e))return;const l=v(P(r&&r.data),i),u=t.seriesData&&(null==(n=t.seriesData.seriesNames)?void 0:n[e])||(null==r?void 0:r.name);l.forEach((t,r)=>{const n=`${T(i[r])}-${T(i[r+1])}`;a.push({name:s.length>1&&u?`${u} ${n}`:n,realIndex:e,rows:t})})}),a.length?D(t,a,r):null}function T(t){if(!isFinite(t))return String(t);const r=Math.round(t);return Math.abs(t-r)<1e-6?String(r):String(Number(t.toFixed(2)))}function W(t){return(r,e)=>{var n;const s=t(r);if(!Array.isArray(s)||!s.length)return null;const o=r.globals?p(r.globals):[],i=r.globals&&((null==(n=r.globals.categoryLabels)?void 0:n.length)?r.globals.categoryLabels:r.globals.labels)||[],a=[];return s.forEach((t,e)=>{var n;if(-1!==o.indexOf(e))return;if(!Array.isArray(t))return;const l=r.seriesData&&(null==(n=r.seriesData.seriesNames)?void 0:n[e]);t.forEach((t,r)=>{const n=null!=i[r]?String(i[r]):`#${r+1}`;a.push({name:s.length>1&&l?`${l} ${n}`:n,realIndex:e,rows:Array.isArray(t)?t.slice():[]})})}),a.length?D(r,a,e):null}}const q=W(t=>{var r;return null==(r=t.candleData)?void 0:r.seriesBoxPoints}),F=W(t=>{var r;return null==(r=t.violinData)?void 0:r.seriesViolinPoints});d("histogram",_),d("boxPlot",$),d("violin",j),g("histogram",N),g("boxPlot",q),g("violin",F),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>c.default}),exports.boxPlotRows=q,exports.boxPlotTransform=$,exports.histogramRows=N,exports.histogramTransform=_,exports.violinRows=F,exports.violinTransform=j;
@@ -30,7 +30,7 @@ var __objRest = (source, exclude) => {
30
30
  return target;
31
31
  };
32
32
  /*!
33
- * ApexCharts v8.2.0
33
+ * ApexCharts v8.3.0
34
34
  * (c) 2018-2026 ApexCharts
35
35
  */
36
36
  import * as _core from "apexcharts/core";
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * ApexCharts v8.2.0
2
+ * ApexCharts v8.3.0
3
3
  * (c) 2018-2026 ApexCharts
4
4
  */
5
5
  !function(t){var e="undefined"!=typeof globalThis?globalThis:self,r=e.ApexCharts;if(r&&r.__internals)return t.call(e);if(r)throw new Error("ApexCharts: dist/features/stats.js cannot register: the ApexCharts on this page has no add-on surface (a script before 7.0, or a bundled apexcharts/core class). Load apexcharts.min.js, apexcharts.core.min.js or apexcharts.full.min.js.");if("function"==typeof define&&define.amd)return t.call(e);if("object"==typeof exports&&"undefined"!=typeof module||"undefined"==typeof window||"undefined"==typeof document)throw new Error("ApexCharts: dist/features/stats.js is a script-tag add-on and needs the ApexCharts script on the page. A bundler imports the matching apexcharts/ sub-path instead.");var n={file:"dist/features/stats.js",run:t,done:!1},s=e.__apexcharts_pending_addons__||(e.__apexcharts_pending_addons__=[]);s.push(n),"complete"!==document.readyState&&window.addEventListener("load",function(){if(!n.done){var r=e.ApexCharts;if(r)if(r.__internals){n.done=!0;var a=s.indexOf(n);-1!==a&&s.splice(a,1);try{t.call(e),r.__drainsAddons||e.console.warn("ApexCharts: dist/features/stats.js loaded before the ApexCharts script, which is older than 8.0 and does not pick up add-ons loaded first, so it registered only when the page finished loading. Put its tag after the ApexCharts script.")}catch(t){e.console.error("ApexCharts: dist/features/stats.js could not register with the ApexCharts script on this page: "+(t&&t.message))}}else e.console.error("ApexCharts: dist/features/stats.js cannot register: the ApexCharts on this page has no add-on surface (a script before 7.0, or a bundled apexcharts/core class). Load apexcharts.min.js, apexcharts.core.min.js or apexcharts.full.min.js.");else e.console.warn("ApexCharts: dist/features/stats.js is waiting for the ApexCharts script, which had not loaded when the page finished loading. It registers when an ApexCharts 8.0 or later script loads; if the page has none, add apexcharts.min.js (or apexcharts.core.min.js, or apexcharts.full.min.js).")}})}(function(){var t,e;t=this,e=function(t){"use strict";var e=Object.defineProperty,r=Object.defineProperties,n=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,o=(t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n,l=(t,e)=>{for(var r in e||(e={}))a.call(e,r)&&o(t,r,e[r]);if(s)for(var r of s(e))i.call(e,r)&&o(t,r,e[r]);return t},u=(t,e)=>r(t,n(e));const c=globalThis.ApexCharts,h=globalThis.ApexCharts.__internals.__apex_Utils,f="__apexcharts_series_transforms__";function d(t,e){t&&"string"==typeof t?"function"==typeof e?globalThis[f][t]=e:console.warn(`ApexCharts: registerSeriesTransform("${t}") expects a function (series, w) => series.`):console.warn("ApexCharts: registerSeriesTransform requires a non-empty name.")}globalThis[f]||(globalThis[f]={});const p="__apexcharts_row_sources__";function y(t,e){t&&"string"==typeof t?"function"==typeof e?globalThis[p][t]=e:console.warn(`ApexCharts: registerRowSource("${t}") expects a function (w, opts) => series.`):console.warn("ApexCharts: registerRowSource requires a non-empty name.")}function g(t){return(t.collapsedSeriesIndices||[]).concat(t.ancillaryCollapsedSeriesIndices||[])}function m(t,e){const r=(e.collapsedSeries||[]).concat(e.ancillaryCollapsedSeries||[]);return t.map((t,e)=>{const n=t||{},{hidden:o}=n,c=((t,e)=>{var r={};for(var n in t)a.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&s)for(var n of s(t))e.indexOf(n)<0&&i.call(t,n)&&(r[n]=t[n]);return r})(n,["hidden"]);let h=c.data;if(Array.isArray(h)&&!h.length){const t=r.find(t=>t.index===e);t&&Array.isArray(t.data)&&(h=t.data)}return u(l({},c),{data:Array.isArray(h)?h.slice():h})})}function b(t,e){const r=t.length;if(0===r)return NaN;if(1===r)return t[0];const n=(r-1)*e,s=Math.floor(n),a=Math.ceil(n);return s===a?t[s]:t[s]+(t[a]-t[s])*(n-s)}function A(t,e={}){if(!Array.isArray(t)||0===t.length)return null;const r=t.slice().sort((t,e)=>t-e);let n=r[0],s=r[r.length-1];const a=e.range;if(Array.isArray(a)&&2===a.length){const t=Number(a[0]),e=Number(a[1]);Number.isFinite(t)&&Number.isFinite(e)&&e>t&&(n=t,s=e)}if(!(s>n)){const t=Math.abs(n)>0?.05*Math.abs(n):.5;return{edges:[n-t,n+t],binWidth:2*t,rule:"single",capped:!1}}const i=s-n;let o,l;if("number"==typeof e.binWidth&&e.binWidth>0)o=e.binWidth,l="binWidth";else if("number"==typeof e.bins&&e.bins>=1)o=i/Math.floor(e.bins),l="count";else{const t=function(t,e,r){const n=t.length,s=t=>e/Math.max(1,Math.ceil(t)),a=()=>s(Math.log2(n)+1);switch(r){case"sqrt":return{width:s(Math.sqrt(n)),rule:"sqrt"};case"rice":return{width:s(2*Math.cbrt(n)),rule:"rice"};case"scott":{const e=function(t){const e=t.length;if(e<2)return 0;let r=0;for(let n=0;n<e;n++)r+=t[n];const n=r/e;let s=0;for(let r=0;r<e;r++){const e=t[r]-n;s+=e*e}return Math.sqrt(s/e)}(t);return e>0?{width:3.49*e*Math.pow(n,-1/3),rule:"scott"}:{width:a(),rule:"sturges"}}case"fd":{const e=b(t,.75)-b(t,.25);return e>0?{width:2*e*Math.pow(n,-1/3),rule:"fd"}:{width:a(),rule:"sturges"}}case"auto":{const e=a(),r=b(t,.75)-b(t,.25);if(r<=0)return{width:e,rule:"sturges"};const s=2*r*Math.pow(n,-1/3);return s<e?{width:s,rule:"fd"}:{width:e,rule:"sturges"}}default:return{width:a(),rule:"sturges"}}}(r,i,"string"==typeof e.bins?e.bins:"auto");o=t.width,l=t.rule}(!Number.isFinite(o)||o<=0)&&(o=i);let u=Math.ceil(i/o);(!Number.isFinite(u)||u<1)&&(u=1);let c=!1;u>1e3&&(u=1e3,c=!0),o=i/u;const h=new Array(u+1);for(let t=0;t<=u;t++)h[t]=n+t*o;return h[u]=Math.max(h[u],s),{edges:h,binWidth:o,rule:l,capped:c}}function x(t,e){const r=e.length-1;if(!(t>=e[0])||t>e[r])return-1;if(t===e[r])return r-1;const n=(e[r]-e[0])/r;if(n>0){let s=Math.floor((t-e[0])/n);return s<0&&(s=0),s>r-1&&(s=r-1),t<e[s]?s--:t>=e[s+1]&&s++,s<0||s>r-1?-1:s}let s=0,a=r-1;for(;s<=a;){const r=s+a>>1;if(t<e[r])a=r-1;else{if(!(t>=e[r+1]))return r;s=r+1}}return-1}function w(t,e){const r=Math.max(0,e.length-1),n=new Array(r);for(let t=0;t<r;t++)n[t]=[];for(let r=0;r<t.length;r++){const s=x(t[r],e);s>=0&&n[s].push(t[r])}return n}function v(t,e={}){if(!Array.isArray(t)||0===t.length)return null;const r=t.slice().sort((t,e)=>t-e),n=r.length;let s=e.bandwidth;if(!("number"==typeof s&&s>0)){const t=function(t){const e=t.length;if(e<2)return 0;let r=0;for(let n=0;n<e;n++)r+=t[n];const n=r/e;let s=0;for(let r=0;r<e;r++){const e=t[r]-n;s+=e*e}return Math.sqrt(s/e)}(r),e=b(r,.75)-b(r,.25);s=.9*(e>0?Math.min(t,e/1.349):t)*Math.pow(n,-.2)}if(!isFinite(s)||s<=0){const t=r[0],e=Math.abs(t)>0?.001*Math.abs(t):.001;return{density:[[t-e,0],[t,1],[t+e,0]],bandwidth:e}}const a=Math.max(8,Math.floor(e.resolution||64)),i=r[0]-2*s,o=(r[n-1]+2*s-i)/(a-1),l=1/(n*s*Math.sqrt(2*Math.PI)),u=[];for(let t=0;t<a;t++){const e=i+t*o;let a=0;for(let t=0;t<n;t++){const n=(e-r[t])/s;a+=Math.exp(-.5*n*n)}u.push([e,a*l])}return{density:u,bandwidth:s}}function M(t,e){var r;if(!t||"object"!=typeof t||Array.isArray(t))return null;let n=null;if(Array.isArray(t.points)?n=t.points:Array.isArray(null==(r=t.y)?void 0:r.points)?n=t.y.points:e&&Array.isArray(t.y)&&"number"==typeof t.y[0]&&(n=t.y),!n)return null;const s=[];for(let t=0;t<n.length;t++){const e=h.parseNumber(n[t]);null!==e&&isFinite(e)&&s.push(e)}return s.length?s:null}function _(t,e){var r,n;const s=null!=(r=t.statsDerived)?r:t.statsDerived={};return null!=(n=s[e])?n:s[e]=new Map}function j(t,e,r){const n=t.get(e);if(!n||!Array.isArray(r)||n.length!==r.length)return!1;for(let t=0;t<r.length;t++){const e=n[t],s=r[t];if(!(e===s||Array.isArray(e)&&Array.isArray(s)&&e[0]===s[0]&&e[1]===s[1]))return!1}return!0}function C(t){const e=[];if(!Array.isArray(t))return e;for(let r=0;r<t.length;r++){const n=t[r];let s=n;Array.isArray(n)?s=1===n.length?n[0]:n[1]:n&&"object"==typeof n&&(s=void 0!==n.y?n.y:n.x);const a=h.parseNumber(s);null!==a&&isFinite(a)&&e.push(a)}return e}function O(t,e){var r;const n=e.config,s=e.globals;if(!Array.isArray(t))return t;s.histogramRawSeries||(s.histogramRawSeries=m(t,s));const a=s.histogramRawSeries,i=(null==(r=n.plotOptions)?void 0:r.histogram)||{},o=a.map(t=>C(null==t?void 0:t.data));let c=[];if(1===o.length)c=o[0];else for(const t of o)c=c.concat(t);const h=A(c,{bins:i.bins,binWidth:i.binWidth,range:i.range});if(!h)return e.histogramData={edges:[],binWidth:0,counts:[],rule:"",capped:!1},a;const{edges:f,binWidth:d}=h,p=o.map(t=>function(t,e){const r=new Array(Math.max(0,e.length-1)).fill(0);for(let n=0;n<t.length;n++){const s=x(t[n],e);s>=0&&r[s]++}return r}(t,f));e.histogramData={edges:f,binWidth:d,counts:p,rule:h.rule,capped:h.capped};const y=g(s);return e.seriesObservations=o.map((t,e)=>({values:t,byPoint:-1!==y.indexOf(e)?[]:w(t,f)})),a.map((t,e)=>{if(-1!==y.indexOf(e))return u(l({},t),{data:[]});const r=function(t,e={}){let r=t.slice();if(e.cumulative){let t=0;r=r.map(e=>t+=e)}const n=t.reduce((t,e)=>t+e,0);if(n<=0)return r;if("relative"===e.normalize)return r.map(t=>t/n*100);if("density"===e.normalize){const t=e.binWidth;if("number"==typeof t&&t>0)return r.map(e=>e/(n*t))}return r}(p[e],{normalize:i.normalize,cumulative:i.cumulative,binWidth:d}),n=[];for(let t=0;t<r.length;t++)n.push({x:(f[t]+f[t+1])/2,y:r[t]});return u(l({},t),{data:n})})}function S(t,e){var r,n;if(!Array.isArray(t))return t;const s=(null==(n=null==(r=e.config.plotOptions)?void 0:r.boxPlot)?void 0:n.whiskers)||"minmax",a=_(e,"boxPlot"),i=[],o=t.map((t,e)=>{if(!Array.isArray(null==t?void 0:t.data)||t.type&&"boxPlot"!==t.type)return t;let r=!1;const n=new Array(t.data.length).fill(null),o=t.data.map((t,i)=>{const o=e+":"+i;if(Array.isArray(null==t?void 0:t.y)&&5===t.y.length&&!j(a,o,t.y))return t;const c=M(t,!1);if(!c)return t;const h=function(t,e={}){if(!Array.isArray(t)||0===t.length)return null;const r=t.slice().sort((t,e)=>t-e),n=b(r,.25),s=b(r,.5),a=b(r,.75),i=a-n;let o=r[0],l=r[r.length-1],u=[];if("tukey"===e.whiskers&&i>0){const t=n-1.5*i,e=a+1.5*i;let s=0;for(;s<r.length&&r[s]<t;)s++;let c=r.length-1;for(;c>=0&&r[c]>e;)c--;s<=c&&(o=r[s],l=r[c],u=r.slice(0,s).concat(r.slice(c+1)))}return{summary:[o,n,s,a,l],outliers:u,iqr:i}}(c,{whiskers:s});return h?(r=!0,n[i]=c,a.set(o,h.summary),u(l({},t),{y:h.summary,points:c})):t});return r&&(i[e]=n),r?u(l({},t),{data:o}):t});return T(e,i,t.length),o}function P(t,e){var r,n;if(!Array.isArray(t))return t;const s=(null==(n=null==(r=e.config.plotOptions)?void 0:r.violin)?void 0:n.kde)||{},a=_(e,"violin"),i=[],o=t.map((t,e)=>{if(!Array.isArray(null==t?void 0:t.data)||t.type&&"violin"!==t.type)return t;let r=!1;const n=new Array(t.data.length).fill(null),o=t.data.map((t,i)=>{var o;const c=e+":"+i;if(Array.isArray(null==(o=null==t?void 0:t.y)?void 0:o.density)&&t.y.density.length&&!j(a,c,t.y.density))return t;const h=M(t,!0);if(!h)return t;const f=v(h,{bandwidth:s.bandwidth,resolution:s.resolution});if(!f)return t;r=!0,n[i]=h;const d=t.y&&"object"==typeof t.y&&!Array.isArray(t.y)?t.y:{};return a.set(c,f.density),u(l({},t),{y:u(l({},d),{density:f.density,points:h})})});return r&&(i[e]=n),r?u(l({},t),{data:o}):t});return T(e,i,t.length),o}function T(t,e,r){if(!e.length)return;const n=[];for(let t=0;t<r;t++){const r=e[t];if(!r){n.push(null);continue}const s=[];for(const t of r)if(t)for(let e=0;e<t.length;e++)s.push(t[e]);n.push({values:s,byPoint:r})}t.seriesObservations=n}function $(t,e,r){const n=r&&null!=r.maxRows?r.maxRows:3e3,s=function(t,e){let r=0,n=0;for(const e of t)r+=e.length,e.length>n&&(n=e.length);if(r<=e)return{clusters:t,stride:1,total:r,kept:r};const s=e=>{let r=0;for(const n of t)r+=Math.ceil(n.length/e);return r};let a=Math.max(2,Math.ceil(r/e));for(;a<n&&s(a)>e;)a++;let i=0;return{clusters:t.map(t=>{const e=[];for(let r=0;r<t.length;r+=a)e.push(t[r]);return i+=e.length,e}),stride:a,total:r,kept:i}}(e.map(t=>t.rows),n);s.stride>1&&console.warn(`ApexCharts: rowSeries() thinned ${s.total} rows to ${s.kept} (every ${s.stride}${2===s.stride?"nd":3===s.stride?"rd":"th"} row) to stay under maxRows=${n}. Raise maxRows to draw more.`);const a=t.globals&&t.globals.colors||[];return e.map((t,e)=>{const r=a[t.realIndex]||a[0];return{name:t.name,data:s.clusters[e].map((n,s)=>l({id:`${t.realIndex}:${e}:${s}`,x:t.name,y:n},r?{fillColor:r}:{}))}})}function R(t,e){const r=t.globals,n=t.histogramData,s=r&&r.histogramRawSeries;if(!n||!Array.isArray(n.edges)||n.edges.length<2)return null;if(!Array.isArray(s)||!s.length)return null;const a=g(r),i=n.edges,o=[];return s.forEach((e,r)=>{var n;if(-1!==a.indexOf(r))return;const l=w(C(e&&e.data),i),u=t.seriesData&&(null==(n=t.seriesData.seriesNames)?void 0:n[r])||(null==e?void 0:e.name);l.forEach((t,e)=>{const n=`${N(i[e])}-${N(i[e+1])}`;o.push({name:s.length>1&&u?`${u} ${n}`:n,realIndex:r,rows:t})})}),o.length?$(t,o,e):null}function N(t){if(!isFinite(t))return String(t);const e=Math.round(t);return Math.abs(t-e)<1e-6?String(e):String(Number(t.toFixed(2)))}function W(t){return(e,r)=>{var n;const s=t(e);if(!Array.isArray(s)||!s.length)return null;const a=e.globals?g(e.globals):[],i=e.globals&&((null==(n=e.globals.categoryLabels)?void 0:n.length)?e.globals.categoryLabels:e.globals.labels)||[],o=[];return s.forEach((t,r)=>{var n;if(-1!==a.indexOf(r))return;if(!Array.isArray(t))return;const l=e.seriesData&&(null==(n=e.seriesData.seriesNames)?void 0:n[r]);t.forEach((t,e)=>{const n=null!=i[e]?String(i[e]):`#${e+1}`;o.push({name:s.length>1&&l?`${l} ${n}`:n,realIndex:r,rows:Array.isArray(t)?t.slice():[]})})}),o.length?$(e,o,r):null}}globalThis[p]||(globalThis[p]={});const D=W(t=>{var e;return null==(e=t.candleData)?void 0:e.seriesBoxPoints}),k=W(t=>{var e;return null==(e=t.violinData)?void 0:e.seriesViolinPoints});d("histogram",O),d("boxPlot",S),d("violin",P),y("histogram",R),y("boxPlot",D),y("violin",k),t.boxPlotRows=D,t.boxPlotTransform=S,t.default=c,t.histogramRows=R,t.histogramTransform=O,t.violinRows=k,t.violinTransform=P,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ApexStats={})});
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * ApexCharts v8.2.0
2
+ * ApexCharts v8.3.0
3
3
  * (c) 2018-2026 ApexCharts
4
4
  */
5
5
  "use strict";var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,a=(t,n,i)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[n]=i,o=(e,t)=>{for(var n in t||(t={}))s.call(t,n)&&a(e,n,t[n]);if(i)for(var n of i(t))r.call(t,n)&&a(e,n,t[n]);return e},c=(e,i)=>t(e,n(i));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function l(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const d=l(require("apexcharts/core")),u=d.__apex_Environment_Environment,h=d.__apex_Animations_prefersReducedMotion,p=globalThis.console;function f(e,...t){p.error(e,...t)}function v(e){p.warn(e)}const m="APEX-",y=new Date("2027-07-31T00:00:00Z"),g="__apex_license_v1__";function b(){const e=globalThis;let t=e[g];return t||(t={key:null,listeners:new Set,result:null},e[g]=t),t}const w=class{static get licenseKey(){return b().key}static set licenseKey(e){b().key=e}static get listeners(){return b().listeners}static get validationResult(){return b().result}static set validationResult(e){b().result=e}static getKey(){return this.licenseKey}static getLicenseStatus(){return this.licenseKey?(this.validationResult=this.validateKey(this.licenseKey),this.validationResult):{expired:!1,signatureVerified:!1,valid:!1}}static isKeyValid(e){return!!e&&this.validateKey(e).valid}static isLicenseValid(){return this.getLicenseStatus().valid}static onChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}static setLicense(e){var t,n;if(!e)return this.licenseKey=null,void this.publish({expired:!1,signatureVerified:!1,valid:!1});const i=this.validateKey(e);i.valid||e===this.licenseKey||!(null==(n=this.validationResult)?void 0:n.valid)?(this.licenseKey=e,this.publish(i),i.valid||f(`[Apex] ${i.message}`)):v(`[Apex] Ignoring license key: ${null!=(t=i.message)?t:"it is not valid"} A valid license is already active on this page.`)}static validateKey(e){const t=this.parseKey(e),n=this.validateStructure(e,t);if(!n.valid||!(null==t?void 0:t.signature))return n;const i=this.verdicts.get(e);return!1===i?{data:t.data,expired:!1,message:"Invalid license key. The license signature does not verify.",signatureVerified:!0,valid:!1}:(void 0===i&&this.verifySignature(e,t,n),c(o({},n),{signatureVerified:!0===i}))}static _resetSignatureState(){this.verdicts.clear(),this.verifying.clear(),this.warnedUnverifiable=!1,this.epoch++}static base64ToBytes(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),n=t.padEnd(4*Math.ceil(t.length/4),"="),i=globalThis.atob;if("function"!=typeof i)throw new Error("no base64 decoder available");const s=i(n),r=new Uint8Array(s.length);for(let e=0;e<s.length;e++)r[e]=s.charCodeAt(e);return r}static canonicalPayload(e){const t=e.domains&&e.domains.length>0?e.domains.join(","):"";return`v1|${e.issueDate}|${e.expiryDate}|${e.plan}|${t}`}static notify(e){for(const t of this.listeners)try{t(e)}catch(e){}}static parseKey(e){if("string"!=typeof e||!e.startsWith(m))return null;const t=e.slice(5);if(!t)return null;try{const e=(new TextDecoder).decode(this.base64ToBytes(t)),n=JSON.parse(e);return n.issueDate&&n.expiryDate&&n.plan?{data:{domains:Array.isArray(n.domains)?n.domains:void 0,expiryDate:n.expiryDate,issueDate:n.issueDate,plan:n.plan,valid:!0},signature:"string"==typeof n.sig&&n.sig?n.sig:null}:null}catch(e){return null}}static publish(e){this.validationResult=e,this.notify(e)}static validateStructure(e,t){const n=e=>({expired:!1,message:e,signatureVerified:!1,valid:!1});if("string"!=typeof e||!e.startsWith(m))return n('Invalid license key format. License key must start with "APEX-".');if(!t)return n("Invalid license key. Unable to decode license data.");const{data:i,signature:s}=t;if(!s&&new Date>=y)return n("This license key is in the old unsigned format, which is no longer accepted. Please request a replacement key.");if(new Date(i.expiryDate)<new Date)return{data:i,expired:!0,message:`License expired on ${i.expiryDate}. Please renew your license.`,signatureVerified:!1,valid:!1};if(i.domains&&i.domains.length>0){const e="undefined"==typeof location?"":location.hostname;if(!i.domains.some(t=>e===t||e.endsWith(`.${t}`)))return{data:i,expired:!1,message:`License is not valid for this domain (${e}). Allowed domains: ${i.domains.join(", ")}.`,signatureVerified:!1,valid:!1}}return{data:i,expired:!1,signatureVerified:!1,valid:!0}}static verifySignature(e,t,n){return i=this,s=null,r=function*(){var i;if(this.verifying.has(e)||this.verdicts.has(e))return;this.verifying.add(e);const s=this.epoch,r=null==(i=globalThis.crypto)?void 0:i.subtle;if(!r||0===this.publicKeysSpki.length)return this.verifying.delete(e),void(this.warnedUnverifiable||(this.warnedUnverifiable=!0,v(r?"[Apex] No license signing key is configured in this build, so license signatures cannot be verified.":"[Apex] Web Crypto is unavailable (a secure context is required), so the license signature cannot be verified.")));const a=(new TextEncoder).encode(this.canonicalPayload(t.data));let l=!1;for(const e of this.publicKeysSpki){try{const n=yield r.importKey("spki",this.base64ToBytes(e),{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]);l=yield r.verify({hash:"SHA-256",name:"ECDSA"},n,this.base64ToBytes(t.signature),a)}catch(e){l=!1}if(l)break}if(this.verifying.delete(e),this.epoch!==s)return;if(this.verdicts.set(e,l),l){const t=c(o({},n),{signatureVerified:!0});return void(this.licenseKey===e?this.publish(t):this.notify(t))}const d="Invalid license key. The license signature does not verify.",u={data:t.data,expired:!1,message:d,signatureVerified:!0,valid:!1};this.licenseKey===e?this.publish(u):this.notify(u),f(`[Apex] ${d}`)},new Promise((e,t)=>{var n=e=>{try{o(r.next(e))}catch(e){t(e)}},a=e=>{try{o(r.throw(e))}catch(e){t(e)}},o=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,a);o((r=r.apply(i,s)).next())});var i,s,r}};w.publicKeysSpki=["MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQIaK9UMD6n0oR/FIy8QdL0uSzKMQlf1BB+tOrji4/WuHsyRNxeDhVykoSsNURozMi1xhmqWvBH1L//xIfugTPA=="],w.verdicts=new Map,w.verifying=new Set,w.warnedUnverifiable=!1,w.epoch=0;let x=w;const _=class{static applyStyles(e){Object.assign(e.style,this.CRITICAL_STYLES,{backgroundImage:this.createWatermarkPattern(),backgroundRepeat:"repeat"})}static node(e){return e?e.querySelector(`[${this.WATERMARK_ATTR}]`):null}static add(e,t){return e&&"undefined"!=typeof document?(this.setManaged(e,t),this.paint(e)):null}static exists(e){return!!this.node(e)}static remove(e,t){e&&(this.setManaged(e,t),this.erase(e))}static untrack(e){this.managed.delete(e)}static createWatermarkPattern(){const e=this.WATERMARK_TEXT;return`url("data:image/svg+xml,${encodeURIComponent(`\n <svg xmlns="http://www.w3.org/2000/svg" width="300" height="200">\n <text\n x="50%"\n y="50%"\n dominant-baseline="middle"\n text-anchor="middle"\n font-family="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Arial, sans-serif"\n font-size="18"\n font-weight="600"\n fill="rgba(134, 134, 134, 0.1)"\n transform="rotate(-35, 100, 60)"\n >${e}</text>\n </svg>\n `.trim())}")`}static erase(e){var t;null==(t=this.node(e))||t.remove()}static paint(e){let t=this.node(e);return t||(t=document.createElement("div"),t.setAttribute(this.WATERMARK_ATTR,""),e.appendChild(t)),this.applyStyles(t),"function"==typeof getComputedStyle&&"static"===getComputedStyle(e).position&&(e.style.position="relative"),t}static reconcile(){const e=x.isLicenseValid();for(const t of this.managed)t.isConnected?e?this.erase(t):this.paint(t):this.managed.delete(t)}static setManaged(e,t){!1!==(null==t?void 0:t.manage)?this.track(e):this.managed.delete(e)}static track(e){this.managed.add(e),this.subscribed||(this.subscribed=!0,x.onChange(()=>{this.reconcile()}))}};_.WATERMARK_ATTR="data-apexcharts-watermark",_.WATERMARK_TEXT="APEXCHARTS",_.ATTR="data-apexcharts-watermark",_.CRITICAL_STYLES={bottom:"0",display:"block",left:"0",msUserSelect:"none",opacity:"1",pointerEvents:"none",position:"absolute",right:"0",top:"0",userSelect:"none",visibility:"visible",webkitUserSelect:"none",zIndex:"10000"},_.managed=new Set,_.subscribed=!1;let A=_;const S="https://apexcharts.com/pricing",k="__apexcharts_license_enforcer_v1__";globalThis[k]||(globalThis[k]={perspectivesTokenDecoded:!1,enforced:new Set});const O=globalThis[k],T=O.enforced;function E(){O.perspectivesTokenDecoded=!0,D()}const I=new Set(["premium","enterprise"]);function R(e,t){const n=A.add(t,{manage:!1});if(!n||"undefined"==typeof MutationObserver)return;if(e._wmNodeObserver&&e._wmObservedNode===n)return;e._wmNodeObserver&&e._wmNodeObserver.disconnect();const i=new MutationObserver(()=>{const e=A.node(t);e&&(i.disconnect(),A.applyStyles(e),i.takeRecords(),i.observe(e,{attributes:!0,attributeFilter:["style"]}))});i.observe(n,{attributes:!0,attributeFilter:["style"]}),e._wmNodeObserver=i,e._wmObservedNode=n}function C(e,t){e._wmWrapObserver&&(e._wmWrapObserver.disconnect(),e._wmWrapObserver=null),e._wmNodeObserver&&(e._wmNodeObserver.disconnect(),e._wmNodeObserver=null),e._wmObservedNode=null,e._wmObservedWrap=null;const n=t||e.w&&e.w.dom&&e.w.dom.elWrap;n&&A.remove(n,{manage:!1})}function P(e,t){try{if(!u.isBrowser())return;if(e&&e.globals&&e.globals.isDestroyed)return void T.delete(t);const n=e&&e.dom&&e.dom.elWrap;if(!n)return;const i=function(e,t){var n;const i=e&&e.config&&e.config.chart||{},s=[];"unit"===i.type&&s.push("unit"),"raincloud"===i.requestedType&&s.push("raincloud"),t.trellis&&"function"==typeof t.trellis.isActive&&t.trellis.isActive()&&s.push("trellis"),t.storyboard&&t.storyboard._used&&s.push("storyboard");const r=i.link;return t.linkedViews&&r&&(!0===r.enabled||"function"==typeof r.dimension)&&s.push("link"),t.ink&&i.ink&&!0===i.ink.enabled&&s.push("ink"),t.measure&&i.measure&&!0===i.measure.enabled&&s.push("measure"),t.contextMenu&&i.contextMenu&&!0===i.contextMenu.enabled&&s.push("context-menu"),t.perspectives&&(t.perspectives._used||O.perspectivesTokenDecoded)&&s.push("perspectives"),t.history&&i.history&&!0===i.history.enabled&&s.push("history"),(null==(n=t._highlightFilter)?void 0:n.isActive())&&s.push("highlight-filter"),s}(e,t);if(0===i.length)return T.delete(t),void C(t,n);T.add(t);const s=function(e){const t=e&&e.config&&e.config.chart&&e.config.chart.license;if(t)return t;const n=x.getKey();if(n)return n;const i=u.getApex();return i&&i.license?i.license:null}(e);if(function(e){if(!e)return!1;const t=x.validateKey(e);if(!t.valid)return!1;const n=t.data&&t.data.plan;return"string"==typeof n&&I.has(n.toLowerCase())}(s))return void C(t,n);!function(e,t){if(R(e,t),"undefined"==typeof MutationObserver)return;if(e._wmWrapObserver&&e._wmObservedWrap===t)return;e._wmWrapObserver&&e._wmWrapObserver.disconnect();const n=new MutationObserver(()=>{A.node(t)||R(e,t)});n.observe(t,{childList:!0}),e._wmWrapObserver=n,e._wmObservedWrap=t}(t,n),function(e,t,n){if(e._premiumLicenseNotified)return;e._premiumLicenseNotified=!0;const i=n.length>1;if(!t)return void console.warn(`[ApexCharts] Premium feature${i?"s":""} in use (${n.join(", ")}) without a license. Running in trial mode with a watermark. Get a license: ${S}`);const s=x.validateKey(t);if(s.valid){const e=s.data&&s.data.plan||"current";return void console.warn(`[ApexCharts] Premium feature${i?"s":""} in use (${n.join(", ")}) require a Premium or Enterprise license; the ${e} plan does not include ${i?"them":"it"}. Running in trial mode with a watermark. Upgrade: ${S}`)}t!==x.getKey()&&console.error(`[Apex] ${s.message}`)}(t,s,i)}catch(e){}}function D(){if(!u.isBrowser())return;const e=new Set,t=u.getApex(),n=t&&t._chartInstances;Array.isArray(n)&&n.forEach(t=>{const n=t&&t.chart;n&&n.w&&!n.w.globals.isDestroyed&&(e.add(n),P(n.w,n))}),Array.from(T).forEach(t=>{const n=t&&t.w,i=n&&n.dom&&n.dom.elWrap;n&&!n.globals.isDestroyed&&i&&!1!==i.isConnected?e.has(t)||P(n,t):T.delete(t)})}x.onChange(D);const K=d.__apex_Utils;function $(e,t){const n=null!=e,i=null!=t;return n||i?{min:n?e:null,max:i?t:null}:null}function M(e){return Array.isArray(e)?e.map(e=>Array.isArray(e)?e.slice():e):[]}function j(e,t){return"function"==typeof e&&t?e===t.addXaxisAnnotation?"xaxis":e===t.addYaxisAnnotation?"yaxis":e===t.addPointAnnotation?"point":null:null}function L(e,t){const n=e.config.annotations?K.clone(e.config.annotations):null,i=[],s=e.globals.memory&&e.globals.memory.methodsToExec||[];for(const e of s){if(!e||"addAnnotation"!==e.label)continue;const n=j(e.method,t);n&&i.push({kind:n,params:K.clone(e.params)})}return{static:n,dynamic:i}}function W(e){const t=e&&e.measure;if(!t||"function"!=typeof t.getPins)return null;const n=t.getPins();return Array.isArray(n)&&n.length?{pins:n}:null}function N(e,t,{animate:n=!0,mergeOptions:i}={}){var s,r;if(!e||!t)return;"number"==typeof t.v&&t.v>1&&console.warn(`[apexcharts] ViewState v${t.v} is newer than this build understands (v1); applying best-effort.`),e.clearAnnotations();const a=i?K.clone(i):{},o=t.window&&t.window.xaxis;a.xaxis=Object.assign({},a.xaxis,o?{min:null!=(s=o.min)?s:void 0,max:null!=(r=o.max)?r:void 0}:{min:void 0,max:void 0});const c=t.window&&t.window.yaxis;if(Array.isArray(c)&&(a.yaxis=c.map(e=>{var t,n;return e?{min:null!=(t=e.min)?t:void 0,max:null!=(n=e.max)?n:void 0}:{}})),t.theme){const e={};null!=t.theme.mode&&(e.mode=t.theme.mode),null!=t.theme.palette&&(e.palette=t.theme.palette),Object.keys(e).length&&(a.theme=Object.assign({},a.theme,e))}t.annotations&&t.annotations.static&&(a.annotations=K.clone(t.annotations.static)),e.updateOptions(a,!1,n,!1,!1),function(e,t){if(!e||!t)return;const n=e.w;n.interact.zoomed=!!t.zoomed,function(e,t,n){const i=e.w;if(null==t&&null==n)return;const s=i.globals.seriesNames||[],r=new Set([...t||[],...n||[]]),a=new Set([...i.globals.collapsedSeriesIndices||[],...i.globals.ancillaryCollapsedSeriesIndices||[]]);for(let t=0;t<s.length;t++){const n=s[t];if(null==n)continue;const i=r.has(t),o=a.has(t);i&&!o?e.hideSeries(n):!i&&o&&e.showSeries(n)}}(e,t.collapsed,t.ancillaryCollapsed),t.annotations&&Array.isArray(t.annotations.dynamic)&&t.annotations.dynamic.forEach(t=>{const n=function(e){switch(e){case"xaxis":return"addXaxisAnnotation";case"yaxis":return"addYaxisAnnotation";case"point":return"addPointAnnotation";default:return null}}(t.kind);n&&"function"==typeof e[n]&&e[n](t.params,!0)});(function(e,t){Array.isArray(t)&&(e.w.interact.selectedDataPoints=M(t))})(e,t.selectedDataPoints),t.locale&&t.locale!==n.config.chart.defaultLocale&&e.setLocale(t.locale);e.measure&&"function"==typeof e.measure.setPins&&e.measure.setPins(t.measure&&t.measure.pins||[])}(e,t)}const U="apex";function B(e){return function(e){if("undefined"!=typeof Buffer)return Buffer.from(e,"utf-8").toString("base64");const t=(new TextEncoder).encode(e);let n="";for(let e=0;e<t.length;e++)n+=String.fromCharCode(t[e]);return btoa(n)}(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function V(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");for(;t.length%4;)t+="=";return function(e){if("undefined"!=typeof Buffer)return Buffer.from(e,"base64").toString("utf-8");const t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return(new TextDecoder).decode(n)}(t)}class z{constructor(e,t){this.w=e,this.ctx=t,this._saved=[],this._counter=0,this._used=!1}capture(){const e={v:1,view:function(e,t){var n,i;const s=e.config.xaxis||{},r=(Array.isArray(e.config.yaxis)?e.config.yaxis:e.config.yaxis?[e.config.yaxis]:[]).map(e=>$(e&&e.min,e&&e.max)),a=r.some(e=>null!==e),o=e.config.theme,c=t&&t.drilldown;return{v:1,window:{xaxis:$(s.min,s.max),yaxis:a?r:null},zoomed:!!e.interact.zoomed,collapsed:(e.globals.collapsedSeriesIndices||[]).slice(),ancillaryCollapsed:(e.globals.ancillaryCollapsedSeriesIndices||[]).slice(),selectedDataPoints:M(e.interact.selectedDataPoints),theme:o?{mode:null!=(n=o.mode)?n:null,palette:null!=(i=o.palette)?i:null}:null,locale:e.config.chart&&e.config.chart.defaultLocale||null,annotations:L(e,t),drill:c&&c.depth>0?{path:c.path.slice()}:null,measure:W(t)}}(this.w,this.ctx)},t=this._serializableDelta();return t&&Object.keys(t).length&&(e.options=t),e}_serializableDelta(){const e=this.w.config,t=e.chart&&e.chart.perspectives&&e.chart.perspectives.serializeOptions||["theme","xaxis","yaxis","title","subtitle"],n={};return t.forEach(t=>{if(void 0!==e[t]){const i=function(e){try{return JSON.parse(JSON.stringify(e))}catch(e){return}}(e[t]);void 0!==i&&(n[t]=i)}}),n}encode(e){const t=e||this.capture();return B(JSON.stringify(t))}decode(e){return z.decode(e)}toURL(){if(!u.isBrowser())return"";const e=this.encode(this.capture()),t=new URL(window.location.href);return t.hash=`${U}=${e}`,t.toString()}apply(e,t={}){const n="string"==typeof e?z.decode(e):e;if(!n||!n.view)return;this._used=!0,P(this.w,this.ctx);const i=void 0===t.animate||t.animate,s=K.extend(n.options?K.clone(n.options):{},t.mergeOptions||{}),r=Object.keys(s).length?s:void 0;(this.w.config.chart.group?this.ctx.getSyncedCharts():[this.ctx]).forEach(e=>{N(e,n.view,{animate:i,mergeOptions:r})})}save(e){const t="perspective-"+ ++this._counter;return this._saved.push({id:t,name:e||t,token:this.capture()}),this._used=!0,P(this.w,this.ctx),t}list(){return this._saved.map(e=>({id:e.id,name:e.name,token:e.token}))}delete(e){const t=this._saved.findIndex(t=>t.id===e);t>-1&&this._saved.splice(t,1)}teardown(){this._saved=[],this._counter=0}static decode(e){if("string"!=typeof e||!e)return null;try{const t=JSON.parse(V(e));return t&&"object"==typeof t?1!==t.v?(console.warn(`apexcharts: unsupported perspective version ${t.v} (expected 1).`),null):t:null}catch(e){return console.warn("apexcharts: failed to decode perspective token.",e),null}}static fromURL(e){try{const t=e||(u.isBrowser()?window.location.href:"");if(!t)return null;const n=new URL(t).hash.replace(/^#/,"");if(!n)return null;const i=n.split("&").map(e=>e.split("=")).find(e=>e[0]===U);return i&&null!=i[1]?z.decode(decodeURIComponent(i[1])):null}catch(e){return null}}}d.default.registerFeatures({perspectives:z,perspectivesStatics:{decode:e=>(E(),z.decode(e)),fromURL:e=>(E(),z.fromURL(e))}}),d.default.registerFeatures({storyboard:class{constructor(e,t){this.w=e,this.ctx=t,this._beats=[],this._observer=null,this._activeIndex=-1,this._animate=!0,this._warnedNoPerspectives=!1,this._used=!1}bind(e={}){var t;if(this.unbind(),!u.isBrowser())return 0;const n=this.ctx.el&&this.ctx.el.ownerDocument;if(!n||"undefined"==typeof IntersectionObserver)return 0;let i=null;if(e.scroller&&(i="string"==typeof e.scroller?n.querySelector(e.scroller):e.scroller),this._beats=this._resolveBeats(n,i,e.beats),!this._beats.length)return 0;this._animate=!1!==e.animate;const s=Math.min(Math.max(null!=(t=e.offset)?t:.5,0),1),r=+(100*s).toFixed(3),a=+(100-100*s).toFixed(3);return this._observer=new IntersectionObserver(e=>this._onIntersect(e),{root:i,rootMargin:`-${r}% 0px -${a}%`,threshold:0}),this._beats.forEach(e=>{var t;return null==(t=this._observer)?void 0:t.observe(e.el)}),this._used=!0,P(this.w,this.ctx),this._beats.length}_resolveBeats(e,t,n){const i=[];if(Array.isArray(n))return n.forEach((t,n)=>{var s,r;if(!t)return;const a=t.el&&"object"==typeof t.el?t.el:t.selector?e.querySelector(t.selector):null;a?i.push({el:a,key:null!=(r=null!=(s=t.key)?s:a.getAttribute("data-apex-beat"))?r:String(n),view:t.view,options:t.options,announce:t.announce,onEnter:"function"==typeof t.onEnter?t.onEnter:void 0}):console.warn(`apexcharts: storyboard beat ${n} has no resolvable element; skipped.`)}),i;return(t||e).querySelectorAll("[data-apex-beat]").forEach((e,t)=>{i.push({el:e,key:e.getAttribute("data-apex-beat")||String(t),view:e.getAttribute("data-apex-view")||void 0,options:void 0,announce:e.getAttribute("data-apex-announce")||void 0,onEnter:void 0})}),i}_onIntersect(e){e.forEach(e=>{const t=this._beats.findIndex(t=>t.el===e.target);t<0||(e.isIntersecting?this._activate(t):t===this._activeIndex&&e.rootBounds&&e.boundingClientRect.top>=e.rootBounds.bottom&&t>0&&this._activate(t-1))})}_activate(e,t={}){var n,i;if(e===this._activeIndex)return;const s=this._beats[e];if(!s)return;const r=e>this._activeIndex?"down":"up";this._activeIndex=e;const a=(void 0!==t.animate?t.animate:this._animate)&&!h();if(null!=s.view||s.options)if(this.ctx.perspectives){const e=null!=(n=s.view)?n:{},t="string"==typeof e||e.view?e:{view:this._normalizeView(e)};this.ctx.perspectives.apply(t,{animate:a,mergeOptions:s.options})}else this._warnedNoPerspectives||(this._warnedNoPerspectives=!0,console.warn('apexcharts: storyboard beats carry views but the perspectives feature is not bundled. import "apexcharts/features/storyboard" (which includes it) or drive beats via onEnter.'));const o={index:e,key:s.key,el:s.el,direction:r};s.onEnter&&s.onEnter(this.ctx,o),s.announce&&this._announce(s.announce),"function"==typeof this.w.config.chart.events.beatChange&&this.w.config.chart.events.beatChange(this.ctx,o),null==(i=this.ctx.events)||i.fireEvent("beatChange",[this.ctx,o])}_normalizeView(e){const t=e.annotations&&e.annotations.static||{};return c(o({},e),{annotations:{static:o({points:[],xaxis:[],yaxis:[],texts:[],images:[]},t),dynamic:e.annotations&&e.annotations.dynamic||[]}})}goTo(e,t={}){const n="number"==typeof e?e:this._beats.findIndex(t=>t.key===e);n>=0&&n<this._beats.length&&this._activate(n,t)}current(){if(this._activeIndex<0)return null;const e=this._beats[this._activeIndex];return{index:this._activeIndex,key:e?e.key:null}}unbind(){this._observer&&(this._observer.disconnect(),this._observer=null),this._beats=[],this._activeIndex=-1,this._used=!1,P(this.w,this.ctx)}teardown(){this.unbind()}_announce(e){const t=this.w;if(!t.config.chart.accessibility.announcements.enabled)return;const n=t.dom.baseEl;if(!n)return;const i=n.querySelector(".apexcharts-sr-status");i&&(i.textContent="",setTimeout(()=>{i.textContent=e},0))}}}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>d.default});
@@ -38,7 +38,7 @@ var __async = (__this, __arguments, generator) => {
38
38
  });
39
39
  };
40
40
  /*!
41
- * ApexCharts v8.2.0
41
+ * ApexCharts v8.3.0
42
42
  * (c) 2018-2026 ApexCharts
43
43
  */
44
44
  import * as _core from "apexcharts/core";
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * ApexCharts v8.2.0
2
+ * ApexCharts v8.3.0
3
3
  * (c) 2018-2026 ApexCharts
4
4
  */
5
5
  !function(e){var t="undefined"!=typeof globalThis?globalThis:self,n=t.ApexCharts;if(n&&n.__internals)return e.call(t);if(n)throw new Error("ApexCharts: dist/features/storyboard.js cannot register: the ApexCharts on this page has no add-on surface (a script before 7.0, or a bundled apexcharts/core class). Load apexcharts.min.js, apexcharts.core.min.js or apexcharts.full.min.js.");if("function"==typeof define&&define.amd)return e.call(t);if("object"==typeof exports&&"undefined"!=typeof module||"undefined"==typeof window||"undefined"==typeof document)throw new Error("ApexCharts: dist/features/storyboard.js is a script-tag add-on and needs the ApexCharts script on the page. A bundler imports the matching apexcharts/ sub-path instead.");var i={file:"dist/features/storyboard.js",run:e,done:!1},s=t.__apexcharts_pending_addons__||(t.__apexcharts_pending_addons__=[]);s.push(i),"complete"!==document.readyState&&window.addEventListener("load",function(){if(!i.done){var n=t.ApexCharts;if(n)if(n.__internals){i.done=!0;var r=s.indexOf(i);-1!==r&&s.splice(r,1);try{e.call(t),n.__drainsAddons||t.console.warn("ApexCharts: dist/features/storyboard.js loaded before the ApexCharts script, which is older than 8.0 and does not pick up add-ons loaded first, so it registered only when the page finished loading. Put its tag after the ApexCharts script.")}catch(e){t.console.error("ApexCharts: dist/features/storyboard.js could not register with the ApexCharts script on this page: "+(e&&e.message))}}else t.console.error("ApexCharts: dist/features/storyboard.js cannot register: the ApexCharts on this page has no add-on surface (a script before 7.0, or a bundled apexcharts/core class). Load apexcharts.min.js, apexcharts.core.min.js or apexcharts.full.min.js.");else t.console.warn("ApexCharts: dist/features/storyboard.js is waiting for the ApexCharts script, which had not loaded when the page finished loading. It registers when an ApexCharts 8.0 or later script loads; if the page has none, add apexcharts.min.js (or apexcharts.core.min.js, or apexcharts.full.min.js).")}})}(function(){var e,t;e=this,t=function(e){"use strict";var t=Object.defineProperty,n=Object.defineProperties,i=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,o=(e,n,i)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i,c=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&o(e,n,t[n]);if(s)for(var n of s(t))a.call(t,n)&&o(e,n,t[n]);return e},l=(e,t)=>n(e,i(t));const d=globalThis.ApexCharts,u=globalThis.ApexCharts.__internals.__apex_Environment_Environment,h=globalThis.ApexCharts.__internals;h.__apex_Animations,h.__apex_Animations_computeStagger,h.__apex_Animations_applyAnimationPolicy;const p=h.__apex_Animations_prefersReducedMotion;h.__apex_Animations_applyProgressiveReveal;const f=globalThis.console;function m(e,...t){f.error(e,...t)}function v(e){f.warn(e)}const y="APEX-",g=new Date("2027-07-31T00:00:00Z"),b="__apex_license_v1__";function x(){const e=globalThis;let t=e[b];return t||(t={key:null,listeners:new Set,result:null},e[b]=t),t}const w=class{static get licenseKey(){return x().key}static set licenseKey(e){x().key=e}static get listeners(){return x().listeners}static get validationResult(){return x().result}static set validationResult(e){x().result=e}static getKey(){return this.licenseKey}static getLicenseStatus(){return this.licenseKey?(this.validationResult=this.validateKey(this.licenseKey),this.validationResult):{expired:!1,signatureVerified:!1,valid:!1}}static isKeyValid(e){return!!e&&this.validateKey(e).valid}static isLicenseValid(){return this.getLicenseStatus().valid}static onChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}static setLicense(e){var t,n;if(!e)return this.licenseKey=null,void this.publish({expired:!1,signatureVerified:!1,valid:!1});const i=this.validateKey(e);i.valid||e===this.licenseKey||!(null==(n=this.validationResult)?void 0:n.valid)?(this.licenseKey=e,this.publish(i),i.valid||m(`[Apex] ${i.message}`)):v(`[Apex] Ignoring license key: ${null!=(t=i.message)?t:"it is not valid"} A valid license is already active on this page.`)}static validateKey(e){const t=this.parseKey(e),n=this.validateStructure(e,t);if(!n.valid||!(null==t?void 0:t.signature))return n;const i=this.verdicts.get(e);return!1===i?{data:t.data,expired:!1,message:"Invalid license key. The license signature does not verify.",signatureVerified:!0,valid:!1}:(void 0===i&&this.verifySignature(e,t,n),l(c({},n),{signatureVerified:!0===i}))}static _resetSignatureState(){this.verdicts.clear(),this.verifying.clear(),this.warnedUnverifiable=!1,this.epoch++}static base64ToBytes(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),n=t.padEnd(4*Math.ceil(t.length/4),"="),i=globalThis.atob;if("function"!=typeof i)throw new Error("no base64 decoder available");const s=i(n),r=new Uint8Array(s.length);for(let e=0;e<s.length;e++)r[e]=s.charCodeAt(e);return r}static canonicalPayload(e){const t=e.domains&&e.domains.length>0?e.domains.join(","):"";return`v1|${e.issueDate}|${e.expiryDate}|${e.plan}|${t}`}static notify(e){for(const t of this.listeners)try{t(e)}catch(e){}}static parseKey(e){if("string"!=typeof e||!e.startsWith(y))return null;const t=e.slice(5);if(!t)return null;try{const e=(new TextDecoder).decode(this.base64ToBytes(t)),n=JSON.parse(e);return n.issueDate&&n.expiryDate&&n.plan?{data:{domains:Array.isArray(n.domains)?n.domains:void 0,expiryDate:n.expiryDate,issueDate:n.issueDate,plan:n.plan,valid:!0},signature:"string"==typeof n.sig&&n.sig?n.sig:null}:null}catch(e){return null}}static publish(e){this.validationResult=e,this.notify(e)}static validateStructure(e,t){const n=e=>({expired:!1,message:e,signatureVerified:!1,valid:!1});if("string"!=typeof e||!e.startsWith(y))return n('Invalid license key format. License key must start with "APEX-".');if(!t)return n("Invalid license key. Unable to decode license data.");const{data:i,signature:s}=t;if(!s&&new Date>=g)return n("This license key is in the old unsigned format, which is no longer accepted. Please request a replacement key.");if(new Date(i.expiryDate)<new Date)return{data:i,expired:!0,message:`License expired on ${i.expiryDate}. Please renew your license.`,signatureVerified:!1,valid:!1};if(i.domains&&i.domains.length>0){const e="undefined"==typeof location?"":location.hostname;if(!i.domains.some(t=>e===t||e.endsWith(`.${t}`)))return{data:i,expired:!1,message:`License is not valid for this domain (${e}). Allowed domains: ${i.domains.join(", ")}.`,signatureVerified:!1,valid:!1}}return{data:i,expired:!1,signatureVerified:!1,valid:!0}}static verifySignature(e,t,n){return i=this,s=null,r=function*(){var i;if(this.verifying.has(e)||this.verdicts.has(e))return;this.verifying.add(e);const s=this.epoch,r=null==(i=globalThis.crypto)?void 0:i.subtle;if(!r||0===this.publicKeysSpki.length)return this.verifying.delete(e),void(this.warnedUnverifiable||(this.warnedUnverifiable=!0,v(r?"[Apex] No license signing key is configured in this build, so license signatures cannot be verified.":"[Apex] Web Crypto is unavailable (a secure context is required), so the license signature cannot be verified.")));const a=(new TextEncoder).encode(this.canonicalPayload(t.data));let o=!1;for(const e of this.publicKeysSpki){try{const n=yield r.importKey("spki",this.base64ToBytes(e),{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]);o=yield r.verify({hash:"SHA-256",name:"ECDSA"},n,this.base64ToBytes(t.signature),a)}catch(e){o=!1}if(o)break}if(this.verifying.delete(e),this.epoch!==s)return;if(this.verdicts.set(e,o),o){const t=l(c({},n),{signatureVerified:!0});return void(this.licenseKey===e?this.publish(t):this.notify(t))}const d="Invalid license key. The license signature does not verify.",u={data:t.data,expired:!1,message:d,signatureVerified:!0,valid:!1};this.licenseKey===e?this.publish(u):this.notify(u),m(`[Apex] ${d}`)},new Promise((e,t)=>{var n=e=>{try{o(r.next(e))}catch(e){t(e)}},a=e=>{try{o(r.throw(e))}catch(e){t(e)}},o=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,a);o((r=r.apply(i,s)).next())});var i,s,r}};w.publicKeysSpki=["MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQIaK9UMD6n0oR/FIy8QdL0uSzKMQlf1BB+tOrji4/WuHsyRNxeDhVykoSsNURozMi1xhmqWvBH1L//xIfugTPA=="],w.verdicts=new Map,w.verifying=new Set,w.warnedUnverifiable=!1,w.epoch=0;let _=w;const A=class{static applyStyles(e){Object.assign(e.style,this.CRITICAL_STYLES,{backgroundImage:this.createWatermarkPattern(),backgroundRepeat:"repeat"})}static node(e){return e?e.querySelector(`[${this.WATERMARK_ATTR}]`):null}static add(e,t){return e&&"undefined"!=typeof document?(this.setManaged(e,t),this.paint(e)):null}static exists(e){return!!this.node(e)}static remove(e,t){e&&(this.setManaged(e,t),this.erase(e))}static untrack(e){this.managed.delete(e)}static createWatermarkPattern(){const e=this.WATERMARK_TEXT;return`url("data:image/svg+xml,${encodeURIComponent(`\n <svg xmlns="http://www.w3.org/2000/svg" width="300" height="200">\n <text\n x="50%"\n y="50%"\n dominant-baseline="middle"\n text-anchor="middle"\n font-family="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Arial, sans-serif"\n font-size="18"\n font-weight="600"\n fill="rgba(134, 134, 134, 0.1)"\n transform="rotate(-35, 100, 60)"\n >${e}</text>\n </svg>\n `.trim())}")`}static erase(e){var t;null==(t=this.node(e))||t.remove()}static paint(e){let t=this.node(e);return t||(t=document.createElement("div"),t.setAttribute(this.WATERMARK_ATTR,""),e.appendChild(t)),this.applyStyles(t),"function"==typeof getComputedStyle&&"static"===getComputedStyle(e).position&&(e.style.position="relative"),t}static reconcile(){const e=_.isLicenseValid();for(const t of this.managed)t.isConnected?e?this.erase(t):this.paint(t):this.managed.delete(t)}static setManaged(e,t){!1!==(null==t?void 0:t.manage)?this.track(e):this.managed.delete(e)}static track(e){this.managed.add(e),this.subscribed||(this.subscribed=!0,_.onChange(()=>{this.reconcile()}))}};A.WATERMARK_ATTR="data-apexcharts-watermark",A.WATERMARK_TEXT="APEXCHARTS",A.ATTR="data-apexcharts-watermark",A.CRITICAL_STYLES={bottom:"0",display:"block",left:"0",msUserSelect:"none",opacity:"1",pointerEvents:"none",position:"absolute",right:"0",top:"0",userSelect:"none",visibility:"visible",webkitUserSelect:"none",zIndex:"10000"},A.managed=new Set,A.subscribed=!1;let S=A;const k="https://apexcharts.com/pricing",C="__apexcharts_license_enforcer_v1__";globalThis[C]||(globalThis[C]={perspectivesTokenDecoded:!1,enforced:new Set});const T=globalThis[C],O=T.enforced;function E(){T.perspectivesTokenDecoded=!0,D()}const I=new Set(["premium","enterprise"]);function R(e,t){const n=S.add(t,{manage:!1});if(!n||"undefined"==typeof MutationObserver)return;if(e._wmNodeObserver&&e._wmObservedNode===n)return;e._wmNodeObserver&&e._wmNodeObserver.disconnect();const i=new MutationObserver(()=>{const e=S.node(t);e&&(i.disconnect(),S.applyStyles(e),i.takeRecords(),i.observe(e,{attributes:!0,attributeFilter:["style"]}))});i.observe(n,{attributes:!0,attributeFilter:["style"]}),e._wmNodeObserver=i,e._wmObservedNode=n}function j(e,t){e._wmWrapObserver&&(e._wmWrapObserver.disconnect(),e._wmWrapObserver=null),e._wmNodeObserver&&(e._wmNodeObserver.disconnect(),e._wmNodeObserver=null),e._wmObservedNode=null,e._wmObservedWrap=null;const n=t||e.w&&e.w.dom&&e.w.dom.elWrap;n&&S.remove(n,{manage:!1})}function P(e,t){try{if(!u.isBrowser())return;if(e&&e.globals&&e.globals.isDestroyed)return void O.delete(t);const n=e&&e.dom&&e.dom.elWrap;if(!n)return;const i=function(e,t){var n;const i=e&&e.config&&e.config.chart||{},s=[];"unit"===i.type&&s.push("unit"),"raincloud"===i.requestedType&&s.push("raincloud"),t.trellis&&"function"==typeof t.trellis.isActive&&t.trellis.isActive()&&s.push("trellis"),t.storyboard&&t.storyboard._used&&s.push("storyboard");const r=i.link;return t.linkedViews&&r&&(!0===r.enabled||"function"==typeof r.dimension)&&s.push("link"),t.ink&&i.ink&&!0===i.ink.enabled&&s.push("ink"),t.measure&&i.measure&&!0===i.measure.enabled&&s.push("measure"),t.contextMenu&&i.contextMenu&&!0===i.contextMenu.enabled&&s.push("context-menu"),t.perspectives&&(t.perspectives._used||T.perspectivesTokenDecoded)&&s.push("perspectives"),t.history&&i.history&&!0===i.history.enabled&&s.push("history"),(null==(n=t._highlightFilter)?void 0:n.isActive())&&s.push("highlight-filter"),s}(e,t);if(0===i.length)return O.delete(t),void j(t,n);O.add(t);const s=function(e){const t=e&&e.config&&e.config.chart&&e.config.chart.license;if(t)return t;const n=_.getKey();if(n)return n;const i=u.getApex();return i&&i.license?i.license:null}(e);if(function(e){if(!e)return!1;const t=_.validateKey(e);if(!t.valid)return!1;const n=t.data&&t.data.plan;return"string"==typeof n&&I.has(n.toLowerCase())}(s))return void j(t,n);!function(e,t){if(R(e,t),"undefined"==typeof MutationObserver)return;if(e._wmWrapObserver&&e._wmObservedWrap===t)return;e._wmWrapObserver&&e._wmWrapObserver.disconnect();const n=new MutationObserver(()=>{S.node(t)||R(e,t)});n.observe(t,{childList:!0}),e._wmWrapObserver=n,e._wmObservedWrap=t}(t,n),function(e,t,n){if(e._premiumLicenseNotified)return;e._premiumLicenseNotified=!0;const i=n.length>1;if(!t)return void console.warn(`[ApexCharts] Premium feature${i?"s":""} in use (${n.join(", ")}) without a license. Running in trial mode with a watermark. Get a license: ${k}`);const s=_.validateKey(t);if(s.valid){const e=s.data&&s.data.plan||"current";return void console.warn(`[ApexCharts] Premium feature${i?"s":""} in use (${n.join(", ")}) require a Premium or Enterprise license; the ${e} plan does not include ${i?"them":"it"}. Running in trial mode with a watermark. Upgrade: ${k}`)}t!==_.getKey()&&console.error(`[Apex] ${s.message}`)}(t,s,i)}catch(e){}}function D(){if(!u.isBrowser())return;const e=new Set,t=u.getApex(),n=t&&t._chartInstances;Array.isArray(n)&&n.forEach(t=>{const n=t&&t.chart;n&&n.w&&!n.w.globals.isDestroyed&&(e.add(n),P(n.w,n))}),Array.from(O).forEach(t=>{const n=t&&t.w,i=n&&n.dom&&n.dom.elWrap;n&&!n.globals.isDestroyed&&i&&!1!==i.isConnected?e.has(t)||P(n,t):O.delete(t)})}_.onChange(D);const K=globalThis.ApexCharts.__internals.__apex_Utils;function $(e,t){const n=null!=e,i=null!=t;return n||i?{min:n?e:null,max:i?t:null}:null}function L(e){return Array.isArray(e)?e.map(e=>Array.isArray(e)?e.slice():e):[]}function M(e,t){return"function"==typeof e&&t?e===t.addXaxisAnnotation?"xaxis":e===t.addYaxisAnnotation?"yaxis":e===t.addPointAnnotation?"point":null:null}function W(e,t){const n=e.config.annotations?K.clone(e.config.annotations):null,i=[],s=e.globals.memory&&e.globals.memory.methodsToExec||[];for(const e of s){if(!e||"addAnnotation"!==e.label)continue;const n=M(e.method,t);n&&i.push({kind:n,params:K.clone(e.params)})}return{static:n,dynamic:i}}function N(e){const t=e&&e.measure;if(!t||"function"!=typeof t.getPins)return null;const n=t.getPins();return Array.isArray(n)&&n.length?{pins:n}:null}function U(e,t,{animate:n=!0,mergeOptions:i}={}){var s,r;if(!e||!t)return;"number"==typeof t.v&&t.v>1&&console.warn(`[apexcharts] ViewState v${t.v} is newer than this build understands (v1); applying best-effort.`),e.clearAnnotations();const a=i?K.clone(i):{},o=t.window&&t.window.xaxis;a.xaxis=Object.assign({},a.xaxis,o?{min:null!=(s=o.min)?s:void 0,max:null!=(r=o.max)?r:void 0}:{min:void 0,max:void 0});const c=t.window&&t.window.yaxis;if(Array.isArray(c)&&(a.yaxis=c.map(e=>{var t,n;return e?{min:null!=(t=e.min)?t:void 0,max:null!=(n=e.max)?n:void 0}:{}})),t.theme){const e={};null!=t.theme.mode&&(e.mode=t.theme.mode),null!=t.theme.palette&&(e.palette=t.theme.palette),Object.keys(e).length&&(a.theme=Object.assign({},a.theme,e))}t.annotations&&t.annotations.static&&(a.annotations=K.clone(t.annotations.static)),e.updateOptions(a,!1,n,!1,!1),function(e,t){if(!e||!t)return;const n=e.w;n.interact.zoomed=!!t.zoomed,function(e,t,n){const i=e.w;if(null==t&&null==n)return;const s=i.globals.seriesNames||[],r=new Set([...t||[],...n||[]]),a=new Set([...i.globals.collapsedSeriesIndices||[],...i.globals.ancillaryCollapsedSeriesIndices||[]]);for(let t=0;t<s.length;t++){const n=s[t];if(null==n)continue;const i=r.has(t),o=a.has(t);i&&!o?e.hideSeries(n):!i&&o&&e.showSeries(n)}}(e,t.collapsed,t.ancillaryCollapsed),t.annotations&&Array.isArray(t.annotations.dynamic)&&t.annotations.dynamic.forEach(t=>{const n=function(e){switch(e){case"xaxis":return"addXaxisAnnotation";case"yaxis":return"addYaxisAnnotation";case"point":return"addPointAnnotation";default:return null}}(t.kind);n&&"function"==typeof e[n]&&e[n](t.params,!0)}),function(e,t){Array.isArray(t)&&(e.w.interact.selectedDataPoints=L(t))}(e,t.selectedDataPoints),t.locale&&t.locale!==n.config.chart.defaultLocale&&e.setLocale(t.locale),e.measure&&"function"==typeof e.measure.setPins&&e.measure.setPins(t.measure&&t.measure.pins||[])}(e,t)}const B="apex";function V(e){return function(e){if("undefined"!=typeof Buffer)return Buffer.from(e,"utf-8").toString("base64");const t=(new TextEncoder).encode(e);let n="";for(let e=0;e<t.length;e++)n+=String.fromCharCode(t[e]);return btoa(n)}(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function z(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");for(;t.length%4;)t+="=";return function(e){if("undefined"!=typeof Buffer)return Buffer.from(e,"base64").toString("utf-8");const t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return(new TextDecoder).decode(n)}(t)}class q{constructor(e,t){this.w=e,this.ctx=t,this._saved=[],this._counter=0,this._used=!1}capture(){const e={v:1,view:function(e,t){var n,i;const s=e.config.xaxis||{},r=(Array.isArray(e.config.yaxis)?e.config.yaxis:e.config.yaxis?[e.config.yaxis]:[]).map(e=>$(e&&e.min,e&&e.max)),a=r.some(e=>null!==e),o=e.config.theme,c=t&&t.drilldown;return{v:1,window:{xaxis:$(s.min,s.max),yaxis:a?r:null},zoomed:!!e.interact.zoomed,collapsed:(e.globals.collapsedSeriesIndices||[]).slice(),ancillaryCollapsed:(e.globals.ancillaryCollapsedSeriesIndices||[]).slice(),selectedDataPoints:L(e.interact.selectedDataPoints),theme:o?{mode:null!=(n=o.mode)?n:null,palette:null!=(i=o.palette)?i:null}:null,locale:e.config.chart&&e.config.chart.defaultLocale||null,annotations:W(e,t),drill:c&&c.depth>0?{path:c.path.slice()}:null,measure:N(t)}}(this.w,this.ctx)},t=this._serializableDelta();return t&&Object.keys(t).length&&(e.options=t),e}_serializableDelta(){const e=this.w.config,t=e.chart&&e.chart.perspectives&&e.chart.perspectives.serializeOptions||["theme","xaxis","yaxis","title","subtitle"],n={};return t.forEach(t=>{if(void 0!==e[t]){const i=function(e){try{return JSON.parse(JSON.stringify(e))}catch(e){return}}(e[t]);void 0!==i&&(n[t]=i)}}),n}encode(e){const t=e||this.capture();return V(JSON.stringify(t))}decode(e){return q.decode(e)}toURL(){if(!u.isBrowser())return"";const e=this.encode(this.capture()),t=new URL(window.location.href);return t.hash=`${B}=${e}`,t.toString()}apply(e,t={}){const n="string"==typeof e?q.decode(e):e;if(!n||!n.view)return;this._used=!0,P(this.w,this.ctx);const i=void 0===t.animate||t.animate,s=K.extend(n.options?K.clone(n.options):{},t.mergeOptions||{}),r=Object.keys(s).length?s:void 0;(this.w.config.chart.group?this.ctx.getSyncedCharts():[this.ctx]).forEach(e=>{U(e,n.view,{animate:i,mergeOptions:r})})}save(e){const t="perspective-"+ ++this._counter;return this._saved.push({id:t,name:e||t,token:this.capture()}),this._used=!0,P(this.w,this.ctx),t}list(){return this._saved.map(e=>({id:e.id,name:e.name,token:e.token}))}delete(e){const t=this._saved.findIndex(t=>t.id===e);t>-1&&this._saved.splice(t,1)}teardown(){this._saved=[],this._counter=0}static decode(e){if("string"!=typeof e||!e)return null;try{const t=JSON.parse(z(e));return t&&"object"==typeof t?1!==t.v?(console.warn(`apexcharts: unsupported perspective version ${t.v} (expected 1).`),null):t:null}catch(e){return console.warn("apexcharts: failed to decode perspective token.",e),null}}static fromURL(e){try{const t=e||(u.isBrowser()?window.location.href:"");if(!t)return null;const n=new URL(t).hash.replace(/^#/,"");if(!n)return null;const i=n.split("&").map(e=>e.split("=")).find(e=>e[0]===B);return i&&null!=i[1]?q.decode(decodeURIComponent(i[1])):null}catch(e){return null}}}d.registerFeatures({perspectives:q,perspectivesStatics:{decode:e=>(E(),q.decode(e)),fromURL:e=>(E(),q.fromURL(e))}}),d.registerFeatures({storyboard:class{constructor(e,t){this.w=e,this.ctx=t,this._beats=[],this._observer=null,this._activeIndex=-1,this._animate=!0,this._warnedNoPerspectives=!1,this._used=!1}bind(e={}){var t;if(this.unbind(),!u.isBrowser())return 0;const n=this.ctx.el&&this.ctx.el.ownerDocument;if(!n||"undefined"==typeof IntersectionObserver)return 0;let i=null;if(e.scroller&&(i="string"==typeof e.scroller?n.querySelector(e.scroller):e.scroller),this._beats=this._resolveBeats(n,i,e.beats),!this._beats.length)return 0;this._animate=!1!==e.animate;const s=Math.min(Math.max(null!=(t=e.offset)?t:.5,0),1),r=+(100*s).toFixed(3),a=+(100-100*s).toFixed(3);return this._observer=new IntersectionObserver(e=>this._onIntersect(e),{root:i,rootMargin:`-${r}% 0px -${a}%`,threshold:0}),this._beats.forEach(e=>{var t;return null==(t=this._observer)?void 0:t.observe(e.el)}),this._used=!0,P(this.w,this.ctx),this._beats.length}_resolveBeats(e,t,n){const i=[];return Array.isArray(n)?(n.forEach((t,n)=>{var s,r;if(!t)return;const a=t.el&&"object"==typeof t.el?t.el:t.selector?e.querySelector(t.selector):null;a?i.push({el:a,key:null!=(r=null!=(s=t.key)?s:a.getAttribute("data-apex-beat"))?r:String(n),view:t.view,options:t.options,announce:t.announce,onEnter:"function"==typeof t.onEnter?t.onEnter:void 0}):console.warn(`apexcharts: storyboard beat ${n} has no resolvable element; skipped.`)}),i):((t||e).querySelectorAll("[data-apex-beat]").forEach((e,t)=>{i.push({el:e,key:e.getAttribute("data-apex-beat")||String(t),view:e.getAttribute("data-apex-view")||void 0,options:void 0,announce:e.getAttribute("data-apex-announce")||void 0,onEnter:void 0})}),i)}_onIntersect(e){e.forEach(e=>{const t=this._beats.findIndex(t=>t.el===e.target);t<0||(e.isIntersecting?this._activate(t):t===this._activeIndex&&e.rootBounds&&e.boundingClientRect.top>=e.rootBounds.bottom&&t>0&&this._activate(t-1))})}_activate(e,t={}){var n,i;if(e===this._activeIndex)return;const s=this._beats[e];if(!s)return;const r=e>this._activeIndex?"down":"up";this._activeIndex=e;const a=(void 0!==t.animate?t.animate:this._animate)&&!p();if(null!=s.view||s.options)if(this.ctx.perspectives){const e=null!=(n=s.view)?n:{},t="string"==typeof e||e.view?e:{view:this._normalizeView(e)};this.ctx.perspectives.apply(t,{animate:a,mergeOptions:s.options})}else this._warnedNoPerspectives||(this._warnedNoPerspectives=!0,console.warn('apexcharts: storyboard beats carry views but the perspectives feature is not bundled. import "apexcharts/features/storyboard" (which includes it) or drive beats via onEnter.'));const o={index:e,key:s.key,el:s.el,direction:r};s.onEnter&&s.onEnter(this.ctx,o),s.announce&&this._announce(s.announce),"function"==typeof this.w.config.chart.events.beatChange&&this.w.config.chart.events.beatChange(this.ctx,o),null==(i=this.ctx.events)||i.fireEvent("beatChange",[this.ctx,o])}_normalizeView(e){const t=e.annotations&&e.annotations.static||{};return l(c({},e),{annotations:{static:c({points:[],xaxis:[],yaxis:[],texts:[],images:[]},t),dynamic:e.annotations&&e.annotations.dynamic||[]}})}goTo(e,t={}){const n="number"==typeof e?e:this._beats.findIndex(t=>t.key===e);n>=0&&n<this._beats.length&&this._activate(n,t)}current(){if(this._activeIndex<0)return null;const e=this._beats[this._activeIndex];return{index:this._activeIndex,key:e?e.key:null}}unbind(){this._observer&&(this._observer.disconnect(),this._observer=null),this._beats=[],this._activeIndex=-1,this._used=!1,P(this.w,this.ctx)}teardown(){this.unbind()}_announce(e){const t=this.w;if(!t.config.chart.accessibility.announcements.enabled)return;const n=t.dom.baseEl;if(!n)return;const i=n.querySelector(".apexcharts-sr-status");i&&(i.textContent="",setTimeout(()=>{i.textContent=e},0))}}}),e.default=d,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ApexStoryboard={})});
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * ApexCharts v8.2.0
2
+ * ApexCharts v8.3.0
3
3
  * (c) 2018-2026 ApexCharts
4
4
  */
5
- "use strict";var t=Object.defineProperty,e=Object.defineProperties,r=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(e,r,n)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,i=(t,e)=>{for(var r in e||(e={}))s.call(e,r)&&a(t,r,e[r]);if(n)for(var r of n(e))o.call(e,r)&&a(t,r,e[r]);return t},l=(t,n)=>e(t,r(n));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function c(t){if(t&&t.__esModule)return t;const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const r in t)if("default"!==r){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:()=>t[r]})}return e.default=t,Object.freeze(e)}const h=c(require("apexcharts/core")),u=h.__apex_Graphics,d=h.__apex_Utils;class f{static xRatio(t){const e=t.layout.gridWidth||1;return(t.globals.maxX-t.globals.minX)/e}static dataXToPx(t,e){return(e-t.globals.minX)/f.xRatio(t)}static pxToDataX(t,e){return t.globals.minX+e*f.xRatio(t)}static screenXToPlotPx(t,e){const r=t.dom.baseEl,n=r&&r.querySelector(".apexcharts-svg");if(!n)return e-t.layout.translateX;const s=n.getBoundingClientRect(),o=t.globals.svgWidth?s.width/t.globals.svgWidth:1;return(e-s.left)/(o||1)-t.layout.translateX}}const g=h.__apex_Environment_Environment;function p(t,e){const r=(e.collapsedSeries||[]).concat(e.ancillaryCollapsedSeries||[]);return t.map((t,e)=>{const a=t||{},{hidden:c}=a,h=((t,e)=>{var r={};for(var a in t)s.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(null!=t&&n)for(var a of n(t))e.indexOf(a)<0&&o.call(t,a)&&(r[a]=t[a]);return r})(a,["hidden"]);let u=h.data;if(Array.isArray(u)&&!u.length){const t=r.find(t=>t.index===e);t&&Array.isArray(t.data)&&(u=t.data)}return l(i({},h),{data:Array.isArray(u)?u.slice():u})})}const m=["wiggle","silhouette","zero","expand"],y=["inside-out","inverse","none"];function b(t,e,r){const n=r&&void 0!==r[e]?r[e]:e+1;return null==t?{x:n,y:null,rest:{}}:Array.isArray(t)?{x:void 0!==t[0]?t[0]:n,y:t[1],rest:{}}:"object"==typeof t?{x:void 0!==t.x?t.x:n,y:t.y,rest:t}:{x:n,y:t,rest:{}}}function x(t,e){var r,n;const s=e.config,o=e.globals;if(!Array.isArray(t))return t;o.streamgraphRawSeries||(o.streamgraphRawSeries=p(t,o));const a=o.streamgraphRawSeries;if(a.some(t=>function(t){for(let e=0;e<t.length;e++){const r=t[e],n=Array.isArray(r)?r[1]:r&&"object"==typeof r?r.y:r;if(Array.isArray(n)&&2===n.length)return!0}return!1}(Array.isArray(null==t?void 0:t.data)?t.data:[])))return e.streamgraphData=null,t;const c=(null==(r=s.plotOptions)?void 0:r.streamgraph)||{},h=-1!==m.indexOf(c.offset)?c.offset:"wiggle",u=-1!==y.indexOf(c.order)?c.order:"inside-out",f=null==(n=s.xaxis)?void 0:n.categories,g=function(t){return(t.collapsedSeriesIndices||[]).concat(t.ancillaryCollapsedSeriesIndices||[])}(o),{xs:x,rows:v,grids:w}=function(t,e){var r;const n=[],s=[],o=new Map,a=[];for(let l=0;l<t.length;l++){const c=Array.isArray(null==(r=t[l])?void 0:r.data)?t[l].data:[],h=new Map;for(let t=0;t<c.length;t++){const{x:r,y:a,rest:l}=b(c[t],t,e),u=r instanceof Date?r.getTime():r;o.has(u)||(o.set(u,n.length),n.push(r),s.push(i({},l))),h.set(o.get(u),d.parseNumber(a))}a.push(h)}return{xs:n,rows:s,grids:a}}(a,f),_=function(t){const e=[];for(let r=0;r<t.length;r++){const n=t[r]instanceof Date?t[r].getTime():t[r];if("number"!=typeof n||!isFinite(n))return null;e.push(r)}const r=e.map(e=>({j:e,v:t[e]instanceof Date?t[e].getTime():t[e]}));r.sort((t,e)=>t.v-e.v);const n=r.map(t=>t.j);for(let t=0;t<n.length;t++)if(n[t]!==t)return n;return null}(x),A=_?_.map(t=>x[t]):x,S=_?_.map(t=>v[t]):v,O=A.length;let F=!1;const P=[];for(let t=0;t<a.length;t++){const e=new Array(O);for(let r=0;r<O;r++){const n=w[t].get(_?_[r]:r);let s=null==n?0:Number(n);isFinite(s)||(s=0),s<0&&(F=!0,s=0),e[r]=s}P.push(e)}F&&!o.streamgraphWarnedNegative&&(o.streamgraphWarnedNegative=!0,console.warn('ApexCharts: a streamgraph stacks parts of a whole, so negative values have no band to draw and were treated as 0. Use a stacked area (chart.type: "area", chart.stacked: true) for data that goes below zero.'));const T=[];for(let t=0;t<a.length;t++)-1===g.indexOf(t)&&T.push(t);let M=P;if("expand"===h){M=P.map(t=>t.slice());for(let t=0;t<O;t++){let e=0;for(let r=0;r<T.length;r++)e+=M[T[r]][t];if(e)for(let r=0;r<T.length;r++)M[T[r]][t]/=e}}const W=function(t,e,r){if("none"===t)return e.slice();if("inverse"===t)return e.slice().reverse();const n={},s={};for(let t=0;t<e.length;t++){const o=e[t],a=r[o];let i=0,l=-1/0,c=0;for(let t=0;t<a.length;t++)i+=a[t],a[t]>l&&(l=a[t],c=t);n[o]=i,s[o]=c}const o=e.slice().sort((t,e)=>s[t]-s[e]||t-e);let a=0,i=0;const l=[],c=[];for(let t=0;t<o.length;t++){const e=o[t];a<i?(a+=n[e],l.push(e)):(i+=n[e],c.push(e))}return c.reverse().concat(l)}(u,T,M),z=function(t,e,r,n){const s=new Array(n).fill(0);if(0===n||0===e.length)return s;if("zero"===t||"expand"===t)return s;if("silhouette"===t){for(let t=0;t<n;t++){let n=0;for(let s=0;s<e.length;s++)n+=r[e[s]][t];s[t]=-n/2}return s}let o=0;for(let t=1;t<n;t++){let n=0,a=0;for(let s=0;s<e.length;s++){const o=r[e[s]],i=o[t];let l=(i-o[t-1])/2;for(let n=0;n<s;n++){const s=r[e[n]];l+=s[t]-s[t-1]}n+=i,a+=l*i}n&&(o-=a/n),s[t]=o}return s}(h,W,M,O),E=a.map(()=>null),j=a.map(()=>null);for(let t=0;t<W.length;t++)E[W[t]]=new Array(O),j[W[t]]=new Array(O);for(let t=0;t<O;t++){let e=z[t];for(let r=0;r<W.length;r++){const n=W[r],s=E[n],o=j[n];s[t]=e,e+=M[n][t],o[t]=e}}return e.streamgraphData={names:a.map((t,e)=>{var r;return null!=(r=null==t?void 0:t.name)?r:`Series ${e+1}`}),xs:A,values:P,lows:E,highs:j,order:W,offset:h,hidden:a.map((t,e)=>e).filter(t=>-1!==g.indexOf(t))},a.map((t,e)=>{const r=E[e],n=j[e];if(!r||!n)return l(i({},t),{data:[]});const s=new Array(O);for(let t=0;t<O;t++)s[t]=l(i({},S[t]),{x:A[t],y:[r[t],n[t]]});return l(i({},t),{data:s})})}const v="__apexcharts_series_transforms__";var w,_;globalThis[v]||(globalThis[v]={}),w="streamgraph","function"==typeof(_=x)?globalThis[v][w]=_:console.warn(`ApexCharts: registerSeriesTransform("${w}") expects a function (series, w) => series.`),h.default.registerFeatures({streamgraph:class{constructor(t,e){this.w=t,this.ctx=e,this._hovered=-1}isActive(){return"streamgraph"===this.w.config.chart.requestedType}_yPx(t){var e;const r=this.w,n=r.globals,s=r.layout.gridHeight,o=n.maxY-n.minY;if(!o||!isFinite(o))return s/2;const a=(t-n.minY)/o;return(null==(e=r.config.yaxis[0])?void 0:e.reversed)?a*s:s-a*s}draw(){this.isActive()&&(this.clearDim(),this.bindHover(),this.drawLabels())}drawLabels(){var t,e,r,n,s,o,a;const i=this.w;if(!this.isActive())return;const l=null==(e=null==(t=i.config.plotOptions)?void 0:t.streamgraph)?void 0:e.labels;if(!l||!1===l.show)return;const c=i.dom.elGraphical,h=i.streamgraphData;if(!c||!h)return;this.removeLabels();const d=new u(i,this.ctx),f=d.group({class:"apexcharts-streamgraph-labels"}),g=(null==(r=l.style)?void 0:r.fontSize)||"auto",p=(null==(n=l.style)?void 0:n.fontFamily)||i.config.chart.fontFamily,m=(null==(s=l.style)?void 0:s.fontWeight)||600,y=null==l.minWidth?24:l.minWidth,b=[];for(let t=0;t<h.order.length;t++){const e=h.order[t],r=this._placeLabel(e,{fontSize:g,fontFamily:p,fontWeight:m,minWidth:y,graphics:d});r&&b.push(r)}let x=0;for(const t of this._deconflict(b)){const e=t.k,r=d.drawText({x:t.x,y:t.y,text:t.text,textAnchor:"middle",dominantBaseline:"middle",fontSize:t.fontSize,fontFamily:p,fontWeight:m,foreColor:(null==(a=null==(o=l.style)?void 0:o.colors)?void 0:a[e])||t.color,cssClass:"apexcharts-streamgraph-label"});r.node.setAttribute("data:realIndex",String(e)),f.add(r),x++}if(!x)return;const v=c.node.querySelector(".apexcharts-xaxis");v?c.node.insertBefore(f.node,v):c.add(f),this.holdUntilBandsLand(f)}_placeLabel(t,{fontSize:e,fontFamily:r,fontWeight:n,minWidth:s,graphics:o}){const a=this.w,i=a.streamgraphData,l=i.lows[t],c=i.highs[t];if(!l||!c)return null;const h=a.globals.seriesXvalues[t],u=l.length;if(!Array.isArray(h)||h.length<u||0===u)return null;const d=new Array(u);let f=0;for(let t=0;t<u;t++){const e=Math.abs(this._yPx(c[t])-this._yPx(l[t]));d[t]=e,e>f&&(f=e)}if(f<=0)return null;const g=this._resolveFontSize(e,f),p=String(i.names[t]);let m=g,y=o.getTextRects(p,`${m}px`,r,"",!0,n);if(f<y.height+6)return null;const b=this._widestRun(d,h,y.height+6,u);if(!b)return null;if(y.width>b.width&&"auto"===e){const t=Math.floor(m*(b.width/y.width));if(t<this._autoBounds().min)return null;if(m=t,y=o.getTextRects(p,`${m}px`,r,"",!0,n),f<y.height+6)return null}const x=y.height+6,v=[];for(const e of this._runs(d,x,u)){const n=Number(h[e.l]),a=Number(h[e.r]);if(!isFinite(n)||!isFinite(a))continue;let i=a-n;if(i<=0&&u>1){const t=Math.abs(Number(h[Math.min(e.r+1,u-1)])-Number(h[Math.max(e.l-1,0)]));i=isFinite(t)?t:0}if(i<s||i<.35*y.width)continue;const d=y.width<=i?p:o.getTextBasedOnMaxWidth({text:p,maxWidth:i,fontSize:`${m}px`,fontFamily:r});if(!d||"..."===d)continue;const f=d===p?y.width:y.width*(d.length/p.length),g=[n+i/2];i>2.2*f&&g.push(n+f/2+2,a-f/2-2);for(const r of g){let n=e.l,s=1/0;for(let t=e.l;t<=e.r;t++){const e=Math.abs(Number(h[t])-r);e<s&&(s=e,n=t)}v.push({x:r,y:(this._yPx(l[n])+this._yPx(c[n]))/2,text:d,color:this._contrastOn(t),fontSize:`${m}px`,width:f,height:y.height})}if(v.length>=6)break}return v.length?{k:t,weight:f,candidates:v}:null}_runs(t,e,r){const n=[];let s=0;for(;s<r;){if(t[s]<e){s++;continue}let o=s,a=t[s];for(;o+1<r&&t[o+1]>=e;)o++,t[o]>a&&(a=t[o]);n.push({l:s,r:o,maxT:a}),s=o+1}return n.sort((t,e)=>e.maxT-t.maxT)}_widestRun(t,e,r,n){let s=-1;for(const o of this._runs(t,r,n)){const t=Number(e[o.r])-Number(e[o.l]);isFinite(t)&&t>s&&(s=t)}return s>=0?{width:s}:null}_deconflict(t){const e=t.slice().sort((t,e)=>e.weight-t.weight),r=[],n=t=>!r.some(e=>t.left<e.box.right&&t.right>e.box.left&&t.top<e.box.bottom&&t.bottom>e.box.top);for(const t of e)for(const e of t.candidates){const s={left:e.x-e.width/2,right:e.x+e.width/2,top:e.y-e.height/2,bottom:e.y+e.height/2};if(n(s)){r.push(l(i({k:t.k},e),{box:s}));break}}return r}_autoBounds(){var t,e;const r=(null==(e=null==(t=this.w.config.plotOptions)?void 0:t.streamgraph)?void 0:e.labels)||{};return{min:null==r.minFontSize?9:r.minFontSize,max:null==r.maxFontSize?30:r.maxFontSize}}_resolveFontSize(t,e){if("auto"!==t){const e=parseFloat(t);return isFinite(e)&&e>0?e:12}const{min:r,max:n}=this._autoBounds();return Math.max(r,Math.min(n,Math.round(.36*e)))}_contrastOn(t){var e;const r=this.w,n=null==(e=r.globals.colors)?void 0:e[t],s="string"==typeof n?d.parseHex(n):null;return s?d.relativeLuminance(s)>.45?"#000000":"#ffffff":r.config.chart.foreColor}removeLabels(){const t=this.w.dom.elGraphical,e=t&&t.node.querySelector(".apexcharts-streamgraph-labels");e&&e.parentNode&&e.parentNode.removeChild(e)}bindHover(){const t=this.w;if(!g.isBrowser())return;if(!1===this._hoverCfg().show)return;const e=t.dom.baseEl&&t.dom.baseEl.querySelector(".apexcharts-svg");e&&!e.__apexStreamHover&&(e.__apexStreamHover=!0,e.addEventListener("mousemove",t=>{this.isActive()&&this.w.streamgraphData&&this._dim(this._bandAt(t))}),e.addEventListener("mouseleave",()=>{this._dim(-1)}))}_hoverCfg(){var t,e;return(null==(e=null==(t=this.w.config.plotOptions)?void 0:t.streamgraph)?void 0:e.hover)||{}}_bandAt(t){const e=this.w,r=e.streamgraphData;if(!r||!r.order.length)return-1;const n=e.dom.baseEl&&e.dom.baseEl.querySelector(".apexcharts-svg");if(!n)return-1;const s=n.getBoundingClientRect(),o=e.globals.svgWidth?s.width/e.globals.svgWidth:1,a=f.screenXToPlotPx(e,t.clientX),i=(t.clientY-s.top)/(o||1)-e.layout.translateY;if(a<0||a>e.layout.gridWidth)return-1;if(i<0||i>e.layout.gridHeight)return-1;const l=e.globals.seriesXvalues[r.order[0]];if(!Array.isArray(l)||!l.length)return-1;const c=e.interact?e.interact.capturedDataPointIndex:-1;let h=-1;if(c>=0&&c<l.length)h=c;else{let t=1/0;for(let e=0;e<l.length;e++){const r=Math.abs(Number(l[e])-a);r<t&&(t=r,h=e)}}if(h<0)return-1;let u=-1,d=1/0;for(let t=0;t<r.order.length;t++){const e=r.order[t],n=this._yPx(r.highs[e][h]),s=this._yPx(r.lows[e][h]),o=Math.min(n,s),a=Math.max(n,s);if(i>=o&&i<=a)return e;const l=i<o?o-i:i-a;l<d&&(d=l,u=e)}return u}_dim(t){const e=this.w;if(t===this._hovered)return;this._hovered=t;const r=this._hoverCfg(),n=null==r.opacity?.35:r.opacity,s=e.dom.baseEl.querySelectorAll(".apexcharts-series"),o=e.dom.baseEl.querySelectorAll(".apexcharts-streamgraph-label"),a=(e,r)=>t<0||r===t;for(let t=0;t<s.length;t++){const e=s[t];e.style.transition="opacity .15s ease",e.style.opacity=a(0,Number(e.getAttribute("data:realIndex")))?"":String(n)}for(let t=0;t<o.length;t++){const r=o[t];r.style.transition="opacity .15s ease, fill .15s ease",a(0,Number(r.getAttribute("data:realIndex")))?this._restoreLabel(r):(r.getAttribute("data:fill")||r.setAttribute("data:fill",r.getAttribute("fill")||""),r.setAttribute("fill",e.config.chart.foreColor),r.style.opacity="0.65")}}_restoreLabel(t){const e=t.getAttribute("data:fill");e&&t.setAttribute("fill",e),t.style.opacity=""}clearDim(){this._hovered=-1;const t=this.w;if(!t.dom.baseEl)return;const e=t.dom.baseEl.querySelectorAll(".apexcharts-series");for(let t=0;t<e.length;t++){e[t].style.opacity=""}const r=t.dom.baseEl.querySelectorAll(".apexcharts-streamgraph-label");for(let t=0;t<r.length;t++)this._restoreLabel(r[t])}holdUntilBandsLand(t){const e=this.w;g.isBrowser()&&e.globals.shouldAnimate&&!e.globals.animationEnded&&(t.node.classList.add("apexcharts-element-hidden"),e.globals.delayedElements.push({el:t.node,holdUntilComplete:!0}))}}}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>h.default}),exports.streamgraphTransform=x;
5
+ "use strict";var t=Object.defineProperty,e=Object.defineProperties,r=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(e,r,n)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,i=(t,e)=>{for(var r in e||(e={}))s.call(e,r)&&a(t,r,e[r]);if(n)for(var r of n(e))o.call(e,r)&&a(t,r,e[r]);return t},l=(t,n)=>e(t,r(n));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function c(t){if(t&&t.__esModule)return t;const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const r in t)if("default"!==r){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:()=>t[r]})}return e.default=t,Object.freeze(e)}const h=c(require("apexcharts/core")),u=h.__apex_Graphics,d=h.__apex_Utils;class f{static xRatio(t){const e=t.layout.gridWidth||1;return(t.globals.maxX-t.globals.minX)/e}static dataXToPx(t,e){return(e-t.globals.minX)/f.xRatio(t)}static pxToDataX(t,e){return t.globals.minX+e*f.xRatio(t)}static screenXToPlotPx(t,e){const r=t.dom.baseEl,n=r&&r.querySelector(".apexcharts-svg");if(!n)return e-t.layout.translateX;const s=n.getBoundingClientRect(),o=t.globals.svgWidth?s.width/t.globals.svgWidth:1;return(e-s.left)/(o||1)-t.layout.translateX}}const g=h.__apex_Environment_Environment;function p(t,e){const r=(e.collapsedSeries||[]).concat(e.ancillaryCollapsedSeries||[]);return t.map((t,e)=>{const a=t||{},{hidden:c}=a,h=((t,e)=>{var r={};for(var a in t)s.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(null!=t&&n)for(var a of n(t))e.indexOf(a)<0&&o.call(t,a)&&(r[a]=t[a]);return r})(a,["hidden"]);let u=h.data;if(Array.isArray(u)&&!u.length){const t=r.find(t=>t.index===e);t&&Array.isArray(t.data)&&(u=t.data)}return l(i({},h),{data:Array.isArray(u)?u.slice():u})})}const m=["wiggle","silhouette","zero","expand"],y=["inside-out","inverse","none"];function b(t,e,r){const n=r&&void 0!==r[e]?r[e]:e+1;return null==t?{x:n,y:null,rest:{}}:Array.isArray(t)?{x:void 0!==t[0]?t[0]:n,y:t[1],rest:{}}:"object"==typeof t?{x:void 0!==t.x?t.x:n,y:t.y,rest:t}:{x:n,y:t,rest:{}}}function x(t,e){var r,n;const s=e.config,o=e.globals;if(!Array.isArray(t))return t;o.streamgraphRawSeries||(o.streamgraphRawSeries=p(t,o));const a=o.streamgraphRawSeries;if(a.some(t=>function(t){for(let e=0;e<t.length;e++){const r=t[e],n=Array.isArray(r)?r[1]:r&&"object"==typeof r?r.y:r;if(Array.isArray(n)&&2===n.length)return!0}return!1}(Array.isArray(null==t?void 0:t.data)?t.data:[])))return e.streamgraphData=null,t;const c=(null==(r=s.plotOptions)?void 0:r.streamgraph)||{},h=-1!==m.indexOf(c.offset)?c.offset:"wiggle",u=-1!==y.indexOf(c.order)?c.order:"inside-out",f=null==(n=s.xaxis)?void 0:n.categories,g=function(t){return(t.collapsedSeriesIndices||[]).concat(t.ancillaryCollapsedSeriesIndices||[])}(o),{xs:x,rows:v,grids:w}=function(t,e){var r;const n=[],s=[],o=new Map,a=[];for(let l=0;l<t.length;l++){const c=Array.isArray(null==(r=t[l])?void 0:r.data)?t[l].data:[],h=new Map;for(let t=0;t<c.length;t++){const{x:r,y:a,rest:l}=b(c[t],t,e),u=r instanceof Date?r.getTime():r;o.has(u)||(o.set(u,n.length),n.push(r),s.push(i({},l))),h.set(o.get(u),d.parseNumber(a))}a.push(h)}return{xs:n,rows:s,grids:a}}(a,f),_=function(t){const e=[];for(let r=0;r<t.length;r++){const n=t[r]instanceof Date?t[r].getTime():t[r];if("number"!=typeof n||!isFinite(n))return null;e.push(r)}const r=e.map(e=>({j:e,v:t[e]instanceof Date?t[e].getTime():t[e]}));r.sort((t,e)=>t.v-e.v);const n=r.map(t=>t.j);for(let t=0;t<n.length;t++)if(n[t]!==t)return n;return null}(x),A=_?_.map(t=>x[t]):x,S=_?_.map(t=>v[t]):v,O=A.length;let F=!1;const P=[];for(let t=0;t<a.length;t++){const e=new Array(O);for(let r=0;r<O;r++){const n=w[t].get(_?_[r]:r);let s=null==n?0:Number(n);isFinite(s)||(s=0),s<0&&(F=!0,s=0),e[r]=s}P.push(e)}F&&!o.streamgraphWarnedNegative&&(o.streamgraphWarnedNegative=!0,console.warn('ApexCharts: a streamgraph stacks parts of a whole, so negative values have no band to draw and were treated as 0. Use a stacked area (chart.type: "area", chart.stacked: true) for data that goes below zero.'));const T=[];for(let t=0;t<a.length;t++)-1===g.indexOf(t)&&T.push(t);let M=P;if("expand"===h){M=P.map(t=>t.slice());for(let t=0;t<O;t++){let e=0;for(let r=0;r<T.length;r++)e+=M[T[r]][t];if(e)for(let r=0;r<T.length;r++)M[T[r]][t]/=e}}const W=function(t,e,r){if("none"===t)return e.slice();if("inverse"===t)return e.slice().reverse();const n={},s={};for(let t=0;t<e.length;t++){const o=e[t],a=r[o];let i=0,l=-1/0,c=0;for(let t=0;t<a.length;t++)i+=a[t],a[t]>l&&(l=a[t],c=t);n[o]=i,s[o]=c}const o=e.slice().sort((t,e)=>s[t]-s[e]||t-e);let a=0,i=0;const l=[],c=[];for(let t=0;t<o.length;t++){const e=o[t];a<i?(a+=n[e],l.push(e)):(i+=n[e],c.push(e))}return c.reverse().concat(l)}(u,T,M),z=function(t,e,r,n){const s=new Array(n).fill(0);if(0===n||0===e.length)return s;if("zero"===t||"expand"===t)return s;if("silhouette"===t){for(let t=0;t<n;t++){let n=0;for(let s=0;s<e.length;s++)n+=r[e[s]][t];s[t]=-n/2}return s}let o=0;for(let t=1;t<n;t++){let n=0,a=0;for(let s=0;s<e.length;s++){const o=r[e[s]],i=o[t];let l=(i-o[t-1])/2;for(let n=0;n<s;n++){const s=r[e[n]];l+=s[t]-s[t-1]}n+=i,a+=l*i}n&&(o-=a/n),s[t]=o}return s}(h,W,M,O),E=a.map(()=>null),j=a.map(()=>null);for(let t=0;t<W.length;t++)E[W[t]]=new Array(O),j[W[t]]=new Array(O);for(let t=0;t<O;t++){let e=z[t];for(let r=0;r<W.length;r++){const n=W[r],s=E[n],o=j[n];s[t]=e,e+=M[n][t],o[t]=e}}return e.streamgraphData={names:a.map((t,e)=>{var r;return null!=(r=null==t?void 0:t.name)?r:`Series ${e+1}`}),xs:A,values:P,lows:E,highs:j,order:W,offset:h,hidden:a.map((t,e)=>e).filter(t=>-1!==g.indexOf(t))},a.map((t,e)=>{const r=E[e],n=j[e];if(!r||!n)return l(i({},t),{data:[]});const s=new Array(O);for(let t=0;t<O;t++)s[t]=l(i({},S[t]),{x:A[t],y:[r[t],n[t]]});return l(i({},t),{data:s})})}const v="__apexcharts_series_transforms__";var w,_;globalThis[v]||(globalThis[v]={}),w="streamgraph","function"==typeof(_=x)?globalThis[v][w]=_:console.warn(`ApexCharts: registerSeriesTransform("${w}") expects a function (series, w) => series.`),h.default.registerFeatures({streamgraph:class{constructor(t,e){this.w=t,this.ctx=e,this._hovered=-1}isActive(){return"streamgraph"===this.w.config.chart.requestedType}_yPx(t){var e;const r=this.w,n=r.globals,s=r.layout.gridHeight,o=n.maxY-n.minY;if(!o||!isFinite(o))return s/2;const a=(t-n.minY)/o;return(null==(e=r.config.yaxis[0])?void 0:e.reversed)?a*s:s-a*s}draw(){this.isActive()&&(this.clearDim(),this.bindHover(),this.drawLabels())}drawLabels(){var t,e,r,n,s,o,a;const i=this.w;if(!this.isActive())return;const l=null==(e=null==(t=i.config.plotOptions)?void 0:t.streamgraph)?void 0:e.labels;if(!l||!1===l.show)return;const c=i.dom.elGraphical,h=i.streamgraphData;if(!c||!h)return;this.removeLabels();const d=new u(i,this.ctx),f=d.group({class:"apexcharts-streamgraph-labels"}),g=(null==(r=l.style)?void 0:r.fontSize)||"auto",p=(null==(n=l.style)?void 0:n.fontFamily)||i.config.chart.fontFamily,m=(null==(s=l.style)?void 0:s.fontWeight)||600,y=null==l.minWidth?24:l.minWidth,b=[];for(let t=0;t<h.order.length;t++){const e=h.order[t],r=this._placeLabel(e,{fontSize:g,fontFamily:p,fontWeight:m,minWidth:y,graphics:d});r&&b.push(r)}let x=0;for(const t of this._deconflict(b)){const e=t.k,r=d.drawText({x:t.x,y:t.y,text:t.text,textAnchor:"middle",dominantBaseline:"middle",fontSize:t.fontSize,fontFamily:p,fontWeight:m,foreColor:(null==(a=null==(o=l.style)?void 0:o.colors)?void 0:a[e])||t.color,cssClass:"apexcharts-streamgraph-label"});r.node.setAttribute("data:realIndex",String(e)),f.add(r),x++}if(!x)return;const v=c.node.querySelector(".apexcharts-xaxis");v?c.node.insertBefore(f.node,v):c.add(f),this.holdUntilBandsLand(f)}_placeLabel(t,{fontSize:e,fontFamily:r,fontWeight:n,minWidth:s,graphics:o}){const a=this.w,i=a.streamgraphData,l=i.lows[t],c=i.highs[t];if(!l||!c)return null;const h=a.globals.seriesXvalues[t],u=l.length;if(!Array.isArray(h)||h.length<u||0===u)return null;const d=new Array(u);let f=0;for(let t=0;t<u;t++){const e=Math.abs(this._yPx(c[t])-this._yPx(l[t]));d[t]=e,e>f&&(f=e)}if(f<=0)return null;const g=this._resolveFontSize(e,f),p=String(i.names[t]);let m=g,y=o.getTextRects(p,`${m}px`,r,"",!0,n);if(f<y.height+6)return null;const b=this._widestRun(d,h,y.height+6,u);if(!b)return null;if(y.width>b.width&&"auto"===e){const t=Math.floor(m*(b.width/y.width));if(t<this._autoBounds().min)return null;if(m=t,y=o.getTextRects(p,`${m}px`,r,"",!0,n),f<y.height+6)return null}const x=y.height+6,v=[];for(const e of this._runs(d,x,u)){const a=Number(h[e.l]),i=Number(h[e.r]);if(!isFinite(a)||!isFinite(i))continue;let d=i-a;if(d<=0&&u>1){const t=Math.abs(Number(h[Math.min(e.r+1,u-1)])-Number(h[Math.max(e.l-1,0)]));d=isFinite(t)?t:0}if(d<s||d<.35*y.width)continue;const f=y.width<=d?p:o.getTextBasedOnMaxWidth({text:p,maxWidth:d,fontSize:`${m}px`,fontFamily:r,fontWeight:n});if(!f||"..."===f)continue;const g=f===p?y.width:y.width*(f.length/p.length),b=[a+d/2];d>2.2*g&&b.push(a+g/2+2,i-g/2-2);for(const r of b){let n=e.l,s=1/0;for(let t=e.l;t<=e.r;t++){const e=Math.abs(Number(h[t])-r);e<s&&(s=e,n=t)}v.push({x:r,y:(this._yPx(l[n])+this._yPx(c[n]))/2,text:f,color:this._contrastOn(t),fontSize:`${m}px`,width:g,height:y.height})}if(v.length>=6)break}return v.length?{k:t,weight:f,candidates:v}:null}_runs(t,e,r){const n=[];let s=0;for(;s<r;){if(t[s]<e){s++;continue}let o=s,a=t[s];for(;o+1<r&&t[o+1]>=e;)o++,t[o]>a&&(a=t[o]);n.push({l:s,r:o,maxT:a}),s=o+1}return n.sort((t,e)=>e.maxT-t.maxT)}_widestRun(t,e,r,n){let s=-1;for(const o of this._runs(t,r,n)){const t=Number(e[o.r])-Number(e[o.l]);isFinite(t)&&t>s&&(s=t)}return s>=0?{width:s}:null}_deconflict(t){const e=t.slice().sort((t,e)=>e.weight-t.weight),r=[],n=t=>!r.some(e=>t.left<e.box.right&&t.right>e.box.left&&t.top<e.box.bottom&&t.bottom>e.box.top);for(const t of e)for(const e of t.candidates){const s={left:e.x-e.width/2,right:e.x+e.width/2,top:e.y-e.height/2,bottom:e.y+e.height/2};if(n(s)){r.push(l(i({k:t.k},e),{box:s}));break}}return r}_autoBounds(){var t,e;const r=(null==(e=null==(t=this.w.config.plotOptions)?void 0:t.streamgraph)?void 0:e.labels)||{};return{min:null==r.minFontSize?9:r.minFontSize,max:null==r.maxFontSize?30:r.maxFontSize}}_resolveFontSize(t,e){if("auto"!==t){const e=parseFloat(t);return isFinite(e)&&e>0?e:12}const{min:r,max:n}=this._autoBounds();return Math.max(r,Math.min(n,Math.round(.36*e)))}_contrastOn(t){var e;const r=this.w,n=null==(e=r.globals.colors)?void 0:e[t],s="string"==typeof n?d.parseHex(n):null;return s?d.relativeLuminance(s)>.45?"#000000":"#ffffff":r.config.chart.foreColor}removeLabels(){const t=this.w.dom.elGraphical,e=t&&t.node.querySelector(".apexcharts-streamgraph-labels");e&&e.parentNode&&e.parentNode.removeChild(e)}bindHover(){const t=this.w;if(!g.isBrowser())return;if(!1===this._hoverCfg().show)return;const e=t.dom.baseEl&&t.dom.baseEl.querySelector(".apexcharts-svg");e&&!e.__apexStreamHover&&(e.__apexStreamHover=!0,e.addEventListener("mousemove",t=>{this.isActive()&&this.w.streamgraphData&&this._dim(this._bandAt(t))}),e.addEventListener("mouseleave",()=>{this._dim(-1)}))}_hoverCfg(){var t,e;return(null==(e=null==(t=this.w.config.plotOptions)?void 0:t.streamgraph)?void 0:e.hover)||{}}_bandAt(t){const e=this.w,r=e.streamgraphData;if(!r||!r.order.length)return-1;const n=e.dom.baseEl&&e.dom.baseEl.querySelector(".apexcharts-svg");if(!n)return-1;const s=n.getBoundingClientRect(),o=e.globals.svgWidth?s.width/e.globals.svgWidth:1,a=f.screenXToPlotPx(e,t.clientX),i=(t.clientY-s.top)/(o||1)-e.layout.translateY;if(a<0||a>e.layout.gridWidth)return-1;if(i<0||i>e.layout.gridHeight)return-1;const l=e.globals.seriesXvalues[r.order[0]];if(!Array.isArray(l)||!l.length)return-1;const c=e.interact?e.interact.capturedDataPointIndex:-1;let h=-1;if(c>=0&&c<l.length)h=c;else{let t=1/0;for(let e=0;e<l.length;e++){const r=Math.abs(Number(l[e])-a);r<t&&(t=r,h=e)}}if(h<0)return-1;let u=-1,d=1/0;for(let t=0;t<r.order.length;t++){const e=r.order[t],n=this._yPx(r.highs[e][h]),s=this._yPx(r.lows[e][h]),o=Math.min(n,s),a=Math.max(n,s);if(i>=o&&i<=a)return e;const l=i<o?o-i:i-a;l<d&&(d=l,u=e)}return u}_dim(t){const e=this.w;if(t===this._hovered)return;this._hovered=t;const r=this._hoverCfg(),n=null==r.opacity?.35:r.opacity,s=e.dom.baseEl.querySelectorAll(".apexcharts-series"),o=e.dom.baseEl.querySelectorAll(".apexcharts-streamgraph-label"),a=(e,r)=>t<0||r===t;for(let t=0;t<s.length;t++){const e=s[t];e.style.transition="opacity .15s ease",e.style.opacity=a(0,Number(e.getAttribute("data:realIndex")))?"":String(n)}for(let t=0;t<o.length;t++){const r=o[t];r.style.transition="opacity .15s ease, fill .15s ease",a(0,Number(r.getAttribute("data:realIndex")))?this._restoreLabel(r):(r.getAttribute("data:fill")||r.setAttribute("data:fill",r.getAttribute("fill")||""),r.setAttribute("fill",e.config.chart.foreColor),r.style.opacity="0.65")}}_restoreLabel(t){const e=t.getAttribute("data:fill");e&&t.setAttribute("fill",e),t.style.opacity=""}clearDim(){this._hovered=-1;const t=this.w;if(!t.dom.baseEl)return;const e=t.dom.baseEl.querySelectorAll(".apexcharts-series");for(let t=0;t<e.length;t++){e[t].style.opacity=""}const r=t.dom.baseEl.querySelectorAll(".apexcharts-streamgraph-label");for(let t=0;t<r.length;t++)this._restoreLabel(r[t])}holdUntilBandsLand(t){const e=this.w;g.isBrowser()&&e.globals.shouldAnimate&&!e.globals.animationEnded&&(t.node.classList.add("apexcharts-element-hidden"),e.globals.delayedElements.push({el:t.node,holdUntilComplete:!0}))}}}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>h.default}),exports.streamgraphTransform=x;
@@ -30,7 +30,7 @@ var __objRest = (source, exclude) => {
30
30
  return target;
31
31
  };
32
32
  /*!
33
- * ApexCharts v8.2.0
33
+ * ApexCharts v8.3.0
34
34
  * (c) 2018-2026 ApexCharts
35
35
  */
36
36
  import * as _core from "apexcharts/core";
@@ -277,7 +277,8 @@ class StreamLabels {
277
277
  text: name,
278
278
  maxWidth: span,
279
279
  fontSize: `${px}px`,
280
- fontFamily
280
+ fontFamily,
281
+ fontWeight
281
282
  });
282
283
  if (!text || text === "...") continue;
283
284
  const drawnWidth = text === name ? rect.width : rect.width * (text.length / name.length);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * ApexCharts v8.2.0
2
+ * ApexCharts v8.3.0
3
3
  * (c) 2018-2026 ApexCharts
4
4
  */
5
- !function(e){var t="undefined"!=typeof globalThis?globalThis:self,r=t.ApexCharts;if(r&&r.__internals)return e.call(t);if(r)throw new Error("ApexCharts: dist/features/streamgraph.js cannot register: the ApexCharts on this page has no add-on surface (a script before 7.0, or a bundled apexcharts/core class). Load apexcharts.min.js, apexcharts.core.min.js or apexcharts.full.min.js.");if("function"==typeof define&&define.amd)return e.call(t);if("object"==typeof exports&&"undefined"!=typeof module||"undefined"==typeof window||"undefined"==typeof document)throw new Error("ApexCharts: dist/features/streamgraph.js is a script-tag add-on and needs the ApexCharts script on the page. A bundler imports the matching apexcharts/ sub-path instead.");var s={file:"dist/features/streamgraph.js",run:e,done:!1},a=t.__apexcharts_pending_addons__||(t.__apexcharts_pending_addons__=[]);a.push(s),"complete"!==document.readyState&&window.addEventListener("load",function(){if(!s.done){var r=t.ApexCharts;if(r)if(r.__internals){s.done=!0;var n=a.indexOf(s);-1!==n&&a.splice(n,1);try{e.call(t),r.__drainsAddons||t.console.warn("ApexCharts: dist/features/streamgraph.js loaded before the ApexCharts script, which is older than 8.0 and does not pick up add-ons loaded first, so it registered only when the page finished loading. Put its tag after the ApexCharts script.")}catch(e){t.console.error("ApexCharts: dist/features/streamgraph.js could not register with the ApexCharts script on this page: "+(e&&e.message))}}else t.console.error("ApexCharts: dist/features/streamgraph.js cannot register: the ApexCharts on this page has no add-on surface (a script before 7.0, or a bundled apexcharts/core class). Load apexcharts.min.js, apexcharts.core.min.js or apexcharts.full.min.js.");else t.console.warn("ApexCharts: dist/features/streamgraph.js is waiting for the ApexCharts script, which had not loaded when the page finished loading. It registers when an ApexCharts 8.0 or later script loads; if the page has none, add apexcharts.min.js (or apexcharts.core.min.js, or apexcharts.full.min.js).")}})}(function(){var e,t;e=this,t=function(e){"use strict";var t=Object.defineProperty,r=Object.defineProperties,s=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(e,r,s)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[r]=s,l=(e,t)=>{for(var r in t||(t={}))n.call(t,r)&&i(e,r,t[r]);if(a)for(var r of a(t))o.call(t,r)&&i(e,r,t[r]);return e},h=(e,t)=>r(e,s(t));const c=globalThis.ApexCharts,d=globalThis.ApexCharts.__internals.__apex_Graphics,f=globalThis.ApexCharts.__internals.__apex_Utils;class u{static xRatio(e){const t=e.layout.gridWidth||1;return(e.globals.maxX-e.globals.minX)/t}static dataXToPx(e,t){return(t-e.globals.minX)/u.xRatio(e)}static pxToDataX(e,t){return e.globals.minX+t*u.xRatio(e)}static screenXToPlotPx(e,t){const r=e.dom.baseEl,s=r&&r.querySelector(".apexcharts-svg");if(!s)return t-e.layout.translateX;const a=s.getBoundingClientRect(),n=e.globals.svgWidth?a.width/e.globals.svgWidth:1;return(t-a.left)/(n||1)-e.layout.translateX}}const p=globalThis.ApexCharts.__internals.__apex_Environment_Environment;function g(e,t){const r=(t.collapsedSeries||[]).concat(t.ancillaryCollapsedSeries||[]);return e.map((e,t)=>{const s=e||{},{hidden:i}=s,c=((e,t)=>{var r={};for(var s in e)n.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(null!=e&&a)for(var s of a(e))t.indexOf(s)<0&&o.call(e,s)&&(r[s]=e[s]);return r})(s,["hidden"]);let d=c.data;if(Array.isArray(d)&&!d.length){const e=r.find(e=>e.index===t);e&&Array.isArray(e.data)&&(d=e.data)}return h(l({},c),{data:Array.isArray(d)?d.slice():d})})}const m=["wiggle","silhouette","zero","expand"],x=["inside-out","inverse","none"];function y(e,t,r){const s=r&&void 0!==r[t]?r[t]:t+1;return null==e?{x:s,y:null,rest:{}}:Array.isArray(e)?{x:void 0!==e[0]?e[0]:s,y:e[1],rest:{}}:"object"==typeof e?{x:void 0!==e.x?e.x:s,y:e.y,rest:e}:{x:s,y:e,rest:{}}}function b(e,t){var r,s;const a=t.config,n=t.globals;if(!Array.isArray(e))return e;n.streamgraphRawSeries||(n.streamgraphRawSeries=g(e,n));const o=n.streamgraphRawSeries;if(o.some(e=>function(e){for(let t=0;t<e.length;t++){const r=e[t],s=Array.isArray(r)?r[1]:r&&"object"==typeof r?r.y:r;if(Array.isArray(s)&&2===s.length)return!0}return!1}(Array.isArray(null==e?void 0:e.data)?e.data:[])))return t.streamgraphData=null,e;const i=(null==(r=a.plotOptions)?void 0:r.streamgraph)||{},c=-1!==m.indexOf(i.offset)?i.offset:"wiggle",d=-1!==x.indexOf(i.order)?i.order:"inside-out",u=null==(s=a.xaxis)?void 0:s.categories,p=function(e){return(e.collapsedSeriesIndices||[]).concat(e.ancillaryCollapsedSeriesIndices||[])}(n),{xs:b,rows:v,grids:w}=function(e,t){var r;const s=[],a=[],n=new Map,o=[];for(let i=0;i<e.length;i++){const h=Array.isArray(null==(r=e[i])?void 0:r.data)?e[i].data:[],c=new Map;for(let e=0;e<h.length;e++){const{x:r,y:o,rest:i}=y(h[e],e,t),d=r instanceof Date?r.getTime():r;n.has(d)||(n.set(d,s.length),s.push(r),a.push(l({},i))),c.set(n.get(d),f.parseNumber(o))}o.push(c)}return{xs:s,rows:a,grids:o}}(o,u),_=function(e){const t=[];for(let r=0;r<e.length;r++){const s=e[r]instanceof Date?e[r].getTime():e[r];if("number"!=typeof s||!isFinite(s))return null;t.push(r)}const r=t.map(t=>({j:t,v:e[t]instanceof Date?e[t].getTime():e[t]}));r.sort((e,t)=>e.v-t.v);const s=r.map(e=>e.j);for(let e=0;e<s.length;e++)if(s[e]!==e)return s;return null}(b),A=_?_.map(e=>b[e]):b,S=_?_.map(e=>v[e]):v,C=A.length;let j=!1;const T=[];for(let e=0;e<o.length;e++){const t=new Array(C);for(let r=0;r<C;r++){const s=w[e].get(_?_[r]:r);let a=null==s?0:Number(s);isFinite(a)||(a=0),a<0&&(j=!0,a=0),t[r]=a}T.push(t)}j&&!n.streamgraphWarnedNegative&&(n.streamgraphWarnedNegative=!0,console.warn('ApexCharts: a streamgraph stacks parts of a whole, so negative values have no band to draw and were treated as 0. Use a stacked area (chart.type: "area", chart.stacked: true) for data that goes below zero.'));const O=[];for(let e=0;e<o.length;e++)-1===p.indexOf(e)&&O.push(e);let F=T;if("expand"===c){F=T.map(e=>e.slice());for(let e=0;e<C;e++){let t=0;for(let r=0;r<O.length;r++)t+=F[O[r]][e];if(t)for(let r=0;r<O.length;r++)F[O[r]][e]/=t}}const E=function(e,t,r){if("none"===e)return t.slice();if("inverse"===e)return t.slice().reverse();const s={},a={};for(let e=0;e<t.length;e++){const n=t[e],o=r[n];let i=0,l=-1/0,h=0;for(let e=0;e<o.length;e++)i+=o[e],o[e]>l&&(l=o[e],h=e);s[n]=i,a[n]=h}const n=t.slice().sort((e,t)=>a[e]-a[t]||e-t);let o=0,i=0;const l=[],h=[];for(let e=0;e<n.length;e++){const t=n[e];o<i?(o+=s[t],l.push(t)):(i+=s[t],h.push(t))}return h.reverse().concat(l)}(d,O,F),P=function(e,t,r,s){const a=new Array(s).fill(0);if(0===s||0===t.length)return a;if("zero"===e||"expand"===e)return a;if("silhouette"===e){for(let e=0;e<s;e++){let s=0;for(let a=0;a<t.length;a++)s+=r[t[a]][e];a[e]=-s/2}return a}let n=0;for(let e=1;e<s;e++){let s=0,o=0;for(let a=0;a<t.length;a++){const n=r[t[a]],i=n[e];let l=(i-n[e-1])/2;for(let s=0;s<a;s++){const a=r[t[s]];l+=a[e]-a[e-1]}s+=i,o+=l*i}s&&(n-=o/s),a[e]=n}return a}(c,E,F,C),L=o.map(()=>null),W=o.map(()=>null);for(let e=0;e<E.length;e++)L[E[e]]=new Array(C),W[E[e]]=new Array(C);for(let e=0;e<C;e++){let t=P[e];for(let r=0;r<E.length;r++){const s=E[r],a=L[s],n=W[s];a[e]=t,t+=F[s][e],n[e]=t}}return t.streamgraphData={names:o.map((e,t)=>{var r;return null!=(r=null==e?void 0:e.name)?r:`Series ${t+1}`}),xs:A,values:T,lows:L,highs:W,order:E,offset:c,hidden:o.map((e,t)=>t).filter(e=>-1!==p.indexOf(e))},o.map((e,t)=>{const r=L[t],s=W[t];if(!r||!s)return h(l({},e),{data:[]});const a=new Array(C);for(let e=0;e<C;e++)a[e]=h(l({},S[e]),{x:A[e],y:[r[e],s[e]]});return h(l({},e),{data:a})})}const v="__apexcharts_series_transforms__";var w,_;globalThis[v]||(globalThis[v]={}),w="streamgraph","function"==typeof(_=b)?globalThis[v][w]=_:console.warn(`ApexCharts: registerSeriesTransform("${w}") expects a function (series, w) => series.`),c.registerFeatures({streamgraph:class{constructor(e,t){this.w=e,this.ctx=t,this._hovered=-1}isActive(){return"streamgraph"===this.w.config.chart.requestedType}_yPx(e){var t;const r=this.w,s=r.globals,a=r.layout.gridHeight,n=s.maxY-s.minY;if(!n||!isFinite(n))return a/2;const o=(e-s.minY)/n;return(null==(t=r.config.yaxis[0])?void 0:t.reversed)?o*a:a-o*a}draw(){this.isActive()&&(this.clearDim(),this.bindHover(),this.drawLabels())}drawLabels(){var e,t,r,s,a,n,o;const i=this.w;if(!this.isActive())return;const l=null==(t=null==(e=i.config.plotOptions)?void 0:e.streamgraph)?void 0:t.labels;if(!l||!1===l.show)return;const h=i.dom.elGraphical,c=i.streamgraphData;if(!h||!c)return;this.removeLabels();const f=new d(i,this.ctx),u=f.group({class:"apexcharts-streamgraph-labels"}),p=(null==(r=l.style)?void 0:r.fontSize)||"auto",g=(null==(s=l.style)?void 0:s.fontFamily)||i.config.chart.fontFamily,m=(null==(a=l.style)?void 0:a.fontWeight)||600,x=null==l.minWidth?24:l.minWidth,y=[];for(let e=0;e<c.order.length;e++){const t=c.order[e],r=this._placeLabel(t,{fontSize:p,fontFamily:g,fontWeight:m,minWidth:x,graphics:f});r&&y.push(r)}let b=0;for(const e of this._deconflict(y)){const t=e.k,r=f.drawText({x:e.x,y:e.y,text:e.text,textAnchor:"middle",dominantBaseline:"middle",fontSize:e.fontSize,fontFamily:g,fontWeight:m,foreColor:(null==(o=null==(n=l.style)?void 0:n.colors)?void 0:o[t])||e.color,cssClass:"apexcharts-streamgraph-label"});r.node.setAttribute("data:realIndex",String(t)),u.add(r),b++}if(!b)return;const v=h.node.querySelector(".apexcharts-xaxis");v?h.node.insertBefore(u.node,v):h.add(u),this.holdUntilBandsLand(u)}_placeLabel(e,{fontSize:t,fontFamily:r,fontWeight:s,minWidth:a,graphics:n}){const o=this.w,i=o.streamgraphData,l=i.lows[e],h=i.highs[e];if(!l||!h)return null;const c=o.globals.seriesXvalues[e],d=l.length;if(!Array.isArray(c)||c.length<d||0===d)return null;const f=new Array(d);let u=0;for(let e=0;e<d;e++){const t=Math.abs(this._yPx(h[e])-this._yPx(l[e]));f[e]=t,t>u&&(u=t)}if(u<=0)return null;const p=this._resolveFontSize(t,u),g=String(i.names[e]);let m=p,x=n.getTextRects(g,`${m}px`,r,"",!0,s);if(u<x.height+6)return null;const y=this._widestRun(f,c,x.height+6,d);if(!y)return null;if(x.width>y.width&&"auto"===t){const e=Math.floor(m*(y.width/x.width));if(e<this._autoBounds().min)return null;if(m=e,x=n.getTextRects(g,`${m}px`,r,"",!0,s),u<x.height+6)return null}const b=x.height+6,v=[];for(const t of this._runs(f,b,d)){const s=Number(c[t.l]),o=Number(c[t.r]);if(!isFinite(s)||!isFinite(o))continue;let i=o-s;if(i<=0&&d>1){const e=Math.abs(Number(c[Math.min(t.r+1,d-1)])-Number(c[Math.max(t.l-1,0)]));i=isFinite(e)?e:0}if(i<a||i<.35*x.width)continue;const f=x.width<=i?g:n.getTextBasedOnMaxWidth({text:g,maxWidth:i,fontSize:`${m}px`,fontFamily:r});if(!f||"..."===f)continue;const u=f===g?x.width:x.width*(f.length/g.length),p=[s+i/2];i>2.2*u&&p.push(s+u/2+2,o-u/2-2);for(const r of p){let s=t.l,a=1/0;for(let e=t.l;e<=t.r;e++){const t=Math.abs(Number(c[e])-r);t<a&&(a=t,s=e)}v.push({x:r,y:(this._yPx(l[s])+this._yPx(h[s]))/2,text:f,color:this._contrastOn(e),fontSize:`${m}px`,width:u,height:x.height})}if(v.length>=6)break}return v.length?{k:e,weight:u,candidates:v}:null}_runs(e,t,r){const s=[];let a=0;for(;a<r;){if(e[a]<t){a++;continue}let n=a,o=e[a];for(;n+1<r&&e[n+1]>=t;)n++,e[n]>o&&(o=e[n]);s.push({l:a,r:n,maxT:o}),a=n+1}return s.sort((e,t)=>t.maxT-e.maxT)}_widestRun(e,t,r,s){let a=-1;for(const n of this._runs(e,r,s)){const e=Number(t[n.r])-Number(t[n.l]);isFinite(e)&&e>a&&(a=e)}return a>=0?{width:a}:null}_deconflict(e){const t=e.slice().sort((e,t)=>t.weight-e.weight),r=[],s=e=>!r.some(t=>e.left<t.box.right&&e.right>t.box.left&&e.top<t.box.bottom&&e.bottom>t.box.top);for(const e of t)for(const t of e.candidates){const a={left:t.x-t.width/2,right:t.x+t.width/2,top:t.y-t.height/2,bottom:t.y+t.height/2};if(s(a)){r.push(h(l({k:e.k},t),{box:a}));break}}return r}_autoBounds(){var e,t;const r=(null==(t=null==(e=this.w.config.plotOptions)?void 0:e.streamgraph)?void 0:t.labels)||{};return{min:null==r.minFontSize?9:r.minFontSize,max:null==r.maxFontSize?30:r.maxFontSize}}_resolveFontSize(e,t){if("auto"!==e){const t=parseFloat(e);return isFinite(t)&&t>0?t:12}const{min:r,max:s}=this._autoBounds();return Math.max(r,Math.min(s,Math.round(.36*t)))}_contrastOn(e){var t;const r=this.w,s=null==(t=r.globals.colors)?void 0:t[e],a="string"==typeof s?f.parseHex(s):null;return a?f.relativeLuminance(a)>.45?"#000000":"#ffffff":r.config.chart.foreColor}removeLabels(){const e=this.w.dom.elGraphical,t=e&&e.node.querySelector(".apexcharts-streamgraph-labels");t&&t.parentNode&&t.parentNode.removeChild(t)}bindHover(){const e=this.w;if(!p.isBrowser())return;if(!1===this._hoverCfg().show)return;const t=e.dom.baseEl&&e.dom.baseEl.querySelector(".apexcharts-svg");t&&!t.__apexStreamHover&&(t.__apexStreamHover=!0,t.addEventListener("mousemove",e=>{this.isActive()&&this.w.streamgraphData&&this._dim(this._bandAt(e))}),t.addEventListener("mouseleave",()=>{this._dim(-1)}))}_hoverCfg(){var e,t;return(null==(t=null==(e=this.w.config.plotOptions)?void 0:e.streamgraph)?void 0:t.hover)||{}}_bandAt(e){const t=this.w,r=t.streamgraphData;if(!r||!r.order.length)return-1;const s=t.dom.baseEl&&t.dom.baseEl.querySelector(".apexcharts-svg");if(!s)return-1;const a=s.getBoundingClientRect(),n=t.globals.svgWidth?a.width/t.globals.svgWidth:1,o=u.screenXToPlotPx(t,e.clientX),i=(e.clientY-a.top)/(n||1)-t.layout.translateY;if(o<0||o>t.layout.gridWidth)return-1;if(i<0||i>t.layout.gridHeight)return-1;const l=t.globals.seriesXvalues[r.order[0]];if(!Array.isArray(l)||!l.length)return-1;const h=t.interact?t.interact.capturedDataPointIndex:-1;let c=-1;if(h>=0&&h<l.length)c=h;else{let e=1/0;for(let t=0;t<l.length;t++){const r=Math.abs(Number(l[t])-o);r<e&&(e=r,c=t)}}if(c<0)return-1;let d=-1,f=1/0;for(let e=0;e<r.order.length;e++){const t=r.order[e],s=this._yPx(r.highs[t][c]),a=this._yPx(r.lows[t][c]),n=Math.min(s,a),o=Math.max(s,a);if(i>=n&&i<=o)return t;const l=i<n?n-i:i-o;l<f&&(f=l,d=t)}return d}_dim(e){const t=this.w;if(e===this._hovered)return;this._hovered=e;const r=this._hoverCfg(),s=null==r.opacity?.35:r.opacity,a=t.dom.baseEl.querySelectorAll(".apexcharts-series"),n=t.dom.baseEl.querySelectorAll(".apexcharts-streamgraph-label"),o=(t,r)=>e<0||r===e;for(let e=0;e<a.length;e++){const t=a[e];t.style.transition="opacity .15s ease",t.style.opacity=o(0,Number(t.getAttribute("data:realIndex")))?"":String(s)}for(let e=0;e<n.length;e++){const r=n[e];r.style.transition="opacity .15s ease, fill .15s ease",o(0,Number(r.getAttribute("data:realIndex")))?this._restoreLabel(r):(r.getAttribute("data:fill")||r.setAttribute("data:fill",r.getAttribute("fill")||""),r.setAttribute("fill",t.config.chart.foreColor),r.style.opacity="0.65")}}_restoreLabel(e){const t=e.getAttribute("data:fill");t&&e.setAttribute("fill",t),e.style.opacity=""}clearDim(){this._hovered=-1;const e=this.w;if(!e.dom.baseEl)return;const t=e.dom.baseEl.querySelectorAll(".apexcharts-series");for(let e=0;e<t.length;e++)t[e].style.opacity="";const r=e.dom.baseEl.querySelectorAll(".apexcharts-streamgraph-label");for(let e=0;e<r.length;e++)this._restoreLabel(r[e])}holdUntilBandsLand(e){const t=this.w;p.isBrowser()&&t.globals.shouldAnimate&&!t.globals.animationEnded&&(e.node.classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:e.node,holdUntilComplete:!0}))}}}),e.default=c,e.streamgraphTransform=b,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ApexStreamgraph={})});
5
+ !function(t){var e="undefined"!=typeof globalThis?globalThis:self,r=e.ApexCharts;if(r&&r.__internals)return t.call(e);if(r)throw new Error("ApexCharts: dist/features/streamgraph.js cannot register: the ApexCharts on this page has no add-on surface (a script before 7.0, or a bundled apexcharts/core class). Load apexcharts.min.js, apexcharts.core.min.js or apexcharts.full.min.js.");if("function"==typeof define&&define.amd)return t.call(e);if("object"==typeof exports&&"undefined"!=typeof module||"undefined"==typeof window||"undefined"==typeof document)throw new Error("ApexCharts: dist/features/streamgraph.js is a script-tag add-on and needs the ApexCharts script on the page. A bundler imports the matching apexcharts/ sub-path instead.");var s={file:"dist/features/streamgraph.js",run:t,done:!1},a=e.__apexcharts_pending_addons__||(e.__apexcharts_pending_addons__=[]);a.push(s),"complete"!==document.readyState&&window.addEventListener("load",function(){if(!s.done){var r=e.ApexCharts;if(r)if(r.__internals){s.done=!0;var n=a.indexOf(s);-1!==n&&a.splice(n,1);try{t.call(e),r.__drainsAddons||e.console.warn("ApexCharts: dist/features/streamgraph.js loaded before the ApexCharts script, which is older than 8.0 and does not pick up add-ons loaded first, so it registered only when the page finished loading. Put its tag after the ApexCharts script.")}catch(t){e.console.error("ApexCharts: dist/features/streamgraph.js could not register with the ApexCharts script on this page: "+(t&&t.message))}}else e.console.error("ApexCharts: dist/features/streamgraph.js cannot register: the ApexCharts on this page has no add-on surface (a script before 7.0, or a bundled apexcharts/core class). Load apexcharts.min.js, apexcharts.core.min.js or apexcharts.full.min.js.");else e.console.warn("ApexCharts: dist/features/streamgraph.js is waiting for the ApexCharts script, which had not loaded when the page finished loading. It registers when an ApexCharts 8.0 or later script loads; if the page has none, add apexcharts.min.js (or apexcharts.core.min.js, or apexcharts.full.min.js).")}})}(function(){var t,e;t=this,e=function(t){"use strict";var e=Object.defineProperty,r=Object.defineProperties,s=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,r,s)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[r]=s,l=(t,e)=>{for(var r in e||(e={}))n.call(e,r)&&i(t,r,e[r]);if(a)for(var r of a(e))o.call(e,r)&&i(t,r,e[r]);return t},h=(t,e)=>r(t,s(e));const c=globalThis.ApexCharts,d=globalThis.ApexCharts.__internals.__apex_Graphics,f=globalThis.ApexCharts.__internals.__apex_Utils;class u{static xRatio(t){const e=t.layout.gridWidth||1;return(t.globals.maxX-t.globals.minX)/e}static dataXToPx(t,e){return(e-t.globals.minX)/u.xRatio(t)}static pxToDataX(t,e){return t.globals.minX+e*u.xRatio(t)}static screenXToPlotPx(t,e){const r=t.dom.baseEl,s=r&&r.querySelector(".apexcharts-svg");if(!s)return e-t.layout.translateX;const a=s.getBoundingClientRect(),n=t.globals.svgWidth?a.width/t.globals.svgWidth:1;return(e-a.left)/(n||1)-t.layout.translateX}}const p=globalThis.ApexCharts.__internals.__apex_Environment_Environment;function g(t,e){const r=(e.collapsedSeries||[]).concat(e.ancillaryCollapsedSeries||[]);return t.map((t,e)=>{const s=t||{},{hidden:i}=s,c=((t,e)=>{var r={};for(var s in t)n.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(null!=t&&a)for(var s of a(t))e.indexOf(s)<0&&o.call(t,s)&&(r[s]=t[s]);return r})(s,["hidden"]);let d=c.data;if(Array.isArray(d)&&!d.length){const t=r.find(t=>t.index===e);t&&Array.isArray(t.data)&&(d=t.data)}return h(l({},c),{data:Array.isArray(d)?d.slice():d})})}const m=["wiggle","silhouette","zero","expand"],x=["inside-out","inverse","none"];function y(t,e,r){const s=r&&void 0!==r[e]?r[e]:e+1;return null==t?{x:s,y:null,rest:{}}:Array.isArray(t)?{x:void 0!==t[0]?t[0]:s,y:t[1],rest:{}}:"object"==typeof t?{x:void 0!==t.x?t.x:s,y:t.y,rest:t}:{x:s,y:t,rest:{}}}function b(t,e){var r,s;const a=e.config,n=e.globals;if(!Array.isArray(t))return t;n.streamgraphRawSeries||(n.streamgraphRawSeries=g(t,n));const o=n.streamgraphRawSeries;if(o.some(t=>function(t){for(let e=0;e<t.length;e++){const r=t[e],s=Array.isArray(r)?r[1]:r&&"object"==typeof r?r.y:r;if(Array.isArray(s)&&2===s.length)return!0}return!1}(Array.isArray(null==t?void 0:t.data)?t.data:[])))return e.streamgraphData=null,t;const i=(null==(r=a.plotOptions)?void 0:r.streamgraph)||{},c=-1!==m.indexOf(i.offset)?i.offset:"wiggle",d=-1!==x.indexOf(i.order)?i.order:"inside-out",u=null==(s=a.xaxis)?void 0:s.categories,p=function(t){return(t.collapsedSeriesIndices||[]).concat(t.ancillaryCollapsedSeriesIndices||[])}(n),{xs:b,rows:v,grids:w}=function(t,e){var r;const s=[],a=[],n=new Map,o=[];for(let i=0;i<t.length;i++){const h=Array.isArray(null==(r=t[i])?void 0:r.data)?t[i].data:[],c=new Map;for(let t=0;t<h.length;t++){const{x:r,y:o,rest:i}=y(h[t],t,e),d=r instanceof Date?r.getTime():r;n.has(d)||(n.set(d,s.length),s.push(r),a.push(l({},i))),c.set(n.get(d),f.parseNumber(o))}o.push(c)}return{xs:s,rows:a,grids:o}}(o,u),_=function(t){const e=[];for(let r=0;r<t.length;r++){const s=t[r]instanceof Date?t[r].getTime():t[r];if("number"!=typeof s||!isFinite(s))return null;e.push(r)}const r=e.map(e=>({j:e,v:t[e]instanceof Date?t[e].getTime():t[e]}));r.sort((t,e)=>t.v-e.v);const s=r.map(t=>t.j);for(let t=0;t<s.length;t++)if(s[t]!==t)return s;return null}(b),A=_?_.map(t=>b[t]):b,S=_?_.map(t=>v[t]):v,C=A.length;let j=!1;const T=[];for(let t=0;t<o.length;t++){const e=new Array(C);for(let r=0;r<C;r++){const s=w[t].get(_?_[r]:r);let a=null==s?0:Number(s);isFinite(a)||(a=0),a<0&&(j=!0,a=0),e[r]=a}T.push(e)}j&&!n.streamgraphWarnedNegative&&(n.streamgraphWarnedNegative=!0,console.warn('ApexCharts: a streamgraph stacks parts of a whole, so negative values have no band to draw and were treated as 0. Use a stacked area (chart.type: "area", chart.stacked: true) for data that goes below zero.'));const O=[];for(let t=0;t<o.length;t++)-1===p.indexOf(t)&&O.push(t);let F=T;if("expand"===c){F=T.map(t=>t.slice());for(let t=0;t<C;t++){let e=0;for(let r=0;r<O.length;r++)e+=F[O[r]][t];if(e)for(let r=0;r<O.length;r++)F[O[r]][t]/=e}}const E=function(t,e,r){if("none"===t)return e.slice();if("inverse"===t)return e.slice().reverse();const s={},a={};for(let t=0;t<e.length;t++){const n=e[t],o=r[n];let i=0,l=-1/0,h=0;for(let t=0;t<o.length;t++)i+=o[t],o[t]>l&&(l=o[t],h=t);s[n]=i,a[n]=h}const n=e.slice().sort((t,e)=>a[t]-a[e]||t-e);let o=0,i=0;const l=[],h=[];for(let t=0;t<n.length;t++){const e=n[t];o<i?(o+=s[e],l.push(e)):(i+=s[e],h.push(e))}return h.reverse().concat(l)}(d,O,F),P=function(t,e,r,s){const a=new Array(s).fill(0);if(0===s||0===e.length)return a;if("zero"===t||"expand"===t)return a;if("silhouette"===t){for(let t=0;t<s;t++){let s=0;for(let a=0;a<e.length;a++)s+=r[e[a]][t];a[t]=-s/2}return a}let n=0;for(let t=1;t<s;t++){let s=0,o=0;for(let a=0;a<e.length;a++){const n=r[e[a]],i=n[t];let l=(i-n[t-1])/2;for(let s=0;s<a;s++){const a=r[e[s]];l+=a[t]-a[t-1]}s+=i,o+=l*i}s&&(n-=o/s),a[t]=n}return a}(c,E,F,C),W=o.map(()=>null),L=o.map(()=>null);for(let t=0;t<E.length;t++)W[E[t]]=new Array(C),L[E[t]]=new Array(C);for(let t=0;t<C;t++){let e=P[t];for(let r=0;r<E.length;r++){const s=E[r],a=W[s],n=L[s];a[t]=e,e+=F[s][t],n[t]=e}}return e.streamgraphData={names:o.map((t,e)=>{var r;return null!=(r=null==t?void 0:t.name)?r:`Series ${e+1}`}),xs:A,values:T,lows:W,highs:L,order:E,offset:c,hidden:o.map((t,e)=>e).filter(t=>-1!==p.indexOf(t))},o.map((t,e)=>{const r=W[e],s=L[e];if(!r||!s)return h(l({},t),{data:[]});const a=new Array(C);for(let t=0;t<C;t++)a[t]=h(l({},S[t]),{x:A[t],y:[r[t],s[t]]});return h(l({},t),{data:a})})}const v="__apexcharts_series_transforms__";var w,_;globalThis[v]||(globalThis[v]={}),w="streamgraph","function"==typeof(_=b)?globalThis[v][w]=_:console.warn(`ApexCharts: registerSeriesTransform("${w}") expects a function (series, w) => series.`),c.registerFeatures({streamgraph:class{constructor(t,e){this.w=t,this.ctx=e,this._hovered=-1}isActive(){return"streamgraph"===this.w.config.chart.requestedType}_yPx(t){var e;const r=this.w,s=r.globals,a=r.layout.gridHeight,n=s.maxY-s.minY;if(!n||!isFinite(n))return a/2;const o=(t-s.minY)/n;return(null==(e=r.config.yaxis[0])?void 0:e.reversed)?o*a:a-o*a}draw(){this.isActive()&&(this.clearDim(),this.bindHover(),this.drawLabels())}drawLabels(){var t,e,r,s,a,n,o;const i=this.w;if(!this.isActive())return;const l=null==(e=null==(t=i.config.plotOptions)?void 0:t.streamgraph)?void 0:e.labels;if(!l||!1===l.show)return;const h=i.dom.elGraphical,c=i.streamgraphData;if(!h||!c)return;this.removeLabels();const f=new d(i,this.ctx),u=f.group({class:"apexcharts-streamgraph-labels"}),p=(null==(r=l.style)?void 0:r.fontSize)||"auto",g=(null==(s=l.style)?void 0:s.fontFamily)||i.config.chart.fontFamily,m=(null==(a=l.style)?void 0:a.fontWeight)||600,x=null==l.minWidth?24:l.minWidth,y=[];for(let t=0;t<c.order.length;t++){const e=c.order[t],r=this._placeLabel(e,{fontSize:p,fontFamily:g,fontWeight:m,minWidth:x,graphics:f});r&&y.push(r)}let b=0;for(const t of this._deconflict(y)){const e=t.k,r=f.drawText({x:t.x,y:t.y,text:t.text,textAnchor:"middle",dominantBaseline:"middle",fontSize:t.fontSize,fontFamily:g,fontWeight:m,foreColor:(null==(o=null==(n=l.style)?void 0:n.colors)?void 0:o[e])||t.color,cssClass:"apexcharts-streamgraph-label"});r.node.setAttribute("data:realIndex",String(e)),u.add(r),b++}if(!b)return;const v=h.node.querySelector(".apexcharts-xaxis");v?h.node.insertBefore(u.node,v):h.add(u),this.holdUntilBandsLand(u)}_placeLabel(t,{fontSize:e,fontFamily:r,fontWeight:s,minWidth:a,graphics:n}){const o=this.w,i=o.streamgraphData,l=i.lows[t],h=i.highs[t];if(!l||!h)return null;const c=o.globals.seriesXvalues[t],d=l.length;if(!Array.isArray(c)||c.length<d||0===d)return null;const f=new Array(d);let u=0;for(let t=0;t<d;t++){const e=Math.abs(this._yPx(h[t])-this._yPx(l[t]));f[t]=e,e>u&&(u=e)}if(u<=0)return null;const p=this._resolveFontSize(e,u),g=String(i.names[t]);let m=p,x=n.getTextRects(g,`${m}px`,r,"",!0,s);if(u<x.height+6)return null;const y=this._widestRun(f,c,x.height+6,d);if(!y)return null;if(x.width>y.width&&"auto"===e){const t=Math.floor(m*(y.width/x.width));if(t<this._autoBounds().min)return null;if(m=t,x=n.getTextRects(g,`${m}px`,r,"",!0,s),u<x.height+6)return null}const b=x.height+6,v=[];for(const e of this._runs(f,b,d)){const o=Number(c[e.l]),i=Number(c[e.r]);if(!isFinite(o)||!isFinite(i))continue;let f=i-o;if(f<=0&&d>1){const t=Math.abs(Number(c[Math.min(e.r+1,d-1)])-Number(c[Math.max(e.l-1,0)]));f=isFinite(t)?t:0}if(f<a||f<.35*x.width)continue;const u=x.width<=f?g:n.getTextBasedOnMaxWidth({text:g,maxWidth:f,fontSize:`${m}px`,fontFamily:r,fontWeight:s});if(!u||"..."===u)continue;const p=u===g?x.width:x.width*(u.length/g.length),y=[o+f/2];f>2.2*p&&y.push(o+p/2+2,i-p/2-2);for(const r of y){let s=e.l,a=1/0;for(let t=e.l;t<=e.r;t++){const e=Math.abs(Number(c[t])-r);e<a&&(a=e,s=t)}v.push({x:r,y:(this._yPx(l[s])+this._yPx(h[s]))/2,text:u,color:this._contrastOn(t),fontSize:`${m}px`,width:p,height:x.height})}if(v.length>=6)break}return v.length?{k:t,weight:u,candidates:v}:null}_runs(t,e,r){const s=[];let a=0;for(;a<r;){if(t[a]<e){a++;continue}let n=a,o=t[a];for(;n+1<r&&t[n+1]>=e;)n++,t[n]>o&&(o=t[n]);s.push({l:a,r:n,maxT:o}),a=n+1}return s.sort((t,e)=>e.maxT-t.maxT)}_widestRun(t,e,r,s){let a=-1;for(const n of this._runs(t,r,s)){const t=Number(e[n.r])-Number(e[n.l]);isFinite(t)&&t>a&&(a=t)}return a>=0?{width:a}:null}_deconflict(t){const e=t.slice().sort((t,e)=>e.weight-t.weight),r=[],s=t=>!r.some(e=>t.left<e.box.right&&t.right>e.box.left&&t.top<e.box.bottom&&t.bottom>e.box.top);for(const t of e)for(const e of t.candidates){const a={left:e.x-e.width/2,right:e.x+e.width/2,top:e.y-e.height/2,bottom:e.y+e.height/2};if(s(a)){r.push(h(l({k:t.k},e),{box:a}));break}}return r}_autoBounds(){var t,e;const r=(null==(e=null==(t=this.w.config.plotOptions)?void 0:t.streamgraph)?void 0:e.labels)||{};return{min:null==r.minFontSize?9:r.minFontSize,max:null==r.maxFontSize?30:r.maxFontSize}}_resolveFontSize(t,e){if("auto"!==t){const e=parseFloat(t);return isFinite(e)&&e>0?e:12}const{min:r,max:s}=this._autoBounds();return Math.max(r,Math.min(s,Math.round(.36*e)))}_contrastOn(t){var e;const r=this.w,s=null==(e=r.globals.colors)?void 0:e[t],a="string"==typeof s?f.parseHex(s):null;return a?f.relativeLuminance(a)>.45?"#000000":"#ffffff":r.config.chart.foreColor}removeLabels(){const t=this.w.dom.elGraphical,e=t&&t.node.querySelector(".apexcharts-streamgraph-labels");e&&e.parentNode&&e.parentNode.removeChild(e)}bindHover(){const t=this.w;if(!p.isBrowser())return;if(!1===this._hoverCfg().show)return;const e=t.dom.baseEl&&t.dom.baseEl.querySelector(".apexcharts-svg");e&&!e.__apexStreamHover&&(e.__apexStreamHover=!0,e.addEventListener("mousemove",t=>{this.isActive()&&this.w.streamgraphData&&this._dim(this._bandAt(t))}),e.addEventListener("mouseleave",()=>{this._dim(-1)}))}_hoverCfg(){var t,e;return(null==(e=null==(t=this.w.config.plotOptions)?void 0:t.streamgraph)?void 0:e.hover)||{}}_bandAt(t){const e=this.w,r=e.streamgraphData;if(!r||!r.order.length)return-1;const s=e.dom.baseEl&&e.dom.baseEl.querySelector(".apexcharts-svg");if(!s)return-1;const a=s.getBoundingClientRect(),n=e.globals.svgWidth?a.width/e.globals.svgWidth:1,o=u.screenXToPlotPx(e,t.clientX),i=(t.clientY-a.top)/(n||1)-e.layout.translateY;if(o<0||o>e.layout.gridWidth)return-1;if(i<0||i>e.layout.gridHeight)return-1;const l=e.globals.seriesXvalues[r.order[0]];if(!Array.isArray(l)||!l.length)return-1;const h=e.interact?e.interact.capturedDataPointIndex:-1;let c=-1;if(h>=0&&h<l.length)c=h;else{let t=1/0;for(let e=0;e<l.length;e++){const r=Math.abs(Number(l[e])-o);r<t&&(t=r,c=e)}}if(c<0)return-1;let d=-1,f=1/0;for(let t=0;t<r.order.length;t++){const e=r.order[t],s=this._yPx(r.highs[e][c]),a=this._yPx(r.lows[e][c]),n=Math.min(s,a),o=Math.max(s,a);if(i>=n&&i<=o)return e;const l=i<n?n-i:i-o;l<f&&(f=l,d=e)}return d}_dim(t){const e=this.w;if(t===this._hovered)return;this._hovered=t;const r=this._hoverCfg(),s=null==r.opacity?.35:r.opacity,a=e.dom.baseEl.querySelectorAll(".apexcharts-series"),n=e.dom.baseEl.querySelectorAll(".apexcharts-streamgraph-label"),o=(e,r)=>t<0||r===t;for(let t=0;t<a.length;t++){const e=a[t];e.style.transition="opacity .15s ease",e.style.opacity=o(0,Number(e.getAttribute("data:realIndex")))?"":String(s)}for(let t=0;t<n.length;t++){const r=n[t];r.style.transition="opacity .15s ease, fill .15s ease",o(0,Number(r.getAttribute("data:realIndex")))?this._restoreLabel(r):(r.getAttribute("data:fill")||r.setAttribute("data:fill",r.getAttribute("fill")||""),r.setAttribute("fill",e.config.chart.foreColor),r.style.opacity="0.65")}}_restoreLabel(t){const e=t.getAttribute("data:fill");e&&t.setAttribute("fill",e),t.style.opacity=""}clearDim(){this._hovered=-1;const t=this.w;if(!t.dom.baseEl)return;const e=t.dom.baseEl.querySelectorAll(".apexcharts-series");for(let t=0;t<e.length;t++)e[t].style.opacity="";const r=t.dom.baseEl.querySelectorAll(".apexcharts-streamgraph-label");for(let t=0;t<r.length;t++)this._restoreLabel(r[t])}holdUntilBandsLand(t){const e=this.w;p.isBrowser()&&e.globals.shouldAnimate&&!e.globals.animationEnded&&(t.node.classList.add("apexcharts-element-hidden"),e.globals.delayedElements.push({el:t.node,holdUntilComplete:!0}))}}}),t.default=c,t.streamgraphTransform=b,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ApexStreamgraph={})});