apexcharts 8.1.0 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -8
- package/dist/apexcharts.common.js +2 -2
- package/dist/apexcharts.core.js +660 -897
- package/dist/apexcharts.core.min.js +2 -2
- package/dist/apexcharts.esm.js +748 -791
- package/dist/apexcharts.full.js +1502 -1782
- package/dist/apexcharts.full.min.js +2 -2
- package/dist/apexcharts.js +1409 -1689
- package/dist/apexcharts.min.js +2 -2
- package/dist/apexcharts.ssr.common.js +2 -2
- package/dist/apexcharts.ssr.esm.js +1610 -1744
- package/dist/area.common.js +2 -2
- package/dist/area.esm.js +25 -67
- package/dist/bar.common.js +2 -2
- package/dist/bar.esm.js +159 -163
- package/dist/bar.js +2 -2
- package/dist/boxPlot.common.js +2 -2
- package/dist/boxPlot.esm.js +125 -106
- package/dist/bubble.common.js +2 -2
- package/dist/bubble.esm.js +25 -67
- package/dist/candlestick.common.js +2 -2
- package/dist/candlestick.esm.js +125 -106
- package/dist/candlestick.js +2 -2
- package/dist/column.common.js +2 -2
- package/dist/column.esm.js +159 -163
- package/dist/core.common.js +2 -2
- package/dist/core.esm.js +660 -897
- package/dist/donut.common.js +2 -2
- package/dist/donut.esm.js +25 -33
- package/dist/dumbbell.common.js +2 -2
- package/dist/dumbbell.esm.js +159 -163
- package/dist/features/all.common.js +2 -2
- package/dist/features/all.esm.js +461 -414
- package/dist/features/annotations.common.js +2 -2
- package/dist/features/annotations.esm.js +5 -8
- package/dist/features/annotations.js +2 -2
- package/dist/features/context-menu.common.js +1 -1
- package/dist/features/context-menu.esm.js +1 -1
- package/dist/features/context-menu.js +1 -1
- package/dist/features/drilldown.common.js +1 -1
- package/dist/features/drilldown.esm.js +1 -1
- package/dist/features/drilldown.js +1 -1
- package/dist/features/dumbbell.common.js +1 -1
- package/dist/features/dumbbell.esm.js +1 -1
- package/dist/features/dumbbell.js +1 -1
- package/dist/features/exports.common.js +2 -2
- package/dist/features/exports.esm.js +2 -2
- package/dist/features/exports.js +2 -2
- package/dist/features/facet.common.js +1 -1
- package/dist/features/facet.esm.js +1 -1
- package/dist/features/facet.js +1 -1
- package/dist/features/highlight-filter.common.js +2 -2
- package/dist/features/highlight-filter.esm.js +14 -35
- package/dist/features/highlight-filter.js +2 -2
- package/dist/features/history.common.js +2 -2
- package/dist/features/history.esm.js +4 -3
- package/dist/features/history.js +2 -2
- package/dist/features/ink.common.js +1 -1
- package/dist/features/ink.esm.js +1 -1
- package/dist/features/ink.js +1 -1
- package/dist/features/keyboard.common.js +2 -2
- package/dist/features/keyboard.esm.js +20 -23
- package/dist/features/keyboard.js +2 -2
- package/dist/features/legend.common.js +2 -2
- package/dist/features/legend.esm.js +61 -41
- package/dist/features/legend.js +2 -2
- package/dist/features/link.common.js +2 -2
- package/dist/features/link.esm.js +8 -8
- package/dist/features/link.js +2 -2
- package/dist/features/marks.common.js +1 -1
- package/dist/features/marks.esm.js +1 -1
- package/dist/features/marks.js +1 -1
- package/dist/features/measure.common.js +1 -1
- package/dist/features/measure.esm.js +1 -1
- package/dist/features/measure.js +1 -1
- package/dist/features/morph.common.js +2 -2
- package/dist/features/morph.esm.js +260 -279
- package/dist/features/morph.js +2 -2
- package/dist/features/perspectives.common.js +2 -2
- package/dist/features/perspectives.esm.js +28 -19
- package/dist/features/perspectives.js +2 -2
- package/dist/features/raincloud.common.js +1 -1
- package/dist/features/raincloud.esm.js +1 -1
- package/dist/features/raincloud.js +1 -1
- package/dist/features/renderer-canvas.common.js +1 -1
- package/dist/features/renderer-canvas.esm.js +1 -1
- package/dist/features/renderer-canvas.js +1 -1
- package/dist/features/stats.common.js +1 -1
- package/dist/features/stats.esm.js +1 -1
- package/dist/features/stats.js +1 -1
- package/dist/features/storyboard.common.js +2 -2
- package/dist/features/storyboard.esm.js +24 -15
- package/dist/features/storyboard.js +2 -2
- package/dist/features/streamgraph.common.js +1 -1
- package/dist/features/streamgraph.esm.js +1 -1
- package/dist/features/streamgraph.js +1 -1
- package/dist/features/toolbar.common.js +2 -2
- package/dist/features/toolbar.esm.js +10 -15
- package/dist/features/toolbar.js +2 -2
- package/dist/features/trellis.common.js +2 -2
- package/dist/features/trellis.esm.js +31 -19
- package/dist/features/trellis.js +2 -2
- package/dist/features/waterfall.common.js +1 -1
- package/dist/features/waterfall.esm.js +1 -1
- package/dist/features/waterfall.js +1 -1
- package/dist/features/weave.common.js +2 -2
- package/dist/features/weave.esm.js +114 -55
- package/dist/features/weave.js +2 -2
- package/dist/full.common.js +2 -2
- package/dist/full.esm.js +99 -95
- package/dist/heatmap.common.js +2 -2
- package/dist/heatmap.esm.js +47 -14
- package/dist/heatmap.js +2 -2
- package/dist/histogram.common.js +2 -2
- package/dist/histogram.esm.js +159 -163
- package/dist/icicle.common.js +1 -1
- package/dist/icicle.esm.js +1 -1
- package/dist/icicle.js +1 -1
- package/dist/line.common.js +2 -2
- package/dist/line.esm.js +25 -67
- package/dist/line.js +2 -2
- package/dist/pictograms.common.js +1 -1
- package/dist/pictograms.esm.js +1 -1
- package/dist/pictograms.js +1 -1
- package/dist/pie.common.js +2 -2
- package/dist/pie.esm.js +25 -33
- package/dist/pie.js +2 -2
- package/dist/polarArea.common.js +2 -2
- package/dist/polarArea.esm.js +25 -33
- package/dist/radar.common.js +2 -2
- package/dist/radar.esm.js +2 -2
- package/dist/radar.js +2 -2
- package/dist/radialBar.common.js +2 -2
- package/dist/radialBar.esm.js +32 -42
- package/dist/radialBar.js +2 -2
- package/dist/raincloud.common.js +2 -2
- package/dist/raincloud.esm.js +2 -7
- package/dist/rangeArea.common.js +2 -2
- package/dist/rangeArea.esm.js +25 -67
- package/dist/rangeBar.common.js +2 -2
- package/dist/rangeBar.esm.js +159 -163
- package/dist/scatter.common.js +2 -2
- package/dist/scatter.esm.js +25 -67
- package/dist/streamgraph.common.js +2 -2
- package/dist/streamgraph.esm.js +25 -67
- package/dist/sunburst.common.js +1 -1
- package/dist/sunburst.esm.js +1 -1
- package/dist/sunburst.js +1 -1
- package/dist/treemap.common.js +2 -2
- package/dist/treemap.esm.js +28 -90
- package/dist/treemap.js +2 -2
- package/dist/unit-shapes.common.js +1 -1
- package/dist/unit-shapes.esm.js +1 -1
- package/dist/unit-shapes.js +1 -1
- package/dist/unit.common.js +2 -2
- package/dist/unit.esm.js +22 -5
- package/dist/unit.js +2 -2
- package/dist/violin.common.js +2 -2
- package/dist/violin.esm.js +2 -7
- package/dist/violin.js +2 -2
- package/dist/waterfall.common.js +2 -2
- package/dist/waterfall.esm.js +159 -163
- package/package.json +3 -1
- package/src/apexcharts.js +81 -122
- package/src/charts/Bar.js +16 -5
- package/src/charts/BarStacked.js +42 -88
- package/src/charts/BoxCandleStick.js +1 -7
- package/src/charts/HeatMap.js +69 -18
- package/src/charts/Line.js +21 -71
- package/src/charts/Pie.js +45 -33
- package/src/charts/Radar.js +4 -1
- package/src/charts/Radial.js +9 -10
- package/src/charts/RangeBar.js +1 -7
- package/src/charts/Treemap.js +25 -78
- package/src/charts/Unit.js +28 -10
- package/src/charts/Violin.js +1 -7
- package/src/charts/common/Hierarchy.js +0 -22
- package/src/charts/common/Stats.js +6 -28
- package/src/charts/common/bar/DataLabels.js +94 -83
- package/src/charts/common/bar/Helpers.js +34 -57
- package/src/charts/common/treemap/Helpers.js +1 -1
- package/src/entries/full.js +0 -17
- package/src/features/link.js +9 -10
- package/src/features/perspectives.js +20 -19
- package/src/libs/Treemap-squared.js +7 -47
- package/src/modules/Animations.js +20 -64
- package/src/modules/Base.js +3 -2
- package/src/modules/Core.js +17 -12
- package/src/modules/CoreUtils.js +32 -33
- package/src/modules/Data.js +130 -85
- package/src/modules/DataLabels.js +18 -2
- package/src/modules/Events.js +1 -4
- package/src/modules/Exports.js +3 -2
- package/src/modules/Fill.js +4 -4
- package/src/modules/Graphics.js +8 -14
- package/src/modules/MorphPieces.js +4 -2
- package/src/modules/MorphTypeChange.js +332 -316
- package/src/modules/Range.js +52 -91
- package/src/modules/Responsive.js +186 -61
- package/src/modules/Scales.js +4 -47
- package/src/modules/Series.js +14 -45
- package/src/modules/Theme.js +33 -5
- package/src/modules/Toolbar.js +7 -13
- package/src/modules/accessibility/KeyboardNavigation.js +29 -28
- package/src/modules/animations/CircleTransition.js +1 -4
- package/src/modules/animations/StreamScroll.js +6 -4
- package/src/modules/annotations/Annotations.js +0 -2
- package/src/modules/annotations/Helpers.js +4 -11
- package/src/modules/axes/XAxis.js +4 -4
- package/src/modules/axes/YAxis.js +0 -5
- package/src/modules/dimensions/Dimensions.js +1 -5
- package/src/modules/dimensions/Grid.js +13 -2
- package/src/modules/dimensions/YAxis.js +7 -6
- package/src/modules/helpers/Destroy.js +3 -0
- package/src/modules/helpers/InitCtxVariables.js +0 -2
- package/src/modules/helpers/UpdateHelpers.js +21 -11
- package/src/modules/highlightFilter/HighlightFilter.js +18 -40
- package/src/modules/highlightFilter/PiePart.js +1 -1
- package/src/modules/highlightFilter/RadialPart.js +1 -1
- package/src/modules/history/History.js +7 -2
- package/src/modules/legend/Legend.js +100 -62
- package/src/modules/license/LicenseEnforcer.js +6 -1
- package/src/modules/settings/Config.js +10 -54
- package/src/modules/settings/Defaults.js +180 -33
- package/src/modules/settings/Globals.js +7 -2
- package/src/modules/tooltip/AxesTooltip.js +4 -2
- package/src/modules/tooltip/Intersect.js +7 -21
- package/src/modules/tooltip/Marker.js +2 -2
- package/src/modules/tooltip/Position.js +10 -20
- package/src/modules/tooltip/Tooltip.js +24 -27
- package/src/modules/tooltip/Utils.js +0 -32
- package/src/modules/trellis/TrellisExports.js +21 -9
- package/src/modules/trellis/TrellisTooltip.js +18 -8
- package/src/modules/weave/Claims.js +8 -2
- package/src/modules/weave/Highlights.js +5 -2
- package/src/modules/weave/PluginAPI.js +6 -3
- package/src/modules/weave/WeaveHost.js +128 -64
- package/src/ssr/RenderShim.js +162 -3
- package/src/ssr/SSRRenderer.js +43 -6
- package/src/svg/SVGAnimation.js +10 -7
- package/src/types/internal.d.ts +22 -5
- package/src/utils/Constants.js +7 -8
- package/src/utils/DateTime.js +10 -177
- package/src/utils/Utils.js +14 -76
- package/types/apexcharts.d.ts +18 -7
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* ApexCharts v8.
|
|
2
|
+
* ApexCharts v8.2.0
|
|
3
3
|
* (c) 2018-2026 ApexCharts
|
|
4
4
|
*/
|
|
5
5
|
!function(t){var e="undefined"!=typeof globalThis?globalThis:self,s=e.ApexCharts;if(s&&s.__internals)return t.call(e);if(s)throw new Error("ApexCharts: dist/features/renderer-canvas.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/renderer-canvas.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/renderer-canvas.js",run:t,done:!1},r=e.__apexcharts_pending_addons__||(e.__apexcharts_pending_addons__=[]);r.push(i),"complete"!==document.readyState&&window.addEventListener("load",function(){if(!i.done){var s=e.ApexCharts;if(s)if(s.__internals){i.done=!0;var n=r.indexOf(i);-1!==n&&r.splice(n,1);try{t.call(e),s.__drainsAddons||e.console.warn("ApexCharts: dist/features/renderer-canvas.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/renderer-canvas.js could not register with the ApexCharts script on this page: "+(t&&t.message))}}else e.console.error("ApexCharts: dist/features/renderer-canvas.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/renderer-canvas.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,s=Object.defineProperties,i=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,l=(t,s,i)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[s]=i,o=(t,e)=>{for(var s in e||(e={}))n.call(e,s)&&l(t,s,e[s]);if(r)for(var s of r(e))a.call(e,s)&&l(t,s,e[s]);return t},h=(t,e)=>s(t,i(e));const c=globalThis.ApexCharts,_=globalThis.ApexCharts.__internals.__apex_Graphics,d={fill:"fill",stroke:"stroke","stroke-width":"strokeWidth","stroke-dasharray":"strokeDash","stroke-linecap":"lineCap","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","fill-rule":"fillRule"},p=Symbol("never"),u={circle:0,square:1,rect:1,triangle:2,diamond:3,star:4,sparkle:5,cross:6,plus:7,line:8},f=["circle","square","triangle","diamond","star","sparkle","cross","plus","line"];function y(t){return t.boxOf!==t.d&&(t.box=function(t){const e="string"==typeof t?t.match(/[a-df-z]|[-+]?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/gi):null;if(!e)return null;let s=1/0,i=1/0,r=-1/0,n=-1/0,a=0,l=0,o=0,h=0,c="",_=0;const d=()=>Number(e[_++]),p=(t,e)=>{isFinite(t)&&isFinite(e)&&(s=Math.min(s,t),i=Math.min(i,e),r=Math.max(r,t),n=Math.max(n,e))},u=t=>{const e=c===c.toLowerCase();let s=a,i=l;for(let r=0;r<t;r++)s=d()+(e?a:0),i=d()+(e?l:0),p(s,i);a=s,l=i};for(;_<e.length;){if(/^[a-z]$/i.test(e[_])){c=e[_++],"Z"!==c&&"z"!==c||(a=o,l=h);continue}const t=c===c.toLowerCase();switch(c.toUpperCase()){case"M":u(1),o=a,h=l,c=t?"l":"L";break;case"L":case"T":u(1);break;case"H":a=d()+(t?a:0),p(a,l);break;case"V":l=d()+(t?l:0),p(a,l);break;case"S":case"Q":u(2);break;case"C":u(3);break;case"A":_+=5,u(1);break;default:_++}}return isFinite(s)?{x:s,y:i,width:r-s,height:n-i}:null}(t.d),t.boxOf=t.d),t.box}const m={attr:()=>m,plot:()=>m,during:()=>m,after:t=>("function"==typeof t&&t(),m),animate:()=>m,delay:()=>m,loop:()=>m,finish:()=>m,stop:()=>m},g={nodeName:"path",style:{},classList:{add(){},remove(){},toggle(){},contains:()=>!1},setAttribute(){},getAttribute:()=>null,removeAttribute(){},hasAttribute:()=>!1,addEventListener(){},removeEventListener(){},appendChild(){},getBBox:()=>({x:0,y:0,width:0,height:0})},x={__isCanvasMark:!0,node:{nodeName:"g",instance:null,style:{},classList:{add(){},remove(){},toggle(){},contains:()=>!1},setAttribute(){},getAttribute:()=>null,removeAttribute(){},addEventListener(){},removeEventListener(){},appendChild(){},getBBox:()=>({x:0,y:0,width:0,height:0})},attr:()=>x,add:()=>x,addTo:()=>x,remove:()=>x,clear:()=>x,css:()=>x,hide:()=>x,show:()=>x,removeClass:()=>x,animate:()=>m};class w{constructor(t,e){this.__isCanvasMark=!0,this._g=t,this._i=e}get node(){return g}attr(t,e){return"string"==typeof t?("fill"===t&&void 0!==e?this._g._setMarkerFill(this._i,e):"rel"===t&&void 0!==e&&(this._g._mdi[this._i]=e),void 0===e?null:this):(t&&void 0!==t.fill&&this._g._setMarkerFill(this._i,t.fill),t&&void 0!==t.rel&&(this._g._mdi[this._i]=t.rel),this)}add(t){return this}addTo(t){return this}remove(){return this}css(t){return this}fill(t){return void 0!==t&&this._g._setMarkerFill(this._i,t),this}stroke(t){return this}hide(){return this}show(){return this}removeClass(t){return this}animate(){return m}}const k={__isCanvasMark:!0,node:g,attr:()=>k,add:()=>k,addTo:()=>k,remove:()=>k,css:()=>k,animate:()=>m};class b{constructor(t){this.__isCanvasMark=!0,this._cmd=t;const e=this;this.node={nodeName:t?t.tag:"g",instance:this,style:{},classList:{add(){},remove(){},toggle(){},contains:()=>!1},setAttribute(t,s){e._applyAttr(t,s)},getAttribute:()=>null,removeAttribute(){},hasAttribute:()=>!1,addEventListener(){},removeEventListener(){},appendChild(){},getBBox:()=>e.bbox()}}_applyAttr(t,e){const s=this._cmd;if(!s)return;if("clip-path"===t){const t=function(t){if(null==t||"none"===t)return null;const e=/^url\(#gridRect(Bar|Marker)?Mask/.exec(String(t));return e?"Bar"===e[1]?"bar":"Marker"===e[1]?"marker":"grid":void 0}(e);return void(void 0!==t&&(s.clip=t))}const i=d[t];void 0!==i&&(s[i]=e)}attr(t,e){if("string"==typeof t)return void 0===e?null:(this._applyAttr(t,e),this);for(const e in t)void 0!==t[e]&&this._applyAttr(e,t[e]);return this}add(t){return this}addTo(t){return this}remove(){return this}clear(){return this}css(t){return this}fill(t){return"object"==typeof t?this.attr(t):this.attr("fill",t)}stroke(t){return"object"==typeof t?(void 0!==t.color&&this.attr("stroke",t.color),void 0!==t.width&&this.attr("stroke-width",t.width),this):this.attr("stroke",t)}plot(t){return"string"==typeof t&&this._cmd&&"path"===this._cmd.tag&&(this._cmd.d=t),this}hide(){return this}show(){return this}removeClass(t){return this}bbox(){const t=this._cmd,e=t&&"path"===t.tag?y(t):null;return e?o({},e):{x:0,y:0,width:0,height:0}}animate(){return m}}class A{constructor(t){this.w=t,this._g=new _(t),this._list=[],this._mx=new Float64Array(16),this._my=new Float64Array(16),this._msize=new Float64Array(16),this._mshape=new Int16Array(16),this._mstyle=new Int32Array(16),this._msi=new Int32Array(16),this._mdi=new Int32Array(16),this._mn=0,this._mcap=16,this._crx=new Float64Array(16),this._cry=new Float64Array(16),this._crw=new Float64Array(16),this._crh=new Float64Array(16),this._crstyle=new Int32Array(16),this._crsi=new Int32Array(16),this._crdi=new Int32Array(16),this._crn=0,this._crcap=16,this._cellRadius=0,this._styles=[],this._styleMap=new Map,this._lf=p,this._ls=p,this._lsw=p,this._ld=p,this._lfo=p,this._lso=p,this._lid=-1,this._lofFill=p,this._lofBase=-1,this._lofId=-1,this._rlf=p,this._rls=p,this._rlsw=p,this._rlfo=p,this._rlso=p,this._rlid=-1}_resetStyleCache(){this._lf=p,this._ls=p,this._lsw=p,this._ld=p,this._lfo=p,this._lso=p,this._lid=-1,this._lofFill=p,this._lofBase=-1,this._lofId=-1,this._rlf=p,this._rls=p,this._rlsw=p,this._rlfo=p,this._rlso=p,this._rlid=-1}reset(){this._list=[],this._mn=0,this._styles=[],this._styleMap=new Map,this._resetStyleCache();const t=this.w.config.series||[];let e=16;for(let s=0;s<t.length;s++){const i=t[s]&&t[s].data;Array.isArray(i)&&(e+=i.length)}e=Math.ceil(1.15*e)+16,e>this._mcap&&this._allocMarkers(e),this._crn=0,this._cellRadius=0,e>this._crcap&&this._allocRects(e)}_allocRects(t){this._crcap=t,this._crx=new Float64Array(t),this._cry=new Float64Array(t),this._crw=new Float64Array(t),this._crh=new Float64Array(t),this._crstyle=new Int32Array(t),this._crsi=new Int32Array(t),this._crdi=new Int32Array(t)}_growRects(){const t=2*this._crcap,e=new Float64Array(t);e.set(this._crx),this._crx=e;const s=new Float64Array(t);s.set(this._cry),this._cry=s;const i=new Float64Array(t);i.set(this._crw),this._crw=i;const r=new Float64Array(t);r.set(this._crh),this._crh=r;const n=new Int32Array(t);n.set(this._crstyle),this._crstyle=n;const a=new Int32Array(t);a.set(this._crsi),this._crsi=a;const l=new Int32Array(t);l.set(this._crdi),this._crdi=l,this._crcap=t}_allocMarkers(t){this._mcap=t,this._mx=new Float64Array(t),this._my=new Float64Array(t),this._msize=new Float64Array(t),this._mshape=new Int16Array(t),this._mstyle=new Int32Array(t),this._msi=new Int32Array(t),this._mdi=new Int32Array(t)}_growMarkers(){const t=2*this._mcap,e=new Float64Array(t);e.set(this._mx),this._mx=e;const s=new Float64Array(t);s.set(this._my),this._my=s;const i=new Float64Array(t);i.set(this._msize),this._msize=i;const r=new Int16Array(t);r.set(this._mshape),this._mshape=r;const n=new Int32Array(t);n.set(this._mstyle),this._mstyle=n;const a=new Int32Array(t);a.set(this._msi),this._msi=a;const l=new Int32Array(t);l.set(this._mdi),this._mdi=l,this._mcap=t}displayList(){return this._list}markerCount(){return this._mn}_internStyle(t,e,s,i,r,n){const a=`${t}|${e}|${s}|${i}|${r}|${n}`,l=this._styleMap.get(a);if(void 0!==l)return l;const o=this._styles.length;return this._styles.push({fill:t,stroke:e,strokeWidth:s,strokeDash:i,fillOpacity:r,strokeOpacity:n}),this._styleMap.set(a,o),o}_setMarkerFill(t,e){const s=this._mstyle[t];if(e===this._lofFill&&s===this._lofBase)return void(this._mstyle[t]=this._lofId);const i=this._styles[s];if(!i||i.fill===e)return this._lofFill=e,this._lofBase=s,void(this._lofId=s);const r=this._internStyle(e,i.stroke,i.strokeWidth,i.strokeDash,i.fillOpacity,i.strokeOpacity);this._mstyle[t]=r,this._lofFill=e,this._lofBase=s,this._lofId=r}markerStyle(t){return this._styles[this._mstyle[t]]}markerSeries(t){return this._msi[t]}shapeName(t){return f[t]||"circle"}drawRectCell(t,e,s,i,r={}){const n=this._rectStyleId(r);this._crn>=this._crcap&&this._growRects();const a=this._crn++;return this._crx[a]=t||0,this._cry[a]=e||0,this._crw[a]=s>0?s:0,this._crh[a]=i>0?i:0,this._crstyle[a]=n,this._crsi[a]=null==r.seriesIndex?-1:r.seriesIndex,this._crdi[a]=null==r.dataPointIndex?-1:r.dataPointIndex,r.radius&&(this._cellRadius=r.radius),k}_rectStyleId(t){const e=t.fill,s=t.stroke,i=t.strokeWidth,r=t.fillOpacity,n=t.strokeOpacity;if(e===this._rlf&&s===this._rls&&i===this._rlsw&&r===this._rlfo&&n===this._rlso)return this._rlid;const a=this._internStyle(e,s,i,0,r,n);return this._rlf=e,this._rls=s,this._rlsw=i,this._rlfo=r,this._rlso=n,this._rlid=a,a}rectCount(){return this._crn}rectStyle(t){return this._styles[this._crstyle[t]]}rectSeries(t){return this._crsi[t]}_cmd(t,e){const s={tag:t,z:e||0,fill:void 0,stroke:void 0,strokeWidth:void 0,strokeDash:void 0,lineCap:void 0,fillOpacity:void 0,strokeOpacity:void 0,fillRule:void 0,clip:null};return this._list.push(s),s}group(t){return x}drawMarker(t,e,s={}){var i;const r=this._markerStyleId(s);this._mn>=this._mcap&&this._growMarkers();const n=this._mn++;return this._mx[n]=t||0,this._my[n]="number"==typeof e?e:NaN,this._msize[n]=s.pSize||0,this._mshape[n]=null!=(i=u[s.shape||"circle"])?i:0,this._mstyle[n]=r,this._msi[n]=null==s.seriesIndex?-1:s.seriesIndex,this._mdi[n]=-1,new w(this,n)}_markerStyleId(t){const e=t.shape||"circle",s="line"===e||"plus"===e||"cross"===e,i=s?"none":t.pointFillColor,r=s?t.pointFillColor:t.pointStrokeColor,n=t.pointStrokeWidth,a=t.pointStrokeDashArray,l=t.pointFillOpacity,o=s?t.pointFillOpacity:t.pointStrokeOpacity;if(i===this._lf&&r===this._ls&&n===this._lsw&&a===this._ld&&l===this._lfo&&o===this._lso)return this._lid;const h=this._internStyle(i,r,n,a,l,o);return this._lf=i,this._ls=r,this._lsw=n,this._ld=a,this._lfo=l,this._lso=o,this._lid=h,h}renderPaths(t){const e=this._cmd("path",t.realIndex);if(e.d=t.pathTo,t.pathToNumeric&&(e.nxs=t.pathToNumeric.xs,e.nys=t.pathToNumeric.ys,e.ncloseY=t.pathToNumeric.closeY),e.stroke=t.stroke,e.strokeWidth=t.strokeWidth,e.fill=t.fill,e.lineCap=t.strokeLinecap,e.si=t.realIndex,"number"==typeof t.j&&(e.dj=t.j),!1!==t.shouldClipToGrid){const s=this.w.globals;e.clip="bar"===t.chartType&&!s.isBarHorizontal||s.comboCharts?"bar":"grid"}return this.w.globals.animationEnded=!0,new b(e)}drawPath(t){const e=this._cmd("path",0);return e.d=t.d,e.stroke=t.stroke,e.strokeWidth=t.strokeWidth,e.fill=t.fill,e.fillOpacity=t.fillOpacity,e.strokeOpacity=t.strokeOpacity,e.lineCap=t.strokeLinecap,e.strokeDash=t.strokeDashArray,new b(e)}drawLine(t,e,s,i,r="#a8a8a8",n=0,a=1){const l=this._cmd("line",0);return l.lx1=t,l.ly1=e,l.lx2=s,l.ly2=i,l.stroke=r,l.strokeDash=n,l.strokeWidth=a,new b(l)}drawRect(t=0,e=0,s=0,i=0,r=0,n="#fefefe",a=1,l=null,o=null,h=0){const c=this._cmd("rect",0);return c.x1=t,c.y1=e,c.rw=s>0?s:0,c.rh=i>0?i:0,c.radius=r,c.fill=n,c.fillOpacity=a,null!=o&&(c.stroke=o,c.strokeWidth=null==l?1:l,c.strokeDash=h),new b(c)}drawCircle(t,e=null){const s=this._cmd("circle",0);return s.r=t<0?0:t,e&&(s.cx=e.cx,s.cy=e.cy,void 0!==e.fill&&(s.fill=e.fill),void 0!==e.stroke&&(s.stroke=e.stroke)),new b(s)}drawText(t){const e=this._cmd("text",0);return e.text=Array.isArray(t.text)?t.text.join(" "):t.text,e.tx=t.x,e.ty=t.y,e.textAnchor=t.textAnchor||"start",e.fontSize=t.fontSize,e.fontFamily=t.fontFamily,e.fill=t.foreColor,new b(e)}markerPath(t,e,s,i){return this._g.getMarkerPath(t,e,f[s]||"circle",i)}}const v=globalThis.ApexCharts.__internals.__apex_SVGElement,C=globalThis.ApexCharts.__internals,M=C.__apex_math_SVGNS;C.__apex_math_Point,C.__apex_math_Matrix,C.__apex_math_Box;const S=globalThis.ApexCharts.__internals.__apex_BrowserAPIs_BrowserAPIs,P=globalThis.ApexCharts.__internals.__apex_axes_Grid,I=2*Math.PI;class F{constructor(t){this.w=t,this._host=null,this._canvas=null,this._c2d=null,this._pad={left:0,top:0,right:0,bottom:0},this._clips=null,this._clipRect=null,this._dpr=1,this._dim=null,this._alpha=1,this._unitPaths=new Map,this._markerBatches=0}markerBatchCount(){return this._markerBatches}_seriesAlpha(t){const e=this._dim;return!e||null==e.active||e.active<0||null==t||t<0||t===e.active?1:null==e.opacity?.2:e.opacity}_plotDims(){var t;const e=Math.max(0,Math.ceil(this.w.layout.gridWidth||0)),s=Math.max(0,Math.ceil(this.w.layout.gridHeight||0)),i=(null==(t=this.w.globals.markers)?void 0:t.largestSize)||0,r=Math.ceil(i+8),n=P.maskRects(this.w),a={left:r,top:r,right:r,bottom:r},l=t=>Number.isFinite(t)?Math.ceil(t):0;return Object.values(n).forEach(t=>{a.left=Math.max(a.left,l(-t.x)),a.top=Math.max(a.top,l(-t.y)),a.right=Math.max(a.right,l(t.x+t.width-e)),a.bottom=Math.max(a.bottom,l(t.y+t.height-s))}),{gw:e,gh:s,pad:a,clips:n}}createHost(){const t=S.getWindow();this._dpr=Math.min(2,t&&t.devicePixelRatio||1);const{gw:e,gh:s,pad:i,clips:r}=this._plotDims();this._pad=i,this._clips=r;const n=e+i.left+i.right,a=s+i.top+i.bottom,l=S.createElementNS(M,"foreignObject");l.setAttribute("x",String(-i.left)),l.setAttribute("y",String(-i.top)),l.setAttribute("width",String(n)),l.setAttribute("height",String(a)),l.setAttribute("class","apexcharts-canvas-series"),l.style.overflow="visible";const o=S.createElement("canvas");return o.setAttribute("class","apexcharts-series-canvas"),o.width=Math.max(1,Math.round(n*this._dpr)),o.height=Math.max(1,Math.round(a*this._dpr)),o.style.width=n+"px",o.style.height=a+"px",o.style.pointerEvents="none",l.appendChild(o),this._canvas=o,this._c2d=o.getContext("2d"),this._host=new v(l),this._host}getHost(){return this._host}clipRect(t){const e=t&&this._clips?this._clips[t]:null;return e&&Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.width)&&Number.isFinite(e.height)?e:null}_clipTo(t,e){const s=this.clipRect(e);if(s!==this._clipRect&&(this._clipRect&&t.restore(),this._clipRect=s,s)){const e=this._dpr,{left:i,top:r}=this._pad,n=Math.floor((i+s.x)*e),a=Math.floor((r+s.y)*e),l=Math.ceil((i+s.x+s.width)*e),o=Math.ceil((r+s.y+s.height)*e);t.save(),t.setTransform(1,0,0,1,0,0),t.beginPath(),t.rect(n,a,l-n,o-a),t.clip(),t.setTransform(e,0,0,e,i*e,r*e)}}clear(){this._c2d&&this._canvas&&(this._c2d.setTransform(1,0,0,1,0,0),this._c2d.clearRect(0,0,this._canvas.width,this._canvas.height))}_syncDpr(){if(!this._canvas)return;const t=S.getWindow(),e=Math.min(2,t&&t.devicePixelRatio||1);if(e===this._dpr)return;this._dpr=e;const s=parseFloat(this._canvas.style.width)||0,i=parseFloat(this._canvas.style.height)||0;this._canvas.width=Math.max(1,Math.round(s*e)),this._canvas.height=Math.max(1,Math.round(i*e))}paint(t,e,s=null){const i=this._c2d;if(!i)return;this._dim=s||null,this._syncDpr(),this.clear();const r=this._dpr,{left:n,top:a}=this._pad;if(i.setTransform(r,0,0,r,n*r,a*r),this._clipRect=null,t.length){const e=t.length>1?t.map((t,e)=>[t,e]).sort((t,e)=>t[0].z===e[0].z?t[1]-e[1]:t[0].z-e[0].z).map(t=>t[0]):t;for(let t=0;t<e.length;t++){const s=e[t];this._alpha=this._dim?this._seriesAlpha(s.si):1,this._clipTo(i,s.clip),this._paintOne(i,s)}this._clipTo(i,null)}this._paintRects(i,e),this._clipTo(i,"marker"),this._paintMarkers(i,e),this._clipTo(i,null),this._alpha=1}_paintRects(t,e){const s=e.rectCount?e.rectCount():0;if(!s)return;const i=e._crx,r=e._cry,n=e._crw,a=e._crh,l=e._crstyle,o=e._cellRadius||0,h=t,c=o>0&&"function"==typeof h.roundRect,_=!!this._dim,d=Math.max(0,this.w.layout.gridWidth||0),p=Math.max(0,this.w.layout.gridHeight||0);t.save(),t.beginPath(),t.rect(0,0,d,p),t.clip();let u=0;for(;u<s;){const d=l[u],p=e.rectStyle(u);if(!p){u++;continue}const f=p.fill,y=f&&"none"!==f&&!("string"==typeof f&&0===f.indexOf("url(")),m=p.stroke,g=null==p.strokeWidth?0:Number(p.strokeWidth),x=m&&"none"!==m&&g>0&&!("string"==typeof m&&0===m.indexOf("url("));y&&(t.fillStyle=f),x&&(t.strokeStyle=m,t.lineWidth=g,t.setLineDash([]));const w=null==p.fillOpacity?1:Number(p.fillOpacity),k=null==p.strokeOpacity?1:Number(p.strokeOpacity);let b=u;for(;b<s&&l[b]===d;){const s=n[b],l=a[b];if(s>0&&l>0){const n=_?this._seriesAlpha(e.rectSeries(b)):1;c?(t.beginPath(),h.roundRect(i[b],r[b],s,l,o),y&&(t.globalAlpha=w*n,t.fill()),x&&(t.globalAlpha=k*n,t.stroke())):(y&&(t.globalAlpha=w*n,t.fillRect(i[b],r[b],s,l)),x&&(t.globalAlpha=k*n,t.strokeRect(i[b],r[b],s,l)))}b++}u=b}t.globalAlpha=1,t.restore()}_unitPath(t,e,s){const i=e+"|"+s;let r=this._unitPaths.get(i);if(void 0===r){try{r=new Path2D(t.markerPath(0,0,e,s))}catch(t){r=null}this._unitPaths.set(i,r)}return r}_paintMarkers(t,e){this._markerBatches=0;const s=e.markerCount();if(!s)return;const i=e._mx,r=e._my,n=e._msize,a=e._mshape,l=e._mstyle,o=!!this._dim;o||(this._alpha=1);let h=0;for(;h<s;){const c=l[h],_=a[h],d=e.markerStyle(h);if(!d){h++;continue}const p=this._applyFill(t,d),u=this._applyStroke(t,d);this._markerBatches++;const f=null==d.fillOpacity?1:Number(d.fillOpacity),y=null==d.strokeOpacity?1:Number(d.strokeOpacity);if(0===_){let _=h;for(;_<s&&0===a[_]&&l[_]===c;){const s=n[_]||0,a=r[_];if(s>0&&a==a)if(t.beginPath(),t.arc(i[_],a,s,0,I),o){const s=this._seriesAlpha(e.markerSeries(_));p&&(t.globalAlpha=f*s,t.fill()),u&&(t.globalAlpha=y*s,t.stroke())}else p&&t.fill(),u&&t.stroke();_++}t.globalAlpha=1,h=_}else{const d=this._dpr,m=this._pad.left,g=this._pad.top;let x=h;for(;x<s&&a[x]===_&&l[x]===c;){const s=r[x],a=n[x];if(s==s&&a>0){const r=this._unitPath(e,_,a);if(r){t.setTransform(d,0,0,d,(m+i[x])*d,(g+s)*d);const n=o?this._seriesAlpha(e.markerSeries(x)):1;p&&(t.globalAlpha=f*n,t.fill(r)),u&&(t.globalAlpha=y*n,t.stroke(r))}}x++}t.setTransform(d,0,0,d,m*d,g*d),t.globalAlpha=1,h=x}}}_paintNumericPath(t,e){const s=e.nxs,i=e.nys,r=s.length;if(r){t.beginPath(),t.moveTo(s[0],i[0]);for(let e=1;e<r;e++)t.lineTo(s[e],i[e]);null!=e.ncloseY&&(t.lineTo(s[r-1],e.ncloseY),t.lineTo(s[0],e.ncloseY),t.closePath()),this._applyFill(t,e)&&t.fill("evenodd"===e.fillRule?"evenodd":"nonzero"),this._applyStroke(t,e)&&t.stroke(),t.globalAlpha=1}}_paintOne(t,e){switch(e.tag){case"path":if(e.nxs){this._paintNumericPath(t,e);break}if(!e.d)return;if(!e.path2d)try{e.path2d=new Path2D(e.d)}catch(t){return}this._fillStrokePath(t,e,e.path2d);break;case"rect":{const s=new Path2D;e.radius&&"function"==typeof s.roundRect?s.roundRect(e.x1,e.y1,e.rw,e.rh,e.radius):s.rect(e.x1,e.y1,e.rw,e.rh),this._fillStrokePath(t,e,s);break}case"circle":if(!(e.r>0))return;t.beginPath(),t.arc(e.cx,e.cy,e.r,0,I),this._fillStroke(t,e);break;case"line":t.beginPath(),t.moveTo(e.lx1,e.ly1),t.lineTo(e.lx2,e.ly2),this._strokeOnly(t,e);break;case"text":{if(null==e.text)return;t.save(),t.globalAlpha=this._alpha,t.fillStyle=e.fill||"#000";const s=e.fontSize||"11px";t.font=`${"number"==typeof s?s+"px":s} ${e.fontFamily||"Helvetica, Arial, sans-serif"}`,t.textAlign="middle"===e.textAnchor?"center":"end"===e.textAnchor?"right":"left",t.fillText(String(e.text),e.tx,e.ty),t.restore();break}}}_fillStrokePath(t,e,s){this._applyFill(t,e)&&t.fill(s,"evenodd"===e.fillRule?"evenodd":"nonzero"),this._applyStroke(t,e)&&t.stroke(s),t.globalAlpha=1}_fillStroke(t,e){this._applyFill(t,e)&&t.fill(),this._applyStroke(t,e)&&t.stroke(),t.globalAlpha=1}_strokeOnly(t,e){this._applyStroke(t,e)&&t.stroke(),t.globalAlpha=1}_applyFill(t,e){const s=e.fill;return!(!s||"none"===s||"string"==typeof s&&0===s.indexOf("url(")||(t.globalAlpha=(null==e.fillOpacity?1:Number(e.fillOpacity))*this._alpha,t.fillStyle=s,0))}_applyStroke(t,e){const s=e.stroke,i=null==e.strokeWidth?1:Number(e.strokeWidth);if(!(s&&"none"!==s&&i>0))return!1;if("string"==typeof s&&0===s.indexOf("url("))return!1;t.globalAlpha=(null==e.strokeOpacity?1:Number(e.strokeOpacity))*this._alpha,t.strokeStyle=s,t.lineWidth=i,t.lineCap=e.lineCap||"butt";const r=e.strokeDash;return r&&0!==r?t.setLineDash(Array.isArray(r)?r:[Number(r)]):t.setLineDash([]),!0}toDataURL(){return this._canvas?this._canvas.toDataURL():null}destroy(){this._host=null,this._canvas=null,this._c2d=null,this._clips=null,this._clipRect=null,this._unitPaths.clear()}}class O{constructor(t,e){this.w=t,this.ctx=e,this.kind="canvas",this._g=new A(t),this._compositor=new F(t),this._hitCtx=void 0}beginSeries(){this._g.reset()}present(){const t=this._compositor.createHost();return this._compositor.paint(this._g.displayList(),this._g),t}clear(){this._compositor.clear()}canRepaintInPlace(){const t=this._compositor.getHost();return!!(t&&t.node&&t.node.isConnected)}repaintInPlace(){this._compositor.paint(this._g.displayList(),this._g)}group(t){return this._g.group(t)}drawPath(t){return this._g.drawPath(t)}drawLine(...t){return this._g.drawLine(...t)}drawRect(...t){return this._g.drawRect(...t)}drawRectCell(t,e,s,i,r){return this._g.drawRectCell(t,e,s,i,r)}drawCircle(t,e){return this._g.drawCircle(t,e)}drawMarker(t,e,s){return this._g.drawMarker(t,e,s)}renderPaths(t){return this._g.renderPaths(t)}drawText(t){return this._g.drawText(t)}supports(t){return"solidFill"===t||"dashArray"===t}hitTest(t,e){const s=this._g,i=s.rectCount?s.rectCount():0,r=s._crx,n=s._cry,a=s._crw,l=s._crh;for(let o=i-1;o>=0;o--){const i=a[o],h=l[o];if(!(i<=0||h<=0)&&t>=r[o]&&t<r[o]+i&&e>=n[o]&&e<n[o]+h)return{seriesIndex:s._crsi[o],dataPointIndex:s._crdi[o],x:r[o],y:n[o],width:i,height:h}}return this._hitTestMarks(t,e)}_hitTestMarks(t,e){const s=this._g.displayList();for(let i=s.length-1;i>=0;i--){const r=s[i];if("path"!==r.tag||null==r.dj||!r.d)continue;const n=!!r.fill&&"none"!==r.fill,a=!!r.stroke&&"none"!==r.stroke&&r.strokeWidth>0;if(!n&&!a)continue;const l=this._compositor.clipRect(r.clip);if(l&&(t<l.x||t>l.x+l.width||e<l.y||e>l.y+l.height))continue;const h=y(r);if(!h)continue;const c=a?5*r.strokeWidth:0;if(t<h.x-c||t>h.x+h.width+c||e<h.y-c||e>h.y+h.height+c)continue;const _=this._hitContext();if(!_)return null;if(!r.path2d)try{r.path2d=new Path2D(r.d)}catch(t){continue}const d="evenodd"===r.fillRule?"evenodd":"nonzero";let p=n&&_.isPointInPath(r.path2d,t,e,d);if(!p&&a&&(_.lineWidth=r.strokeWidth,_.lineCap=r.lineCap||"butt",p=_.isPointInStroke(r.path2d,t,e)),p)return o({seriesIndex:r.si,dataPointIndex:r.dj},h)}return null}hitTestMarker(t,e){const s=this._g,i=s.markerCount();if(!i)return null;const r=this._compositor.clipRect("marker");if(r&&(t<r.x||t>r.x+r.width||e<r.y||e>r.y+r.height))return null;for(let r=i-1;r>=0;r--){const i=s._msize[r],n=s._mx[r],a=s._my[r],l=s._mdi[r];if(!(i>0)||a!=a||l<0)continue;const o=s.markerStyle(r),h=!!(null==o?void 0:o.stroke)&&"none"!==o.stroke&&o.strokeWidth>0,c=h?o.strokeWidth/2:0,_=1.2*i+c,d=t-n,p=e-a;if(d<-_||d>_||p<-_||p>_)continue;let u;if(u=0===s._mshape[r]?d*d+p*p<=(i+c)*(i+c):this._hitsMarkerShape(r,d,p,i,o,h),u)return{seriesIndex:s._msi[r],dataPointIndex:l,x:n,y:a,size:i}}return null}_hitsMarkerShape(t,e,s,i,r,n){const a=this._hitContext();if(!a)return!1;let l;try{l=new Path2D(this._g.markerPath(0,0,this._g._mshape[t],i))}catch(t){return!1}return!(!(null==r?void 0:r.fill)||"none"===r.fill||!a.isPointInPath(l,e,s))||!!n&&(a.lineWidth=r.strokeWidth,a.lineCap="butt",a.isPointInStroke(l,e,s))}findMark(t,e){const s=this._g.displayList();for(let i=0;i<s.length;i++){const r=s[i];if("path"!==r.tag||!r.d)continue;if(r.si!==t||r.dj!==e)continue;const n=y(r);if(n)return h(o({seriesIndex:t,dataPointIndex:e},n),{d:r.d})}return null}findMarker(t,e){const s=this._g;for(let i=s.markerCount()-1;i>=0;i--){if(s._msi[i]!==t||s._mdi[i]!==e)continue;const r=s._msize[i],n=s._my[i];if(!(r>0)||n!=n)continue;const a=s._mx[i];return{seriesIndex:t,dataPointIndex:e,x:a,y:n,size:r,d:s.markerPath(a,n,s._mshape[i],r)}}return null}findCell(t,e){const s=this._g,i=s.rectCount?s.rectCount():0,r=s._crsi,n=s._crdi;for(let a=i-1;a>=0;a--)if(r[a]===t&&n[a]===e)return{seriesIndex:t,dataPointIndex:e,x:s._crx[a],y:s._cry[a],width:s._crw[a],height:s._crh[a],radius:s._cellRadius||0};return null}_hitContext(){if(void 0===this._hitCtx){const t=S.createElement("canvas");this._hitCtx=(null==t?void 0:t.getContext)&&t.getContext("2d")||null}return this._hitCtx}restyle(t){this._compositor.paint(this._g.displayList(),this._g,t||null)}toBitmap(){const t=this._compositor.toDataURL();if(!t)return null;const e=this.w.globals,s=this.w.config.chart,i=this._compositor._pad;return{dataURL:t,x:(e.translateX||0)+(s.offsetX||0)-i.left,y:(e.translateY||0)+(s.offsetY||0)-i.top,w:(this.w.layout.gridWidth||0)+i.left+i.right,h:(this.w.layout.gridHeight||0)+i.top+i.bottom}}destroy(){this._compositor.destroy(),this._hitCtx=void 0}}c.registerRenderer("canvas",(t,e)=>new O(t,e)),t.default=c,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).ApexRendererCanvas={})});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* ApexCharts v8.
|
|
2
|
+
* ApexCharts v8.2.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;
|
package/dist/features/stats.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* ApexCharts v8.
|
|
2
|
+
* ApexCharts v8.2.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
|
+
* ApexCharts v8.2.0
|
|
3
3
|
* (c) 2018-2026 ApexCharts
|
|
4
4
|
*/
|
|
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 y="APEX-",m=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 x=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(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>=m)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}};x.publicKeysSpki=["MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQIaK9UMD6n0oR/FIy8QdL0uSzKMQlf1BB+tOrji4/WuHsyRNxeDhVykoSsNURozMi1xhmqWvBH1L//xIfugTPA=="],x.verdicts=new Map,x.verifying=new Set,x.warnedUnverifiable=!1,x.epoch=0;let w=x;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=w.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,w.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;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=w.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=w.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||e._wmWrapObserver)return;const n=new MutationObserver(()=>{A.node(t)||R(e,t)});n.observe(t,{childList:!0}),e._wmWrapObserver=n}(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=w.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!==w.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)})}w.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 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=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 B="apex";function W(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: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 W(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=`${B}=${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=>{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(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]===B);return i&&null!=i[1]?z.decode(decodeURIComponent(i[1])):null}catch(e){return null}}}d.default.registerFeatures({perspectives:z}),d.default.perspectives={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});
|
|
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.
|
|
41
|
+
* ApexCharts v8.2.0
|
|
42
42
|
* (c) 2018-2026 ApexCharts
|
|
43
43
|
*/
|
|
44
44
|
import * as _core from "apexcharts/core";
|
|
@@ -326,12 +326,15 @@ function reinstateWatermark(ctx, elWrap) {
|
|
|
326
326
|
}
|
|
327
327
|
function addWatermark(ctx, elWrap) {
|
|
328
328
|
reinstateWatermark(ctx, elWrap);
|
|
329
|
-
if (typeof MutationObserver === "undefined"
|
|
329
|
+
if (typeof MutationObserver === "undefined") return;
|
|
330
|
+
if (ctx._wmWrapObserver && ctx._wmObservedWrap === elWrap) return;
|
|
331
|
+
if (ctx._wmWrapObserver) ctx._wmWrapObserver.disconnect();
|
|
330
332
|
const wrapObs = new MutationObserver(() => {
|
|
331
333
|
if (!C.node(elWrap)) reinstateWatermark(ctx, elWrap);
|
|
332
334
|
});
|
|
333
335
|
wrapObs.observe(elWrap, { childList: true });
|
|
334
336
|
ctx._wmWrapObserver = wrapObs;
|
|
337
|
+
ctx._wmObservedWrap = elWrap;
|
|
335
338
|
}
|
|
336
339
|
function teardownWatermark(ctx, elWrap) {
|
|
337
340
|
if (ctx._wmWrapObserver) {
|
|
@@ -343,6 +346,7 @@ function teardownWatermark(ctx, elWrap) {
|
|
|
343
346
|
ctx._wmNodeObserver = null;
|
|
344
347
|
}
|
|
345
348
|
ctx._wmObservedNode = null;
|
|
349
|
+
ctx._wmObservedWrap = null;
|
|
346
350
|
const wrap = elWrap || ctx.w && ctx.w.dom && ctx.w.dom.elWrap;
|
|
347
351
|
if (wrap) C.remove(wrap, { manage: false });
|
|
348
352
|
}
|
|
@@ -1042,19 +1046,24 @@ class Perspectives {
|
|
|
1042
1046
|
}
|
|
1043
1047
|
}
|
|
1044
1048
|
}
|
|
1045
|
-
_core__default.registerFeatures({
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1049
|
+
_core__default.registerFeatures({
|
|
1050
|
+
perspectives: Perspectives,
|
|
1051
|
+
perspectivesStatics: (
|
|
1052
|
+
/** @type {any} */
|
|
1053
|
+
{
|
|
1054
|
+
/** @param {string} str */
|
|
1055
|
+
decode: (str) => {
|
|
1056
|
+
markPerspectivesTokenDecoded();
|
|
1057
|
+
return Perspectives.decode(str);
|
|
1058
|
+
},
|
|
1059
|
+
/** @param {string} [href] */
|
|
1060
|
+
fromURL: (href) => {
|
|
1061
|
+
markPerspectivesTokenDecoded();
|
|
1062
|
+
return Perspectives.fromURL(href);
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
)
|
|
1066
|
+
});
|
|
1058
1067
|
_core__default.registerFeatures({ storyboard: Storyboard });
|
|
1059
1068
|
export {
|
|
1060
1069
|
default2 as default
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* ApexCharts v8.
|
|
2
|
+
* ApexCharts v8.2.0
|
|
3
3
|
* (c) 2018-2026 ApexCharts
|
|
4
4
|
*/
|
|
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 y(e,...t){f.error(e,...t)}function m(e){f.warn(e)}const v="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||y(`[Apex] ${i.message}`)):m(`[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(v))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(v))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,m(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),y(`[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;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||e._wmWrapObserver)return;const n=new MutationObserver(()=>{S.node(t)||R(e,t)});n.observe(t,{childList:!0}),e._wmWrapObserver=n}(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 N(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 U(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 B(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 W="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:N(e,t),drill:c&&c.depth>0?{path:c.path.slice()}:null,measure:U(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=`${W}=${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=>{B(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]===W);return i&&null!=i[1]?q.decode(decodeURIComponent(i[1])):null}catch(e){return null}}}d.registerFeatures({perspectives:q}),d.perspectives={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={})});
|
|
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
|
+
* ApexCharts v8.2.0
|
|
3
3
|
* (c) 2018-2026 ApexCharts
|
|
4
4
|
*/
|
|
5
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;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* ApexCharts v8.
|
|
2
|
+
* ApexCharts v8.2.0
|
|
3
3
|
* (c) 2018-2026 ApexCharts
|
|
4
4
|
*/
|
|
5
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={})});
|