pgo-ui 1.1.76 → 1.1.78
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/dist/Radio-D6WUhopB.js +4 -0
- package/dist/{index-CtokWK8G.js → index-rKwG79VJ.js} +3 -3
- package/dist/index.es.js +1 -1
- package/dist/index.umd.js +1 -1
- package/package.json +1 -1
- package/src/main.js +2 -1
- package/src/pgo-components/pages/Custom.vue +26 -0
- package/src/pgo-components/pages/ListView.vue +1 -1
- package/dist/Radio-CLA9Dy94.js +0 -4
package/dist/index.umd.js
CHANGED
|
@@ -984,7 +984,7 @@ rect.legend-mouseover-inactive,
|
|
|
984
984
|
`,TB=`<svg fill="#6E8192" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
|
985
985
|
<path d="M0 0h24v24H0z" fill="none"/>
|
|
986
986
|
<path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z"/>
|
|
987
|
-
</svg>`,PB='<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>';class pp{constructor(e,t){this.w=e,this.ctx=t,this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=e.globals.minX,this.maxX=e.globals.maxX,this.elZoom=null,this.elZoomIn=null,this.elZoomOut=null,this.elPan=null,this.elSelection=null,this.elZoomReset=null,this.elMenuIcon=null,this.elMenu=null,this.elMenuItems=[],this.t=null}createToolbar(){const e=this.w,t=()=>Pe.createElementNS("http://www.w3.org/1999/xhtml","div"),r=t();if(r.setAttribute("class","apexcharts-toolbar"),r.style.top=e.config.chart.toolbar.offsetY+"px",r.style.right=-e.config.chart.toolbar.offsetX+3+"px",e.dom.elWrap.appendChild(r),this.elZoom=t(),this.elZoomIn=t(),this.elZoomOut=t(),this.elPan=t(),this.elSelection=t(),this.elZoomReset=t(),this.elMenuIcon=t(),this.elMenu=t(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(let l=0;l<this.t.customIcons.length;l++)this.elCustomIcons.push(t());const o=[],s=(l,c,h)=>{const d=l.toLowerCase();this.t[d]&&e.config.chart.zoom.enabled&&o.push({el:c,icon:typeof this.t[d]=="string"?this.t[d]:h,title:this.localeValues[l],class:`apexcharts-${d}-icon`})};s("zoomIn",this.elZoomIn,LB),s("zoomOut",this.elZoomOut,IB);const i=l=>{this.t[l]&&e.config.chart[l].enabled&&o.push({el:l==="zoom"?this.elZoom:this.elSelection,icon:typeof this.t[l]=="string"?this.t[l]:l==="zoom"?NB:TB,title:this.localeValues[l==="zoom"?"selectionZoom":"selection"],class:`apexcharts-${l}-icon`})};i("zoom"),i("selection"),this.t.pan&&e.config.chart.zoom.enabled&&o.push({el:this.elPan,icon:typeof this.t.pan=="string"?this.t.pan:VB,title:this.localeValues.pan,class:"apexcharts-pan-icon"}),s("reset",this.elZoomReset,DB),this.t.download&&o.push({el:this.elMenuIcon,icon:typeof this.t.download=="string"?this.t.download:PB,title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(let l=0;l<this.elCustomIcons.length;l++)o.push({el:this.elCustomIcons[l],icon:this.t.customIcons[l].icon,title:this.t.customIcons[l].title,index:this.t.customIcons[l].index,class:"apexcharts-toolbar-custom-icon "+this.t.customIcons[l].class});o.forEach((l,c)=>{l.index&&U.moveIndexInArray(o,c,l.index)});for(let l=0;l<o.length;l++)ce.setAttrs(o[l].el,{class:o[l].class,title:o[l].title,tabindex:"0",role:"button","aria-label":o[l].title}),o[l].el.innerHTML=o[l].icon,r.appendChild(o[l].el);this.elZoom.parentNode&&this.elZoom.setAttribute("aria-pressed",String(!!e.interact.zoomEnabled)),this.elSelection.parentNode&&this.elSelection.setAttribute("aria-pressed",String(!!e.interact.selectionEnabled)),this.elPan.parentNode&&this.elPan.setAttribute("aria-pressed",String(!!e.interact.panEnabled)),this.elMenuIcon.parentNode&&(this.elMenuIcon.setAttribute("aria-haspopup","true"),this.elMenuIcon.setAttribute("aria-expanded","false")),this._createHamburgerMenu(r),e.interact.zoomEnabled?this.elZoom.classList.add(this.selectedClass):e.interact.panEnabled?this.elPan.classList.add(this.selectedClass):e.interact.selectionEnabled&&this.elSelection.classList.add(this.selectedClass),this.addToolbarEventListeners()}_createHamburgerMenu(e){this.elMenuItems=[],e.appendChild(this.elMenu),ce.setAttrs(this.elMenu,{class:"apexcharts-menu",role:"menu"});const t=[{name:"exportSVG",title:this.localeValues.exportToSVG},{name:"exportPNG",title:this.localeValues.exportToPNG},{name:"exportCSV",title:this.localeValues.exportToCSV}];for(let r=0;r<t.length;r++)this.elMenuItems.push(Pe.createElementNS("http://www.w3.org/1999/xhtml","div")),this.elMenuItems[r].innerHTML=t[r].title,ce.setAttrs(this.elMenuItems[r],{class:`apexcharts-menu-item ${t[r].name}`,title:t[r].title,role:"menuitem",tabindex:"-1"}),this.elMenu.appendChild(this.elMenuItems[r])}addToolbarEventListeners(){var e,t,r,o,s,i,l,c;(e=this.elZoomReset)==null||e.addEventListener("click",this.handleZoomReset.bind(this)),(t=this.elSelection)==null||t.addEventListener("click",this.toggleZoomSelection.bind(this,"selection")),(r=this.elZoom)==null||r.addEventListener("click",this.toggleZoomSelection.bind(this,"zoom")),(o=this.elZoomIn)==null||o.addEventListener("click",this.handleZoomIn.bind(this)),(s=this.elZoomOut)==null||s.addEventListener("click",this.handleZoomOut.bind(this)),(i=this.elPan)==null||i.addEventListener("click",this.togglePanning.bind(this)),(l=this.elMenuIcon)==null||l.addEventListener("click",this.toggleMenu.bind(this)),this.elMenuItems.forEach(d=>{d.classList.contains("exportSVG")?d.addEventListener("click",this.handleDownload.bind(this,"svg")):d.classList.contains("exportPNG")?d.addEventListener("click",this.handleDownload.bind(this,"png")):d.classList.contains("exportCSV")&&d.addEventListener("click",this.handleDownload.bind(this,"csv"))});for(let d=0;d<this.t.customIcons.length;d++)this.elCustomIcons[d].addEventListener("click",this.t.customIcons[d].click.bind(this,this.ctx,this.ctx.w));[this.elZoomReset,this.elSelection,this.elZoom,this.elZoomIn,this.elZoomOut,this.elPan,this.elMenuIcon,...this.elCustomIcons].forEach(d=>{d.addEventListener("keydown",u=>{if(u.key==="Enter"||u.key===" "){u.preventDefault();const p=d.className;d.click(),requestAnimationFrame(()=>{const f=this.w.dom.baseEl;if(!f)return;const g=p.split(" ").find(x=>x.startsWith("apexcharts-"));if(!g)return;const m=f.querySelector(`.${g}`);m&&m.focus()})}})}),(c=this.elMenuIcon)==null||c.addEventListener("keydown",d=>{var u;(d.key==="ArrowDown"||d.key==="ArrowUp")&&(d.preventDefault(),(u=this.elMenu)!=null&&u.classList.contains("apexcharts-menu-open")||this.toggleMenu(),window.setTimeout(()=>{const p=d.key==="ArrowDown"?0:this.elMenuItems.length-1;this.elMenuItems[p]&&this.elMenuItems[p].focus()},20))}),this.elMenuItems.forEach((d,u)=>{d.addEventListener("keydown",p=>{var f;p.key==="ArrowDown"?(p.preventDefault(),(this.elMenuItems[u+1]||this.elMenuItems[0]).focus()):p.key==="ArrowUp"?(p.preventDefault(),(this.elMenuItems[u-1]||this.elMenuItems[this.elMenuItems.length-1]).focus()):p.key==="Escape"||p.key==="Tab"?(this._closeMenu(),(f=this.elMenuIcon)==null||f.focus(),p.key==="Tab"||p.preventDefault()):(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),d.click())})})}toggleZoomSelection(e){this.ctx.getSyncedCharts().forEach(r=>{r.ctx.toolbar.toggleOtherControls();const o=e==="selection"?r.ctx.toolbar.elSelection:r.ctx.toolbar.elZoom,s=e==="selection"?"selectionEnabled":"zoomEnabled";r.w.globals[s]=!r.w.globals[s],o.classList.contains(r.ctx.toolbar.selectedClass)?o.classList.remove(r.ctx.toolbar.selectedClass):o.classList.add(r.ctx.toolbar.selectedClass),o.setAttribute("aria-pressed",String(r.w.globals[s]))})}getToolbarIconsReference(){const e=this.w;this.elZoom||(this.elZoom=e.dom.baseEl.querySelector(".apexcharts-zoom-icon")),this.elPan||(this.elPan=e.dom.baseEl.querySelector(".apexcharts-pan-icon")),this.elSelection||(this.elSelection=e.dom.baseEl.querySelector(".apexcharts-selection-icon"))}enableZoomPanFromToolbar(e){this.toggleOtherControls(),e==="pan"?this.w.interact.panEnabled=!0:this.w.interact.zoomEnabled=!0;const t=e==="pan"?this.elPan:this.elZoom,r=e==="pan"?this.elZoom:this.elPan;t&&t.classList.add(this.selectedClass),r&&r.classList.remove(this.selectedClass)}togglePanning(){this.ctx.getSyncedCharts().forEach(t=>{t.ctx.toolbar.toggleOtherControls(),t.w.interact.panEnabled=!t.w.interact.panEnabled,t.ctx.toolbar.elPan.classList.contains(t.ctx.toolbar.selectedClass)?t.ctx.toolbar.elPan.classList.remove(t.ctx.toolbar.selectedClass):t.ctx.toolbar.elPan.classList.add(t.ctx.toolbar.selectedClass),t.ctx.toolbar.elPan.setAttribute("aria-pressed",String(t.w.interact.panEnabled))})}toggleOtherControls(){const e=this.w;e.interact.panEnabled=!1,e.interact.zoomEnabled=!1,e.interact.selectionEnabled=!1,this.getToolbarIconsReference(),[this.elPan,this.elSelection,this.elZoom].forEach(r=>{r&&r.classList.remove(this.selectedClass)})}handleZoomIn(){const e=this.w;e.axisFlags.isRangeBar&&(this.minX=e.globals.minY,this.maxX=e.globals.maxY);const t=(this.minX+this.maxX)/2,r=(this.minX+t)/2,o=(this.maxX+t)/2,s=this._getNewMinXMaxX(r,o);e.interact.disableZoomIn||this.zoomUpdateOptions(s.minX,s.maxX)}handleZoomOut(){const e=this.w;if(e.axisFlags.isRangeBar&&(this.minX=e.globals.minY,this.maxX=e.globals.maxY),e.config.xaxis.type==="datetime"&&new Date(this.minX).getUTCFullYear()<1e3)return;const t=(this.minX+this.maxX)/2,r=this.minX-(t-this.minX),o=this.maxX-(t-this.maxX),s=this._getNewMinXMaxX(r,o);e.interact.disableZoomOut||this.zoomUpdateOptions(s.minX,s.maxX)}_getNewMinXMaxX(e,t){const r=this.w.config.xaxis.convertedCatToNumeric;return{minX:r?Math.floor(e):e,maxX:r?Math.floor(t):t}}zoomUpdateOptions(e,t){const r=this.w;if(e===void 0&&t===void 0){this.handleZoomReset();return}if(r.config.xaxis.convertedCatToNumeric&&(e<1&&(e=1,t=r.globals.dataPoints),t-e<2))return;let o={min:e,max:t};const s=this.getBeforeZoomRange(o,void 0);s&&(o=s.xaxis);const i={xaxis:o};if(!r.globals.initialConfig)return;const l=U.clone(r.globals.initialConfig.yaxis);r.config.chart.group||(i.yaxis=l),this.w.interact.zoomed=!0,this.ctx.updateHelpers._updateOptions(i,!1,this.w.config.chart.animations.dynamicAnimation.enabled),this.zoomCallback(o,l)}zoomCallback(e,t){typeof this.ev.zoomed=="function"&&(this.ev.zoomed(this.ctx,{xaxis:e,yaxis:t}),this.ctx.events.fireEvent("zoomed",{xaxis:e,yaxis:t}))}getBeforeZoomRange(e,t){let r=null;return typeof this.ev.beforeZoom=="function"&&(r=this.ev.beforeZoom(this,{xaxis:e,yaxis:t})),r}toggleMenu(){window.setTimeout(()=>{var e,t,r;(e=this.elMenu)!=null&&e.classList.contains("apexcharts-menu-open")?this._closeMenu():((t=this.elMenu)==null||t.classList.add("apexcharts-menu-open"),(r=this.elMenuIcon)==null||r.setAttribute("aria-expanded","true"))},0)}_closeMenu(){var e,t;(e=this.elMenu)==null||e.classList.remove("apexcharts-menu-open"),(t=this.elMenuIcon)==null||t.setAttribute("aria-expanded","false")}handleDownload(e){const t=this.w,r=new up(this.w,this.ctx);switch(e){case"svg":r.exportToSVG();break;case"png":r.exportToPng();break;case"csv":r.exportToCSV({series:t.config.series,columnDelimiter:t.config.chart.toolbar.export.csv.columnDelimiter});break}}handleZoomReset(){this.ctx.getSyncedCharts().forEach(t=>{const r=t.w;if(!r.interact.zoomed)return;if(r.globals.lastXAxis.min=r.globals.initialConfig.xaxis.min,r.globals.lastXAxis.max=r.globals.initialConfig.xaxis.max,t.updateHelpers.revertDefaultAxisMinMax(),typeof r.config.chart.events.beforeResetZoom=="function"){const s=r.config.chart.events.beforeResetZoom(t,r);s&&t.updateHelpers.revertDefaultAxisMinMax(s)}typeof r.config.chart.events.zoomed=="function"&&t.ctx.toolbar.zoomCallback({min:r.config.xaxis.min,max:r.config.xaxis.max});const o=t.ctx.series.emptyCollapsedSeries(U.clone(r.globals.initialSeries));t.updateHelpers._updateSeries(o,r.config.chart.animations.dynamicAnimation.enabled),r.interact.zoomed=!1})}destroy(){this.elZoom=null,this.elZoomIn=null,this.elZoomOut=null,this.elPan=null,this.elSelection=null,this.elZoomReset=null,this.elMenuIcon=null}}class HB extends pp{constructor(e,t){super(e,t),this.w=e,this.ctx=t,this.dragged=!1,this.graphics=new ce(this.w),this.eventList=["mousedown","mouseleave","mousemove","touchstart","touchmove","mouseup","touchend","wheel"],this.clientX=0,this.clientY=0,this.startX=0,this.endX=0,this.dragX=0,this.startY=0,this.endY=0,this.dragY=0,this.moveDirection="none",this.debounceTimer=null,this.debounceDelay=100,this.wheelDelay=400}init({xyRatios:e}){const t=this.w,r=this;this.xyRatios=e,this.zoomRect=this.graphics.drawRect(0,0,0,0),this.selectionRect=this.graphics.drawRect(0,0,0,0),this.gridRect=t.dom.baseEl.querySelector(".apexcharts-grid"),this.constraints=new HA(0,0,t.layout.gridWidth,t.layout.gridHeight),this.zoomRect.node.classList.add("apexcharts-zoom-rect"),this.selectionRect.node.classList.add("apexcharts-selection-rect"),t.dom.Paper.add(this.zoomRect),t.dom.Paper.add(this.selectionRect),t.config.chart.selection.type==="x"?this.slDraggableRect=this.selectionRect.draggable({minX:0,minY:0,maxX:t.layout.gridWidth,maxY:t.layout.gridHeight}).on("dragmove.namespace",this.selectionDragging.bind(this,"dragging")):t.config.chart.selection.type==="y"?this.slDraggableRect=this.selectionRect.draggable({minX:0,maxX:t.layout.gridWidth}).on("dragmove.namespace",this.selectionDragging.bind(this,"dragging")):this.slDraggableRect=this.selectionRect.draggable().on("dragmove.namespace",this.selectionDragging.bind(this,"dragging")),this.preselectedSelection(),this.hoverArea=t.dom.baseEl.querySelector(`${t.globals.chartClass} .apexcharts-svg`),this.hoverArea&&(this.hoverArea.classList.add("apexcharts-zoomable"),this.eventList.forEach(o=>{var s;(s=this.hoverArea)==null||s.addEventListener(o,r.svgMouseEvents.bind(r,e),{capture:!1,passive:!0})}),t.config.chart.zoom.enabled&&t.config.chart.zoom.allowMouseWheelZoom&&this.hoverArea.addEventListener("wheel",r.mouseWheelEvent.bind(r),{capture:!1,passive:!1}))}destroy(){this.slDraggableRect&&(this.slDraggableRect.draggable(!1),this.slDraggableRect.off(),this.selectionRect.off()),this.selectionRect=null,this.zoomRect=null,this.gridRect=null}svgMouseEvents(e,t){var r;const o=this.w,s=this.ctx.toolbar,i=o.interact.zoomEnabled?o.config.chart.zoom.type:o.config.chart.selection.type,l=o.config.chart.toolbar.autoSelected;if(t.shiftKey?(this.shiftWasPressed=!0,s.enableZoomPanFromToolbar(l==="pan"?"zoom":"pan")):this.shiftWasPressed&&(s.enableZoomPanFromToolbar(l),this.shiftWasPressed=!1),!t.target)return;const c=t.target.classList;let h;if(t.target.parentNode&&t.target.parentNode!==null&&(h=t.target.parentNode.classList),!(c.contains("apexcharts-legend-marker")||c.contains("apexcharts-legend-text")||h&&h.contains("apexcharts-toolbar"))){if(this.clientX=t.type==="touchmove"||t.type==="touchstart"?t.touches[0].clientX:t.type==="touchend"?t.changedTouches[0].clientX:t.clientX,this.clientY=t.type==="touchmove"||t.type==="touchstart"?t.touches[0].clientY:t.type==="touchend"?t.changedTouches[0].clientY:t.clientY,t.type==="mousedown"&&t.which===1||t.type==="touchstart"){const u=(r=this.gridRect)==null?void 0:r.getBoundingClientRect();if(!u)return;this.startX=this.clientX-u.left-o.globals.barPadForNumericAxis,this.startY=this.clientY-u.top,this.dragged=!1,this.w.interact.mousedown=!0}(t.type==="mousemove"&&t.which===1||t.type==="touchmove")&&(this.dragged=!0,o.interact.panEnabled?(o.interact.selection=null,this.w.interact.mousedown&&this.panDragging({context:this,zoomtype:i,xyRatios:e})):(this.w.interact.mousedown&&o.interact.zoomEnabled||this.w.interact.mousedown&&o.interact.selectionEnabled)&&(this.selection=this.selectionDrawing({context:this,zoomtype:i}))),(t.type==="mouseup"||t.type==="touchend"||t.type==="mouseleave")&&this.handleMouseUp({zoomtype:i}),this.makeSelectionRectDraggable()}}handleMouseUp({zoomtype:e,isResized:t}){var r;const o=this.w,s=(r=this.gridRect)==null?void 0:r.getBoundingClientRect();s&&(this.w.interact.mousedown||t)&&(this.endX=this.clientX-s.left-o.globals.barPadForNumericAxis,this.endY=this.clientY-s.top,this.dragX=Math.abs(this.endX-this.startX),this.dragY=Math.abs(this.endY-this.startY),(o.interact.zoomEnabled||o.interact.selectionEnabled)&&this.selectionDrawn({context:this,zoomtype:e})),o.interact.zoomEnabled&&this.hideSelectionRect(this.selectionRect),this.dragged=!1,this.w.interact.mousedown=!1}mouseWheelEvent(e){const t=this.w;e.preventDefault();const r=Date.now();r-t.interact.lastWheelExecution>this.wheelDelay&&(this.executeMouseWheelZoom(e),t.interact.lastWheelExecution=r),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{r-t.interact.lastWheelExecution>this.wheelDelay&&(this.executeMouseWheelZoom(e),t.interact.lastWheelExecution=r)},this.debounceDelay)}executeMouseWheelZoom(e){var t;const r=this.w;this.minX=r.axisFlags.isRangeBar?r.globals.minY:r.globals.minX,this.maxX=r.axisFlags.isRangeBar?r.globals.maxY:r.globals.maxX;const o=(t=this.gridRect)==null?void 0:t.getBoundingClientRect();if(!o)return;const s=(e.clientX-o.left)/o.width,i=this.minX,l=this.maxX,c=l-i,h=.5,d=1.5;let u,p,f;if(e.deltaY<0){u=h*c;const m=i+s*c;p=m-u/2,f=m+u/2}else u=d*c,p=i-u/2,f=l+u/2;if(!r.axisFlags.isRangeBar){p=Math.max(p,r.globals.initialMinX),f=Math.min(f,r.globals.initialMaxX);const m=(r.globals.initialMaxX-r.globals.initialMinX)*.01;if(f-p<m){const x=(p+f)/2;p=x-m/2,f=x+m/2}}const g=this._getNewMinXMaxX(p,f);!isNaN(g.minX)&&!isNaN(g.maxX)&&this.zoomUpdateOptions(g.minX,g.maxX)}makeSelectionRectDraggable(){const e=this.w;if(!this.selectionRect)return;const t=this.selectionRect.node.getBoundingClientRect();t.width>0&&t.height>0&&(this.selectionRect.select(!1).resize(!1),this.selectionRect.select({createRot:()=>{},updateRot:()=>{},createHandle:(r,o,s,i,l)=>l==="l"||l==="r"?r.circle(8).css({"stroke-width":1,stroke:"#333",fill:"#fff"}):r.circle(0),updateHandle:(r,o)=>r.center(o[0],o[1])}).resize().on("resize",()=>{const r=e.interact.zoomEnabled?e.config.chart.zoom.type:e.config.chart.selection.type;this.handleMouseUp({zoomtype:r,isResized:!0})}))}preselectedSelection(){const e=this.w,t=this.xyRatios;if(!e.interact.zoomEnabled){if(typeof e.interact.selection<"u"&&e.interact.selection!==null)this.drawSelectionRect(je(Ve({},e.interact.selection),{translateX:e.layout.translateX,translateY:e.layout.translateY}));else if(e.config.chart.selection.xaxis.min!==void 0&&e.config.chart.selection.xaxis.max!==void 0){let r=(e.config.chart.selection.xaxis.min-e.globals.minX)/t.xRatio,o=e.layout.gridWidth-(e.globals.maxX-e.config.chart.selection.xaxis.max)/t.xRatio-r;e.axisFlags.isRangeBar&&(r=(e.config.chart.selection.xaxis.min-e.globals.yAxisScale[0].niceMin)/t.invertedYRatio,o=(e.config.chart.selection.xaxis.max-e.config.chart.selection.xaxis.min)/t.invertedYRatio);const s={x:r,y:0,width:o,height:e.layout.gridHeight,translateX:e.layout.translateX,translateY:e.layout.translateY,selectionEnabled:!0};this.drawSelectionRect(s),this.makeSelectionRectDraggable(),typeof e.config.chart.events.selection=="function"&&e.config.chart.events.selection(this.ctx,{xaxis:{min:e.config.chart.selection.xaxis.min,max:e.config.chart.selection.xaxis.max},yaxis:{}})}}}drawSelectionRect({x:e,y:t,width:r,height:o,translateX:s=0,translateY:i=0}){const l=this.w,c=this.zoomRect,h=this.selectionRect;if(this.dragged||l.interact.selection!==null){const d={transform:"translate("+s+", "+i+")"};l.interact.zoomEnabled&&this.dragged&&(r<0&&(r=1),c.attr({x:e,y:t,width:r,height:o,fill:l.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":l.config.chart.zoom.zoomedArea.fill.opacity,stroke:l.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":l.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":l.config.chart.zoom.zoomedArea.stroke.opacity}),ce.setAttrs(c.node,d)),l.interact.selectionEnabled&&(h.attr({x:e,y:t,width:r>0?r:0,height:o>0?o:0,fill:l.config.chart.selection.fill.color,"fill-opacity":l.config.chart.selection.fill.opacity,stroke:l.config.chart.selection.stroke.color,"stroke-width":l.config.chart.selection.stroke.width,"stroke-dasharray":l.config.chart.selection.stroke.dashArray,"stroke-opacity":l.config.chart.selection.stroke.opacity}),ce.setAttrs(h.node,d))}}hideSelectionRect(e){e&&e.attr({x:0,y:0,width:0,height:0})}selectionDrawing({context:e,zoomtype:t}){var r;const o=this.w,s=e,i=(r=this.gridRect)==null?void 0:r.getBoundingClientRect();if(!i)return;const l=s.startX-1,c=s.startY;let h=!1,d=!1;const u=s.clientX-i.left-o.globals.barPadForNumericAxis,p=s.clientY-i.top;let f=u-l,g=p-c,m={translateX:o.layout.translateX,translateY:o.layout.translateY};return Math.abs(f+l)>o.layout.gridWidth?f=o.layout.gridWidth-l:u<0&&(f=l),l>u&&(h=!0,f=Math.abs(f)),c>p&&(d=!0,g=Math.abs(g)),t==="x"?m={x:h?l-f:l,y:0,width:f,height:o.layout.gridHeight}:t==="y"?m={x:0,y:d?c-g:c,width:o.layout.gridWidth,height:g}:m={x:h?l-f:l,y:d?c-g:c,width:f,height:g},m=je(Ve({},m),{translateX:o.layout.translateX,translateY:o.layout.translateY}),s.drawSelectionRect(m),s.selectionDragging("resizing"),m}selectionDragging(e,t){var r;const o=this.w;if(!t)return;t.preventDefault();const{handler:s,box:i}=t.detail,l=this.constraints;let{x:c,y:h}=i;c<l.x&&(c=l.x),h<l.y&&(h=l.y),i.x2>l.x2&&(c=l.x2-i.w),i.y2>l.y2&&(h=l.y2-i.h),s.move(c,h);const d=this.xyRatios,u=this.selectionRect;let p=0;e==="resizing"&&(p=30);const f=m=>parseFloat(u.node.getAttribute(m)),g={x:f("x"),y:f("y"),width:f("width"),height:f("height")};o.interact.selection=g,typeof o.config.chart.events.selection=="function"&&o.interact.selectionEnabled&&(clearTimeout((r=this.w.globals.selectionResizeTimer)!=null?r:void 0),this.w.globals.selectionResizeTimer=window.setTimeout(()=>{var m;const x=(m=this.gridRect)==null?void 0:m.getBoundingClientRect();if(!x)return;const w=u.node.getBoundingClientRect();let b,y,k,v;if(o.axisFlags.isRangeBar)b=o.globals.yAxisScale[0].niceMin+(w.left-x.left)*d.invertedYRatio,y=o.globals.yAxisScale[0].niceMin+(w.right-x.left)*d.invertedYRatio,k=0,v=1;else{if(!o.globals.xAxisScale)return;b=o.globals.xAxisScale.niceMin+(w.left-x.left)*d.xRatio,y=o.globals.xAxisScale.niceMin+(w.right-x.left)*d.xRatio,k=o.globals.yAxisScale[0].niceMin+(x.bottom-w.bottom)*d.yRatio[0],v=o.globals.yAxisScale[0].niceMax-(w.top-x.top)*d.yRatio[0]}const C={xaxis:{min:b,max:y},yaxis:{min:k,max:v}};o.config.chart.events.selection(this.ctx,C),o.config.chart.brush.enabled&&o.config.chart.events.brushScrolled!==void 0&&o.config.chart.events.brushScrolled(this.ctx,C)},p))}selectionDrawn({context:e,zoomtype:t}){var r,o;const s=this.w,i=e,l=this.xyRatios,c=this.ctx.toolbar,h=s.interact.zoomEnabled?i.zoomRect.node.getBoundingClientRect():i.selectionRect.node.getBoundingClientRect(),d=i.gridRect.getBoundingClientRect(),u=h.left-d.left-s.globals.barPadForNumericAxis,p=h.right-d.left-s.globals.barPadForNumericAxis,f=h.top-d.top,g=h.bottom-d.top;let m,x;if(s.axisFlags.isRangeBar)m=s.globals.yAxisScale[0].niceMin+u*l.invertedYRatio,x=s.globals.yAxisScale[0].niceMin+p*l.invertedYRatio;else{const y=(o=(r=s.globals.xAxisScale)==null?void 0:r.niceMin)!=null?o:0;m=y+u*l.xRatio,x=y+p*l.xRatio}const w=[],b=[];if(s.config.yaxis.forEach((y,k)=>{const v=s.globals.seriesYAxisMap[k][0],C=s.globals.yAxisScale[k].niceMax-l.yRatio[v]*f,A=s.globals.yAxisScale[k].niceMax-l.yRatio[v]*g;w.push(C),b.push(A)}),i.dragged&&(i.dragX>10||i.dragY>10)&&m!==x){if(s.interact.zoomEnabled){if(!s.globals.initialConfig)return;let y=U.clone(s.globals.initialConfig.yaxis),k=U.clone(s.globals.initialConfig.xaxis);if(s.interact.zoomed=!0,s.config.xaxis.convertedCatToNumeric&&(m=Math.floor(m),x=Math.floor(x),m<1&&(m=1,x=s.globals.dataPoints),x-m<2&&(x=m+1)),(t==="xy"||t==="x")&&(k={min:m,max:x}),(t==="xy"||t==="y")&&y.forEach((C,A)=>{y[A].min=b[A],y[A].max=w[A]}),c){const C=c.getBeforeZoomRange(k,y);C&&(k=C.xaxis?C.xaxis:k,y=C.yaxis?C.yaxis:y)}const v={xaxis:k};s.config.chart.group||(v.yaxis=y),i.ctx.updateHelpers._updateOptions(v,!1,i.w.config.chart.animations.dynamicAnimation.enabled),typeof s.config.chart.events.zoomed=="function"&&c.zoomCallback(k,y)}else if(s.interact.selectionEnabled){let y=null,k=null;if(k={min:m,max:x},t==="xy"||t==="y"){const v=U.clone(s.config.yaxis);y=v,v.forEach((C,A)=>{v[A].min=b[A],v[A].max=w[A]})}s.interact.selection=i.selection,typeof s.config.chart.events.selection=="function"&&s.config.chart.events.selection(i.ctx,{xaxis:k,yaxis:y})}}}panDragging({context:e}){var t;const r=this.w,o=e;if(typeof r.interact.lastClientPosition.x<"u"){const l=r.interact.lastClientPosition.x-o.clientX,c=((t=r.interact.lastClientPosition.y)!=null?t:0)-o.clientY;Math.abs(l)>Math.abs(c)&&l>0?this.moveDirection="left":Math.abs(l)>Math.abs(c)&&l<0?this.moveDirection="right":Math.abs(c)>Math.abs(l)&&c>0?this.moveDirection="up":Math.abs(c)>Math.abs(l)&&c<0&&(this.moveDirection="down")}r.interact.lastClientPosition={x:o.clientX,y:o.clientY};const s=r.axisFlags.isRangeBar?r.globals.minY:r.globals.minX,i=r.axisFlags.isRangeBar?r.globals.maxY:r.globals.maxX;o.panScrolled(s,i)}panScrolled(e,t){const r=this.w,o=this.xyRatios;if(!r.globals.initialConfig)return;const s=U.clone(r.globals.initialConfig.yaxis);let i=o.xRatio,l=r.globals.minX,c=r.globals.maxX;r.axisFlags.isRangeBar&&(i=o.invertedYRatio,l=r.globals.minY,c=r.globals.maxY),this.moveDirection==="left"?(e=l+r.layout.gridWidth/15*i,t=c+r.layout.gridWidth/15*i):this.moveDirection==="right"&&(e=l-r.layout.gridWidth/15*i,t=c-r.layout.gridWidth/15*i),r.axisFlags.isRangeBar||(e<r.globals.initialMinX||t>r.globals.initialMaxX)&&(e=l,t=c);const d={xaxis:{min:e,max:t}};r.config.chart.group||(d.yaxis=s),this.updateScrolledChart(d,e,t)}updateScrolledChart(e,t,r){const o=this.w;if(this.ctx.updateHelpers._updateOptions(e,!1,!1),typeof o.config.chart.events.scrolled=="function"){const s={xaxis:{min:t,max:r}};o.config.chart.events.scrolled(this.ctx,s),this.ctx.events.fireEvent("scrolled",s)}}}ur.registerFeatures({toolbar:pp,zoomPanSelection:HB});let nl=class{constructor(e){this.w=e.w,this.annoCtx=e}setOrientations(e,t=null){var r,o;const s=this.w;if(e.label.orientation==="vertical"){const i=t!==null?t:0,l=s.dom.baseEl.querySelector(`.apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='${i}']`);if(l!==null){const c=l.getBBox();l.setAttribute("x",String(parseFloat((r=l.getAttribute("x"))!=null?r:"0")-c.height+4));const h=e.label.position==="top"?c.width:-c.width;l.setAttribute("y",String(parseFloat((o=l.getAttribute("y"))!=null?o:"0")+h));const{x:d,y:u}=this.annoCtx.graphics.rotateAroundCenter(l);l.setAttribute("transform",`rotate(-90 ${d} ${u})`)}}}addBackgroundToAnno(e,t){const r=this.w;if(!e||!t.label.text||!String(t.label.text).trim())return null;const o=r.dom.baseEl.querySelector(".apexcharts-grid");if(!o)return null;const s=o.getBoundingClientRect(),i=o.getBBox(),l=s.width/i.width||1,c=e.getBoundingClientRect();let{left:h,right:d,top:u,bottom:p}=t.label.style.padding;t.label.orientation==="vertical"&&([u,p,h,d]=[h,d,u,p]);const f=(c.left-s.left)/l-h,g=(c.top-s.top)/l-u,m=this.annoCtx.graphics.drawRect(f-r.globals.barPadForNumericAxis,g,c.width/l+h+d,c.height/l+u+p,t.label.borderRadius,t.label.style.background,1,t.label.borderWidth,t.label.borderColor,0);return t.id&&m.node.classList.add(t.id),m}annotationsBackground(){const e=this.w,t=(r,o,s)=>{const i=e.dom.baseEl.querySelector(`.apexcharts-${s}-annotations .apexcharts-${s}-annotation-label[rel='${o}']`);if(i){const l=i.parentNode,c=this.addBackgroundToAnno(i,r);c&&(l?.insertBefore(c.node,i),r.label.mouseEnter&&c.node.addEventListener("mouseenter",r.label.mouseEnter.bind(this,r)),r.label.mouseLeave&&c.node.addEventListener("mouseleave",r.label.mouseLeave.bind(this,r)),r.label.click&&c.node.addEventListener("click",r.label.click.bind(this,r)))}};e.config.annotations.xaxis.forEach((r,o)=>t(r,o,"xaxis")),e.config.annotations.yaxis.forEach((r,o)=>t(r,o,"yaxis")),e.config.annotations.points.forEach((r,o)=>t(r,o,"point"))}getY1Y2(e,t){var r,o;const s=this.w,i=e==="y1"?t.y:t.y2;let l,c=!1;if(this.annoCtx.invertAxis){const h=s.config.xaxis.convertedCatToNumeric?s.labelData.categoryLabels:s.labelData.labels,d=h.indexOf(i),u=s.dom.baseEl.querySelector(`.apexcharts-yaxis-texts-g text:nth-child(${d+1})`);l=u?parseFloat((r=u.getAttribute("y"))!=null?r:"0"):(s.layout.gridHeight/h.length-1)*(d+1)-s.globals.barHeight,t.seriesIndex!==void 0&&s.globals.barHeight&&(l-=s.globals.barHeight/2*(s.seriesData.series.length-1)-s.globals.barHeight*t.seriesIndex)}else{const h=s.globals.seriesYAxisMap[t.yAxisIndex][0],d=s.config.yaxis[t.yAxisIndex].logarithmic?new Nt(this.w).getLogVal(s.config.yaxis[t.yAxisIndex].logBase,i,h)/s.globals.yLogRatio[h]:(i-s.globals.minYArr[h])/(s.globals.yRange[h]/s.layout.gridHeight);l=s.layout.gridHeight-Math.min(Math.max(d,0),s.layout.gridHeight),c=d>s.layout.gridHeight||d<0,t.marker&&(t.y===void 0||t.y===null)&&(l=0),(o=s.config.yaxis[t.yAxisIndex])!=null&&o.reversed&&(l=d)}return typeof i=="string"&&i.includes("px")&&(l=parseFloat(i)),{yP:l,clipped:c}}getX1X2(e,t){const r=this.w,o=e==="x1"?t.x:t.x2,s=this.annoCtx.invertAxis?r.globals.minY:r.globals.minX,i=this.annoCtx.invertAxis?r.globals.maxY:r.globals.maxX,l=this.annoCtx.invertAxis?r.globals.yRange[0]:r.globals.xRange;let c=!1,h=this.annoCtx.inversedReversedAxis?(i-o)/(l/r.layout.gridWidth):(o-s)/(l/r.layout.gridWidth);return(r.config.xaxis.type==="category"||r.config.xaxis.convertedCatToNumeric)&&!this.annoCtx.invertAxis&&!r.axisFlags.dataFormatXNumeric&&(r.config.chart.sparkline.enabled||(h=this.getStringX(o))),typeof o=="string"&&o.includes("px")&&(h=parseFloat(o)),o==null&&t.marker&&(h=r.layout.gridWidth),t.seriesIndex!==void 0&&r.globals.barWidth&&!this.annoCtx.invertAxis&&(h-=r.globals.barWidth/2*(r.seriesData.series.length-1)-r.globals.barWidth*t.seriesIndex),typeof h!="number"&&(h=0,c=!0),parseFloat(h.toFixed(10))>parseFloat(r.layout.gridWidth.toFixed(10))?(h=r.layout.gridWidth,c=!0):h<0&&(h=0,c=!0),{x:h,clipped:c}}getStringX(e){var t;const r=this.w;let o=e;if(r.config.xaxis.convertedCatToNumeric&&r.labelData.categoryLabels.length){const l=String(e);e=r.labelData.categoryLabels.findIndex(c=>String(c)===l)+1}const s=r.labelData.labels.map(l=>Array.isArray(l)?l.join(" "):l).indexOf(e),i=r.dom.baseEl.querySelector(`.apexcharts-xaxis-texts-g text:nth-child(${s+1})`);return i&&(o=parseFloat((t=i.getAttribute("x"))!=null?t:"0")),o}};class RB{constructor(e){this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new nl(this.annoCtx)}addXaxisAnnotation(e,t,r){const o=this.w,s=this.helpers.getX1X2("x1",e);let i=s.x;const l=s.clipped;let c=!0,h;const d=e.label.text,u=e.strokeDashArray;if(U.isNumber(i)){if(e.x2===null||typeof e.x2>"u"){if(!l){const p=this.annoCtx.graphics.drawLine(i+e.offsetX,0+e.offsetY,i+e.offsetX,o.layout.gridHeight+e.offsetY,e.borderColor,u,e.borderWidth);t.appendChild(p.node),e.id&&p.node.classList.add(e.id)}}else{const p=this.helpers.getX1X2("x2",e);if(h=p.x,c=p.clipped,h<i){const g=i;i=h,h=g}const f=this.annoCtx.graphics.drawRect(i+e.offsetX,0+e.offsetY,h-i,o.layout.gridHeight+e.offsetY,0,e.fillColor,e.opacity,1,e.borderColor,u);f.node.classList.add("apexcharts-annotation-rect"),f.attr("clip-path",`url(#gridRectMask${o.globals.cuid})`),t.appendChild(f.node),e.id&&f.node.classList.add(e.id)}if(!(l&&c)){const p=this.annoCtx.graphics.getTextRects(d,e.label.style.fontSize),f=e.label.position==="top"?4:e.label.position==="center"?o.layout.gridHeight/2+(e.label.orientation==="vertical"?p.width/2:0):o.layout.gridHeight,g=this.annoCtx.graphics.drawText({x:i+e.label.offsetX,y:f+e.label.offsetY-(e.label.orientation==="vertical"?e.label.position==="top"?p.width/2-12:-p.width/2:0),text:d,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:`apexcharts-xaxis-annotation-label ${e.label.style.cssClass} ${e.id?e.id:""}`});g.attr({rel:r}),t.appendChild(g.node),this.annoCtx.helpers.setOrientations(e,r)}}}drawXAxisAnnotations(){const e=this.w,t=this.annoCtx.graphics.group({class:"apexcharts-xaxis-annotations"});return e.config.annotations.xaxis.map((r,o)=>{this.addXaxisAnnotation(r,t.node,o)}),t}}class OB{constructor(e){this.w=e.w,this.annoCtx=e,this.helpers=new nl(this.annoCtx),this.axesUtils=new Rr(this.annoCtx.w,{theme:this.annoCtx.theme,timeScale:this.annoCtx.timeScale})}addYaxisAnnotation(e,t,r){const o=this.w,s=e.strokeDashArray;let i=this.helpers.getY1Y2("y1",e),l=i.yP;const c=i.clipped;let h,d=!0,u=!1;const p=e.label.text;if(e.y2===null||typeof e.y2>"u"){if(!c){u=!0;const f=this.annoCtx.graphics.drawLine(0+e.offsetX,l+e.offsetY,this._getYAxisAnnotationWidth(e),l+e.offsetY,e.borderColor,s,e.borderWidth);t.appendChild(f.node),e.id&&f.node.classList.add(e.id)}}else{if(i=this.helpers.getY1Y2("y2",e),h=i.yP,d=i.clipped,h>l){const f=l;l=h,h=f}if(!(c&&d)){u=!0;const f=this.annoCtx.graphics.drawRect(0+e.offsetX,h+e.offsetY,this._getYAxisAnnotationWidth(e),l-h,0,e.fillColor,e.opacity,1,e.borderColor,s);f.node.classList.add("apexcharts-annotation-rect"),f.attr("clip-path",`url(#gridRectMask${o.globals.cuid})`),t.appendChild(f.node),e.id&&f.node.classList.add(e.id)}}if(u){const f=e.label.position==="right"?o.layout.gridWidth:e.label.position==="center"?o.layout.gridWidth/2:0,g=this.annoCtx.graphics.drawText({x:f+e.label.offsetX,y:(h??l)+e.label.offsetY-3,text:p,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:`apexcharts-yaxis-annotation-label ${e.label.style.cssClass} ${e.id?e.id:""}`});g.attr({rel:r}),t.appendChild(g.node)}}_getYAxisAnnotationWidth(e){const t=this.w;let r=t.layout.gridWidth;return e.width.indexOf("%")>-1?r=t.layout.gridWidth*parseInt(e.width,10)/100:r=parseInt(e.width,10),r+e.offsetX}drawYAxisAnnotations(){const e=this.w,t=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.forEach((r,o)=>{r.yAxisIndex=this.axesUtils.translateYAxisIndex(r.yAxisIndex),this.axesUtils.isYAxisHidden(r.yAxisIndex)&&this.axesUtils.yAxisAllSeriesCollapsed(r.yAxisIndex)||this.addYaxisAnnotation(r,t.node,o)}),t}}class zB{constructor(e){this.w=e.w,this.annoCtx=e,this.helpers=new nl(this.annoCtx)}addPointAnnotation(e,t,r){if(this.w.globals.collapsedSeriesIndices.indexOf(e.seriesIndex)>-1)return;const s=this.helpers.getX1X2("x1",e),i=s.x,l=s.clipped,c=this.helpers.getY1Y2("y1",e),h=c.yP,d=c.clipped;if(U.isNumber(i)&&!(d||l)){const u={pSize:e.marker.size,pointStrokeWidth:e.marker.strokeWidth,pointFillColor:e.marker.fillColor,pointStrokeColor:e.marker.strokeColor,shape:e.marker.shape,pRadius:e.marker.radius,class:`apexcharts-point-annotation-marker ${e.marker.cssClass} ${e.id?e.id:""}`};let p=this.annoCtx.graphics.drawMarker(i+e.marker.offsetX,h+e.marker.offsetY,u);t.appendChild(p.node);const f=e.label.text?e.label.text:"",g=this.annoCtx.graphics.drawText({x:i+e.label.offsetX,y:h+e.label.offsetY-e.marker.size-parseFloat(e.label.style.fontSize)/1.6,text:f,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:`apexcharts-point-annotation-label ${e.label.style.cssClass} ${e.id?e.id:""}`});if(g.attr({rel:r}),t.appendChild(g.node),e.customSVG.SVG){const m=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+e.customSVG.cssClass});m.attr({transform:`translate(${i+e.customSVG.offsetX}, ${h+e.customSVG.offsetY})`}),m.node.innerHTML=e.customSVG.SVG,t.appendChild(m.node)}if(e.image.path){const m=e.image.width?e.image.width:20,x=e.image.height?e.image.height:20;p=this.annoCtx.addImage({x:i+e.image.offsetX-m/2,y:h+e.image.offsetY-x/2,width:m,height:x,path:e.image.path,appendTo:".apexcharts-point-annotations"})}e.mouseEnter&&p.node.addEventListener("mouseenter",e.mouseEnter.bind(this,e)),e.mouseLeave&&p.node.addEventListener("mouseleave",e.mouseLeave.bind(this,e)),e.click&&p.node.addEventListener("click",e.click.bind(this,e))}}drawPointAnnotations(){const e=this.w,t=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((r,o)=>{this.addPointAnnotation(r,t.node,o)}),t}}class ZB{constructor(e,{theme:t=null,timeScale:r=null}={}){this.w=e,this.theme=t,this.timeScale=r,this.invertAxis=void 0,this.inversedReversedAxis=void 0,this.graphics=new ce(this.w),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new nl(this),this.xAxisAnnotations=new RB(this),this.yAxisAnnotations=new OB(this),this.pointsAnnotations=new zB(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.layout.gridWidth/this.w.globals.dataPoints}drawAxesAnnotations(){const e=this.w;if(e.globals.axisCharts&&e.globals.dataPoints){const t=this.yAxisAnnotations.drawYAxisAnnotations(),r=this.xAxisAnnotations.drawXAxisAnnotations(),o=this.pointsAnnotations.drawPointAnnotations(),s=e.config.chart.animations.enabled,i=[t,r,o],l=[r.node,t.node,o.node];for(let c=0;c<3;c++)e.dom.elGraphical.add(i[c]),s&&!e.globals.resized&&!e.globals.dataChanged&&e.config.chart.type!=="scatter"&&e.config.chart.type!=="bubble"&&e.globals.dataPoints>1&&l[c].classList.add("apexcharts-element-hidden"),e.globals.delayedElements.push({el:l[c],index:0});this.helpers.annotationsBackground()}}drawImageAnnos(){this.w.config.annotations.images.map(t=>{this.addImage(t)})}drawTextAnnos(){this.w.config.annotations.texts.map(t=>{this.addText(t)})}addXaxisAnnotation(e,t,r){this.xAxisAnnotations.addXaxisAnnotation(e,t,r)}addYaxisAnnotation(e,t,r){this.yAxisAnnotations.addYaxisAnnotation(e,t,r)}addPointAnnotation(e,t,r){this.pointsAnnotations.addPointAnnotation(e,t,r)}addText(e){const{x:t,y:r,text:o,textAnchor:s,foreColor:i,fontSize:l,fontFamily:c,fontWeight:h,cssClass:d,backgroundColor:u,borderWidth:p,strokeDashArray:f,borderRadius:g,borderColor:m,appendTo:x=".apexcharts-svg",paddingLeft:w=4,paddingRight:b=4,paddingBottom:y=2,paddingTop:k=2}=e,v=this.w,C=this.graphics.drawText({x:t,y:r,text:o,textAnchor:s||"start",fontSize:l||"12px",fontWeight:h||"regular",fontFamily:c||v.config.chart.fontFamily,foreColor:i||v.config.chart.foreColor,cssClass:"apexcharts-text "+d?d:""}),A=v.dom.baseEl.querySelector(x);A&&A.appendChild(C.node);const B=C.bbox();if(o){const E=this.graphics.drawRect(B.x-w,B.y-k,B.width+w+b,B.height+y+k,g,u||"transparent",1,p,m,f);A.insertBefore(E.node,C.node)}}addImage(e){const t=this.w,{path:r,x:o=0,y:s=0,width:i=20,height:l=20,appendTo:c=".apexcharts-svg"}=e,h=t.dom.Paper.image(r);h.size(i,l).move(o,s);const d=t.dom.baseEl.querySelector(c);return d&&d.appendChild(h.node),h}addXaxisAnnotationExternal(e,t,r){return this.addAnnotationExternal({params:e,pushToMemory:t,context:r,type:"xaxis",contextMethod:r.addXaxisAnnotation}),r}addYaxisAnnotationExternal(e,t,r){return this.addAnnotationExternal({params:e,pushToMemory:t,context:r,type:"yaxis",contextMethod:r.addYaxisAnnotation}),r}addPointAnnotationExternal(e,t,r){return typeof this.invertAxis>"u"&&(this.invertAxis=r.w.globals.isBarHorizontal),this.addAnnotationExternal({params:e,pushToMemory:t,context:r,type:"point",contextMethod:r.addPointAnnotation}),r}addAnnotationExternal({params:e,pushToMemory:t,context:r,type:o,contextMethod:s}){const i=r,l=i.w,c=l.dom.baseEl.querySelector(`.apexcharts-${o}-annotations`),h=c.childNodes.length+1,d=new Ao,u=Object.assign({},o==="xaxis"?d.xAxisAnnotation:o==="yaxis"?d.yAxisAnnotation:d.pointAnnotation),p=U.extend(u,e);switch(o){case"xaxis":this.addXaxisAnnotation(p,c,h);break;case"yaxis":this.addYaxisAnnotation(p,c,h);break;case"point":this.addPointAnnotation(p,c,h);break}const f=l.dom.baseEl.querySelector(`.apexcharts-${o}-annotations .apexcharts-${o}-annotation-label[rel='${h}']`),g=this.helpers.addBackgroundToAnno(f,p);return g&&c.insertBefore(g.node,f),t&&l.globals.memory.methodsToExec.push({context:i,id:p.id?p.id:U.randomId(),method:s,label:"addAnnotation",params:e}),r}clearAnnotations(e){const t=e.w,r=t.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");for(let o=t.globals.memory.methodsToExec.length-1;o>=0;o--)(t.globals.memory.methodsToExec[o].label==="addText"||t.globals.memory.methodsToExec[o].label==="addAnnotation")&&t.globals.memory.methodsToExec.splice(o,1);Array.prototype.forEach.call(r,o=>{for(;o.firstChild;)o.removeChild(o.firstChild)})}removeAnnotation(e,t){const r=e.w,o=r.dom.baseEl.querySelectorAll(`.${t}`);o&&(r.globals.memory.methodsToExec.map((s,i)=>{s.id===t&&r.globals.memory.methodsToExec.splice(i,1)}),Object.keys(r.config.annotations).forEach(s=>{const i=r.config.annotations[s];Array.isArray(i)&&(r.config.annotations[s]=i.filter(l=>l.id!==t))}),Array.prototype.forEach.call(o,s=>{s.parentElement.removeChild(s)}))}}ur.registerFeatures({annotations:ZB});class FB{constructor(e,t){this.w=e,this.ctx=t,this.seriesIndex=0,this.dataPointIndex=0,this.active=!1,this._focusedEl=null,this._hoveredBarEl=null,this._enlargedScatterMarker=null,this._onKeyDown=this._onKeyDown.bind(this),this._onFocus=this._onFocus.bind(this),this._onBlur=this._onBlur.bind(this),this._onLegendClick=this._onLegendClick.bind(this)}init(){const t=this.w.dom.Paper.node;t&&(t.setAttribute("tabindex","0"),t.addEventListener("focus",this._onFocus),t.addEventListener("blur",this._onBlur),t.addEventListener("keydown",this._onKeyDown,{passive:!1}),this.ctx.events.addEventListener("legendClick",this._onLegendClick))}destroy(){const e=this.w,t=e.dom.Paper&&e.dom.Paper.node;t&&(t.removeEventListener("focus",this._onFocus),t.removeEventListener("blur",this._onBlur),t.removeEventListener("keydown",this._onKeyDown),this.ctx.events.removeEventListener("legendClick",this._onLegendClick))}handleKey(e){}_onFocus(){this._isNavEnabled()&&(this.active=!0,this._clampCursor(),this._snapToVisibleRange(),this._showCurrentPoint())}_onBlur(){this.active=!1,this._hideFocus()}_onLegendClick(){this.active&&(this.active=!1,this._hideFocus())}_onKeyDown(e){if(!(!this._isNavEnabled()||!this.active))switch(e.key){case"ArrowRight":e.preventDefault(),this._move(0,1);break;case"ArrowLeft":e.preventDefault(),this._move(0,-1);break;case"ArrowUp":e.preventDefault(),this._move(-1,0);break;case"ArrowDown":e.preventDefault(),this._move(1,0);break;case"Home":e.preventDefault(),this.dataPointIndex=0,this._skipNullForward(),this._showCurrentPoint();break;case"End":e.preventDefault(),this.dataPointIndex=this._getDataPointCount(this.seriesIndex)-1,this._skipNullBackward(),this._showCurrentPoint();break;case"Enter":case" ":e.preventDefault(),this._fireClick();break;case"Escape":e.preventDefault(),this.active=!1,this._hideFocus();break}}_move(e,t){const r=this.w,o=r.config.chart.accessibility.keyboard.navigation.wrapAround;if(e!==0){const s=this.w.globals.tooltip;if(s&&s.tConfig&&s.tConfig.shared){const d=this.dataPointIndex;if(s.tooltipUtil&&s.tooltipUtil.isXoverlap(d)&&s.tooltipUtil.isInitialSeriesSameLen())return}const i=this._getSeriesCount();let l=this.seriesIndex+e,c=0;for(;c<i&&(l<0&&(l=o?i-1:0),l>=i&&(l=o?0:i-1),!!r.globals.collapsedSeriesIndices.includes(l));)l+=e,c++;this.seriesIndex=l;const h=this._getDataPointCount(l);this.dataPointIndex>=h&&(this.dataPointIndex=h-1)}if(t!==0){const s=this._getDataPointCount(this.seriesIndex);let i=this.dataPointIndex+t;i<0&&(i=o?s-1:0),i>=s&&(i=o?0:s-1),this.dataPointIndex=i,t>0?this._skipNullForward():this._skipNullBackward(),this._isDataPointVisible(this.seriesIndex,this.dataPointIndex)||this._snapToVisibleRangeInDirection(t)}this._showCurrentPoint()}_skipNullForward(){const e=this.w,t=this.seriesIndex,r=this._getDataPointCount(t);let o=this.dataPointIndex,s=0;if(Array.isArray(e.seriesData.series[t])){for(;s<r&&e.seriesData.series[t][o]===null;)o=(o+1)%r,s++;this.dataPointIndex=o}}_skipNullBackward(){const e=this.w,t=this.seriesIndex,r=this._getDataPointCount(t);let o=this.dataPointIndex,s=0;if(Array.isArray(e.seriesData.series[t])){for(;s<r&&e.seriesData.series[t][o]===null;)o=(o-1+r)%r,s++;this.dataPointIndex=o}}_showCurrentPoint(){const{seriesIndex:e,dataPointIndex:t}=this,r=this.w,o=r.globals.tooltip;!o||!o.ttItems||(r.interact.capturedSeriesIndex=e,r.interact.capturedDataPointIndex=t,this._applyFocusClass(e,t),this._showTooltip(e,t,o))}_hideFocus(){const e=this.w,t=e.globals.tooltip;if(this._removeFocusClass(),this._leaveHoveredBar(),!t)return;t.marker&&t.marker.resetPointsSize(),this._enlargedScatterMarker=null;const r=t.getElTooltip();r&&(r.classList.remove("apexcharts-active"),e.config.chart.accessibility.enabled&&e.config.chart.accessibility.announcements.enabled&&r.setAttribute("aria-hidden","true")),e.dom.baseEl.classList.remove("apexcharts-tooltip-active");const o=t.getElXCrosshairs();o&&o.classList.remove("apexcharts-active")}_showTooltip(e,t,r){const o=this.w,s=o.config.chart.type,i=r.getElTooltip();if(!i)return;const l=r.getCachedDimensions();r.tooltipRect={x:0,y:0,ttWidth:l.ttWidth||0,ttHeight:l.ttHeight||0},this._setSyntheticEvent(e,t,r),o.dom.baseEl.classList.add("apexcharts-tooltip-active"),i.classList.add("apexcharts-active"),o.config.chart.accessibility.enabled&&o.config.chart.accessibility.announcements.enabled&&i.removeAttribute("aria-hidden"),s==="pie"||s==="donut"||s==="polarArea"?this._showTooltipNonAxis(e,t,r,i):s==="radialBar"?this._showTooltipRadialBar(e,t,r,i):s==="heatmap"||s==="treemap"?this._showTooltipHeatTree(e,t,r,i,s):s==="bar"||s==="candlestick"||s==="boxPlot"||s==="rangeBar"?this._showTooltipBar(e,t,r):this._showTooltipAxisLine(e,t,r)}_setSyntheticEvent(e,t,r){const o=this.w,s=o.config.chart.type;let i=0,l=0;const c=this._getFocusableElement(e,t);if(c){const h=c.getBoundingClientRect();i=h.left+h.width/2,l=h.top+h.height/2}else if(o.globals.pointsArray&&o.globals.pointsArray[e]&&o.globals.pointsArray[e][t]){const h=o.globals.pointsArray[e][t],d=r.getElGrid&&r.getElGrid();if(d){const u=d.getBoundingClientRect();i=u.left+(h[0]||0),l=u.top+(h[1]||0)}}else{const h=o.dom.Paper&&o.dom.Paper.node;if(h){const d=h.getBoundingClientRect();i=d.left+d.width/2,l=d.top+d.height/2}}if((s==="line"||s==="area"||s==="rangeArea"||s==="scatter"||s==="bubble"||s==="radar")&&o.globals.pointsArray&&o.globals.pointsArray[e]&&o.globals.pointsArray[e][t]){const h=o.globals.pointsArray[e][t],d=r.getElGrid&&r.getElGrid();if(d){const u=d.getBoundingClientRect();i=u.left+(h[0]||0),l=u.top+(h[1]||0)}}r.e={type:"mousemove",clientX:i,clientY:l}}_showTooltipBar(e,t,r){var o,s,i,l;const c=this.w,h=r.tConfig.shared&&(r.tooltipUtil.isXoverlap(t)||c.globals.isBarHorizontal)&&r.tooltipUtil.isInitialSeriesSameLen(),d=(l=(i=(s=(o=c.rangeData.seriesRange)==null?void 0:o[e])==null?void 0:s[t])==null?void 0:i.y)==null?void 0:l[0];r.tooltipLabels.drawSeriesTexts(je(Ve(Ve({ttItems:r.ttItems,i:e,j:t},d?.y1!==void 0&&{y1:d.y1}),d?.y2!==void 0&&{y2:d.y2}),{shared:h}));const u=`.apexcharts-series[data\\:realIndex='${e}']`,p=c.dom.Paper.findOne(`${u} path[j='${t}'], ${u} circle[j='${t}'], ${u} rect[j='${t}']`);if(p&&(this._leaveHoveredBar(),new ce(this.w,this.ctx).pathMouseEnter(p,null),this._hoveredBarEl=p),c.globals.isBarHorizontal){const f=p&&p.node;if(f){const g=c.dom.elWrap.getBoundingClientRect(),m=f.getBoundingClientRect(),x=m.left-g.left,w=m.top-g.top,b=m.height,y=m.width,k=r.tooltipRect.ttWidth||0,v=r.tooltipRect.ttHeight||0,C=w+b/2-v/2;let A=x+y;const B=r.xyRatios&&r.xyRatios.baseLineInvertedY!=null?r.xyRatios.baseLineInvertedY:g.width/2;x<B&&(A=x-k);const E=r.getElTooltip();E&&(E.style.left=A+"px",E.style.top=C+"px")}}else r.tooltipPosition.moveStickyTooltipOverBars(t,e)}_showTooltipAxisLine(e,t,r){const o=this.w,s=o.config.chart.type,l=r.tConfig.shared&&r.tooltipUtil.isXoverlap(t)&&r.tooltipUtil.isInitialSeriesSameLen();r.tooltipLabels.drawSeriesTexts({ttItems:r.ttItems,i:e,j:t,shared:l});const c=s==="scatter"||s==="bubble",h=o.globals.markers.largestSize>0;c?this._showScatterBubblePoint(e,t,r):h?l?r.marker.enlargePoints(t):r.tooltipPosition.moveDynamicPointOnHover(t,e):l?r.tooltipPosition.moveDynamicPointsOnHover(t):r.tooltipPosition.moveDynamicPointOnHover(t,e)}_showScatterBubblePoint(e,t,r){const o=this.w.dom.baseEl;this._enlargedScatterMarker&&(r.marker.oldPointSize(this._enlargedScatterMarker),this._enlargedScatterMarker=null);const s=o.querySelector(`.apexcharts-series[data\\:realIndex='${e}']`);if(!s)return;const i=s.querySelector(`.apexcharts-marker[rel='${t}']`);i&&(r.marker.enlargeCurrentPoint(t,i),this._enlargedScatterMarker=i)}_showTooltipNonAxis(e,t,r,o){var s,i;const l=this.w;r.tooltipLabels.drawSeriesTexts({ttItems:r.ttItems,i:t,shared:!1});const c=o.getBoundingClientRect(),h=c.width||r.tooltipRect.ttWidth||0,d=c.height||r.tooltipRect.ttHeight||0,u=l.dom.baseEl.querySelector(`.apexcharts-pie-area[j='${t}']`);if(u){const p=parseFloat((s=u.getAttribute("data:cx"))!=null?s:""),f=parseFloat((i=u.getAttribute("data:cy"))!=null?i:"");if(!isNaN(p)&&!isNaN(f)){const g=l.dom.Paper.node.getBoundingClientRect(),m=l.dom.elWrap.getBoundingClientRect(),x=g.left-m.left,w=g.top-m.top;o.style.left=x+p-h/2+"px",o.style.top=w+f-d-10+"px"}}}_showTooltipRadialBar(e,t,r,o){var s;const i=this.w;r.tooltipLabels.drawSeriesTexts({ttItems:r.ttItems,i:e,shared:!1});const{ttWidth:l=0,ttHeight:c=0}=r.getCachedDimensions(),h=i.dom.baseEl.querySelector(`.apexcharts-radialbar-series[data\\:realIndex='${e}'] path`);if(h){const d=parseFloat((s=h.getAttribute("data:angle"))!=null?s:"")||0,p=(i.config.plotOptions.radialBar.startAngle||0)+d/2,f=i.layout.gridWidth/2,g=i.layout.gridHeight/2,m=i.globals.radialSize||Math.min(i.layout.gridWidth,i.layout.gridHeight)/2,x=i.seriesData.series.length,w=m/Math.max(x,1),b=m-e*w,y=b-w,k=(b+y)/2,v=U.polarToCartesian(f,g,k,p),C=v.x+(i.layout.translateX||0),A=v.y+(i.layout.translateY||0);o.style.left=C-l/2+"px",o.style.top=A-c-10+"px"}}_showTooltipHeatTree(e,t,r,o,s){var i,l;const c=this.w;r.tooltipLabels.drawSeriesTexts({ttItems:r.ttItems,i:e,j:t,shared:!1});const h=o.getBoundingClientRect(),d=h.width||r.tooltipRect.ttWidth||0,u=h.height||r.tooltipRect.ttHeight||0,p=s==="heatmap"?"apexcharts-heatmap-rect":"apexcharts-treemap-rect",f=c.dom.baseEl.querySelector(`.${p}[i='${e}'][j='${t}']`);if(f){const g=c.dom.elWrap.getBoundingClientRect(),m=f.getBoundingClientRect(),x=m.left-g.left,w=m.top-g.top,b=m.width,y=m.height,k=parseFloat((i=f.getAttribute("cx"))!=null?i:""),v=parseFloat((l=f.getAttribute("width"))!=null?l:"");r.tooltipPosition.moveXCrosshairs(k+v/2);let C=x+b+d/2;const A=w+y/2-u/2;x+b>c.layout.gridWidth/2&&(C=x-d/2),o.style.left=C+"px",o.style.top=A+"px"}}_applyFocusClass(e,t){this._removeFocusClass();const r=this._getFocusableElement(e,t);r&&(r.classList.add("apexcharts-keyboard-focused"),this._focusedEl=r)}_removeFocusClass(){this._focusedEl&&(this._focusedEl.classList.remove("apexcharts-keyboard-focused"),this._focusedEl=null)}_leaveHoveredBar(){this._hoveredBarEl&&(new ce(this.w,this.ctx).pathMouseLeave(this._hoveredBarEl,null),this._hoveredBarEl=null)}_getFocusableElement(e,t){const r=this.w,o=r.config.chart.type,s=r.dom.baseEl;return o==="pie"||o==="donut"||o==="polarArea"?s.querySelector(`.apexcharts-pie-area[j='${t}']`):o==="heatmap"?s.querySelector(`.apexcharts-heatmap-rect[i='${e}'][j='${t}']`):o==="treemap"?s.querySelector(`.apexcharts-treemap-rect[i='${e}'][j='${t}']`):o==="radialBar"?s.querySelector(`.apexcharts-radialbar-series[data\\:realIndex='${e}'] path`):o==="bar"||o==="candlestick"||o==="boxPlot"||o==="rangeBar"?s.querySelector(`.apexcharts-series[data\\:realIndex='${e}'] path[j='${t}']`):s.querySelector(`.apexcharts-series[data\\:realIndex='${e}'] .apexcharts-marker[rel='${t}']`)||null}_fireClick(){const t=this.w.globals.tooltip;if(!t)return;const r={type:"mouseup",clientX:0,clientY:0};t.markerClick(r,this.seriesIndex,this.dataPointIndex)}_isNavEnabled(){const e=this.w.config.chart.accessibility;return e.enabled&&e.keyboard.enabled&&e.keyboard.navigation.enabled}_getSeriesCount(){const e=this.w,t=e.config.chart.type;return t==="pie"||t==="donut"||t==="polarArea"?1:e.seriesData.series.length}_getDataPointCount(e){const t=this.w,r=t.config.chart.type;if(r==="pie"||r==="donut"||r==="polarArea")return t.seriesData.series.length;const o=t.seriesData.series;return o[e]&&Array.isArray(o[e])?o[e].length:0}_clampCursor(){const e=this._getSeriesCount();this.seriesIndex>=e&&(this.seriesIndex=e-1),this.seriesIndex<0&&(this.seriesIndex=0);const t=this._getDataPointCount(this.seriesIndex);this.dataPointIndex>=t&&(this.dataPointIndex=t-1),this.dataPointIndex<0&&(this.dataPointIndex=0)}_snapToVisibleRange(){const e=this.w,t=e.globals,r=this.seriesIndex;if(!e.interact.zoomed)return;const o=e.seriesData.seriesX&&e.seriesData.seriesX[r];if(!o||!o.length)return;const s=t.minX,i=t.maxX;if(s===void 0||i===void 0)return;const l=o[this.dataPointIndex];if(l>=s&&l<=i)return;const c=o.length;for(let h=0;h<c;h++)if(o[h]>=s&&o[h]<=i){this.dataPointIndex=h;return}}_snapToVisibleRangeInDirection(e){const t=this.w,r=t.globals,o=this.seriesIndex,s=t.seriesData.seriesX&&t.seriesData.seriesX[o];if(!s||!s.length)return;const i=r.minX,l=r.maxX;if(i===void 0||l===void 0)return;const c=s.length;if(e>=0){for(let h=0;h<c;h++)if(s[h]>=i&&s[h]<=l){this.dataPointIndex=h;return}}else for(let h=c-1;h>=0;h--)if(s[h]>=i&&s[h]<=l){this.dataPointIndex=h;return}}_isDataPointVisible(e,t){const r=this.w,o=r.globals;if(!r.interact.zoomed)return!0;const s=r.seriesData.seriesX&&r.seriesData.seriesX[e];if(!s)return!0;const i=s[t];return i===void 0?!0:i>=o.minX&&i<=o.maxX}}ur.registerFeatures({keyboardNavigation:FB});class _B{constructor(e){this.w=e.w,this.barCtx=e,this.totalFormatter=this.w.config.plotOptions.bar.dataLabels.total.formatter,this.totalFormatter||(this.totalFormatter=this.w.config.dataLabels.formatter)}handleBarDataLabels(e){const{x:t,y:r,y1:o,y2:s,i,j:l,realIndex:c,columnGroupIndex:h,series:d,barHeight:u,barWidth:p,barXPosition:f,barYPosition:g,visibleSeries:m}=e,x=this.w,w=new ce(this.barCtx.w),b=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[c]:this.barCtx.strokeWidth;let y,k;x.axisFlags.isXNumeric&&!x.globals.isBarHorizontal?(y=t+p*(m+1),k=r+u*(m+1)-b):(y=t+p*m,k=r+u*m);let v=null,C=null,A=t,B=r,E={};const S=x.config.dataLabels,D=this.barCtx.barOptions.dataLabels,M=this.barCtx.barOptions.dataLabels.total;typeof g<"u"&&this.barCtx.isRangeBar&&(k=g,B=g),typeof f<"u"&&this.barCtx.isVerticalGroupedRangeBar&&(y=f,A=f);const L=S.offsetX,V=S.offsetY;let N={width:0,height:0};if(x.config.dataLabels.enabled){const I=x.seriesData.series[i][l];N=w.getTextRects(x.config.dataLabels.formatter?x.config.dataLabels.formatter(I,je(Ve({},x),{seriesIndex:i,dataPointIndex:l,w:x})):x.formatters.yLabelFormatters[0](I),parseFloat(S.style.fontSize).toString())}const T={x:t,y:r,i,j:l,realIndex:c,columnGroupIndex:h,bcx:y,bcy:k,barHeight:u,barWidth:p,textRects:N,strokeWidth:b,dataLabelsX:A,dataLabelsY:B,dataLabelsConfig:S,barDataLabelsConfig:D,barTotalDataLabelsConfig:M,offX:L,offY:V};return this.barCtx.isHorizontal?E=this.calculateBarsDataLabelsPosition(T):E=this.calculateColumnsDataLabelsPosition(T),v=this.drawCalculatedDataLabels({x:E.dataLabelsX,y:E.dataLabelsY,val:this.barCtx.isRangeBar?[o,s]:x.config.chart.stackType==="100%"?d[c][l]:x.seriesData.series[c][l],i:c,j:l,barWidth:p,barHeight:u,textRects:N,dataLabelsConfig:S}),x.config.chart.stacked&&M.enabled&&(C=this.drawTotalDataLabels({x:E.totalDataLabelsX,y:E.totalDataLabelsY,barWidth:p,barHeight:u,realIndex:c,textAnchor:E.totalDataLabelsAnchor,val:this.getStackedTotalDataLabel({realIndex:c,j:l}),dataLabelsConfig:S,barTotalDataLabelsConfig:M})),{dataLabelsPos:E,dataLabels:v,totalDataLabels:C}}getStackedTotalDataLabel({realIndex:e,j:t}){const r=this.w;let o=this.barCtx.stackedSeriesTotals[t];return this.totalFormatter&&(o=this.totalFormatter(o,je(Ve({},r),{seriesIndex:e,dataPointIndex:t,w:r}))),o}calculateColumnsDataLabelsPosition(e){const t=this.w;let{i:r,j:o,realIndex:s,y:i,bcx:l,barWidth:c,barHeight:h,textRects:d,dataLabelsX:u,dataLabelsY:p,dataLabelsConfig:f,barDataLabelsConfig:g,barTotalDataLabelsConfig:m,strokeWidth:x,offX:w,offY:b}=e,y,k;const v="middle",C=l;h=Math.abs(h);const A=t.config.plotOptions.bar.dataLabels.orientation==="vertical",{zeroEncounters:B}=this.barCtx.barHelpers.getZeroValueEncounters({i:r,j:o});l=l-x/2;const E=t.layout.gridWidth/t.globals.dataPoints;this.barCtx.isVerticalGroupedRangeBar?u+=c/2:(t.axisFlags.isXNumeric?u=l-c/2+w:u=l-E+c/2+w,!t.config.chart.stacked&&B>0&&t.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(u-=c*B)),A&&(u=u+d.height/2-x/2-2);const S=t.seriesData.series[r][o]<0;let D=i;switch(this.barCtx.isReversed&&(D=i+(S?h:-h)),g.position){case"center":A?S?p=D-h/2+b:p=D+h/2-b:S?p=D-h/2+d.height/2+b:p=D+h/2+d.height/2-b;break;case"bottom":A?S?p=D-h+b:p=D+h-b:S?p=D-h+d.height+x+b:p=D+h-d.height/2+x-b;break;case"top":A?S?p=D+b:p=D-b:S?p=D-d.height/2-b:p=D+d.height+b;break}let M=D;if(t.labelData.seriesGroups.forEach(L=>{var V;(V=this.barCtx[L.join(",")])==null||V.prevY.forEach(N=>{S?M=Math.max(N[o],M):M=Math.min(N[o],M)})}),this.barCtx.lastActiveBarSerieIndex===s&&m.enabled){const N=new ce(this.barCtx.w).getTextRects(this.getStackedTotalDataLabel({realIndex:s,j:o}),f.fontSize);S?y=M-N.height/2-b-m.offsetY+18:y=M+N.height+b+m.offsetY-18;const T=E;k=C+(t.axisFlags.isXNumeric?-c*t.globals.barGroups.length/2:t.globals.barGroups.length*c/2-(t.globals.barGroups.length-1)*c-T)+m.offsetX}return t.config.chart.stacked||(p<0?p=0+x:p+d.height/3>t.layout.gridHeight&&(p=t.layout.gridHeight-x)),{bcx:l,bcy:i,dataLabelsX:u,dataLabelsY:p,totalDataLabelsX:k,totalDataLabelsY:y,totalDataLabelsAnchor:v}}calculateBarsDataLabelsPosition(e){const t=this.w;let{x:r,i:o,j:s,realIndex:i,bcy:l,barHeight:c,barWidth:h,textRects:d,dataLabelsX:u,strokeWidth:p,dataLabelsConfig:f,barDataLabelsConfig:g,barTotalDataLabelsConfig:m,offX:x,offY:w}=e;const b=t.layout.gridHeight/t.globals.dataPoints,{zeroEncounters:y}=this.barCtx.barHelpers.getZeroValueEncounters({i:o,j:s});h=Math.abs(h);let k=l-(this.barCtx.isRangeBar?0:b)+c/2+d.height/2+w-3;!t.config.chart.stacked&&y>0&&t.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(k-=c*y);let v,C,A="start";const B=t.seriesData.series[o][s]<0;let E=r;switch(this.barCtx.isReversed&&(E=r+(B?-h:h),A=B?"start":"end"),g.position){case"center":B?u=E+h/2-x:u=Math.max(d.width/2,E-h/2)+x;break;case"bottom":B?u=E+h-p-x:u=E-h+p+x;break;case"top":B?u=E-p-x:u=E-p+x;break}let S=E;if(t.labelData.seriesGroups.forEach(D=>{var M;(M=this.barCtx[D.join(",")])==null||M.prevX.forEach(L=>{B?S=Math.min(L[s],S):S=Math.max(L[s],S)})}),this.barCtx.lastActiveBarSerieIndex===i&&m.enabled){const M=new ce(this.barCtx.w).getTextRects(this.getStackedTotalDataLabel({realIndex:i,j:s}),f.fontSize);B?(v=S-p-x-m.offsetX,A="end"):v=S+x+m.offsetX+(this.barCtx.isReversed?-(h+p):p),C=k-d.height/2+M.height/2+m.offsetY+p,t.globals.barGroups.length>1&&(C=C-t.globals.barGroups.length/2*(c/2))}return t.config.chart.stacked||(f.textAnchor==="start"?u-d.width<0?u=B?d.width+p:p:u+d.width>t.layout.gridWidth&&(u=B?t.layout.gridWidth-p:t.layout.gridWidth-d.width-p):f.textAnchor==="middle"?u-d.width/2<0?u=d.width/2+p:u+d.width/2>t.layout.gridWidth&&(u=t.layout.gridWidth-d.width/2-p):f.textAnchor==="end"&&(u<1?u=d.width+p:u+1>t.layout.gridWidth&&(u=t.layout.gridWidth-d.width-p))),{bcx:r,bcy:l,dataLabelsX:u,dataLabelsY:k,totalDataLabelsX:v,totalDataLabelsY:C,totalDataLabelsAnchor:A}}drawCalculatedDataLabels({x:e,y:t,val:r,i:o,j:s,textRects:i,barHeight:l,barWidth:c,dataLabelsConfig:h}){const d=this.w;let u="rotate(0)";d.config.plotOptions.bar.dataLabels.orientation==="vertical"&&(u=`rotate(-90, ${e}, ${t})`);const p=new Eo(this.barCtx.w,this.barCtx.ctx),f=new ce(this.barCtx.w),g=h.formatter;let m=null;const x=d.globals.collapsedSeriesIndices.indexOf(o)>-1;if(h.enabled&&!x){m=f.group({class:"apexcharts-data-labels",transform:u});let w="";typeof r<"u"&&(w=g(r,je(Ve({},d),{seriesIndex:o,dataPointIndex:s,w:d}))),!r&&d.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(w="");const b=d.seriesData.series[o][s]<0,y=d.config.plotOptions.bar.dataLabels.position;if(d.config.plotOptions.bar.dataLabels.orientation==="vertical"&&(y==="top"&&(b?h.textAnchor="end":h.textAnchor="start"),y==="center"&&(h.textAnchor="middle"),y==="bottom"&&(b?h.textAnchor="end":h.textAnchor="start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels){const v=f.getTextRects(w,parseFloat(h.style.fontSize).toString());c<v.width&&(w="")}d.config.chart.stacked&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&(this.barCtx.isHorizontal?i.width/1.6>Math.abs(c)&&(w=""):i.height/1.6>Math.abs(l)&&(w=""));const k=Ve({},h);this.barCtx.isHorizontal&&r<0&&(h.textAnchor==="start"?k.textAnchor="end":h.textAnchor==="end"&&(k.textAnchor="start")),p.plotDataLabelsText({x:e,y:t,text:w,i:o,j:s,parent:m,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return m}drawTotalDataLabels({x:e,y:t,val:r,realIndex:o,textAnchor:s,barTotalDataLabelsConfig:i}){const l=new ce(this.barCtx.w);let c;return i.enabled&&typeof e<"u"&&typeof t<"u"&&this.barCtx.lastActiveBarSerieIndex===o&&(c=l.drawText({x:e,y:t,foreColor:i.style.color,text:r,textAnchor:s,fontFamily:i.style.fontFamily,fontSize:i.style.fontSize,fontWeight:i.style.fontWeight})),c}}let XB=class{constructor(e){this.w=e.w,this.barCtx=e}initVariables(e){const t=this.w;this.barCtx.series=e,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(let r=0;r<e.length;r++)if(e[r].length>0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=e[r].length),t.axisFlags.isXNumeric)for(let o=0;o<e[r].length;o++)t.seriesData.seriesX[r][o]>t.globals.minX&&t.seriesData.seriesX[r][o]<t.globals.maxX&&this.barCtx.visibleItems++;else this.barCtx.visibleItems=t.globals.dataPoints;this.arrBorderRadius=this.createBorderRadiusArr(t.seriesData.series),U.isSafari()&&(this.arrBorderRadius=this.arrBorderRadius.map(r=>r.map(o=>"none"))),this.barCtx.seriesLen===0&&(this.barCtx.seriesLen=1),this.barCtx.zeroSerieses=[],t.globals.comboCharts||this.checkZeroSeries({series:e})}initialPositions(e){const t=this.w;let r,o,s,i,l,c,h,d,u=t.globals.dataPoints;this.barCtx.isRangeBar&&(u=t.labelData.labels.length);let p=this.barCtx.seriesLen;if(t.config.plotOptions.bar.rangeBarGroupRows&&(p=1),this.barCtx.isHorizontal)s=t.layout.gridHeight/u,l=s/p,t.axisFlags.isXNumeric&&(s=t.layout.gridHeight/this.barCtx.totalItems,l=s/this.barCtx.seriesLen),l=l*parseInt(this.barCtx.barOptions.barHeight,10)/100,String(this.barCtx.barOptions.barHeight).indexOf("%")===-1&&(l=parseInt(this.barCtx.barOptions.barHeight,10)),d=this.barCtx.baseLineInvertedY+t.globals.padHorizontal+(this.barCtx.isReversed?t.layout.gridWidth:0)-(this.barCtx.isReversed?this.barCtx.baseLineInvertedY*2:0),this.barCtx.isFunnel&&(d=t.layout.gridWidth/2),o=(s-l*this.barCtx.seriesLen)/2;else{if(i=t.layout.gridWidth/this.barCtx.visibleItems,t.config.xaxis.convertedCatToNumeric&&(i=t.layout.gridWidth/t.globals.dataPoints),c=i/p*parseInt(this.barCtx.barOptions.columnWidth,10)/100,t.axisFlags.isXNumeric){const f=this.barCtx.xRatio;t.globals.minXDiff&&t.globals.minXDiff!==.5&&t.globals.minXDiff/f>0&&(i=t.globals.minXDiff/f),c=i/p*parseInt(this.barCtx.barOptions.columnWidth,10)/100,c<1&&(c=1)}String(this.barCtx.barOptions.columnWidth).indexOf("%")===-1&&(c=parseInt(this.barCtx.barOptions.columnWidth,10)),h=t.layout.gridHeight-this.barCtx.baseLineY[this.barCtx.translationsIndex]-(this.barCtx.isReversed?t.layout.gridHeight:0)+(this.barCtx.isReversed?this.barCtx.baseLineY[this.barCtx.translationsIndex]*2:0),t.axisFlags.isXNumeric?r=this.barCtx.getBarXForNumericXAxis({x:r,j:0,realIndex:e,barWidth:c}).x:r=t.globals.padHorizontal+U.noExponents(i-c*this.barCtx.seriesLen)/2}return t.globals.barHeight=l,t.globals.barWidth=c,{x:r,y:o,yDivision:s,xDivision:i,barHeight:l,barWidth:c,zeroH:h,zeroW:d}}initializeStackedPrevVars(e){e.w.labelData.seriesGroups.forEach(r=>{e[r]||(e[r]={}),e[r].prevY=[],e[r].prevX=[],e[r].prevYF=[],e[r].prevXF=[],e[r].prevYVal=[],e[r].prevXVal=[]})}initializeStackedXYVars(e){e.w.labelData.seriesGroups.forEach(r=>{e[r]||(e[r]={}),e[r].xArrj=[],e[r].xArrjF=[],e[r].xArrjVal=[],e[r].yArrj=[],e[r].yArrjF=[],e[r].yArrjVal=[]})}getPathFillColor(e,t,r,o){var s,i,l,c;const h=this.w,d=new Ia(this.barCtx.w);let u=null;const p=this.barCtx.barOptions.distributed?r:t;let f=!1;return this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map(x=>{e[t][r]>=x.from&&e[t][r]<=x.to&&(u=x.color,f=!0)}),{color:d.fillPath({seriesNumber:this.barCtx.barOptions.distributed?p:o,dataPointIndex:r,color:u,value:e[t][r],fillConfig:(s=h.config.series[t].data[r])==null?void 0:s.fill,fillType:(l=(i=h.config.series[t].data[r])==null?void 0:i.fill)!=null&&l.type?(c=h.config.series[t].data[r])==null?void 0:c.fill.type:Array.isArray(h.config.fill.type)?h.config.fill.type[o]:h.config.fill.type}),useRangeColor:f}}getStrokeWidth(e,t,r){let o=0;const s=this.w;return typeof this.barCtx.series[e][t]>"u"||this.barCtx.series[e][t]===null||s.config.chart.type==="bar"&&!this.barCtx.series[e][t]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(o=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[r]:this.barCtx.strokeWidth)),o}createBorderRadiusArr(e){var t;const r=this.w,o=!this.w.config.chart.stacked||r.config.plotOptions.bar.borderRadius<=0,s=e.length,i=((t=e[0])==null?void 0:t.length)|0,l=Array.from({length:s},()=>Array(i).fill(o?"top":"none"));if(o)return l;const c=this.w.config.chart.type;for(let h=0;h<i;h++){const d=[],u=[];let p=0;for(let f=0;f<s;f++){const g=e[f][h];g>0?(d.push(f),p++):g<0&&(u.push(f),p++)}if(d.length>0&&u.length===0)if(d.length===1)l[d[0]][h]=c==="bar"&&i===1?"top":"both";else{const f=d[0],g=d[d.length-1];for(const m of d)m===f?l[m][h]=c==="bar"&&i===1?"top":"bottom":m===g?l[m][h]="top":l[m][h]="none"}else if(u.length>0&&d.length===0)if(u.length===1)l[u[0]][h]="both";else{const f=Math.max(...u),g=Math.min(...u);for(const m of u)m===f?l[m][h]="bottom":m===g?l[m][h]="top":l[m][h]="none"}else if(d.length>0&&u.length>0){const f=d[d.length-1];for(const m of d)m===f?l[m][h]="top":l[m][h]="none";const g=Math.max(...u);for(const m of u)m===g?l[m][h]="bottom":l[m][h]="none"}else if(p===1){const f=d[0]||u[0];l[f][h]="both"}}return l}barBackground({j:e,i:t,x1:r,x2:o,y1:s,y2:i,elSeries:l}){const c=this.w,h=new ce(this.barCtx.w),u=new Lt(this.barCtx.w).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&u===t){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);const p=this.barCtx.barOptions.colors.backgroundBarColors[e],f=h.drawRect(typeof r<"u"?r:0,typeof s<"u"?s:0,typeof o<"u"?o:c.layout.gridWidth,typeof i<"u"?i:c.layout.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,p,this.barCtx.barOptions.colors.backgroundBarOpacity);l.add(f),f.node.classList.add("apexcharts-backgroundBar")}}getColumnPaths({barWidth:e,barXPosition:t,y1:r,y2:o,strokeWidth:s,isReversed:i,series:l,seriesGroup:c,realIndex:h,i:d,j:u,w:p}){var f;const g=new ce(this.barCtx.w);s=Array.isArray(s)?s[h]:s,s||(s=0);let m=e,x=t;(f=p.config.series[h].data[u])!=null&&f.columnWidthOffset&&(x=t-p.config.series[h].data[u].columnWidthOffset/2,m=e+p.config.series[h].data[u].columnWidthOffset);const w=s/2,b=x+w,y=x+m-w,k=(l[d][u]>=0?1:-1)*(i?-1:1);r+=.001-w*k,o+=.001+w*k;let v=g.move(b,r),C=g.move(b,r);const A=g.line(y,r);if(p.globals.previousPaths.length>0&&(C=this.barCtx.getPreviousPath(h,u,!1)),v=v+g.line(b,o)+g.line(y,o)+A+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[h][u]==="both"?" Z":" z"),C=C+g.line(b,r)+A+A+A+A+A+g.line(b,r)+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[h][u]==="both"?" Z":" z"),this.arrBorderRadius[h][u]!=="none"&&(v=g.roundPathCorners(v,p.config.plotOptions.bar.borderRadius)),p.config.chart.stacked){let B=this.barCtx;B=this.barCtx[c],B.yArrj.push(o-w*k),B.yArrjF.push(Math.abs(r-o+s*k)),B.yArrjVal.push(this.barCtx.series[d][u])}return{pathTo:v,pathFrom:C}}getBarpaths({barYPosition:e,barHeight:t,x1:r,x2:o,strokeWidth:s,isReversed:i,series:l,seriesGroup:c,realIndex:h,i:d,j:u,w:p}){var f;const g=new ce(this.barCtx.w);s=Array.isArray(s)?s[h]:s,s||(s=0);let m=e,x=t;(f=p.config.series[h].data[u])!=null&&f.barHeightOffset&&(m=e-p.config.series[h].data[u].barHeightOffset/2,x=t+p.config.series[h].data[u].barHeightOffset);const w=s/2,b=m+w,y=m+x-w,k=(l[d][u]>=0?1:-1)*(i?-1:1);r+=.001+w*k,o+=.001-w*k;let v=g.move(r,b),C=g.move(r,b);p.globals.previousPaths.length>0&&(C=this.barCtx.getPreviousPath(h,u,!1));const A=g.line(r,y);if(v=v+g.line(o,b)+g.line(o,y)+A+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[h][u]==="both"?" Z":" z"),C=C+g.line(r,b)+A+A+A+A+A+g.line(r,b)+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[h][u]==="both"?" Z":" z"),this.arrBorderRadius[h][u]!=="none"&&(v=g.roundPathCorners(v,p.config.plotOptions.bar.borderRadius)),p.config.chart.stacked){let B=this.barCtx;B=this.barCtx[c],B.xArrj.push(o+w*k),B.xArrjF.push(Math.abs(r-o-s*k)),B.xArrjVal.push(this.barCtx.series[d][u])}return{pathTo:v,pathFrom:C}}checkZeroSeries({series:e}){const t=this.w;for(let r=0;r<e.length;r++){let o=0;for(let s=0;s<e[t.globals.maxValsInArrayIndex].length;s++)o+=e[r][s];o===0&&this.barCtx.zeroSerieses.push(r)}}getXForValue(e,t,r=!0){let o=r?t:null;return typeof e<"u"&&e!==null&&(o=t+e/this.barCtx.invertedYRatio-(this.barCtx.isReversed?e/this.barCtx.invertedYRatio:0)*2),o}getYForValue(e,t,r,o=!0){let s=o?t:null;return typeof e<"u"&&e!==null&&(s=t-e/this.barCtx.yRatio[r]+(this.barCtx.isReversed?e/this.barCtx.yRatio[r]:0)*2),s}getGoalValues(e,t,r,o,s,i){const l=this.w,c=[],h=(d,u)=>{c.push({[e]:e==="x"?this.getXForValue(d,t,!1):this.getYForValue(d,r,i,!1),attrs:u})};if(l.seriesData.seriesGoals[o]&&l.seriesData.seriesGoals[o][s]&&Array.isArray(l.seriesData.seriesGoals[o][s])&&l.seriesData.seriesGoals[o][s].forEach(d=>{h(d.value,d)}),this.barCtx.barOptions.isDumbbell&&l.rangeData.seriesRange.length){const d=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,u={strokeHeight:e==="x"?0:l.globals.markers.size[o],strokeWidth:e==="x"?l.globals.markers.size[o]:0,strokeDashArray:0,strokeLineCap:"round",strokeColor:Array.isArray(d[o])?d[o][0]:d[o]};h(l.rangeData.seriesRangeStart[o][s],u),h(l.rangeData.seriesRangeEnd[o][s],je(Ve({},u),{strokeColor:Array.isArray(d[o])?d[o][1]:d[o]}))}return c}drawGoalLine({barXPosition:e,barYPosition:t,goalX:r,goalY:o,barWidth:s,barHeight:i}){const l=new ce(this.barCtx.w),c=l.group({className:"apexcharts-bar-goals-groups"});c.node.classList.add("apexcharts-element-hidden"),this.barCtx.w.globals.delayedElements.push({el:c.node}),c.attr("clip-path",`url(#gridRectMarkerMask${this.barCtx.w.globals.cuid})`);let h=null;return this.barCtx.isHorizontal?Array.isArray(r)&&r.forEach(d=>{if(d.x>=-1&&d.x<=l.w.layout.gridWidth+1){const u=typeof d.attrs.strokeHeight<"u"?d.attrs.strokeHeight:i/2,p=t+u+i/2;h=l.drawLine(d.x,p-u*2,d.x,p,d.attrs.strokeColor?d.attrs.strokeColor:void 0,d.attrs.strokeDashArray,d.attrs.strokeWidth?d.attrs.strokeWidth:2,d.attrs.strokeLineCap),c.add(h)}}):Array.isArray(o)&&o.forEach(d=>{if(d.y>=-1&&d.y<=l.w.layout.gridHeight+1){const u=typeof d.attrs.strokeWidth<"u"?d.attrs.strokeWidth:s/2,p=e+u+s/2;h=l.drawLine(p-u*2,d.y,p,d.y,d.attrs.strokeColor?d.attrs.strokeColor:void 0,d.attrs.strokeDashArray,d.attrs.strokeHeight?d.attrs.strokeHeight:2,d.attrs.strokeLineCap),c.add(h)}}),c}drawBarShadow({prevPaths:e,currPaths:t,color:r,realIndex:o,j:s}){const i=this.w,{x:l,x1:c,barYPosition:h}=e,{x:d,x1:u,barYPosition:p}=t,f=h+t.barHeight,g=new ce(this.barCtx.w),m=new U,x=g.move(c,f)+g.line(l,f)+g.line(d,p)+g.line(u,p)+g.line(c,f)+(i.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[o][s]==="both"?" Z":" z");return g.drawPath({d:x,fill:m.shadeColor(.5,U.rgb2hex(r)),stroke:"none",strokeWidth:0,fillOpacity:1,classes:"apexcharts-bar-shadow apexcharts-decoration-element"})}getZeroValueEncounters({i:e,j:t}){var r;const o=this.w;let s=0,i=0;return(o.config.plotOptions.bar.horizontal?o.seriesData.series.map((c,h)=>h):((r=o.globals.columnSeries)==null?void 0:r.i.map(c=>c))||[]).forEach(c=>{const h=o.globals.seriesPercent[c][t];h&&s++,c<e&&h===0&&i++}),{nonZeroColumns:s,zeroEncounters:i}}getGroupIndex(e){const t=this.w,r=t.labelData.seriesGroups.findIndex(i=>i.indexOf(t.seriesData.seriesNames[e])>-1),o=this.barCtx.columnGroupIndices;let s=o.indexOf(r);return s<0&&(o.push(r),s=o.length-1),{groupIndex:r,columnGroupIndex:s}}};class An{constructor(e,t,r){this.ctx=t,this.w=e,this.barOptions=e.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=e.config.stroke.width,this.isNullValue=!1,this.isRangeBar=e.rangeData.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!e.globals.isBarHorizontal&&e.rangeData.seriesRange.length&&e.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=r,this.xRatio=0,this.yRatio=[],this.invertedXRatio=0,this.invertedYRatio=0,this.baseLineY=[],this.baseLineInvertedY=0,this.xyRatios!==null&&(this.xRatio=r.xRatio,this.yRatio=r.yRatio,this.invertedXRatio=r.invertedXRatio,this.invertedYRatio=r.invertedYRatio,this.baseLineY=r.baseLineY,this.baseLineInvertedY=r.baseLineInvertedY),this.yaxisIndex=0,this.translationsIndex=0,this.seriesLen=0,this.pathArr=[],this.series=[],this.elSeries=null,this.visibleI=0,this.isReversed=!1;const o=new Lt(this.w);this.lastActiveBarSerieIndex=o.getActiveConfigSeriesIndex("desc",["bar","column"]),this.columnGroupIndices=[];const s=o.getBarSeriesIndices(),i=new Nt(this.w);this.stackedSeriesTotals=i.getStackedSeriesTotals(this.w.config.series.map((l,c)=>s.indexOf(c)===-1?c:-1).filter(l=>l!==-1)),this.barHelpers=new XB(this)}draw(e,t){var r;const o=this.w,s=new ce(this.w),i=new Nt(this.w);e=i.getLogSeries(e),this.series=e,this.yRatio=i.getLogYRatios(this.yRatio),this.barHelpers.initVariables(e);const l=s.group({class:"apexcharts-bar-series apexcharts-plot-series"});o.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts");for(let c=0,h=0;c<e.length;c++,h++){let d,u;const p=[],f=[],g=o.globals.comboCharts?t[c]:c,{columnGroupIndex:m}=this.barHelpers.getGroupIndex(g),x=s.group({class:"apexcharts-series",rel:c+1,seriesName:U.escapeString(o.seriesData.seriesNames[g]),"data:realIndex":g});Lt.addCollapsedClassToSeries(this.w,x,g),e[c].length>0&&(this.visibleI=this.visibleI+1),this.yRatio.length>1&&(this.yaxisIndex=o.globals.seriesYAxisReverseMap[g],this.translationsIndex=g);const w=this.translationsIndex;this.isReversed=o.config.yaxis[this.yaxisIndex]&&o.config.yaxis[this.yaxisIndex].reversed;const b=this.barHelpers.initialPositions(g),{y,yDivision:k,zeroW:v,x:C,xDivision:A,zeroH:B}=b;let E=b.barHeight,S=b.barWidth;u=y,d=C,this.isHorizontal||f.push(d+(S??0)/2);const D=s.group({class:"apexcharts-datalabels","data:realIndex":g});o.globals.delayedElements.push({el:D.node}),D.node.classList.add("apexcharts-element-hidden");const M=s.group({class:"apexcharts-bar-goals-markers"}),L=s.group({class:"apexcharts-bar-shadows"});o.globals.delayedElements.push({el:L.node}),L.node.classList.add("apexcharts-element-hidden");for(let V=0;V<e[c].length;V++){const N=this.barHelpers.getStrokeWidth(c,V,g);let T=null;const I={indexes:{i:c,j:V,realIndex:g,translationsIndex:w,bc:h},x:d,y:u,strokeWidth:N,elSeries:x};this.isHorizontal?(T=this.drawBarPaths(je(Ve({},I),{barHeight:E,zeroW:v,yDivision:k})),S=this.series[c][V]/this.invertedYRatio):(T=this.drawColumnPaths(je(Ve({},I),{xDivision:A,barWidth:S,zeroH:B})),E=this.series[c][V]/this.yRatio[w]);const Z=this.barHelpers.getPathFillColor(e,c,V,g);if(this.isFunnel&&this.barOptions.isFunnel3d&&this.pathArr.length&&V>0){const W=this.barHelpers.drawBarShadow({color:typeof Z.color=="string"&&((r=Z.color)==null?void 0:r.indexOf("url"))===-1?Z.color:U.hexToRgba(o.globals.colors[c]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:T,realIndex:g,j:V});L.add(W),o.config.chart.dropShadow.enabled&&new _t(this.w).dropShadow(W,o.config.chart.dropShadow,g)}this.pathArr.push(T);const _=this.barHelpers.drawGoalLine({barXPosition:T.barXPosition,barYPosition:T.barYPosition,goalX:T.goalX,goalY:T.goalY,barHeight:E,barWidth:S});_&&M.add(_),u=T.y,d=T.x,V>0&&f.push(d+(S??0)/2),p.push(u),this.renderSeries(je(Ve({realIndex:g,pathFill:Z.color},Z.useRangeColor?{lineFill:Z.color}:{}),{j:V,i:c,columnGroupIndex:m,pathFrom:T.pathFrom,pathTo:T.pathTo,strokeWidth:N,elSeries:x,x:d,y:u,series:e,barHeight:Math.abs(T.barHeight?T.barHeight:E),barWidth:Math.abs(T.barWidth?T.barWidth:S),elDataLabelsWrap:D,elGoalsMarkers:M,elBarShadows:L,visibleSeries:this.visibleI,type:"bar"}))}o.globals.seriesXvalues[g]=f,o.globals.seriesYvalues[g]=p,l.add(x)}return l}renderSeries({realIndex:e,pathFill:t,lineFill:r,j:o,i:s,columnGroupIndex:i,pathFrom:l,pathTo:c,strokeWidth:h,elSeries:d,x:u,y:p,y1:f,y2:g,series:m,barHeight:x,barWidth:w,barXPosition:b,barYPosition:y,elDataLabelsWrap:k,elGoalsMarkers:v,elBarShadows:C,visibleSeries:A,type:B,classes:E}){const S=this.w,D=new ce(this.w,this.ctx);let M=!1;if(d._bindingsDelegated||(d._bindingsDelegated=!0,D.setupEventDelegation(d,`.apexcharts-${B}-area`)),!r){let T=function(Z){const _=S.config.stroke.colors;let W;return Array.isArray(_)&&_.length>0&&(W=_[Z],W||(W=""),typeof W=="function")?W({value:S.seriesData.series[Z][o],dataPointIndex:o,w:S}):W};const I=typeof S.globals.stroke.colors[e]=="function"?T(e):S.globals.stroke.colors[e];r=this.barOptions.distributed?S.globals.stroke.colors[o]:I}const V=new _B(this).handleBarDataLabels({x:u,y:p,y1:f,y2:g,i:s,j:o,series:m,realIndex:e,columnGroupIndex:i,barHeight:x,barWidth:w,barXPosition:b,barYPosition:y,visibleSeries:A});S.globals.isBarHorizontal||(V.dataLabelsPos.dataLabelsX+Math.max(w,S.globals.barPadForNumericAxis)<0||V.dataLabelsPos.dataLabelsX-Math.max(w,S.globals.barPadForNumericAxis)>S.layout.gridWidth)&&(M=!0),S.config.series[s].data[o]&&S.config.series[s].data[o].strokeColor&&(r=S.config.series[s].data[o].strokeColor),this.isNullValue&&(t="none");const N=o/S.config.chart.animations.animateGradually.delay*(S.config.chart.animations.speed/S.globals.dataPoints)/2.4;if(!M){const T=D.renderPaths({i:s,j:o,realIndex:e,pathFrom:l,pathTo:c,stroke:r,strokeWidth:h,strokeLineCap:S.config.stroke.lineCap,fill:t,animationDelay:N,initialSpeed:S.config.chart.animations.speed,dataChangeSpeed:S.config.chart.animations.dynamicAnimation.speed,className:`apexcharts-${B}-area ${E}`,chartType:B,bindEventsOnPaths:!1});T.attr("clip-path",`url(#gridRectBarMask${S.globals.cuid})`);const I=S.config.forecastDataPoints;I.count>0&&o>=S.globals.dataPoints-I.count&&(T.node.setAttribute("stroke-dasharray",I.dashArray),T.node.setAttribute("stroke-width",I.strokeWidth),T.node.setAttribute("fill-opacity",I.fillOpacity)),typeof f<"u"&&typeof g<"u"&&(T.attr("data-range-y1",f),T.attr("data-range-y2",g)),new _t(this.w).setSelectionFilter(T,e,o),d.add(T),T.attr({cy:V.dataLabelsPos.bcy,cx:V.dataLabelsPos.bcx,j:o,val:S.seriesData.series[s][o],barHeight:x,barWidth:w}),V.dataLabels!==null&&k.add(V.dataLabels),V.totalDataLabels&&k.add(V.totalDataLabels),d.add(k),v&&d.add(v),C&&d.add(C)}return d}drawBarPaths({indexes:e,barHeight:t,strokeWidth:r,zeroW:o,x:s,y:i,yDivision:l,elSeries:c}){const h=this.w,d=e.i,u=e.j;let p;if(h.axisFlags.isXNumeric)i=(h.seriesData.seriesX[d][u]-h.globals.minX)/this.invertedXRatio-t,p=i+t*this.visibleI;else if(h.config.plotOptions.bar.hideZeroBarsWhenGrouped){const{nonZeroColumns:g,zeroEncounters:m}=this.barHelpers.getZeroValueEncounters({i:d,j:u});g>0&&(t=this.seriesLen*t/g),p=i+t*this.visibleI,p-=t*m}else p=i+t*this.visibleI;if(this.isFunnel){const g=o??0;o=g-(this.barHelpers.getXForValue(this.series[d][u],g)-g)/2}s=this.barHelpers.getXForValue(this.series[d][u],o??0);const f=this.barHelpers.getBarpaths({barYPosition:p,barHeight:t,x1:o,x2:s,strokeWidth:r,isReversed:this.isReversed,series:this.series,realIndex:e.realIndex,i:d,j:u,w:h});return h.axisFlags.isXNumeric||(i=i+l),this.barHelpers.barBackground({j:u,i:d,y1:p-t*this.visibleI,y2:t*this.seriesLen,elSeries:c}),{pathTo:f.pathTo,pathFrom:f.pathFrom,x1:o,x:s,y:i,goalX:this.barHelpers.getGoalValues("x",o,null,d,u,0),barYPosition:p,barHeight:t}}drawColumnPaths({indexes:e,x:t,y:r,xDivision:o,barWidth:s,zeroH:i,strokeWidth:l,elSeries:c}){const h=this.w,d=e.realIndex,u=e.translationsIndex,p=e.i,f=e.j,g=e.bc;let m;if(h.axisFlags.isXNumeric){const w=this.getBarXForNumericXAxis({x:t,j:f,realIndex:d,barWidth:s});t=w.x,m=w.barXPosition}else if(h.config.plotOptions.bar.hideZeroBarsWhenGrouped){const{nonZeroColumns:w,zeroEncounters:b}=this.barHelpers.getZeroValueEncounters({i:p,j:f});w>0&&(s=this.seriesLen*s/w),m=t+s*this.visibleI,m-=s*b}else m=t+s*this.visibleI;r=this.barHelpers.getYForValue(this.series[p][f],i,u);const x=this.barHelpers.getColumnPaths({barXPosition:m,barWidth:s,y1:i,y2:r,strokeWidth:l,isReversed:this.isReversed,series:this.series,realIndex:d,i:p,j:f,w:h});return h.axisFlags.isXNumeric||(t=t+o),this.barHelpers.barBackground({bc:g,j:f,i:p,x1:m-l/2-s*this.visibleI,x2:s*this.seriesLen+l/2,elSeries:c}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:t,y:r,goalY:this.barHelpers.getGoalValues("y",null,i,p,f,u),barXPosition:m,barWidth:s}}getBarXForNumericXAxis({x:e,barWidth:t,realIndex:r,j:o}){const s=this.w;let i=r;return s.seriesData.seriesX[r].length||(i=s.globals.maxValsInArrayIndex),U.isNumber(s.seriesData.seriesX[i][o])&&(e=(s.seriesData.seriesX[i][o]-s.globals.minX)/this.xRatio-t*this.seriesLen/2),{barXPosition:e+t*this.visibleI,x:e}}getPreviousPath(e,t){const r=this.w;let o="M 0 0";for(let s=0;s<r.globals.previousPaths.length;s++){const i=r.globals.previousPaths[s];i.paths&&i.paths.length>0&&parseInt(i.realIndex,10)===parseInt(String(e),10)&&typeof r.globals.previousPaths[s].paths[t]<"u"&&(o=r.globals.previousPaths[s].paths[t].d)}return o}}class YB extends An{draw(e,t){const r=this.w;this.graphics=new ce(this.w),this.bar=new An(this.w,this.ctx,this.xyRatios);const o=new Nt(this.w);e=o.getLogSeries(e),this.yRatio=o.getLogYRatios(this.yRatio),this.barHelpers.initVariables(e),r.config.chart.stackType==="100%"&&(e=r.globals.comboCharts?t.map(c=>r.globals.seriesPercent[c]):r.globals.seriesPercent.slice()),this.series=e,this.barHelpers.initializeStackedPrevVars(this);const s=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"});let i=0,l=0;for(let c=0,h=0;c<e.length;c++,h++){const d=r.globals.comboCharts?t[c]:c,{groupIndex:u,columnGroupIndex:p}=this.barHelpers.getGroupIndex(d);this.groupCtx=this[r.labelData.seriesGroups[u]];const f=[],g=[];let m=0;this.yRatio.length>1&&(this.yaxisIndex=r.globals.seriesYAxisReverseMap[d][0],m=d),this.isReversed=r.config.yaxis[this.yaxisIndex]&&r.config.yaxis[this.yaxisIndex].reversed;let x=this.graphics.group({class:"apexcharts-series",seriesName:U.escapeString(r.seriesData.seriesNames[d]),rel:c+1,"data:realIndex":d});Lt.addCollapsedClassToSeries(this.w,x,d);const w=this.graphics.group({class:"apexcharts-datalabels","data:realIndex":d}),b=this.graphics.group({class:"apexcharts-bar-goals-markers"}),y=this.initialPositions(i,l,void 0,void 0,void 0,void 0,m),{xDivision:k,yDivision:v,zeroH:C,zeroW:A}=y;let B=y.barHeight,E=y.barWidth;l=y.y,i=y.x,r.globals.barHeight=B,r.globals.barWidth=E,this.barHelpers.initializeStackedXYVars(this),this.groupCtx.prevY.length===1&&this.groupCtx.prevY[0].every(S=>isNaN(S))&&(this.groupCtx.prevY[0]=this.groupCtx.prevY[0].map(()=>C),this.groupCtx.prevYF[0]=this.groupCtx.prevYF[0].map(()=>0));for(let S=0;S<r.globals.dataPoints;S++){const D=this.barHelpers.getStrokeWidth(c,S,d),M={indexes:{i:c,j:S,realIndex:d,translationsIndex:m,bc:h},strokeWidth:D,x:i,y:l,elSeries:x,columnGroupIndex:p,seriesGroup:r.labelData.seriesGroups[u]};let L=null;this.isHorizontal?(L=this.drawStackedBarPaths(je(Ve({},M),{zeroW:A,barHeight:B,yDivision:v})),E=this.series[c][S]/this.invertedYRatio):(L=this.drawStackedColumnPaths(je(Ve({},M),{xDivision:k,barWidth:E,zeroH:C})),B=this.series[c][S]/this.yRatio[m]);const V=this.barHelpers.drawGoalLine({barXPosition:L.barXPosition,barYPosition:L.barYPosition,goalX:L.goalX,goalY:L.goalY,barHeight:B,barWidth:E});V&&b.add(V),l=L.y,i=L.x,f.push(i),g.push(l);const N=this.barHelpers.getPathFillColor(e,c,S,d);let T="";const I=r.globals.isBarHorizontal?"apexcharts-flip-x":"apexcharts-flip-y";(this.barHelpers.arrBorderRadius[d][S]==="bottom"&&r.seriesData.series[d][S]>0||this.barHelpers.arrBorderRadius[d][S]==="top"&&r.seriesData.series[d][S]<0)&&(T=I),x=this.renderSeries(je(Ve({realIndex:d,pathFill:N.color},N.useRangeColor?{lineFill:N.color}:{}),{j:S,i:c,columnGroupIndex:p,pathFrom:L.pathFrom,pathTo:L.pathTo,strokeWidth:D,elSeries:x,x:i,y:l,series:e,barHeight:B,barWidth:E,elDataLabelsWrap:w,elGoalsMarkers:b,type:"bar",visibleSeries:p,classes:T}))}r.globals.seriesXvalues[d]=f,r.globals.seriesYvalues[d]=g,this.groupCtx.prevY.push(this.groupCtx.yArrj),this.groupCtx.prevYF.push(this.groupCtx.yArrjF),this.groupCtx.prevYVal.push(this.groupCtx.yArrjVal),this.groupCtx.prevX.push(this.groupCtx.xArrj),this.groupCtx.prevXF.push(this.groupCtx.xArrjF),this.groupCtx.prevXVal.push(this.groupCtx.xArrjVal),s.add(x)}return s}initialPositions(e,t,r,o,s,i,l){const c=this.w;let h,d;if(this.isHorizontal){o=c.layout.gridHeight/c.globals.dataPoints;const p=c.config.plotOptions.bar.barHeight;String(p).indexOf("%")===-1?h=parseInt(p,10):h=o*parseInt(p,10)/100,i=c.globals.padHorizontal+(this.isReversed?c.layout.gridWidth-this.baseLineInvertedY:this.baseLineInvertedY),t=(o-h)/2}else{r=c.layout.gridWidth/c.globals.dataPoints,d=r;const p=c.config.plotOptions.bar.columnWidth;c.axisFlags.isXNumeric&&c.globals.dataPoints>1?(r=c.globals.minXDiff/this.xRatio,d=r*parseInt(this.barOptions.columnWidth,10)/100):String(p).indexOf("%")===-1?d=parseInt(p,10):d*=parseInt(p,10)/100,this.isReversed?s=this.baseLineY[l]:s=c.layout.gridHeight-this.baseLineY[l],e=c.globals.padHorizontal+(r-d)/2}const u=c.globals.barGroups.length||1;return{x:e,y:t,yDivision:o,xDivision:r,barHeight:(h??0)/u,barWidth:(d??0)/u,zeroH:s,zeroW:i}}drawStackedBarPaths({indexes:e,barHeight:t,strokeWidth:r,zeroW:o,x:s,y:i,columnGroupIndex:l,seriesGroup:c,yDivision:h,elSeries:d}){var u,p,f,g,m;const x=this.w,w=i+l*t;let b;const y=e.i,k=e.j,v=e.realIndex,C=e.translationsIndex;let A=0;for(let S=0;S<this.groupCtx.prevXF.length;S++)A=A+this.groupCtx.prevXF[S][k];let B=y;if(x.config.series[v].name&&(B=c.indexOf(x.config.series[v].name)),B>0){let S=o;this.groupCtx.prevXVal[B-1][k]<0?S=((u=this.series[y])==null?void 0:u[k])>=0?this.groupCtx.prevX[B-1][k]+A-(this.isReversed?A:0)*2:this.groupCtx.prevX[B-1][k]:this.groupCtx.prevXVal[B-1][k]>=0&&(S=((p=this.series[y])==null?void 0:p[k])>=0?this.groupCtx.prevX[B-1][k]:this.groupCtx.prevX[B-1][k]-A+(this.isReversed?A:0)*2),b=S}else b=o;((f=this.series[y])==null?void 0:f[k])===null?s=b:s=b+((g=this.series[y])==null?void 0:g[k])/this.invertedYRatio-(this.isReversed?((m=this.series[y])==null?void 0:m[k])/this.invertedYRatio:0)*2;const E=this.barHelpers.getBarpaths({barYPosition:w,barHeight:t,x1:b,x2:s,strokeWidth:r,isReversed:this.isReversed,series:this.series,realIndex:e.realIndex,seriesGroup:c,i:y,j:k,w:x});return this.barHelpers.barBackground({j:k,i:y,y1:w,y2:t,elSeries:d}),i=i+h,{pathTo:E.pathTo,pathFrom:E.pathFrom,goalX:this.barHelpers.getGoalValues("x",o,null,y,k,C),barXPosition:b,barYPosition:w,x:s,y:i}}drawStackedColumnPaths({indexes:e,x:t,y:r,xDivision:o,barWidth:s,zeroH:i,columnGroupIndex:l,seriesGroup:c,elSeries:h}){var d,u,p,f,g,m,x,w,b;const y=this.w,k=e.i,v=e.j,C=e.bc,A=e.realIndex,B=e.translationsIndex;if(y.axisFlags.isXNumeric){let V=y.seriesData.seriesX[A][v];V||(V=0),t=(V-y.globals.minX)/this.xRatio-s/2*y.globals.barGroups.length}const E=t+l*s;let S,D=0;for(let V=0;V<this.groupCtx.prevYF.length;V++)D=D+(isNaN(this.groupCtx.prevYF[V][v])?0:this.groupCtx.prevYF[V][v]);let M=k;if(c&&(M=c.indexOf(y.seriesData.seriesNames[A])),M>0&&!y.axisFlags.isXNumeric||M>0&&y.axisFlags.isXNumeric&&y.seriesData.seriesX[A-1][v]===y.seriesData.seriesX[A][v]){let V,N;const T=Math.min(this.yRatio.length+1,A+1);if(this.groupCtx.prevY[M-1]!==void 0&&this.groupCtx.prevY[M-1].length){for(let I=1;I<T;I++)if(!isNaN((d=this.groupCtx.prevY[M-I])==null?void 0:d[v])){N=this.groupCtx.prevY[M-I][v];break}}for(let I=1;I<T;I++)if(((u=this.groupCtx.prevYVal[M-I])==null?void 0:u[v])<0){V=((p=this.series[k])==null?void 0:p[v])>=0?N-D+(this.isReversed?D:0)*2:N;break}else if(((f=this.groupCtx.prevYVal[M-I])==null?void 0:f[v])>=0){V=((g=this.series[k])==null?void 0:g[v])>=0?N:N+D-(this.isReversed?D:0)*2;break}typeof V>"u"&&(V=y.layout.gridHeight),(m=this.groupCtx.prevYF[0])!=null&&m.every(I=>I===0)&&this.groupCtx.prevYF.slice(1,M).every(I=>I.every(Z=>isNaN(Z)))?S=i:S=V}else S=i;(x=this.series[k])!=null&&x[v]?r=S-((w=this.series[k])==null?void 0:w[v])/this.yRatio[B]+(this.isReversed?((b=this.series[k])==null?void 0:b[v])/this.yRatio[B]:0)*2:r=S;const L=this.barHelpers.getColumnPaths({barXPosition:E,barWidth:s,y1:S,y2:r,yRatio:this.yRatio[B],strokeWidth:this.strokeWidth,isReversed:this.isReversed,series:this.series,seriesGroup:c,realIndex:e.realIndex,i:k,j:v,w:y});return this.barHelpers.barBackground({bc:C,j:v,i:k,x1:E,x2:s,elSeries:h}),{pathTo:L.pathTo,pathFrom:L.pathFrom,goalY:this.barHelpers.getGoalValues("y",null,i,k,v,0),barXPosition:E,x:y.axisFlags.isXNumeric?t:t+o,y:r}}}class fp extends An{draw(e,t,r){const o=this.w,s=new ce(this.w),i=o.globals.comboCharts?t:o.config.chart.type,l=new Ia(this.w);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=o.config.plotOptions.bar.horizontal,this.isOHLC=this.candlestickOptions&&this.candlestickOptions.type==="ohlc",this.coreUtils=new Nt(this.w),e=this.coreUtils.getLogSeries(e),this.series=e,this.yRatio=this.coreUtils.getLogYRatios(this.yRatio),this.barHelpers.initVariables(e);const c=s.group({class:`apexcharts-${i}-series apexcharts-plot-series`});for(let h=0;h<e.length;h++){this.isBoxPlot=o.config.chart.type==="boxPlot"||o.config.series[h].type==="boxPlot";let d,u;const p=[],f=[],g=o.globals.comboCharts?r[h]:h,{columnGroupIndex:m}=this.barHelpers.getGroupIndex(g),x=s.group({class:"apexcharts-series",seriesName:U.escapeString(o.seriesData.seriesNames[g]),rel:h+1,"data:realIndex":g});Lt.addCollapsedClassToSeries(this.w,x,g),e[h].length>0&&(this.visibleI=this.visibleI+1);let w=0;this.yRatio.length>1&&(this.yaxisIndex=o.globals.seriesYAxisReverseMap[g][0],w=g);const b=this.barHelpers.initialPositions(g),{y,barHeight:k,yDivision:v,zeroW:C,x:A,barWidth:B,xDivision:E,zeroH:S}=b;u=y,d=A,f.push(d+(B??0)/2);const D=s.group({class:"apexcharts-datalabels","data:realIndex":g}),M=s.group({class:"apexcharts-bar-goals-markers"});for(let L=0;L<o.globals.dataPoints;L++){const V=this.barHelpers.getStrokeWidth(h,L,g);let N=null;const T={indexes:{i:h,j:L,realIndex:g,translationsIndex:w},x:d,y:u,strokeWidth:V,elSeries:x};this.isHorizontal?N=this.drawHorizontalBoxPaths(je(Ve({},T),{yDivision:v,barHeight:k,zeroW:C})):N=this.drawVerticalBoxPaths(je(Ve({},T),{xDivision:E,barWidth:B,zeroH:S})),u=N.y,d=N.x;const I=this.barHelpers.drawGoalLine({barXPosition:N.barXPosition,barYPosition:N.barYPosition,goalX:N.goalX,goalY:N.goalY,barHeight:k,barWidth:B});I&&M.add(I),L>0&&f.push(d+(B??0)/2),p.push(u),N.pathTo.forEach((Z,_)=>{const W=!this.isBoxPlot&&this.candlestickOptions.wick.useFillColor?N.color[_]:o.globals.stroke.colors[h],$=l.fillPath({seriesNumber:g,dataPointIndex:L,color:N.color[_],value:e[h][L]});this.renderSeries({realIndex:g,pathFill:$,lineFill:W,j:L,i:h,pathFrom:N.pathFrom,pathTo:Z,strokeWidth:V,elSeries:x,x:d,y:u,series:e,columnGroupIndex:m,barHeight:k,barWidth:B,elDataLabelsWrap:D,elGoalsMarkers:M,visibleSeries:this.visibleI,type:o.config.chart.type})})}o.globals.seriesXvalues[g]=f,o.globals.seriesYvalues[g]=p,c.add(x)}return c}drawVerticalBoxPaths({indexes:e,x:t,xDivision:r,barWidth:o,zeroH:s,strokeWidth:i}){var l,c;const h=this.w,d=new ce(this.w),u=e.i,p=e.j,{colors:f}=h.config.plotOptions.candlestick,{colors:g}=this.boxOptions,m=e.realIndex,x=V=>Array.isArray(V)?V[m]:V,w=x(f.upward),b=x(f.downward),y=this.yRatio[e.translationsIndex],k=this.getOHLCValue(m,p);let v=s,C=s,A=k.o<k.c?[w]:[b];this.isBoxPlot&&(A=[x(g.lower),x(g.upper)]);let B=Math.min(k.o,k.c),E=Math.max(k.o,k.c),S=k.m;h.axisFlags.isXNumeric&&(t=(h.seriesData.seriesX[m][p]-h.globals.minX)/this.xRatio-o/2);const D=t+o*this.visibleI;typeof((l=this.series[u])==null?void 0:l[p])>"u"||((c=this.series[u])==null?void 0:c[p])===null?(B=s,E=s):(B=s-B/y,E=s-E/y,v=s-k.h/y,C=s-k.l/y,S=s-k.m/y);let M,L=d.move(D+o/2,B);if(h.globals.previousPaths.length>0&&(L=this.getPreviousPath(m,p)),this.isOHLC){const V=D+o/2,N=s-k.o/y,T=s-k.c/y;M=[d.move(V,v)+d.line(V,C)+d.move(V,N)+d.line(D,N)+d.move(V,T)+d.line(D+o,T)]}else this.isBoxPlot?M=[d.move(D,B)+d.line(D+o/2,B)+d.line(D+o/2,v)+d.line(D+o/4,v)+d.line(D+o-o/4,v)+d.line(D+o/2,v)+d.line(D+o/2,B)+d.line(D+o,B)+d.line(D+o,S)+d.line(D,S)+d.line(D,B+i/2),d.move(D,S)+d.line(D+o,S)+d.line(D+o,E)+d.line(D+o/2,E)+d.line(D+o/2,C)+d.line(D+o-o/4,C)+d.line(D+o/4,C)+d.line(D+o/2,C)+d.line(D+o/2,E)+d.line(D,E)+d.line(D,S)+"z"]:M=[d.move(D,E)+d.line(D+o/2,E)+d.line(D+o/2,v)+d.line(D+o/2,E)+d.line(D+o,E)+d.line(D+o,B)+d.line(D+o/2,B)+d.line(D+o/2,C)+d.line(D+o/2,B)+d.line(D,B)+d.line(D,E-i/2)];return L=L+d.move(D,B),h.axisFlags.isXNumeric||(t=t+r),{pathTo:M,pathFrom:L,x:t,y:E,goalY:this.barHelpers.getGoalValues("y",null,s,u,p,e.translationsIndex),barXPosition:D,color:A}}drawHorizontalBoxPaths({indexes:e,y:t,yDivision:r,barHeight:o,zeroW:s,strokeWidth:i}){var l,c;const h=this.w,d=new ce(this.w),u=e.i,p=e.j,f=e.realIndex,{colors:g}=h.config.plotOptions.candlestick,{colors:m}=this.boxOptions,x=M=>Array.isArray(M)?M[f]:M,w=this.invertedYRatio,b=this.getOHLCValue(f,p);let y=b.o<b.c?[x(g.upward)]:[x(g.downward)];this.isBoxPlot&&(y=[x(m.lower),x(m.upper)]);let k=s,v=s,C=Math.min(b.o,b.c),A=Math.max(b.o,b.c),B=b.m;h.axisFlags.isXNumeric&&(t=(h.seriesData.seriesX[f][p]-h.globals.minX)/this.invertedXRatio-o/2);const E=t+o*this.visibleI;typeof((l=this.series[u])==null?void 0:l[p])>"u"||((c=this.series[u])==null?void 0:c[p])===null?(C=s,A=s):(C=s+C/w,A=s+A/w,k=s+b.h/w,v=s+b.l/w,B=s+b.m/w);let S=d.move(C,E+o/2);h.globals.previousPaths.length>0&&(S=this.getPreviousPath(f,p));const D=[d.move(C,E)+d.line(C,E+o/2)+d.line(k,E+o/2)+d.line(k,E+o/2-o/4)+d.line(k,E+o/2+o/4)+d.line(k,E+o/2)+d.line(C,E+o/2)+d.line(C,E+o)+d.line(B,E+o)+d.line(B,E)+d.line(C+i/2,E),d.move(B,E)+d.line(B,E+o)+d.line(A,E+o)+d.line(A,E+o/2)+d.line(v,E+o/2)+d.line(v,E+o-o/4)+d.line(v,E+o/4)+d.line(v,E+o/2)+d.line(A,E+o/2)+d.line(A,E)+d.line(B,E)+"z"];return S=S+d.move(C,E),h.axisFlags.isXNumeric||(t=t+r),{pathTo:D,pathFrom:S,x:A,y:t,goalX:this.barHelpers.getGoalValues("x",s,null,u,p,0),barYPosition:E,color:y}}getOHLCValue(e,t){const r=this.w,o=this.coreUtils,s=u=>u[e]&&u[e][t]!=null?o.getLogValAtSeriesIndex(u[e][t],e):0,i=s(r.candleData.seriesCandleH),l=s(r.candleData.seriesCandleO),c=s(r.candleData.seriesCandleM),h=s(r.candleData.seriesCandleC),d=s(r.candleData.seriesCandleL);return{o:this.isBoxPlot?i:l,h:this.isBoxPlot?l:i,m:c,l:this.isBoxPlot?h:d,c:this.isBoxPlot?d:h}}}class mp{constructor(e,t){this.ctx=t,this.w=e}checkColorRange(){const e=this.w;let t=!1;const r=e.config.plotOptions[e.config.chart.type];return r.colorScale.ranges.length>0&&r.colorScale.ranges.map(o=>{o.from<=0&&(t=!0)}),t}getShadeColor(e,t,r,o){const s=this.w;let i=1;const l=s.config.plotOptions[e].shadeIntensity,c=this.determineColor(e,t,r);s.globals.hasNegs||o?s.config.plotOptions[e].reverseNegativeShade?c.percent<0?i=c.percent/100*(l*1.25):i=(1-c.percent/100)*(l*1.25):c.percent<=0?i=1-(1+c.percent/100)*l:i=(1-c.percent/100)*l:(i=1-c.percent/100,e==="treemap"&&(i=(1-c.percent/100)*(l*1.25)));let h=c.color;const d=new U;if(s.config.plotOptions[e].enableShades)if(this.w.config.theme.mode==="dark"){const u=d.shadeColor(i*-1,c.color);h=U.hexToRgba(U.isColorHex(u)?u:U.rgb2hex(u),s.config.fill.opacity)}else{const u=d.shadeColor(i,c.color);h=U.hexToRgba(U.isColorHex(u)?u:U.rgb2hex(u),s.config.fill.opacity)}return{color:h,colorProps:c}}determineColor(e,t,r){const o=this.w,s=o.seriesData.series[t][r],i=o.config.plotOptions[e];let l=i.colorScale.inverse?r:t;i.distributed&&o.config.chart.type==="treemap"&&(l=r);let c=o.globals.colors[l],h=null,d=Math.min(...o.seriesData.series[t]),u=Math.max(...o.seriesData.series[t]);!i.distributed&&e==="heatmap"&&(d=o.globals.minY,u=o.globals.maxY),typeof i.colorScale.min<"u"&&(d=i.colorScale.min<o.globals.minY?i.colorScale.min:o.globals.minY,u=i.colorScale.max>o.globals.maxY?i.colorScale.max:o.globals.maxY);const p=Math.abs(u)+Math.abs(d);let f=100*s/(p===0?p-1e-6:p);return i.colorScale.ranges.length>0&&i.colorScale.ranges.map(m=>{if(s>=m.from&&s<=m.to){c=m.color,h=m.foreColor?m.foreColor:null,d=m.from,u=m.to;const x=Math.abs(u)+Math.abs(d);f=100*s/(x===0?x-1e-6:x)}}),{color:c,foreColor:h,percent:f}}calculateDataLabels({text:e,x:t,y:r,i:o,j:s,colorProps:i,fontSize:l}){const h=this.w.config.dataLabels,d=new ce(this.w),u=new Eo(this.w,this.ctx);let p=null;if(h.enabled){p=d.group({class:"apexcharts-data-labels"});const f=h.offsetX,g=h.offsetY,m=t+f,x=r+parseFloat(h.style.fontSize)/3+g;u.plotDataLabelsText({x:m,y:x,text:e,i:o,j:s,color:i.foreColor,parent:p,fontSize:l,dataLabelsConfig:h})}return p}}class $B{constructor(e,t,r){this.ctx=t,this.w=e,this.xRatio=r.xRatio,this.yRatio=r.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new mp(e,t),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}draw(e){const t=this.w,r=new ce(this.w,this.ctx),o=r.group({class:"apexcharts-heatmap"});o.attr("clip-path",`url(#gridRectMask${t.globals.cuid})`);const s=t.layout.gridWidth/t.globals.dataPoints,i=t.layout.gridHeight/t.seriesData.series.length;let l=0,c=!1;this.negRange=this.helpers.checkColorRange();const h=e.slice();t.config.yaxis[0].reversed&&(c=!0,h.reverse());for(let u=c?0:h.length-1;c?u<h.length:u>=0;c?u++:u--){const p=r.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:U.escapeString(t.seriesData.seriesNames[u]),rel:u+1,"data:realIndex":u});if(Lt.addCollapsedClassToSeries(this.w,p,u),r.setupEventDelegation(p,".apexcharts-heatmap-rect"),t.config.chart.dropShadow.enabled){const x=t.config.chart.dropShadow;new _t(this.w).dropShadow(p,x,u)}let f=0;const g=t.config.plotOptions.heatmap.shadeIntensity;let m=0;for(let x=0;x<t.globals.dataPoints;x++){if(t.seriesData.seriesX.length&&!t.globals.allSeriesHasEqualX&&t.globals.minX+t.globals.minXDiff*x<t.seriesData.seriesX[u][m]){f=f+s;continue}if(m>=h[u].length)break;const w=this.helpers.getShadeColor(t.config.chart.type,u,m,this.negRange);let b=w.color;const y=w.colorProps;t.config.fill.type==="image"&&(b=new Ia(this.w).fillPath({seriesNumber:u,dataPointIndex:m,opacity:t.globals.hasNegs?y.percent<0?1-(1+y.percent/100):g+y.percent/100:y.percent/100,patternID:U.randomId(),width:t.config.fill.image.width?t.config.fill.image.width:s,height:t.config.fill.image.height?t.config.fill.image.height:i}));const k=this.rectRadius,v=r.drawRect(f,l,s,i,k);if(v.attr({cx:f,cy:l}),v.node.classList.add("apexcharts-heatmap-rect"),p.add(v),v.attr({fill:b,i:u,index:u,j:m,val:e[u][m],"stroke-width":this.strokeWidth,stroke:t.config.plotOptions.heatmap.useFillColorAsStroke?b:t.globals.stroke.colors[0],color:b}),t.config.chart.animations.enabled&&!t.globals.dataChanged){let E=1;t.globals.resized||(E=t.config.chart.animations.speed),this.animateHeatMap(v,f,l,s,i,E)}if(t.globals.dataChanged){let E=1;if(this.dynamicAnim.enabled&&t.globals.shouldAnimate){E=this.dynamicAnim.speed;let S=t.globals.previousPaths[u]&&t.globals.previousPaths[u][m]&&t.globals.previousPaths[u][m].color;S||(S="rgba(255, 255, 255, 0)"),this.animateHeatColor(v,U.isColorHex(S)?S:U.rgb2hex(S),U.isColorHex(b)?b:U.rgb2hex(b),E)}}const C=t.config.dataLabels.formatter,A=C(t.seriesData.series[u][m],{value:t.seriesData.series[u][m],seriesIndex:u,dataPointIndex:m,w:t}),B=this.helpers.calculateDataLabels({text:A,x:f+s/2,y:l+i/2,i:u,j:m,colorProps:y,series:h});B!==null&&p.add(B),f=f+s,m++}l=l+i,o.add(p)}const d=t.globals.yAxisScale[0].result.slice();return t.config.yaxis[0].reversed?d.unshift(""):d.push(""),t.globals.yAxisScale[0].result=d,o}animateHeatMap(e,t,r,o,s,i){const l=new vn(this.w);l.animateRect(e,{x:t+o/2,y:r+s/2,width:0,height:0},{x:t,y:r,width:o,height:s},i,()=>{l.animationCompleted(e)})}animateHeatColor(e,t,r,o){e.attr({fill:t}).animate(o).attr({fill:r})}}class WB{constructor(e){this.w=e.w,this.lineCtx=e}sameValueSeriesFix(e,t){const r=this.w;if((r.config.fill.type==="gradient"||r.config.fill.type[e]==="gradient")&&new Nt(this.lineCtx.w).seriesHaveSameValues(e)){const s=t[e].slice();s[s.length-1]=s[s.length-1]+1e-6,t[e]=s}return t}calculatePoints({series:e,realIndex:t,x:r,y:o,i:s,j:i,prevY:l}){const c=this.w,h=[],d=[];let u=this.lineCtx.categoryAxisCorrection+c.config.markers.offsetX;return c.axisFlags.isXNumeric&&(u=(c.seriesData.seriesX[t][0]-c.globals.minX)/this.lineCtx.xRatio+c.config.markers.offsetX),i===0&&(h.push(u),d.push(U.isNumber(e[s][0])?l+c.config.markers.offsetY:null)),h.push(r+c.config.markers.offsetX),d.push(U.isNumber(e[s][i+1])?o+c.config.markers.offsetY:null),{x:h,y:d}}checkPreviousPaths({pathFromLine:e,pathFromArea:t,realIndex:r}){const o=this.w;for(let s=0;s<o.globals.previousPaths.length;s++){const i=o.globals.previousPaths[s];(i.type==="line"||i.type==="area")&&i.paths.length>0&&parseInt(i.realIndex,10)===parseInt(r,10)&&(i.type==="line"?(this.lineCtx.appendPathFrom=!1,e=o.globals.previousPaths[s].paths[0].d):i.type==="area"&&(this.lineCtx.appendPathFrom=!1,t=o.globals.previousPaths[s].paths[0].d,o.config.stroke.show&&o.globals.previousPaths[s].paths[1]&&(e=o.globals.previousPaths[s].paths[1].d)))}return{pathFromLine:e,pathFromArea:t}}determineFirstPrevY({i:e,realIndex:t,series:r,prevY:o,lineYPosition:s,translationsIndex:i}){var l,c,h;const d=this.w,u=d.config.chart.stacked&&!d.globals.comboCharts||d.config.chart.stacked&&d.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||((l=this.w.config.series[t])==null?void 0:l.type)==="bar"||((c=this.w.config.series[t])==null?void 0:c.type)==="column");if(typeof((h=r[e])==null?void 0:h[0])<"u")u?e>0?s=this.lineCtx.prevSeriesY[e-1][0]:s=this.lineCtx.zeroY:s=this.lineCtx.zeroY,o=s-r[e][0]/this.lineCtx.yRatio[i]+(this.lineCtx.isReversed?r[e][0]/this.lineCtx.yRatio[i]:0)*2;else if(u&&e>0&&typeof r[e][0]>"u"){for(let p=e-1;p>=0;p--)if(r[p][0]!==null&&typeof r[p][0]<"u"){s=this.lineCtx.prevSeriesY[p][0],o=s;break}}return{prevY:o,lineYPosition:s}}}const jB=n=>{const e=GB(n),t=n.length-1,r=1e-6,o=[];let s,i,l,c;for(let h=0;h<t;h++)l=J0(n[h],n[h+1]),Math.abs(l)<r?e[h]=e[h+1]=0:(s=e[h]/l,i=e[h+1]/l,c=s*s+i*i,c>9&&(c=l*3/Math.sqrt(c),e[h]=c*s,e[h+1]=c*i));for(let h=0;h<=t;h++)c=(n[Math.min(t,h+1)][0]-n[Math.max(0,h-1)][0])/(6*(1+e[h]*e[h])),o.push([c||0,e[h]*c||0]);return o},UB=n=>{let e="";for(let t=0;t<n.length;t++){const r=n[t],o=r.length;o>4?(e+=`C${r[0]}, ${r[1]}`,e+=`, ${r[2]}, ${r[3]}`,e+=`, ${r[4]}, ${r[5]}`):o>2&&(e+=`S${r[0]}, ${r[1]}`,e+=`, ${r[2]}, ${r[3]}`)}return e},gp={points(n){const e=jB(n),t=n[1],r=n[0],o=[],s=e[1],i=e[0];o.push(r,[r[0]+i[0],r[1]+i[1],t[0]-s[0],t[1]-s[1],t[0],t[1]]);for(let l=2,c=e.length;l<c;l++){const h=n[l],d=e[l];o.push([h[0]-d[0],h[1]-d[1],h[0],h[1]])}return o},slice(n,e,t){const r=n.slice(e,t);if(e){if(t-e>1&&r[1].length<6){const o=r[0].length;r[1]=[r[0][o-2]*2-r[0][o-4],r[0][o-1]*2-r[0][o-3]].concat(r[1])}r[0]=r[0].slice(-2)}return r}};function J0(n,e){return(e[1]-n[1])/(e[0]-n[0])}function GB(n){const e=[];let t=n[0],r=n[1],o=e[0]=J0(t,r),s=1;for(let i=n.length-1;s<i;s++)t=r,r=n[s+1],e[s]=(o+(o=J0(t,r)))*.5;return e[s]=o,e}class Ls{constructor(e,t,r,o){this.ctx=t,this.w=e,this.xyRatios=r,this.xRatio=0,this.yRatio=[],this.zRatio=0,this.baseLineY=[],this.pointsChart=!(this.w.config.chart.type!=="bubble"&&this.w.config.chart.type!=="scatter")||o,this.scatter=new Gu(this.w,this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new WB(this),this.markers=new Cn(this.w,this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0,this.xDivision=0,this.zeroY=0,this.areaBottomY=0,this.strokeWidth=0,this.isReversed=!1,this.appendPathFrom=!1,this.elSeries=null,this.elPointsMain=null,this.elDataLabelsWrap=null}draw(e,t,r,o){var s;const i=this.w,l=new ce(this.w),c=i.globals.comboCharts?t:i.config.chart.type,h=l.group({class:`apexcharts-${c}-series apexcharts-plot-series`}),d=new Nt(this.w);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,e=d.getLogSeries(e),this.yRatio=d.getLogYRatios(this.yRatio),this.prevSeriesY=[];const u=[];for(let p=0;p<e.length;p++){e=this.lineHelpers.sameValueSeriesFix(p,e);const f=i.globals.comboCharts?r[p]:p,g=this.yRatio.length>1?f:0;this._initSerieVariables(e,p,f);const m=[],x=[],w=[];let b=i.globals.padHorizontal+this.categoryAxisCorrection;const y=1,k=[],v=[];Lt.addCollapsedClassToSeries(this.w,this.elSeries,f),i.axisFlags.isXNumeric&&i.seriesData.seriesX.length>0&&(b=(i.seriesData.seriesX[f][0]-i.globals.minX)/this.xRatio),w.push(b);const C=b;let A;const B=C;let E=this.zeroY,S=this.zeroY;const D=0;E=this.lineHelpers.determineFirstPrevY({i:p,realIndex:f,series:e,prevY:E,lineYPosition:D,translationsIndex:g}).prevY,i.config.stroke.curve==="monotoneCubic"&&e[p][0]===null?m.push(null):m.push(E);const L=E;let V;c==="rangeArea"&&(V=this.lineHelpers.determineFirstPrevY({i:p,realIndex:f,series:o,prevY:S,lineYPosition:D,translationsIndex:g}),S=V.prevY,A=S,x.push(m[0]!==null?S:null));const N=this._calculatePathsFrom({type:c,series:e,i:p,realIndex:f,translationsIndex:g,prevX:B,prevY:E,prevY2:S}),T=[m[0]],I=[x[0]],Z={type:c,series:e,realIndex:f,translationsIndex:g,i:p,x:b,y,pX:C,pY:L,pathsFrom:N,linePaths:k,areaPaths:v,seriesIndex:r,lineYPosition:D,xArrj:w,yArrj:m,y2Arrj:x,seriesRangeEnd:o},_=this._iterateOverDataPoints(je(Ve({},Z),{iterations:c==="rangeArea"?e[p].length-1:void 0,isRangeStart:!0}));if(c==="rangeArea"){const W=this._calculatePathsFrom({series:o,i:p,realIndex:f,prevX:B,prevY:S}),$=this._iterateOverDataPoints(je(Ve({},Z),{series:o,xArrj:[b],yArrj:T,y2Arrj:I,pY:A,areaPaths:_.areaPaths,pathsFrom:W,iterations:o[p].length-1,isRangeStart:!1})),R=_.linePaths.length/2;for(let J=0;J<R;J++)_.linePaths[J]=$.linePaths[J+R]+_.linePaths[J];_.linePaths.splice(R),_.pathFromLine=$.pathFromLine+_.pathFromLine}else _.pathFromArea+="z";this._handlePaths({type:c,realIndex:f,i:p,paths:_}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),u.push(this.elSeries)}if(typeof((s=i.config.series[0])==null?void 0:s.zIndex)<"u"&&u.sort((p,f)=>Number(p.node.getAttribute("zIndex"))-Number(f.node.getAttribute("zIndex"))),i.config.chart.stacked)for(let p=u.length-1;p>=0;p--)h.add(u[p]);else for(let p=0;p<u.length;p++)h.add(u[p]);return h}_initSerieVariables(e,t,r){const o=this.w,s=new ce(this.w);this.xDivision=o.layout.gridWidth/(o.globals.dataPoints-(o.config.xaxis.tickPlacement==="on"?1:0)),this.strokeWidth=Array.isArray(o.config.stroke.width)?o.config.stroke.width[r]:o.config.stroke.width;let i=0;this.yRatio.length>1&&(this.yaxisIndex=o.globals.seriesYAxisReverseMap[r],i=r),this.isReversed=o.config.yaxis[this.yaxisIndex]&&o.config.yaxis[this.yaxisIndex].reversed,this.zeroY=o.layout.gridHeight-this.baseLineY[i]-(this.isReversed?o.layout.gridHeight:0)+(this.isReversed?this.baseLineY[i]*2:0),this.areaBottomY=this.zeroY,(this.zeroY>o.layout.gridHeight||o.config.plotOptions.area.fillTo==="end")&&(this.areaBottomY=o.layout.gridHeight),this.categoryAxisCorrection=this.xDivision/2;const l=o.config.series[r];if(this.elSeries=s.group({class:"apexcharts-series",zIndex:typeof l.zIndex<"u"?l.zIndex:r,seriesName:U.escapeString(o.seriesData.seriesNames[r])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":r}),o.globals.hasNullValues){const h=this.markers.plotChartMarkers({pointsPos:{x:[0],y:[o.layout.gridHeight+o.globals.markers.largestSize]},seriesIndex:t,j:0,pSize:.1,alwaysDrawMarker:!0,isVirtualPoint:!0});h!==null&&this.elPointsMain.add(h)}this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":r});const c=e[t].length===o.globals.dataPoints;this.elSeries.attr({"data:longestSeries":c,rel:t+1,"data:realIndex":r}),this.appendPathFrom=!0}_calculatePathsFrom({type:e,series:t,i:r,realIndex:o,translationsIndex:s,prevX:i,prevY:l,prevY2:c}){const h=this.w,d=new ce(this.w);let u,p,f,g;if(t[r][0]===null){for(let m=0;m<t[r].length;m++)if(t[r][m]!==null){i=this.xDivision*m,l=this.zeroY-t[r][m]/this.yRatio[s],u=d.move(i,l),p=d.move(i,this.areaBottomY);break}}else u=d.move(i,l),e==="rangeArea"&&(u=d.move(i,c)+d.line(i,l)),p=d.move(i,this.areaBottomY)+d.line(i,l);if(f=d.move(0,this.areaBottomY)+d.line(0,this.areaBottomY),g=d.move(0,this.areaBottomY)+d.line(0,this.areaBottomY),h.globals.previousPaths.length>0){const m=this.lineHelpers.checkPreviousPaths({pathFromLine:f,pathFromArea:g,realIndex:o});f=m.pathFromLine,g=m.pathFromArea}return{prevX:i,prevY:l,linePath:u,areaPath:p,pathFromLine:f,pathFromArea:g}}_handlePaths({type:e,realIndex:t,i:r,paths:o}){const s=this.w,i=new ce(this.w),l=new Ia(this.w);this.prevSeriesY.push(o.yArrj),s.globals.seriesXvalues[t]=o.xArrj,s.globals.seriesYvalues[t]=o.yArrj;const c=s.config.forecastDataPoints;if(c.count>0&&e!=="rangeArea"){const d=s.globals.seriesXvalues[t][s.globals.seriesXvalues[t].length-c.count-1],u=i.drawRect(d,0,s.layout.gridWidth,s.layout.gridHeight,0);s.dom.elForecastMask.appendChild(u.node);const p=i.drawRect(0,0,d,s.layout.gridHeight,0);s.dom.elNonForecastMask.appendChild(p.node)}this.pointsChart||s.globals.delayedElements.push({el:this.elPointsMain.node,index:t});const h={i:r,realIndex:t,animationDelay:r,initialSpeed:s.config.chart.animations.speed,dataChangeSpeed:s.config.chart.animations.dynamicAnimation.speed,className:`apexcharts-${e}`};if(e==="area"){const d=l.fillPath({seriesNumber:t});for(let u=0;u<o.areaPaths.length;u++){const p=i.renderPaths(je(Ve({},h),{pathFrom:o.pathFromArea,pathTo:o.areaPaths[u],stroke:"none",strokeWidth:0,strokeLineCap:null,fill:d}));this.elSeries.add(p)}}if(s.config.stroke.show&&!this.pointsChart){let d=null;if(e==="line")d=l.fillPath({seriesNumber:t,i:r});else if(s.config.stroke.fill.type==="solid")d=s.globals.stroke.colors[t];else{const u=s.config.fill;s.config.fill=s.config.stroke.fill,d=l.fillPath({seriesNumber:t,i:r}),s.config.fill=u}for(let u=0;u<o.linePaths.length;u++){let p=d;e==="rangeArea"&&(p=l.fillPath({seriesNumber:t}));const f=je(Ve({},h),{pathFrom:o.pathFromLine,pathTo:o.linePaths[u],stroke:d,strokeWidth:this.strokeWidth,strokeLineCap:s.config.stroke.lineCap,fill:e==="rangeArea"?p:"none"}),g=i.renderPaths(f);if(this.elSeries.add(g),g.attr("fill-rule","evenodd"),c.count>0&&e!=="rangeArea"){const m=i.renderPaths(f);m.node.setAttribute("stroke-dasharray",c.dashArray),c.strokeWidth&&m.node.setAttribute("stroke-width",c.strokeWidth),this.elSeries.add(m),m.attr("clip-path",`url(#forecastMask${s.globals.cuid})`),g.attr("clip-path",`url(#nonForecastMask${s.globals.cuid})`)}}}}_iterateOverDataPoints({type:e,series:t,iterations:r,realIndex:o,translationsIndex:s,i,x:l,y:c,pX:h,pY:d,pathsFrom:u,linePaths:p,areaPaths:f,seriesIndex:g,lineYPosition:m,xArrj:x,yArrj:w,y2Arrj:b,isRangeStart:y,seriesRangeEnd:k}){var v,C;const A=this.w,B=new ce(this.w),E=this.yRatio;let{prevY:S,linePath:D,areaPath:M,pathFromLine:L,pathFromArea:V}=u;const N=U.isNumber(A.globals.minYArr[o])?A.globals.minYArr[o]:A.globals.minY;r||(r=A.globals.dataPoints>1?A.globals.dataPoints-1:A.globals.dataPoints);const T=(R,J)=>J-R/E[s]+(this.isReversed?R/E[s]:0)*2;let I=c;const Z=A.config.chart.stacked&&!A.globals.comboCharts||A.config.chart.stacked&&A.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||((v=this.w.config.series[o])==null?void 0:v.type)==="bar"||((C=this.w.config.series[o])==null?void 0:C.type)==="column");let _=A.config.stroke.curve;Array.isArray(_)&&(Array.isArray(g)?_=_[g[i]]:_=_[i]);let W=0,$;for(let R=0;R<r&&t[i].length!==0;R++){const J=typeof t[i][R+1]>"u"||t[i][R+1]===null;if(A.axisFlags.isXNumeric){let ee=A.seriesData.seriesX[o][R+1];typeof A.seriesData.seriesX[o][R+1]>"u"&&(ee=A.seriesData.seriesX[o][r-1]),l=(ee-A.globals.minX)/this.xRatio}else l=l+this.xDivision;if(Z)if(i>0&&A.globals.collapsedSeries.length<A.config.series.length-1){const ee=ae=>{for(let he=ae;he>0;he--)if(A.globals.collapsedSeriesIndices.indexOf(g?.[he]||he)>-1)he--;else return he;return 0};m=this.prevSeriesY[ee(i-1)][R+1]}else m=this.zeroY;else m=this.zeroY;J?c=T(N,m):(c=T(t[i][R+1],m),e==="rangeArea"&&(I=T(k[i][R+1],m))),x.push(t[i][R+1]===null?null:l),J&&(A.config.stroke.curve==="smooth"||A.config.stroke.curve==="monotoneCubic")?(w.push(null),b.push(null)):(w.push(c),b.push(I));const ie=this.lineHelpers.calculatePoints({series:t,x:l,y:c,realIndex:o,i,j:R,prevY:S}),ue=this._createPaths({type:e,series:t,i,j:R,x:l,y:c,y2:I,xArrj:x,yArrj:w,y2Arrj:b,pX:h,pY:d,pathState:W,segmentStartX:$,linePath:D,areaPath:M,linePaths:p,areaPaths:f,curve:_,isRangeStart:y});f=ue.areaPaths,p=ue.linePaths,h=ue.pX,d=ue.pY,W=ue.pathState,$=ue.segmentStartX,M=ue.areaPath,D=ue.linePath,this.appendPathFrom&&!A.globals.hasNullValues&&!(_==="monotoneCubic"&&e==="rangeArea")&&(L+=B.line(l,this.areaBottomY),V+=B.line(l,this.areaBottomY)),this.handleNullDataPoints(t,ie,i,R,o),this._handleMarkersAndLabels({type:e,pointsPos:ie,i,j:R,realIndex:o,isRangeStart:y})}return{yArrj:w,xArrj:x,pathFromArea:V,areaPaths:f,pathFromLine:L,linePaths:p,linePath:D,areaPath:M}}_handleMarkersAndLabels({type:e,pointsPos:t,isRangeStart:r,i:o,j:s,realIndex:i}){const l=this.w,c=new Eo(this.w,this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,s,{realIndex:i,pointsPos:t,zRatio:this.zRatio,elParent:this.elPointsMain});else{l.seriesData.series[o].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");const d=this.markers.plotChartMarkers({pointsPos:t,seriesIndex:i,j:s+1});d!==null&&this.elPointsMain.add(d)}const h=c.drawDataLabel({type:e,isRangeStart:r,pos:t,i,j:s+1});h!==null&&this.elDataLabelsWrap.add(h)}_createPaths({type:e,series:t,i:r,j:o,x:s,y:i,xArrj:l,yArrj:c,y2:h,y2Arrj:d,pX:u,pY:p,pathState:f,segmentStartX:g,linePath:m,areaPath:x,linePaths:w,areaPaths:b,curve:y,isRangeStart:k}){const v=new ce(this.w),C=this.areaBottomY,A=e==="rangeArea",B=e==="rangeArea"&&k;switch(y){case"monotoneCubic":{const E=k?c:d,S=(L,V)=>L.map((N,T)=>[N,V[T]]).filter(N=>N[1]!==null),D=L=>{const V=[];let N=0;return L.forEach(T=>{T!==null?N++:N>0&&(V.push(N),N=0)}),N>0&&V.push(N),V},M=(L,V)=>{const N=D(L),T=[];for(let I=0,Z=0;I<N.length;Z+=N[I++])T[I]=gp.slice(V,Z,Z+N[I]);return T};switch(f){case 0:if(E[o+1]===null)break;f=1;case 1:if(!(A?l.length===t[r].length:o===t[r].length-2))break;case 2:{const L=k?l:l.slice().reverse(),V=k?E:E.slice().reverse(),N=S(L,V),T=N.length>1?gp.points(N):N;let I=[];A&&(B?b=N:I=b.reverse());let Z=0,_=0;if(M(V,T).forEach(W=>{Z++;const $=UB(W),R=_;_+=W.length;const J=_-1;B?m=v.move(N[R][0],N[R][1])+$:A?m=v.move(I[R][0],I[R][1])+v.line(N[R][0],N[R][1])+$+v.line(I[J][0],I[J][1]):(m=v.move(N[R][0],N[R][1])+$,x=m+v.line(N[J][0],C)+v.line(N[R][0],C)+"z",b.push(x)),w.push(m)}),A&&Z>1&&!B){const W=w.slice(Z).reverse();w.splice(Z),W.forEach($=>w.push($))}f=0;break}}break}case"smooth":{const E=(s-u)*.35;if(t[r][o]===null)f=0;else switch(f){case 0:if(g=u,B?m=v.move(u,d[o])+v.line(u,p):m=v.move(u,p),x=v.move(u,p),t[r][o+1]===null||typeof t[r][o+1]>"u"){w.push(m),b.push(x);break}if(f=1,o<t[r].length-2){const S=v.curve(u+E,p,s-E,i,s,i);m+=S,x+=S;break}case 1:if(t[r][o+1]===null)B?m+=v.line(u,h):m+=v.move(u,p),x+=v.line(u,C)+v.line(g,C)+"z",w.push(m),b.push(x),f=-1;else{const S=v.curve(u+E,p,s-E,i,s,i);m+=S,x+=S,o>=t[r].length-2&&(B&&(m+=v.curve(s,i,s,i,s,h)+v.move(s,h)),x+=v.curve(s,i,s,i,s,C)+v.line(g,C)+"z",w.push(m),b.push(x),f=-1)}break}u=s,p=i;break}default:{const E=(S,D,M)=>{let L="";switch(S){case"stepline":L=v.line(D,null,"H")+v.line(null,M,"V");break;case"linestep":L=v.line(null,M,"V")+v.line(D,null,"H");break;case"straight":L=v.line(D,M);break}return L};if(t[r][o]===null)f=0;else switch(f){case 0:if(g=u,B?m=v.move(u,d[o])+v.line(u,p):m=v.move(u,p),x=v.move(u,p),t[r][o+1]===null||typeof t[r][o+1]>"u"){w.push(m),b.push(x);break}if(f=1,o<t[r].length-2){const S=E(y,s,i);m+=S,x+=S;break}case 1:if(t[r][o+1]===null)B?m+=v.line(u,h):m+=v.move(u,p),x+=v.line(u,C)+v.line(g,C)+"z",w.push(m),b.push(x),f=-1;else{const S=E(y,s,i);m+=S,x+=S,o>=t[r].length-2&&(B&&(m+=v.line(s,h)),x+=v.line(s,C)+v.line(g,C)+"z",w.push(m),b.push(x),f=-1)}break}u=s,p=i;break}}return{linePaths:w,areaPaths:b,pX:u,pY:p,pathState:f,segmentStartX:g,linePath:m,areaPath:x}}handleNullDataPoints(e,t,r,o,s){const i=this.w;if(e[r][o]===null&&i.config.markers.showNullDataPoints||e[r].length===1){let l=this.strokeWidth-i.config.markers.strokeWidth/2;l>0||(l=0);const c=this.markers.plotChartMarkers({pointsPos:t,seriesIndex:s,j:o+1,pSize:l,alwaysDrawMarker:!0});c!==null&&this.elPointsMain.add(c)}}}class xp{constructor(e){this.w=e}drawYAxisTexts(e,t,r,o){const s=this.w,i=s.config.yaxis[0],l=s.formatters.yLabelFormatters[0];return new ce(this.w).drawText({x:e+i.labels.offsetX,y:t+i.labels.offsetY,text:l(o,r),textAnchor:"middle",fontSize:i.labels.style.fontSize,fontFamily:i.labels.style.fontFamily,foreColor:Array.isArray(i.labels.style.colors)?i.labels.style.colors[r]:i.labels.style.colors})}}class sl{constructor(e,t){this.ctx=t,this.w=e,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animBeginArr=[0],this.animDur=0,this.donutDataLabels=this.w.config.plotOptions.pie.donut.labels,this.lineColorArr=e.globals.stroke.colors!==void 0?e.globals.stroke.colors:e.globals.colors,this.defaultSize=Math.min(e.layout.gridWidth,e.layout.gridHeight),this.centerY=this.defaultSize/2,this.centerX=e.layout.gridWidth/2,e.config.chart.type==="radialBar"?this.fullAngle=360:this.fullAngle=Math.abs(e.config.plotOptions.pie.endAngle-e.config.plotOptions.pie.startAngle),this.initialAngle=e.config.plotOptions.pie.startAngle%this.fullAngle,e.globals.radialSize=this.defaultSize/2.05-e.config.stroke.width-(e.config.chart.sparkline.enabled?0:e.config.chart.dropShadow.blur),this.donutSize=e.globals.radialSize*parseInt(e.config.plotOptions.pie.donut.size,10)/100;const r=e.config.plotOptions.pie.customScale,o=e.layout.gridWidth/2,s=e.layout.gridHeight/2;this.translateX=o-o*r,this.translateY=s-s*r,this.dataLabelsGroup=new ce(this.w).group({class:"apexcharts-datalabels-group",transform:`translate(${this.translateX}, ${this.translateY}) scale(${r})`}),this.maxY=0,this.sliceLabels=[],this.sliceSizes=[],this.prevSectorAngleArr=[]}draw(e){const t=this,r=this.w,o=new ce(this.w),s=o.group({class:"apexcharts-pie"});if(r.globals.noData)return s;let i=0;for(let d=0;d<e.length;d++)i+=U.negToZero(e[d]);const l=[],c=o.group();i===0&&(i=1e-5),e.forEach(d=>{this.maxY=Math.max(this.maxY,d)}),r.config.yaxis[0].max&&(this.maxY=r.config.yaxis[0].max),r.config.grid.position==="back"&&this.chartType==="polarArea"&&this.drawPolarElements(s);for(let d=0;d<e.length;d++){const u=this.fullAngle*U.negToZero(e[d])/i;l.push(u),this.chartType==="polarArea"?(l[d]=this.fullAngle/e.length,this.sliceSizes.push(r.globals.radialSize*e[d]/this.maxY)):this.sliceSizes.push(r.globals.radialSize)}if(r.globals.dataChanged){let d=0;for(let p=0;p<r.globals.previousPaths.length;p++)d+=U.negToZero(r.globals.previousPaths[p]);let u;for(let p=0;p<r.globals.previousPaths.length;p++)u=this.fullAngle*U.negToZero(r.globals.previousPaths[p])/d,this.prevSectorAngleArr.push(u)}if(this.donutSize<0&&(this.donutSize=0),this.chartType==="donut"){const d=o.drawCircle(this.donutSize);d.attr({cx:this.centerX,cy:this.centerY,fill:r.config.plotOptions.pie.donut.background?r.config.plotOptions.pie.donut.background:"transparent"}),c.add(d)}const h=t.drawArcs(l,e);if(this.sliceLabels.forEach(d=>{h.add(d)}),c.attr({transform:`translate(${this.translateX}, ${this.translateY}) scale(${r.config.plotOptions.pie.customScale})`}),c.add(h),s.add(c),this.donutDataLabels.show){const d=this.renderInnerDataLabels(this.dataLabelsGroup,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show});s.add(d)}return r.config.grid.position==="front"&&this.chartType==="polarArea"&&this.drawPolarElements(s),s}drawArcs(e,t){const r=this.w,o=new _t(this.w),s=new ce(this.w),i=new Ia(this.w),l=s.group({class:"apexcharts-slices"});let c=this.initialAngle,h=this.initialAngle,d=this.initialAngle,u=this.initialAngle;this.strokeWidth=r.config.stroke.show?r.config.stroke.width:0;for(let p=0;p<e.length;p++){const f=s.group({class:"apexcharts-series apexcharts-pie-series",seriesName:U.escapeString(r.seriesData.seriesNames[p]),rel:p+1,"data:realIndex":p});l.add(f),c=d,h=u,d=c+e[p],u=h+this.prevSectorAngleArr[p];const g=d<c?this.fullAngle+d-c:d-c,m=i.fillPath({seriesNumber:p,size:this.sliceSizes[p],value:t[p]}),x=this.getChangedPath(h,u),w=s.drawPath({d:x,stroke:Array.isArray(this.lineColorArr)?this.lineColorArr[p]:this.lineColorArr,strokeWidth:0,fill:m,fillOpacity:r.config.fill.opacity,classes:`apexcharts-pie-area apexcharts-${this.chartType.toLowerCase()}-slice-${p}`});if(w.attr({index:0,j:p}),o.setSelectionFilter(w,0,p),r.config.chart.dropShadow.enabled){const C=r.config.chart.dropShadow;o.dropShadow(w,C,p)}this.addListeners(w,this.donutDataLabels);let b={x:0,y:0};const y=(c+g/2)%this.fullAngle;let k={x:this.centerX,y:this.centerY};this.chartType==="pie"||this.chartType==="polarArea"?(b=U.polarToCartesian(this.centerX,this.centerY,r.globals.radialSize/1.25+r.config.plotOptions.pie.dataLabels.offset,y),k=U.polarToCartesian(this.centerX,this.centerY,r.globals.radialSize/2,y)):this.chartType==="donut"&&(b=U.polarToCartesian(this.centerX,this.centerY,(r.globals.radialSize+this.donutSize)/2+r.config.plotOptions.pie.dataLabels.offset,y),k=U.polarToCartesian(this.centerX,this.centerY,(r.globals.radialSize+this.donutSize)/2,y)),ce.setAttrs(w.node,{"data:angle":g,"data:startAngle":c,"data:strokeWidth":this.strokeWidth,"data:value":t[p],"data:cx":k.x,"data:cy":k.y}),f.add(w);let v=0;if(this.initialAnim&&!r.globals.resized&&!r.globals.dataChanged?(v=g/this.fullAngle*r.config.chart.animations.speed,v===0&&(v=1),this.animDur=v+this.animDur,this.animBeginArr.push(this.animDur)):this.animBeginArr.push(0),this.dynamicAnim&&r.globals.dataChanged?this.animatePaths(w,{size:this.sliceSizes[p],endAngle:d,startAngle:c,prevStartAngle:h,prevEndAngle:u,animateStartingPos:!0,i:p,animBeginArr:this.animBeginArr,shouldSetPrevPaths:!0,dur:r.config.chart.animations.dynamicAnimation.speed}):this.animatePaths(w,{size:this.sliceSizes[p],endAngle:d,startAngle:c,i:p,totalItems:e.length-1,animBeginArr:this.animBeginArr,dur:v}),r.config.plotOptions.pie.expandOnClick&&this.chartType!=="polarArea"&&w.node.addEventListener("mouseup",this.pieClicked.bind(this,p)),typeof r.interact.selectedDataPoints[0]<"u"&&r.interact.selectedDataPoints[0].indexOf(p)>-1&&this.pieClicked(p),r.config.dataLabels.enabled){const C=b.x,A=b.y;let B=100*g/this.fullAngle+"%";if(g!==0&&r.config.plotOptions.pie.dataLabels.minAngleToShowLabel<e[p]){const E=r.config.dataLabels.formatter;E!==void 0&&(B=E(r.globals.seriesPercent[p][0],{seriesIndex:p,w:r}));const S=r.globals.dataLabels.style.colors[p],D=s.group({class:"apexcharts-datalabels"}),M=s.drawText({x:C,y:A,text:B,textAnchor:"middle",fontSize:r.config.dataLabels.style.fontSize,fontFamily:r.config.dataLabels.style.fontFamily,fontWeight:r.config.dataLabels.style.fontWeight,foreColor:S});if(D.add(M),r.config.dataLabels.dropShadow.enabled){const L=r.config.dataLabels.dropShadow;o.dropShadow(M,L)}M.node.classList.add("apexcharts-pie-label"),r.config.chart.animations.animate&&r.globals.resized===!1&&(M.node.classList.add("apexcharts-pie-label-delay"),M.node.style.animationDelay=r.config.chart.animations.speed/940+"s"),this.sliceLabels.push(D)}}}return l}addListeners(e,t){const r=new ce(this.w);e.node.addEventListener("mouseenter",r.pathMouseEnter.bind(this,e)),e.node.addEventListener("mouseleave",r.pathMouseLeave.bind(this,e)),e.node.addEventListener("mouseleave",this.revertDataLabelsInner.bind(this)),e.node.addEventListener("mousedown",r.pathMouseDown.bind(this,e)),this.donutDataLabels.total.showAlways||(e.node.addEventListener("mouseenter",this.printDataLabelsInner.bind(this,e.node,t)),e.node.addEventListener("mousedown",this.printDataLabelsInner.bind(this,e.node,t)))}animatePaths(e,t){const r=this.w,o=this;let s=t.endAngle<t.startAngle?this.fullAngle+t.endAngle-t.startAngle:t.endAngle-t.startAngle,i=s,l=t.startAngle;const c=t.startAngle;t.prevStartAngle!==void 0&&t.prevEndAngle!==void 0&&(l=t.prevEndAngle,i=t.prevEndAngle<t.prevStartAngle?this.fullAngle+t.prevEndAngle-t.prevStartAngle:t.prevEndAngle-t.prevStartAngle),t.i===r.config.series.length-1&&(s+c>this.fullAngle?t.endAngle=t.endAngle-(s+c):s+c<this.fullAngle&&(t.endAngle=t.endAngle+(this.fullAngle-(s+c)))),s===this.fullAngle&&(s=this.fullAngle-.01),o.animateArc(e,l,c,s,i,t)}animateArc(e,t,r,o,s,i){const l=this,c=this.w,h=new vn(this.w),d=i.size;let u;(isNaN(t)||isNaN(s))&&(t=r,s=o,i.dur=0);let p=o,f=r;const g=t<r?this.fullAngle+t-r:t-r;c.globals.dataChanged&&i.shouldSetPrevPaths&&i.prevEndAngle&&(u=l.getPiePath({me:l,startAngle:i.prevStartAngle,angle:i.prevEndAngle<i.prevStartAngle?this.fullAngle+i.prevEndAngle-i.prevStartAngle:i.prevEndAngle-i.prevStartAngle,size:d}),e.attr({d:u})),i.dur!==0?e.animate(i.dur,i.animBeginArr[i.i]).after(function(){(l.chartType==="pie"||l.chartType==="donut"||l.chartType==="polarArea")&&this.animate(c.config.chart.animations.dynamicAnimation.speed).attr({"stroke-width":l.strokeWidth}),i.i===c.config.series.length-1&&h.animationCompleted(e)}).during(m=>{p=g+(o-g)*m,i.animateStartingPos&&(p=s+(o-s)*m,f=t-s+(r-(t-s))*m),u=l.getPiePath({me:l,startAngle:f,angle:p,size:d}),e.node.setAttribute("data:pathOrig",u),e.attr({d:u})}):(u=l.getPiePath({me:l,startAngle:f,angle:o,size:d}),i.isTrack||(c.globals.animationEnded=!0),e.node.setAttribute("data:pathOrig",u),e.attr({d:u,"stroke-width":l.strokeWidth}))}pieClicked(e){const t=this.w,r=this,o=r.sliceSizes[e]+(t.config.plotOptions.pie.expandOnClick?4:0),s=t.dom.Paper.findOne(`.apexcharts-${r.chartType.toLowerCase()}-slice-${e}`);if(s.attr("data:pieClicked")==="true"){s.attr({"data:pieClicked":"false"}),this.revertDataLabelsInner();const h=s.attr("data:pathOrig");s.attr({d:h});return}else{const h=t.dom.baseEl.getElementsByClassName("apexcharts-pie-area");Array.prototype.forEach.call(h,d=>{d.setAttribute("data:pieClicked","false");const u=d.getAttribute("data:pathOrig");u&&d.setAttribute("d",u)}),t.interact.capturedDataPointIndex=e,s.attr("data:pieClicked","true")}const i=parseInt(s.attr("data:startAngle"),10),l=parseInt(s.attr("data:angle"),10),c=r.getPiePath({me:r,startAngle:i,angle:l,size:o});l!==360&&s.plot(c)}getChangedPath(e,t){let r="";return this.dynamicAnim&&this.w.globals.dataChanged&&(r=this.getPiePath({me:this,startAngle:e,angle:t-e,size:this.size})),r}getPiePath({me:e,startAngle:t,angle:r,size:o}){let s;const i=new ce(this.w),l=t,c=Math.PI*(l-90)/180;let h=r+t;Math.ceil(h)>=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(h=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(h)>this.fullAngle&&(h-=this.fullAngle);const d=Math.PI*(h-90)/180,u=e.centerX+o*Math.cos(c),p=e.centerY+o*Math.sin(c),f=e.centerX+o*Math.cos(d),g=e.centerY+o*Math.sin(d),m=U.polarToCartesian(e.centerX,e.centerY,e.donutSize,h),x=U.polarToCartesian(e.centerX,e.centerY,e.donutSize,l),w=r>180?1:0,b=["M",u,p,"A",o,o,0,w,1,f,g];return e.chartType==="donut"?s=[...b,"L",m.x,m.y,"A",e.donutSize,e.donutSize,0,w,0,x.x,x.y,"L",u,p,"z"].join(" "):e.chartType==="pie"||e.chartType==="polarArea"?s=[...b,"L",e.centerX,e.centerY,"L",u,p].join(" "):s=[...b].join(" "),i.roundPathCorners(s,this.strokeWidth*2)}drawPolarElements(e){const t=this.w,r=new Ku(this.w),o=new ce(this.w),s=new xp(this.w),i=o.group(),l=o.group(),c=r.niceScale(0,Math.ceil(this.maxY),0),h=c.result.reverse(),d=c.result.length;this.maxY=c.niceMax;let u=t.globals.radialSize;const p=u/(d-1);for(let f=0;f<d-1;f++){const g=o.drawCircle(u);if(g.attr({cx:this.centerX,cy:this.centerY,fill:"none","stroke-width":t.config.plotOptions.polarArea.rings.strokeWidth,stroke:t.config.plotOptions.polarArea.rings.strokeColor}),t.config.yaxis[0].show){const m=s.drawYAxisTexts(this.centerX,this.centerY-u+parseInt(t.config.yaxis[0].labels.style.fontSize,10)/2,f,h[f]);l.add(m)}i.add(g),u=u-p}this.drawSpokes(e),e.add(i),e.add(l)}renderInnerDataLabels(e,t,r){const o=this.w,s=new ce(this.w),i=t.total.show;e.node.innerHTML="",e.node.style.opacity=r.opacity;const l=r.centerX,c=this.donutDataLabels.total.label?r.centerY:r.centerY-r.centerY/6;let h,d;t.name.color===void 0?h=o.globals.colors[0]:h=t.name.color;let u=t.name.fontSize,p=t.name.fontFamily,f=t.name.fontWeight;t.value.color===void 0?d=o.config.chart.foreColor:d=t.value.color;const g=t.value.formatter;let m="",x="";if(i?(h=t.total.color,u=t.total.fontSize,p=t.total.fontFamily,f=t.total.fontWeight,x=this.donutDataLabels.total.label?t.total.label:"",m=t.total.formatter(o)):o.seriesData.series.length===1&&(m=g(o.seriesData.series[0],o),x=o.seriesData.seriesNames[0]),x&&(x=t.name.formatter(x,t.total.show,o)),t.name.show){const w=s.drawText({x:l,y:c+parseFloat(t.name.offsetY),text:x,textAnchor:"middle",foreColor:h,fontSize:u,fontWeight:f,fontFamily:p});w.node.classList.add("apexcharts-datalabel-label"),e.add(w)}if(t.value.show){const w=t.name.show?parseFloat(t.value.offsetY)+16:t.value.offsetY,b=s.drawText({x:l,y:c+w,text:m,textAnchor:"middle",foreColor:d,fontWeight:t.value.fontWeight,fontSize:t.value.fontSize,fontFamily:t.value.fontFamily});b.node.classList.add("apexcharts-datalabel-value"),e.add(b)}return e}printInnerLabels(e,t,r,o){const s=this.w;let i;o?e.name.color===void 0?i=s.globals.colors[parseInt(o.parentNode.getAttribute("rel"),10)-1]:i=e.name.color:s.seriesData.series.length>1&&e.total.show&&(i=e.total.color);const l=s.dom.baseEl.querySelector(".apexcharts-datalabel-label"),c=s.dom.baseEl.querySelector(".apexcharts-datalabel-value"),h=e.value.formatter;r=h(r,s),!o&&typeof e.total.formatter=="function"&&(r=e.total.formatter(s));const d=t===e.total.label;if(t=this.donutDataLabels.total.label?e.name.formatter(t,d,s):"",l!==null&&(l.textContent=t),c!==null&&(c.textContent=r),l!==null){const u=l;u.style.fill=i}}printDataLabelsInner(e,t){const r=this.w,o=e.getAttribute("data:value"),s=r.seriesData.seriesNames[parseInt(e.parentNode.getAttribute("rel"),10)-1];r.seriesData.series.length>1&&this.printInnerLabels(t,s,o,e);const i=r.dom.baseEl.querySelector(".apexcharts-datalabels-group");if(i!==null){const l=i;l.style.opacity="1"}}drawSpokes(e){const t=this.w,r=new ce(this.w),o=t.config.plotOptions.polarArea.spokes;if(o.strokeWidth===0)return;const s=[],i=360/t.seriesData.series.length;for(let l=0;l<t.seriesData.series.length;l++)s.push(U.polarToCartesian(this.centerX,this.centerY,t.globals.radialSize,t.config.plotOptions.pie.startAngle+i*l));s.forEach((l,c)=>{const h=r.drawLine(l.x,l.y,this.centerX,this.centerY,Array.isArray(o.connectorColors)?o.connectorColors[c]:o.connectorColors);e.add(h)})}revertDataLabelsInner(){const e=this.w;if(this.donutDataLabels.show){const t=e.dom.Paper.findOne(".apexcharts-datalabels-group"),r=this.renderInnerDataLabels(t,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show});e.dom.Paper.findOne(".apexcharts-radialbar, .apexcharts-pie").add(r)}}}class qB{constructor(e,t){this.ctx=t,this.w=e,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0,this.graphics=new ce(this.w),this.lineColorArr=e.globals.stroke.colors!==void 0?e.globals.stroke.colors:e.globals.colors,this.defaultSize=e.globals.svgHeight<e.globals.svgWidth?e.layout.gridHeight:e.layout.gridWidth,this.isLog=e.config.yaxis[0].logarithmic,this.logBase=e.config.yaxis[0].logBase,this.coreUtils=new Nt(this.w),this.maxValue=this.isLog?this.coreUtils.getLogVal(this.logBase,e.globals.maxY,0):e.globals.maxY,this.minValue=this.isLog?this.coreUtils.getLogVal(this.logBase,this.w.globals.minY,0):e.globals.minY,this.polygons=e.config.plotOptions.radar.polygons,this.strokeWidth=e.config.stroke.show?e.config.stroke.width:0,this.size=this.defaultSize/2.1-this.strokeWidth-e.config.chart.dropShadow.blur,e.config.xaxis.labels.show&&(this.size=this.size-e.layout.xAxisLabelsWidth/1.75),e.config.plotOptions.radar.size!==void 0&&(this.size=e.config.plotOptions.radar.size),this.dataRadiusOfPercent=[],this.dataRadius=[],this.angleArr=[],this.dataPointsLen=0,this.disAngle=0,this.yaxisLabelsTextsPos=[]}draw(e){const t=this.w,r=new Ia(this.w),o=[],s=new Eo(this.w,this.ctx);e.length&&(this.dataPointsLen=e[t.globals.maxValsInArrayIndex].length),this.disAngle=Math.PI*2/this.dataPointsLen;const i=t.layout.gridWidth/2,l=t.layout.gridHeight/2,c=i+t.config.plotOptions.radar.offsetX,h=l+t.config.plotOptions.radar.offsetY,d=this.graphics.group({class:"apexcharts-radar-series apexcharts-plot-series",transform:`translate(${c||0}, ${h||0})`});let u=[],p=null,f=null;if(this.yaxisLabels=this.graphics.group({class:"apexcharts-yaxis"}),e.forEach((g,m)=>{const x=g.length===t.globals.dataPoints,w=this.graphics.group().attr({class:"apexcharts-series","data:longestSeries":x,seriesName:U.escapeString(t.seriesData.seriesNames[m]),rel:m+1,"data:realIndex":m});this.dataRadiusOfPercent[m]=[],this.dataRadius[m]=[],this.angleArr[m]=[],g.forEach((v,C)=>{const A=Math.abs(this.maxValue-this.minValue);v=v-this.minValue,this.isLog&&(v=this.coreUtils.getLogVal(this.logBase,v,0)),this.dataRadiusOfPercent[m][C]=v/A,this.dataRadius[m][C]=this.dataRadiusOfPercent[m][C]*this.size,this.angleArr[m][C]=C*this.disAngle}),u=this.getDataPointsPos(this.dataRadius[m],this.angleArr[m]);const b=this.createPaths(u,{x:0,y:0});p=this.graphics.group({class:"apexcharts-series-markers-wrap apexcharts-element-hidden"}),f=this.graphics.group({class:"apexcharts-datalabels","data:realIndex":m}),t.globals.delayedElements.push({el:p.node,index:m});const y={i:m,realIndex:m,animationDelay:m,initialSpeed:t.config.chart.animations.speed,dataChangeSpeed:t.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-radar",shouldClipToGrid:!1,bindEventsOnPaths:!1,stroke:t.globals.stroke.colors[m],strokeLineCap:t.config.stroke.lineCap};let k=null;t.globals.previousPaths.length>0&&(k=this.getPreviousPath(m));for(let v=0;v<b.linePathsTo.length;v++){const C=this.graphics.renderPaths(je(Ve({},y),{pathFrom:k===null?b.linePathsFrom[v]:k,pathTo:b.linePathsTo[v],strokeWidth:Array.isArray(this.strokeWidth)?this.strokeWidth[m]:this.strokeWidth,fill:"none",drawShadow:!1}));w.add(C);const A=r.fillPath({seriesNumber:m}),B=this.graphics.renderPaths(je(Ve({},y),{pathFrom:k===null?b.areaPathsFrom[v]:k,pathTo:b.areaPathsTo[v],strokeWidth:0,fill:A,drawShadow:!1}));if(t.config.chart.dropShadow.enabled){const E=new _t(this.w),S=t.config.chart.dropShadow;E.dropShadow(B,Object.assign({},S,{noUserSpaceOnUse:!0}),m)}w.add(B)}g.forEach((v,C)=>{const B=new Cn(this.w,this.ctx).getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:m,dataPointIndex:C}),E=this.graphics.drawMarker(u[C].x,u[C].y,B);E.attr("rel",C),E.attr("j",C),E.attr("index",m),E.node.setAttribute("default-marker-size",B.pSize);const S=this.graphics.group({class:"apexcharts-series-markers"});S&&S.add(E),p.add(S),w.add(p);const D=t.config.dataLabels;if(D.enabled){const M=D.formatter(t.seriesData.series[m][C],{seriesIndex:m,dataPointIndex:C,w:t});s.plotDataLabelsText({x:u[C].x,y:u[C].y,text:M,textAnchor:"middle",i:m,j:m,parent:f,offsetCorrection:!1,dataLabelsConfig:Ve({},D)})}w.add(f)}),o.push(w)}),this.drawPolygons({parent:d}),t.config.xaxis.labels.show){const g=this.drawXAxisTexts();d.add(g)}return o.forEach(g=>{d.add(g)}),d.add(this.yaxisLabels),d}drawPolygons(e){const t=this.w,{parent:r}=e,o=new xp(this.w),s=t.globals.yAxisScale[0].result.reverse(),i=s.length,l=[],c=this.size/(i-1);for(let u=0;u<i;u++)l[u]=c*u;l.reverse();const h=[],d=[];l.forEach((u,p)=>{const f=U.getPolygonPos(u,this.dataPointsLen);let g="";f.forEach((m,x)=>{if(p===0){const w=this.graphics.drawLine(m.x,m.y,0,0,Array.isArray(this.polygons.connectorColors)?this.polygons.connectorColors[x]:this.polygons.connectorColors);d.push(w)}x===0&&this.yaxisLabelsTextsPos.push({x:m.x,y:m.y}),g+=m.x+","+m.y+" "}),h.push(g)}),h.forEach((u,p)=>{const f=this.polygons.strokeColors,g=this.polygons.strokeWidth,m=this.graphics.drawPolygon(u,Array.isArray(f)?f[p]:f,Array.isArray(g)?g[p]:g,t.globals.radarPolygons.fill.colors[p]);r.add(m)}),d.forEach(u=>{r.add(u)}),t.config.yaxis[0].show&&this.yaxisLabelsTextsPos.forEach((u,p)=>{const f=o.drawYAxisTexts(u.x,u.y,p,s[p]);this.yaxisLabels.add(f)})}drawXAxisTexts(){const e=this.w,t=e.config.xaxis.labels,r=this.graphics.group({class:"apexcharts-xaxis"}),o=U.getPolygonPos(this.size,this.dataPointsLen);return e.labelData.labels.forEach((s,i)=>{const l=e.config.xaxis.labels.formatter,c=new Eo(this.w,this.ctx);if(o[i]){const h=this.getTextPos(o[i],this.size),d=l(s,{seriesIndex:-1,dataPointIndex:i,w:e});c.plotDataLabelsText({x:h.newX,y:h.newY,text:d,textAnchor:h.textAnchor,i,j:i,parent:r,className:"apexcharts-xaxis-label",color:Array.isArray(t.style.colors)&&t.style.colors[i]?t.style.colors[i]:"#a8a8a8",dataLabelsConfig:Ve({textAnchor:h.textAnchor,dropShadow:{enabled:!1}},t),offsetCorrection:!1}).on("click",p=>{if(typeof e.config.chart.events.xAxisLabelClick=="function"){const f=Object.assign({},e,{labelIndex:i});e.config.chart.events.xAxisLabelClick(p,this.ctx,f)}})}}),r}createPaths(e,t){const r=[];let o=[];const s=[];let i=[];if(e.length){o=[this.graphics.move(t.x,t.y)],i=[this.graphics.move(t.x,t.y)];let l=this.graphics.move(e[0].x,e[0].y),c=this.graphics.move(e[0].x,e[0].y);e.forEach((h,d)=>{l+=this.graphics.line(h.x,h.y),c+=this.graphics.line(h.x,h.y),d===e.length-1&&(l+="Z",c+="Z")}),r.push(l),s.push(c)}return{linePathsFrom:o,linePathsTo:r,areaPathsFrom:i,areaPathsTo:s}}getTextPos(e,t){let o="middle",s=e.x,i=e.y;return Math.abs(e.x)>=10?e.x>0?(o="start",s+=10):e.x<0&&(o="end",s-=10):o="middle",Math.abs(e.y)>=t-10&&(e.y<0?i-=10:e.y>0&&(i+=10)),{textAnchor:o,newX:s,newY:i}}getPreviousPath(e){const t=this.w;let r=null;for(let o=0;o<t.globals.previousPaths.length;o++){const s=t.globals.previousPaths[o];s.paths.length>0&&parseInt(s.realIndex,10)===parseInt(String(e),10)&&typeof t.globals.previousPaths[o].paths[0]<"u"&&(r=t.globals.previousPaths[o].paths[0].d)}return r}getDataPointsPos(e,t,r=this.dataPointsLen){e=e||[],t=t||[];const o=[];for(let s=0;s<r;s++){const i={};i.x=e[s]*Math.sin(t[s]),i.y=-e[s]*Math.cos(t[s]),o.push(i)}return o}}class KB extends sl{constructor(e,t){super(e,t),this.ctx=t,this.w=e,this.animBeginArr=[0],this.animDur=0,this.startAngle=e.config.plotOptions.radialBar.startAngle,this.endAngle=e.config.plotOptions.radialBar.endAngle,this.totalAngle=Math.abs(e.config.plotOptions.radialBar.endAngle-e.config.plotOptions.radialBar.startAngle),this.trackStartAngle=e.config.plotOptions.radialBar.track.startAngle,this.trackEndAngle=e.config.plotOptions.radialBar.track.endAngle,this.barLabels=this.w.config.plotOptions.radialBar.barLabels,this.donutDataLabels=this.w.config.plotOptions.radialBar.dataLabels,this.radialDataLabels=this.donutDataLabels,this.trackStartAngle||(this.trackStartAngle=this.startAngle),this.trackEndAngle||(this.trackEndAngle=this.endAngle),this.endAngle===360&&(this.endAngle=359.99),this.margin=parseInt(e.config.plotOptions.radialBar.track.margin,10),this.onBarLabelClick=this.onBarLabelClick.bind(this)}draw(e){const t=this.w,r=new ce(this.w),o=r.group({class:"apexcharts-radialbar"});if(t.globals.noData)return o;const s=r.group(),i=this.defaultSize/2,l=t.layout.gridWidth/2;let c=this.defaultSize/2.05;t.config.chart.sparkline.enabled||(c=c-t.config.stroke.width-t.config.chart.dropShadow.blur);const h=t.globals.fill.colors;if(t.config.plotOptions.radialBar.track.show){const f=this.drawTracks({size:c,centerX:l,centerY:i,colorArr:h,series:e});s.add(f)}const d=this.drawArcs({size:c,centerX:l,centerY:i,colorArr:h,series:e});let u=360;t.config.plotOptions.radialBar.startAngle<0&&(u=this.totalAngle);const p=(360-u)/360;if(t.globals.radialSize=c-c*p,this.radialDataLabels.value.show){const f=Math.max(this.radialDataLabels.value.offsetY,this.radialDataLabels.name.offsetY);t.globals.radialSize+=f*p}return s.add(d.g),t.config.plotOptions.radialBar.hollow.position==="front"&&(d.g.add(d.elHollow),d.dataLabels&&d.g.add(d.dataLabels)),o.add(s),o}drawTracks(e){const t=this.w,r=new ce(this.w),o=r.group({class:"apexcharts-tracks"}),s=new _t(this.w),i=new Ia(this.w),l=this.getStrokeWidth(e);e.size=e.size-l/2;for(let c=0;c<e.series.length;c++){const h=r.group({class:"apexcharts-radialbar-track apexcharts-track"});o.add(h),h.attr({rel:c+1}),e.size=e.size-l-this.margin;const d=t.config.plotOptions.radialBar.track,u=i.fillPath({seriesNumber:0,size:e.size,fillColors:Array.isArray(d.background)?d.background[c]:d.background,solid:!0}),p=this.trackStartAngle;let f=this.trackEndAngle;Math.abs(f)+Math.abs(p)>=360&&(f=360-Math.abs(this.startAngle)-.1);const g=r.drawPath({d:"",stroke:u,strokeWidth:l*parseInt(d.strokeWidth,10)/100,fill:"none",strokeOpacity:d.opacity,classes:"apexcharts-radialbar-area"});if(d.dropShadow.enabled){const m=d.dropShadow;s.dropShadow(g,m)}h.add(g),g.attr("id","apexcharts-radialbarTrack-"+c),this.animatePaths(g,{centerX:e.centerX,centerY:e.centerY,endAngle:f,startAngle:p,size:e.size,i:c,totalItems:2,animBeginArr:0,dur:0,isTrack:!0})}return o}drawArcs(e){const t=this.w,r=new ce(this.w),o=new Ia(this.w),s=new _t(this.w),i=r.group(),l=this.getStrokeWidth(e);e.size=e.size-l/2;let c=t.config.plotOptions.radialBar.hollow.background;const h=e.size-l*e.series.length-this.margin*e.series.length-l*parseInt(t.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,d=h-t.config.plotOptions.radialBar.hollow.margin;t.config.plotOptions.radialBar.hollow.image!==void 0&&(c=this.drawHollowImage(e,i,h,c));const u=this.drawHollow({size:d,centerX:e.centerX,centerY:e.centerY,fill:c||"transparent"});if(t.config.plotOptions.radialBar.hollow.dropShadow.enabled){const m=t.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(u,m)}let p=1;!this.radialDataLabels.total.show&&t.seriesData.series.length>1&&(p=0);let f=null;if(this.radialDataLabels.show){const m=t.dom.Paper.findOne(".apexcharts-datalabels-group");f=this.renderInnerDataLabels(m,this.radialDataLabels,{hollowSize:h,centerX:e.centerX,centerY:e.centerY,opacity:p})}t.config.plotOptions.radialBar.hollow.position==="back"&&(i.add(u),f&&i.add(f));let g=!1;t.config.plotOptions.radialBar.inverseOrder&&(g=!0);for(let m=g?e.series.length-1:0;g?m>=0:m<e.series.length;g?m--:m++){const x=r.group({class:"apexcharts-series apexcharts-radial-series",seriesName:U.escapeString(t.seriesData.seriesNames[m])});i.add(x),x.attr({rel:m+1,"data:realIndex":m}),Lt.addCollapsedClassToSeries(this.w,x,m),e.size=e.size-l-this.margin;const w=o.fillPath({seriesNumber:m,size:e.size,value:e.series[m]}),b=this.startAngle;let y;const k=U.negToZero(e.series[m]>100?100:e.series[m])/100;let v=Math.round(this.totalAngle*k)+this.startAngle,C;t.globals.dataChanged&&(y=this.startAngle,C=Math.round(this.totalAngle*U.negToZero(t.globals.previousPaths[m])/100)+y),Math.abs(v)+Math.abs(b)>360&&(v=v-.01),Math.abs(C)+Math.abs(y)>360&&(C=C-.01);const E=v-b,S=Array.isArray(t.config.stroke.dashArray)?t.config.stroke.dashArray[m]:t.config.stroke.dashArray,D=r.drawPath({d:"",stroke:w,strokeWidth:l,fill:"none",fillOpacity:t.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+m,strokeDashArray:S}),M=b+E/2,L=U.polarToCartesian(e.centerX,e.centerY,e.size,M);if(ce.setAttrs(D.node,{"data:angle":E,"data:value":e.series[m],"data:cx":L.x,"data:cy":L.y}),t.config.chart.dropShadow.enabled){const N=t.config.chart.dropShadow;s.dropShadow(D,N,m)}if(s.setSelectionFilter(D,0,m),this.addListeners(D,this.radialDataLabels),x.add(D),D.attr({index:0,j:m}),this.barLabels.enabled){const N=U.polarToCartesian(e.centerX,e.centerY,e.size,b),T=this.barLabels.formatter(t.seriesData.seriesNames[m],{seriesIndex:m,w:t}),I=["apexcharts-radialbar-label"];this.barLabels.onClick||I.push("apexcharts-no-click");let Z=this.barLabels.useSeriesColors?t.globals.colors[m]:t.config.chart.foreColor;Z||(Z=t.config.chart.foreColor);const _=N.x+this.barLabels.offsetX,W=N.y+this.barLabels.offsetY,$=r.drawText({x:_,y:W,text:T,textAnchor:"end",dominantBaseline:"middle",fontFamily:this.barLabels.fontFamily,fontWeight:this.barLabels.fontWeight,fontSize:this.barLabels.fontSize,foreColor:Z,cssClass:I.join(" ")});$.on("click",this.onBarLabelClick),$.attr({rel:m+1}),b!==0&&$.attr({"transform-origin":`${_} ${W}`,transform:`rotate(${b} 0 0)`}),x.add($)}let V=0;this.initialAnim&&!t.globals.resized&&!t.globals.dataChanged&&(V=t.config.chart.animations.speed),t.globals.dataChanged&&(V=t.config.chart.animations.dynamicAnimation.speed),this.animDur=V/(e.series.length*1.2)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(D,{centerX:e.centerX,centerY:e.centerY,endAngle:v,startAngle:b,prevEndAngle:C,prevStartAngle:y,size:e.size,i:m,totalItems:2,animBeginArr:this.animBeginArr,dur:V,shouldSetPrevPaths:!0})}return{g:i,elHollow:u,dataLabels:f}}drawHollow(e){const r=new ce(this.w).drawCircle(e.size*2);return r.attr({class:"apexcharts-radialbar-hollow",cx:e.centerX,cy:e.centerY,r:e.size,fill:e.fill}),r}drawHollowImage(e,t,r,o){const s=this.w,i=new Ia(this.w),l=U.randomId(),c=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)i.clippedImgArea({width:r,height:r,image:c,patternID:`pattern${s.globals.cuid}${l}`}),o=`url(#pattern${s.globals.cuid}${l})`;else{const h=s.config.plotOptions.radialBar.hollow.imageWidth,d=s.config.plotOptions.radialBar.hollow.imageHeight;if(h===void 0&&d===void 0){const u=s.dom.Paper.image(c,function(p){this.move(e.centerX-p.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,e.centerY-p.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)});t.add(u)}else{const u=s.dom.Paper.image(c,function(){this.move(e.centerX-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,e.centerY-d/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(h,d)});t.add(u)}}return o}getStrokeWidth(e){const t=this.w;return e.size*(100-parseInt(t.config.plotOptions.radialBar.hollow.size,10))/100/(e.series.length+1)-this.margin}onBarLabelClick(e){var t;const r=e.target,o=parseInt((t=r.getAttribute("rel"))!=null?t:"",10)-1,s=this.barLabels.onClick,i=this.w;s&&s(i.seriesData.seriesNames[o],{w:i,seriesIndex:o})}}class QB extends An{draw(e,t){var r,o,s,i,l,c,h,d,u;const p=this.w,f=new ce(this.w);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=e,this.seriesRangeStart=p.rangeData.seriesRangeStart,this.seriesRangeEnd=p.rangeData.seriesRangeEnd,this.barHelpers.initVariables(e);const g=f.group({class:"apexcharts-rangebar-series apexcharts-plot-series"});for(let m=0;m<e.length;m++){let x,w;const b=p.globals.comboCharts?t[m]:m,{columnGroupIndex:y}=this.barHelpers.getGroupIndex(b),k=f.group({class:"apexcharts-series",seriesName:U.escapeString(p.seriesData.seriesNames[b]),rel:m+1,"data:realIndex":b});Lt.addCollapsedClassToSeries(this.w,k,b),e[m].length>0&&(this.visibleI=this.visibleI+1);let v=0;this.yRatio.length>1&&(this.yaxisIndex=p.globals.seriesYAxisReverseMap[b][0],v=b);const C=this.barHelpers.initialPositions(b),{y:A,zeroW:B,x:E,zeroH:S}=C;let D=(r=C.barWidth)!=null?r:0,M=(o=C.barHeight)!=null?o:0;const L=(s=C.yDivision)!=null?s:0,V=(i=C.xDivision)!=null?i:0;w=A,x=E;const N=f.group({class:"apexcharts-datalabels","data:realIndex":b}),T=f.group({class:"apexcharts-rangebar-goals-markers"});for(let I=0;I<p.globals.dataPoints;I++){const Z=this.barHelpers.getStrokeWidth(m,I,b),_=this.seriesRangeStart[m][I],W=this.seriesRangeEnd[m][I];let $=null,R=null,J=null;const ie={x,y:w,strokeWidth:Z,elSeries:k};let ue=this.seriesLen;if(p.config.plotOptions.bar.rangeBarGroupRows&&(ue=1),typeof((l=p.config.series[m].data)==null?void 0:l[I])>"u")break;if(this.isHorizontal){J=w+M*this.visibleI;const he=(L-M*ue)/2;if((h=(c=p.config.series[m].data)==null?void 0:c[I])!=null&&h.x){const K=this.detectOverlappingBars({i:m,j:I,barYPosition:J,srty:he,barHeight:M,yDivision:L,initPositions:C});M=K.barHeight,J=K.barYPosition}$=this.drawRangeBarPaths(Ve({indexes:{i:m,j:I,realIndex:b},barHeight:M,barYPosition:J,zeroW:B,yDivision:L,y1:_,y2:W},ie)),D=$.barWidth}else{p.axisFlags.isXNumeric&&(x=(p.seriesData.seriesX[m][I]-p.globals.minX)/this.xRatio-D/2),R=x+D*this.visibleI;const he=(V-D*ue)/2;if((u=(d=p.config.series[m].data)==null?void 0:d[I])!=null&&u.x){const K=this.detectOverlappingBars({i:m,j:I,barXPosition:R,srtx:he,barWidth:D,xDivision:V,initPositions:C});D=K.barWidth,R=K.barXPosition}$=this.drawRangeColumnPaths(Ve({indexes:{i:m,j:I,realIndex:b,translationsIndex:v},barWidth:D,barXPosition:R,zeroH:S,xDivision:V},ie)),M=$.barHeight}const ee=this.barHelpers.drawGoalLine({barXPosition:$.barXPosition,barYPosition:J,goalX:$.goalX,goalY:$.goalY,barHeight:M,barWidth:D});ee&&T.add(ee),w=$.y,x=$.x;const ae=this.barHelpers.getPathFillColor(e,m,I,b);this.renderSeries({realIndex:b,pathFill:ae.color,lineFill:ae.useRangeColor?ae.color:p.globals.stroke.colors[b],j:I,i:m,x,y:w,y1:_,y2:W,pathFrom:$.pathFrom,pathTo:$.pathTo,strokeWidth:Z,elSeries:k,series:e,barHeight:M,barWidth:D,barXPosition:R,barYPosition:J,columnGroupIndex:y,elDataLabelsWrap:N,elGoalsMarkers:T,visibleSeries:this.visibleI,type:"rangebar"})}g.add(k)}return g}detectOverlappingBars({i:e,j:t,barYPosition:r,barXPosition:o,srty:s,srtx:i,barHeight:l,barWidth:c,yDivision:h,xDivision:d,initPositions:u}){var p,f,g,m;const x=this.w;let w=[];const b=(f=(p=x.config.series[e].data)==null?void 0:p[t])==null?void 0:f.rangeName,y=(m=(g=x.config.series[e].data)==null?void 0:g[t])==null?void 0:m.x,k=Array.isArray(y)?y.join(" "):y,v=x.labelData.labels.map(A=>Array.isArray(A)?A.join(" "):A).indexOf(k),C=x.rangeData.seriesRange[e].findIndex(A=>{var B;return A.x===k&&((B=A.overlaps)==null?void 0:B.size)>0});return this.isHorizontal?(x.config.plotOptions.bar.rangeBarGroupRows?r=s+h*v:r=s+l*this.visibleI+h*v,C>-1&&!x.config.plotOptions.bar.rangeBarOverlap&&(w=Array.from(x.rangeData.seriesRange[e][C].overlaps),w.indexOf(b)>-1&&(l=u.barHeight/w.length,r=l*this.visibleI+h*(100-parseInt(this.barOptions.barHeight,10))/100/2+l*(this.visibleI+w.indexOf(b))+h*v))):(v>-1&&!x.labelData.timescaleLabels.length&&(x.config.plotOptions.bar.rangeBarGroupRows?o=i+d*v:o=i+c*this.visibleI+d*v),C>-1&&!x.config.plotOptions.bar.rangeBarOverlap&&(w=Array.from(x.rangeData.seriesRange[e][C].overlaps),w.indexOf(b)>-1&&(c=u.barWidth/w.length,o=c*this.visibleI+d*(100-parseInt(this.barOptions.barWidth,10))/100/2+c*(this.visibleI+w.indexOf(b))+d*v))),{barYPosition:r,barXPosition:o,barHeight:l,barWidth:c}}drawRangeColumnPaths({indexes:e,x:t,xDivision:r,barWidth:o,barXPosition:s,zeroH:i}){var l,c;const h=this.w,{i:d,j:u,realIndex:p,translationsIndex:f}=e,g=this.yRatio[f],m=this.getRangeValue(p,u);let x=Math.min(m.start,m.end),w=Math.max(m.start,m.end);typeof((l=this.series[d])==null?void 0:l[u])>"u"||((c=this.series[d])==null?void 0:c[u])===null?x=i:(x=i-x/g,w=i-w/g);const b=Math.abs(w-x),y=this.barHelpers.getColumnPaths({barXPosition:s,barWidth:o,y1:x,y2:w,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:p,i:p,j:u,w:h});if(!h.axisFlags.isXNumeric)t=t+r;else{const k=this.getBarXForNumericXAxis({x:t,j:u,realIndex:p,barWidth:o});t=k.x,s=k.barXPosition}return{pathTo:y.pathTo,pathFrom:y.pathFrom,barHeight:b,x:t,y:m.start<0&&m.end<0?x:w,goalY:this.barHelpers.getGoalValues("y",null,i,d,u,f),barXPosition:s}}preventBarOverflow(e){const t=this.w;return e<0&&(e=0),e>t.layout.gridWidth&&(e=t.layout.gridWidth),e}drawRangeBarPaths({indexes:e,y:t,y1:r,y2:o,yDivision:s,barHeight:i,barYPosition:l,zeroW:c}){const h=this.w,{realIndex:d,j:u}=e,p=this.preventBarOverflow(c+r/this.invertedYRatio),f=this.preventBarOverflow(c+o/this.invertedYRatio),g=this.getRangeValue(d,u),m=Math.abs(f-p),x=this.barHelpers.getBarpaths({barYPosition:l,barHeight:i,x1:p,x2:f,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:d,realIndex:d,j:u,w:h});return h.axisFlags.isXNumeric||(t=t+s),{pathTo:x.pathTo,pathFrom:x.pathFrom,barWidth:m,x:g.start<0&&g.end<0?p:f,goalX:this.barHelpers.getGoalValues("x",c,null,d,u,0),y:t}}getRangeValue(e,t){const r=this.w;return{start:r.rangeData.seriesRangeStart[e][t],end:r.rangeData.seriesRangeEnd[e][t]}}}function wp(n,e){let t=0;for(let s=0;s<n.length;s++)t+=n[s];const r=e/t,o=new Array(n.length);for(let s=0;s<n.length;s++)o[s]=n[s]*r;return o}function bp(n,e,t,r){const o=r*r,s=t*t;return Math.max(o*e/s,s/(o*n))}function JB(n,e,t,r,o,s){if(n===0)return!0;const i=bp(e,t,r,s),l=bp(Math.min(e,o),Math.max(t,o),r+o,s);return i>=l}function yp(n,e,t,r,o,s,i,l){if(i>=l){const c=r/l;let h=s;for(let d=0;d<t;d++){const u=e[d]/c;n.push([o,h,o+c,h+u]),h+=u}}else{const c=r/i;let h=o;for(let d=0;d<t;d++){const u=e[d]/c;n.push([h,s,h+u,s+c]),h+=u}}}function kp(n,e,t,r,o){const s=[],i=n.length;if(i===0)return s;const l=new Array(i);let c=0,h=0,d=1/0,u=-1/0,p=0;for(;p<i;){const f=Math.min(r,o),g=n[p];if(JB(c,d,u,h,g,f))l[c]=g,c++,h+=g,g<d&&(d=g),g>u&&(u=g),p++;else{if(yp(s,l,c,h,e,t,r,o),r>=o){const m=h/o;e+=m,r-=m}else{const m=h/r;t+=m,o-=m}c=0,h=0,d=1/0,u=-1/0}}return c>0&&yp(s,l,c,h,e,t,r,o),s}function eE(n,e,t){const r=n.length,o=new Array(r);for(let l=0;l<r;l++){let c=0;const h=n[l];for(let d=0;d<h.length;d++)c+=h[d];o[l]=c}const s=kp(wp(o,e*t),0,0,e,t),i=new Array(r);for(let l=0;l<r;l++){const c=s[l],h=c[0],d=c[1],u=c[2]-h,p=c[3]-d;i[l]=kp(wp(n[l],u*p),h,d,u,p)}return i}const tE={generate:eE};class aE{constructor(e,t){this.ctx=t,this.w=e,this.strokeWidth=this.w.config.stroke.width,this.helpers=new mp(e,t),this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.labels=[]}draw(e){const t=this.w,r=new ce(this.w,this.ctx),o=new Ia(this.w),s=r.group({class:"apexcharts-treemap"});if(t.globals.noData)return s;const i=[];return e.forEach(c=>{const h=c.map(d=>Math.abs(d));i.push(h)}),this.negRange=this.helpers.checkColorRange(),t.config.series.forEach((c,h)=>{c.data.forEach(d=>{Array.isArray(this.labels[h])||(this.labels[h]=[]),this.labels[h].push(d.x)})}),tE.generate(i,t.layout.gridWidth,t.layout.gridHeight).forEach((c,h)=>{var d;const u=r.group({class:"apexcharts-series apexcharts-treemap-series",seriesName:U.escapeString(t.seriesData.seriesNames[h]),rel:h+1,"data:realIndex":h});if(r.setupEventDelegation(u,".apexcharts-treemap-rect"),t.config.chart.dropShadow.enabled){const m=t.config.chart.dropShadow;new _t(this.w).dropShadow(s,m,h)}const p=r.group({class:"apexcharts-data-labels"}),f={xMin:1/0,yMin:1/0,xMax:-1/0,yMax:-1/0};c.forEach((m,x)=>{const w=m[0],b=m[1],y=m[2],k=m[3];f.xMin=Math.min(f.xMin,w),f.yMin=Math.min(f.yMin,b),f.xMax=Math.max(f.xMax,y),f.yMax=Math.max(f.yMax,k);const v=this.helpers.getShadeColor(t.config.chart.type,h,x,this.negRange),C=v.color,A=o.fillPath({color:C,seriesNumber:h,dataPointIndex:x}),B=r.drawRect(w,b,y-w,k-b,t.config.plotOptions.treemap.borderRadius,"#fff",1,this.strokeWidth,t.config.plotOptions.treemap.useFillColorAsStroke?C:t.globals.stroke.colors[h]);B.attr({cx:w,cy:b,index:h,i:h,j:x,width:y-w,height:k-b,fill:A}),B.node.classList.add("apexcharts-treemap-rect");let E={x:w+(y-w)/2,y:b+(k-b)/2,width:0,height:0};const S={x:w,y:b,width:y-w,height:k-b};if(t.config.chart.animations.enabled&&!t.globals.dataChanged){let V=1;t.globals.resized||(V=t.config.chart.animations.speed),this.animateTreemap(B,E,S,V)}if(t.globals.dataChanged){let V=1;this.dynamicAnim.enabled&&t.globals.shouldAnimate&&(V=this.dynamicAnim.speed,t.globals.previousPaths[h]&&t.globals.previousPaths[h][x]&&t.globals.previousPaths[h][x].rect&&(E=t.globals.previousPaths[h][x].rect),this.animateTreemap(B,E,S,V))}let D=this.getFontSize(m),M=t.config.dataLabels.formatter(this.labels[h][x],{value:t.seriesData.series[h][x],seriesIndex:h,dataPointIndex:x,w:t});t.config.plotOptions.treemap.dataLabels.format==="truncate"&&(D=parseInt(String(t.config.dataLabels.style.fontSize),10),M=this.truncateLabels(String(M),D,w,b,y,k));let L=null;t.seriesData.series[h][x]&&(L=this.helpers.calculateDataLabels({text:M,x:(w+y)/2,y:(b+k)/2+this.strokeWidth/2+D/3,i:h,j:x,colorProps:v,fontSize:D,series:e})),t.config.dataLabels.enabled&&L&&this.rotateToFitLabel(L,D,M,w,b,y,k),u.add(B),L!==null&&u.add(L)});const g=t.config.plotOptions.treemap.seriesTitle;if(t.config.series.length>1&&g&&g.show){const m=t.config.series[h].name||"";if(m&&f.xMin<1/0&&f.yMin<1/0){const{offsetX:x,offsetY:w,borderColor:b,borderWidth:y,borderRadius:k,style:v}=g,C=v.color||t.config.chart.foreColor,A={left:v.padding.left,right:v.padding.right,top:v.padding.top,bottom:v.padding.bottom},B=r.getTextRects(m,v.fontSize,v.fontFamily),E=B.width+A.left+A.right,S=B.height+A.top+A.bottom,D=f.xMin+(x||0),M=f.yMin+(w||0),L=r.drawRect(D,M,E,S,k,v.background,1,y,b),V=r.drawText({x:D+A.left,y:M+A.top+((d=B?.height)!=null?d:0)*.75,text:m,fontSize:v.fontSize,fontFamily:v.fontFamily,fontWeight:v.fontWeight,foreColor:C,cssClass:v.cssClass||""});u.add(L),u.add(V)}}u.add(p),s.add(u)}),s}getFontSize(e){const t=this.w;function r(l){let c,h=0;if(Array.isArray(l[0]))for(c=0;c<l.length;c++)h+=r(l[c]);else for(c=0;c<l.length;c++)h+=l[c].length;return h}function o(l){let c,h=0;if(Array.isArray(l[0]))for(c=0;c<l.length;c++)h+=o(l[c]);else for(c=0;c<l.length;c++)h+=1;return h}const s=r(this.labels)/o(this.labels);function i(l,c){const h=l*c,d=Math.pow(h,.5);return Math.min(d/s,parseInt(t.config.dataLabels.style.fontSize,10))}return i(e[2]-e[0],e[3]-e[1])}rotateToFitLabel(e,t,r,o,s,i,l){const c=new ce(this.w),h=c.getTextRects(r,String(t));if(h.width+this.w.config.stroke.width+5>i-o&&h.width<=l-s){const d=c.rotateAroundCenter(e.node);e.node.setAttribute("transform",`rotate(-90 ${d.x} ${d.y}) translate(${h.height/3})`)}}truncateLabels(e,t,r,o,s,i){const l=new ce(this.w),h=l.getTextRects(e,String(t)).width+this.w.config.stroke.width+5>s-r&&i-o>s-r?i-o:s-r,d=l.getTextBasedOnMaxWidth({text:e,maxWidth:h,fontSize:t});return e.length!==d.length&&h/t<5?"":d}animateTreemap(e,t,r,o){const s=new vn(this.w);s.animateRect(e,t,r,o,()=>{s.animationCompleted(e)})}}ur.use({line:Ls,area:Ls,scatter:Ls,bubble:Ls,rangeArea:Ls,bar:An,column:An,barStacked:YB,rangeBar:QB,candlestick:fp,boxPlot:fp,pie:sl,donut:sl,polarArea:sl,radialBar:KB,radar:qB,heatmap:$B,treemap:aE});const vp=["animationEnd","beforeMount","mounted","updated","click","mouseMove","mouseLeave","legendClick","markerClick","selection","dataPointSelection","dataPointMouseEnter","dataPointMouseLeave","beforeZoom","beforeResetZoom","zoomed","scrolled","brushScrolled"],Or=a.defineComponent({name:"apexchart",props:{options:{type:Object},type:{type:String},series:{type:Array,required:!0},width:{default:"100%"},height:{default:"auto"}},emits:vp,setup(n,{emit:e}){const t=a.ref(null),r=a.ref(null),o=V=>V&&typeof V=="object"&&!Array.isArray(V)&&V!=null,s=(V,N)=>{typeof Object.assign!="function"&&(function(){Object.assign=function(I){if(I==null)throw new TypeError("Cannot convert undefined or null to object");let Z=Object(I);for(let _=1;_<arguments.length;_++){let W=arguments[_];if(W!=null)for(let $ in W)W.hasOwnProperty($)&&(Z[$]=W[$])}return Z}})();let T=Object.assign({},V);return o(V)&&o(N)&&Object.keys(N).forEach(I=>{o(N[I])?I in V?T[I]=s(V[I],N[I]):Object.assign(T,{[I]:N[I]}):Object.assign(T,{[I]:N[I]})}),T},i=V=>JSON.parse(JSON.stringify(V)),l=async()=>{if(await a.nextTick(),r.value)return;const V={chart:{type:n.type||n.options.chart&&n.options.chart.type||"line",height:n.height,width:n.width,events:{}},series:i(n.series)},N=n.options.chart?n.options.chart.events:null;vp.forEach(I=>{let Z=(..._)=>e(I,..._);V.chart.events[I]=(..._)=>{Z(..._),N&&N.hasOwnProperty(I)&&N[I](..._)}});const T=s(n.options,V);return r.value=new ur(t.value,T),r.value.render()},c=()=>(h(),l()),h=()=>{r.value.destroy(),r.value=null},d=(V,N)=>r.value.updateSeries(V,N),u=(V,N,T,I)=>r.value.updateOptions(V,N,T,I),p=V=>r.value.toggleSeries(V),f=V=>{r.value.showSeries(V)},g=V=>{r.value.hideSeries(V)},m=(V,N)=>r.value.appendSeries(V,N),x=()=>{r.value.resetSeries()},w=(V,N)=>{r.value.toggleDataPointSelection(V,N)},b=V=>r.value.appendData(V),y=(V,N)=>r.value.zoomX(V,N),k=V=>r.value.dataURI(V),v=V=>r.value.setLocale(V),C=(V,N)=>{r.value.addXaxisAnnotation(V,N)},A=(V,N)=>{r.value.addYaxisAnnotation(V,N)},B=(V,N)=>{r.value.addPointAnnotation(V,N)},E=(V,N)=>{r.value.removeAnnotation(V,N)},S=()=>{r.value.clearAnnotations()};a.onBeforeMount(()=>{window.ApexCharts=ur}),a.onMounted(()=>{t.value=a.getCurrentInstance().proxy.$el,l()}),a.onBeforeUnmount(()=>{r.value&&h()});const D=a.toRefs(n);let M=null;const L=V=>{M||(M={options:!1,series:!1},a.nextTick(()=>{const N=M;if(M=null,!r.value){l();return}if(N.options&&N.series){const T=i(n.options);T.series=i(n.series),r.value.updateOptions(T)}else N.options?r.value.updateOptions(i(n.options)):N.series&&r.value.updateSeries(i(n.series))})),M[V]=!0};return a.watch(D.options,()=>{L("options")}),a.watch(D.series,()=>{L("series")},{deep:!0}),a.watch(D.type,()=>{c()}),a.watch(D.width,()=>{c()}),a.watch(D.height,()=>{c()}),{chart:r,init:l,refresh:c,destroy:h,updateOptions:u,updateSeries:d,toggleSeries:p,showSeries:f,hideSeries:g,resetSeries:x,zoomX:y,toggleDataPointSelection:w,appendData:b,appendSeries:m,addXaxisAnnotation:C,addYaxisAnnotation:A,addPointAnnotation:B,removeAnnotation:E,clearAnnotations:S,setLocale:v,dataURI:k}},render(){return a.h("div",{class:"vue-apexcharts"})}}),rE=(n,e)=>{const t=n.__vccOpts||n;for(const[r,o]of e)t[r]=o;return t},oE=a.defineComponent({name:"apexchart-server",props:{type:{type:String,default:"line"},width:{type:[Number,String],default:400},height:{type:[Number,String],default:300},series:{type:Array,default:()=>[]},options:{type:Object,default:()=>({})},className:{type:String,default:""}},setup(n){const e=a.ref("");return a.onServerPrefetch(async()=>{try{const{default:t}=await Promise.resolve().then(()=>X7),r=Object.assign({},n.options,{chart:Object.assign({},n.options.chart,{type:n.type,width:n.width,height:n.height}),series:n.series});e.value=await t.renderToHTML(r,{width:n.width,height:n.height})}catch(t){console.error("Failed to render ApexChart on server:",t)}}),{chartHTML:e}}}),nE=["innerHTML"];function sE(n,e,t,r,o,s){return a.openBlock(),a.createElementBlock("div",{innerHTML:n.chartHTML,class:a.normalizeClass(n.className)},null,10,nE)}const Cp=rE(oE,[["render",sE]]),Ap=a.defineComponent({name:"apexchart-hydrate",props:{clientOptions:{type:Object,default:()=>({})},selector:{type:String,default:"[data-apexcharts-hydrate]"}},setup(n){let e=[];a.onMounted(async()=>{try{const{default:t}=await Promise.resolve().then(()=>X7);e=t.hydrateAll(n.selector,n.clientOptions)}catch(t){console.error("Failed to hydrate ApexCharts:",t)}}),a.onBeforeUnmount(()=>{e.forEach(t=>{t&&t.destroy&&t.destroy()}),e=[]})},render(){return null}}),iE=n=>{n.component(Or.name,Or),n.component(Cp.name,Cp),n.component(Ap.name,Ap)};Or.install=iE;const Is={__name:"DonutChart",props:{series:{type:Array,required:!0},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showLegend:{type:Boolean,default:!0},showDataLabels:{type:Boolean,default:!0},donutSize:{type:String,default:"55%"},showTotal:{type:Boolean,default:!0},totalLabel:{type:[String,Object],default:()=>({en:"Total",dv:"ޖުމްލަ"})},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#10B981","#3B82F6","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r.slice(0,o.series.length)),c=a.computed(()=>o.series.map(d=>d.value)),h=a.computed(()=>({chart:{type:"donut",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"},labels:o.series.map(d=>i(d.label)),colors:l.value,legend:{show:o.showLegend,position:"bottom",fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",labels:{useSeriesColors:!0}},dataLabels:{enabled:o.showDataLabels,formatter:d=>`${d.toFixed(1)}%`},tooltip:{y:{formatter:d=>`${d}`}},plotOptions:{pie:{donut:{size:o.donutSize,labels:{show:o.showTotal,name:{show:!0},value:{show:!0},total:{show:o.showTotal,label:i(o.totalLabel),formatter:d=>d.globals.seriesTotals.reduce((u,p)=>u+p,0)}}}}},responsive:[{breakpoint:480,options:{chart:{width:300},legend:{position:"bottom"}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"donut",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},Ts={__name:"LineChart",props:{series:{type:Array,required:!0},categories:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showLegend:{type:Boolean,default:!0},showDataLabels:{type:Boolean,default:!1},curved:{type:Boolean,default:!0},strokeWidth:{type:Number,default:3},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r.slice(0,o.series.length)),c=a.computed(()=>o.series.map(d=>({name:i(d.name),data:d.data}))),h=a.computed(()=>({chart:{type:"line",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",toolbar:{show:!1}},colors:l.value,stroke:{curve:o.curved?"smooth":"straight",width:o.strokeWidth},xaxis:{categories:o.categories},legend:{show:o.showLegend,position:"bottom",fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"},dataLabels:{enabled:o.showDataLabels},tooltip:{y:{formatter:d=>`${d}`}},responsive:[{breakpoint:480,options:{chart:{width:300},legend:{position:"bottom"}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"line",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},lE={__name:"BarChart",props:{series:{type:Array,required:!0},categories:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showLegend:{type:Boolean,default:!0},showDataLabels:{type:Boolean,default:!1},horizontal:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},columnWidth:{type:String,default:"55%"},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r.slice(0,o.series.length)),c=a.computed(()=>o.series.map(d=>({name:i(d.name),data:d.data}))),h=a.computed(()=>({chart:{type:"bar",stacked:o.stacked,fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",toolbar:{show:!1}},colors:l.value,plotOptions:{bar:{horizontal:o.horizontal,columnWidth:o.columnWidth,borderRadius:4}},stroke:{show:!0,width:2,colors:["transparent"]},xaxis:{categories:o.categories},legend:{show:o.showLegend,position:"bottom",fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"},dataLabels:{enabled:o.showDataLabels},tooltip:{y:{formatter:d=>`${d}`}},responsive:[{breakpoint:480,options:{chart:{width:300},legend:{position:"bottom"}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"bar",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},cE={__name:"BubbleChart",props:{series:{type:Array,required:!0},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showLegend:{type:Boolean,default:!0},showDataLabels:{type:Boolean,default:!1},xaxisTitle:{type:[String,Object],default:""},yaxisTitle:{type:[String,Object],default:""},minBubbleSize:{type:Number,default:10},maxBubbleSize:{type:Number,default:50},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r.slice(0,o.series.length)),c=a.computed(()=>o.series.map(d=>({name:i(d.name),data:d.data}))),h=a.computed(()=>({chart:{type:"bubble",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",toolbar:{show:!1}},colors:l.value,fill:{opacity:.8},plotOptions:{bubble:{minBubbleRadius:o.minBubbleSize,maxBubbleRadius:o.maxBubbleSize}},xaxis:{title:{text:i(o.xaxisTitle),style:{fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"}}},yaxis:{title:{text:i(o.yaxisTitle),style:{fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"}}},legend:{show:o.showLegend,position:"bottom",fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"},dataLabels:{enabled:o.showDataLabels},tooltip:{y:{formatter:d=>`${d}`}},responsive:[{breakpoint:480,options:{chart:{width:300},legend:{position:"bottom"}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"bubble",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},dE={__name:"TreemapChart",props:{series:{type:Array,required:!0},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showDataLabels:{type:Boolean,default:!0},distributed:{type:Boolean,default:!0},enableShadeIntensity:{type:Boolean,default:!0},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r),c=a.computed(()=>o.series.map(d=>({name:i(d.name),data:d.data.map(u=>({x:i(u.x),y:u.y}))}))),h=a.computed(()=>({chart:{type:"treemap",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",toolbar:{show:!1}},colors:l.value,plotOptions:{treemap:{distributed:o.distributed,enableShades:o.enableShadeIntensity,shadeIntensity:.5}},dataLabels:{enabled:o.showDataLabels,style:{fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"}},tooltip:{y:{formatter:d=>`${d}`}},responsive:[{breakpoint:480,options:{chart:{width:300}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"treemap",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},hE={class:"mx-auto m-4"},uE={key:0,class:"p-8"},pE={key:1,class:"flex items-center justify-center p-8 py-"},Bp={__name:"ListView",props:{items:{type:Object,required:!0},loading:{type:Boolean,default:!1},lang:{type:String,default:"dv"}},emits:["update:queryParams","items"],setup(n,{emit:e}){const t=a.inject("api"),r=a.inject("snackbar"),{language:o}=a.inject("i18n"),s=a.inject("pgoRegistry",{}),i=qo.useRoute(),l=qo.useRouter();a.ref("");const c=a.computed(()=>h.lang==="en"?"ltr":h.lang==="dv"?"rtl":""),h=n,d=a.ref(h.loading),u=e,p=a.ref(!1),f=a.ref({}),g=a.ref({}),m=a.ref({}),x=a.ref(!1),w=a.ref(!1),b=a.ref(null),y=a.ref(!1),k=a.ref(!1),v=a.ref(null),C=a.ref(""),A=a.ref(null);a.ref(null);const B=a.ref({src:"",title:""}),E=a.ref({}),S=a.ref({}),D=a.ref({}),M=a.ref({}),L=a.ref({});a.ref({});const V=a.ref({}),N=a.ref(!1),T=a.ref(null),I=a.ref(""),Z=a.ref({}),_=a.ref(""),W={form:a.defineAsyncComponent(()=>Promise.resolve().then(()=>vu)),dynamicform:a.defineAsyncComponent(()=>Promise.resolve().then(()=>vu)),table:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Ph)),datatable:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Ph)),card:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Lh)),cardview:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Lh)),toolbar:a.defineAsyncComponent(()=>Promise.resolve().then(()=>mA)),filtersection:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Mu)),filter:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Mu)),confirmationmodal:a.defineAsyncComponent(()=>Promise.resolve().then(()=>qb)),viewrecord:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Au)),record:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Au))},$=te=>te?typeof te=="function"&&!te.render&&!te.setup?a.defineAsyncComponent(te):te:null,R=(te,le,Ce=!1)=>{const Se=(te||le).toLowerCase();return Object.prototype.hasOwnProperty.call(W,Se)?W[Se]:Object.prototype.hasOwnProperty.call(s,Se)?$(s[Se]):Ce?null:W[le]??null},J=a.computed(()=>{const te=L.value||{},le=typeof te.componentImport=="string"?te.componentImport:"",Ce=typeof te.component=="string"?te.component.toLowerCase():"form";return le&&Object.prototype.hasOwnProperty.call(s,le)?$(s[le]):R(Ce,"form",!0)}),ie=a.computed(()=>R(E.value?.component,"table")),ue=a.computed(()=>R(M.value?.component,"toolbar")),ee=a.computed(()=>R(D.value?.component,"filtersection")),ae=a.computed(()=>R(S.value?.component,"card"));a.computed(()=>R(E.value?.delete?.component,"confirmationmodal"));const he=a.computed(()=>R(V.value?.component,"viewrecord")),K=a.ref({page:parseInt(i.query.page)||1,itemsPerPage:parseInt(i.query.per_page)||10,sortBy:i.query.sort?i.query.sort.split(",").map(te=>te.replace(/^-/,"")):[],sortDesc:i.query.sort?i.query.sort.split(",").map(te=>te.startsWith("-")):[],itemsLength:0}),Y=a.computed(()=>{const te=[5,10,25,50,100],le=K.value.itemsPerPage;return le&&!te.includes(le)?[...te,le].sort((Ce,Se)=>Ce-Se):te}),H=te=>{const le={...i.query};te.page&&te.page>1?le.page=String(te.page):delete le.page,te.per_page&&te.per_page!==10?le.per_page=String(te.per_page):delete le.per_page,te.sort?le.sort=te.sort:delete le.sort,te.filter?le.filter=te.filter:delete le.filter,l.replace({query:le})},oe=async te=>{try{d.value=!0;const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);if(E.value=Se,E.value?.datalink){const We={page:K.value.page};i.query.per_page&&(We.per_page=parseInt(i.query.per_page)),i.query.sort&&(We.sort=i.query.sort),i.query.filter&&(We.filter=i.query.filter),await P(We),E.value?.pagination&&(K.value={...K.value,page:E.value?.pagination.current_page})}}catch(le){const Ce=le.response?.data?.error||"Error fetching data";r.show({message:Ce,variant:"error"})}finally{d.value=!1}},F=async te=>{try{d.value=!0;const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);if(S.value=Se,S.value?.datalink){const We={page:K.value.page};i.query.per_page&&(We.per_page=parseInt(i.query.per_page)),i.query.sort&&(We.sort=i.query.sort),i.query.filter&&(We.filter=i.query.filter),await P(We),S.value?.pagination&&(K.value={...K.value,page:S.value?.pagination.current_page})}}catch(le){const Ce=le.response?.data?.error||"Error fetching data";r.show({message:Ce,variant:"error"})}finally{d.value=!1}},j=async te=>{try{const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);D.value=Se}catch(le){const Ce=le.response?.data?.error||"Error fetching filter section data";r.show({message:Ce,variant:"error"})}},O=async te=>{try{const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);M.value=Se}catch(le){const Ce=le.response?.data?.error||"Error fetching toolbar data";r.show({message:Ce,variant:"error"})}},z=async te=>{try{const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);V.value=Se}catch(le){const Ce=le.response?.data?.error||"Error fetching record data";r.show({message:Ce,variant:"error"})}},q=async te=>{try{const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);L.value=Se}catch(le){const Ce=le.response?.data?.error||"Error fetching form data";r.show({message:Ce,variant:"error"})}},P=async(te={})=>{try{d.value=!0;const le=E.value?.datalink||S.value?.datalink||"",[Ce,Se]=le.split("?"),We=new URLSearchParams(Se||"");Object.entries(te).forEach(([to,_n])=>{_n!=null&&_n!==""&&We.set(to,_n)});const sa=Ce+(We.toString()?"?"+We.toString():""),ia=await t.get(sa);m.value=ia,ia?.pagination&&(K.value={...K.value,page:ia.pagination.current_page,itemsPerPage:ia.pagination.per_page,itemsLength:ia?.pagination.total})}catch(le){console.error("Error fetching data:",le),r.show({message:"Error fetching data",variant:"error"})}finally{d.value=!1}},re=(te=!1)=>{y.value=!1,A.value=null,L.value={},C.value="",te&&P({page:K.value.page,per_page:K.value.itemsPerPage})},X=te=>{K.value={...K.value,...te};const le={page:te.page,per_page:te.itemsPerPage};if(te.sortBy&&te.sortBy.length>0){const Ce=te.sortBy.map((Se,We)=>te.sortDesc[We]?`-${Se}`:Se);le.sort=Ce.join(",")}P(le),H(le)},pe=async({item:te,key:le,value:Ce,updateData:Se})=>{},Q=(te,le=null)=>{le==="toolbar"?g.value={...te}:le==="filterSection"&&(f.value={...te});const Ce={...g.value,...f.value};!le&&te&&typeof te=="object"&&Object.assign(Ce,te);let Se="";const We=[];Object.entries(Ce).forEach(([ia,to])=>{to!=null&&to!==""&&We.push(`${ia}:${to}`)}),We.length>0&&(Se=We.join(","));const sa={page:1,per_page:K.value.itemsPerPage};Se&&(sa.filter=Se),K.value={...K.value,page:1},P(sa),H(sa)},ke=()=>{j(h.items?.componentSettings?.filterSection),p.value=!p.value},we=te=>{P({page:K.value.page,per_page:K.value.itemsPerPage})},ze=te=>{g.value={},f.value={},K.value={...K.value,page:1,sortBy:[],sortDesc:[]};const le={page:1,per_page:K.value.itemsPerPage};P(le),H(le)},Ye=()=>{q(h.items?.componentSettings?.form),A.value=null,y.value=!0,C.value="create"},Aa=te=>{if(E.value?.showLink){const Ce=(E.value?.showLink).replace(/:(\w+)/g,(Se,We)=>te[We]??We).replace(/\{(\w+)\}/g,(Se,We)=>te[We]??We);if(/^https?:\/\//i.test(Ce)){window.open(Ce,"_blank");return}l.push({path:Ce})}else z(h.items?.componentSettings?.record),k.value=!0,v.value=te?.uuid??te?.id??null},za=te=>{q(h.items?.componentSettings?.form),y.value=!0,A.value=te?.uuid??te?.id??null,C.value="edit"},wt=te=>{b.value=te,x.value=!0},ma=te=>{x.value=!1,br(te?.uuid??te?.id??null)},Ba=te=>{B.value=te,w.value=!0},eo=({item:te,field:le,url:Ce})=>{if(Ce){if(/^https?:\/\//i.test(Ce)||le.target==="_blank"){window.open(Ce,le.target||"_blank");return}l.push({path:Ce})}},br=async te=>{try{const le=E.value?.delete?.crudLink;if(!le){console.error("Delete link not defined in componentSettings"),r.show({message:"Delete action not configured",variant:"error"});return}const Ce=le;await t.delete(Ce+`/${te}`),P({page:K.value.page,per_page:K.value.itemsPerPage})}catch(le){console.error("Error deleting item:",le)}},me=async(te,le)=>{if(!h.items?.componentSettings?.customcomponent)return r.show({message:"Custom modal not configured",variant:"error"});const Ce=new URLSearchParams,Se="/ccs/"+h.items?.componentSettings?.customcomponent+"?"+Ce.toString();console.log("dsf",h.items?.componentSettings?.customcomponent);try{const We=await t.get(Se);I.value=te,Z.value=We?.[I.value]}catch(We){r.show({message:We.response?.data?.error||"Error loading modal config",variant:"error"})}},Ee=a.computed(()=>{const te=typeof I.value=="string"?I.value.toLowerCase():"";return te&&Object.prototype.hasOwnProperty.call(s,te)?$(s[te]):te?R(te,"form",!0):null}),Fe=async({item:te,action:le})=>{le?.component&&(T.value=te,_.value=le.component,Z.value={},N.value=!0,await me(le.component,te.uuid??te?.id))},Ae=(te=!1)=>{N.value=!1,T.value=null,Z.value={},_.value="",te&&P({page:K.value.page,per_page:K.value.itemsPerPage})},Ne=()=>{P({page:K.value.page,per_page:K.value.itemsPerPage})};return a.watch(()=>h.items,te=>{te?.componentSettings?.table&&oe(te.componentSettings.table),te?.componentSettings?.card&&F(te.componentSettings.card),te?.componentSettings?.toolbar&&O(te.componentSettings.toolbar),u("items",te)},{immediate:!0,deep:!0}),(te,le)=>{const Ce=a.resolveComponent("Card");return a.openBlock(),a.createElementBlock("div",hE,[a.createVNode(ah,{modelValue:w.value,"onUpdate:modelValue":le[0]||(le[0]=Se=>w.value=Se),src:B.value?.src,"show-download":!0,"show-print":!0,title:B.value?.title,width:"900","z-index":"z-[99999999]"},null,8,["modelValue","src","title"]),n.items?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.renderSlot(te.$slots,"topSlot",{items:n.items}),a.renderSlot(te.$slots,"breadcrumb",{},()=>[a.createVNode(a.unref(cn),{class:"mb-3"})]),a.createVNode(Ce,{"card-class":"",bg:"vts-bg-surface-elevated",padding:"p-3",margin:"mb-4",shadow:"shadow-lg",rounded:"none",border:"border-none border-b border-solid border-primary/50"},{default:a.withCtx(()=>[a.renderSlot(te.$slots,"toolbar",{toolbar:M.value,filterSection:D.value},()=>[n.items.componentSettings?.toolbar?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(ue.value),{key:0,dir:c.value??"",elevation:!1,color:"none",bg:"",padding:"px-4",variant:"contained",title:a.unref(it)(M.value.title),"create-button":M.value?.createButton??!1,"quick-filters":M.value?.filters,"filter-section":!!h.items?.componentSettings?.filterSection,"filter-values":g.value,"filter-section-values":f.value,"onUpdate:filterValues":le[1]||(le[1]=Se=>g.value=Se),onShowFilterSection:ke,onSearch:le[2]||(le[2]=Se=>Q(Se,"toolbar")),onRefresh:ze,onCreateButton:Ye},null,40,["dir","title","create-button","quick-filters","filter-section","filter-values","filter-section-values"])):a.createCommentVNode("",!0)]),a.createVNode(a.Transition,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"transform -translate-y-4 opacity-0","enter-to-class":"transform translate-y-0 opacity-100","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"transform translate-y-0 opacity-100","leave-to-class":"transform -translate-y-4 opacity-0"},{default:a.withCtx(()=>[D.value&&p.value?(a.openBlock(),a.createBlock(Ce,{key:0,"card-class":"border-dashed",rounded:"lg",bg:"",margin:"mt-2"},{default:a.withCtx(()=>[a.renderSlot(te.$slots,"filterSection",{},()=>[(a.openBlock(),a.createBlock(a.resolveDynamicComponent(ee.value),{dir:c.value??"",grid:"","grid-columns":2,modelValue:f.value,"onUpdate:modelValue":le[3]||(le[3]=Se=>f.value=Se),rounded:"",filters:D.value?.filters,buttons:D.value?.buttons,onSearch:le[4]||(le[4]=Se=>Q(Se,"filterSection")),onSubmit:le[5]||(le[5]=Se=>Q(Se,"filterSection")),onClose:le[6]||(le[6]=Se=>p.value=!1)},null,40,["dir","modelValue","filters","buttons"]))])]),_:3})):a.createCommentVNode("",!0)]),_:3})]),_:3}),a.renderSlot(te.$slots,"table",{table:E.value},()=>[n.items.componentSettings?.table?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(ie.value),{key:0,dir:c.value??"",items:m.value?.data,settings:E.value,"server-side-options":K.value,"items-per-page-options":Y.value,loading:d.value,title:"",lang:h.lang||a.unref(o).value||"dv","onUpdate:options":X,"show-actions":E.value?.showActions??!0,"show-view":E.value?.actions?.showView??!0,"show-edit":E.value?.actions?.showEdit??!0,"show-delete":E.value?.actions?.showDelete??!0,"inline-edit":E.value?.showInlineEdit??!1,onInlineUpdate:pe,onView:Aa,onEdit:za,onDelete:wt,onViewpdf:Ba,onCustomAction:Fe},null,40,["dir","items","settings","server-side-options","items-per-page-options","loading","lang","show-actions","show-view","show-edit","show-delete","inline-edit"])):a.createCommentVNode("",!0)]),a.renderSlot(te.$slots,"card",{card:S.value,cardData:m.value?.data},()=>[n.items.componentSettings?.card?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(ae.value),{key:0,dir:c.value??"",items:m.value?.data,settings:S.value,"server-side-options":K.value,"items-per-page-options":Y.value,loading:d.value,lang:n.lang,"onUpdate:options":X,onActionClick:eo},null,40,["dir","items","settings","server-side-options","items-per-page-options","loading","lang"])):a.createCommentVNode("",!0)]),!n.items.componentSettings?.table&&!n.items.componentSettings?.card?(a.openBlock(),a.createElementBlock("div",uE,[...le[10]||(le[10]=[a.createElementVNode("p",null,"No display component configured",-1)])])):a.createCommentVNode("",!0)],64)):(a.openBlock(),a.createElementBlock("div",pE,[...le[11]||(le[11]=[a.createElementVNode("p",null,"No data",-1)])])),a.renderSlot(te.$slots,"form",{form:L.value},()=>[y.value&&n.items.componentSettings?.form&&J.value?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(J.value),{key:0,dir:c.value??"",width:L.value?.width||"w-auto",form:L.value,rounded:"sm",title:a.unref(it)(C.value=="edit"?L.value?.editTitle:L.value?.createTitle)||"",onClose:re,"onSubmit:success":we,lang:n.lang,"crud-link":L.value?.crudLink,"edit-item-id":A.value,mode:C.value,onViewPdf:Ba},null,40,["dir","width","form","title","lang","crud-link","edit-item-id","mode"])):a.createCommentVNode("",!0)]),a.renderSlot(te.$slots,"delete",{delete:E.value?.delete},()=>[a.createVNode(a.unref(k0),{dir:c.value??"",modelValue:x.value,"onUpdate:modelValue":le[7]||(le[7]=Se=>x.value=Se),item:b.value,title:E.value?.delete?.title,subtitle:E.value?.delete?.subtitle,type:"warning",onConfirm:ma,onCancel:le[8]||(le[8]=Se=>{x.value=!1,b.value=null})},{default:a.withCtx(()=>[E.value?.delete?.message?(a.openBlock(!0),a.createElementBlock(a.Fragment,{key:0},a.renderList(E.value?.delete?.message,(Se,We)=>(a.openBlock(),a.createElementBlock("div",{key:We},[a.createElementVNode("p",null,[a.createElementVNode("b",null,a.toDisplayString(a.unref(it)(Se,""))+":",1),a.createTextVNode(" "+a.toDisplayString(b.value[We]),1)])]))),128)):a.createCommentVNode("",!0)]),_:1},8,["dir","modelValue","item","title","subtitle"])]),a.renderSlot(te.$slots,"record",{record:V.value},()=>[k.value&&(V.value.showLink||V.value.crudLink)?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(he.value),{key:0,record:V.value,itemId:v.value,lang:n.lang,onClose:le[9]||(le[9]=Se=>{k.value=!1,v.value=null})},null,40,["record","itemId","lang"])):a.createCommentVNode("",!0)]),a.renderSlot(te.$slots,"bottomSlot",{items:n.items},()=>[N.value&&Ee.value?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(Ee.value),{key:0,dir:c.value??"",config:Z.value,item:T.value,lang:n.lang,width:Z.value?.width||"w-auto",onClose:Ae,"onSubmit:success":Ne},null,40,["dir","config","item","lang","width"])):a.createCommentVNode("",!0)])])}}},fE={key:1},mE={__name:"ComponentRenderer",setup(n){const{language:e}=a.inject("i18n"),t=a.inject("api"),r=a.inject("snackbar"),o=qo.useRoute(),s=a.ref("");a.computed(()=>o.params.org_uuid||"");const i=a.computed(()=>o.params.modelName||""),l=a.computed(()=>o.params.componentName||""),c=a.ref(null),h=a.ref(!1),d=async(p={})=>{try{h.value=!0;const f=new URLSearchParams({component:l.value,...p}),g=await t.get(`/ccs/${i.value}?${f}`);(!g||!g.componentSettings)&&(console.error("Invalid response:",g),s.value=g.error,r.show({message:s.value,variant:"error"})),c.value=g}catch(f){s.value=f.response.data.error||"Error fetching data",r.show({message:s.value,variant:"error"}),console.error("Error fetching data:",f)}finally{h.value=!1}},u=p=>{d(p)};return a.onMounted(()=>{d()}),a.watch([i,l],()=>{c.value=null,s.value="",d()}),(p,f)=>(a.openBlock(),a.createElementBlock("div",null,[c.value?(a.openBlock(),a.createBlock(Bp,{key:i.value+"/"+l.value,items:c.value,loading:h.value,lang:c.value?.lang??a.unref(e),"onUpdate:queryParams":u},null,8,["items","loading","lang"])):(a.openBlock(),a.createElementBlock("div",fE,[a.createElementVNode("p",null,a.toDisplayString(s.value),1)]))]))}},gE="data:image/png;base64,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",xE={class:"flex pr-100 pl-100 gap-2"},wE={class:"inline-flex items-center gap-2"},bE={class:"flex gap-2"},Ep={__name:"AppBarExample",setup(n){const e=a.inject("setRtl"),{t,setLanguage:r,language:o}=a.inject("i18n"),s=a.ref(!0);return a.onMounted(()=>{const i=localStorage.getItem("rtlSetting");i!==null?s.value=i==="true":s.value=globalRtl.value,console.log("Initial RTL setting on mount:",s.value)}),a.watch(s,i=>{e(i),s.value==!0?r("dv"):r("en")}),(i,l)=>{const c=a.resolveComponent("HeroIcon"),h=a.resolveComponent("Button");return a.openBlock(),a.createElementBlock(a.Fragment,null,[a.createVNode(m0,{title:"އެޕްގެ ނަން","title-align":"center","title-class":"text-xl font-bold",fixed:"",elevation:"2",drawer:"",rtl:s.value},{prepend:a.withCtx(()=>[...l[4]||(l[4]=[a.createElementVNode("img",{src:gE,alt:"Logo",class:"h-8 w-8 mr-2"},null,-1)])]),nav:a.withCtx(()=>[...l[5]||(l[5]=[])]),actions:a.withCtx(()=>[a.createElementVNode("button",{class:"p-2 rounded hover:bg-gray-100",onClick:l[0]||(l[0]=d=>Ja.value=!a.unref(Ja)),"aria-label":"Toggle drawer"},[a.createVNode(c,{name:"bars-3",size:"20",color:"text-blue-700"})])]),append:a.withCtx(()=>[...l[6]||(l[6]=[])]),"mobile-nav":a.withCtx(()=>[...l[7]||(l[7]=[a.createElementVNode("a",{href:"#",class:"block px-3 py-2 text-blue-700"},"Home",-1),a.createElementVNode("a",{href:"#",class:"block px-3 py-2 text-blue-700"},"About",-1),a.createElementVNode("a",{href:"#",class:"block px-3 py-2 text-blue-700"},"Contact",-1)])]),_:1},8,["rtl"]),a.createElementVNode("div",xE,[a.createElementVNode("label",wE,[a.withDirectives(a.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":l[1]||(l[1]=d=>s.value=d),class:"form-checkbox"},null,512),[[a.vModelCheckbox,s.value]]),l[8]||(l[8]=a.createElementVNode("span",{class:"text-sm text-gray-700"},"RTL",-1))]),a.createElementVNode("div",bE,[a.createVNode(h,{color:a.unref(o)==="en"?"primary":"gray",onClick:l[2]||(l[2]=d=>i.$setLanguage("en"))},{default:a.withCtx(()=>[...l[9]||(l[9]=[a.createTextVNode("English",-1)])]),_:1},8,["color"]),a.createVNode(h,{class:"faruma",color:a.unref(o)=="dv"?"primary":"gray",onClick:l[3]||(l[3]=d=>i.$setLanguage("dv"))},{default:a.withCtx(()=>[...l[10]||(l[10]=[a.createTextVNode("ދިވެހި",-1)])]),_:1},8,["color"])]),a.createElementVNode("p",null,"Current language: "+a.toDisplayString(a.unref(o)),1)])],64)}}},yE={class:"grid place-items-center space-y-6 p-6"},kE={class:"flex items-center gap-8"},vE={class:"flex items-center gap-8"},CE={class:"flex items-center gap-8"},AE=a.defineComponent({__name:"AvatarExample",setup(n){return(e,t)=>(a.openBlock(),a.createElementBlock("div",yE,[t[0]||(t[0]=a.createElementVNode("h2",{class:"text-xl font-semibold mb-2 text-center"},"Avatar Example Usage",-1)),a.createElementVNode("div",kE,[a.createVNode(xa,{src:"https://i.pravatar.cc/100?img=5",alt:"Alice"}),a.createVNode(xa,{text:"Ahmed Shareef",bordered:!0}),a.createVNode(xa,{text:"P G O",size:"lg",shape:"rounded",bordered:!0}),a.createVNode(xa,{text:"UI",size:"xl",bordered:!0})]),a.createElementVNode("div",vE,[a.createVNode(xa,{text:"CS",shape:"circular",bordered:!0}),a.createVNode(xa,{text:"CS",shape:"rounded",bordered:!0}),a.createVNode(xa,{text:"CS",shape:"square",bordered:!0})]),a.createElementVNode("div",CE,[a.createVNode(xa,{text:"xs",size:"xs",bordered:!0}),a.createVNode(xa,{text:"sm",size:"sm",bordered:!0}),a.createVNode(xa,{text:"md",size:"md",bordered:!0}),a.createVNode(xa,{text:"lg",size:"lg",bordered:!0}),a.createVNode(xa,{text:"xl",size:"xl",bordered:!0})])]))}}),BE={class:"p-6 max-w-4xl mx-auto space-y-8"},EE={class:"space-y-4"},SE={class:"flex gap-2 flex-wrap"},ME={class:"space-y-4"},VE={class:"space-y-6"},NE={class:"mt-6 flex gap-2 flex-wrap"},Sp={__name:"BannerExample",setup(n){const e=a.ref(!0),t=a.ref(!0),r=a.ref(!0),o=a.ref(!0),s=a.ref(!0),i=a.ref(!0),l=a.ref(!0),c=a.ref(!0),h=a.ref(!0),d=a.ref(!1),u=a.ref(!0),p=a.ref(!0),f=()=>{alert("Update initiated!"),i.value=!1},g=()=>{e.value=!0,t.value=!0,r.value=!0,o.value=!0,s.value=!0,i.value=!0,l.value=!0,c.value=!0,h.value=!0,d.value=!0,u.value=!0,p.value=!0},m=()=>{e.value=!1,t.value=!1,r.value=!1,o.value=!1,s.value=!1,i.value=!1,l.value=!1,c.value=!1,h.value=!1,d.value=!1,u.value=!1,p.value=!1};return(x,w)=>(a.openBlock(),a.createElementBlock("div",BE,[w[30]||(w[30]=a.createElementVNode("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Banner Components",-1)),a.createVNode(tt,{title:"Banner Controls"},{default:a.withCtx(()=>[a.createElementVNode("div",EE,[a.createElementVNode("div",SE,[a.createVNode(ye,{onClick:w[0]||(w[0]=b=>e.value=!0),color:"gray",size:"sm"},{default:a.withCtx(()=>[...w[18]||(w[18]=[a.createTextVNode("Show Default",-1)])]),_:1}),a.createVNode(ye,{onClick:w[1]||(w[1]=b=>t.value=!0),color:"info",size:"sm"},{default:a.withCtx(()=>[...w[19]||(w[19]=[a.createTextVNode("Show Info",-1)])]),_:1}),a.createVNode(ye,{onClick:w[2]||(w[2]=b=>r.value=!0),color:"success",size:"sm"},{default:a.withCtx(()=>[...w[20]||(w[20]=[a.createTextVNode("Show Success",-1)])]),_:1}),a.createVNode(ye,{onClick:w[3]||(w[3]=b=>o.value=!0),color:"warning",size:"sm"},{default:a.withCtx(()=>[...w[21]||(w[21]=[a.createTextVNode("Show Warning",-1)])]),_:1}),a.createVNode(ye,{onClick:w[4]||(w[4]=b=>s.value=!0),color:"danger",size:"sm"},{default:a.withCtx(()=>[...w[22]||(w[22]=[a.createTextVNode("Show Error",-1)])]),_:1})])])]),_:1}),a.createElementVNode("div",ME,[a.createVNode(ra,{modelValue:e.value,"onUpdate:modelValue":w[5]||(w[5]=b=>e.value=b),title:"Default Banner",message:"This is a default banner message.",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:t.value,"onUpdate:modelValue":w[6]||(w[6]=b=>t.value=b),variant:"info",icon:"info",title:"Information",message:"This is an informational banner with an icon.",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:r.value,"onUpdate:modelValue":w[7]||(w[7]=b=>r.value=b),variant:"success",icon:"success",title:"Success!",message:"Your action was completed successfully.",timeout:5e3,"show-progress":"",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:o.value,"onUpdate:modelValue":w[8]||(w[8]=b=>o.value=b),variant:"warning",icon:"warning",title:"Warning",message:"Please review the following information carefully.",outlined:"",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:s.value,"onUpdate:modelValue":w[9]||(w[9]=b=>s.value=b),variant:"error",icon:"error",title:"Error",message:"An error occurred. Please try again.",sticky:""},null,8,["modelValue"])]),a.createVNode(tt,{title:"Banner Variants"},{default:a.withCtx(()=>[a.createElementVNode("div",VE,[a.createVNode(ra,{modelValue:i.value,"onUpdate:modelValue":w[11]||(w[11]=b=>i.value=b),variant:"info",icon:"info",title:"Update Available",message:"A new version is available. Update now to get the latest features."},{actions:a.withCtx(()=>[a.createVNode(ye,{size:"sm",variant:"text",color:"info",onClick:w[10]||(w[10]=b=>i.value=!1)},{default:a.withCtx(()=>[...w[23]||(w[23]=[a.createTextVNode(" Dismiss ",-1)])]),_:1}),a.createVNode(ye,{size:"sm",color:"info",onClick:f},{default:a.withCtx(()=>[...w[24]||(w[24]=[a.createTextVNode(" Update Now ",-1)])]),_:1})]),_:1},8,["modelValue"]),a.createVNode(ra,{modelValue:l.value,"onUpdate:modelValue":w[12]||(w[12]=b=>l.value=b),variant:"success",icon:"success",message:"Dense banner with compact spacing",dense:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:c.value,"onUpdate:modelValue":w[13]||(w[13]=b=>c.value=b),variant:"warning"},{title:a.withCtx(()=>[...w[25]||(w[25]=[a.createElementVNode("div",{class:"flex items-center gap-2"},[a.createElementVNode("span",{class:"text-2xl"},"⚠️"),a.createElementVNode("span",null,"Custom Banner Content")],-1)])]),default:a.withCtx(()=>[...w[26]||(w[26]=[a.createElementVNode("p",null,"You can use slots to fully customize the banner content.",-1),a.createElementVNode("ul",{class:"list-disc list-inside mt-2 text-sm"},[a.createElementVNode("li",null,"Custom icons"),a.createElementVNode("li",null,"Rich content"),a.createElementVNode("li",null,"Any HTML structure")],-1)])]),_:1},8,["modelValue"]),a.createVNode(ra,{modelValue:h.value,"onUpdate:modelValue":w[14]||(w[14]=b=>h.value=b),variant:"success",icon:"success",title:"Auto Dismiss",message:"This banner will automatically dismiss in 10 seconds.",timeout:1e4,"show-progress":""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:d.value,"onUpdate:modelValue":w[15]||(w[15]=b=>d.value=b),variant:"info",icon:"info",title:"Bottom Banner",message:"This banner is positioned at the bottom.",position:"bottom",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:u.value,"onUpdate:modelValue":w[16]||(w[16]=b=>u.value=b),variant:"error",icon:"error",title:"Rounded Banner",message:"This banner has rounded corners.",rounded:"lg"},null,8,["modelValue"]),a.createVNode(ra,{modelValue:p.value,"onUpdate:modelValue":w[17]||(w[17]=b=>p.value=b),variant:"warning",icon:"warning",title:"Important Notice",message:"This banner cannot be closed by the user.",closeable:!1},null,8,["modelValue"])]),a.createElementVNode("div",NE,[a.createVNode(ye,{onClick:g,size:"sm"},{default:a.withCtx(()=>[...w[27]||(w[27]=[a.createTextVNode("Show All Banners",-1)])]),_:1}),a.createVNode(ye,{onClick:m,variant:"outlined",size:"sm"},{default:a.withCtx(()=>[...w[28]||(w[28]=[a.createTextVNode("Hide All Banners",-1)])]),_:1})])]),_:1}),a.createVNode(tt,{title:"API Reference"},{default:a.withCtx(()=>[...w[29]||(w[29]=[a.createElementVNode("div",{class:"overflow-x-auto"},[a.createElementVNode("table",{class:"min-w-full text-sm"},[a.createElementVNode("thead",{class:"border-b"},[a.createElementVNode("tr",null,[a.createElementVNode("th",{class:"text-left p-2"},"Prop"),a.createElementVNode("th",{class:"text-left p-2"},"Type"),a.createElementVNode("th",{class:"text-left p-2"},"Default"),a.createElementVNode("th",{class:"text-left p-2"},"Description")])]),a.createElementVNode("tbody",{class:"divide-y"},[a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"v-model"),a.createElementVNode("td",{class:"p-2"},"Boolean"),a.createElementVNode("td",{class:"p-2"},"true"),a.createElementVNode("td",{class:"p-2"},"Controls banner visibility")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"variant"),a.createElementVNode("td",{class:"p-2"},"String"),a.createElementVNode("td",{class:"p-2"},"'default'"),a.createElementVNode("td",{class:"p-2"},"default | info | success | warning | error")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"icon"),a.createElementVNode("td",{class:"p-2"},"String"),a.createElementVNode("td",{class:"p-2"},"''"),a.createElementVNode("td",{class:"p-2"},"Icon to display (info, success, warning, error)")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"timeout"),a.createElementVNode("td",{class:"p-2"},"Number"),a.createElementVNode("td",{class:"p-2"},"0"),a.createElementVNode("td",{class:"p-2"},"Auto-dismiss after X ms (0 = disabled)")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"sticky"),a.createElementVNode("td",{class:"p-2"},"Boolean"),a.createElementVNode("td",{class:"p-2"},"false"),a.createElementVNode("td",{class:"p-2"},"Stick to top/bottom of viewport")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"position"),a.createElementVNode("td",{class:"p-2"},"String"),a.createElementVNode("td",{class:"p-2"},"'top'"),a.createElementVNode("td",{class:"p-2"},"Position when sticky (top | bottom)")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"showProgress"),a.createElementVNode("td",{class:"p-2"},"Boolean"),a.createElementVNode("td",{class:"p-2"},"false"),a.createElementVNode("td",{class:"p-2"},"Show progress bar for auto-dismiss")])])])],-1)])]),_:1})]))}},DE={class:"p-6 space-y-6"},LE=a.defineComponent({__name:"BreadcrumbExample",setup(n){const e=[{label:"އުޅޭތަން",href:"/"},{label:"ޕްރޮޖެކްޓްސް",href:"/projects"},{label:"ކުދި ޕްރޮޖެކްޓްސް",disabled:!0}],t=[{label:"Home",href:"/"},{label:"Projects",href:"/projects"},{label:"Smaller projects",disabled:!0}];return(r,o)=>(a.openBlock(),a.createElementBlock("div",DE,[a.createElementVNode("section",null,[o[0]||(o[0]=a.createElementVNode("h3",{class:"mb-2 font-medium"}," From Router ",-1)),a.createVNode(cn)]),a.createVNode(cn,{items:e}),a.createVNode(cn,{items:e,"container-class":"text-[var(--vts-color-primary)]","item-class":"hover:underline","active-class":"text-[var(--vts-color-text)]"},{prepend:a.withCtx(()=>[...o[1]||(o[1]=[a.createElementVNode("span",{class:"text-[var(--vts-color-primary)]"},"📁 ",-1)])]),divider:a.withCtx(()=>[...o[2]||(o[2]=[a.createElementVNode("span",{class:"text-[var(--vts-color-textSecondary)]"},"/",-1)])]),_:1}),a.createElementVNode("div",null,[a.createVNode(cn,{items:t,"container-class":"text-[var(--vts-color-text)]"})])]))}}),IE={class:"p-6 max-w-4xl mx-auto space-y-8"},TE={class:"flex gap-2"},PE={class:"flex justify-end gap-2"},HE={class:"flex justify-end gap-2"},Mp={__name:"CardExample",setup(n){const e={title:"Sample Item",body:" This is a simple card component. You can use it to display content in a structured way.",title_dv:"ސަމްޕަލް އައިޓެމް",body_dv:"ގައުމީ ސިއްހީ އިންޝުއަރެންސް ނިޒާމު އާސަންދަ އޮތީ ސަލާންޖަހަން ޖެހޭ ފަދަ ހާލަތެއްގައިކަން ގަބޫލުކުރަން ދަތި ކަމަށް ހެލްތު މިނިސްޓަރު އަބްދުﷲ ނާޒިމް އިބްރާހީމް މިއަދު ވިދާޅުވެއްޖެއެވެ."},t={en:{title:"title",body:"body"},dv:{title:"title_dv",body:"body_dv"}},r={en:"title",dv:"ކާޑް"};return(o,s)=>(a.openBlock(),a.createElementBlock("div",IE,[s[0]||(s[0]=a.createElementVNode("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Card Components",-1)),a.createElementVNode("div",TE,[a.createVNode(tt,{lang:"en",title:r,labels:t,item:e,cardClass:"w-92 "},{footer:a.withCtx(()=>[a.createElementVNode("div",PE,[a.createVNode(ye,{size:"xs",color:"gray",variant:"outlined",label:"buttons.cancel"}),a.createVNode(ye,{size:"xs",label:"buttons.save",variant:"default"})])]),_:1}),a.createVNode(tt,{title:t,lang:"dv",labels:t,item:e,cardClass:"w-92 ",rounded:"xl",class:"border-dashed"},{footer:a.withCtx(()=>[a.createElementVNode("div",HE,[a.createVNode(ye,{lang:"dv",size:"xs",label:"buttons.save",variant:"default"}),a.createVNode(ye,{lang:"dv",size:"xs",color:"gray",variant:"outlined",label:"buttons.cancel"})])]),_:1})])]))}},RE={class:"p-6 max-w-4xl mx-auto space-y-8"},OE={class:"space-y-4"},zE={class:"flex flex-wrap gap-2"},ZE={class:"flex flex-wrap gap-2"},FE={class:"flex flex-wrap gap-2"},_E={class:"flex flex-wrap items-center gap-4"},XE={class:"space-y-4"},YE={class:"flex flex-wrap gap-2"},$E={class:"flex flex-wrap gap-2"},WE={class:"flex flex-wrap gap-2"},jE={class:"flex flex-wrap gap-2"},UE={class:"space-y-4"},Vp={__name:"ChipExample",setup(n){const e=a.ref(["JavaScript","Vue.js","TypeScript","Tailwind CSS","Node.js"]),t=a.ref([{id:1,text:"Frontend"},{id:2,text:"Backend"},{id:3,text:"Database"},{id:4,text:"DevOps"}]),r=a.ref([{id:1,text:"High Priority",color:"error",variant:"filled",clickable:!0},{id:2,text:"Medium Priority",color:"warning",variant:"outlined",clickable:!0},{id:3,text:"Low Priority",color:"info",variant:"default",clickable:!0},{id:4,text:"Completed",color:"success",variant:"tonal",closable:!0}]),o=()=>{console.log("Chip clicked!")},s=()=>{console.log("Chip closed!")},i=c=>{console.log("Group chip clicked:",c)},l=c=>{console.log("Group chip closed:",c)};return(c,h)=>(a.openBlock(),a.createElementBlock("div",RE,[h[10]||(h[10]=a.createElementVNode("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Chip Components",-1)),a.createVNode(tt,{title:"Basic Chips",class:"space-y-4"},{default:a.withCtx(()=>[a.createElementVNode("div",OE,[a.createElementVNode("div",null,[h[1]||(h[1]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Default Variants",-1)),a.createElementVNode("div",zE,[a.createVNode(Ze,{label:"Default"}),a.createVNode(Ze,{label:"Primary",color:"primary"}),a.createVNode(Ze,{label:"Secondary",color:"secondary"}),a.createVNode(Ze,{label:"Success",color:"success"}),a.createVNode(Ze,{label:"Warning",color:"warning"}),a.createVNode(Ze,{label:"Error",color:"error"}),a.createVNode(Ze,{label:"Info",color:"info"})])]),a.createElementVNode("div",null,[h[2]||(h[2]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Outlined Variants",-1)),a.createElementVNode("div",ZE,[a.createVNode(Ze,{label:"Default",variant:"outlined"}),a.createVNode(Ze,{label:"Primary",variant:"outlined",color:"primary"}),a.createVNode(Ze,{label:"Secondary",variant:"outlined",color:"secondary"}),a.createVNode(Ze,{label:"Success",variant:"outlined",color:"success"}),a.createVNode(Ze,{label:"Warning",variant:"outlined",color:"warning"}),a.createVNode(Ze,{label:"Error",variant:"outlined",color:"error"}),a.createVNode(Ze,{label:"Info",variant:"outlined",color:"info"})])]),a.createElementVNode("div",null,[h[3]||(h[3]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Filled Variants",-1)),a.createElementVNode("div",FE,[a.createVNode(Ze,{label:"Default",variant:"filled"}),a.createVNode(Ze,{label:"Primary",variant:"filled",color:"primary"}),a.createVNode(Ze,{label:"Secondary",variant:"filled",color:"secondary"}),a.createVNode(Ze,{label:"Success",variant:"filled",color:"success"}),a.createVNode(Ze,{label:"Warning",variant:"filled",color:"warning"}),a.createVNode(Ze,{label:"Error",variant:"filled",color:"error"}),a.createVNode(Ze,{label:"Info",variant:"filled",color:"info"})])])])]),_:1}),a.createVNode(tt,{title:"Chip Sizes",class:"space-y-4"},{default:a.withCtx(()=>[a.createElementVNode("div",_E,[a.createVNode(Ze,{label:"Small Chip",size:"small"}),a.createVNode(Ze,{label:"Default Chip",size:"default"}),a.createVNode(Ze,{label:"Large Chip",size:"large"})])]),_:1}),a.createVNode(tt,{title:"Interactive Chips",class:"space-y-4"},{default:a.withCtx(()=>[a.createElementVNode("div",XE,[a.createElementVNode("div",null,[h[4]||(h[4]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Clickable Chips",-1)),a.createElementVNode("div",YE,[a.createVNode(Ze,{label:"Click Me",clickable:"",onClick:o}),a.createVNode(Ze,{label:"Primary Click",color:"primary",clickable:"",onClick:o}),a.createVNode(Ze,{label:"Success Click",color:"success",clickable:"",onClick:o})])]),a.createElementVNode("div",null,[h[5]||(h[5]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Closable Chips",-1)),a.createElementVNode("div",$E,[a.createVNode(Ze,{label:"Closable",closable:"",onClose:s}),a.createVNode(Ze,{label:"Primary Close",color:"primary",closable:"",onClose:s}),a.createVNode(Ze,{label:"Error Close",color:"error",variant:"filled",closable:"",onClose:s})])]),a.createElementVNode("div",null,[h[6]||(h[6]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Disabled Chips",-1)),a.createElementVNode("div",WE,[a.createVNode(Ze,{label:"Disabled",disabled:""}),a.createVNode(Ze,{label:"Disabled Click",clickable:"",disabled:""}),a.createVNode(Ze,{label:"Disabled Close",closable:"",disabled:""})])])])]),_:1}),a.createVNode(tt,{title:"Custom Styled Chips",class:"space-y-4"},{default:a.withCtx(()=>[a.createElementVNode("div",jE,[a.createVNode(Ze,{label:"Custom Purple","bg-color":"bg-purple-100","text-color":"text-purple-800",clickable:"",onClick:o}),a.createVNode(Ze,{label:"Custom Gradient","bg-color":"bg-gradient-to-r from-pink-500 to-violet-500","text-color":"text-white",rounded:"lg",clickable:"",onClick:o}),a.createVNode(Ze,{label:"Custom Border",variant:"outlined","border-color":"border-orange-500","text-color":"text-orange-600",closable:"",onClose:s})])]),_:1}),a.createVNode(tt,{title:"Chip Groups",class:"space-y-6"},{default:a.withCtx(()=>[a.createElementVNode("div",UE,[a.createElementVNode("div",null,[h[7]||(h[7]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Simple Chip Group",-1)),a.createVNode(us,{chips:e.value,color:"primary",clickable:"",onChipClick:i},null,8,["chips"])]),a.createElementVNode("div",null,[h[8]||(h[8]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Closable Chip Group",-1)),a.createVNode(us,{chips:t.value,"onUpdate:chips":h[0]||(h[0]=d=>t.value=d),color:"success",closable:"",onChipClose:l},null,8,["chips"])]),a.createElementVNode("div",null,[h[9]||(h[9]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Mixed Styled Chips",-1)),a.createVNode(us,{chips:r.value,gap:"lg",justify:"center",onChipClick:i},null,8,["chips"])])])]),_:1})]))}},GE={class:"p-6 max-w-4xl mx-auto space-y-8"},qE={class:"flex items-center gap-4 flex-wrap"},KE={class:"mt-4 p-4 bg-gray-100 rounded"},QE={class:"text-sm font-medium"},Np={__name:"DropdownExample",setup(n){const e=a.ref(null),t=[{label:"Profile",value:"profile"},{label:"Settings",value:"settings"},{label:"Logout",value:"logout"}],r=l=>{e.value=l.label||l,console.log("Selected:",l)},o=()=>{console.log("Edit clicked")},s=()=>{console.log("View clicked")},i=()=>{console.log("Delete clicked")};return(l,c)=>(a.openBlock(),a.createElementBlock("div",GE,[c[8]||(c[8]=a.createElementVNode("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Dropdown Components",-1)),a.createVNode(tt,{title:"Dropdown Examples",class:"space-y-6"},{default:a.withCtx(()=>[a.createElementVNode("div",qE,[a.createVNode(Hr,{label:"Select Option",items:t,onSelect:r}),a.createVNode(Hr,{variant:"outlined",color:"success",label:"Select Option",items:t,onSelect:r}),a.createVNode(Hr,{items:t,onSelect:r},{trigger:a.withCtx(()=>[...c[0]||(c[0]=[a.createElementVNode("button",{class:"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700"}," Custom Trigger ",-1)])]),_:1}),a.createVNode(Hr,{label:"Actions",align:"right"},{default:a.withCtx(()=>[a.createVNode(qi,{onSelect:o},{prepend:a.withCtx(()=>[...c[1]||(c[1]=[a.createTextVNode("📝",-1)])]),default:a.withCtx(()=>[c[2]||(c[2]=a.createTextVNode(" Edit ",-1))]),_:1}),a.createVNode(qi,{onSelect:s},{prepend:a.withCtx(()=>[...c[3]||(c[3]=[a.createTextVNode("👁️",-1)])]),default:a.withCtx(()=>[c[4]||(c[4]=a.createTextVNode(" View ",-1))]),_:1}),c[7]||(c[7]=a.createElementVNode("div",{class:"border-t my-1"},null,-1)),a.createVNode(qi,{onSelect:i},{prepend:a.withCtx(()=>[...c[5]||(c[5]=[a.createTextVNode("🗑️",-1)])]),default:a.withCtx(()=>[c[6]||(c[6]=a.createTextVNode(" Delete ",-1))]),_:1})]),_:1}),a.createVNode(Hr,{label:"Dense Menu",dense:"",items:t,onSelect:r}),a.createVNode(Hr,{label:"Hover Menu","open-on-hover":"",items:t,onSelect:r}),a.createVNode(Hr,{label:"Right Aligned",align:"right",items:t,onSelect:r})]),a.createElementVNode("div",KE,[a.createElementVNode("p",QE,"Selected: "+a.toDisplayString(e.value||"None"),1)])]),_:1})]))}};function Xt(n){this.content=n}Xt.prototype={constructor:Xt,find:function(n){for(var e=0;e<this.content.length;e+=2)if(this.content[e]===n)return e;return-1},get:function(n){var e=this.find(n);return e==-1?void 0:this.content[e+1]},update:function(n,e,t){var r=t&&t!=n?this.remove(t):this,o=r.find(n),s=r.content.slice();return o==-1?s.push(t||n,e):(s[o+1]=e,t&&(s[o]=t)),new Xt(s)},remove:function(n){var e=this.find(n);if(e==-1)return this;var t=this.content.slice();return t.splice(e,2),new Xt(t)},addToStart:function(n,e){return new Xt([n,e].concat(this.remove(n).content))},addToEnd:function(n,e){var t=this.remove(n).content.slice();return t.push(n,e),new Xt(t)},addBefore:function(n,e,t){var r=this.remove(e),o=r.content.slice(),s=r.find(n);return o.splice(s==-1?o.length:s,0,e,t),new Xt(o)},forEach:function(n){for(var e=0;e<this.content.length;e+=2)n(this.content[e],this.content[e+1])},prepend:function(n){return n=Xt.from(n),n.size?new Xt(n.content.concat(this.subtract(n).content)):this},append:function(n){return n=Xt.from(n),n.size?new Xt(this.subtract(n).content.concat(n.content)):this},subtract:function(n){var e=this;n=Xt.from(n);for(var t=0;t<n.content.length;t+=2)e=e.remove(n.content[t]);return e},toObject:function(){var n={};return this.forEach(function(e,t){n[e]=t}),n},get size(){return this.content.length>>1}},Xt.from=function(n){if(n instanceof Xt)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new Xt(e)};function Dp(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let o=n.child(r),s=e.child(r);if(o==s){t+=o.nodeSize;continue}if(!o.sameMarkup(s))return t;if(o.isText&&o.text!=s.text){for(let i=0;o.text[i]==s.text[i];i++)t++;return t}if(o.content.size||s.content.size){let i=Dp(o.content,s.content,t+1);if(i!=null)return i}t+=o.nodeSize}}function Lp(n,e,t,r){for(let o=n.childCount,s=e.childCount;;){if(o==0||s==0)return o==s?null:{a:t,b:r};let i=n.child(--o),l=e.child(--s),c=i.nodeSize;if(i==l){t-=c,r-=c;continue}if(!i.sameMarkup(l))return{a:t,b:r};if(i.isText&&i.text!=l.text){let h=0,d=Math.min(i.text.length,l.text.length);for(;h<d&&i.text[i.text.length-h-1]==l.text[l.text.length-h-1];)h++,t--,r--;return{a:t,b:r}}if(i.content.size||l.content.size){let h=Lp(i.content,l.content,t-1,r-1);if(h)return h}t-=c,r-=c}}class fe{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let r=0;r<e.length;r++)this.size+=e[r].nodeSize}nodesBetween(e,t,r,o=0,s){for(let i=0,l=0;l<t;i++){let c=this.content[i],h=l+c.nodeSize;if(h>e&&r(c,o+l,s||null,i)!==!1&&c.content.size){let d=l+1;c.nodesBetween(Math.max(0,e-d),Math.min(c.content.size,t-d),r,o+d)}l=h}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,o){let s="",i=!0;return this.nodesBetween(e,t,(l,c)=>{let h=l.isText?l.text.slice(Math.max(e,c)-c,t-c):l.isLeaf?o?typeof o=="function"?o(l):o:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&h||l.isTextblock)&&r&&(i?i=!1:s+=r),s+=h},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,o=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(r)&&(o[o.length-1]=t.withText(t.text+r.text),s=1);s<e.content.length;s++)o.push(e.content[s]);return new fe(o,this.size+e.size)}cut(e,t=this.size){if(e==0&&t==this.size)return this;let r=[],o=0;if(t>e)for(let s=0,i=0;i<t;s++){let l=this.content[s],c=i+l.nodeSize;c>e&&((i<e||c>t)&&(l.isText?l=l.cut(Math.max(0,e-i),Math.min(l.text.length,t-i)):l=l.cut(Math.max(0,e-i-1),Math.min(l.content.size,t-i-1))),r.push(l),o+=l.nodeSize),i=c}return new fe(r,o)}cutByIndex(e,t){return e==t?fe.empty:e==0&&t==this.content.length?this:new fe(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let o=this.content.slice(),s=this.size+t.nodeSize-r.nodeSize;return o[e]=t,new fe(o,s)}addToStart(e){return new fe([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new fe(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+" out of range for "+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,r=0;t<this.content.length;t++){let o=this.content[t];e(o,r,t),r+=o.nodeSize}}findDiffStart(e,t=0){return Dp(this,e,t)}findDiffEnd(e,t=this.size,r=e.size){return Lp(this,e,t,r)}findIndex(e){if(e==0)return il(0,e);if(e==this.size)return il(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let o=this.child(t),s=r+o.nodeSize;if(s>=e)return s==e?il(t+1,s):il(t,r);r=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return fe.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new fe(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return fe.empty;let t,r=0;for(let o=0;o<e.length;o++){let s=e[o];r+=s.nodeSize,o&&s.isText&&e[o-1].sameMarkup(s)?(t||(t=e.slice(0,o)),t[t.length-1]=s.withText(t[t.length-1].text+s.text)):t&&t.push(s)}return new fe(t||e,r)}static from(e){if(!e)return fe.empty;if(e instanceof fe)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new fe([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}fe.empty=new fe([],0);const ed={index:0,offset:0};function il(n,e){return ed.index=n,ed.offset=e,ed}function ll(n,e){if(n===e)return!0;if(!(n&&typeof n=="object")||!(e&&typeof e=="object"))return!1;let t=Array.isArray(n);if(Array.isArray(e)!=t)return!1;if(t){if(n.length!=e.length)return!1;for(let r=0;r<n.length;r++)if(!ll(n[r],e[r]))return!1}else{for(let r in n)if(!(r in e)||!ll(n[r],e[r]))return!1;for(let r in e)if(!(r in n))return!1}return!0}let ft=class K1{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,r=!1;for(let o=0;o<e.length;o++){let s=e[o];if(this.eq(s))return e;if(this.type.excludes(s.type))t||(t=e.slice(0,o));else{if(s.type.excludes(this.type))return e;!r&&s.type.rank>this.type.rank&&(t||(t=e.slice(0,o)),t.push(this),r=!0),t&&t.push(s)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&ll(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mark.fromJSON");let r=e.marks[t.type];if(!r)throw new RangeError(`There is no mark type ${t.type} in this schema`);let o=r.create(t.attrs);return r.checkAttrs(o.attrs),o}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!e[r].eq(t[r]))return!1;return!0}static setFrom(e){if(!e||Array.isArray(e)&&e.length==0)return K1.none;if(e instanceof K1)return[e];let t=e.slice();return t.sort((r,o)=>r.type.rank-o.type.rank),t}};ft.none=[];class cl extends Error{}class ve{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=Tp(this.content,e+this.openStart,t);return r&&new ve(r,this.openStart,this.openEnd)}removeBetween(e,t){return new ve(Ip(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return ve.empty;let r=t.openStart||0,o=t.openEnd||0;if(typeof r!="number"||typeof o!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new ve(fe.fromJSON(e,t.content),r,o)}static maxOpen(e,t=!0){let r=0,o=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)o++;return new ve(e,r,o)}}ve.empty=new ve(fe.empty,0,0);function Ip(n,e,t){let{index:r,offset:o}=n.findIndex(e),s=n.maybeChild(r),{index:i,offset:l}=n.findIndex(t);if(o==e||s.isText){if(l!=t&&!n.child(i).isText)throw new RangeError("Removing non-flat range");return n.cut(0,e).append(n.cut(t))}if(r!=i)throw new RangeError("Removing non-flat range");return n.replaceChild(r,s.copy(Ip(s.content,e-o-1,t-o-1)))}function Tp(n,e,t,r){let{index:o,offset:s}=n.findIndex(e),i=n.maybeChild(o);if(s==e||i.isText)return r&&!r.canReplace(o,o,t)?null:n.cut(0,e).append(t).append(n.cut(e));let l=Tp(i.content,e-s-1,t,i);return l&&n.replaceChild(o,i.copy(l))}function JE(n,e,t){if(t.openStart>n.depth)throw new cl("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new cl("Inconsistent open depths");return Pp(n,e,t,0)}function Pp(n,e,t,r){let o=n.index(r),s=n.node(r);if(o==e.index(r)&&r<n.depth-t.openStart){let i=Pp(n,e,t,r+1);return s.copy(s.content.replaceChild(o,i))}else if(t.content.size)if(!t.openStart&&!t.openEnd&&n.depth==r&&e.depth==r){let i=n.parent,l=i.content;return Mo(i,l.cut(0,n.parentOffset).append(t.content).append(l.cut(e.parentOffset)))}else{let{start:i,end:l}=eS(t,n);return Mo(s,Rp(n,i,l,e,r))}else return Mo(s,dl(n,e,r))}function Hp(n,e){if(!e.type.compatibleContent(n.type))throw new cl("Cannot join "+e.type.name+" onto "+n.type.name)}function td(n,e,t){let r=n.node(t);return Hp(r,e.node(t)),r}function So(n,e){let t=e.length-1;t>=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function Ps(n,e,t,r){let o=(e||n).node(t),s=0,i=e?e.index(t):o.childCount;n&&(s=n.index(t),n.depth>t?s++:n.textOffset&&(So(n.nodeAfter,r),s++));for(let l=s;l<i;l++)So(o.child(l),r);e&&e.depth==t&&e.textOffset&&So(e.nodeBefore,r)}function Mo(n,e){return n.type.checkContent(e),n.copy(e)}function Rp(n,e,t,r,o){let s=n.depth>o&&td(n,e,o+1),i=r.depth>o&&td(t,r,o+1),l=[];return Ps(null,n,o,l),s&&i&&e.index(o)==t.index(o)?(Hp(s,i),So(Mo(s,Rp(n,e,t,r,o+1)),l)):(s&&So(Mo(s,dl(n,e,o+1)),l),Ps(e,t,o,l),i&&So(Mo(i,dl(t,r,o+1)),l)),Ps(r,null,o,l),new fe(l)}function dl(n,e,t){let r=[];if(Ps(null,n,t,r),n.depth>t){let o=td(n,e,t+1);So(Mo(o,dl(n,e,t+1)),r)}return Ps(e,null,t,r),new fe(r)}function eS(n,e){let t=e.depth-n.openStart,o=e.node(t).copy(n.content);for(let s=t-1;s>=0;s--)o=e.node(s).copy(fe.from(o));return{start:o.resolveNoCache(n.openStart+t),end:o.resolveNoCache(o.content.size-n.openEnd-t)}}class Hs{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],o=e.child(t);return r?e.child(t).cut(r):o}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],o=t==0?0:this.path[t*3-1]+1;for(let s=0;s<e;s++)o+=r.child(s).nodeSize;return o}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return ft.none;if(this.textOffset)return e.child(t).marks;let r=e.maybeChild(t-1),o=e.maybeChild(t);if(!r){let l=r;r=o,o=l}let s=r.marks;for(var i=0;i<s.length;i++)s[i].type.spec.inclusive===!1&&(!o||!s[i].isInSet(o.marks))&&(s=s[i--].removeFromSet(s));return s}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let r=t.marks,o=e.parent.maybeChild(e.index());for(var s=0;s<r.length;s++)r[s].type.spec.inclusive===!1&&(!o||!r[s].isInSet(o.marks))&&(r=r[s--].removeFromSet(r));return r}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let r=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);r>=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new hl(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e="";for(let t=1;t<=this.depth;t++)e+=(e?"/":"")+this.node(t).type.name+"_"+this.index(t-1);return e+":"+this.parentOffset}static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let r=[],o=0,s=t;for(let i=e;;){let{index:l,offset:c}=i.content.findIndex(s),h=s-c;if(r.push(i,l,o+c),!h||(i=i.child(l),i.isText))break;s=h-1,o+=c+1}return new Hs(t,r,s)}static resolveCached(e,t){let r=Op.get(e);if(r)for(let s=0;s<r.elts.length;s++){let i=r.elts[s];if(i.pos==t)return i}else Op.set(e,r=new tS);let o=r.elts[r.i]=Hs.resolve(e,t);return r.i=(r.i+1)%aS,o}}class tS{constructor(){this.elts=[],this.i=0}}const aS=12,Op=new WeakMap;class hl{constructor(e,t,r){this.$from=e,this.$to=t,this.depth=r}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}}const rS=Object.create(null);let Vo=class Q1{constructor(e,t,r,o=ft.none){this.type=e,this.attrs=t,this.marks=o,this.content=r||fe.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,r,o=0){this.content.nodesBetween(e,t,r,o,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,"")}textBetween(e,t,r,o){return this.content.textBetween(e,t,r,o)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,r){return this.type==e&&ll(this.attrs,t||e.defaultAttrs||rS)&&ft.sameSet(this.marks,r||ft.none)}copy(e=null){return e==this.content?this:new Q1(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new Q1(this.type,this.attrs,this.content,e)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,r=!1){if(e==t)return ve.empty;let o=this.resolve(e),s=this.resolve(t),i=r?0:o.sharedDepth(t),l=o.start(i),h=o.node(i).content.cut(o.pos-l,s.pos-l);return new ve(h,o.depth-i,s.depth-i)}replace(e,t,r){return JE(this.resolve(e),this.resolve(t),r)}nodeAt(e){for(let t=this;;){let{index:r,offset:o}=t.content.findIndex(e);if(t=t.maybeChild(r),!t)return null;if(o==e||t.isText)return t;e-=o+1}}childAfter(e){let{index:t,offset:r}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:r}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:r}=this.content.findIndex(e);if(r<e)return{node:this.content.child(t),index:t,offset:r};let o=this.content.child(t-1);return{node:o,index:t-1,offset:r-o.nodeSize}}resolve(e){return Hs.resolveCached(this,e)}resolveNoCache(e){return Hs.resolve(this,e)}rangeHasMark(e,t,r){let o=!1;return t>e&&this.nodesBetween(e,t,s=>(r.isInSet(s.marks)&&(o=!0),!o)),o}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),zp(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,r=fe.empty,o=0,s=r.childCount){let i=this.contentMatchAt(e).matchFragment(r,o,s),l=i&&i.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let c=o;c<s;c++)if(!this.type.allowsMarks(r.child(c).marks))return!1;return!0}canReplaceWith(e,t,r,o){if(o&&!this.type.allowsMarks(o))return!1;let s=this.contentMatchAt(e).matchType(r),i=s&&s.matchFragment(this.content,t);return i?i.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=ft.none;for(let t=0;t<this.marks.length;t++){let r=this.marks[t];r.type.checkAttrs(r.attrs),e=r.addToSet(e)}if(!ft.sameSet(e,this.marks))throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(t=>t.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,r)}let o=fe.fromJSON(e,t.content),s=e.nodeType(t.type).create(t.attrs,o,r);return s.type.checkAttrs(s.attrs),s}};Vo.prototype.text=void 0;class ul extends Vo{constructor(e,t,r,o){if(super(e,t,null,o),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):zp(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new ul(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new ul(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function zp(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}class No{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new oS(e,t);if(r.next==null)return No.empty;let o=Zp(r);r.next&&r.err("Unexpected trailing text");let s=hS(dS(o));return uS(s,r),s}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,r=e.childCount){let o=this;for(let s=t;o&&s<r;s++)o=o.matchType(e.child(s).type);return o}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let r=0;r<e.next.length;r++)if(this.next[t].type==e.next[r].type)return!0;return!1}fillBefore(e,t=!1,r=0){let o=[this];function s(i,l){let c=i.matchFragment(e,r);if(c&&(!t||c.validEnd))return fe.from(l.map(h=>h.createAndFill()));for(let h=0;h<i.next.length;h++){let{type:d,next:u}=i.next[h];if(!(d.isText||d.hasRequiredAttrs())&&o.indexOf(u)==-1){o.push(u);let p=s(u,l.concat(d));if(p)return p}}return null}return s(this,[])}findWrapping(e){for(let r=0;r<this.wrapCache.length;r+=2)if(this.wrapCache[r]==e)return this.wrapCache[r+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),r=[{match:this,type:null,via:null}];for(;r.length;){let o=r.shift(),s=o.match;if(s.matchType(e)){let i=[];for(let l=o;l.type;l=l.via)i.push(l.type);return i.reverse()}for(let i=0;i<s.next.length;i++){let{type:l,next:c}=s.next[i];!l.isLeaf&&!l.hasRequiredAttrs()&&!(l.name in t)&&(!o.type||c.validEnd)&&(r.push({match:l.contentMatch,type:l,via:o}),t[l.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let o=0;o<r.next.length;o++)e.indexOf(r.next[o].next)==-1&&t(r.next[o].next)}return t(this),e.map((r,o)=>{let s=o+(r.validEnd?"*":" ")+" ";for(let i=0;i<r.next.length;i++)s+=(i?", ":"")+r.next[i].type.name+"->"+e.indexOf(r.next[i].next);return s}).join(`
|
|
987
|
+
</svg>`,PB='<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>';class pp{constructor(e,t){this.w=e,this.ctx=t,this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=e.globals.minX,this.maxX=e.globals.maxX,this.elZoom=null,this.elZoomIn=null,this.elZoomOut=null,this.elPan=null,this.elSelection=null,this.elZoomReset=null,this.elMenuIcon=null,this.elMenu=null,this.elMenuItems=[],this.t=null}createToolbar(){const e=this.w,t=()=>Pe.createElementNS("http://www.w3.org/1999/xhtml","div"),r=t();if(r.setAttribute("class","apexcharts-toolbar"),r.style.top=e.config.chart.toolbar.offsetY+"px",r.style.right=-e.config.chart.toolbar.offsetX+3+"px",e.dom.elWrap.appendChild(r),this.elZoom=t(),this.elZoomIn=t(),this.elZoomOut=t(),this.elPan=t(),this.elSelection=t(),this.elZoomReset=t(),this.elMenuIcon=t(),this.elMenu=t(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(let l=0;l<this.t.customIcons.length;l++)this.elCustomIcons.push(t());const o=[],s=(l,c,h)=>{const d=l.toLowerCase();this.t[d]&&e.config.chart.zoom.enabled&&o.push({el:c,icon:typeof this.t[d]=="string"?this.t[d]:h,title:this.localeValues[l],class:`apexcharts-${d}-icon`})};s("zoomIn",this.elZoomIn,LB),s("zoomOut",this.elZoomOut,IB);const i=l=>{this.t[l]&&e.config.chart[l].enabled&&o.push({el:l==="zoom"?this.elZoom:this.elSelection,icon:typeof this.t[l]=="string"?this.t[l]:l==="zoom"?NB:TB,title:this.localeValues[l==="zoom"?"selectionZoom":"selection"],class:`apexcharts-${l}-icon`})};i("zoom"),i("selection"),this.t.pan&&e.config.chart.zoom.enabled&&o.push({el:this.elPan,icon:typeof this.t.pan=="string"?this.t.pan:VB,title:this.localeValues.pan,class:"apexcharts-pan-icon"}),s("reset",this.elZoomReset,DB),this.t.download&&o.push({el:this.elMenuIcon,icon:typeof this.t.download=="string"?this.t.download:PB,title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(let l=0;l<this.elCustomIcons.length;l++)o.push({el:this.elCustomIcons[l],icon:this.t.customIcons[l].icon,title:this.t.customIcons[l].title,index:this.t.customIcons[l].index,class:"apexcharts-toolbar-custom-icon "+this.t.customIcons[l].class});o.forEach((l,c)=>{l.index&&U.moveIndexInArray(o,c,l.index)});for(let l=0;l<o.length;l++)ce.setAttrs(o[l].el,{class:o[l].class,title:o[l].title,tabindex:"0",role:"button","aria-label":o[l].title}),o[l].el.innerHTML=o[l].icon,r.appendChild(o[l].el);this.elZoom.parentNode&&this.elZoom.setAttribute("aria-pressed",String(!!e.interact.zoomEnabled)),this.elSelection.parentNode&&this.elSelection.setAttribute("aria-pressed",String(!!e.interact.selectionEnabled)),this.elPan.parentNode&&this.elPan.setAttribute("aria-pressed",String(!!e.interact.panEnabled)),this.elMenuIcon.parentNode&&(this.elMenuIcon.setAttribute("aria-haspopup","true"),this.elMenuIcon.setAttribute("aria-expanded","false")),this._createHamburgerMenu(r),e.interact.zoomEnabled?this.elZoom.classList.add(this.selectedClass):e.interact.panEnabled?this.elPan.classList.add(this.selectedClass):e.interact.selectionEnabled&&this.elSelection.classList.add(this.selectedClass),this.addToolbarEventListeners()}_createHamburgerMenu(e){this.elMenuItems=[],e.appendChild(this.elMenu),ce.setAttrs(this.elMenu,{class:"apexcharts-menu",role:"menu"});const t=[{name:"exportSVG",title:this.localeValues.exportToSVG},{name:"exportPNG",title:this.localeValues.exportToPNG},{name:"exportCSV",title:this.localeValues.exportToCSV}];for(let r=0;r<t.length;r++)this.elMenuItems.push(Pe.createElementNS("http://www.w3.org/1999/xhtml","div")),this.elMenuItems[r].innerHTML=t[r].title,ce.setAttrs(this.elMenuItems[r],{class:`apexcharts-menu-item ${t[r].name}`,title:t[r].title,role:"menuitem",tabindex:"-1"}),this.elMenu.appendChild(this.elMenuItems[r])}addToolbarEventListeners(){var e,t,r,o,s,i,l,c;(e=this.elZoomReset)==null||e.addEventListener("click",this.handleZoomReset.bind(this)),(t=this.elSelection)==null||t.addEventListener("click",this.toggleZoomSelection.bind(this,"selection")),(r=this.elZoom)==null||r.addEventListener("click",this.toggleZoomSelection.bind(this,"zoom")),(o=this.elZoomIn)==null||o.addEventListener("click",this.handleZoomIn.bind(this)),(s=this.elZoomOut)==null||s.addEventListener("click",this.handleZoomOut.bind(this)),(i=this.elPan)==null||i.addEventListener("click",this.togglePanning.bind(this)),(l=this.elMenuIcon)==null||l.addEventListener("click",this.toggleMenu.bind(this)),this.elMenuItems.forEach(d=>{d.classList.contains("exportSVG")?d.addEventListener("click",this.handleDownload.bind(this,"svg")):d.classList.contains("exportPNG")?d.addEventListener("click",this.handleDownload.bind(this,"png")):d.classList.contains("exportCSV")&&d.addEventListener("click",this.handleDownload.bind(this,"csv"))});for(let d=0;d<this.t.customIcons.length;d++)this.elCustomIcons[d].addEventListener("click",this.t.customIcons[d].click.bind(this,this.ctx,this.ctx.w));[this.elZoomReset,this.elSelection,this.elZoom,this.elZoomIn,this.elZoomOut,this.elPan,this.elMenuIcon,...this.elCustomIcons].forEach(d=>{d.addEventListener("keydown",u=>{if(u.key==="Enter"||u.key===" "){u.preventDefault();const p=d.className;d.click(),requestAnimationFrame(()=>{const f=this.w.dom.baseEl;if(!f)return;const g=p.split(" ").find(x=>x.startsWith("apexcharts-"));if(!g)return;const m=f.querySelector(`.${g}`);m&&m.focus()})}})}),(c=this.elMenuIcon)==null||c.addEventListener("keydown",d=>{var u;(d.key==="ArrowDown"||d.key==="ArrowUp")&&(d.preventDefault(),(u=this.elMenu)!=null&&u.classList.contains("apexcharts-menu-open")||this.toggleMenu(),window.setTimeout(()=>{const p=d.key==="ArrowDown"?0:this.elMenuItems.length-1;this.elMenuItems[p]&&this.elMenuItems[p].focus()},20))}),this.elMenuItems.forEach((d,u)=>{d.addEventListener("keydown",p=>{var f;p.key==="ArrowDown"?(p.preventDefault(),(this.elMenuItems[u+1]||this.elMenuItems[0]).focus()):p.key==="ArrowUp"?(p.preventDefault(),(this.elMenuItems[u-1]||this.elMenuItems[this.elMenuItems.length-1]).focus()):p.key==="Escape"||p.key==="Tab"?(this._closeMenu(),(f=this.elMenuIcon)==null||f.focus(),p.key==="Tab"||p.preventDefault()):(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),d.click())})})}toggleZoomSelection(e){this.ctx.getSyncedCharts().forEach(r=>{r.ctx.toolbar.toggleOtherControls();const o=e==="selection"?r.ctx.toolbar.elSelection:r.ctx.toolbar.elZoom,s=e==="selection"?"selectionEnabled":"zoomEnabled";r.w.globals[s]=!r.w.globals[s],o.classList.contains(r.ctx.toolbar.selectedClass)?o.classList.remove(r.ctx.toolbar.selectedClass):o.classList.add(r.ctx.toolbar.selectedClass),o.setAttribute("aria-pressed",String(r.w.globals[s]))})}getToolbarIconsReference(){const e=this.w;this.elZoom||(this.elZoom=e.dom.baseEl.querySelector(".apexcharts-zoom-icon")),this.elPan||(this.elPan=e.dom.baseEl.querySelector(".apexcharts-pan-icon")),this.elSelection||(this.elSelection=e.dom.baseEl.querySelector(".apexcharts-selection-icon"))}enableZoomPanFromToolbar(e){this.toggleOtherControls(),e==="pan"?this.w.interact.panEnabled=!0:this.w.interact.zoomEnabled=!0;const t=e==="pan"?this.elPan:this.elZoom,r=e==="pan"?this.elZoom:this.elPan;t&&t.classList.add(this.selectedClass),r&&r.classList.remove(this.selectedClass)}togglePanning(){this.ctx.getSyncedCharts().forEach(t=>{t.ctx.toolbar.toggleOtherControls(),t.w.interact.panEnabled=!t.w.interact.panEnabled,t.ctx.toolbar.elPan.classList.contains(t.ctx.toolbar.selectedClass)?t.ctx.toolbar.elPan.classList.remove(t.ctx.toolbar.selectedClass):t.ctx.toolbar.elPan.classList.add(t.ctx.toolbar.selectedClass),t.ctx.toolbar.elPan.setAttribute("aria-pressed",String(t.w.interact.panEnabled))})}toggleOtherControls(){const e=this.w;e.interact.panEnabled=!1,e.interact.zoomEnabled=!1,e.interact.selectionEnabled=!1,this.getToolbarIconsReference(),[this.elPan,this.elSelection,this.elZoom].forEach(r=>{r&&r.classList.remove(this.selectedClass)})}handleZoomIn(){const e=this.w;e.axisFlags.isRangeBar&&(this.minX=e.globals.minY,this.maxX=e.globals.maxY);const t=(this.minX+this.maxX)/2,r=(this.minX+t)/2,o=(this.maxX+t)/2,s=this._getNewMinXMaxX(r,o);e.interact.disableZoomIn||this.zoomUpdateOptions(s.minX,s.maxX)}handleZoomOut(){const e=this.w;if(e.axisFlags.isRangeBar&&(this.minX=e.globals.minY,this.maxX=e.globals.maxY),e.config.xaxis.type==="datetime"&&new Date(this.minX).getUTCFullYear()<1e3)return;const t=(this.minX+this.maxX)/2,r=this.minX-(t-this.minX),o=this.maxX-(t-this.maxX),s=this._getNewMinXMaxX(r,o);e.interact.disableZoomOut||this.zoomUpdateOptions(s.minX,s.maxX)}_getNewMinXMaxX(e,t){const r=this.w.config.xaxis.convertedCatToNumeric;return{minX:r?Math.floor(e):e,maxX:r?Math.floor(t):t}}zoomUpdateOptions(e,t){const r=this.w;if(e===void 0&&t===void 0){this.handleZoomReset();return}if(r.config.xaxis.convertedCatToNumeric&&(e<1&&(e=1,t=r.globals.dataPoints),t-e<2))return;let o={min:e,max:t};const s=this.getBeforeZoomRange(o,void 0);s&&(o=s.xaxis);const i={xaxis:o};if(!r.globals.initialConfig)return;const l=U.clone(r.globals.initialConfig.yaxis);r.config.chart.group||(i.yaxis=l),this.w.interact.zoomed=!0,this.ctx.updateHelpers._updateOptions(i,!1,this.w.config.chart.animations.dynamicAnimation.enabled),this.zoomCallback(o,l)}zoomCallback(e,t){typeof this.ev.zoomed=="function"&&(this.ev.zoomed(this.ctx,{xaxis:e,yaxis:t}),this.ctx.events.fireEvent("zoomed",{xaxis:e,yaxis:t}))}getBeforeZoomRange(e,t){let r=null;return typeof this.ev.beforeZoom=="function"&&(r=this.ev.beforeZoom(this,{xaxis:e,yaxis:t})),r}toggleMenu(){window.setTimeout(()=>{var e,t,r;(e=this.elMenu)!=null&&e.classList.contains("apexcharts-menu-open")?this._closeMenu():((t=this.elMenu)==null||t.classList.add("apexcharts-menu-open"),(r=this.elMenuIcon)==null||r.setAttribute("aria-expanded","true"))},0)}_closeMenu(){var e,t;(e=this.elMenu)==null||e.classList.remove("apexcharts-menu-open"),(t=this.elMenuIcon)==null||t.setAttribute("aria-expanded","false")}handleDownload(e){const t=this.w,r=new up(this.w,this.ctx);switch(e){case"svg":r.exportToSVG();break;case"png":r.exportToPng();break;case"csv":r.exportToCSV({series:t.config.series,columnDelimiter:t.config.chart.toolbar.export.csv.columnDelimiter});break}}handleZoomReset(){this.ctx.getSyncedCharts().forEach(t=>{const r=t.w;if(!r.interact.zoomed)return;if(r.globals.lastXAxis.min=r.globals.initialConfig.xaxis.min,r.globals.lastXAxis.max=r.globals.initialConfig.xaxis.max,t.updateHelpers.revertDefaultAxisMinMax(),typeof r.config.chart.events.beforeResetZoom=="function"){const s=r.config.chart.events.beforeResetZoom(t,r);s&&t.updateHelpers.revertDefaultAxisMinMax(s)}typeof r.config.chart.events.zoomed=="function"&&t.ctx.toolbar.zoomCallback({min:r.config.xaxis.min,max:r.config.xaxis.max});const o=t.ctx.series.emptyCollapsedSeries(U.clone(r.globals.initialSeries));t.updateHelpers._updateSeries(o,r.config.chart.animations.dynamicAnimation.enabled),r.interact.zoomed=!1})}destroy(){this.elZoom=null,this.elZoomIn=null,this.elZoomOut=null,this.elPan=null,this.elSelection=null,this.elZoomReset=null,this.elMenuIcon=null}}class HB extends pp{constructor(e,t){super(e,t),this.w=e,this.ctx=t,this.dragged=!1,this.graphics=new ce(this.w),this.eventList=["mousedown","mouseleave","mousemove","touchstart","touchmove","mouseup","touchend","wheel"],this.clientX=0,this.clientY=0,this.startX=0,this.endX=0,this.dragX=0,this.startY=0,this.endY=0,this.dragY=0,this.moveDirection="none",this.debounceTimer=null,this.debounceDelay=100,this.wheelDelay=400}init({xyRatios:e}){const t=this.w,r=this;this.xyRatios=e,this.zoomRect=this.graphics.drawRect(0,0,0,0),this.selectionRect=this.graphics.drawRect(0,0,0,0),this.gridRect=t.dom.baseEl.querySelector(".apexcharts-grid"),this.constraints=new HA(0,0,t.layout.gridWidth,t.layout.gridHeight),this.zoomRect.node.classList.add("apexcharts-zoom-rect"),this.selectionRect.node.classList.add("apexcharts-selection-rect"),t.dom.Paper.add(this.zoomRect),t.dom.Paper.add(this.selectionRect),t.config.chart.selection.type==="x"?this.slDraggableRect=this.selectionRect.draggable({minX:0,minY:0,maxX:t.layout.gridWidth,maxY:t.layout.gridHeight}).on("dragmove.namespace",this.selectionDragging.bind(this,"dragging")):t.config.chart.selection.type==="y"?this.slDraggableRect=this.selectionRect.draggable({minX:0,maxX:t.layout.gridWidth}).on("dragmove.namespace",this.selectionDragging.bind(this,"dragging")):this.slDraggableRect=this.selectionRect.draggable().on("dragmove.namespace",this.selectionDragging.bind(this,"dragging")),this.preselectedSelection(),this.hoverArea=t.dom.baseEl.querySelector(`${t.globals.chartClass} .apexcharts-svg`),this.hoverArea&&(this.hoverArea.classList.add("apexcharts-zoomable"),this.eventList.forEach(o=>{var s;(s=this.hoverArea)==null||s.addEventListener(o,r.svgMouseEvents.bind(r,e),{capture:!1,passive:!0})}),t.config.chart.zoom.enabled&&t.config.chart.zoom.allowMouseWheelZoom&&this.hoverArea.addEventListener("wheel",r.mouseWheelEvent.bind(r),{capture:!1,passive:!1}))}destroy(){this.slDraggableRect&&(this.slDraggableRect.draggable(!1),this.slDraggableRect.off(),this.selectionRect.off()),this.selectionRect=null,this.zoomRect=null,this.gridRect=null}svgMouseEvents(e,t){var r;const o=this.w,s=this.ctx.toolbar,i=o.interact.zoomEnabled?o.config.chart.zoom.type:o.config.chart.selection.type,l=o.config.chart.toolbar.autoSelected;if(t.shiftKey?(this.shiftWasPressed=!0,s.enableZoomPanFromToolbar(l==="pan"?"zoom":"pan")):this.shiftWasPressed&&(s.enableZoomPanFromToolbar(l),this.shiftWasPressed=!1),!t.target)return;const c=t.target.classList;let h;if(t.target.parentNode&&t.target.parentNode!==null&&(h=t.target.parentNode.classList),!(c.contains("apexcharts-legend-marker")||c.contains("apexcharts-legend-text")||h&&h.contains("apexcharts-toolbar"))){if(this.clientX=t.type==="touchmove"||t.type==="touchstart"?t.touches[0].clientX:t.type==="touchend"?t.changedTouches[0].clientX:t.clientX,this.clientY=t.type==="touchmove"||t.type==="touchstart"?t.touches[0].clientY:t.type==="touchend"?t.changedTouches[0].clientY:t.clientY,t.type==="mousedown"&&t.which===1||t.type==="touchstart"){const u=(r=this.gridRect)==null?void 0:r.getBoundingClientRect();if(!u)return;this.startX=this.clientX-u.left-o.globals.barPadForNumericAxis,this.startY=this.clientY-u.top,this.dragged=!1,this.w.interact.mousedown=!0}(t.type==="mousemove"&&t.which===1||t.type==="touchmove")&&(this.dragged=!0,o.interact.panEnabled?(o.interact.selection=null,this.w.interact.mousedown&&this.panDragging({context:this,zoomtype:i,xyRatios:e})):(this.w.interact.mousedown&&o.interact.zoomEnabled||this.w.interact.mousedown&&o.interact.selectionEnabled)&&(this.selection=this.selectionDrawing({context:this,zoomtype:i}))),(t.type==="mouseup"||t.type==="touchend"||t.type==="mouseleave")&&this.handleMouseUp({zoomtype:i}),this.makeSelectionRectDraggable()}}handleMouseUp({zoomtype:e,isResized:t}){var r;const o=this.w,s=(r=this.gridRect)==null?void 0:r.getBoundingClientRect();s&&(this.w.interact.mousedown||t)&&(this.endX=this.clientX-s.left-o.globals.barPadForNumericAxis,this.endY=this.clientY-s.top,this.dragX=Math.abs(this.endX-this.startX),this.dragY=Math.abs(this.endY-this.startY),(o.interact.zoomEnabled||o.interact.selectionEnabled)&&this.selectionDrawn({context:this,zoomtype:e})),o.interact.zoomEnabled&&this.hideSelectionRect(this.selectionRect),this.dragged=!1,this.w.interact.mousedown=!1}mouseWheelEvent(e){const t=this.w;e.preventDefault();const r=Date.now();r-t.interact.lastWheelExecution>this.wheelDelay&&(this.executeMouseWheelZoom(e),t.interact.lastWheelExecution=r),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{r-t.interact.lastWheelExecution>this.wheelDelay&&(this.executeMouseWheelZoom(e),t.interact.lastWheelExecution=r)},this.debounceDelay)}executeMouseWheelZoom(e){var t;const r=this.w;this.minX=r.axisFlags.isRangeBar?r.globals.minY:r.globals.minX,this.maxX=r.axisFlags.isRangeBar?r.globals.maxY:r.globals.maxX;const o=(t=this.gridRect)==null?void 0:t.getBoundingClientRect();if(!o)return;const s=(e.clientX-o.left)/o.width,i=this.minX,l=this.maxX,c=l-i,h=.5,d=1.5;let u,p,f;if(e.deltaY<0){u=h*c;const m=i+s*c;p=m-u/2,f=m+u/2}else u=d*c,p=i-u/2,f=l+u/2;if(!r.axisFlags.isRangeBar){p=Math.max(p,r.globals.initialMinX),f=Math.min(f,r.globals.initialMaxX);const m=(r.globals.initialMaxX-r.globals.initialMinX)*.01;if(f-p<m){const x=(p+f)/2;p=x-m/2,f=x+m/2}}const g=this._getNewMinXMaxX(p,f);!isNaN(g.minX)&&!isNaN(g.maxX)&&this.zoomUpdateOptions(g.minX,g.maxX)}makeSelectionRectDraggable(){const e=this.w;if(!this.selectionRect)return;const t=this.selectionRect.node.getBoundingClientRect();t.width>0&&t.height>0&&(this.selectionRect.select(!1).resize(!1),this.selectionRect.select({createRot:()=>{},updateRot:()=>{},createHandle:(r,o,s,i,l)=>l==="l"||l==="r"?r.circle(8).css({"stroke-width":1,stroke:"#333",fill:"#fff"}):r.circle(0),updateHandle:(r,o)=>r.center(o[0],o[1])}).resize().on("resize",()=>{const r=e.interact.zoomEnabled?e.config.chart.zoom.type:e.config.chart.selection.type;this.handleMouseUp({zoomtype:r,isResized:!0})}))}preselectedSelection(){const e=this.w,t=this.xyRatios;if(!e.interact.zoomEnabled){if(typeof e.interact.selection<"u"&&e.interact.selection!==null)this.drawSelectionRect(je(Ve({},e.interact.selection),{translateX:e.layout.translateX,translateY:e.layout.translateY}));else if(e.config.chart.selection.xaxis.min!==void 0&&e.config.chart.selection.xaxis.max!==void 0){let r=(e.config.chart.selection.xaxis.min-e.globals.minX)/t.xRatio,o=e.layout.gridWidth-(e.globals.maxX-e.config.chart.selection.xaxis.max)/t.xRatio-r;e.axisFlags.isRangeBar&&(r=(e.config.chart.selection.xaxis.min-e.globals.yAxisScale[0].niceMin)/t.invertedYRatio,o=(e.config.chart.selection.xaxis.max-e.config.chart.selection.xaxis.min)/t.invertedYRatio);const s={x:r,y:0,width:o,height:e.layout.gridHeight,translateX:e.layout.translateX,translateY:e.layout.translateY,selectionEnabled:!0};this.drawSelectionRect(s),this.makeSelectionRectDraggable(),typeof e.config.chart.events.selection=="function"&&e.config.chart.events.selection(this.ctx,{xaxis:{min:e.config.chart.selection.xaxis.min,max:e.config.chart.selection.xaxis.max},yaxis:{}})}}}drawSelectionRect({x:e,y:t,width:r,height:o,translateX:s=0,translateY:i=0}){const l=this.w,c=this.zoomRect,h=this.selectionRect;if(this.dragged||l.interact.selection!==null){const d={transform:"translate("+s+", "+i+")"};l.interact.zoomEnabled&&this.dragged&&(r<0&&(r=1),c.attr({x:e,y:t,width:r,height:o,fill:l.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":l.config.chart.zoom.zoomedArea.fill.opacity,stroke:l.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":l.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":l.config.chart.zoom.zoomedArea.stroke.opacity}),ce.setAttrs(c.node,d)),l.interact.selectionEnabled&&(h.attr({x:e,y:t,width:r>0?r:0,height:o>0?o:0,fill:l.config.chart.selection.fill.color,"fill-opacity":l.config.chart.selection.fill.opacity,stroke:l.config.chart.selection.stroke.color,"stroke-width":l.config.chart.selection.stroke.width,"stroke-dasharray":l.config.chart.selection.stroke.dashArray,"stroke-opacity":l.config.chart.selection.stroke.opacity}),ce.setAttrs(h.node,d))}}hideSelectionRect(e){e&&e.attr({x:0,y:0,width:0,height:0})}selectionDrawing({context:e,zoomtype:t}){var r;const o=this.w,s=e,i=(r=this.gridRect)==null?void 0:r.getBoundingClientRect();if(!i)return;const l=s.startX-1,c=s.startY;let h=!1,d=!1;const u=s.clientX-i.left-o.globals.barPadForNumericAxis,p=s.clientY-i.top;let f=u-l,g=p-c,m={translateX:o.layout.translateX,translateY:o.layout.translateY};return Math.abs(f+l)>o.layout.gridWidth?f=o.layout.gridWidth-l:u<0&&(f=l),l>u&&(h=!0,f=Math.abs(f)),c>p&&(d=!0,g=Math.abs(g)),t==="x"?m={x:h?l-f:l,y:0,width:f,height:o.layout.gridHeight}:t==="y"?m={x:0,y:d?c-g:c,width:o.layout.gridWidth,height:g}:m={x:h?l-f:l,y:d?c-g:c,width:f,height:g},m=je(Ve({},m),{translateX:o.layout.translateX,translateY:o.layout.translateY}),s.drawSelectionRect(m),s.selectionDragging("resizing"),m}selectionDragging(e,t){var r;const o=this.w;if(!t)return;t.preventDefault();const{handler:s,box:i}=t.detail,l=this.constraints;let{x:c,y:h}=i;c<l.x&&(c=l.x),h<l.y&&(h=l.y),i.x2>l.x2&&(c=l.x2-i.w),i.y2>l.y2&&(h=l.y2-i.h),s.move(c,h);const d=this.xyRatios,u=this.selectionRect;let p=0;e==="resizing"&&(p=30);const f=m=>parseFloat(u.node.getAttribute(m)),g={x:f("x"),y:f("y"),width:f("width"),height:f("height")};o.interact.selection=g,typeof o.config.chart.events.selection=="function"&&o.interact.selectionEnabled&&(clearTimeout((r=this.w.globals.selectionResizeTimer)!=null?r:void 0),this.w.globals.selectionResizeTimer=window.setTimeout(()=>{var m;const x=(m=this.gridRect)==null?void 0:m.getBoundingClientRect();if(!x)return;const w=u.node.getBoundingClientRect();let b,y,k,v;if(o.axisFlags.isRangeBar)b=o.globals.yAxisScale[0].niceMin+(w.left-x.left)*d.invertedYRatio,y=o.globals.yAxisScale[0].niceMin+(w.right-x.left)*d.invertedYRatio,k=0,v=1;else{if(!o.globals.xAxisScale)return;b=o.globals.xAxisScale.niceMin+(w.left-x.left)*d.xRatio,y=o.globals.xAxisScale.niceMin+(w.right-x.left)*d.xRatio,k=o.globals.yAxisScale[0].niceMin+(x.bottom-w.bottom)*d.yRatio[0],v=o.globals.yAxisScale[0].niceMax-(w.top-x.top)*d.yRatio[0]}const C={xaxis:{min:b,max:y},yaxis:{min:k,max:v}};o.config.chart.events.selection(this.ctx,C),o.config.chart.brush.enabled&&o.config.chart.events.brushScrolled!==void 0&&o.config.chart.events.brushScrolled(this.ctx,C)},p))}selectionDrawn({context:e,zoomtype:t}){var r,o;const s=this.w,i=e,l=this.xyRatios,c=this.ctx.toolbar,h=s.interact.zoomEnabled?i.zoomRect.node.getBoundingClientRect():i.selectionRect.node.getBoundingClientRect(),d=i.gridRect.getBoundingClientRect(),u=h.left-d.left-s.globals.barPadForNumericAxis,p=h.right-d.left-s.globals.barPadForNumericAxis,f=h.top-d.top,g=h.bottom-d.top;let m,x;if(s.axisFlags.isRangeBar)m=s.globals.yAxisScale[0].niceMin+u*l.invertedYRatio,x=s.globals.yAxisScale[0].niceMin+p*l.invertedYRatio;else{const y=(o=(r=s.globals.xAxisScale)==null?void 0:r.niceMin)!=null?o:0;m=y+u*l.xRatio,x=y+p*l.xRatio}const w=[],b=[];if(s.config.yaxis.forEach((y,k)=>{const v=s.globals.seriesYAxisMap[k][0],C=s.globals.yAxisScale[k].niceMax-l.yRatio[v]*f,A=s.globals.yAxisScale[k].niceMax-l.yRatio[v]*g;w.push(C),b.push(A)}),i.dragged&&(i.dragX>10||i.dragY>10)&&m!==x){if(s.interact.zoomEnabled){if(!s.globals.initialConfig)return;let y=U.clone(s.globals.initialConfig.yaxis),k=U.clone(s.globals.initialConfig.xaxis);if(s.interact.zoomed=!0,s.config.xaxis.convertedCatToNumeric&&(m=Math.floor(m),x=Math.floor(x),m<1&&(m=1,x=s.globals.dataPoints),x-m<2&&(x=m+1)),(t==="xy"||t==="x")&&(k={min:m,max:x}),(t==="xy"||t==="y")&&y.forEach((C,A)=>{y[A].min=b[A],y[A].max=w[A]}),c){const C=c.getBeforeZoomRange(k,y);C&&(k=C.xaxis?C.xaxis:k,y=C.yaxis?C.yaxis:y)}const v={xaxis:k};s.config.chart.group||(v.yaxis=y),i.ctx.updateHelpers._updateOptions(v,!1,i.w.config.chart.animations.dynamicAnimation.enabled),typeof s.config.chart.events.zoomed=="function"&&c.zoomCallback(k,y)}else if(s.interact.selectionEnabled){let y=null,k=null;if(k={min:m,max:x},t==="xy"||t==="y"){const v=U.clone(s.config.yaxis);y=v,v.forEach((C,A)=>{v[A].min=b[A],v[A].max=w[A]})}s.interact.selection=i.selection,typeof s.config.chart.events.selection=="function"&&s.config.chart.events.selection(i.ctx,{xaxis:k,yaxis:y})}}}panDragging({context:e}){var t;const r=this.w,o=e;if(typeof r.interact.lastClientPosition.x<"u"){const l=r.interact.lastClientPosition.x-o.clientX,c=((t=r.interact.lastClientPosition.y)!=null?t:0)-o.clientY;Math.abs(l)>Math.abs(c)&&l>0?this.moveDirection="left":Math.abs(l)>Math.abs(c)&&l<0?this.moveDirection="right":Math.abs(c)>Math.abs(l)&&c>0?this.moveDirection="up":Math.abs(c)>Math.abs(l)&&c<0&&(this.moveDirection="down")}r.interact.lastClientPosition={x:o.clientX,y:o.clientY};const s=r.axisFlags.isRangeBar?r.globals.minY:r.globals.minX,i=r.axisFlags.isRangeBar?r.globals.maxY:r.globals.maxX;o.panScrolled(s,i)}panScrolled(e,t){const r=this.w,o=this.xyRatios;if(!r.globals.initialConfig)return;const s=U.clone(r.globals.initialConfig.yaxis);let i=o.xRatio,l=r.globals.minX,c=r.globals.maxX;r.axisFlags.isRangeBar&&(i=o.invertedYRatio,l=r.globals.minY,c=r.globals.maxY),this.moveDirection==="left"?(e=l+r.layout.gridWidth/15*i,t=c+r.layout.gridWidth/15*i):this.moveDirection==="right"&&(e=l-r.layout.gridWidth/15*i,t=c-r.layout.gridWidth/15*i),r.axisFlags.isRangeBar||(e<r.globals.initialMinX||t>r.globals.initialMaxX)&&(e=l,t=c);const d={xaxis:{min:e,max:t}};r.config.chart.group||(d.yaxis=s),this.updateScrolledChart(d,e,t)}updateScrolledChart(e,t,r){const o=this.w;if(this.ctx.updateHelpers._updateOptions(e,!1,!1),typeof o.config.chart.events.scrolled=="function"){const s={xaxis:{min:t,max:r}};o.config.chart.events.scrolled(this.ctx,s),this.ctx.events.fireEvent("scrolled",s)}}}ur.registerFeatures({toolbar:pp,zoomPanSelection:HB});let nl=class{constructor(e){this.w=e.w,this.annoCtx=e}setOrientations(e,t=null){var r,o;const s=this.w;if(e.label.orientation==="vertical"){const i=t!==null?t:0,l=s.dom.baseEl.querySelector(`.apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='${i}']`);if(l!==null){const c=l.getBBox();l.setAttribute("x",String(parseFloat((r=l.getAttribute("x"))!=null?r:"0")-c.height+4));const h=e.label.position==="top"?c.width:-c.width;l.setAttribute("y",String(parseFloat((o=l.getAttribute("y"))!=null?o:"0")+h));const{x:d,y:u}=this.annoCtx.graphics.rotateAroundCenter(l);l.setAttribute("transform",`rotate(-90 ${d} ${u})`)}}}addBackgroundToAnno(e,t){const r=this.w;if(!e||!t.label.text||!String(t.label.text).trim())return null;const o=r.dom.baseEl.querySelector(".apexcharts-grid");if(!o)return null;const s=o.getBoundingClientRect(),i=o.getBBox(),l=s.width/i.width||1,c=e.getBoundingClientRect();let{left:h,right:d,top:u,bottom:p}=t.label.style.padding;t.label.orientation==="vertical"&&([u,p,h,d]=[h,d,u,p]);const f=(c.left-s.left)/l-h,g=(c.top-s.top)/l-u,m=this.annoCtx.graphics.drawRect(f-r.globals.barPadForNumericAxis,g,c.width/l+h+d,c.height/l+u+p,t.label.borderRadius,t.label.style.background,1,t.label.borderWidth,t.label.borderColor,0);return t.id&&m.node.classList.add(t.id),m}annotationsBackground(){const e=this.w,t=(r,o,s)=>{const i=e.dom.baseEl.querySelector(`.apexcharts-${s}-annotations .apexcharts-${s}-annotation-label[rel='${o}']`);if(i){const l=i.parentNode,c=this.addBackgroundToAnno(i,r);c&&(l?.insertBefore(c.node,i),r.label.mouseEnter&&c.node.addEventListener("mouseenter",r.label.mouseEnter.bind(this,r)),r.label.mouseLeave&&c.node.addEventListener("mouseleave",r.label.mouseLeave.bind(this,r)),r.label.click&&c.node.addEventListener("click",r.label.click.bind(this,r)))}};e.config.annotations.xaxis.forEach((r,o)=>t(r,o,"xaxis")),e.config.annotations.yaxis.forEach((r,o)=>t(r,o,"yaxis")),e.config.annotations.points.forEach((r,o)=>t(r,o,"point"))}getY1Y2(e,t){var r,o;const s=this.w,i=e==="y1"?t.y:t.y2;let l,c=!1;if(this.annoCtx.invertAxis){const h=s.config.xaxis.convertedCatToNumeric?s.labelData.categoryLabels:s.labelData.labels,d=h.indexOf(i),u=s.dom.baseEl.querySelector(`.apexcharts-yaxis-texts-g text:nth-child(${d+1})`);l=u?parseFloat((r=u.getAttribute("y"))!=null?r:"0"):(s.layout.gridHeight/h.length-1)*(d+1)-s.globals.barHeight,t.seriesIndex!==void 0&&s.globals.barHeight&&(l-=s.globals.barHeight/2*(s.seriesData.series.length-1)-s.globals.barHeight*t.seriesIndex)}else{const h=s.globals.seriesYAxisMap[t.yAxisIndex][0],d=s.config.yaxis[t.yAxisIndex].logarithmic?new Nt(this.w).getLogVal(s.config.yaxis[t.yAxisIndex].logBase,i,h)/s.globals.yLogRatio[h]:(i-s.globals.minYArr[h])/(s.globals.yRange[h]/s.layout.gridHeight);l=s.layout.gridHeight-Math.min(Math.max(d,0),s.layout.gridHeight),c=d>s.layout.gridHeight||d<0,t.marker&&(t.y===void 0||t.y===null)&&(l=0),(o=s.config.yaxis[t.yAxisIndex])!=null&&o.reversed&&(l=d)}return typeof i=="string"&&i.includes("px")&&(l=parseFloat(i)),{yP:l,clipped:c}}getX1X2(e,t){const r=this.w,o=e==="x1"?t.x:t.x2,s=this.annoCtx.invertAxis?r.globals.minY:r.globals.minX,i=this.annoCtx.invertAxis?r.globals.maxY:r.globals.maxX,l=this.annoCtx.invertAxis?r.globals.yRange[0]:r.globals.xRange;let c=!1,h=this.annoCtx.inversedReversedAxis?(i-o)/(l/r.layout.gridWidth):(o-s)/(l/r.layout.gridWidth);return(r.config.xaxis.type==="category"||r.config.xaxis.convertedCatToNumeric)&&!this.annoCtx.invertAxis&&!r.axisFlags.dataFormatXNumeric&&(r.config.chart.sparkline.enabled||(h=this.getStringX(o))),typeof o=="string"&&o.includes("px")&&(h=parseFloat(o)),o==null&&t.marker&&(h=r.layout.gridWidth),t.seriesIndex!==void 0&&r.globals.barWidth&&!this.annoCtx.invertAxis&&(h-=r.globals.barWidth/2*(r.seriesData.series.length-1)-r.globals.barWidth*t.seriesIndex),typeof h!="number"&&(h=0,c=!0),parseFloat(h.toFixed(10))>parseFloat(r.layout.gridWidth.toFixed(10))?(h=r.layout.gridWidth,c=!0):h<0&&(h=0,c=!0),{x:h,clipped:c}}getStringX(e){var t;const r=this.w;let o=e;if(r.config.xaxis.convertedCatToNumeric&&r.labelData.categoryLabels.length){const l=String(e);e=r.labelData.categoryLabels.findIndex(c=>String(c)===l)+1}const s=r.labelData.labels.map(l=>Array.isArray(l)?l.join(" "):l).indexOf(e),i=r.dom.baseEl.querySelector(`.apexcharts-xaxis-texts-g text:nth-child(${s+1})`);return i&&(o=parseFloat((t=i.getAttribute("x"))!=null?t:"0")),o}};class RB{constructor(e){this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new nl(this.annoCtx)}addXaxisAnnotation(e,t,r){const o=this.w,s=this.helpers.getX1X2("x1",e);let i=s.x;const l=s.clipped;let c=!0,h;const d=e.label.text,u=e.strokeDashArray;if(U.isNumber(i)){if(e.x2===null||typeof e.x2>"u"){if(!l){const p=this.annoCtx.graphics.drawLine(i+e.offsetX,0+e.offsetY,i+e.offsetX,o.layout.gridHeight+e.offsetY,e.borderColor,u,e.borderWidth);t.appendChild(p.node),e.id&&p.node.classList.add(e.id)}}else{const p=this.helpers.getX1X2("x2",e);if(h=p.x,c=p.clipped,h<i){const g=i;i=h,h=g}const f=this.annoCtx.graphics.drawRect(i+e.offsetX,0+e.offsetY,h-i,o.layout.gridHeight+e.offsetY,0,e.fillColor,e.opacity,1,e.borderColor,u);f.node.classList.add("apexcharts-annotation-rect"),f.attr("clip-path",`url(#gridRectMask${o.globals.cuid})`),t.appendChild(f.node),e.id&&f.node.classList.add(e.id)}if(!(l&&c)){const p=this.annoCtx.graphics.getTextRects(d,e.label.style.fontSize),f=e.label.position==="top"?4:e.label.position==="center"?o.layout.gridHeight/2+(e.label.orientation==="vertical"?p.width/2:0):o.layout.gridHeight,g=this.annoCtx.graphics.drawText({x:i+e.label.offsetX,y:f+e.label.offsetY-(e.label.orientation==="vertical"?e.label.position==="top"?p.width/2-12:-p.width/2:0),text:d,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:`apexcharts-xaxis-annotation-label ${e.label.style.cssClass} ${e.id?e.id:""}`});g.attr({rel:r}),t.appendChild(g.node),this.annoCtx.helpers.setOrientations(e,r)}}}drawXAxisAnnotations(){const e=this.w,t=this.annoCtx.graphics.group({class:"apexcharts-xaxis-annotations"});return e.config.annotations.xaxis.map((r,o)=>{this.addXaxisAnnotation(r,t.node,o)}),t}}class OB{constructor(e){this.w=e.w,this.annoCtx=e,this.helpers=new nl(this.annoCtx),this.axesUtils=new Rr(this.annoCtx.w,{theme:this.annoCtx.theme,timeScale:this.annoCtx.timeScale})}addYaxisAnnotation(e,t,r){const o=this.w,s=e.strokeDashArray;let i=this.helpers.getY1Y2("y1",e),l=i.yP;const c=i.clipped;let h,d=!0,u=!1;const p=e.label.text;if(e.y2===null||typeof e.y2>"u"){if(!c){u=!0;const f=this.annoCtx.graphics.drawLine(0+e.offsetX,l+e.offsetY,this._getYAxisAnnotationWidth(e),l+e.offsetY,e.borderColor,s,e.borderWidth);t.appendChild(f.node),e.id&&f.node.classList.add(e.id)}}else{if(i=this.helpers.getY1Y2("y2",e),h=i.yP,d=i.clipped,h>l){const f=l;l=h,h=f}if(!(c&&d)){u=!0;const f=this.annoCtx.graphics.drawRect(0+e.offsetX,h+e.offsetY,this._getYAxisAnnotationWidth(e),l-h,0,e.fillColor,e.opacity,1,e.borderColor,s);f.node.classList.add("apexcharts-annotation-rect"),f.attr("clip-path",`url(#gridRectMask${o.globals.cuid})`),t.appendChild(f.node),e.id&&f.node.classList.add(e.id)}}if(u){const f=e.label.position==="right"?o.layout.gridWidth:e.label.position==="center"?o.layout.gridWidth/2:0,g=this.annoCtx.graphics.drawText({x:f+e.label.offsetX,y:(h??l)+e.label.offsetY-3,text:p,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:`apexcharts-yaxis-annotation-label ${e.label.style.cssClass} ${e.id?e.id:""}`});g.attr({rel:r}),t.appendChild(g.node)}}_getYAxisAnnotationWidth(e){const t=this.w;let r=t.layout.gridWidth;return e.width.indexOf("%")>-1?r=t.layout.gridWidth*parseInt(e.width,10)/100:r=parseInt(e.width,10),r+e.offsetX}drawYAxisAnnotations(){const e=this.w,t=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.forEach((r,o)=>{r.yAxisIndex=this.axesUtils.translateYAxisIndex(r.yAxisIndex),this.axesUtils.isYAxisHidden(r.yAxisIndex)&&this.axesUtils.yAxisAllSeriesCollapsed(r.yAxisIndex)||this.addYaxisAnnotation(r,t.node,o)}),t}}class zB{constructor(e){this.w=e.w,this.annoCtx=e,this.helpers=new nl(this.annoCtx)}addPointAnnotation(e,t,r){if(this.w.globals.collapsedSeriesIndices.indexOf(e.seriesIndex)>-1)return;const s=this.helpers.getX1X2("x1",e),i=s.x,l=s.clipped,c=this.helpers.getY1Y2("y1",e),h=c.yP,d=c.clipped;if(U.isNumber(i)&&!(d||l)){const u={pSize:e.marker.size,pointStrokeWidth:e.marker.strokeWidth,pointFillColor:e.marker.fillColor,pointStrokeColor:e.marker.strokeColor,shape:e.marker.shape,pRadius:e.marker.radius,class:`apexcharts-point-annotation-marker ${e.marker.cssClass} ${e.id?e.id:""}`};let p=this.annoCtx.graphics.drawMarker(i+e.marker.offsetX,h+e.marker.offsetY,u);t.appendChild(p.node);const f=e.label.text?e.label.text:"",g=this.annoCtx.graphics.drawText({x:i+e.label.offsetX,y:h+e.label.offsetY-e.marker.size-parseFloat(e.label.style.fontSize)/1.6,text:f,textAnchor:e.label.textAnchor,fontSize:e.label.style.fontSize,fontFamily:e.label.style.fontFamily,fontWeight:e.label.style.fontWeight,foreColor:e.label.style.color,cssClass:`apexcharts-point-annotation-label ${e.label.style.cssClass} ${e.id?e.id:""}`});if(g.attr({rel:r}),t.appendChild(g.node),e.customSVG.SVG){const m=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+e.customSVG.cssClass});m.attr({transform:`translate(${i+e.customSVG.offsetX}, ${h+e.customSVG.offsetY})`}),m.node.innerHTML=e.customSVG.SVG,t.appendChild(m.node)}if(e.image.path){const m=e.image.width?e.image.width:20,x=e.image.height?e.image.height:20;p=this.annoCtx.addImage({x:i+e.image.offsetX-m/2,y:h+e.image.offsetY-x/2,width:m,height:x,path:e.image.path,appendTo:".apexcharts-point-annotations"})}e.mouseEnter&&p.node.addEventListener("mouseenter",e.mouseEnter.bind(this,e)),e.mouseLeave&&p.node.addEventListener("mouseleave",e.mouseLeave.bind(this,e)),e.click&&p.node.addEventListener("click",e.click.bind(this,e))}}drawPointAnnotations(){const e=this.w,t=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((r,o)=>{this.addPointAnnotation(r,t.node,o)}),t}}class ZB{constructor(e,{theme:t=null,timeScale:r=null}={}){this.w=e,this.theme=t,this.timeScale=r,this.invertAxis=void 0,this.inversedReversedAxis=void 0,this.graphics=new ce(this.w),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new nl(this),this.xAxisAnnotations=new RB(this),this.yAxisAnnotations=new OB(this),this.pointsAnnotations=new zB(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.layout.gridWidth/this.w.globals.dataPoints}drawAxesAnnotations(){const e=this.w;if(e.globals.axisCharts&&e.globals.dataPoints){const t=this.yAxisAnnotations.drawYAxisAnnotations(),r=this.xAxisAnnotations.drawXAxisAnnotations(),o=this.pointsAnnotations.drawPointAnnotations(),s=e.config.chart.animations.enabled,i=[t,r,o],l=[r.node,t.node,o.node];for(let c=0;c<3;c++)e.dom.elGraphical.add(i[c]),s&&!e.globals.resized&&!e.globals.dataChanged&&e.config.chart.type!=="scatter"&&e.config.chart.type!=="bubble"&&e.globals.dataPoints>1&&l[c].classList.add("apexcharts-element-hidden"),e.globals.delayedElements.push({el:l[c],index:0});this.helpers.annotationsBackground()}}drawImageAnnos(){this.w.config.annotations.images.map(t=>{this.addImage(t)})}drawTextAnnos(){this.w.config.annotations.texts.map(t=>{this.addText(t)})}addXaxisAnnotation(e,t,r){this.xAxisAnnotations.addXaxisAnnotation(e,t,r)}addYaxisAnnotation(e,t,r){this.yAxisAnnotations.addYaxisAnnotation(e,t,r)}addPointAnnotation(e,t,r){this.pointsAnnotations.addPointAnnotation(e,t,r)}addText(e){const{x:t,y:r,text:o,textAnchor:s,foreColor:i,fontSize:l,fontFamily:c,fontWeight:h,cssClass:d,backgroundColor:u,borderWidth:p,strokeDashArray:f,borderRadius:g,borderColor:m,appendTo:x=".apexcharts-svg",paddingLeft:w=4,paddingRight:b=4,paddingBottom:y=2,paddingTop:k=2}=e,v=this.w,C=this.graphics.drawText({x:t,y:r,text:o,textAnchor:s||"start",fontSize:l||"12px",fontWeight:h||"regular",fontFamily:c||v.config.chart.fontFamily,foreColor:i||v.config.chart.foreColor,cssClass:"apexcharts-text "+d?d:""}),A=v.dom.baseEl.querySelector(x);A&&A.appendChild(C.node);const B=C.bbox();if(o){const E=this.graphics.drawRect(B.x-w,B.y-k,B.width+w+b,B.height+y+k,g,u||"transparent",1,p,m,f);A.insertBefore(E.node,C.node)}}addImage(e){const t=this.w,{path:r,x:o=0,y:s=0,width:i=20,height:l=20,appendTo:c=".apexcharts-svg"}=e,h=t.dom.Paper.image(r);h.size(i,l).move(o,s);const d=t.dom.baseEl.querySelector(c);return d&&d.appendChild(h.node),h}addXaxisAnnotationExternal(e,t,r){return this.addAnnotationExternal({params:e,pushToMemory:t,context:r,type:"xaxis",contextMethod:r.addXaxisAnnotation}),r}addYaxisAnnotationExternal(e,t,r){return this.addAnnotationExternal({params:e,pushToMemory:t,context:r,type:"yaxis",contextMethod:r.addYaxisAnnotation}),r}addPointAnnotationExternal(e,t,r){return typeof this.invertAxis>"u"&&(this.invertAxis=r.w.globals.isBarHorizontal),this.addAnnotationExternal({params:e,pushToMemory:t,context:r,type:"point",contextMethod:r.addPointAnnotation}),r}addAnnotationExternal({params:e,pushToMemory:t,context:r,type:o,contextMethod:s}){const i=r,l=i.w,c=l.dom.baseEl.querySelector(`.apexcharts-${o}-annotations`),h=c.childNodes.length+1,d=new Ao,u=Object.assign({},o==="xaxis"?d.xAxisAnnotation:o==="yaxis"?d.yAxisAnnotation:d.pointAnnotation),p=U.extend(u,e);switch(o){case"xaxis":this.addXaxisAnnotation(p,c,h);break;case"yaxis":this.addYaxisAnnotation(p,c,h);break;case"point":this.addPointAnnotation(p,c,h);break}const f=l.dom.baseEl.querySelector(`.apexcharts-${o}-annotations .apexcharts-${o}-annotation-label[rel='${h}']`),g=this.helpers.addBackgroundToAnno(f,p);return g&&c.insertBefore(g.node,f),t&&l.globals.memory.methodsToExec.push({context:i,id:p.id?p.id:U.randomId(),method:s,label:"addAnnotation",params:e}),r}clearAnnotations(e){const t=e.w,r=t.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");for(let o=t.globals.memory.methodsToExec.length-1;o>=0;o--)(t.globals.memory.methodsToExec[o].label==="addText"||t.globals.memory.methodsToExec[o].label==="addAnnotation")&&t.globals.memory.methodsToExec.splice(o,1);Array.prototype.forEach.call(r,o=>{for(;o.firstChild;)o.removeChild(o.firstChild)})}removeAnnotation(e,t){const r=e.w,o=r.dom.baseEl.querySelectorAll(`.${t}`);o&&(r.globals.memory.methodsToExec.map((s,i)=>{s.id===t&&r.globals.memory.methodsToExec.splice(i,1)}),Object.keys(r.config.annotations).forEach(s=>{const i=r.config.annotations[s];Array.isArray(i)&&(r.config.annotations[s]=i.filter(l=>l.id!==t))}),Array.prototype.forEach.call(o,s=>{s.parentElement.removeChild(s)}))}}ur.registerFeatures({annotations:ZB});class FB{constructor(e,t){this.w=e,this.ctx=t,this.seriesIndex=0,this.dataPointIndex=0,this.active=!1,this._focusedEl=null,this._hoveredBarEl=null,this._enlargedScatterMarker=null,this._onKeyDown=this._onKeyDown.bind(this),this._onFocus=this._onFocus.bind(this),this._onBlur=this._onBlur.bind(this),this._onLegendClick=this._onLegendClick.bind(this)}init(){const t=this.w.dom.Paper.node;t&&(t.setAttribute("tabindex","0"),t.addEventListener("focus",this._onFocus),t.addEventListener("blur",this._onBlur),t.addEventListener("keydown",this._onKeyDown,{passive:!1}),this.ctx.events.addEventListener("legendClick",this._onLegendClick))}destroy(){const e=this.w,t=e.dom.Paper&&e.dom.Paper.node;t&&(t.removeEventListener("focus",this._onFocus),t.removeEventListener("blur",this._onBlur),t.removeEventListener("keydown",this._onKeyDown),this.ctx.events.removeEventListener("legendClick",this._onLegendClick))}handleKey(e){}_onFocus(){this._isNavEnabled()&&(this.active=!0,this._clampCursor(),this._snapToVisibleRange(),this._showCurrentPoint())}_onBlur(){this.active=!1,this._hideFocus()}_onLegendClick(){this.active&&(this.active=!1,this._hideFocus())}_onKeyDown(e){if(!(!this._isNavEnabled()||!this.active))switch(e.key){case"ArrowRight":e.preventDefault(),this._move(0,1);break;case"ArrowLeft":e.preventDefault(),this._move(0,-1);break;case"ArrowUp":e.preventDefault(),this._move(-1,0);break;case"ArrowDown":e.preventDefault(),this._move(1,0);break;case"Home":e.preventDefault(),this.dataPointIndex=0,this._skipNullForward(),this._showCurrentPoint();break;case"End":e.preventDefault(),this.dataPointIndex=this._getDataPointCount(this.seriesIndex)-1,this._skipNullBackward(),this._showCurrentPoint();break;case"Enter":case" ":e.preventDefault(),this._fireClick();break;case"Escape":e.preventDefault(),this.active=!1,this._hideFocus();break}}_move(e,t){const r=this.w,o=r.config.chart.accessibility.keyboard.navigation.wrapAround;if(e!==0){const s=this.w.globals.tooltip;if(s&&s.tConfig&&s.tConfig.shared){const d=this.dataPointIndex;if(s.tooltipUtil&&s.tooltipUtil.isXoverlap(d)&&s.tooltipUtil.isInitialSeriesSameLen())return}const i=this._getSeriesCount();let l=this.seriesIndex+e,c=0;for(;c<i&&(l<0&&(l=o?i-1:0),l>=i&&(l=o?0:i-1),!!r.globals.collapsedSeriesIndices.includes(l));)l+=e,c++;this.seriesIndex=l;const h=this._getDataPointCount(l);this.dataPointIndex>=h&&(this.dataPointIndex=h-1)}if(t!==0){const s=this._getDataPointCount(this.seriesIndex);let i=this.dataPointIndex+t;i<0&&(i=o?s-1:0),i>=s&&(i=o?0:s-1),this.dataPointIndex=i,t>0?this._skipNullForward():this._skipNullBackward(),this._isDataPointVisible(this.seriesIndex,this.dataPointIndex)||this._snapToVisibleRangeInDirection(t)}this._showCurrentPoint()}_skipNullForward(){const e=this.w,t=this.seriesIndex,r=this._getDataPointCount(t);let o=this.dataPointIndex,s=0;if(Array.isArray(e.seriesData.series[t])){for(;s<r&&e.seriesData.series[t][o]===null;)o=(o+1)%r,s++;this.dataPointIndex=o}}_skipNullBackward(){const e=this.w,t=this.seriesIndex,r=this._getDataPointCount(t);let o=this.dataPointIndex,s=0;if(Array.isArray(e.seriesData.series[t])){for(;s<r&&e.seriesData.series[t][o]===null;)o=(o-1+r)%r,s++;this.dataPointIndex=o}}_showCurrentPoint(){const{seriesIndex:e,dataPointIndex:t}=this,r=this.w,o=r.globals.tooltip;!o||!o.ttItems||(r.interact.capturedSeriesIndex=e,r.interact.capturedDataPointIndex=t,this._applyFocusClass(e,t),this._showTooltip(e,t,o))}_hideFocus(){const e=this.w,t=e.globals.tooltip;if(this._removeFocusClass(),this._leaveHoveredBar(),!t)return;t.marker&&t.marker.resetPointsSize(),this._enlargedScatterMarker=null;const r=t.getElTooltip();r&&(r.classList.remove("apexcharts-active"),e.config.chart.accessibility.enabled&&e.config.chart.accessibility.announcements.enabled&&r.setAttribute("aria-hidden","true")),e.dom.baseEl.classList.remove("apexcharts-tooltip-active");const o=t.getElXCrosshairs();o&&o.classList.remove("apexcharts-active")}_showTooltip(e,t,r){const o=this.w,s=o.config.chart.type,i=r.getElTooltip();if(!i)return;const l=r.getCachedDimensions();r.tooltipRect={x:0,y:0,ttWidth:l.ttWidth||0,ttHeight:l.ttHeight||0},this._setSyntheticEvent(e,t,r),o.dom.baseEl.classList.add("apexcharts-tooltip-active"),i.classList.add("apexcharts-active"),o.config.chart.accessibility.enabled&&o.config.chart.accessibility.announcements.enabled&&i.removeAttribute("aria-hidden"),s==="pie"||s==="donut"||s==="polarArea"?this._showTooltipNonAxis(e,t,r,i):s==="radialBar"?this._showTooltipRadialBar(e,t,r,i):s==="heatmap"||s==="treemap"?this._showTooltipHeatTree(e,t,r,i,s):s==="bar"||s==="candlestick"||s==="boxPlot"||s==="rangeBar"?this._showTooltipBar(e,t,r):this._showTooltipAxisLine(e,t,r)}_setSyntheticEvent(e,t,r){const o=this.w,s=o.config.chart.type;let i=0,l=0;const c=this._getFocusableElement(e,t);if(c){const h=c.getBoundingClientRect();i=h.left+h.width/2,l=h.top+h.height/2}else if(o.globals.pointsArray&&o.globals.pointsArray[e]&&o.globals.pointsArray[e][t]){const h=o.globals.pointsArray[e][t],d=r.getElGrid&&r.getElGrid();if(d){const u=d.getBoundingClientRect();i=u.left+(h[0]||0),l=u.top+(h[1]||0)}}else{const h=o.dom.Paper&&o.dom.Paper.node;if(h){const d=h.getBoundingClientRect();i=d.left+d.width/2,l=d.top+d.height/2}}if((s==="line"||s==="area"||s==="rangeArea"||s==="scatter"||s==="bubble"||s==="radar")&&o.globals.pointsArray&&o.globals.pointsArray[e]&&o.globals.pointsArray[e][t]){const h=o.globals.pointsArray[e][t],d=r.getElGrid&&r.getElGrid();if(d){const u=d.getBoundingClientRect();i=u.left+(h[0]||0),l=u.top+(h[1]||0)}}r.e={type:"mousemove",clientX:i,clientY:l}}_showTooltipBar(e,t,r){var o,s,i,l;const c=this.w,h=r.tConfig.shared&&(r.tooltipUtil.isXoverlap(t)||c.globals.isBarHorizontal)&&r.tooltipUtil.isInitialSeriesSameLen(),d=(l=(i=(s=(o=c.rangeData.seriesRange)==null?void 0:o[e])==null?void 0:s[t])==null?void 0:i.y)==null?void 0:l[0];r.tooltipLabels.drawSeriesTexts(je(Ve(Ve({ttItems:r.ttItems,i:e,j:t},d?.y1!==void 0&&{y1:d.y1}),d?.y2!==void 0&&{y2:d.y2}),{shared:h}));const u=`.apexcharts-series[data\\:realIndex='${e}']`,p=c.dom.Paper.findOne(`${u} path[j='${t}'], ${u} circle[j='${t}'], ${u} rect[j='${t}']`);if(p&&(this._leaveHoveredBar(),new ce(this.w,this.ctx).pathMouseEnter(p,null),this._hoveredBarEl=p),c.globals.isBarHorizontal){const f=p&&p.node;if(f){const g=c.dom.elWrap.getBoundingClientRect(),m=f.getBoundingClientRect(),x=m.left-g.left,w=m.top-g.top,b=m.height,y=m.width,k=r.tooltipRect.ttWidth||0,v=r.tooltipRect.ttHeight||0,C=w+b/2-v/2;let A=x+y;const B=r.xyRatios&&r.xyRatios.baseLineInvertedY!=null?r.xyRatios.baseLineInvertedY:g.width/2;x<B&&(A=x-k);const E=r.getElTooltip();E&&(E.style.left=A+"px",E.style.top=C+"px")}}else r.tooltipPosition.moveStickyTooltipOverBars(t,e)}_showTooltipAxisLine(e,t,r){const o=this.w,s=o.config.chart.type,l=r.tConfig.shared&&r.tooltipUtil.isXoverlap(t)&&r.tooltipUtil.isInitialSeriesSameLen();r.tooltipLabels.drawSeriesTexts({ttItems:r.ttItems,i:e,j:t,shared:l});const c=s==="scatter"||s==="bubble",h=o.globals.markers.largestSize>0;c?this._showScatterBubblePoint(e,t,r):h?l?r.marker.enlargePoints(t):r.tooltipPosition.moveDynamicPointOnHover(t,e):l?r.tooltipPosition.moveDynamicPointsOnHover(t):r.tooltipPosition.moveDynamicPointOnHover(t,e)}_showScatterBubblePoint(e,t,r){const o=this.w.dom.baseEl;this._enlargedScatterMarker&&(r.marker.oldPointSize(this._enlargedScatterMarker),this._enlargedScatterMarker=null);const s=o.querySelector(`.apexcharts-series[data\\:realIndex='${e}']`);if(!s)return;const i=s.querySelector(`.apexcharts-marker[rel='${t}']`);i&&(r.marker.enlargeCurrentPoint(t,i),this._enlargedScatterMarker=i)}_showTooltipNonAxis(e,t,r,o){var s,i;const l=this.w;r.tooltipLabels.drawSeriesTexts({ttItems:r.ttItems,i:t,shared:!1});const c=o.getBoundingClientRect(),h=c.width||r.tooltipRect.ttWidth||0,d=c.height||r.tooltipRect.ttHeight||0,u=l.dom.baseEl.querySelector(`.apexcharts-pie-area[j='${t}']`);if(u){const p=parseFloat((s=u.getAttribute("data:cx"))!=null?s:""),f=parseFloat((i=u.getAttribute("data:cy"))!=null?i:"");if(!isNaN(p)&&!isNaN(f)){const g=l.dom.Paper.node.getBoundingClientRect(),m=l.dom.elWrap.getBoundingClientRect(),x=g.left-m.left,w=g.top-m.top;o.style.left=x+p-h/2+"px",o.style.top=w+f-d-10+"px"}}}_showTooltipRadialBar(e,t,r,o){var s;const i=this.w;r.tooltipLabels.drawSeriesTexts({ttItems:r.ttItems,i:e,shared:!1});const{ttWidth:l=0,ttHeight:c=0}=r.getCachedDimensions(),h=i.dom.baseEl.querySelector(`.apexcharts-radialbar-series[data\\:realIndex='${e}'] path`);if(h){const d=parseFloat((s=h.getAttribute("data:angle"))!=null?s:"")||0,p=(i.config.plotOptions.radialBar.startAngle||0)+d/2,f=i.layout.gridWidth/2,g=i.layout.gridHeight/2,m=i.globals.radialSize||Math.min(i.layout.gridWidth,i.layout.gridHeight)/2,x=i.seriesData.series.length,w=m/Math.max(x,1),b=m-e*w,y=b-w,k=(b+y)/2,v=U.polarToCartesian(f,g,k,p),C=v.x+(i.layout.translateX||0),A=v.y+(i.layout.translateY||0);o.style.left=C-l/2+"px",o.style.top=A-c-10+"px"}}_showTooltipHeatTree(e,t,r,o,s){var i,l;const c=this.w;r.tooltipLabels.drawSeriesTexts({ttItems:r.ttItems,i:e,j:t,shared:!1});const h=o.getBoundingClientRect(),d=h.width||r.tooltipRect.ttWidth||0,u=h.height||r.tooltipRect.ttHeight||0,p=s==="heatmap"?"apexcharts-heatmap-rect":"apexcharts-treemap-rect",f=c.dom.baseEl.querySelector(`.${p}[i='${e}'][j='${t}']`);if(f){const g=c.dom.elWrap.getBoundingClientRect(),m=f.getBoundingClientRect(),x=m.left-g.left,w=m.top-g.top,b=m.width,y=m.height,k=parseFloat((i=f.getAttribute("cx"))!=null?i:""),v=parseFloat((l=f.getAttribute("width"))!=null?l:"");r.tooltipPosition.moveXCrosshairs(k+v/2);let C=x+b+d/2;const A=w+y/2-u/2;x+b>c.layout.gridWidth/2&&(C=x-d/2),o.style.left=C+"px",o.style.top=A+"px"}}_applyFocusClass(e,t){this._removeFocusClass();const r=this._getFocusableElement(e,t);r&&(r.classList.add("apexcharts-keyboard-focused"),this._focusedEl=r)}_removeFocusClass(){this._focusedEl&&(this._focusedEl.classList.remove("apexcharts-keyboard-focused"),this._focusedEl=null)}_leaveHoveredBar(){this._hoveredBarEl&&(new ce(this.w,this.ctx).pathMouseLeave(this._hoveredBarEl,null),this._hoveredBarEl=null)}_getFocusableElement(e,t){const r=this.w,o=r.config.chart.type,s=r.dom.baseEl;return o==="pie"||o==="donut"||o==="polarArea"?s.querySelector(`.apexcharts-pie-area[j='${t}']`):o==="heatmap"?s.querySelector(`.apexcharts-heatmap-rect[i='${e}'][j='${t}']`):o==="treemap"?s.querySelector(`.apexcharts-treemap-rect[i='${e}'][j='${t}']`):o==="radialBar"?s.querySelector(`.apexcharts-radialbar-series[data\\:realIndex='${e}'] path`):o==="bar"||o==="candlestick"||o==="boxPlot"||o==="rangeBar"?s.querySelector(`.apexcharts-series[data\\:realIndex='${e}'] path[j='${t}']`):s.querySelector(`.apexcharts-series[data\\:realIndex='${e}'] .apexcharts-marker[rel='${t}']`)||null}_fireClick(){const t=this.w.globals.tooltip;if(!t)return;const r={type:"mouseup",clientX:0,clientY:0};t.markerClick(r,this.seriesIndex,this.dataPointIndex)}_isNavEnabled(){const e=this.w.config.chart.accessibility;return e.enabled&&e.keyboard.enabled&&e.keyboard.navigation.enabled}_getSeriesCount(){const e=this.w,t=e.config.chart.type;return t==="pie"||t==="donut"||t==="polarArea"?1:e.seriesData.series.length}_getDataPointCount(e){const t=this.w,r=t.config.chart.type;if(r==="pie"||r==="donut"||r==="polarArea")return t.seriesData.series.length;const o=t.seriesData.series;return o[e]&&Array.isArray(o[e])?o[e].length:0}_clampCursor(){const e=this._getSeriesCount();this.seriesIndex>=e&&(this.seriesIndex=e-1),this.seriesIndex<0&&(this.seriesIndex=0);const t=this._getDataPointCount(this.seriesIndex);this.dataPointIndex>=t&&(this.dataPointIndex=t-1),this.dataPointIndex<0&&(this.dataPointIndex=0)}_snapToVisibleRange(){const e=this.w,t=e.globals,r=this.seriesIndex;if(!e.interact.zoomed)return;const o=e.seriesData.seriesX&&e.seriesData.seriesX[r];if(!o||!o.length)return;const s=t.minX,i=t.maxX;if(s===void 0||i===void 0)return;const l=o[this.dataPointIndex];if(l>=s&&l<=i)return;const c=o.length;for(let h=0;h<c;h++)if(o[h]>=s&&o[h]<=i){this.dataPointIndex=h;return}}_snapToVisibleRangeInDirection(e){const t=this.w,r=t.globals,o=this.seriesIndex,s=t.seriesData.seriesX&&t.seriesData.seriesX[o];if(!s||!s.length)return;const i=r.minX,l=r.maxX;if(i===void 0||l===void 0)return;const c=s.length;if(e>=0){for(let h=0;h<c;h++)if(s[h]>=i&&s[h]<=l){this.dataPointIndex=h;return}}else for(let h=c-1;h>=0;h--)if(s[h]>=i&&s[h]<=l){this.dataPointIndex=h;return}}_isDataPointVisible(e,t){const r=this.w,o=r.globals;if(!r.interact.zoomed)return!0;const s=r.seriesData.seriesX&&r.seriesData.seriesX[e];if(!s)return!0;const i=s[t];return i===void 0?!0:i>=o.minX&&i<=o.maxX}}ur.registerFeatures({keyboardNavigation:FB});class _B{constructor(e){this.w=e.w,this.barCtx=e,this.totalFormatter=this.w.config.plotOptions.bar.dataLabels.total.formatter,this.totalFormatter||(this.totalFormatter=this.w.config.dataLabels.formatter)}handleBarDataLabels(e){const{x:t,y:r,y1:o,y2:s,i,j:l,realIndex:c,columnGroupIndex:h,series:d,barHeight:u,barWidth:p,barXPosition:f,barYPosition:g,visibleSeries:m}=e,x=this.w,w=new ce(this.barCtx.w),b=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[c]:this.barCtx.strokeWidth;let y,k;x.axisFlags.isXNumeric&&!x.globals.isBarHorizontal?(y=t+p*(m+1),k=r+u*(m+1)-b):(y=t+p*m,k=r+u*m);let v=null,C=null,A=t,B=r,E={};const S=x.config.dataLabels,D=this.barCtx.barOptions.dataLabels,M=this.barCtx.barOptions.dataLabels.total;typeof g<"u"&&this.barCtx.isRangeBar&&(k=g,B=g),typeof f<"u"&&this.barCtx.isVerticalGroupedRangeBar&&(y=f,A=f);const L=S.offsetX,V=S.offsetY;let N={width:0,height:0};if(x.config.dataLabels.enabled){const I=x.seriesData.series[i][l];N=w.getTextRects(x.config.dataLabels.formatter?x.config.dataLabels.formatter(I,je(Ve({},x),{seriesIndex:i,dataPointIndex:l,w:x})):x.formatters.yLabelFormatters[0](I),parseFloat(S.style.fontSize).toString())}const T={x:t,y:r,i,j:l,realIndex:c,columnGroupIndex:h,bcx:y,bcy:k,barHeight:u,barWidth:p,textRects:N,strokeWidth:b,dataLabelsX:A,dataLabelsY:B,dataLabelsConfig:S,barDataLabelsConfig:D,barTotalDataLabelsConfig:M,offX:L,offY:V};return this.barCtx.isHorizontal?E=this.calculateBarsDataLabelsPosition(T):E=this.calculateColumnsDataLabelsPosition(T),v=this.drawCalculatedDataLabels({x:E.dataLabelsX,y:E.dataLabelsY,val:this.barCtx.isRangeBar?[o,s]:x.config.chart.stackType==="100%"?d[c][l]:x.seriesData.series[c][l],i:c,j:l,barWidth:p,barHeight:u,textRects:N,dataLabelsConfig:S}),x.config.chart.stacked&&M.enabled&&(C=this.drawTotalDataLabels({x:E.totalDataLabelsX,y:E.totalDataLabelsY,barWidth:p,barHeight:u,realIndex:c,textAnchor:E.totalDataLabelsAnchor,val:this.getStackedTotalDataLabel({realIndex:c,j:l}),dataLabelsConfig:S,barTotalDataLabelsConfig:M})),{dataLabelsPos:E,dataLabels:v,totalDataLabels:C}}getStackedTotalDataLabel({realIndex:e,j:t}){const r=this.w;let o=this.barCtx.stackedSeriesTotals[t];return this.totalFormatter&&(o=this.totalFormatter(o,je(Ve({},r),{seriesIndex:e,dataPointIndex:t,w:r}))),o}calculateColumnsDataLabelsPosition(e){const t=this.w;let{i:r,j:o,realIndex:s,y:i,bcx:l,barWidth:c,barHeight:h,textRects:d,dataLabelsX:u,dataLabelsY:p,dataLabelsConfig:f,barDataLabelsConfig:g,barTotalDataLabelsConfig:m,strokeWidth:x,offX:w,offY:b}=e,y,k;const v="middle",C=l;h=Math.abs(h);const A=t.config.plotOptions.bar.dataLabels.orientation==="vertical",{zeroEncounters:B}=this.barCtx.barHelpers.getZeroValueEncounters({i:r,j:o});l=l-x/2;const E=t.layout.gridWidth/t.globals.dataPoints;this.barCtx.isVerticalGroupedRangeBar?u+=c/2:(t.axisFlags.isXNumeric?u=l-c/2+w:u=l-E+c/2+w,!t.config.chart.stacked&&B>0&&t.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(u-=c*B)),A&&(u=u+d.height/2-x/2-2);const S=t.seriesData.series[r][o]<0;let D=i;switch(this.barCtx.isReversed&&(D=i+(S?h:-h)),g.position){case"center":A?S?p=D-h/2+b:p=D+h/2-b:S?p=D-h/2+d.height/2+b:p=D+h/2+d.height/2-b;break;case"bottom":A?S?p=D-h+b:p=D+h-b:S?p=D-h+d.height+x+b:p=D+h-d.height/2+x-b;break;case"top":A?S?p=D+b:p=D-b:S?p=D-d.height/2-b:p=D+d.height+b;break}let M=D;if(t.labelData.seriesGroups.forEach(L=>{var V;(V=this.barCtx[L.join(",")])==null||V.prevY.forEach(N=>{S?M=Math.max(N[o],M):M=Math.min(N[o],M)})}),this.barCtx.lastActiveBarSerieIndex===s&&m.enabled){const N=new ce(this.barCtx.w).getTextRects(this.getStackedTotalDataLabel({realIndex:s,j:o}),f.fontSize);S?y=M-N.height/2-b-m.offsetY+18:y=M+N.height+b+m.offsetY-18;const T=E;k=C+(t.axisFlags.isXNumeric?-c*t.globals.barGroups.length/2:t.globals.barGroups.length*c/2-(t.globals.barGroups.length-1)*c-T)+m.offsetX}return t.config.chart.stacked||(p<0?p=0+x:p+d.height/3>t.layout.gridHeight&&(p=t.layout.gridHeight-x)),{bcx:l,bcy:i,dataLabelsX:u,dataLabelsY:p,totalDataLabelsX:k,totalDataLabelsY:y,totalDataLabelsAnchor:v}}calculateBarsDataLabelsPosition(e){const t=this.w;let{x:r,i:o,j:s,realIndex:i,bcy:l,barHeight:c,barWidth:h,textRects:d,dataLabelsX:u,strokeWidth:p,dataLabelsConfig:f,barDataLabelsConfig:g,barTotalDataLabelsConfig:m,offX:x,offY:w}=e;const b=t.layout.gridHeight/t.globals.dataPoints,{zeroEncounters:y}=this.barCtx.barHelpers.getZeroValueEncounters({i:o,j:s});h=Math.abs(h);let k=l-(this.barCtx.isRangeBar?0:b)+c/2+d.height/2+w-3;!t.config.chart.stacked&&y>0&&t.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(k-=c*y);let v,C,A="start";const B=t.seriesData.series[o][s]<0;let E=r;switch(this.barCtx.isReversed&&(E=r+(B?-h:h),A=B?"start":"end"),g.position){case"center":B?u=E+h/2-x:u=Math.max(d.width/2,E-h/2)+x;break;case"bottom":B?u=E+h-p-x:u=E-h+p+x;break;case"top":B?u=E-p-x:u=E-p+x;break}let S=E;if(t.labelData.seriesGroups.forEach(D=>{var M;(M=this.barCtx[D.join(",")])==null||M.prevX.forEach(L=>{B?S=Math.min(L[s],S):S=Math.max(L[s],S)})}),this.barCtx.lastActiveBarSerieIndex===i&&m.enabled){const M=new ce(this.barCtx.w).getTextRects(this.getStackedTotalDataLabel({realIndex:i,j:s}),f.fontSize);B?(v=S-p-x-m.offsetX,A="end"):v=S+x+m.offsetX+(this.barCtx.isReversed?-(h+p):p),C=k-d.height/2+M.height/2+m.offsetY+p,t.globals.barGroups.length>1&&(C=C-t.globals.barGroups.length/2*(c/2))}return t.config.chart.stacked||(f.textAnchor==="start"?u-d.width<0?u=B?d.width+p:p:u+d.width>t.layout.gridWidth&&(u=B?t.layout.gridWidth-p:t.layout.gridWidth-d.width-p):f.textAnchor==="middle"?u-d.width/2<0?u=d.width/2+p:u+d.width/2>t.layout.gridWidth&&(u=t.layout.gridWidth-d.width/2-p):f.textAnchor==="end"&&(u<1?u=d.width+p:u+1>t.layout.gridWidth&&(u=t.layout.gridWidth-d.width-p))),{bcx:r,bcy:l,dataLabelsX:u,dataLabelsY:k,totalDataLabelsX:v,totalDataLabelsY:C,totalDataLabelsAnchor:A}}drawCalculatedDataLabels({x:e,y:t,val:r,i:o,j:s,textRects:i,barHeight:l,barWidth:c,dataLabelsConfig:h}){const d=this.w;let u="rotate(0)";d.config.plotOptions.bar.dataLabels.orientation==="vertical"&&(u=`rotate(-90, ${e}, ${t})`);const p=new Eo(this.barCtx.w,this.barCtx.ctx),f=new ce(this.barCtx.w),g=h.formatter;let m=null;const x=d.globals.collapsedSeriesIndices.indexOf(o)>-1;if(h.enabled&&!x){m=f.group({class:"apexcharts-data-labels",transform:u});let w="";typeof r<"u"&&(w=g(r,je(Ve({},d),{seriesIndex:o,dataPointIndex:s,w:d}))),!r&&d.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(w="");const b=d.seriesData.series[o][s]<0,y=d.config.plotOptions.bar.dataLabels.position;if(d.config.plotOptions.bar.dataLabels.orientation==="vertical"&&(y==="top"&&(b?h.textAnchor="end":h.textAnchor="start"),y==="center"&&(h.textAnchor="middle"),y==="bottom"&&(b?h.textAnchor="end":h.textAnchor="start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels){const v=f.getTextRects(w,parseFloat(h.style.fontSize).toString());c<v.width&&(w="")}d.config.chart.stacked&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&(this.barCtx.isHorizontal?i.width/1.6>Math.abs(c)&&(w=""):i.height/1.6>Math.abs(l)&&(w=""));const k=Ve({},h);this.barCtx.isHorizontal&&r<0&&(h.textAnchor==="start"?k.textAnchor="end":h.textAnchor==="end"&&(k.textAnchor="start")),p.plotDataLabelsText({x:e,y:t,text:w,i:o,j:s,parent:m,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return m}drawTotalDataLabels({x:e,y:t,val:r,realIndex:o,textAnchor:s,barTotalDataLabelsConfig:i}){const l=new ce(this.barCtx.w);let c;return i.enabled&&typeof e<"u"&&typeof t<"u"&&this.barCtx.lastActiveBarSerieIndex===o&&(c=l.drawText({x:e,y:t,foreColor:i.style.color,text:r,textAnchor:s,fontFamily:i.style.fontFamily,fontSize:i.style.fontSize,fontWeight:i.style.fontWeight})),c}}let XB=class{constructor(e){this.w=e.w,this.barCtx=e}initVariables(e){const t=this.w;this.barCtx.series=e,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(let r=0;r<e.length;r++)if(e[r].length>0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=e[r].length),t.axisFlags.isXNumeric)for(let o=0;o<e[r].length;o++)t.seriesData.seriesX[r][o]>t.globals.minX&&t.seriesData.seriesX[r][o]<t.globals.maxX&&this.barCtx.visibleItems++;else this.barCtx.visibleItems=t.globals.dataPoints;this.arrBorderRadius=this.createBorderRadiusArr(t.seriesData.series),U.isSafari()&&(this.arrBorderRadius=this.arrBorderRadius.map(r=>r.map(o=>"none"))),this.barCtx.seriesLen===0&&(this.barCtx.seriesLen=1),this.barCtx.zeroSerieses=[],t.globals.comboCharts||this.checkZeroSeries({series:e})}initialPositions(e){const t=this.w;let r,o,s,i,l,c,h,d,u=t.globals.dataPoints;this.barCtx.isRangeBar&&(u=t.labelData.labels.length);let p=this.barCtx.seriesLen;if(t.config.plotOptions.bar.rangeBarGroupRows&&(p=1),this.barCtx.isHorizontal)s=t.layout.gridHeight/u,l=s/p,t.axisFlags.isXNumeric&&(s=t.layout.gridHeight/this.barCtx.totalItems,l=s/this.barCtx.seriesLen),l=l*parseInt(this.barCtx.barOptions.barHeight,10)/100,String(this.barCtx.barOptions.barHeight).indexOf("%")===-1&&(l=parseInt(this.barCtx.barOptions.barHeight,10)),d=this.barCtx.baseLineInvertedY+t.globals.padHorizontal+(this.barCtx.isReversed?t.layout.gridWidth:0)-(this.barCtx.isReversed?this.barCtx.baseLineInvertedY*2:0),this.barCtx.isFunnel&&(d=t.layout.gridWidth/2),o=(s-l*this.barCtx.seriesLen)/2;else{if(i=t.layout.gridWidth/this.barCtx.visibleItems,t.config.xaxis.convertedCatToNumeric&&(i=t.layout.gridWidth/t.globals.dataPoints),c=i/p*parseInt(this.barCtx.barOptions.columnWidth,10)/100,t.axisFlags.isXNumeric){const f=this.barCtx.xRatio;t.globals.minXDiff&&t.globals.minXDiff!==.5&&t.globals.minXDiff/f>0&&(i=t.globals.minXDiff/f),c=i/p*parseInt(this.barCtx.barOptions.columnWidth,10)/100,c<1&&(c=1)}String(this.barCtx.barOptions.columnWidth).indexOf("%")===-1&&(c=parseInt(this.barCtx.barOptions.columnWidth,10)),h=t.layout.gridHeight-this.barCtx.baseLineY[this.barCtx.translationsIndex]-(this.barCtx.isReversed?t.layout.gridHeight:0)+(this.barCtx.isReversed?this.barCtx.baseLineY[this.barCtx.translationsIndex]*2:0),t.axisFlags.isXNumeric?r=this.barCtx.getBarXForNumericXAxis({x:r,j:0,realIndex:e,barWidth:c}).x:r=t.globals.padHorizontal+U.noExponents(i-c*this.barCtx.seriesLen)/2}return t.globals.barHeight=l,t.globals.barWidth=c,{x:r,y:o,yDivision:s,xDivision:i,barHeight:l,barWidth:c,zeroH:h,zeroW:d}}initializeStackedPrevVars(e){e.w.labelData.seriesGroups.forEach(r=>{e[r]||(e[r]={}),e[r].prevY=[],e[r].prevX=[],e[r].prevYF=[],e[r].prevXF=[],e[r].prevYVal=[],e[r].prevXVal=[]})}initializeStackedXYVars(e){e.w.labelData.seriesGroups.forEach(r=>{e[r]||(e[r]={}),e[r].xArrj=[],e[r].xArrjF=[],e[r].xArrjVal=[],e[r].yArrj=[],e[r].yArrjF=[],e[r].yArrjVal=[]})}getPathFillColor(e,t,r,o){var s,i,l,c;const h=this.w,d=new Ia(this.barCtx.w);let u=null;const p=this.barCtx.barOptions.distributed?r:t;let f=!1;return this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map(x=>{e[t][r]>=x.from&&e[t][r]<=x.to&&(u=x.color,f=!0)}),{color:d.fillPath({seriesNumber:this.barCtx.barOptions.distributed?p:o,dataPointIndex:r,color:u,value:e[t][r],fillConfig:(s=h.config.series[t].data[r])==null?void 0:s.fill,fillType:(l=(i=h.config.series[t].data[r])==null?void 0:i.fill)!=null&&l.type?(c=h.config.series[t].data[r])==null?void 0:c.fill.type:Array.isArray(h.config.fill.type)?h.config.fill.type[o]:h.config.fill.type}),useRangeColor:f}}getStrokeWidth(e,t,r){let o=0;const s=this.w;return typeof this.barCtx.series[e][t]>"u"||this.barCtx.series[e][t]===null||s.config.chart.type==="bar"&&!this.barCtx.series[e][t]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(o=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[r]:this.barCtx.strokeWidth)),o}createBorderRadiusArr(e){var t;const r=this.w,o=!this.w.config.chart.stacked||r.config.plotOptions.bar.borderRadius<=0,s=e.length,i=((t=e[0])==null?void 0:t.length)|0,l=Array.from({length:s},()=>Array(i).fill(o?"top":"none"));if(o)return l;const c=this.w.config.chart.type;for(let h=0;h<i;h++){const d=[],u=[];let p=0;for(let f=0;f<s;f++){const g=e[f][h];g>0?(d.push(f),p++):g<0&&(u.push(f),p++)}if(d.length>0&&u.length===0)if(d.length===1)l[d[0]][h]=c==="bar"&&i===1?"top":"both";else{const f=d[0],g=d[d.length-1];for(const m of d)m===f?l[m][h]=c==="bar"&&i===1?"top":"bottom":m===g?l[m][h]="top":l[m][h]="none"}else if(u.length>0&&d.length===0)if(u.length===1)l[u[0]][h]="both";else{const f=Math.max(...u),g=Math.min(...u);for(const m of u)m===f?l[m][h]="bottom":m===g?l[m][h]="top":l[m][h]="none"}else if(d.length>0&&u.length>0){const f=d[d.length-1];for(const m of d)m===f?l[m][h]="top":l[m][h]="none";const g=Math.max(...u);for(const m of u)m===g?l[m][h]="bottom":l[m][h]="none"}else if(p===1){const f=d[0]||u[0];l[f][h]="both"}}return l}barBackground({j:e,i:t,x1:r,x2:o,y1:s,y2:i,elSeries:l}){const c=this.w,h=new ce(this.barCtx.w),u=new Lt(this.barCtx.w).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&u===t){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);const p=this.barCtx.barOptions.colors.backgroundBarColors[e],f=h.drawRect(typeof r<"u"?r:0,typeof s<"u"?s:0,typeof o<"u"?o:c.layout.gridWidth,typeof i<"u"?i:c.layout.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,p,this.barCtx.barOptions.colors.backgroundBarOpacity);l.add(f),f.node.classList.add("apexcharts-backgroundBar")}}getColumnPaths({barWidth:e,barXPosition:t,y1:r,y2:o,strokeWidth:s,isReversed:i,series:l,seriesGroup:c,realIndex:h,i:d,j:u,w:p}){var f;const g=new ce(this.barCtx.w);s=Array.isArray(s)?s[h]:s,s||(s=0);let m=e,x=t;(f=p.config.series[h].data[u])!=null&&f.columnWidthOffset&&(x=t-p.config.series[h].data[u].columnWidthOffset/2,m=e+p.config.series[h].data[u].columnWidthOffset);const w=s/2,b=x+w,y=x+m-w,k=(l[d][u]>=0?1:-1)*(i?-1:1);r+=.001-w*k,o+=.001+w*k;let v=g.move(b,r),C=g.move(b,r);const A=g.line(y,r);if(p.globals.previousPaths.length>0&&(C=this.barCtx.getPreviousPath(h,u,!1)),v=v+g.line(b,o)+g.line(y,o)+A+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[h][u]==="both"?" Z":" z"),C=C+g.line(b,r)+A+A+A+A+A+g.line(b,r)+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[h][u]==="both"?" Z":" z"),this.arrBorderRadius[h][u]!=="none"&&(v=g.roundPathCorners(v,p.config.plotOptions.bar.borderRadius)),p.config.chart.stacked){let B=this.barCtx;B=this.barCtx[c],B.yArrj.push(o-w*k),B.yArrjF.push(Math.abs(r-o+s*k)),B.yArrjVal.push(this.barCtx.series[d][u])}return{pathTo:v,pathFrom:C}}getBarpaths({barYPosition:e,barHeight:t,x1:r,x2:o,strokeWidth:s,isReversed:i,series:l,seriesGroup:c,realIndex:h,i:d,j:u,w:p}){var f;const g=new ce(this.barCtx.w);s=Array.isArray(s)?s[h]:s,s||(s=0);let m=e,x=t;(f=p.config.series[h].data[u])!=null&&f.barHeightOffset&&(m=e-p.config.series[h].data[u].barHeightOffset/2,x=t+p.config.series[h].data[u].barHeightOffset);const w=s/2,b=m+w,y=m+x-w,k=(l[d][u]>=0?1:-1)*(i?-1:1);r+=.001+w*k,o+=.001-w*k;let v=g.move(r,b),C=g.move(r,b);p.globals.previousPaths.length>0&&(C=this.barCtx.getPreviousPath(h,u,!1));const A=g.line(r,y);if(v=v+g.line(o,b)+g.line(o,y)+A+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[h][u]==="both"?" Z":" z"),C=C+g.line(r,b)+A+A+A+A+A+g.line(r,b)+(p.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[h][u]==="both"?" Z":" z"),this.arrBorderRadius[h][u]!=="none"&&(v=g.roundPathCorners(v,p.config.plotOptions.bar.borderRadius)),p.config.chart.stacked){let B=this.barCtx;B=this.barCtx[c],B.xArrj.push(o+w*k),B.xArrjF.push(Math.abs(r-o-s*k)),B.xArrjVal.push(this.barCtx.series[d][u])}return{pathTo:v,pathFrom:C}}checkZeroSeries({series:e}){const t=this.w;for(let r=0;r<e.length;r++){let o=0;for(let s=0;s<e[t.globals.maxValsInArrayIndex].length;s++)o+=e[r][s];o===0&&this.barCtx.zeroSerieses.push(r)}}getXForValue(e,t,r=!0){let o=r?t:null;return typeof e<"u"&&e!==null&&(o=t+e/this.barCtx.invertedYRatio-(this.barCtx.isReversed?e/this.barCtx.invertedYRatio:0)*2),o}getYForValue(e,t,r,o=!0){let s=o?t:null;return typeof e<"u"&&e!==null&&(s=t-e/this.barCtx.yRatio[r]+(this.barCtx.isReversed?e/this.barCtx.yRatio[r]:0)*2),s}getGoalValues(e,t,r,o,s,i){const l=this.w,c=[],h=(d,u)=>{c.push({[e]:e==="x"?this.getXForValue(d,t,!1):this.getYForValue(d,r,i,!1),attrs:u})};if(l.seriesData.seriesGoals[o]&&l.seriesData.seriesGoals[o][s]&&Array.isArray(l.seriesData.seriesGoals[o][s])&&l.seriesData.seriesGoals[o][s].forEach(d=>{h(d.value,d)}),this.barCtx.barOptions.isDumbbell&&l.rangeData.seriesRange.length){const d=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,u={strokeHeight:e==="x"?0:l.globals.markers.size[o],strokeWidth:e==="x"?l.globals.markers.size[o]:0,strokeDashArray:0,strokeLineCap:"round",strokeColor:Array.isArray(d[o])?d[o][0]:d[o]};h(l.rangeData.seriesRangeStart[o][s],u),h(l.rangeData.seriesRangeEnd[o][s],je(Ve({},u),{strokeColor:Array.isArray(d[o])?d[o][1]:d[o]}))}return c}drawGoalLine({barXPosition:e,barYPosition:t,goalX:r,goalY:o,barWidth:s,barHeight:i}){const l=new ce(this.barCtx.w),c=l.group({className:"apexcharts-bar-goals-groups"});c.node.classList.add("apexcharts-element-hidden"),this.barCtx.w.globals.delayedElements.push({el:c.node}),c.attr("clip-path",`url(#gridRectMarkerMask${this.barCtx.w.globals.cuid})`);let h=null;return this.barCtx.isHorizontal?Array.isArray(r)&&r.forEach(d=>{if(d.x>=-1&&d.x<=l.w.layout.gridWidth+1){const u=typeof d.attrs.strokeHeight<"u"?d.attrs.strokeHeight:i/2,p=t+u+i/2;h=l.drawLine(d.x,p-u*2,d.x,p,d.attrs.strokeColor?d.attrs.strokeColor:void 0,d.attrs.strokeDashArray,d.attrs.strokeWidth?d.attrs.strokeWidth:2,d.attrs.strokeLineCap),c.add(h)}}):Array.isArray(o)&&o.forEach(d=>{if(d.y>=-1&&d.y<=l.w.layout.gridHeight+1){const u=typeof d.attrs.strokeWidth<"u"?d.attrs.strokeWidth:s/2,p=e+u+s/2;h=l.drawLine(p-u*2,d.y,p,d.y,d.attrs.strokeColor?d.attrs.strokeColor:void 0,d.attrs.strokeDashArray,d.attrs.strokeHeight?d.attrs.strokeHeight:2,d.attrs.strokeLineCap),c.add(h)}}),c}drawBarShadow({prevPaths:e,currPaths:t,color:r,realIndex:o,j:s}){const i=this.w,{x:l,x1:c,barYPosition:h}=e,{x:d,x1:u,barYPosition:p}=t,f=h+t.barHeight,g=new ce(this.barCtx.w),m=new U,x=g.move(c,f)+g.line(l,f)+g.line(d,p)+g.line(u,p)+g.line(c,f)+(i.config.plotOptions.bar.borderRadiusApplication==="around"||this.arrBorderRadius[o][s]==="both"?" Z":" z");return g.drawPath({d:x,fill:m.shadeColor(.5,U.rgb2hex(r)),stroke:"none",strokeWidth:0,fillOpacity:1,classes:"apexcharts-bar-shadow apexcharts-decoration-element"})}getZeroValueEncounters({i:e,j:t}){var r;const o=this.w;let s=0,i=0;return(o.config.plotOptions.bar.horizontal?o.seriesData.series.map((c,h)=>h):((r=o.globals.columnSeries)==null?void 0:r.i.map(c=>c))||[]).forEach(c=>{const h=o.globals.seriesPercent[c][t];h&&s++,c<e&&h===0&&i++}),{nonZeroColumns:s,zeroEncounters:i}}getGroupIndex(e){const t=this.w,r=t.labelData.seriesGroups.findIndex(i=>i.indexOf(t.seriesData.seriesNames[e])>-1),o=this.barCtx.columnGroupIndices;let s=o.indexOf(r);return s<0&&(o.push(r),s=o.length-1),{groupIndex:r,columnGroupIndex:s}}};class An{constructor(e,t,r){this.ctx=t,this.w=e,this.barOptions=e.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=e.config.stroke.width,this.isNullValue=!1,this.isRangeBar=e.rangeData.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!e.globals.isBarHorizontal&&e.rangeData.seriesRange.length&&e.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=r,this.xRatio=0,this.yRatio=[],this.invertedXRatio=0,this.invertedYRatio=0,this.baseLineY=[],this.baseLineInvertedY=0,this.xyRatios!==null&&(this.xRatio=r.xRatio,this.yRatio=r.yRatio,this.invertedXRatio=r.invertedXRatio,this.invertedYRatio=r.invertedYRatio,this.baseLineY=r.baseLineY,this.baseLineInvertedY=r.baseLineInvertedY),this.yaxisIndex=0,this.translationsIndex=0,this.seriesLen=0,this.pathArr=[],this.series=[],this.elSeries=null,this.visibleI=0,this.isReversed=!1;const o=new Lt(this.w);this.lastActiveBarSerieIndex=o.getActiveConfigSeriesIndex("desc",["bar","column"]),this.columnGroupIndices=[];const s=o.getBarSeriesIndices(),i=new Nt(this.w);this.stackedSeriesTotals=i.getStackedSeriesTotals(this.w.config.series.map((l,c)=>s.indexOf(c)===-1?c:-1).filter(l=>l!==-1)),this.barHelpers=new XB(this)}draw(e,t){var r;const o=this.w,s=new ce(this.w),i=new Nt(this.w);e=i.getLogSeries(e),this.series=e,this.yRatio=i.getLogYRatios(this.yRatio),this.barHelpers.initVariables(e);const l=s.group({class:"apexcharts-bar-series apexcharts-plot-series"});o.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts");for(let c=0,h=0;c<e.length;c++,h++){let d,u;const p=[],f=[],g=o.globals.comboCharts?t[c]:c,{columnGroupIndex:m}=this.barHelpers.getGroupIndex(g),x=s.group({class:"apexcharts-series",rel:c+1,seriesName:U.escapeString(o.seriesData.seriesNames[g]),"data:realIndex":g});Lt.addCollapsedClassToSeries(this.w,x,g),e[c].length>0&&(this.visibleI=this.visibleI+1),this.yRatio.length>1&&(this.yaxisIndex=o.globals.seriesYAxisReverseMap[g],this.translationsIndex=g);const w=this.translationsIndex;this.isReversed=o.config.yaxis[this.yaxisIndex]&&o.config.yaxis[this.yaxisIndex].reversed;const b=this.barHelpers.initialPositions(g),{y,yDivision:k,zeroW:v,x:C,xDivision:A,zeroH:B}=b;let E=b.barHeight,S=b.barWidth;u=y,d=C,this.isHorizontal||f.push(d+(S??0)/2);const D=s.group({class:"apexcharts-datalabels","data:realIndex":g});o.globals.delayedElements.push({el:D.node}),D.node.classList.add("apexcharts-element-hidden");const M=s.group({class:"apexcharts-bar-goals-markers"}),L=s.group({class:"apexcharts-bar-shadows"});o.globals.delayedElements.push({el:L.node}),L.node.classList.add("apexcharts-element-hidden");for(let V=0;V<e[c].length;V++){const N=this.barHelpers.getStrokeWidth(c,V,g);let T=null;const I={indexes:{i:c,j:V,realIndex:g,translationsIndex:w,bc:h},x:d,y:u,strokeWidth:N,elSeries:x};this.isHorizontal?(T=this.drawBarPaths(je(Ve({},I),{barHeight:E,zeroW:v,yDivision:k})),S=this.series[c][V]/this.invertedYRatio):(T=this.drawColumnPaths(je(Ve({},I),{xDivision:A,barWidth:S,zeroH:B})),E=this.series[c][V]/this.yRatio[w]);const Z=this.barHelpers.getPathFillColor(e,c,V,g);if(this.isFunnel&&this.barOptions.isFunnel3d&&this.pathArr.length&&V>0){const W=this.barHelpers.drawBarShadow({color:typeof Z.color=="string"&&((r=Z.color)==null?void 0:r.indexOf("url"))===-1?Z.color:U.hexToRgba(o.globals.colors[c]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:T,realIndex:g,j:V});L.add(W),o.config.chart.dropShadow.enabled&&new _t(this.w).dropShadow(W,o.config.chart.dropShadow,g)}this.pathArr.push(T);const _=this.barHelpers.drawGoalLine({barXPosition:T.barXPosition,barYPosition:T.barYPosition,goalX:T.goalX,goalY:T.goalY,barHeight:E,barWidth:S});_&&M.add(_),u=T.y,d=T.x,V>0&&f.push(d+(S??0)/2),p.push(u),this.renderSeries(je(Ve({realIndex:g,pathFill:Z.color},Z.useRangeColor?{lineFill:Z.color}:{}),{j:V,i:c,columnGroupIndex:m,pathFrom:T.pathFrom,pathTo:T.pathTo,strokeWidth:N,elSeries:x,x:d,y:u,series:e,barHeight:Math.abs(T.barHeight?T.barHeight:E),barWidth:Math.abs(T.barWidth?T.barWidth:S),elDataLabelsWrap:D,elGoalsMarkers:M,elBarShadows:L,visibleSeries:this.visibleI,type:"bar"}))}o.globals.seriesXvalues[g]=f,o.globals.seriesYvalues[g]=p,l.add(x)}return l}renderSeries({realIndex:e,pathFill:t,lineFill:r,j:o,i:s,columnGroupIndex:i,pathFrom:l,pathTo:c,strokeWidth:h,elSeries:d,x:u,y:p,y1:f,y2:g,series:m,barHeight:x,barWidth:w,barXPosition:b,barYPosition:y,elDataLabelsWrap:k,elGoalsMarkers:v,elBarShadows:C,visibleSeries:A,type:B,classes:E}){const S=this.w,D=new ce(this.w,this.ctx);let M=!1;if(d._bindingsDelegated||(d._bindingsDelegated=!0,D.setupEventDelegation(d,`.apexcharts-${B}-area`)),!r){let T=function(Z){const _=S.config.stroke.colors;let W;return Array.isArray(_)&&_.length>0&&(W=_[Z],W||(W=""),typeof W=="function")?W({value:S.seriesData.series[Z][o],dataPointIndex:o,w:S}):W};const I=typeof S.globals.stroke.colors[e]=="function"?T(e):S.globals.stroke.colors[e];r=this.barOptions.distributed?S.globals.stroke.colors[o]:I}const V=new _B(this).handleBarDataLabels({x:u,y:p,y1:f,y2:g,i:s,j:o,series:m,realIndex:e,columnGroupIndex:i,barHeight:x,barWidth:w,barXPosition:b,barYPosition:y,visibleSeries:A});S.globals.isBarHorizontal||(V.dataLabelsPos.dataLabelsX+Math.max(w,S.globals.barPadForNumericAxis)<0||V.dataLabelsPos.dataLabelsX-Math.max(w,S.globals.barPadForNumericAxis)>S.layout.gridWidth)&&(M=!0),S.config.series[s].data[o]&&S.config.series[s].data[o].strokeColor&&(r=S.config.series[s].data[o].strokeColor),this.isNullValue&&(t="none");const N=o/S.config.chart.animations.animateGradually.delay*(S.config.chart.animations.speed/S.globals.dataPoints)/2.4;if(!M){const T=D.renderPaths({i:s,j:o,realIndex:e,pathFrom:l,pathTo:c,stroke:r,strokeWidth:h,strokeLineCap:S.config.stroke.lineCap,fill:t,animationDelay:N,initialSpeed:S.config.chart.animations.speed,dataChangeSpeed:S.config.chart.animations.dynamicAnimation.speed,className:`apexcharts-${B}-area ${E}`,chartType:B,bindEventsOnPaths:!1});T.attr("clip-path",`url(#gridRectBarMask${S.globals.cuid})`);const I=S.config.forecastDataPoints;I.count>0&&o>=S.globals.dataPoints-I.count&&(T.node.setAttribute("stroke-dasharray",I.dashArray),T.node.setAttribute("stroke-width",I.strokeWidth),T.node.setAttribute("fill-opacity",I.fillOpacity)),typeof f<"u"&&typeof g<"u"&&(T.attr("data-range-y1",f),T.attr("data-range-y2",g)),new _t(this.w).setSelectionFilter(T,e,o),d.add(T),T.attr({cy:V.dataLabelsPos.bcy,cx:V.dataLabelsPos.bcx,j:o,val:S.seriesData.series[s][o],barHeight:x,barWidth:w}),V.dataLabels!==null&&k.add(V.dataLabels),V.totalDataLabels&&k.add(V.totalDataLabels),d.add(k),v&&d.add(v),C&&d.add(C)}return d}drawBarPaths({indexes:e,barHeight:t,strokeWidth:r,zeroW:o,x:s,y:i,yDivision:l,elSeries:c}){const h=this.w,d=e.i,u=e.j;let p;if(h.axisFlags.isXNumeric)i=(h.seriesData.seriesX[d][u]-h.globals.minX)/this.invertedXRatio-t,p=i+t*this.visibleI;else if(h.config.plotOptions.bar.hideZeroBarsWhenGrouped){const{nonZeroColumns:g,zeroEncounters:m}=this.barHelpers.getZeroValueEncounters({i:d,j:u});g>0&&(t=this.seriesLen*t/g),p=i+t*this.visibleI,p-=t*m}else p=i+t*this.visibleI;if(this.isFunnel){const g=o??0;o=g-(this.barHelpers.getXForValue(this.series[d][u],g)-g)/2}s=this.barHelpers.getXForValue(this.series[d][u],o??0);const f=this.barHelpers.getBarpaths({barYPosition:p,barHeight:t,x1:o,x2:s,strokeWidth:r,isReversed:this.isReversed,series:this.series,realIndex:e.realIndex,i:d,j:u,w:h});return h.axisFlags.isXNumeric||(i=i+l),this.barHelpers.barBackground({j:u,i:d,y1:p-t*this.visibleI,y2:t*this.seriesLen,elSeries:c}),{pathTo:f.pathTo,pathFrom:f.pathFrom,x1:o,x:s,y:i,goalX:this.barHelpers.getGoalValues("x",o,null,d,u,0),barYPosition:p,barHeight:t}}drawColumnPaths({indexes:e,x:t,y:r,xDivision:o,barWidth:s,zeroH:i,strokeWidth:l,elSeries:c}){const h=this.w,d=e.realIndex,u=e.translationsIndex,p=e.i,f=e.j,g=e.bc;let m;if(h.axisFlags.isXNumeric){const w=this.getBarXForNumericXAxis({x:t,j:f,realIndex:d,barWidth:s});t=w.x,m=w.barXPosition}else if(h.config.plotOptions.bar.hideZeroBarsWhenGrouped){const{nonZeroColumns:w,zeroEncounters:b}=this.barHelpers.getZeroValueEncounters({i:p,j:f});w>0&&(s=this.seriesLen*s/w),m=t+s*this.visibleI,m-=s*b}else m=t+s*this.visibleI;r=this.barHelpers.getYForValue(this.series[p][f],i,u);const x=this.barHelpers.getColumnPaths({barXPosition:m,barWidth:s,y1:i,y2:r,strokeWidth:l,isReversed:this.isReversed,series:this.series,realIndex:d,i:p,j:f,w:h});return h.axisFlags.isXNumeric||(t=t+o),this.barHelpers.barBackground({bc:g,j:f,i:p,x1:m-l/2-s*this.visibleI,x2:s*this.seriesLen+l/2,elSeries:c}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:t,y:r,goalY:this.barHelpers.getGoalValues("y",null,i,p,f,u),barXPosition:m,barWidth:s}}getBarXForNumericXAxis({x:e,barWidth:t,realIndex:r,j:o}){const s=this.w;let i=r;return s.seriesData.seriesX[r].length||(i=s.globals.maxValsInArrayIndex),U.isNumber(s.seriesData.seriesX[i][o])&&(e=(s.seriesData.seriesX[i][o]-s.globals.minX)/this.xRatio-t*this.seriesLen/2),{barXPosition:e+t*this.visibleI,x:e}}getPreviousPath(e,t){const r=this.w;let o="M 0 0";for(let s=0;s<r.globals.previousPaths.length;s++){const i=r.globals.previousPaths[s];i.paths&&i.paths.length>0&&parseInt(i.realIndex,10)===parseInt(String(e),10)&&typeof r.globals.previousPaths[s].paths[t]<"u"&&(o=r.globals.previousPaths[s].paths[t].d)}return o}}class YB extends An{draw(e,t){const r=this.w;this.graphics=new ce(this.w),this.bar=new An(this.w,this.ctx,this.xyRatios);const o=new Nt(this.w);e=o.getLogSeries(e),this.yRatio=o.getLogYRatios(this.yRatio),this.barHelpers.initVariables(e),r.config.chart.stackType==="100%"&&(e=r.globals.comboCharts?t.map(c=>r.globals.seriesPercent[c]):r.globals.seriesPercent.slice()),this.series=e,this.barHelpers.initializeStackedPrevVars(this);const s=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"});let i=0,l=0;for(let c=0,h=0;c<e.length;c++,h++){const d=r.globals.comboCharts?t[c]:c,{groupIndex:u,columnGroupIndex:p}=this.barHelpers.getGroupIndex(d);this.groupCtx=this[r.labelData.seriesGroups[u]];const f=[],g=[];let m=0;this.yRatio.length>1&&(this.yaxisIndex=r.globals.seriesYAxisReverseMap[d][0],m=d),this.isReversed=r.config.yaxis[this.yaxisIndex]&&r.config.yaxis[this.yaxisIndex].reversed;let x=this.graphics.group({class:"apexcharts-series",seriesName:U.escapeString(r.seriesData.seriesNames[d]),rel:c+1,"data:realIndex":d});Lt.addCollapsedClassToSeries(this.w,x,d);const w=this.graphics.group({class:"apexcharts-datalabels","data:realIndex":d}),b=this.graphics.group({class:"apexcharts-bar-goals-markers"}),y=this.initialPositions(i,l,void 0,void 0,void 0,void 0,m),{xDivision:k,yDivision:v,zeroH:C,zeroW:A}=y;let B=y.barHeight,E=y.barWidth;l=y.y,i=y.x,r.globals.barHeight=B,r.globals.barWidth=E,this.barHelpers.initializeStackedXYVars(this),this.groupCtx.prevY.length===1&&this.groupCtx.prevY[0].every(S=>isNaN(S))&&(this.groupCtx.prevY[0]=this.groupCtx.prevY[0].map(()=>C),this.groupCtx.prevYF[0]=this.groupCtx.prevYF[0].map(()=>0));for(let S=0;S<r.globals.dataPoints;S++){const D=this.barHelpers.getStrokeWidth(c,S,d),M={indexes:{i:c,j:S,realIndex:d,translationsIndex:m,bc:h},strokeWidth:D,x:i,y:l,elSeries:x,columnGroupIndex:p,seriesGroup:r.labelData.seriesGroups[u]};let L=null;this.isHorizontal?(L=this.drawStackedBarPaths(je(Ve({},M),{zeroW:A,barHeight:B,yDivision:v})),E=this.series[c][S]/this.invertedYRatio):(L=this.drawStackedColumnPaths(je(Ve({},M),{xDivision:k,barWidth:E,zeroH:C})),B=this.series[c][S]/this.yRatio[m]);const V=this.barHelpers.drawGoalLine({barXPosition:L.barXPosition,barYPosition:L.barYPosition,goalX:L.goalX,goalY:L.goalY,barHeight:B,barWidth:E});V&&b.add(V),l=L.y,i=L.x,f.push(i),g.push(l);const N=this.barHelpers.getPathFillColor(e,c,S,d);let T="";const I=r.globals.isBarHorizontal?"apexcharts-flip-x":"apexcharts-flip-y";(this.barHelpers.arrBorderRadius[d][S]==="bottom"&&r.seriesData.series[d][S]>0||this.barHelpers.arrBorderRadius[d][S]==="top"&&r.seriesData.series[d][S]<0)&&(T=I),x=this.renderSeries(je(Ve({realIndex:d,pathFill:N.color},N.useRangeColor?{lineFill:N.color}:{}),{j:S,i:c,columnGroupIndex:p,pathFrom:L.pathFrom,pathTo:L.pathTo,strokeWidth:D,elSeries:x,x:i,y:l,series:e,barHeight:B,barWidth:E,elDataLabelsWrap:w,elGoalsMarkers:b,type:"bar",visibleSeries:p,classes:T}))}r.globals.seriesXvalues[d]=f,r.globals.seriesYvalues[d]=g,this.groupCtx.prevY.push(this.groupCtx.yArrj),this.groupCtx.prevYF.push(this.groupCtx.yArrjF),this.groupCtx.prevYVal.push(this.groupCtx.yArrjVal),this.groupCtx.prevX.push(this.groupCtx.xArrj),this.groupCtx.prevXF.push(this.groupCtx.xArrjF),this.groupCtx.prevXVal.push(this.groupCtx.xArrjVal),s.add(x)}return s}initialPositions(e,t,r,o,s,i,l){const c=this.w;let h,d;if(this.isHorizontal){o=c.layout.gridHeight/c.globals.dataPoints;const p=c.config.plotOptions.bar.barHeight;String(p).indexOf("%")===-1?h=parseInt(p,10):h=o*parseInt(p,10)/100,i=c.globals.padHorizontal+(this.isReversed?c.layout.gridWidth-this.baseLineInvertedY:this.baseLineInvertedY),t=(o-h)/2}else{r=c.layout.gridWidth/c.globals.dataPoints,d=r;const p=c.config.plotOptions.bar.columnWidth;c.axisFlags.isXNumeric&&c.globals.dataPoints>1?(r=c.globals.minXDiff/this.xRatio,d=r*parseInt(this.barOptions.columnWidth,10)/100):String(p).indexOf("%")===-1?d=parseInt(p,10):d*=parseInt(p,10)/100,this.isReversed?s=this.baseLineY[l]:s=c.layout.gridHeight-this.baseLineY[l],e=c.globals.padHorizontal+(r-d)/2}const u=c.globals.barGroups.length||1;return{x:e,y:t,yDivision:o,xDivision:r,barHeight:(h??0)/u,barWidth:(d??0)/u,zeroH:s,zeroW:i}}drawStackedBarPaths({indexes:e,barHeight:t,strokeWidth:r,zeroW:o,x:s,y:i,columnGroupIndex:l,seriesGroup:c,yDivision:h,elSeries:d}){var u,p,f,g,m;const x=this.w,w=i+l*t;let b;const y=e.i,k=e.j,v=e.realIndex,C=e.translationsIndex;let A=0;for(let S=0;S<this.groupCtx.prevXF.length;S++)A=A+this.groupCtx.prevXF[S][k];let B=y;if(x.config.series[v].name&&(B=c.indexOf(x.config.series[v].name)),B>0){let S=o;this.groupCtx.prevXVal[B-1][k]<0?S=((u=this.series[y])==null?void 0:u[k])>=0?this.groupCtx.prevX[B-1][k]+A-(this.isReversed?A:0)*2:this.groupCtx.prevX[B-1][k]:this.groupCtx.prevXVal[B-1][k]>=0&&(S=((p=this.series[y])==null?void 0:p[k])>=0?this.groupCtx.prevX[B-1][k]:this.groupCtx.prevX[B-1][k]-A+(this.isReversed?A:0)*2),b=S}else b=o;((f=this.series[y])==null?void 0:f[k])===null?s=b:s=b+((g=this.series[y])==null?void 0:g[k])/this.invertedYRatio-(this.isReversed?((m=this.series[y])==null?void 0:m[k])/this.invertedYRatio:0)*2;const E=this.barHelpers.getBarpaths({barYPosition:w,barHeight:t,x1:b,x2:s,strokeWidth:r,isReversed:this.isReversed,series:this.series,realIndex:e.realIndex,seriesGroup:c,i:y,j:k,w:x});return this.barHelpers.barBackground({j:k,i:y,y1:w,y2:t,elSeries:d}),i=i+h,{pathTo:E.pathTo,pathFrom:E.pathFrom,goalX:this.barHelpers.getGoalValues("x",o,null,y,k,C),barXPosition:b,barYPosition:w,x:s,y:i}}drawStackedColumnPaths({indexes:e,x:t,y:r,xDivision:o,barWidth:s,zeroH:i,columnGroupIndex:l,seriesGroup:c,elSeries:h}){var d,u,p,f,g,m,x,w,b;const y=this.w,k=e.i,v=e.j,C=e.bc,A=e.realIndex,B=e.translationsIndex;if(y.axisFlags.isXNumeric){let V=y.seriesData.seriesX[A][v];V||(V=0),t=(V-y.globals.minX)/this.xRatio-s/2*y.globals.barGroups.length}const E=t+l*s;let S,D=0;for(let V=0;V<this.groupCtx.prevYF.length;V++)D=D+(isNaN(this.groupCtx.prevYF[V][v])?0:this.groupCtx.prevYF[V][v]);let M=k;if(c&&(M=c.indexOf(y.seriesData.seriesNames[A])),M>0&&!y.axisFlags.isXNumeric||M>0&&y.axisFlags.isXNumeric&&y.seriesData.seriesX[A-1][v]===y.seriesData.seriesX[A][v]){let V,N;const T=Math.min(this.yRatio.length+1,A+1);if(this.groupCtx.prevY[M-1]!==void 0&&this.groupCtx.prevY[M-1].length){for(let I=1;I<T;I++)if(!isNaN((d=this.groupCtx.prevY[M-I])==null?void 0:d[v])){N=this.groupCtx.prevY[M-I][v];break}}for(let I=1;I<T;I++)if(((u=this.groupCtx.prevYVal[M-I])==null?void 0:u[v])<0){V=((p=this.series[k])==null?void 0:p[v])>=0?N-D+(this.isReversed?D:0)*2:N;break}else if(((f=this.groupCtx.prevYVal[M-I])==null?void 0:f[v])>=0){V=((g=this.series[k])==null?void 0:g[v])>=0?N:N+D-(this.isReversed?D:0)*2;break}typeof V>"u"&&(V=y.layout.gridHeight),(m=this.groupCtx.prevYF[0])!=null&&m.every(I=>I===0)&&this.groupCtx.prevYF.slice(1,M).every(I=>I.every(Z=>isNaN(Z)))?S=i:S=V}else S=i;(x=this.series[k])!=null&&x[v]?r=S-((w=this.series[k])==null?void 0:w[v])/this.yRatio[B]+(this.isReversed?((b=this.series[k])==null?void 0:b[v])/this.yRatio[B]:0)*2:r=S;const L=this.barHelpers.getColumnPaths({barXPosition:E,barWidth:s,y1:S,y2:r,yRatio:this.yRatio[B],strokeWidth:this.strokeWidth,isReversed:this.isReversed,series:this.series,seriesGroup:c,realIndex:e.realIndex,i:k,j:v,w:y});return this.barHelpers.barBackground({bc:C,j:v,i:k,x1:E,x2:s,elSeries:h}),{pathTo:L.pathTo,pathFrom:L.pathFrom,goalY:this.barHelpers.getGoalValues("y",null,i,k,v,0),barXPosition:E,x:y.axisFlags.isXNumeric?t:t+o,y:r}}}class fp extends An{draw(e,t,r){const o=this.w,s=new ce(this.w),i=o.globals.comboCharts?t:o.config.chart.type,l=new Ia(this.w);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=o.config.plotOptions.bar.horizontal,this.isOHLC=this.candlestickOptions&&this.candlestickOptions.type==="ohlc",this.coreUtils=new Nt(this.w),e=this.coreUtils.getLogSeries(e),this.series=e,this.yRatio=this.coreUtils.getLogYRatios(this.yRatio),this.barHelpers.initVariables(e);const c=s.group({class:`apexcharts-${i}-series apexcharts-plot-series`});for(let h=0;h<e.length;h++){this.isBoxPlot=o.config.chart.type==="boxPlot"||o.config.series[h].type==="boxPlot";let d,u;const p=[],f=[],g=o.globals.comboCharts?r[h]:h,{columnGroupIndex:m}=this.barHelpers.getGroupIndex(g),x=s.group({class:"apexcharts-series",seriesName:U.escapeString(o.seriesData.seriesNames[g]),rel:h+1,"data:realIndex":g});Lt.addCollapsedClassToSeries(this.w,x,g),e[h].length>0&&(this.visibleI=this.visibleI+1);let w=0;this.yRatio.length>1&&(this.yaxisIndex=o.globals.seriesYAxisReverseMap[g][0],w=g);const b=this.barHelpers.initialPositions(g),{y,barHeight:k,yDivision:v,zeroW:C,x:A,barWidth:B,xDivision:E,zeroH:S}=b;u=y,d=A,f.push(d+(B??0)/2);const D=s.group({class:"apexcharts-datalabels","data:realIndex":g}),M=s.group({class:"apexcharts-bar-goals-markers"});for(let L=0;L<o.globals.dataPoints;L++){const V=this.barHelpers.getStrokeWidth(h,L,g);let N=null;const T={indexes:{i:h,j:L,realIndex:g,translationsIndex:w},x:d,y:u,strokeWidth:V,elSeries:x};this.isHorizontal?N=this.drawHorizontalBoxPaths(je(Ve({},T),{yDivision:v,barHeight:k,zeroW:C})):N=this.drawVerticalBoxPaths(je(Ve({},T),{xDivision:E,barWidth:B,zeroH:S})),u=N.y,d=N.x;const I=this.barHelpers.drawGoalLine({barXPosition:N.barXPosition,barYPosition:N.barYPosition,goalX:N.goalX,goalY:N.goalY,barHeight:k,barWidth:B});I&&M.add(I),L>0&&f.push(d+(B??0)/2),p.push(u),N.pathTo.forEach((Z,_)=>{const W=!this.isBoxPlot&&this.candlestickOptions.wick.useFillColor?N.color[_]:o.globals.stroke.colors[h],$=l.fillPath({seriesNumber:g,dataPointIndex:L,color:N.color[_],value:e[h][L]});this.renderSeries({realIndex:g,pathFill:$,lineFill:W,j:L,i:h,pathFrom:N.pathFrom,pathTo:Z,strokeWidth:V,elSeries:x,x:d,y:u,series:e,columnGroupIndex:m,barHeight:k,barWidth:B,elDataLabelsWrap:D,elGoalsMarkers:M,visibleSeries:this.visibleI,type:o.config.chart.type})})}o.globals.seriesXvalues[g]=f,o.globals.seriesYvalues[g]=p,c.add(x)}return c}drawVerticalBoxPaths({indexes:e,x:t,xDivision:r,barWidth:o,zeroH:s,strokeWidth:i}){var l,c;const h=this.w,d=new ce(this.w),u=e.i,p=e.j,{colors:f}=h.config.plotOptions.candlestick,{colors:g}=this.boxOptions,m=e.realIndex,x=V=>Array.isArray(V)?V[m]:V,w=x(f.upward),b=x(f.downward),y=this.yRatio[e.translationsIndex],k=this.getOHLCValue(m,p);let v=s,C=s,A=k.o<k.c?[w]:[b];this.isBoxPlot&&(A=[x(g.lower),x(g.upper)]);let B=Math.min(k.o,k.c),E=Math.max(k.o,k.c),S=k.m;h.axisFlags.isXNumeric&&(t=(h.seriesData.seriesX[m][p]-h.globals.minX)/this.xRatio-o/2);const D=t+o*this.visibleI;typeof((l=this.series[u])==null?void 0:l[p])>"u"||((c=this.series[u])==null?void 0:c[p])===null?(B=s,E=s):(B=s-B/y,E=s-E/y,v=s-k.h/y,C=s-k.l/y,S=s-k.m/y);let M,L=d.move(D+o/2,B);if(h.globals.previousPaths.length>0&&(L=this.getPreviousPath(m,p)),this.isOHLC){const V=D+o/2,N=s-k.o/y,T=s-k.c/y;M=[d.move(V,v)+d.line(V,C)+d.move(V,N)+d.line(D,N)+d.move(V,T)+d.line(D+o,T)]}else this.isBoxPlot?M=[d.move(D,B)+d.line(D+o/2,B)+d.line(D+o/2,v)+d.line(D+o/4,v)+d.line(D+o-o/4,v)+d.line(D+o/2,v)+d.line(D+o/2,B)+d.line(D+o,B)+d.line(D+o,S)+d.line(D,S)+d.line(D,B+i/2),d.move(D,S)+d.line(D+o,S)+d.line(D+o,E)+d.line(D+o/2,E)+d.line(D+o/2,C)+d.line(D+o-o/4,C)+d.line(D+o/4,C)+d.line(D+o/2,C)+d.line(D+o/2,E)+d.line(D,E)+d.line(D,S)+"z"]:M=[d.move(D,E)+d.line(D+o/2,E)+d.line(D+o/2,v)+d.line(D+o/2,E)+d.line(D+o,E)+d.line(D+o,B)+d.line(D+o/2,B)+d.line(D+o/2,C)+d.line(D+o/2,B)+d.line(D,B)+d.line(D,E-i/2)];return L=L+d.move(D,B),h.axisFlags.isXNumeric||(t=t+r),{pathTo:M,pathFrom:L,x:t,y:E,goalY:this.barHelpers.getGoalValues("y",null,s,u,p,e.translationsIndex),barXPosition:D,color:A}}drawHorizontalBoxPaths({indexes:e,y:t,yDivision:r,barHeight:o,zeroW:s,strokeWidth:i}){var l,c;const h=this.w,d=new ce(this.w),u=e.i,p=e.j,f=e.realIndex,{colors:g}=h.config.plotOptions.candlestick,{colors:m}=this.boxOptions,x=M=>Array.isArray(M)?M[f]:M,w=this.invertedYRatio,b=this.getOHLCValue(f,p);let y=b.o<b.c?[x(g.upward)]:[x(g.downward)];this.isBoxPlot&&(y=[x(m.lower),x(m.upper)]);let k=s,v=s,C=Math.min(b.o,b.c),A=Math.max(b.o,b.c),B=b.m;h.axisFlags.isXNumeric&&(t=(h.seriesData.seriesX[f][p]-h.globals.minX)/this.invertedXRatio-o/2);const E=t+o*this.visibleI;typeof((l=this.series[u])==null?void 0:l[p])>"u"||((c=this.series[u])==null?void 0:c[p])===null?(C=s,A=s):(C=s+C/w,A=s+A/w,k=s+b.h/w,v=s+b.l/w,B=s+b.m/w);let S=d.move(C,E+o/2);h.globals.previousPaths.length>0&&(S=this.getPreviousPath(f,p));const D=[d.move(C,E)+d.line(C,E+o/2)+d.line(k,E+o/2)+d.line(k,E+o/2-o/4)+d.line(k,E+o/2+o/4)+d.line(k,E+o/2)+d.line(C,E+o/2)+d.line(C,E+o)+d.line(B,E+o)+d.line(B,E)+d.line(C+i/2,E),d.move(B,E)+d.line(B,E+o)+d.line(A,E+o)+d.line(A,E+o/2)+d.line(v,E+o/2)+d.line(v,E+o-o/4)+d.line(v,E+o/4)+d.line(v,E+o/2)+d.line(A,E+o/2)+d.line(A,E)+d.line(B,E)+"z"];return S=S+d.move(C,E),h.axisFlags.isXNumeric||(t=t+r),{pathTo:D,pathFrom:S,x:A,y:t,goalX:this.barHelpers.getGoalValues("x",s,null,u,p,0),barYPosition:E,color:y}}getOHLCValue(e,t){const r=this.w,o=this.coreUtils,s=u=>u[e]&&u[e][t]!=null?o.getLogValAtSeriesIndex(u[e][t],e):0,i=s(r.candleData.seriesCandleH),l=s(r.candleData.seriesCandleO),c=s(r.candleData.seriesCandleM),h=s(r.candleData.seriesCandleC),d=s(r.candleData.seriesCandleL);return{o:this.isBoxPlot?i:l,h:this.isBoxPlot?l:i,m:c,l:this.isBoxPlot?h:d,c:this.isBoxPlot?d:h}}}class mp{constructor(e,t){this.ctx=t,this.w=e}checkColorRange(){const e=this.w;let t=!1;const r=e.config.plotOptions[e.config.chart.type];return r.colorScale.ranges.length>0&&r.colorScale.ranges.map(o=>{o.from<=0&&(t=!0)}),t}getShadeColor(e,t,r,o){const s=this.w;let i=1;const l=s.config.plotOptions[e].shadeIntensity,c=this.determineColor(e,t,r);s.globals.hasNegs||o?s.config.plotOptions[e].reverseNegativeShade?c.percent<0?i=c.percent/100*(l*1.25):i=(1-c.percent/100)*(l*1.25):c.percent<=0?i=1-(1+c.percent/100)*l:i=(1-c.percent/100)*l:(i=1-c.percent/100,e==="treemap"&&(i=(1-c.percent/100)*(l*1.25)));let h=c.color;const d=new U;if(s.config.plotOptions[e].enableShades)if(this.w.config.theme.mode==="dark"){const u=d.shadeColor(i*-1,c.color);h=U.hexToRgba(U.isColorHex(u)?u:U.rgb2hex(u),s.config.fill.opacity)}else{const u=d.shadeColor(i,c.color);h=U.hexToRgba(U.isColorHex(u)?u:U.rgb2hex(u),s.config.fill.opacity)}return{color:h,colorProps:c}}determineColor(e,t,r){const o=this.w,s=o.seriesData.series[t][r],i=o.config.plotOptions[e];let l=i.colorScale.inverse?r:t;i.distributed&&o.config.chart.type==="treemap"&&(l=r);let c=o.globals.colors[l],h=null,d=Math.min(...o.seriesData.series[t]),u=Math.max(...o.seriesData.series[t]);!i.distributed&&e==="heatmap"&&(d=o.globals.minY,u=o.globals.maxY),typeof i.colorScale.min<"u"&&(d=i.colorScale.min<o.globals.minY?i.colorScale.min:o.globals.minY,u=i.colorScale.max>o.globals.maxY?i.colorScale.max:o.globals.maxY);const p=Math.abs(u)+Math.abs(d);let f=100*s/(p===0?p-1e-6:p);return i.colorScale.ranges.length>0&&i.colorScale.ranges.map(m=>{if(s>=m.from&&s<=m.to){c=m.color,h=m.foreColor?m.foreColor:null,d=m.from,u=m.to;const x=Math.abs(u)+Math.abs(d);f=100*s/(x===0?x-1e-6:x)}}),{color:c,foreColor:h,percent:f}}calculateDataLabels({text:e,x:t,y:r,i:o,j:s,colorProps:i,fontSize:l}){const h=this.w.config.dataLabels,d=new ce(this.w),u=new Eo(this.w,this.ctx);let p=null;if(h.enabled){p=d.group({class:"apexcharts-data-labels"});const f=h.offsetX,g=h.offsetY,m=t+f,x=r+parseFloat(h.style.fontSize)/3+g;u.plotDataLabelsText({x:m,y:x,text:e,i:o,j:s,color:i.foreColor,parent:p,fontSize:l,dataLabelsConfig:h})}return p}}class $B{constructor(e,t,r){this.ctx=t,this.w=e,this.xRatio=r.xRatio,this.yRatio=r.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new mp(e,t),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}draw(e){const t=this.w,r=new ce(this.w,this.ctx),o=r.group({class:"apexcharts-heatmap"});o.attr("clip-path",`url(#gridRectMask${t.globals.cuid})`);const s=t.layout.gridWidth/t.globals.dataPoints,i=t.layout.gridHeight/t.seriesData.series.length;let l=0,c=!1;this.negRange=this.helpers.checkColorRange();const h=e.slice();t.config.yaxis[0].reversed&&(c=!0,h.reverse());for(let u=c?0:h.length-1;c?u<h.length:u>=0;c?u++:u--){const p=r.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:U.escapeString(t.seriesData.seriesNames[u]),rel:u+1,"data:realIndex":u});if(Lt.addCollapsedClassToSeries(this.w,p,u),r.setupEventDelegation(p,".apexcharts-heatmap-rect"),t.config.chart.dropShadow.enabled){const x=t.config.chart.dropShadow;new _t(this.w).dropShadow(p,x,u)}let f=0;const g=t.config.plotOptions.heatmap.shadeIntensity;let m=0;for(let x=0;x<t.globals.dataPoints;x++){if(t.seriesData.seriesX.length&&!t.globals.allSeriesHasEqualX&&t.globals.minX+t.globals.minXDiff*x<t.seriesData.seriesX[u][m]){f=f+s;continue}if(m>=h[u].length)break;const w=this.helpers.getShadeColor(t.config.chart.type,u,m,this.negRange);let b=w.color;const y=w.colorProps;t.config.fill.type==="image"&&(b=new Ia(this.w).fillPath({seriesNumber:u,dataPointIndex:m,opacity:t.globals.hasNegs?y.percent<0?1-(1+y.percent/100):g+y.percent/100:y.percent/100,patternID:U.randomId(),width:t.config.fill.image.width?t.config.fill.image.width:s,height:t.config.fill.image.height?t.config.fill.image.height:i}));const k=this.rectRadius,v=r.drawRect(f,l,s,i,k);if(v.attr({cx:f,cy:l}),v.node.classList.add("apexcharts-heatmap-rect"),p.add(v),v.attr({fill:b,i:u,index:u,j:m,val:e[u][m],"stroke-width":this.strokeWidth,stroke:t.config.plotOptions.heatmap.useFillColorAsStroke?b:t.globals.stroke.colors[0],color:b}),t.config.chart.animations.enabled&&!t.globals.dataChanged){let E=1;t.globals.resized||(E=t.config.chart.animations.speed),this.animateHeatMap(v,f,l,s,i,E)}if(t.globals.dataChanged){let E=1;if(this.dynamicAnim.enabled&&t.globals.shouldAnimate){E=this.dynamicAnim.speed;let S=t.globals.previousPaths[u]&&t.globals.previousPaths[u][m]&&t.globals.previousPaths[u][m].color;S||(S="rgba(255, 255, 255, 0)"),this.animateHeatColor(v,U.isColorHex(S)?S:U.rgb2hex(S),U.isColorHex(b)?b:U.rgb2hex(b),E)}}const C=t.config.dataLabels.formatter,A=C(t.seriesData.series[u][m],{value:t.seriesData.series[u][m],seriesIndex:u,dataPointIndex:m,w:t}),B=this.helpers.calculateDataLabels({text:A,x:f+s/2,y:l+i/2,i:u,j:m,colorProps:y,series:h});B!==null&&p.add(B),f=f+s,m++}l=l+i,o.add(p)}const d=t.globals.yAxisScale[0].result.slice();return t.config.yaxis[0].reversed?d.unshift(""):d.push(""),t.globals.yAxisScale[0].result=d,o}animateHeatMap(e,t,r,o,s,i){const l=new vn(this.w);l.animateRect(e,{x:t+o/2,y:r+s/2,width:0,height:0},{x:t,y:r,width:o,height:s},i,()=>{l.animationCompleted(e)})}animateHeatColor(e,t,r,o){e.attr({fill:t}).animate(o).attr({fill:r})}}class WB{constructor(e){this.w=e.w,this.lineCtx=e}sameValueSeriesFix(e,t){const r=this.w;if((r.config.fill.type==="gradient"||r.config.fill.type[e]==="gradient")&&new Nt(this.lineCtx.w).seriesHaveSameValues(e)){const s=t[e].slice();s[s.length-1]=s[s.length-1]+1e-6,t[e]=s}return t}calculatePoints({series:e,realIndex:t,x:r,y:o,i:s,j:i,prevY:l}){const c=this.w,h=[],d=[];let u=this.lineCtx.categoryAxisCorrection+c.config.markers.offsetX;return c.axisFlags.isXNumeric&&(u=(c.seriesData.seriesX[t][0]-c.globals.minX)/this.lineCtx.xRatio+c.config.markers.offsetX),i===0&&(h.push(u),d.push(U.isNumber(e[s][0])?l+c.config.markers.offsetY:null)),h.push(r+c.config.markers.offsetX),d.push(U.isNumber(e[s][i+1])?o+c.config.markers.offsetY:null),{x:h,y:d}}checkPreviousPaths({pathFromLine:e,pathFromArea:t,realIndex:r}){const o=this.w;for(let s=0;s<o.globals.previousPaths.length;s++){const i=o.globals.previousPaths[s];(i.type==="line"||i.type==="area")&&i.paths.length>0&&parseInt(i.realIndex,10)===parseInt(r,10)&&(i.type==="line"?(this.lineCtx.appendPathFrom=!1,e=o.globals.previousPaths[s].paths[0].d):i.type==="area"&&(this.lineCtx.appendPathFrom=!1,t=o.globals.previousPaths[s].paths[0].d,o.config.stroke.show&&o.globals.previousPaths[s].paths[1]&&(e=o.globals.previousPaths[s].paths[1].d)))}return{pathFromLine:e,pathFromArea:t}}determineFirstPrevY({i:e,realIndex:t,series:r,prevY:o,lineYPosition:s,translationsIndex:i}){var l,c,h;const d=this.w,u=d.config.chart.stacked&&!d.globals.comboCharts||d.config.chart.stacked&&d.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||((l=this.w.config.series[t])==null?void 0:l.type)==="bar"||((c=this.w.config.series[t])==null?void 0:c.type)==="column");if(typeof((h=r[e])==null?void 0:h[0])<"u")u?e>0?s=this.lineCtx.prevSeriesY[e-1][0]:s=this.lineCtx.zeroY:s=this.lineCtx.zeroY,o=s-r[e][0]/this.lineCtx.yRatio[i]+(this.lineCtx.isReversed?r[e][0]/this.lineCtx.yRatio[i]:0)*2;else if(u&&e>0&&typeof r[e][0]>"u"){for(let p=e-1;p>=0;p--)if(r[p][0]!==null&&typeof r[p][0]<"u"){s=this.lineCtx.prevSeriesY[p][0],o=s;break}}return{prevY:o,lineYPosition:s}}}const jB=n=>{const e=GB(n),t=n.length-1,r=1e-6,o=[];let s,i,l,c;for(let h=0;h<t;h++)l=J0(n[h],n[h+1]),Math.abs(l)<r?e[h]=e[h+1]=0:(s=e[h]/l,i=e[h+1]/l,c=s*s+i*i,c>9&&(c=l*3/Math.sqrt(c),e[h]=c*s,e[h+1]=c*i));for(let h=0;h<=t;h++)c=(n[Math.min(t,h+1)][0]-n[Math.max(0,h-1)][0])/(6*(1+e[h]*e[h])),o.push([c||0,e[h]*c||0]);return o},UB=n=>{let e="";for(let t=0;t<n.length;t++){const r=n[t],o=r.length;o>4?(e+=`C${r[0]}, ${r[1]}`,e+=`, ${r[2]}, ${r[3]}`,e+=`, ${r[4]}, ${r[5]}`):o>2&&(e+=`S${r[0]}, ${r[1]}`,e+=`, ${r[2]}, ${r[3]}`)}return e},gp={points(n){const e=jB(n),t=n[1],r=n[0],o=[],s=e[1],i=e[0];o.push(r,[r[0]+i[0],r[1]+i[1],t[0]-s[0],t[1]-s[1],t[0],t[1]]);for(let l=2,c=e.length;l<c;l++){const h=n[l],d=e[l];o.push([h[0]-d[0],h[1]-d[1],h[0],h[1]])}return o},slice(n,e,t){const r=n.slice(e,t);if(e){if(t-e>1&&r[1].length<6){const o=r[0].length;r[1]=[r[0][o-2]*2-r[0][o-4],r[0][o-1]*2-r[0][o-3]].concat(r[1])}r[0]=r[0].slice(-2)}return r}};function J0(n,e){return(e[1]-n[1])/(e[0]-n[0])}function GB(n){const e=[];let t=n[0],r=n[1],o=e[0]=J0(t,r),s=1;for(let i=n.length-1;s<i;s++)t=r,r=n[s+1],e[s]=(o+(o=J0(t,r)))*.5;return e[s]=o,e}class Ls{constructor(e,t,r,o){this.ctx=t,this.w=e,this.xyRatios=r,this.xRatio=0,this.yRatio=[],this.zRatio=0,this.baseLineY=[],this.pointsChart=!(this.w.config.chart.type!=="bubble"&&this.w.config.chart.type!=="scatter")||o,this.scatter=new Gu(this.w,this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new WB(this),this.markers=new Cn(this.w,this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0,this.xDivision=0,this.zeroY=0,this.areaBottomY=0,this.strokeWidth=0,this.isReversed=!1,this.appendPathFrom=!1,this.elSeries=null,this.elPointsMain=null,this.elDataLabelsWrap=null}draw(e,t,r,o){var s;const i=this.w,l=new ce(this.w),c=i.globals.comboCharts?t:i.config.chart.type,h=l.group({class:`apexcharts-${c}-series apexcharts-plot-series`}),d=new Nt(this.w);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,e=d.getLogSeries(e),this.yRatio=d.getLogYRatios(this.yRatio),this.prevSeriesY=[];const u=[];for(let p=0;p<e.length;p++){e=this.lineHelpers.sameValueSeriesFix(p,e);const f=i.globals.comboCharts?r[p]:p,g=this.yRatio.length>1?f:0;this._initSerieVariables(e,p,f);const m=[],x=[],w=[];let b=i.globals.padHorizontal+this.categoryAxisCorrection;const y=1,k=[],v=[];Lt.addCollapsedClassToSeries(this.w,this.elSeries,f),i.axisFlags.isXNumeric&&i.seriesData.seriesX.length>0&&(b=(i.seriesData.seriesX[f][0]-i.globals.minX)/this.xRatio),w.push(b);const C=b;let A;const B=C;let E=this.zeroY,S=this.zeroY;const D=0;E=this.lineHelpers.determineFirstPrevY({i:p,realIndex:f,series:e,prevY:E,lineYPosition:D,translationsIndex:g}).prevY,i.config.stroke.curve==="monotoneCubic"&&e[p][0]===null?m.push(null):m.push(E);const L=E;let V;c==="rangeArea"&&(V=this.lineHelpers.determineFirstPrevY({i:p,realIndex:f,series:o,prevY:S,lineYPosition:D,translationsIndex:g}),S=V.prevY,A=S,x.push(m[0]!==null?S:null));const N=this._calculatePathsFrom({type:c,series:e,i:p,realIndex:f,translationsIndex:g,prevX:B,prevY:E,prevY2:S}),T=[m[0]],I=[x[0]],Z={type:c,series:e,realIndex:f,translationsIndex:g,i:p,x:b,y,pX:C,pY:L,pathsFrom:N,linePaths:k,areaPaths:v,seriesIndex:r,lineYPosition:D,xArrj:w,yArrj:m,y2Arrj:x,seriesRangeEnd:o},_=this._iterateOverDataPoints(je(Ve({},Z),{iterations:c==="rangeArea"?e[p].length-1:void 0,isRangeStart:!0}));if(c==="rangeArea"){const W=this._calculatePathsFrom({series:o,i:p,realIndex:f,prevX:B,prevY:S}),$=this._iterateOverDataPoints(je(Ve({},Z),{series:o,xArrj:[b],yArrj:T,y2Arrj:I,pY:A,areaPaths:_.areaPaths,pathsFrom:W,iterations:o[p].length-1,isRangeStart:!1})),R=_.linePaths.length/2;for(let J=0;J<R;J++)_.linePaths[J]=$.linePaths[J+R]+_.linePaths[J];_.linePaths.splice(R),_.pathFromLine=$.pathFromLine+_.pathFromLine}else _.pathFromArea+="z";this._handlePaths({type:c,realIndex:f,i:p,paths:_}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),u.push(this.elSeries)}if(typeof((s=i.config.series[0])==null?void 0:s.zIndex)<"u"&&u.sort((p,f)=>Number(p.node.getAttribute("zIndex"))-Number(f.node.getAttribute("zIndex"))),i.config.chart.stacked)for(let p=u.length-1;p>=0;p--)h.add(u[p]);else for(let p=0;p<u.length;p++)h.add(u[p]);return h}_initSerieVariables(e,t,r){const o=this.w,s=new ce(this.w);this.xDivision=o.layout.gridWidth/(o.globals.dataPoints-(o.config.xaxis.tickPlacement==="on"?1:0)),this.strokeWidth=Array.isArray(o.config.stroke.width)?o.config.stroke.width[r]:o.config.stroke.width;let i=0;this.yRatio.length>1&&(this.yaxisIndex=o.globals.seriesYAxisReverseMap[r],i=r),this.isReversed=o.config.yaxis[this.yaxisIndex]&&o.config.yaxis[this.yaxisIndex].reversed,this.zeroY=o.layout.gridHeight-this.baseLineY[i]-(this.isReversed?o.layout.gridHeight:0)+(this.isReversed?this.baseLineY[i]*2:0),this.areaBottomY=this.zeroY,(this.zeroY>o.layout.gridHeight||o.config.plotOptions.area.fillTo==="end")&&(this.areaBottomY=o.layout.gridHeight),this.categoryAxisCorrection=this.xDivision/2;const l=o.config.series[r];if(this.elSeries=s.group({class:"apexcharts-series",zIndex:typeof l.zIndex<"u"?l.zIndex:r,seriesName:U.escapeString(o.seriesData.seriesNames[r])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":r}),o.globals.hasNullValues){const h=this.markers.plotChartMarkers({pointsPos:{x:[0],y:[o.layout.gridHeight+o.globals.markers.largestSize]},seriesIndex:t,j:0,pSize:.1,alwaysDrawMarker:!0,isVirtualPoint:!0});h!==null&&this.elPointsMain.add(h)}this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":r});const c=e[t].length===o.globals.dataPoints;this.elSeries.attr({"data:longestSeries":c,rel:t+1,"data:realIndex":r}),this.appendPathFrom=!0}_calculatePathsFrom({type:e,series:t,i:r,realIndex:o,translationsIndex:s,prevX:i,prevY:l,prevY2:c}){const h=this.w,d=new ce(this.w);let u,p,f,g;if(t[r][0]===null){for(let m=0;m<t[r].length;m++)if(t[r][m]!==null){i=this.xDivision*m,l=this.zeroY-t[r][m]/this.yRatio[s],u=d.move(i,l),p=d.move(i,this.areaBottomY);break}}else u=d.move(i,l),e==="rangeArea"&&(u=d.move(i,c)+d.line(i,l)),p=d.move(i,this.areaBottomY)+d.line(i,l);if(f=d.move(0,this.areaBottomY)+d.line(0,this.areaBottomY),g=d.move(0,this.areaBottomY)+d.line(0,this.areaBottomY),h.globals.previousPaths.length>0){const m=this.lineHelpers.checkPreviousPaths({pathFromLine:f,pathFromArea:g,realIndex:o});f=m.pathFromLine,g=m.pathFromArea}return{prevX:i,prevY:l,linePath:u,areaPath:p,pathFromLine:f,pathFromArea:g}}_handlePaths({type:e,realIndex:t,i:r,paths:o}){const s=this.w,i=new ce(this.w),l=new Ia(this.w);this.prevSeriesY.push(o.yArrj),s.globals.seriesXvalues[t]=o.xArrj,s.globals.seriesYvalues[t]=o.yArrj;const c=s.config.forecastDataPoints;if(c.count>0&&e!=="rangeArea"){const d=s.globals.seriesXvalues[t][s.globals.seriesXvalues[t].length-c.count-1],u=i.drawRect(d,0,s.layout.gridWidth,s.layout.gridHeight,0);s.dom.elForecastMask.appendChild(u.node);const p=i.drawRect(0,0,d,s.layout.gridHeight,0);s.dom.elNonForecastMask.appendChild(p.node)}this.pointsChart||s.globals.delayedElements.push({el:this.elPointsMain.node,index:t});const h={i:r,realIndex:t,animationDelay:r,initialSpeed:s.config.chart.animations.speed,dataChangeSpeed:s.config.chart.animations.dynamicAnimation.speed,className:`apexcharts-${e}`};if(e==="area"){const d=l.fillPath({seriesNumber:t});for(let u=0;u<o.areaPaths.length;u++){const p=i.renderPaths(je(Ve({},h),{pathFrom:o.pathFromArea,pathTo:o.areaPaths[u],stroke:"none",strokeWidth:0,strokeLineCap:null,fill:d}));this.elSeries.add(p)}}if(s.config.stroke.show&&!this.pointsChart){let d=null;if(e==="line")d=l.fillPath({seriesNumber:t,i:r});else if(s.config.stroke.fill.type==="solid")d=s.globals.stroke.colors[t];else{const u=s.config.fill;s.config.fill=s.config.stroke.fill,d=l.fillPath({seriesNumber:t,i:r}),s.config.fill=u}for(let u=0;u<o.linePaths.length;u++){let p=d;e==="rangeArea"&&(p=l.fillPath({seriesNumber:t}));const f=je(Ve({},h),{pathFrom:o.pathFromLine,pathTo:o.linePaths[u],stroke:d,strokeWidth:this.strokeWidth,strokeLineCap:s.config.stroke.lineCap,fill:e==="rangeArea"?p:"none"}),g=i.renderPaths(f);if(this.elSeries.add(g),g.attr("fill-rule","evenodd"),c.count>0&&e!=="rangeArea"){const m=i.renderPaths(f);m.node.setAttribute("stroke-dasharray",c.dashArray),c.strokeWidth&&m.node.setAttribute("stroke-width",c.strokeWidth),this.elSeries.add(m),m.attr("clip-path",`url(#forecastMask${s.globals.cuid})`),g.attr("clip-path",`url(#nonForecastMask${s.globals.cuid})`)}}}}_iterateOverDataPoints({type:e,series:t,iterations:r,realIndex:o,translationsIndex:s,i,x:l,y:c,pX:h,pY:d,pathsFrom:u,linePaths:p,areaPaths:f,seriesIndex:g,lineYPosition:m,xArrj:x,yArrj:w,y2Arrj:b,isRangeStart:y,seriesRangeEnd:k}){var v,C;const A=this.w,B=new ce(this.w),E=this.yRatio;let{prevY:S,linePath:D,areaPath:M,pathFromLine:L,pathFromArea:V}=u;const N=U.isNumber(A.globals.minYArr[o])?A.globals.minYArr[o]:A.globals.minY;r||(r=A.globals.dataPoints>1?A.globals.dataPoints-1:A.globals.dataPoints);const T=(R,J)=>J-R/E[s]+(this.isReversed?R/E[s]:0)*2;let I=c;const Z=A.config.chart.stacked&&!A.globals.comboCharts||A.config.chart.stacked&&A.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||((v=this.w.config.series[o])==null?void 0:v.type)==="bar"||((C=this.w.config.series[o])==null?void 0:C.type)==="column");let _=A.config.stroke.curve;Array.isArray(_)&&(Array.isArray(g)?_=_[g[i]]:_=_[i]);let W=0,$;for(let R=0;R<r&&t[i].length!==0;R++){const J=typeof t[i][R+1]>"u"||t[i][R+1]===null;if(A.axisFlags.isXNumeric){let ee=A.seriesData.seriesX[o][R+1];typeof A.seriesData.seriesX[o][R+1]>"u"&&(ee=A.seriesData.seriesX[o][r-1]),l=(ee-A.globals.minX)/this.xRatio}else l=l+this.xDivision;if(Z)if(i>0&&A.globals.collapsedSeries.length<A.config.series.length-1){const ee=ae=>{for(let he=ae;he>0;he--)if(A.globals.collapsedSeriesIndices.indexOf(g?.[he]||he)>-1)he--;else return he;return 0};m=this.prevSeriesY[ee(i-1)][R+1]}else m=this.zeroY;else m=this.zeroY;J?c=T(N,m):(c=T(t[i][R+1],m),e==="rangeArea"&&(I=T(k[i][R+1],m))),x.push(t[i][R+1]===null?null:l),J&&(A.config.stroke.curve==="smooth"||A.config.stroke.curve==="monotoneCubic")?(w.push(null),b.push(null)):(w.push(c),b.push(I));const ie=this.lineHelpers.calculatePoints({series:t,x:l,y:c,realIndex:o,i,j:R,prevY:S}),ue=this._createPaths({type:e,series:t,i,j:R,x:l,y:c,y2:I,xArrj:x,yArrj:w,y2Arrj:b,pX:h,pY:d,pathState:W,segmentStartX:$,linePath:D,areaPath:M,linePaths:p,areaPaths:f,curve:_,isRangeStart:y});f=ue.areaPaths,p=ue.linePaths,h=ue.pX,d=ue.pY,W=ue.pathState,$=ue.segmentStartX,M=ue.areaPath,D=ue.linePath,this.appendPathFrom&&!A.globals.hasNullValues&&!(_==="monotoneCubic"&&e==="rangeArea")&&(L+=B.line(l,this.areaBottomY),V+=B.line(l,this.areaBottomY)),this.handleNullDataPoints(t,ie,i,R,o),this._handleMarkersAndLabels({type:e,pointsPos:ie,i,j:R,realIndex:o,isRangeStart:y})}return{yArrj:w,xArrj:x,pathFromArea:V,areaPaths:f,pathFromLine:L,linePaths:p,linePath:D,areaPath:M}}_handleMarkersAndLabels({type:e,pointsPos:t,isRangeStart:r,i:o,j:s,realIndex:i}){const l=this.w,c=new Eo(this.w,this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,s,{realIndex:i,pointsPos:t,zRatio:this.zRatio,elParent:this.elPointsMain});else{l.seriesData.series[o].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");const d=this.markers.plotChartMarkers({pointsPos:t,seriesIndex:i,j:s+1});d!==null&&this.elPointsMain.add(d)}const h=c.drawDataLabel({type:e,isRangeStart:r,pos:t,i,j:s+1});h!==null&&this.elDataLabelsWrap.add(h)}_createPaths({type:e,series:t,i:r,j:o,x:s,y:i,xArrj:l,yArrj:c,y2:h,y2Arrj:d,pX:u,pY:p,pathState:f,segmentStartX:g,linePath:m,areaPath:x,linePaths:w,areaPaths:b,curve:y,isRangeStart:k}){const v=new ce(this.w),C=this.areaBottomY,A=e==="rangeArea",B=e==="rangeArea"&&k;switch(y){case"monotoneCubic":{const E=k?c:d,S=(L,V)=>L.map((N,T)=>[N,V[T]]).filter(N=>N[1]!==null),D=L=>{const V=[];let N=0;return L.forEach(T=>{T!==null?N++:N>0&&(V.push(N),N=0)}),N>0&&V.push(N),V},M=(L,V)=>{const N=D(L),T=[];for(let I=0,Z=0;I<N.length;Z+=N[I++])T[I]=gp.slice(V,Z,Z+N[I]);return T};switch(f){case 0:if(E[o+1]===null)break;f=1;case 1:if(!(A?l.length===t[r].length:o===t[r].length-2))break;case 2:{const L=k?l:l.slice().reverse(),V=k?E:E.slice().reverse(),N=S(L,V),T=N.length>1?gp.points(N):N;let I=[];A&&(B?b=N:I=b.reverse());let Z=0,_=0;if(M(V,T).forEach(W=>{Z++;const $=UB(W),R=_;_+=W.length;const J=_-1;B?m=v.move(N[R][0],N[R][1])+$:A?m=v.move(I[R][0],I[R][1])+v.line(N[R][0],N[R][1])+$+v.line(I[J][0],I[J][1]):(m=v.move(N[R][0],N[R][1])+$,x=m+v.line(N[J][0],C)+v.line(N[R][0],C)+"z",b.push(x)),w.push(m)}),A&&Z>1&&!B){const W=w.slice(Z).reverse();w.splice(Z),W.forEach($=>w.push($))}f=0;break}}break}case"smooth":{const E=(s-u)*.35;if(t[r][o]===null)f=0;else switch(f){case 0:if(g=u,B?m=v.move(u,d[o])+v.line(u,p):m=v.move(u,p),x=v.move(u,p),t[r][o+1]===null||typeof t[r][o+1]>"u"){w.push(m),b.push(x);break}if(f=1,o<t[r].length-2){const S=v.curve(u+E,p,s-E,i,s,i);m+=S,x+=S;break}case 1:if(t[r][o+1]===null)B?m+=v.line(u,h):m+=v.move(u,p),x+=v.line(u,C)+v.line(g,C)+"z",w.push(m),b.push(x),f=-1;else{const S=v.curve(u+E,p,s-E,i,s,i);m+=S,x+=S,o>=t[r].length-2&&(B&&(m+=v.curve(s,i,s,i,s,h)+v.move(s,h)),x+=v.curve(s,i,s,i,s,C)+v.line(g,C)+"z",w.push(m),b.push(x),f=-1)}break}u=s,p=i;break}default:{const E=(S,D,M)=>{let L="";switch(S){case"stepline":L=v.line(D,null,"H")+v.line(null,M,"V");break;case"linestep":L=v.line(null,M,"V")+v.line(D,null,"H");break;case"straight":L=v.line(D,M);break}return L};if(t[r][o]===null)f=0;else switch(f){case 0:if(g=u,B?m=v.move(u,d[o])+v.line(u,p):m=v.move(u,p),x=v.move(u,p),t[r][o+1]===null||typeof t[r][o+1]>"u"){w.push(m),b.push(x);break}if(f=1,o<t[r].length-2){const S=E(y,s,i);m+=S,x+=S;break}case 1:if(t[r][o+1]===null)B?m+=v.line(u,h):m+=v.move(u,p),x+=v.line(u,C)+v.line(g,C)+"z",w.push(m),b.push(x),f=-1;else{const S=E(y,s,i);m+=S,x+=S,o>=t[r].length-2&&(B&&(m+=v.line(s,h)),x+=v.line(s,C)+v.line(g,C)+"z",w.push(m),b.push(x),f=-1)}break}u=s,p=i;break}}return{linePaths:w,areaPaths:b,pX:u,pY:p,pathState:f,segmentStartX:g,linePath:m,areaPath:x}}handleNullDataPoints(e,t,r,o,s){const i=this.w;if(e[r][o]===null&&i.config.markers.showNullDataPoints||e[r].length===1){let l=this.strokeWidth-i.config.markers.strokeWidth/2;l>0||(l=0);const c=this.markers.plotChartMarkers({pointsPos:t,seriesIndex:s,j:o+1,pSize:l,alwaysDrawMarker:!0});c!==null&&this.elPointsMain.add(c)}}}class xp{constructor(e){this.w=e}drawYAxisTexts(e,t,r,o){const s=this.w,i=s.config.yaxis[0],l=s.formatters.yLabelFormatters[0];return new ce(this.w).drawText({x:e+i.labels.offsetX,y:t+i.labels.offsetY,text:l(o,r),textAnchor:"middle",fontSize:i.labels.style.fontSize,fontFamily:i.labels.style.fontFamily,foreColor:Array.isArray(i.labels.style.colors)?i.labels.style.colors[r]:i.labels.style.colors})}}class sl{constructor(e,t){this.ctx=t,this.w=e,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animBeginArr=[0],this.animDur=0,this.donutDataLabels=this.w.config.plotOptions.pie.donut.labels,this.lineColorArr=e.globals.stroke.colors!==void 0?e.globals.stroke.colors:e.globals.colors,this.defaultSize=Math.min(e.layout.gridWidth,e.layout.gridHeight),this.centerY=this.defaultSize/2,this.centerX=e.layout.gridWidth/2,e.config.chart.type==="radialBar"?this.fullAngle=360:this.fullAngle=Math.abs(e.config.plotOptions.pie.endAngle-e.config.plotOptions.pie.startAngle),this.initialAngle=e.config.plotOptions.pie.startAngle%this.fullAngle,e.globals.radialSize=this.defaultSize/2.05-e.config.stroke.width-(e.config.chart.sparkline.enabled?0:e.config.chart.dropShadow.blur),this.donutSize=e.globals.radialSize*parseInt(e.config.plotOptions.pie.donut.size,10)/100;const r=e.config.plotOptions.pie.customScale,o=e.layout.gridWidth/2,s=e.layout.gridHeight/2;this.translateX=o-o*r,this.translateY=s-s*r,this.dataLabelsGroup=new ce(this.w).group({class:"apexcharts-datalabels-group",transform:`translate(${this.translateX}, ${this.translateY}) scale(${r})`}),this.maxY=0,this.sliceLabels=[],this.sliceSizes=[],this.prevSectorAngleArr=[]}draw(e){const t=this,r=this.w,o=new ce(this.w),s=o.group({class:"apexcharts-pie"});if(r.globals.noData)return s;let i=0;for(let d=0;d<e.length;d++)i+=U.negToZero(e[d]);const l=[],c=o.group();i===0&&(i=1e-5),e.forEach(d=>{this.maxY=Math.max(this.maxY,d)}),r.config.yaxis[0].max&&(this.maxY=r.config.yaxis[0].max),r.config.grid.position==="back"&&this.chartType==="polarArea"&&this.drawPolarElements(s);for(let d=0;d<e.length;d++){const u=this.fullAngle*U.negToZero(e[d])/i;l.push(u),this.chartType==="polarArea"?(l[d]=this.fullAngle/e.length,this.sliceSizes.push(r.globals.radialSize*e[d]/this.maxY)):this.sliceSizes.push(r.globals.radialSize)}if(r.globals.dataChanged){let d=0;for(let p=0;p<r.globals.previousPaths.length;p++)d+=U.negToZero(r.globals.previousPaths[p]);let u;for(let p=0;p<r.globals.previousPaths.length;p++)u=this.fullAngle*U.negToZero(r.globals.previousPaths[p])/d,this.prevSectorAngleArr.push(u)}if(this.donutSize<0&&(this.donutSize=0),this.chartType==="donut"){const d=o.drawCircle(this.donutSize);d.attr({cx:this.centerX,cy:this.centerY,fill:r.config.plotOptions.pie.donut.background?r.config.plotOptions.pie.donut.background:"transparent"}),c.add(d)}const h=t.drawArcs(l,e);if(this.sliceLabels.forEach(d=>{h.add(d)}),c.attr({transform:`translate(${this.translateX}, ${this.translateY}) scale(${r.config.plotOptions.pie.customScale})`}),c.add(h),s.add(c),this.donutDataLabels.show){const d=this.renderInnerDataLabels(this.dataLabelsGroup,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show});s.add(d)}return r.config.grid.position==="front"&&this.chartType==="polarArea"&&this.drawPolarElements(s),s}drawArcs(e,t){const r=this.w,o=new _t(this.w),s=new ce(this.w),i=new Ia(this.w),l=s.group({class:"apexcharts-slices"});let c=this.initialAngle,h=this.initialAngle,d=this.initialAngle,u=this.initialAngle;this.strokeWidth=r.config.stroke.show?r.config.stroke.width:0;for(let p=0;p<e.length;p++){const f=s.group({class:"apexcharts-series apexcharts-pie-series",seriesName:U.escapeString(r.seriesData.seriesNames[p]),rel:p+1,"data:realIndex":p});l.add(f),c=d,h=u,d=c+e[p],u=h+this.prevSectorAngleArr[p];const g=d<c?this.fullAngle+d-c:d-c,m=i.fillPath({seriesNumber:p,size:this.sliceSizes[p],value:t[p]}),x=this.getChangedPath(h,u),w=s.drawPath({d:x,stroke:Array.isArray(this.lineColorArr)?this.lineColorArr[p]:this.lineColorArr,strokeWidth:0,fill:m,fillOpacity:r.config.fill.opacity,classes:`apexcharts-pie-area apexcharts-${this.chartType.toLowerCase()}-slice-${p}`});if(w.attr({index:0,j:p}),o.setSelectionFilter(w,0,p),r.config.chart.dropShadow.enabled){const C=r.config.chart.dropShadow;o.dropShadow(w,C,p)}this.addListeners(w,this.donutDataLabels);let b={x:0,y:0};const y=(c+g/2)%this.fullAngle;let k={x:this.centerX,y:this.centerY};this.chartType==="pie"||this.chartType==="polarArea"?(b=U.polarToCartesian(this.centerX,this.centerY,r.globals.radialSize/1.25+r.config.plotOptions.pie.dataLabels.offset,y),k=U.polarToCartesian(this.centerX,this.centerY,r.globals.radialSize/2,y)):this.chartType==="donut"&&(b=U.polarToCartesian(this.centerX,this.centerY,(r.globals.radialSize+this.donutSize)/2+r.config.plotOptions.pie.dataLabels.offset,y),k=U.polarToCartesian(this.centerX,this.centerY,(r.globals.radialSize+this.donutSize)/2,y)),ce.setAttrs(w.node,{"data:angle":g,"data:startAngle":c,"data:strokeWidth":this.strokeWidth,"data:value":t[p],"data:cx":k.x,"data:cy":k.y}),f.add(w);let v=0;if(this.initialAnim&&!r.globals.resized&&!r.globals.dataChanged?(v=g/this.fullAngle*r.config.chart.animations.speed,v===0&&(v=1),this.animDur=v+this.animDur,this.animBeginArr.push(this.animDur)):this.animBeginArr.push(0),this.dynamicAnim&&r.globals.dataChanged?this.animatePaths(w,{size:this.sliceSizes[p],endAngle:d,startAngle:c,prevStartAngle:h,prevEndAngle:u,animateStartingPos:!0,i:p,animBeginArr:this.animBeginArr,shouldSetPrevPaths:!0,dur:r.config.chart.animations.dynamicAnimation.speed}):this.animatePaths(w,{size:this.sliceSizes[p],endAngle:d,startAngle:c,i:p,totalItems:e.length-1,animBeginArr:this.animBeginArr,dur:v}),r.config.plotOptions.pie.expandOnClick&&this.chartType!=="polarArea"&&w.node.addEventListener("mouseup",this.pieClicked.bind(this,p)),typeof r.interact.selectedDataPoints[0]<"u"&&r.interact.selectedDataPoints[0].indexOf(p)>-1&&this.pieClicked(p),r.config.dataLabels.enabled){const C=b.x,A=b.y;let B=100*g/this.fullAngle+"%";if(g!==0&&r.config.plotOptions.pie.dataLabels.minAngleToShowLabel<e[p]){const E=r.config.dataLabels.formatter;E!==void 0&&(B=E(r.globals.seriesPercent[p][0],{seriesIndex:p,w:r}));const S=r.globals.dataLabels.style.colors[p],D=s.group({class:"apexcharts-datalabels"}),M=s.drawText({x:C,y:A,text:B,textAnchor:"middle",fontSize:r.config.dataLabels.style.fontSize,fontFamily:r.config.dataLabels.style.fontFamily,fontWeight:r.config.dataLabels.style.fontWeight,foreColor:S});if(D.add(M),r.config.dataLabels.dropShadow.enabled){const L=r.config.dataLabels.dropShadow;o.dropShadow(M,L)}M.node.classList.add("apexcharts-pie-label"),r.config.chart.animations.animate&&r.globals.resized===!1&&(M.node.classList.add("apexcharts-pie-label-delay"),M.node.style.animationDelay=r.config.chart.animations.speed/940+"s"),this.sliceLabels.push(D)}}}return l}addListeners(e,t){const r=new ce(this.w);e.node.addEventListener("mouseenter",r.pathMouseEnter.bind(this,e)),e.node.addEventListener("mouseleave",r.pathMouseLeave.bind(this,e)),e.node.addEventListener("mouseleave",this.revertDataLabelsInner.bind(this)),e.node.addEventListener("mousedown",r.pathMouseDown.bind(this,e)),this.donutDataLabels.total.showAlways||(e.node.addEventListener("mouseenter",this.printDataLabelsInner.bind(this,e.node,t)),e.node.addEventListener("mousedown",this.printDataLabelsInner.bind(this,e.node,t)))}animatePaths(e,t){const r=this.w,o=this;let s=t.endAngle<t.startAngle?this.fullAngle+t.endAngle-t.startAngle:t.endAngle-t.startAngle,i=s,l=t.startAngle;const c=t.startAngle;t.prevStartAngle!==void 0&&t.prevEndAngle!==void 0&&(l=t.prevEndAngle,i=t.prevEndAngle<t.prevStartAngle?this.fullAngle+t.prevEndAngle-t.prevStartAngle:t.prevEndAngle-t.prevStartAngle),t.i===r.config.series.length-1&&(s+c>this.fullAngle?t.endAngle=t.endAngle-(s+c):s+c<this.fullAngle&&(t.endAngle=t.endAngle+(this.fullAngle-(s+c)))),s===this.fullAngle&&(s=this.fullAngle-.01),o.animateArc(e,l,c,s,i,t)}animateArc(e,t,r,o,s,i){const l=this,c=this.w,h=new vn(this.w),d=i.size;let u;(isNaN(t)||isNaN(s))&&(t=r,s=o,i.dur=0);let p=o,f=r;const g=t<r?this.fullAngle+t-r:t-r;c.globals.dataChanged&&i.shouldSetPrevPaths&&i.prevEndAngle&&(u=l.getPiePath({me:l,startAngle:i.prevStartAngle,angle:i.prevEndAngle<i.prevStartAngle?this.fullAngle+i.prevEndAngle-i.prevStartAngle:i.prevEndAngle-i.prevStartAngle,size:d}),e.attr({d:u})),i.dur!==0?e.animate(i.dur,i.animBeginArr[i.i]).after(function(){(l.chartType==="pie"||l.chartType==="donut"||l.chartType==="polarArea")&&this.animate(c.config.chart.animations.dynamicAnimation.speed).attr({"stroke-width":l.strokeWidth}),i.i===c.config.series.length-1&&h.animationCompleted(e)}).during(m=>{p=g+(o-g)*m,i.animateStartingPos&&(p=s+(o-s)*m,f=t-s+(r-(t-s))*m),u=l.getPiePath({me:l,startAngle:f,angle:p,size:d}),e.node.setAttribute("data:pathOrig",u),e.attr({d:u})}):(u=l.getPiePath({me:l,startAngle:f,angle:o,size:d}),i.isTrack||(c.globals.animationEnded=!0),e.node.setAttribute("data:pathOrig",u),e.attr({d:u,"stroke-width":l.strokeWidth}))}pieClicked(e){const t=this.w,r=this,o=r.sliceSizes[e]+(t.config.plotOptions.pie.expandOnClick?4:0),s=t.dom.Paper.findOne(`.apexcharts-${r.chartType.toLowerCase()}-slice-${e}`);if(s.attr("data:pieClicked")==="true"){s.attr({"data:pieClicked":"false"}),this.revertDataLabelsInner();const h=s.attr("data:pathOrig");s.attr({d:h});return}else{const h=t.dom.baseEl.getElementsByClassName("apexcharts-pie-area");Array.prototype.forEach.call(h,d=>{d.setAttribute("data:pieClicked","false");const u=d.getAttribute("data:pathOrig");u&&d.setAttribute("d",u)}),t.interact.capturedDataPointIndex=e,s.attr("data:pieClicked","true")}const i=parseInt(s.attr("data:startAngle"),10),l=parseInt(s.attr("data:angle"),10),c=r.getPiePath({me:r,startAngle:i,angle:l,size:o});l!==360&&s.plot(c)}getChangedPath(e,t){let r="";return this.dynamicAnim&&this.w.globals.dataChanged&&(r=this.getPiePath({me:this,startAngle:e,angle:t-e,size:this.size})),r}getPiePath({me:e,startAngle:t,angle:r,size:o}){let s;const i=new ce(this.w),l=t,c=Math.PI*(l-90)/180;let h=r+t;Math.ceil(h)>=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(h=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(h)>this.fullAngle&&(h-=this.fullAngle);const d=Math.PI*(h-90)/180,u=e.centerX+o*Math.cos(c),p=e.centerY+o*Math.sin(c),f=e.centerX+o*Math.cos(d),g=e.centerY+o*Math.sin(d),m=U.polarToCartesian(e.centerX,e.centerY,e.donutSize,h),x=U.polarToCartesian(e.centerX,e.centerY,e.donutSize,l),w=r>180?1:0,b=["M",u,p,"A",o,o,0,w,1,f,g];return e.chartType==="donut"?s=[...b,"L",m.x,m.y,"A",e.donutSize,e.donutSize,0,w,0,x.x,x.y,"L",u,p,"z"].join(" "):e.chartType==="pie"||e.chartType==="polarArea"?s=[...b,"L",e.centerX,e.centerY,"L",u,p].join(" "):s=[...b].join(" "),i.roundPathCorners(s,this.strokeWidth*2)}drawPolarElements(e){const t=this.w,r=new Ku(this.w),o=new ce(this.w),s=new xp(this.w),i=o.group(),l=o.group(),c=r.niceScale(0,Math.ceil(this.maxY),0),h=c.result.reverse(),d=c.result.length;this.maxY=c.niceMax;let u=t.globals.radialSize;const p=u/(d-1);for(let f=0;f<d-1;f++){const g=o.drawCircle(u);if(g.attr({cx:this.centerX,cy:this.centerY,fill:"none","stroke-width":t.config.plotOptions.polarArea.rings.strokeWidth,stroke:t.config.plotOptions.polarArea.rings.strokeColor}),t.config.yaxis[0].show){const m=s.drawYAxisTexts(this.centerX,this.centerY-u+parseInt(t.config.yaxis[0].labels.style.fontSize,10)/2,f,h[f]);l.add(m)}i.add(g),u=u-p}this.drawSpokes(e),e.add(i),e.add(l)}renderInnerDataLabels(e,t,r){const o=this.w,s=new ce(this.w),i=t.total.show;e.node.innerHTML="",e.node.style.opacity=r.opacity;const l=r.centerX,c=this.donutDataLabels.total.label?r.centerY:r.centerY-r.centerY/6;let h,d;t.name.color===void 0?h=o.globals.colors[0]:h=t.name.color;let u=t.name.fontSize,p=t.name.fontFamily,f=t.name.fontWeight;t.value.color===void 0?d=o.config.chart.foreColor:d=t.value.color;const g=t.value.formatter;let m="",x="";if(i?(h=t.total.color,u=t.total.fontSize,p=t.total.fontFamily,f=t.total.fontWeight,x=this.donutDataLabels.total.label?t.total.label:"",m=t.total.formatter(o)):o.seriesData.series.length===1&&(m=g(o.seriesData.series[0],o),x=o.seriesData.seriesNames[0]),x&&(x=t.name.formatter(x,t.total.show,o)),t.name.show){const w=s.drawText({x:l,y:c+parseFloat(t.name.offsetY),text:x,textAnchor:"middle",foreColor:h,fontSize:u,fontWeight:f,fontFamily:p});w.node.classList.add("apexcharts-datalabel-label"),e.add(w)}if(t.value.show){const w=t.name.show?parseFloat(t.value.offsetY)+16:t.value.offsetY,b=s.drawText({x:l,y:c+w,text:m,textAnchor:"middle",foreColor:d,fontWeight:t.value.fontWeight,fontSize:t.value.fontSize,fontFamily:t.value.fontFamily});b.node.classList.add("apexcharts-datalabel-value"),e.add(b)}return e}printInnerLabels(e,t,r,o){const s=this.w;let i;o?e.name.color===void 0?i=s.globals.colors[parseInt(o.parentNode.getAttribute("rel"),10)-1]:i=e.name.color:s.seriesData.series.length>1&&e.total.show&&(i=e.total.color);const l=s.dom.baseEl.querySelector(".apexcharts-datalabel-label"),c=s.dom.baseEl.querySelector(".apexcharts-datalabel-value"),h=e.value.formatter;r=h(r,s),!o&&typeof e.total.formatter=="function"&&(r=e.total.formatter(s));const d=t===e.total.label;if(t=this.donutDataLabels.total.label?e.name.formatter(t,d,s):"",l!==null&&(l.textContent=t),c!==null&&(c.textContent=r),l!==null){const u=l;u.style.fill=i}}printDataLabelsInner(e,t){const r=this.w,o=e.getAttribute("data:value"),s=r.seriesData.seriesNames[parseInt(e.parentNode.getAttribute("rel"),10)-1];r.seriesData.series.length>1&&this.printInnerLabels(t,s,o,e);const i=r.dom.baseEl.querySelector(".apexcharts-datalabels-group");if(i!==null){const l=i;l.style.opacity="1"}}drawSpokes(e){const t=this.w,r=new ce(this.w),o=t.config.plotOptions.polarArea.spokes;if(o.strokeWidth===0)return;const s=[],i=360/t.seriesData.series.length;for(let l=0;l<t.seriesData.series.length;l++)s.push(U.polarToCartesian(this.centerX,this.centerY,t.globals.radialSize,t.config.plotOptions.pie.startAngle+i*l));s.forEach((l,c)=>{const h=r.drawLine(l.x,l.y,this.centerX,this.centerY,Array.isArray(o.connectorColors)?o.connectorColors[c]:o.connectorColors);e.add(h)})}revertDataLabelsInner(){const e=this.w;if(this.donutDataLabels.show){const t=e.dom.Paper.findOne(".apexcharts-datalabels-group"),r=this.renderInnerDataLabels(t,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show});e.dom.Paper.findOne(".apexcharts-radialbar, .apexcharts-pie").add(r)}}}class qB{constructor(e,t){this.ctx=t,this.w=e,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0,this.graphics=new ce(this.w),this.lineColorArr=e.globals.stroke.colors!==void 0?e.globals.stroke.colors:e.globals.colors,this.defaultSize=e.globals.svgHeight<e.globals.svgWidth?e.layout.gridHeight:e.layout.gridWidth,this.isLog=e.config.yaxis[0].logarithmic,this.logBase=e.config.yaxis[0].logBase,this.coreUtils=new Nt(this.w),this.maxValue=this.isLog?this.coreUtils.getLogVal(this.logBase,e.globals.maxY,0):e.globals.maxY,this.minValue=this.isLog?this.coreUtils.getLogVal(this.logBase,this.w.globals.minY,0):e.globals.minY,this.polygons=e.config.plotOptions.radar.polygons,this.strokeWidth=e.config.stroke.show?e.config.stroke.width:0,this.size=this.defaultSize/2.1-this.strokeWidth-e.config.chart.dropShadow.blur,e.config.xaxis.labels.show&&(this.size=this.size-e.layout.xAxisLabelsWidth/1.75),e.config.plotOptions.radar.size!==void 0&&(this.size=e.config.plotOptions.radar.size),this.dataRadiusOfPercent=[],this.dataRadius=[],this.angleArr=[],this.dataPointsLen=0,this.disAngle=0,this.yaxisLabelsTextsPos=[]}draw(e){const t=this.w,r=new Ia(this.w),o=[],s=new Eo(this.w,this.ctx);e.length&&(this.dataPointsLen=e[t.globals.maxValsInArrayIndex].length),this.disAngle=Math.PI*2/this.dataPointsLen;const i=t.layout.gridWidth/2,l=t.layout.gridHeight/2,c=i+t.config.plotOptions.radar.offsetX,h=l+t.config.plotOptions.radar.offsetY,d=this.graphics.group({class:"apexcharts-radar-series apexcharts-plot-series",transform:`translate(${c||0}, ${h||0})`});let u=[],p=null,f=null;if(this.yaxisLabels=this.graphics.group({class:"apexcharts-yaxis"}),e.forEach((g,m)=>{const x=g.length===t.globals.dataPoints,w=this.graphics.group().attr({class:"apexcharts-series","data:longestSeries":x,seriesName:U.escapeString(t.seriesData.seriesNames[m]),rel:m+1,"data:realIndex":m});this.dataRadiusOfPercent[m]=[],this.dataRadius[m]=[],this.angleArr[m]=[],g.forEach((v,C)=>{const A=Math.abs(this.maxValue-this.minValue);v=v-this.minValue,this.isLog&&(v=this.coreUtils.getLogVal(this.logBase,v,0)),this.dataRadiusOfPercent[m][C]=v/A,this.dataRadius[m][C]=this.dataRadiusOfPercent[m][C]*this.size,this.angleArr[m][C]=C*this.disAngle}),u=this.getDataPointsPos(this.dataRadius[m],this.angleArr[m]);const b=this.createPaths(u,{x:0,y:0});p=this.graphics.group({class:"apexcharts-series-markers-wrap apexcharts-element-hidden"}),f=this.graphics.group({class:"apexcharts-datalabels","data:realIndex":m}),t.globals.delayedElements.push({el:p.node,index:m});const y={i:m,realIndex:m,animationDelay:m,initialSpeed:t.config.chart.animations.speed,dataChangeSpeed:t.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-radar",shouldClipToGrid:!1,bindEventsOnPaths:!1,stroke:t.globals.stroke.colors[m],strokeLineCap:t.config.stroke.lineCap};let k=null;t.globals.previousPaths.length>0&&(k=this.getPreviousPath(m));for(let v=0;v<b.linePathsTo.length;v++){const C=this.graphics.renderPaths(je(Ve({},y),{pathFrom:k===null?b.linePathsFrom[v]:k,pathTo:b.linePathsTo[v],strokeWidth:Array.isArray(this.strokeWidth)?this.strokeWidth[m]:this.strokeWidth,fill:"none",drawShadow:!1}));w.add(C);const A=r.fillPath({seriesNumber:m}),B=this.graphics.renderPaths(je(Ve({},y),{pathFrom:k===null?b.areaPathsFrom[v]:k,pathTo:b.areaPathsTo[v],strokeWidth:0,fill:A,drawShadow:!1}));if(t.config.chart.dropShadow.enabled){const E=new _t(this.w),S=t.config.chart.dropShadow;E.dropShadow(B,Object.assign({},S,{noUserSpaceOnUse:!0}),m)}w.add(B)}g.forEach((v,C)=>{const B=new Cn(this.w,this.ctx).getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:m,dataPointIndex:C}),E=this.graphics.drawMarker(u[C].x,u[C].y,B);E.attr("rel",C),E.attr("j",C),E.attr("index",m),E.node.setAttribute("default-marker-size",B.pSize);const S=this.graphics.group({class:"apexcharts-series-markers"});S&&S.add(E),p.add(S),w.add(p);const D=t.config.dataLabels;if(D.enabled){const M=D.formatter(t.seriesData.series[m][C],{seriesIndex:m,dataPointIndex:C,w:t});s.plotDataLabelsText({x:u[C].x,y:u[C].y,text:M,textAnchor:"middle",i:m,j:m,parent:f,offsetCorrection:!1,dataLabelsConfig:Ve({},D)})}w.add(f)}),o.push(w)}),this.drawPolygons({parent:d}),t.config.xaxis.labels.show){const g=this.drawXAxisTexts();d.add(g)}return o.forEach(g=>{d.add(g)}),d.add(this.yaxisLabels),d}drawPolygons(e){const t=this.w,{parent:r}=e,o=new xp(this.w),s=t.globals.yAxisScale[0].result.reverse(),i=s.length,l=[],c=this.size/(i-1);for(let u=0;u<i;u++)l[u]=c*u;l.reverse();const h=[],d=[];l.forEach((u,p)=>{const f=U.getPolygonPos(u,this.dataPointsLen);let g="";f.forEach((m,x)=>{if(p===0){const w=this.graphics.drawLine(m.x,m.y,0,0,Array.isArray(this.polygons.connectorColors)?this.polygons.connectorColors[x]:this.polygons.connectorColors);d.push(w)}x===0&&this.yaxisLabelsTextsPos.push({x:m.x,y:m.y}),g+=m.x+","+m.y+" "}),h.push(g)}),h.forEach((u,p)=>{const f=this.polygons.strokeColors,g=this.polygons.strokeWidth,m=this.graphics.drawPolygon(u,Array.isArray(f)?f[p]:f,Array.isArray(g)?g[p]:g,t.globals.radarPolygons.fill.colors[p]);r.add(m)}),d.forEach(u=>{r.add(u)}),t.config.yaxis[0].show&&this.yaxisLabelsTextsPos.forEach((u,p)=>{const f=o.drawYAxisTexts(u.x,u.y,p,s[p]);this.yaxisLabels.add(f)})}drawXAxisTexts(){const e=this.w,t=e.config.xaxis.labels,r=this.graphics.group({class:"apexcharts-xaxis"}),o=U.getPolygonPos(this.size,this.dataPointsLen);return e.labelData.labels.forEach((s,i)=>{const l=e.config.xaxis.labels.formatter,c=new Eo(this.w,this.ctx);if(o[i]){const h=this.getTextPos(o[i],this.size),d=l(s,{seriesIndex:-1,dataPointIndex:i,w:e});c.plotDataLabelsText({x:h.newX,y:h.newY,text:d,textAnchor:h.textAnchor,i,j:i,parent:r,className:"apexcharts-xaxis-label",color:Array.isArray(t.style.colors)&&t.style.colors[i]?t.style.colors[i]:"#a8a8a8",dataLabelsConfig:Ve({textAnchor:h.textAnchor,dropShadow:{enabled:!1}},t),offsetCorrection:!1}).on("click",p=>{if(typeof e.config.chart.events.xAxisLabelClick=="function"){const f=Object.assign({},e,{labelIndex:i});e.config.chart.events.xAxisLabelClick(p,this.ctx,f)}})}}),r}createPaths(e,t){const r=[];let o=[];const s=[];let i=[];if(e.length){o=[this.graphics.move(t.x,t.y)],i=[this.graphics.move(t.x,t.y)];let l=this.graphics.move(e[0].x,e[0].y),c=this.graphics.move(e[0].x,e[0].y);e.forEach((h,d)=>{l+=this.graphics.line(h.x,h.y),c+=this.graphics.line(h.x,h.y),d===e.length-1&&(l+="Z",c+="Z")}),r.push(l),s.push(c)}return{linePathsFrom:o,linePathsTo:r,areaPathsFrom:i,areaPathsTo:s}}getTextPos(e,t){let o="middle",s=e.x,i=e.y;return Math.abs(e.x)>=10?e.x>0?(o="start",s+=10):e.x<0&&(o="end",s-=10):o="middle",Math.abs(e.y)>=t-10&&(e.y<0?i-=10:e.y>0&&(i+=10)),{textAnchor:o,newX:s,newY:i}}getPreviousPath(e){const t=this.w;let r=null;for(let o=0;o<t.globals.previousPaths.length;o++){const s=t.globals.previousPaths[o];s.paths.length>0&&parseInt(s.realIndex,10)===parseInt(String(e),10)&&typeof t.globals.previousPaths[o].paths[0]<"u"&&(r=t.globals.previousPaths[o].paths[0].d)}return r}getDataPointsPos(e,t,r=this.dataPointsLen){e=e||[],t=t||[];const o=[];for(let s=0;s<r;s++){const i={};i.x=e[s]*Math.sin(t[s]),i.y=-e[s]*Math.cos(t[s]),o.push(i)}return o}}class KB extends sl{constructor(e,t){super(e,t),this.ctx=t,this.w=e,this.animBeginArr=[0],this.animDur=0,this.startAngle=e.config.plotOptions.radialBar.startAngle,this.endAngle=e.config.plotOptions.radialBar.endAngle,this.totalAngle=Math.abs(e.config.plotOptions.radialBar.endAngle-e.config.plotOptions.radialBar.startAngle),this.trackStartAngle=e.config.plotOptions.radialBar.track.startAngle,this.trackEndAngle=e.config.plotOptions.radialBar.track.endAngle,this.barLabels=this.w.config.plotOptions.radialBar.barLabels,this.donutDataLabels=this.w.config.plotOptions.radialBar.dataLabels,this.radialDataLabels=this.donutDataLabels,this.trackStartAngle||(this.trackStartAngle=this.startAngle),this.trackEndAngle||(this.trackEndAngle=this.endAngle),this.endAngle===360&&(this.endAngle=359.99),this.margin=parseInt(e.config.plotOptions.radialBar.track.margin,10),this.onBarLabelClick=this.onBarLabelClick.bind(this)}draw(e){const t=this.w,r=new ce(this.w),o=r.group({class:"apexcharts-radialbar"});if(t.globals.noData)return o;const s=r.group(),i=this.defaultSize/2,l=t.layout.gridWidth/2;let c=this.defaultSize/2.05;t.config.chart.sparkline.enabled||(c=c-t.config.stroke.width-t.config.chart.dropShadow.blur);const h=t.globals.fill.colors;if(t.config.plotOptions.radialBar.track.show){const f=this.drawTracks({size:c,centerX:l,centerY:i,colorArr:h,series:e});s.add(f)}const d=this.drawArcs({size:c,centerX:l,centerY:i,colorArr:h,series:e});let u=360;t.config.plotOptions.radialBar.startAngle<0&&(u=this.totalAngle);const p=(360-u)/360;if(t.globals.radialSize=c-c*p,this.radialDataLabels.value.show){const f=Math.max(this.radialDataLabels.value.offsetY,this.radialDataLabels.name.offsetY);t.globals.radialSize+=f*p}return s.add(d.g),t.config.plotOptions.radialBar.hollow.position==="front"&&(d.g.add(d.elHollow),d.dataLabels&&d.g.add(d.dataLabels)),o.add(s),o}drawTracks(e){const t=this.w,r=new ce(this.w),o=r.group({class:"apexcharts-tracks"}),s=new _t(this.w),i=new Ia(this.w),l=this.getStrokeWidth(e);e.size=e.size-l/2;for(let c=0;c<e.series.length;c++){const h=r.group({class:"apexcharts-radialbar-track apexcharts-track"});o.add(h),h.attr({rel:c+1}),e.size=e.size-l-this.margin;const d=t.config.plotOptions.radialBar.track,u=i.fillPath({seriesNumber:0,size:e.size,fillColors:Array.isArray(d.background)?d.background[c]:d.background,solid:!0}),p=this.trackStartAngle;let f=this.trackEndAngle;Math.abs(f)+Math.abs(p)>=360&&(f=360-Math.abs(this.startAngle)-.1);const g=r.drawPath({d:"",stroke:u,strokeWidth:l*parseInt(d.strokeWidth,10)/100,fill:"none",strokeOpacity:d.opacity,classes:"apexcharts-radialbar-area"});if(d.dropShadow.enabled){const m=d.dropShadow;s.dropShadow(g,m)}h.add(g),g.attr("id","apexcharts-radialbarTrack-"+c),this.animatePaths(g,{centerX:e.centerX,centerY:e.centerY,endAngle:f,startAngle:p,size:e.size,i:c,totalItems:2,animBeginArr:0,dur:0,isTrack:!0})}return o}drawArcs(e){const t=this.w,r=new ce(this.w),o=new Ia(this.w),s=new _t(this.w),i=r.group(),l=this.getStrokeWidth(e);e.size=e.size-l/2;let c=t.config.plotOptions.radialBar.hollow.background;const h=e.size-l*e.series.length-this.margin*e.series.length-l*parseInt(t.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,d=h-t.config.plotOptions.radialBar.hollow.margin;t.config.plotOptions.radialBar.hollow.image!==void 0&&(c=this.drawHollowImage(e,i,h,c));const u=this.drawHollow({size:d,centerX:e.centerX,centerY:e.centerY,fill:c||"transparent"});if(t.config.plotOptions.radialBar.hollow.dropShadow.enabled){const m=t.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(u,m)}let p=1;!this.radialDataLabels.total.show&&t.seriesData.series.length>1&&(p=0);let f=null;if(this.radialDataLabels.show){const m=t.dom.Paper.findOne(".apexcharts-datalabels-group");f=this.renderInnerDataLabels(m,this.radialDataLabels,{hollowSize:h,centerX:e.centerX,centerY:e.centerY,opacity:p})}t.config.plotOptions.radialBar.hollow.position==="back"&&(i.add(u),f&&i.add(f));let g=!1;t.config.plotOptions.radialBar.inverseOrder&&(g=!0);for(let m=g?e.series.length-1:0;g?m>=0:m<e.series.length;g?m--:m++){const x=r.group({class:"apexcharts-series apexcharts-radial-series",seriesName:U.escapeString(t.seriesData.seriesNames[m])});i.add(x),x.attr({rel:m+1,"data:realIndex":m}),Lt.addCollapsedClassToSeries(this.w,x,m),e.size=e.size-l-this.margin;const w=o.fillPath({seriesNumber:m,size:e.size,value:e.series[m]}),b=this.startAngle;let y;const k=U.negToZero(e.series[m]>100?100:e.series[m])/100;let v=Math.round(this.totalAngle*k)+this.startAngle,C;t.globals.dataChanged&&(y=this.startAngle,C=Math.round(this.totalAngle*U.negToZero(t.globals.previousPaths[m])/100)+y),Math.abs(v)+Math.abs(b)>360&&(v=v-.01),Math.abs(C)+Math.abs(y)>360&&(C=C-.01);const E=v-b,S=Array.isArray(t.config.stroke.dashArray)?t.config.stroke.dashArray[m]:t.config.stroke.dashArray,D=r.drawPath({d:"",stroke:w,strokeWidth:l,fill:"none",fillOpacity:t.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+m,strokeDashArray:S}),M=b+E/2,L=U.polarToCartesian(e.centerX,e.centerY,e.size,M);if(ce.setAttrs(D.node,{"data:angle":E,"data:value":e.series[m],"data:cx":L.x,"data:cy":L.y}),t.config.chart.dropShadow.enabled){const N=t.config.chart.dropShadow;s.dropShadow(D,N,m)}if(s.setSelectionFilter(D,0,m),this.addListeners(D,this.radialDataLabels),x.add(D),D.attr({index:0,j:m}),this.barLabels.enabled){const N=U.polarToCartesian(e.centerX,e.centerY,e.size,b),T=this.barLabels.formatter(t.seriesData.seriesNames[m],{seriesIndex:m,w:t}),I=["apexcharts-radialbar-label"];this.barLabels.onClick||I.push("apexcharts-no-click");let Z=this.barLabels.useSeriesColors?t.globals.colors[m]:t.config.chart.foreColor;Z||(Z=t.config.chart.foreColor);const _=N.x+this.barLabels.offsetX,W=N.y+this.barLabels.offsetY,$=r.drawText({x:_,y:W,text:T,textAnchor:"end",dominantBaseline:"middle",fontFamily:this.barLabels.fontFamily,fontWeight:this.barLabels.fontWeight,fontSize:this.barLabels.fontSize,foreColor:Z,cssClass:I.join(" ")});$.on("click",this.onBarLabelClick),$.attr({rel:m+1}),b!==0&&$.attr({"transform-origin":`${_} ${W}`,transform:`rotate(${b} 0 0)`}),x.add($)}let V=0;this.initialAnim&&!t.globals.resized&&!t.globals.dataChanged&&(V=t.config.chart.animations.speed),t.globals.dataChanged&&(V=t.config.chart.animations.dynamicAnimation.speed),this.animDur=V/(e.series.length*1.2)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(D,{centerX:e.centerX,centerY:e.centerY,endAngle:v,startAngle:b,prevEndAngle:C,prevStartAngle:y,size:e.size,i:m,totalItems:2,animBeginArr:this.animBeginArr,dur:V,shouldSetPrevPaths:!0})}return{g:i,elHollow:u,dataLabels:f}}drawHollow(e){const r=new ce(this.w).drawCircle(e.size*2);return r.attr({class:"apexcharts-radialbar-hollow",cx:e.centerX,cy:e.centerY,r:e.size,fill:e.fill}),r}drawHollowImage(e,t,r,o){const s=this.w,i=new Ia(this.w),l=U.randomId(),c=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)i.clippedImgArea({width:r,height:r,image:c,patternID:`pattern${s.globals.cuid}${l}`}),o=`url(#pattern${s.globals.cuid}${l})`;else{const h=s.config.plotOptions.radialBar.hollow.imageWidth,d=s.config.plotOptions.radialBar.hollow.imageHeight;if(h===void 0&&d===void 0){const u=s.dom.Paper.image(c,function(p){this.move(e.centerX-p.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,e.centerY-p.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)});t.add(u)}else{const u=s.dom.Paper.image(c,function(){this.move(e.centerX-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,e.centerY-d/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(h,d)});t.add(u)}}return o}getStrokeWidth(e){const t=this.w;return e.size*(100-parseInt(t.config.plotOptions.radialBar.hollow.size,10))/100/(e.series.length+1)-this.margin}onBarLabelClick(e){var t;const r=e.target,o=parseInt((t=r.getAttribute("rel"))!=null?t:"",10)-1,s=this.barLabels.onClick,i=this.w;s&&s(i.seriesData.seriesNames[o],{w:i,seriesIndex:o})}}class QB extends An{draw(e,t){var r,o,s,i,l,c,h,d,u;const p=this.w,f=new ce(this.w);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=e,this.seriesRangeStart=p.rangeData.seriesRangeStart,this.seriesRangeEnd=p.rangeData.seriesRangeEnd,this.barHelpers.initVariables(e);const g=f.group({class:"apexcharts-rangebar-series apexcharts-plot-series"});for(let m=0;m<e.length;m++){let x,w;const b=p.globals.comboCharts?t[m]:m,{columnGroupIndex:y}=this.barHelpers.getGroupIndex(b),k=f.group({class:"apexcharts-series",seriesName:U.escapeString(p.seriesData.seriesNames[b]),rel:m+1,"data:realIndex":b});Lt.addCollapsedClassToSeries(this.w,k,b),e[m].length>0&&(this.visibleI=this.visibleI+1);let v=0;this.yRatio.length>1&&(this.yaxisIndex=p.globals.seriesYAxisReverseMap[b][0],v=b);const C=this.barHelpers.initialPositions(b),{y:A,zeroW:B,x:E,zeroH:S}=C;let D=(r=C.barWidth)!=null?r:0,M=(o=C.barHeight)!=null?o:0;const L=(s=C.yDivision)!=null?s:0,V=(i=C.xDivision)!=null?i:0;w=A,x=E;const N=f.group({class:"apexcharts-datalabels","data:realIndex":b}),T=f.group({class:"apexcharts-rangebar-goals-markers"});for(let I=0;I<p.globals.dataPoints;I++){const Z=this.barHelpers.getStrokeWidth(m,I,b),_=this.seriesRangeStart[m][I],W=this.seriesRangeEnd[m][I];let $=null,R=null,J=null;const ie={x,y:w,strokeWidth:Z,elSeries:k};let ue=this.seriesLen;if(p.config.plotOptions.bar.rangeBarGroupRows&&(ue=1),typeof((l=p.config.series[m].data)==null?void 0:l[I])>"u")break;if(this.isHorizontal){J=w+M*this.visibleI;const he=(L-M*ue)/2;if((h=(c=p.config.series[m].data)==null?void 0:c[I])!=null&&h.x){const K=this.detectOverlappingBars({i:m,j:I,barYPosition:J,srty:he,barHeight:M,yDivision:L,initPositions:C});M=K.barHeight,J=K.barYPosition}$=this.drawRangeBarPaths(Ve({indexes:{i:m,j:I,realIndex:b},barHeight:M,barYPosition:J,zeroW:B,yDivision:L,y1:_,y2:W},ie)),D=$.barWidth}else{p.axisFlags.isXNumeric&&(x=(p.seriesData.seriesX[m][I]-p.globals.minX)/this.xRatio-D/2),R=x+D*this.visibleI;const he=(V-D*ue)/2;if((u=(d=p.config.series[m].data)==null?void 0:d[I])!=null&&u.x){const K=this.detectOverlappingBars({i:m,j:I,barXPosition:R,srtx:he,barWidth:D,xDivision:V,initPositions:C});D=K.barWidth,R=K.barXPosition}$=this.drawRangeColumnPaths(Ve({indexes:{i:m,j:I,realIndex:b,translationsIndex:v},barWidth:D,barXPosition:R,zeroH:S,xDivision:V},ie)),M=$.barHeight}const ee=this.barHelpers.drawGoalLine({barXPosition:$.barXPosition,barYPosition:J,goalX:$.goalX,goalY:$.goalY,barHeight:M,barWidth:D});ee&&T.add(ee),w=$.y,x=$.x;const ae=this.barHelpers.getPathFillColor(e,m,I,b);this.renderSeries({realIndex:b,pathFill:ae.color,lineFill:ae.useRangeColor?ae.color:p.globals.stroke.colors[b],j:I,i:m,x,y:w,y1:_,y2:W,pathFrom:$.pathFrom,pathTo:$.pathTo,strokeWidth:Z,elSeries:k,series:e,barHeight:M,barWidth:D,barXPosition:R,barYPosition:J,columnGroupIndex:y,elDataLabelsWrap:N,elGoalsMarkers:T,visibleSeries:this.visibleI,type:"rangebar"})}g.add(k)}return g}detectOverlappingBars({i:e,j:t,barYPosition:r,barXPosition:o,srty:s,srtx:i,barHeight:l,barWidth:c,yDivision:h,xDivision:d,initPositions:u}){var p,f,g,m;const x=this.w;let w=[];const b=(f=(p=x.config.series[e].data)==null?void 0:p[t])==null?void 0:f.rangeName,y=(m=(g=x.config.series[e].data)==null?void 0:g[t])==null?void 0:m.x,k=Array.isArray(y)?y.join(" "):y,v=x.labelData.labels.map(A=>Array.isArray(A)?A.join(" "):A).indexOf(k),C=x.rangeData.seriesRange[e].findIndex(A=>{var B;return A.x===k&&((B=A.overlaps)==null?void 0:B.size)>0});return this.isHorizontal?(x.config.plotOptions.bar.rangeBarGroupRows?r=s+h*v:r=s+l*this.visibleI+h*v,C>-1&&!x.config.plotOptions.bar.rangeBarOverlap&&(w=Array.from(x.rangeData.seriesRange[e][C].overlaps),w.indexOf(b)>-1&&(l=u.barHeight/w.length,r=l*this.visibleI+h*(100-parseInt(this.barOptions.barHeight,10))/100/2+l*(this.visibleI+w.indexOf(b))+h*v))):(v>-1&&!x.labelData.timescaleLabels.length&&(x.config.plotOptions.bar.rangeBarGroupRows?o=i+d*v:o=i+c*this.visibleI+d*v),C>-1&&!x.config.plotOptions.bar.rangeBarOverlap&&(w=Array.from(x.rangeData.seriesRange[e][C].overlaps),w.indexOf(b)>-1&&(c=u.barWidth/w.length,o=c*this.visibleI+d*(100-parseInt(this.barOptions.barWidth,10))/100/2+c*(this.visibleI+w.indexOf(b))+d*v))),{barYPosition:r,barXPosition:o,barHeight:l,barWidth:c}}drawRangeColumnPaths({indexes:e,x:t,xDivision:r,barWidth:o,barXPosition:s,zeroH:i}){var l,c;const h=this.w,{i:d,j:u,realIndex:p,translationsIndex:f}=e,g=this.yRatio[f],m=this.getRangeValue(p,u);let x=Math.min(m.start,m.end),w=Math.max(m.start,m.end);typeof((l=this.series[d])==null?void 0:l[u])>"u"||((c=this.series[d])==null?void 0:c[u])===null?x=i:(x=i-x/g,w=i-w/g);const b=Math.abs(w-x),y=this.barHelpers.getColumnPaths({barXPosition:s,barWidth:o,y1:x,y2:w,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:p,i:p,j:u,w:h});if(!h.axisFlags.isXNumeric)t=t+r;else{const k=this.getBarXForNumericXAxis({x:t,j:u,realIndex:p,barWidth:o});t=k.x,s=k.barXPosition}return{pathTo:y.pathTo,pathFrom:y.pathFrom,barHeight:b,x:t,y:m.start<0&&m.end<0?x:w,goalY:this.barHelpers.getGoalValues("y",null,i,d,u,f),barXPosition:s}}preventBarOverflow(e){const t=this.w;return e<0&&(e=0),e>t.layout.gridWidth&&(e=t.layout.gridWidth),e}drawRangeBarPaths({indexes:e,y:t,y1:r,y2:o,yDivision:s,barHeight:i,barYPosition:l,zeroW:c}){const h=this.w,{realIndex:d,j:u}=e,p=this.preventBarOverflow(c+r/this.invertedYRatio),f=this.preventBarOverflow(c+o/this.invertedYRatio),g=this.getRangeValue(d,u),m=Math.abs(f-p),x=this.barHelpers.getBarpaths({barYPosition:l,barHeight:i,x1:p,x2:f,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:d,realIndex:d,j:u,w:h});return h.axisFlags.isXNumeric||(t=t+s),{pathTo:x.pathTo,pathFrom:x.pathFrom,barWidth:m,x:g.start<0&&g.end<0?p:f,goalX:this.barHelpers.getGoalValues("x",c,null,d,u,0),y:t}}getRangeValue(e,t){const r=this.w;return{start:r.rangeData.seriesRangeStart[e][t],end:r.rangeData.seriesRangeEnd[e][t]}}}function wp(n,e){let t=0;for(let s=0;s<n.length;s++)t+=n[s];const r=e/t,o=new Array(n.length);for(let s=0;s<n.length;s++)o[s]=n[s]*r;return o}function bp(n,e,t,r){const o=r*r,s=t*t;return Math.max(o*e/s,s/(o*n))}function JB(n,e,t,r,o,s){if(n===0)return!0;const i=bp(e,t,r,s),l=bp(Math.min(e,o),Math.max(t,o),r+o,s);return i>=l}function yp(n,e,t,r,o,s,i,l){if(i>=l){const c=r/l;let h=s;for(let d=0;d<t;d++){const u=e[d]/c;n.push([o,h,o+c,h+u]),h+=u}}else{const c=r/i;let h=o;for(let d=0;d<t;d++){const u=e[d]/c;n.push([h,s,h+u,s+c]),h+=u}}}function kp(n,e,t,r,o){const s=[],i=n.length;if(i===0)return s;const l=new Array(i);let c=0,h=0,d=1/0,u=-1/0,p=0;for(;p<i;){const f=Math.min(r,o),g=n[p];if(JB(c,d,u,h,g,f))l[c]=g,c++,h+=g,g<d&&(d=g),g>u&&(u=g),p++;else{if(yp(s,l,c,h,e,t,r,o),r>=o){const m=h/o;e+=m,r-=m}else{const m=h/r;t+=m,o-=m}c=0,h=0,d=1/0,u=-1/0}}return c>0&&yp(s,l,c,h,e,t,r,o),s}function eE(n,e,t){const r=n.length,o=new Array(r);for(let l=0;l<r;l++){let c=0;const h=n[l];for(let d=0;d<h.length;d++)c+=h[d];o[l]=c}const s=kp(wp(o,e*t),0,0,e,t),i=new Array(r);for(let l=0;l<r;l++){const c=s[l],h=c[0],d=c[1],u=c[2]-h,p=c[3]-d;i[l]=kp(wp(n[l],u*p),h,d,u,p)}return i}const tE={generate:eE};class aE{constructor(e,t){this.ctx=t,this.w=e,this.strokeWidth=this.w.config.stroke.width,this.helpers=new mp(e,t),this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.labels=[]}draw(e){const t=this.w,r=new ce(this.w,this.ctx),o=new Ia(this.w),s=r.group({class:"apexcharts-treemap"});if(t.globals.noData)return s;const i=[];return e.forEach(c=>{const h=c.map(d=>Math.abs(d));i.push(h)}),this.negRange=this.helpers.checkColorRange(),t.config.series.forEach((c,h)=>{c.data.forEach(d=>{Array.isArray(this.labels[h])||(this.labels[h]=[]),this.labels[h].push(d.x)})}),tE.generate(i,t.layout.gridWidth,t.layout.gridHeight).forEach((c,h)=>{var d;const u=r.group({class:"apexcharts-series apexcharts-treemap-series",seriesName:U.escapeString(t.seriesData.seriesNames[h]),rel:h+1,"data:realIndex":h});if(r.setupEventDelegation(u,".apexcharts-treemap-rect"),t.config.chart.dropShadow.enabled){const m=t.config.chart.dropShadow;new _t(this.w).dropShadow(s,m,h)}const p=r.group({class:"apexcharts-data-labels"}),f={xMin:1/0,yMin:1/0,xMax:-1/0,yMax:-1/0};c.forEach((m,x)=>{const w=m[0],b=m[1],y=m[2],k=m[3];f.xMin=Math.min(f.xMin,w),f.yMin=Math.min(f.yMin,b),f.xMax=Math.max(f.xMax,y),f.yMax=Math.max(f.yMax,k);const v=this.helpers.getShadeColor(t.config.chart.type,h,x,this.negRange),C=v.color,A=o.fillPath({color:C,seriesNumber:h,dataPointIndex:x}),B=r.drawRect(w,b,y-w,k-b,t.config.plotOptions.treemap.borderRadius,"#fff",1,this.strokeWidth,t.config.plotOptions.treemap.useFillColorAsStroke?C:t.globals.stroke.colors[h]);B.attr({cx:w,cy:b,index:h,i:h,j:x,width:y-w,height:k-b,fill:A}),B.node.classList.add("apexcharts-treemap-rect");let E={x:w+(y-w)/2,y:b+(k-b)/2,width:0,height:0};const S={x:w,y:b,width:y-w,height:k-b};if(t.config.chart.animations.enabled&&!t.globals.dataChanged){let V=1;t.globals.resized||(V=t.config.chart.animations.speed),this.animateTreemap(B,E,S,V)}if(t.globals.dataChanged){let V=1;this.dynamicAnim.enabled&&t.globals.shouldAnimate&&(V=this.dynamicAnim.speed,t.globals.previousPaths[h]&&t.globals.previousPaths[h][x]&&t.globals.previousPaths[h][x].rect&&(E=t.globals.previousPaths[h][x].rect),this.animateTreemap(B,E,S,V))}let D=this.getFontSize(m),M=t.config.dataLabels.formatter(this.labels[h][x],{value:t.seriesData.series[h][x],seriesIndex:h,dataPointIndex:x,w:t});t.config.plotOptions.treemap.dataLabels.format==="truncate"&&(D=parseInt(String(t.config.dataLabels.style.fontSize),10),M=this.truncateLabels(String(M),D,w,b,y,k));let L=null;t.seriesData.series[h][x]&&(L=this.helpers.calculateDataLabels({text:M,x:(w+y)/2,y:(b+k)/2+this.strokeWidth/2+D/3,i:h,j:x,colorProps:v,fontSize:D,series:e})),t.config.dataLabels.enabled&&L&&this.rotateToFitLabel(L,D,M,w,b,y,k),u.add(B),L!==null&&u.add(L)});const g=t.config.plotOptions.treemap.seriesTitle;if(t.config.series.length>1&&g&&g.show){const m=t.config.series[h].name||"";if(m&&f.xMin<1/0&&f.yMin<1/0){const{offsetX:x,offsetY:w,borderColor:b,borderWidth:y,borderRadius:k,style:v}=g,C=v.color||t.config.chart.foreColor,A={left:v.padding.left,right:v.padding.right,top:v.padding.top,bottom:v.padding.bottom},B=r.getTextRects(m,v.fontSize,v.fontFamily),E=B.width+A.left+A.right,S=B.height+A.top+A.bottom,D=f.xMin+(x||0),M=f.yMin+(w||0),L=r.drawRect(D,M,E,S,k,v.background,1,y,b),V=r.drawText({x:D+A.left,y:M+A.top+((d=B?.height)!=null?d:0)*.75,text:m,fontSize:v.fontSize,fontFamily:v.fontFamily,fontWeight:v.fontWeight,foreColor:C,cssClass:v.cssClass||""});u.add(L),u.add(V)}}u.add(p),s.add(u)}),s}getFontSize(e){const t=this.w;function r(l){let c,h=0;if(Array.isArray(l[0]))for(c=0;c<l.length;c++)h+=r(l[c]);else for(c=0;c<l.length;c++)h+=l[c].length;return h}function o(l){let c,h=0;if(Array.isArray(l[0]))for(c=0;c<l.length;c++)h+=o(l[c]);else for(c=0;c<l.length;c++)h+=1;return h}const s=r(this.labels)/o(this.labels);function i(l,c){const h=l*c,d=Math.pow(h,.5);return Math.min(d/s,parseInt(t.config.dataLabels.style.fontSize,10))}return i(e[2]-e[0],e[3]-e[1])}rotateToFitLabel(e,t,r,o,s,i,l){const c=new ce(this.w),h=c.getTextRects(r,String(t));if(h.width+this.w.config.stroke.width+5>i-o&&h.width<=l-s){const d=c.rotateAroundCenter(e.node);e.node.setAttribute("transform",`rotate(-90 ${d.x} ${d.y}) translate(${h.height/3})`)}}truncateLabels(e,t,r,o,s,i){const l=new ce(this.w),h=l.getTextRects(e,String(t)).width+this.w.config.stroke.width+5>s-r&&i-o>s-r?i-o:s-r,d=l.getTextBasedOnMaxWidth({text:e,maxWidth:h,fontSize:t});return e.length!==d.length&&h/t<5?"":d}animateTreemap(e,t,r,o){const s=new vn(this.w);s.animateRect(e,t,r,o,()=>{s.animationCompleted(e)})}}ur.use({line:Ls,area:Ls,scatter:Ls,bubble:Ls,rangeArea:Ls,bar:An,column:An,barStacked:YB,rangeBar:QB,candlestick:fp,boxPlot:fp,pie:sl,donut:sl,polarArea:sl,radialBar:KB,radar:qB,heatmap:$B,treemap:aE});const vp=["animationEnd","beforeMount","mounted","updated","click","mouseMove","mouseLeave","legendClick","markerClick","selection","dataPointSelection","dataPointMouseEnter","dataPointMouseLeave","beforeZoom","beforeResetZoom","zoomed","scrolled","brushScrolled"],Or=a.defineComponent({name:"apexchart",props:{options:{type:Object},type:{type:String},series:{type:Array,required:!0},width:{default:"100%"},height:{default:"auto"}},emits:vp,setup(n,{emit:e}){const t=a.ref(null),r=a.ref(null),o=V=>V&&typeof V=="object"&&!Array.isArray(V)&&V!=null,s=(V,N)=>{typeof Object.assign!="function"&&(function(){Object.assign=function(I){if(I==null)throw new TypeError("Cannot convert undefined or null to object");let Z=Object(I);for(let _=1;_<arguments.length;_++){let W=arguments[_];if(W!=null)for(let $ in W)W.hasOwnProperty($)&&(Z[$]=W[$])}return Z}})();let T=Object.assign({},V);return o(V)&&o(N)&&Object.keys(N).forEach(I=>{o(N[I])?I in V?T[I]=s(V[I],N[I]):Object.assign(T,{[I]:N[I]}):Object.assign(T,{[I]:N[I]})}),T},i=V=>JSON.parse(JSON.stringify(V)),l=async()=>{if(await a.nextTick(),r.value)return;const V={chart:{type:n.type||n.options.chart&&n.options.chart.type||"line",height:n.height,width:n.width,events:{}},series:i(n.series)},N=n.options.chart?n.options.chart.events:null;vp.forEach(I=>{let Z=(..._)=>e(I,..._);V.chart.events[I]=(..._)=>{Z(..._),N&&N.hasOwnProperty(I)&&N[I](..._)}});const T=s(n.options,V);return r.value=new ur(t.value,T),r.value.render()},c=()=>(h(),l()),h=()=>{r.value.destroy(),r.value=null},d=(V,N)=>r.value.updateSeries(V,N),u=(V,N,T,I)=>r.value.updateOptions(V,N,T,I),p=V=>r.value.toggleSeries(V),f=V=>{r.value.showSeries(V)},g=V=>{r.value.hideSeries(V)},m=(V,N)=>r.value.appendSeries(V,N),x=()=>{r.value.resetSeries()},w=(V,N)=>{r.value.toggleDataPointSelection(V,N)},b=V=>r.value.appendData(V),y=(V,N)=>r.value.zoomX(V,N),k=V=>r.value.dataURI(V),v=V=>r.value.setLocale(V),C=(V,N)=>{r.value.addXaxisAnnotation(V,N)},A=(V,N)=>{r.value.addYaxisAnnotation(V,N)},B=(V,N)=>{r.value.addPointAnnotation(V,N)},E=(V,N)=>{r.value.removeAnnotation(V,N)},S=()=>{r.value.clearAnnotations()};a.onBeforeMount(()=>{window.ApexCharts=ur}),a.onMounted(()=>{t.value=a.getCurrentInstance().proxy.$el,l()}),a.onBeforeUnmount(()=>{r.value&&h()});const D=a.toRefs(n);let M=null;const L=V=>{M||(M={options:!1,series:!1},a.nextTick(()=>{const N=M;if(M=null,!r.value){l();return}if(N.options&&N.series){const T=i(n.options);T.series=i(n.series),r.value.updateOptions(T)}else N.options?r.value.updateOptions(i(n.options)):N.series&&r.value.updateSeries(i(n.series))})),M[V]=!0};return a.watch(D.options,()=>{L("options")}),a.watch(D.series,()=>{L("series")},{deep:!0}),a.watch(D.type,()=>{c()}),a.watch(D.width,()=>{c()}),a.watch(D.height,()=>{c()}),{chart:r,init:l,refresh:c,destroy:h,updateOptions:u,updateSeries:d,toggleSeries:p,showSeries:f,hideSeries:g,resetSeries:x,zoomX:y,toggleDataPointSelection:w,appendData:b,appendSeries:m,addXaxisAnnotation:C,addYaxisAnnotation:A,addPointAnnotation:B,removeAnnotation:E,clearAnnotations:S,setLocale:v,dataURI:k}},render(){return a.h("div",{class:"vue-apexcharts"})}}),rE=(n,e)=>{const t=n.__vccOpts||n;for(const[r,o]of e)t[r]=o;return t},oE=a.defineComponent({name:"apexchart-server",props:{type:{type:String,default:"line"},width:{type:[Number,String],default:400},height:{type:[Number,String],default:300},series:{type:Array,default:()=>[]},options:{type:Object,default:()=>({})},className:{type:String,default:""}},setup(n){const e=a.ref("");return a.onServerPrefetch(async()=>{try{const{default:t}=await Promise.resolve().then(()=>X7),r=Object.assign({},n.options,{chart:Object.assign({},n.options.chart,{type:n.type,width:n.width,height:n.height}),series:n.series});e.value=await t.renderToHTML(r,{width:n.width,height:n.height})}catch(t){console.error("Failed to render ApexChart on server:",t)}}),{chartHTML:e}}}),nE=["innerHTML"];function sE(n,e,t,r,o,s){return a.openBlock(),a.createElementBlock("div",{innerHTML:n.chartHTML,class:a.normalizeClass(n.className)},null,10,nE)}const Cp=rE(oE,[["render",sE]]),Ap=a.defineComponent({name:"apexchart-hydrate",props:{clientOptions:{type:Object,default:()=>({})},selector:{type:String,default:"[data-apexcharts-hydrate]"}},setup(n){let e=[];a.onMounted(async()=>{try{const{default:t}=await Promise.resolve().then(()=>X7);e=t.hydrateAll(n.selector,n.clientOptions)}catch(t){console.error("Failed to hydrate ApexCharts:",t)}}),a.onBeforeUnmount(()=>{e.forEach(t=>{t&&t.destroy&&t.destroy()}),e=[]})},render(){return null}}),iE=n=>{n.component(Or.name,Or),n.component(Cp.name,Cp),n.component(Ap.name,Ap)};Or.install=iE;const Is={__name:"DonutChart",props:{series:{type:Array,required:!0},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showLegend:{type:Boolean,default:!0},showDataLabels:{type:Boolean,default:!0},donutSize:{type:String,default:"55%"},showTotal:{type:Boolean,default:!0},totalLabel:{type:[String,Object],default:()=>({en:"Total",dv:"ޖުމްލަ"})},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#10B981","#3B82F6","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r.slice(0,o.series.length)),c=a.computed(()=>o.series.map(d=>d.value)),h=a.computed(()=>({chart:{type:"donut",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"},labels:o.series.map(d=>i(d.label)),colors:l.value,legend:{show:o.showLegend,position:"bottom",fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",labels:{useSeriesColors:!0}},dataLabels:{enabled:o.showDataLabels,formatter:d=>`${d.toFixed(1)}%`},tooltip:{y:{formatter:d=>`${d}`}},plotOptions:{pie:{donut:{size:o.donutSize,labels:{show:o.showTotal,name:{show:!0},value:{show:!0},total:{show:o.showTotal,label:i(o.totalLabel),formatter:d=>d.globals.seriesTotals.reduce((u,p)=>u+p,0)}}}}},responsive:[{breakpoint:480,options:{chart:{width:300},legend:{position:"bottom"}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"donut",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},Ts={__name:"LineChart",props:{series:{type:Array,required:!0},categories:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showLegend:{type:Boolean,default:!0},showDataLabels:{type:Boolean,default:!1},curved:{type:Boolean,default:!0},strokeWidth:{type:Number,default:3},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r.slice(0,o.series.length)),c=a.computed(()=>o.series.map(d=>({name:i(d.name),data:d.data}))),h=a.computed(()=>({chart:{type:"line",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",toolbar:{show:!1}},colors:l.value,stroke:{curve:o.curved?"smooth":"straight",width:o.strokeWidth},xaxis:{categories:o.categories},legend:{show:o.showLegend,position:"bottom",fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"},dataLabels:{enabled:o.showDataLabels},tooltip:{y:{formatter:d=>`${d}`}},responsive:[{breakpoint:480,options:{chart:{width:300},legend:{position:"bottom"}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"line",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},lE={__name:"BarChart",props:{series:{type:Array,required:!0},categories:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showLegend:{type:Boolean,default:!0},showDataLabels:{type:Boolean,default:!1},horizontal:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},columnWidth:{type:String,default:"55%"},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r.slice(0,o.series.length)),c=a.computed(()=>o.series.map(d=>({name:i(d.name),data:d.data}))),h=a.computed(()=>({chart:{type:"bar",stacked:o.stacked,fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",toolbar:{show:!1}},colors:l.value,plotOptions:{bar:{horizontal:o.horizontal,columnWidth:o.columnWidth,borderRadius:4}},stroke:{show:!0,width:2,colors:["transparent"]},xaxis:{categories:o.categories},legend:{show:o.showLegend,position:"bottom",fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"},dataLabels:{enabled:o.showDataLabels},tooltip:{y:{formatter:d=>`${d}`}},responsive:[{breakpoint:480,options:{chart:{width:300},legend:{position:"bottom"}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"bar",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},cE={__name:"BubbleChart",props:{series:{type:Array,required:!0},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showLegend:{type:Boolean,default:!0},showDataLabels:{type:Boolean,default:!1},xaxisTitle:{type:[String,Object],default:""},yaxisTitle:{type:[String,Object],default:""},minBubbleSize:{type:Number,default:10},maxBubbleSize:{type:Number,default:50},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r.slice(0,o.series.length)),c=a.computed(()=>o.series.map(d=>({name:i(d.name),data:d.data}))),h=a.computed(()=>({chart:{type:"bubble",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",toolbar:{show:!1}},colors:l.value,fill:{opacity:.8},plotOptions:{bubble:{minBubbleRadius:o.minBubbleSize,maxBubbleRadius:o.maxBubbleSize}},xaxis:{title:{text:i(o.xaxisTitle),style:{fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"}}},yaxis:{title:{text:i(o.yaxisTitle),style:{fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"}}},legend:{show:o.showLegend,position:"bottom",fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"},dataLabels:{enabled:o.showDataLabels},tooltip:{y:{formatter:d=>`${d}`}},responsive:[{breakpoint:480,options:{chart:{width:300},legend:{position:"bottom"}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"bubble",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},dE={__name:"TreemapChart",props:{series:{type:Array,required:!0},colors:{type:Array,default:()=>[]},height:{type:[String,Number],default:350},showDataLabels:{type:Boolean,default:!0},distributed:{type:Boolean,default:!0},enableShadeIntensity:{type:Boolean,default:!0},lang:{type:String,default:""}},setup(n){const e=a.ref(!1);a.onMounted(()=>{requestAnimationFrame(()=>{e.value=!0})});const t=a.inject("i18n",null),r=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#14B8A6","#F97316"],o=n,s=a.computed(()=>o.lang||t?.language?.value||"dv"),i=d=>d?typeof d=="string"?d:typeof d=="object"?d[s.value]??d.en??"":"":"",l=a.computed(()=>o.colors.length?o.colors:r),c=a.computed(()=>o.series.map(d=>({name:i(d.name),data:d.data.map(u=>({x:i(u.x),y:u.y}))}))),h=a.computed(()=>({chart:{type:"treemap",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit",toolbar:{show:!1}},colors:l.value,plotOptions:{treemap:{distributed:o.distributed,enableShades:o.enableShadeIntensity,shadeIntensity:.5}},dataLabels:{enabled:o.showDataLabels,style:{fontSize:"13px",fontFamily:s.value==="dv"?"Faruma, sans-serif":"inherit"}},tooltip:{y:{formatter:d=>`${d}`}},responsive:[{breakpoint:480,options:{chart:{width:300}}}]}));return(d,u)=>e.value?(a.openBlock(),a.createBlock(a.unref(Or),{key:0,type:"treemap",options:h.value,series:c.value,height:n.height},null,8,["options","series","height"])):a.createCommentVNode("",!0)}},hE={class:"mx-auto m-4"},uE={key:0,class:"p-8"},pE={key:1,class:"flex items-center justify-center p-8 py-"},Bp={__name:"ListView",props:{items:{type:Object,required:!0},loading:{type:Boolean,default:!1},lang:{type:String,default:"dv"}},emits:["update:queryParams","items"],setup(n,{emit:e}){const t=a.inject("api"),r=a.inject("snackbar"),{language:o}=a.inject("i18n"),s=a.inject("pgoRegistry",{}),i=qo.useRoute(),l=qo.useRouter();a.ref("");const c=a.computed(()=>h.lang==="en"?"ltr":h.lang==="dv"?"rtl":""),h=n,d=a.ref(h.loading),u=e,p=a.ref(!1),f=a.ref({}),g=a.ref({}),m=a.ref({}),x=a.ref(!1),w=a.ref(!1),b=a.ref(null),y=a.ref(!1),k=a.ref(!1),v=a.ref(null),C=a.ref(""),A=a.ref(null);a.ref(null);const B=a.ref({src:"",title:""}),E=a.ref({}),S=a.ref({}),D=a.ref({}),M=a.ref({}),L=a.ref({});a.ref({});const V=a.ref({}),N=a.ref(!1),T=a.ref(null),I=a.ref(""),Z=a.ref({}),_=a.ref(""),W={form:a.defineAsyncComponent(()=>Promise.resolve().then(()=>vu)),dynamicform:a.defineAsyncComponent(()=>Promise.resolve().then(()=>vu)),table:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Ph)),datatable:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Ph)),card:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Lh)),cardview:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Lh)),toolbar:a.defineAsyncComponent(()=>Promise.resolve().then(()=>mA)),filtersection:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Mu)),filter:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Mu)),confirmationmodal:a.defineAsyncComponent(()=>Promise.resolve().then(()=>qb)),viewrecord:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Au)),record:a.defineAsyncComponent(()=>Promise.resolve().then(()=>Au))},$=te=>te?typeof te=="function"&&!te.render&&!te.setup?a.defineAsyncComponent(te):te:null,R=(te,le,Ce=!1)=>{const Se=(te||le).toLowerCase();return Object.prototype.hasOwnProperty.call(W,Se)?W[Se]:Object.prototype.hasOwnProperty.call(s,Se)?$(s[Se]):Ce?null:W[le]??null},J=a.computed(()=>{const te=L.value||{},le=typeof te.componentImport=="string"?te.componentImport:"",Ce=typeof te.component=="string"?te.component.toLowerCase():"form";return le&&Object.prototype.hasOwnProperty.call(s,le)?$(s[le]):R(Ce,"form",!0)}),ie=a.computed(()=>R(E.value?.component,"table")),ue=a.computed(()=>R(M.value?.component,"toolbar")),ee=a.computed(()=>R(D.value?.component,"filtersection")),ae=a.computed(()=>R(S.value?.component,"card"));a.computed(()=>R(E.value?.delete?.component,"confirmationmodal"));const he=a.computed(()=>R(V.value?.component,"viewrecord")),K=a.ref({page:parseInt(i.query.page)||1,itemsPerPage:parseInt(i.query.per_page)||10,sortBy:i.query.sort?i.query.sort.split(",").map(te=>te.replace(/^-/,"")):[],sortDesc:i.query.sort?i.query.sort.split(",").map(te=>te.startsWith("-")):[],itemsLength:0}),Y=a.computed(()=>{const te=[5,10,25,50,100],le=K.value.itemsPerPage;return le&&!te.includes(le)?[...te,le].sort((Ce,Se)=>Ce-Se):te}),H=te=>{const le={...i.query};te.page&&te.page>1?le.page=String(te.page):delete le.page,te.per_page&&te.per_page!==10?le.per_page=String(te.per_page):delete le.per_page,te.sort?le.sort=te.sort:delete le.sort,te.filter?le.filter=te.filter:delete le.filter,l.replace({query:le})},oe=async te=>{try{d.value=!0;const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);if(E.value=Se,E.value?.datalink){const We={page:K.value.page};i.query.per_page&&(We.per_page=parseInt(i.query.per_page)),i.query.sort&&(We.sort=i.query.sort),i.query.filter&&(We.filter=i.query.filter),await P(We),E.value?.pagination&&(K.value={...K.value,page:E.value?.pagination.current_page})}}catch(le){const Ce=le.response?.data?.error||"Error fetching data";r.show({message:Ce,variant:"error"})}finally{d.value=!1}},F=async te=>{try{d.value=!0;const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);if(S.value=Se,S.value?.datalink){const We={page:K.value.page};i.query.per_page&&(We.per_page=parseInt(i.query.per_page)),i.query.sort&&(We.sort=i.query.sort),i.query.filter&&(We.filter=i.query.filter),await P(We),S.value?.pagination&&(K.value={...K.value,page:S.value?.pagination.current_page})}}catch(le){const Ce=le.response?.data?.error||"Error fetching data";r.show({message:Ce,variant:"error"})}finally{d.value=!1}},j=async te=>{try{const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);D.value=Se}catch(le){const Ce=le.response?.data?.error||"Error fetching filter section data";r.show({message:Ce,variant:"error"})}},O=async te=>{try{const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);M.value=Se}catch(le){const Ce=le.response?.data?.error||"Error fetching toolbar data";r.show({message:Ce,variant:"error"})}},z=async te=>{try{const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);V.value=Se}catch(le){const Ce=le.response?.data?.error||"Error fetching record data";r.show({message:Ce,variant:"error"})}},q=async te=>{try{const le=new URLSearchParams,Ce="/ccs/"+te+"?"+le.toString(),Se=await t.get(Ce);L.value=Se}catch(le){const Ce=le.response?.data?.error||"Error fetching form data";r.show({message:Ce,variant:"error"})}},P=async(te={})=>{try{d.value=!0;const le=E.value?.datalink||S.value?.datalink||"",[Ce,Se]=le.split("?"),We=new URLSearchParams(Se||"");Object.entries(te).forEach(([to,_n])=>{_n!=null&&_n!==""&&We.set(to,_n)});const sa=Ce+(We.toString()?"?"+We.toString():""),ia=await t.get(sa);m.value=ia,ia?.pagination&&(K.value={...K.value,page:ia.pagination.current_page,itemsPerPage:ia.pagination.per_page,itemsLength:ia?.pagination.total})}catch(le){console.error("Error fetching data:",le),r.show({message:"Error fetching data",variant:"error"})}finally{d.value=!1}},re=(te=!1)=>{y.value=!1,A.value=null,L.value={},C.value="",te&&P({page:K.value.page,per_page:K.value.itemsPerPage})},X=te=>{K.value={...K.value,...te};const le={page:te.page,per_page:te.itemsPerPage};if(te.sortBy&&te.sortBy.length>0){const Ce=te.sortBy.map((Se,We)=>te.sortDesc[We]?`-${Se}`:Se);le.sort=Ce.join(",")}P(le),H(le)},pe=async({item:te,key:le,value:Ce,updateData:Se})=>{},Q=(te,le=null)=>{le==="toolbar"?g.value={...te}:le==="filterSection"&&(f.value={...te});const Ce={...g.value,...f.value};!le&&te&&typeof te=="object"&&Object.assign(Ce,te);let Se="";const We=[];Object.entries(Ce).forEach(([ia,to])=>{to!=null&&to!==""&&We.push(`${ia}:${to}`)}),We.length>0&&(Se=We.join(","));const sa={page:1,per_page:K.value.itemsPerPage};Se&&(sa.filter=Se),K.value={...K.value,page:1},P(sa),H(sa)},ke=()=>{j(h.items?.componentSettings?.filterSection),p.value=!p.value},we=te=>{P({page:K.value.page,per_page:K.value.itemsPerPage})},ze=te=>{g.value={},f.value={},K.value={...K.value,page:1,sortBy:[],sortDesc:[]};const le={page:1,per_page:K.value.itemsPerPage};P(le),H(le)},Ye=()=>{q(h.items?.componentSettings?.form),A.value=null,y.value=!0,C.value="create"},Aa=te=>{if(E.value?.showLink){const Ce=(E.value?.showLink).replace(/:(\w+)/g,(Se,We)=>te[We]??We).replace(/\{(\w+)\}/g,(Se,We)=>te[We]??We);if(/^https?:\/\//i.test(Ce)){window.open(Ce,"_blank");return}l.push({path:Ce})}else z(h.items?.componentSettings?.record),k.value=!0,v.value=te?.uuid??te?.id??null},za=te=>{q(h.items?.componentSettings?.form),y.value=!0,A.value=te?.uuid??te?.id??null,C.value="edit"},wt=te=>{b.value=te,x.value=!0},ma=te=>{x.value=!1,br(te?.uuid??te?.id??null)},Ba=te=>{B.value=te,w.value=!0},eo=({item:te,field:le,url:Ce})=>{if(Ce){if(/^https?:\/\//i.test(Ce)||le.target==="_blank"){window.open(Ce,le.target||"_blank");return}l.push({path:Ce})}},br=async te=>{try{const le=E.value?.delete?.crudLink;if(!le){console.error("Delete link not defined in componentSettings"),r.show({message:"Delete action not configured",variant:"error"});return}const Ce=le;await t.delete(Ce+`/${te}`),P({page:K.value.page,per_page:K.value.itemsPerPage})}catch(le){console.error("Error deleting item:",le)}},me=async(te,le)=>{if(!h.items?.componentSettings?.customcomponent)return r.show({message:"Custom modal not configured",variant:"error"});const Ce=new URLSearchParams,Se="/ccs/"+h.items?.componentSettings?.customcomponent+"?"+Ce.toString();console.log("dsf",h.items?.componentSettings?.customcomponent);try{const We=await t.get(Se);I.value=te,Z.value=We?.[I.value]}catch(We){r.show({message:We.response?.data?.error||"Error loading modal config",variant:"error"})}},Ee=a.computed(()=>{const te=typeof I.value=="string"?I.value.toLowerCase():"";return te&&Object.prototype.hasOwnProperty.call(s,te)?$(s[te]):te?R(te,"form",!0):null}),Fe=async({item:te,action:le})=>{le?.component&&(T.value=te,_.value=le.component,Z.value={},N.value=!0,await me(le.component,te.uuid??te?.id))},Ae=(te=!1)=>{N.value=!1,T.value=null,Z.value={},_.value="",te&&P({page:K.value.page,per_page:K.value.itemsPerPage})},Ne=()=>{P({page:K.value.page,per_page:K.value.itemsPerPage})};return a.watch(()=>h.items,te=>{te?.componentSettings?.table&&oe(te.componentSettings.table),te?.componentSettings?.card&&F(te.componentSettings.card),te?.componentSettings?.toolbar&&O(te.componentSettings.toolbar),u("items",te)},{immediate:!0,deep:!0}),(te,le)=>{const Ce=a.resolveComponent("Card");return a.openBlock(),a.createElementBlock("div",hE,[a.createVNode(ah,{modelValue:w.value,"onUpdate:modelValue":le[0]||(le[0]=Se=>w.value=Se),src:B.value?.src,"show-download":!0,"show-print":!0,title:B.value?.title,width:"900","z-index":"z-[99999999]"},null,8,["modelValue","src","title"]),n.items?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.renderSlot(te.$slots,"topSlot",{items:n.items}),a.renderSlot(te.$slots,"breadcrumb",{},()=>[a.createVNode(a.unref(cn),{class:"mb-3"})]),a.createVNode(Ce,{"card-class":"",bg:"vts-bg-surface-elevated",padding:"p-3",margin:"mb-4",shadow:"shadow-lg",rounded:"none",border:"border-none border-b border-solid border-primary/50"},{default:a.withCtx(()=>[a.renderSlot(te.$slots,"toolbar",{toolbar:M.value,filterSection:D.value},()=>[n.items.componentSettings?.toolbar?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(ue.value),{key:0,dir:c.value??"",elevation:!1,color:"none",bg:"",padding:"px-4",variant:"contained",title:a.unref(it)(M.value.title),"create-button":M.value?.createButton??!1,"quick-filters":M.value?.filters,"filter-section":!!h.items?.componentSettings?.filterSection,"filter-values":g.value,"filter-section-values":f.value,"onUpdate:filterValues":le[1]||(le[1]=Se=>g.value=Se),onShowFilterSection:ke,onSearch:le[2]||(le[2]=Se=>Q(Se,"toolbar")),onRefresh:ze,onCreateButton:Ye},null,40,["dir","title","create-button","quick-filters","filter-section","filter-values","filter-section-values"])):a.createCommentVNode("",!0)]),a.createVNode(a.Transition,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"transform -translate-y-4 opacity-0","enter-to-class":"transform translate-y-0 opacity-100","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"transform translate-y-0 opacity-100","leave-to-class":"transform -translate-y-4 opacity-0"},{default:a.withCtx(()=>[D.value&&p.value?(a.openBlock(),a.createBlock(Ce,{key:0,"card-class":"border-dashed",rounded:"lg",bg:"",margin:"mt-2"},{default:a.withCtx(()=>[a.renderSlot(te.$slots,"filterSection",{},()=>[(a.openBlock(),a.createBlock(a.resolveDynamicComponent(ee.value),{dir:c.value??"",grid:"","grid-columns":2,modelValue:f.value,"onUpdate:modelValue":le[3]||(le[3]=Se=>f.value=Se),rounded:"",filters:D.value?.filters,buttons:D.value?.buttons,onSearch:le[4]||(le[4]=Se=>Q(Se,"filterSection")),onSubmit:le[5]||(le[5]=Se=>Q(Se,"filterSection")),onClose:le[6]||(le[6]=Se=>p.value=!1)},null,40,["dir","modelValue","filters","buttons"]))])]),_:3})):a.createCommentVNode("",!0)]),_:3})]),_:3}),a.renderSlot(te.$slots,"table",{table:E.value},()=>[n.items.componentSettings?.table?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(ie.value),{key:0,dir:c.value??"",items:m.value?.data,settings:E.value,"server-side-options":K.value,"items-per-page-options":Y.value,loading:d.value,title:"",lang:h.lang||a.unref(o).value||"dv","onUpdate:options":X,"show-actions":E.value?.showActions??!0,"show-view":E.value?.actions?.showView??!0,"show-edit":E.value?.actions?.showEdit??!0,"show-delete":E.value?.actions?.showDelete??!0,"inline-edit":E.value?.showInlineEdit??!1,onInlineUpdate:pe,onView:Aa,onEdit:za,onDelete:wt,onViewpdf:Ba,onCustomAction:Fe},null,40,["dir","items","settings","server-side-options","items-per-page-options","loading","lang","show-actions","show-view","show-edit","show-delete","inline-edit"])):a.createCommentVNode("",!0)]),a.renderSlot(te.$slots,"card",{card:S.value,cardData:m.value?.data},()=>[n.items.componentSettings?.card?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(ae.value),{key:0,dir:c.value??"",items:m.value?.data,settings:S.value,"server-side-options":K.value,"items-per-page-options":Y.value,loading:d.value,lang:n.lang,"onUpdate:options":X,onActionClick:eo},null,40,["dir","items","settings","server-side-options","items-per-page-options","loading","lang"])):a.createCommentVNode("",!0)]),!n.items.componentSettings?.table&&!n.items.componentSettings?.card?(a.openBlock(),a.createElementBlock("div",uE,[...le[10]||(le[10]=[a.createElementVNode("p",null,"No display component configured",-1)])])):a.createCommentVNode("",!0)],64)):(a.openBlock(),a.createElementBlock("div",pE,[...le[11]||(le[11]=[a.createElementVNode("p",null,"No data",-1)])])),a.renderSlot(te.$slots,"form",{form:L.value},()=>[y.value&&n.items.componentSettings?.form&&J.value?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(J.value),{key:0,dir:c.value??"",width:L.value?.width||"w-auto",form:L.value,rounded:"sm",title:a.unref(it)(C.value=="edit"?L.value?.editTitle:L.value?.createTitle)||"",onClose:re,"onSubmit:success":we,lang:n.lang,"crud-link":L.value?.crudLink,"edit-item-id":A.value,mode:C.value,onViewPdf:Ba},null,40,["dir","width","form","title","lang","crud-link","edit-item-id","mode"])):a.createCommentVNode("",!0)]),a.renderSlot(te.$slots,"delete",{delete:E.value?.delete},()=>[a.createVNode(a.unref(k0),{dir:c.value??"",modelValue:x.value,"onUpdate:modelValue":le[7]||(le[7]=Se=>x.value=Se),item:b.value,title:E.value?.delete?.title,subtitle:E.value?.delete?.subtitle,type:"warning",onConfirm:ma,onCancel:le[8]||(le[8]=Se=>{x.value=!1,b.value=null})},{default:a.withCtx(()=>[E.value?.delete?.message?(a.openBlock(!0),a.createElementBlock(a.Fragment,{key:0},a.renderList(E.value?.delete?.message,(Se,We)=>(a.openBlock(),a.createElementBlock("div",{key:We},[a.createElementVNode("p",null,[a.createElementVNode("b",null,a.toDisplayString(a.unref(it)(Se,""))+":",1),a.createTextVNode(" "+a.toDisplayString(b.value[We]),1)])]))),128)):a.createCommentVNode("",!0)]),_:1},8,["dir","modelValue","item","title","subtitle"])]),a.renderSlot(te.$slots,"record",{record:V.value},()=>[k.value&&(V.value.showLink||V.value.crudLink)?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(he.value),{key:0,record:V.value,itemId:v.value,lang:n.lang,onClose:le[9]||(le[9]=Se=>{k.value=!1,v.value=null})},null,40,["record","itemId","lang"])):a.createCommentVNode("",!0)]),a.renderSlot(te.$slots,"bottomSlot",{items:n.items},()=>[N.value&&Ee.value?(a.openBlock(),a.createBlock(a.resolveDynamicComponent(Ee.value),{key:0,dir:c.value??"",form:L.value,config:Z.value,item:T.value,lang:n.lang,onClose:Ae,"onSubmit:success":Ne},null,40,["dir","form","config","item","lang"])):a.createCommentVNode("",!0)])])}}},fE={key:1},mE={__name:"ComponentRenderer",setup(n){const{language:e}=a.inject("i18n"),t=a.inject("api"),r=a.inject("snackbar"),o=qo.useRoute(),s=a.ref("");a.computed(()=>o.params.org_uuid||"");const i=a.computed(()=>o.params.modelName||""),l=a.computed(()=>o.params.componentName||""),c=a.ref(null),h=a.ref(!1),d=async(p={})=>{try{h.value=!0;const f=new URLSearchParams({component:l.value,...p}),g=await t.get(`/ccs/${i.value}?${f}`);(!g||!g.componentSettings)&&(console.error("Invalid response:",g),s.value=g.error,r.show({message:s.value,variant:"error"})),c.value=g}catch(f){s.value=f.response.data.error||"Error fetching data",r.show({message:s.value,variant:"error"}),console.error("Error fetching data:",f)}finally{h.value=!1}},u=p=>{d(p)};return a.onMounted(()=>{d()}),a.watch([i,l],()=>{c.value=null,s.value="",d()}),(p,f)=>(a.openBlock(),a.createElementBlock("div",null,[c.value?(a.openBlock(),a.createBlock(Bp,{key:i.value+"/"+l.value,items:c.value,loading:h.value,lang:c.value?.lang??a.unref(e),"onUpdate:queryParams":u},null,8,["items","loading","lang"])):(a.openBlock(),a.createElementBlock("div",fE,[a.createElementVNode("p",null,a.toDisplayString(s.value),1)]))]))}},gE="data:image/png;base64,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",xE={class:"flex pr-100 pl-100 gap-2"},wE={class:"inline-flex items-center gap-2"},bE={class:"flex gap-2"},Ep={__name:"AppBarExample",setup(n){const e=a.inject("setRtl"),{t,setLanguage:r,language:o}=a.inject("i18n"),s=a.ref(!0);return a.onMounted(()=>{const i=localStorage.getItem("rtlSetting");i!==null?s.value=i==="true":s.value=globalRtl.value,console.log("Initial RTL setting on mount:",s.value)}),a.watch(s,i=>{e(i),s.value==!0?r("dv"):r("en")}),(i,l)=>{const c=a.resolveComponent("HeroIcon"),h=a.resolveComponent("Button");return a.openBlock(),a.createElementBlock(a.Fragment,null,[a.createVNode(m0,{title:"އެޕްގެ ނަން","title-align":"center","title-class":"text-xl font-bold",fixed:"",elevation:"2",drawer:"",rtl:s.value},{prepend:a.withCtx(()=>[...l[4]||(l[4]=[a.createElementVNode("img",{src:gE,alt:"Logo",class:"h-8 w-8 mr-2"},null,-1)])]),nav:a.withCtx(()=>[...l[5]||(l[5]=[])]),actions:a.withCtx(()=>[a.createElementVNode("button",{class:"p-2 rounded hover:bg-gray-100",onClick:l[0]||(l[0]=d=>Ja.value=!a.unref(Ja)),"aria-label":"Toggle drawer"},[a.createVNode(c,{name:"bars-3",size:"20",color:"text-blue-700"})])]),append:a.withCtx(()=>[...l[6]||(l[6]=[])]),"mobile-nav":a.withCtx(()=>[...l[7]||(l[7]=[a.createElementVNode("a",{href:"#",class:"block px-3 py-2 text-blue-700"},"Home",-1),a.createElementVNode("a",{href:"#",class:"block px-3 py-2 text-blue-700"},"About",-1),a.createElementVNode("a",{href:"#",class:"block px-3 py-2 text-blue-700"},"Contact",-1)])]),_:1},8,["rtl"]),a.createElementVNode("div",xE,[a.createElementVNode("label",wE,[a.withDirectives(a.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":l[1]||(l[1]=d=>s.value=d),class:"form-checkbox"},null,512),[[a.vModelCheckbox,s.value]]),l[8]||(l[8]=a.createElementVNode("span",{class:"text-sm text-gray-700"},"RTL",-1))]),a.createElementVNode("div",bE,[a.createVNode(h,{color:a.unref(o)==="en"?"primary":"gray",onClick:l[2]||(l[2]=d=>i.$setLanguage("en"))},{default:a.withCtx(()=>[...l[9]||(l[9]=[a.createTextVNode("English",-1)])]),_:1},8,["color"]),a.createVNode(h,{class:"faruma",color:a.unref(o)=="dv"?"primary":"gray",onClick:l[3]||(l[3]=d=>i.$setLanguage("dv"))},{default:a.withCtx(()=>[...l[10]||(l[10]=[a.createTextVNode("ދިވެހި",-1)])]),_:1},8,["color"])]),a.createElementVNode("p",null,"Current language: "+a.toDisplayString(a.unref(o)),1)])],64)}}},yE={class:"grid place-items-center space-y-6 p-6"},kE={class:"flex items-center gap-8"},vE={class:"flex items-center gap-8"},CE={class:"flex items-center gap-8"},AE=a.defineComponent({__name:"AvatarExample",setup(n){return(e,t)=>(a.openBlock(),a.createElementBlock("div",yE,[t[0]||(t[0]=a.createElementVNode("h2",{class:"text-xl font-semibold mb-2 text-center"},"Avatar Example Usage",-1)),a.createElementVNode("div",kE,[a.createVNode(xa,{src:"https://i.pravatar.cc/100?img=5",alt:"Alice"}),a.createVNode(xa,{text:"Ahmed Shareef",bordered:!0}),a.createVNode(xa,{text:"P G O",size:"lg",shape:"rounded",bordered:!0}),a.createVNode(xa,{text:"UI",size:"xl",bordered:!0})]),a.createElementVNode("div",vE,[a.createVNode(xa,{text:"CS",shape:"circular",bordered:!0}),a.createVNode(xa,{text:"CS",shape:"rounded",bordered:!0}),a.createVNode(xa,{text:"CS",shape:"square",bordered:!0})]),a.createElementVNode("div",CE,[a.createVNode(xa,{text:"xs",size:"xs",bordered:!0}),a.createVNode(xa,{text:"sm",size:"sm",bordered:!0}),a.createVNode(xa,{text:"md",size:"md",bordered:!0}),a.createVNode(xa,{text:"lg",size:"lg",bordered:!0}),a.createVNode(xa,{text:"xl",size:"xl",bordered:!0})])]))}}),BE={class:"p-6 max-w-4xl mx-auto space-y-8"},EE={class:"space-y-4"},SE={class:"flex gap-2 flex-wrap"},ME={class:"space-y-4"},VE={class:"space-y-6"},NE={class:"mt-6 flex gap-2 flex-wrap"},Sp={__name:"BannerExample",setup(n){const e=a.ref(!0),t=a.ref(!0),r=a.ref(!0),o=a.ref(!0),s=a.ref(!0),i=a.ref(!0),l=a.ref(!0),c=a.ref(!0),h=a.ref(!0),d=a.ref(!1),u=a.ref(!0),p=a.ref(!0),f=()=>{alert("Update initiated!"),i.value=!1},g=()=>{e.value=!0,t.value=!0,r.value=!0,o.value=!0,s.value=!0,i.value=!0,l.value=!0,c.value=!0,h.value=!0,d.value=!0,u.value=!0,p.value=!0},m=()=>{e.value=!1,t.value=!1,r.value=!1,o.value=!1,s.value=!1,i.value=!1,l.value=!1,c.value=!1,h.value=!1,d.value=!1,u.value=!1,p.value=!1};return(x,w)=>(a.openBlock(),a.createElementBlock("div",BE,[w[30]||(w[30]=a.createElementVNode("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Banner Components",-1)),a.createVNode(tt,{title:"Banner Controls"},{default:a.withCtx(()=>[a.createElementVNode("div",EE,[a.createElementVNode("div",SE,[a.createVNode(ye,{onClick:w[0]||(w[0]=b=>e.value=!0),color:"gray",size:"sm"},{default:a.withCtx(()=>[...w[18]||(w[18]=[a.createTextVNode("Show Default",-1)])]),_:1}),a.createVNode(ye,{onClick:w[1]||(w[1]=b=>t.value=!0),color:"info",size:"sm"},{default:a.withCtx(()=>[...w[19]||(w[19]=[a.createTextVNode("Show Info",-1)])]),_:1}),a.createVNode(ye,{onClick:w[2]||(w[2]=b=>r.value=!0),color:"success",size:"sm"},{default:a.withCtx(()=>[...w[20]||(w[20]=[a.createTextVNode("Show Success",-1)])]),_:1}),a.createVNode(ye,{onClick:w[3]||(w[3]=b=>o.value=!0),color:"warning",size:"sm"},{default:a.withCtx(()=>[...w[21]||(w[21]=[a.createTextVNode("Show Warning",-1)])]),_:1}),a.createVNode(ye,{onClick:w[4]||(w[4]=b=>s.value=!0),color:"danger",size:"sm"},{default:a.withCtx(()=>[...w[22]||(w[22]=[a.createTextVNode("Show Error",-1)])]),_:1})])])]),_:1}),a.createElementVNode("div",ME,[a.createVNode(ra,{modelValue:e.value,"onUpdate:modelValue":w[5]||(w[5]=b=>e.value=b),title:"Default Banner",message:"This is a default banner message.",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:t.value,"onUpdate:modelValue":w[6]||(w[6]=b=>t.value=b),variant:"info",icon:"info",title:"Information",message:"This is an informational banner with an icon.",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:r.value,"onUpdate:modelValue":w[7]||(w[7]=b=>r.value=b),variant:"success",icon:"success",title:"Success!",message:"Your action was completed successfully.",timeout:5e3,"show-progress":"",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:o.value,"onUpdate:modelValue":w[8]||(w[8]=b=>o.value=b),variant:"warning",icon:"warning",title:"Warning",message:"Please review the following information carefully.",outlined:"",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:s.value,"onUpdate:modelValue":w[9]||(w[9]=b=>s.value=b),variant:"error",icon:"error",title:"Error",message:"An error occurred. Please try again.",sticky:""},null,8,["modelValue"])]),a.createVNode(tt,{title:"Banner Variants"},{default:a.withCtx(()=>[a.createElementVNode("div",VE,[a.createVNode(ra,{modelValue:i.value,"onUpdate:modelValue":w[11]||(w[11]=b=>i.value=b),variant:"info",icon:"info",title:"Update Available",message:"A new version is available. Update now to get the latest features."},{actions:a.withCtx(()=>[a.createVNode(ye,{size:"sm",variant:"text",color:"info",onClick:w[10]||(w[10]=b=>i.value=!1)},{default:a.withCtx(()=>[...w[23]||(w[23]=[a.createTextVNode(" Dismiss ",-1)])]),_:1}),a.createVNode(ye,{size:"sm",color:"info",onClick:f},{default:a.withCtx(()=>[...w[24]||(w[24]=[a.createTextVNode(" Update Now ",-1)])]),_:1})]),_:1},8,["modelValue"]),a.createVNode(ra,{modelValue:l.value,"onUpdate:modelValue":w[12]||(w[12]=b=>l.value=b),variant:"success",icon:"success",message:"Dense banner with compact spacing",dense:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:c.value,"onUpdate:modelValue":w[13]||(w[13]=b=>c.value=b),variant:"warning"},{title:a.withCtx(()=>[...w[25]||(w[25]=[a.createElementVNode("div",{class:"flex items-center gap-2"},[a.createElementVNode("span",{class:"text-2xl"},"⚠️"),a.createElementVNode("span",null,"Custom Banner Content")],-1)])]),default:a.withCtx(()=>[...w[26]||(w[26]=[a.createElementVNode("p",null,"You can use slots to fully customize the banner content.",-1),a.createElementVNode("ul",{class:"list-disc list-inside mt-2 text-sm"},[a.createElementVNode("li",null,"Custom icons"),a.createElementVNode("li",null,"Rich content"),a.createElementVNode("li",null,"Any HTML structure")],-1)])]),_:1},8,["modelValue"]),a.createVNode(ra,{modelValue:h.value,"onUpdate:modelValue":w[14]||(w[14]=b=>h.value=b),variant:"success",icon:"success",title:"Auto Dismiss",message:"This banner will automatically dismiss in 10 seconds.",timeout:1e4,"show-progress":""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:d.value,"onUpdate:modelValue":w[15]||(w[15]=b=>d.value=b),variant:"info",icon:"info",title:"Bottom Banner",message:"This banner is positioned at the bottom.",position:"bottom",sticky:""},null,8,["modelValue"]),a.createVNode(ra,{modelValue:u.value,"onUpdate:modelValue":w[16]||(w[16]=b=>u.value=b),variant:"error",icon:"error",title:"Rounded Banner",message:"This banner has rounded corners.",rounded:"lg"},null,8,["modelValue"]),a.createVNode(ra,{modelValue:p.value,"onUpdate:modelValue":w[17]||(w[17]=b=>p.value=b),variant:"warning",icon:"warning",title:"Important Notice",message:"This banner cannot be closed by the user.",closeable:!1},null,8,["modelValue"])]),a.createElementVNode("div",NE,[a.createVNode(ye,{onClick:g,size:"sm"},{default:a.withCtx(()=>[...w[27]||(w[27]=[a.createTextVNode("Show All Banners",-1)])]),_:1}),a.createVNode(ye,{onClick:m,variant:"outlined",size:"sm"},{default:a.withCtx(()=>[...w[28]||(w[28]=[a.createTextVNode("Hide All Banners",-1)])]),_:1})])]),_:1}),a.createVNode(tt,{title:"API Reference"},{default:a.withCtx(()=>[...w[29]||(w[29]=[a.createElementVNode("div",{class:"overflow-x-auto"},[a.createElementVNode("table",{class:"min-w-full text-sm"},[a.createElementVNode("thead",{class:"border-b"},[a.createElementVNode("tr",null,[a.createElementVNode("th",{class:"text-left p-2"},"Prop"),a.createElementVNode("th",{class:"text-left p-2"},"Type"),a.createElementVNode("th",{class:"text-left p-2"},"Default"),a.createElementVNode("th",{class:"text-left p-2"},"Description")])]),a.createElementVNode("tbody",{class:"divide-y"},[a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"v-model"),a.createElementVNode("td",{class:"p-2"},"Boolean"),a.createElementVNode("td",{class:"p-2"},"true"),a.createElementVNode("td",{class:"p-2"},"Controls banner visibility")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"variant"),a.createElementVNode("td",{class:"p-2"},"String"),a.createElementVNode("td",{class:"p-2"},"'default'"),a.createElementVNode("td",{class:"p-2"},"default | info | success | warning | error")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"icon"),a.createElementVNode("td",{class:"p-2"},"String"),a.createElementVNode("td",{class:"p-2"},"''"),a.createElementVNode("td",{class:"p-2"},"Icon to display (info, success, warning, error)")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"timeout"),a.createElementVNode("td",{class:"p-2"},"Number"),a.createElementVNode("td",{class:"p-2"},"0"),a.createElementVNode("td",{class:"p-2"},"Auto-dismiss after X ms (0 = disabled)")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"sticky"),a.createElementVNode("td",{class:"p-2"},"Boolean"),a.createElementVNode("td",{class:"p-2"},"false"),a.createElementVNode("td",{class:"p-2"},"Stick to top/bottom of viewport")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"position"),a.createElementVNode("td",{class:"p-2"},"String"),a.createElementVNode("td",{class:"p-2"},"'top'"),a.createElementVNode("td",{class:"p-2"},"Position when sticky (top | bottom)")]),a.createElementVNode("tr",null,[a.createElementVNode("td",{class:"p-2 font-mono"},"showProgress"),a.createElementVNode("td",{class:"p-2"},"Boolean"),a.createElementVNode("td",{class:"p-2"},"false"),a.createElementVNode("td",{class:"p-2"},"Show progress bar for auto-dismiss")])])])],-1)])]),_:1})]))}},DE={class:"p-6 space-y-6"},LE=a.defineComponent({__name:"BreadcrumbExample",setup(n){const e=[{label:"އުޅޭތަން",href:"/"},{label:"ޕްރޮޖެކްޓްސް",href:"/projects"},{label:"ކުދި ޕްރޮޖެކްޓްސް",disabled:!0}],t=[{label:"Home",href:"/"},{label:"Projects",href:"/projects"},{label:"Smaller projects",disabled:!0}];return(r,o)=>(a.openBlock(),a.createElementBlock("div",DE,[a.createElementVNode("section",null,[o[0]||(o[0]=a.createElementVNode("h3",{class:"mb-2 font-medium"}," From Router ",-1)),a.createVNode(cn)]),a.createVNode(cn,{items:e}),a.createVNode(cn,{items:e,"container-class":"text-[var(--vts-color-primary)]","item-class":"hover:underline","active-class":"text-[var(--vts-color-text)]"},{prepend:a.withCtx(()=>[...o[1]||(o[1]=[a.createElementVNode("span",{class:"text-[var(--vts-color-primary)]"},"📁 ",-1)])]),divider:a.withCtx(()=>[...o[2]||(o[2]=[a.createElementVNode("span",{class:"text-[var(--vts-color-textSecondary)]"},"/",-1)])]),_:1}),a.createElementVNode("div",null,[a.createVNode(cn,{items:t,"container-class":"text-[var(--vts-color-text)]"})])]))}}),IE={class:"p-6 max-w-4xl mx-auto space-y-8"},TE={class:"flex gap-2"},PE={class:"flex justify-end gap-2"},HE={class:"flex justify-end gap-2"},Mp={__name:"CardExample",setup(n){const e={title:"Sample Item",body:" This is a simple card component. You can use it to display content in a structured way.",title_dv:"ސަމްޕަލް އައިޓެމް",body_dv:"ގައުމީ ސިއްހީ އިންޝުއަރެންސް ނިޒާމު އާސަންދަ އޮތީ ސަލާންޖަހަން ޖެހޭ ފަދަ ހާލަތެއްގައިކަން ގަބޫލުކުރަން ދަތި ކަމަށް ހެލްތު މިނިސްޓަރު އަބްދުﷲ ނާޒިމް އިބްރާހީމް މިއަދު ވިދާޅުވެއްޖެއެވެ."},t={en:{title:"title",body:"body"},dv:{title:"title_dv",body:"body_dv"}},r={en:"title",dv:"ކާޑް"};return(o,s)=>(a.openBlock(),a.createElementBlock("div",IE,[s[0]||(s[0]=a.createElementVNode("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Card Components",-1)),a.createElementVNode("div",TE,[a.createVNode(tt,{lang:"en",title:r,labels:t,item:e,cardClass:"w-92 "},{footer:a.withCtx(()=>[a.createElementVNode("div",PE,[a.createVNode(ye,{size:"xs",color:"gray",variant:"outlined",label:"buttons.cancel"}),a.createVNode(ye,{size:"xs",label:"buttons.save",variant:"default"})])]),_:1}),a.createVNode(tt,{title:t,lang:"dv",labels:t,item:e,cardClass:"w-92 ",rounded:"xl",class:"border-dashed"},{footer:a.withCtx(()=>[a.createElementVNode("div",HE,[a.createVNode(ye,{lang:"dv",size:"xs",label:"buttons.save",variant:"default"}),a.createVNode(ye,{lang:"dv",size:"xs",color:"gray",variant:"outlined",label:"buttons.cancel"})])]),_:1})])]))}},RE={class:"p-6 max-w-4xl mx-auto space-y-8"},OE={class:"space-y-4"},zE={class:"flex flex-wrap gap-2"},ZE={class:"flex flex-wrap gap-2"},FE={class:"flex flex-wrap gap-2"},_E={class:"flex flex-wrap items-center gap-4"},XE={class:"space-y-4"},YE={class:"flex flex-wrap gap-2"},$E={class:"flex flex-wrap gap-2"},WE={class:"flex flex-wrap gap-2"},jE={class:"flex flex-wrap gap-2"},UE={class:"space-y-4"},Vp={__name:"ChipExample",setup(n){const e=a.ref(["JavaScript","Vue.js","TypeScript","Tailwind CSS","Node.js"]),t=a.ref([{id:1,text:"Frontend"},{id:2,text:"Backend"},{id:3,text:"Database"},{id:4,text:"DevOps"}]),r=a.ref([{id:1,text:"High Priority",color:"error",variant:"filled",clickable:!0},{id:2,text:"Medium Priority",color:"warning",variant:"outlined",clickable:!0},{id:3,text:"Low Priority",color:"info",variant:"default",clickable:!0},{id:4,text:"Completed",color:"success",variant:"tonal",closable:!0}]),o=()=>{console.log("Chip clicked!")},s=()=>{console.log("Chip closed!")},i=c=>{console.log("Group chip clicked:",c)},l=c=>{console.log("Group chip closed:",c)};return(c,h)=>(a.openBlock(),a.createElementBlock("div",RE,[h[10]||(h[10]=a.createElementVNode("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Chip Components",-1)),a.createVNode(tt,{title:"Basic Chips",class:"space-y-4"},{default:a.withCtx(()=>[a.createElementVNode("div",OE,[a.createElementVNode("div",null,[h[1]||(h[1]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Default Variants",-1)),a.createElementVNode("div",zE,[a.createVNode(Ze,{label:"Default"}),a.createVNode(Ze,{label:"Primary",color:"primary"}),a.createVNode(Ze,{label:"Secondary",color:"secondary"}),a.createVNode(Ze,{label:"Success",color:"success"}),a.createVNode(Ze,{label:"Warning",color:"warning"}),a.createVNode(Ze,{label:"Error",color:"error"}),a.createVNode(Ze,{label:"Info",color:"info"})])]),a.createElementVNode("div",null,[h[2]||(h[2]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Outlined Variants",-1)),a.createElementVNode("div",ZE,[a.createVNode(Ze,{label:"Default",variant:"outlined"}),a.createVNode(Ze,{label:"Primary",variant:"outlined",color:"primary"}),a.createVNode(Ze,{label:"Secondary",variant:"outlined",color:"secondary"}),a.createVNode(Ze,{label:"Success",variant:"outlined",color:"success"}),a.createVNode(Ze,{label:"Warning",variant:"outlined",color:"warning"}),a.createVNode(Ze,{label:"Error",variant:"outlined",color:"error"}),a.createVNode(Ze,{label:"Info",variant:"outlined",color:"info"})])]),a.createElementVNode("div",null,[h[3]||(h[3]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Filled Variants",-1)),a.createElementVNode("div",FE,[a.createVNode(Ze,{label:"Default",variant:"filled"}),a.createVNode(Ze,{label:"Primary",variant:"filled",color:"primary"}),a.createVNode(Ze,{label:"Secondary",variant:"filled",color:"secondary"}),a.createVNode(Ze,{label:"Success",variant:"filled",color:"success"}),a.createVNode(Ze,{label:"Warning",variant:"filled",color:"warning"}),a.createVNode(Ze,{label:"Error",variant:"filled",color:"error"}),a.createVNode(Ze,{label:"Info",variant:"filled",color:"info"})])])])]),_:1}),a.createVNode(tt,{title:"Chip Sizes",class:"space-y-4"},{default:a.withCtx(()=>[a.createElementVNode("div",_E,[a.createVNode(Ze,{label:"Small Chip",size:"small"}),a.createVNode(Ze,{label:"Default Chip",size:"default"}),a.createVNode(Ze,{label:"Large Chip",size:"large"})])]),_:1}),a.createVNode(tt,{title:"Interactive Chips",class:"space-y-4"},{default:a.withCtx(()=>[a.createElementVNode("div",XE,[a.createElementVNode("div",null,[h[4]||(h[4]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Clickable Chips",-1)),a.createElementVNode("div",YE,[a.createVNode(Ze,{label:"Click Me",clickable:"",onClick:o}),a.createVNode(Ze,{label:"Primary Click",color:"primary",clickable:"",onClick:o}),a.createVNode(Ze,{label:"Success Click",color:"success",clickable:"",onClick:o})])]),a.createElementVNode("div",null,[h[5]||(h[5]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Closable Chips",-1)),a.createElementVNode("div",$E,[a.createVNode(Ze,{label:"Closable",closable:"",onClose:s}),a.createVNode(Ze,{label:"Primary Close",color:"primary",closable:"",onClose:s}),a.createVNode(Ze,{label:"Error Close",color:"error",variant:"filled",closable:"",onClose:s})])]),a.createElementVNode("div",null,[h[6]||(h[6]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Disabled Chips",-1)),a.createElementVNode("div",WE,[a.createVNode(Ze,{label:"Disabled",disabled:""}),a.createVNode(Ze,{label:"Disabled Click",clickable:"",disabled:""}),a.createVNode(Ze,{label:"Disabled Close",closable:"",disabled:""})])])])]),_:1}),a.createVNode(tt,{title:"Custom Styled Chips",class:"space-y-4"},{default:a.withCtx(()=>[a.createElementVNode("div",jE,[a.createVNode(Ze,{label:"Custom Purple","bg-color":"bg-purple-100","text-color":"text-purple-800",clickable:"",onClick:o}),a.createVNode(Ze,{label:"Custom Gradient","bg-color":"bg-gradient-to-r from-pink-500 to-violet-500","text-color":"text-white",rounded:"lg",clickable:"",onClick:o}),a.createVNode(Ze,{label:"Custom Border",variant:"outlined","border-color":"border-orange-500","text-color":"text-orange-600",closable:"",onClose:s})])]),_:1}),a.createVNode(tt,{title:"Chip Groups",class:"space-y-6"},{default:a.withCtx(()=>[a.createElementVNode("div",UE,[a.createElementVNode("div",null,[h[7]||(h[7]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Simple Chip Group",-1)),a.createVNode(us,{chips:e.value,color:"primary",clickable:"",onChipClick:i},null,8,["chips"])]),a.createElementVNode("div",null,[h[8]||(h[8]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Closable Chip Group",-1)),a.createVNode(us,{chips:t.value,"onUpdate:chips":h[0]||(h[0]=d=>t.value=d),color:"success",closable:"",onChipClose:l},null,8,["chips"])]),a.createElementVNode("div",null,[h[9]||(h[9]=a.createElementVNode("h4",{class:"text-lg font-semibold mb-2"},"Mixed Styled Chips",-1)),a.createVNode(us,{chips:r.value,gap:"lg",justify:"center",onChipClick:i},null,8,["chips"])])])]),_:1})]))}},GE={class:"p-6 max-w-4xl mx-auto space-y-8"},qE={class:"flex items-center gap-4 flex-wrap"},KE={class:"mt-4 p-4 bg-gray-100 rounded"},QE={class:"text-sm font-medium"},Np={__name:"DropdownExample",setup(n){const e=a.ref(null),t=[{label:"Profile",value:"profile"},{label:"Settings",value:"settings"},{label:"Logout",value:"logout"}],r=l=>{e.value=l.label||l,console.log("Selected:",l)},o=()=>{console.log("Edit clicked")},s=()=>{console.log("View clicked")},i=()=>{console.log("Delete clicked")};return(l,c)=>(a.openBlock(),a.createElementBlock("div",GE,[c[8]||(c[8]=a.createElementVNode("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Dropdown Components",-1)),a.createVNode(tt,{title:"Dropdown Examples",class:"space-y-6"},{default:a.withCtx(()=>[a.createElementVNode("div",qE,[a.createVNode(Hr,{label:"Select Option",items:t,onSelect:r}),a.createVNode(Hr,{variant:"outlined",color:"success",label:"Select Option",items:t,onSelect:r}),a.createVNode(Hr,{items:t,onSelect:r},{trigger:a.withCtx(()=>[...c[0]||(c[0]=[a.createElementVNode("button",{class:"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700"}," Custom Trigger ",-1)])]),_:1}),a.createVNode(Hr,{label:"Actions",align:"right"},{default:a.withCtx(()=>[a.createVNode(qi,{onSelect:o},{prepend:a.withCtx(()=>[...c[1]||(c[1]=[a.createTextVNode("📝",-1)])]),default:a.withCtx(()=>[c[2]||(c[2]=a.createTextVNode(" Edit ",-1))]),_:1}),a.createVNode(qi,{onSelect:s},{prepend:a.withCtx(()=>[...c[3]||(c[3]=[a.createTextVNode("👁️",-1)])]),default:a.withCtx(()=>[c[4]||(c[4]=a.createTextVNode(" View ",-1))]),_:1}),c[7]||(c[7]=a.createElementVNode("div",{class:"border-t my-1"},null,-1)),a.createVNode(qi,{onSelect:i},{prepend:a.withCtx(()=>[...c[5]||(c[5]=[a.createTextVNode("🗑️",-1)])]),default:a.withCtx(()=>[c[6]||(c[6]=a.createTextVNode(" Delete ",-1))]),_:1})]),_:1}),a.createVNode(Hr,{label:"Dense Menu",dense:"",items:t,onSelect:r}),a.createVNode(Hr,{label:"Hover Menu","open-on-hover":"",items:t,onSelect:r}),a.createVNode(Hr,{label:"Right Aligned",align:"right",items:t,onSelect:r})]),a.createElementVNode("div",KE,[a.createElementVNode("p",QE,"Selected: "+a.toDisplayString(e.value||"None"),1)])]),_:1})]))}};function Xt(n){this.content=n}Xt.prototype={constructor:Xt,find:function(n){for(var e=0;e<this.content.length;e+=2)if(this.content[e]===n)return e;return-1},get:function(n){var e=this.find(n);return e==-1?void 0:this.content[e+1]},update:function(n,e,t){var r=t&&t!=n?this.remove(t):this,o=r.find(n),s=r.content.slice();return o==-1?s.push(t||n,e):(s[o+1]=e,t&&(s[o]=t)),new Xt(s)},remove:function(n){var e=this.find(n);if(e==-1)return this;var t=this.content.slice();return t.splice(e,2),new Xt(t)},addToStart:function(n,e){return new Xt([n,e].concat(this.remove(n).content))},addToEnd:function(n,e){var t=this.remove(n).content.slice();return t.push(n,e),new Xt(t)},addBefore:function(n,e,t){var r=this.remove(e),o=r.content.slice(),s=r.find(n);return o.splice(s==-1?o.length:s,0,e,t),new Xt(o)},forEach:function(n){for(var e=0;e<this.content.length;e+=2)n(this.content[e],this.content[e+1])},prepend:function(n){return n=Xt.from(n),n.size?new Xt(n.content.concat(this.subtract(n).content)):this},append:function(n){return n=Xt.from(n),n.size?new Xt(this.subtract(n).content.concat(n.content)):this},subtract:function(n){var e=this;n=Xt.from(n);for(var t=0;t<n.content.length;t+=2)e=e.remove(n.content[t]);return e},toObject:function(){var n={};return this.forEach(function(e,t){n[e]=t}),n},get size(){return this.content.length>>1}},Xt.from=function(n){if(n instanceof Xt)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new Xt(e)};function Dp(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let o=n.child(r),s=e.child(r);if(o==s){t+=o.nodeSize;continue}if(!o.sameMarkup(s))return t;if(o.isText&&o.text!=s.text){for(let i=0;o.text[i]==s.text[i];i++)t++;return t}if(o.content.size||s.content.size){let i=Dp(o.content,s.content,t+1);if(i!=null)return i}t+=o.nodeSize}}function Lp(n,e,t,r){for(let o=n.childCount,s=e.childCount;;){if(o==0||s==0)return o==s?null:{a:t,b:r};let i=n.child(--o),l=e.child(--s),c=i.nodeSize;if(i==l){t-=c,r-=c;continue}if(!i.sameMarkup(l))return{a:t,b:r};if(i.isText&&i.text!=l.text){let h=0,d=Math.min(i.text.length,l.text.length);for(;h<d&&i.text[i.text.length-h-1]==l.text[l.text.length-h-1];)h++,t--,r--;return{a:t,b:r}}if(i.content.size||l.content.size){let h=Lp(i.content,l.content,t-1,r-1);if(h)return h}t-=c,r-=c}}class fe{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let r=0;r<e.length;r++)this.size+=e[r].nodeSize}nodesBetween(e,t,r,o=0,s){for(let i=0,l=0;l<t;i++){let c=this.content[i],h=l+c.nodeSize;if(h>e&&r(c,o+l,s||null,i)!==!1&&c.content.size){let d=l+1;c.nodesBetween(Math.max(0,e-d),Math.min(c.content.size,t-d),r,o+d)}l=h}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,o){let s="",i=!0;return this.nodesBetween(e,t,(l,c)=>{let h=l.isText?l.text.slice(Math.max(e,c)-c,t-c):l.isLeaf?o?typeof o=="function"?o(l):o:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&h||l.isTextblock)&&r&&(i?i=!1:s+=r),s+=h},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,o=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(r)&&(o[o.length-1]=t.withText(t.text+r.text),s=1);s<e.content.length;s++)o.push(e.content[s]);return new fe(o,this.size+e.size)}cut(e,t=this.size){if(e==0&&t==this.size)return this;let r=[],o=0;if(t>e)for(let s=0,i=0;i<t;s++){let l=this.content[s],c=i+l.nodeSize;c>e&&((i<e||c>t)&&(l.isText?l=l.cut(Math.max(0,e-i),Math.min(l.text.length,t-i)):l=l.cut(Math.max(0,e-i-1),Math.min(l.content.size,t-i-1))),r.push(l),o+=l.nodeSize),i=c}return new fe(r,o)}cutByIndex(e,t){return e==t?fe.empty:e==0&&t==this.content.length?this:new fe(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let o=this.content.slice(),s=this.size+t.nodeSize-r.nodeSize;return o[e]=t,new fe(o,s)}addToStart(e){return new fe([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new fe(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+" out of range for "+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,r=0;t<this.content.length;t++){let o=this.content[t];e(o,r,t),r+=o.nodeSize}}findDiffStart(e,t=0){return Dp(this,e,t)}findDiffEnd(e,t=this.size,r=e.size){return Lp(this,e,t,r)}findIndex(e){if(e==0)return il(0,e);if(e==this.size)return il(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let o=this.child(t),s=r+o.nodeSize;if(s>=e)return s==e?il(t+1,s):il(t,r);r=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return fe.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new fe(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return fe.empty;let t,r=0;for(let o=0;o<e.length;o++){let s=e[o];r+=s.nodeSize,o&&s.isText&&e[o-1].sameMarkup(s)?(t||(t=e.slice(0,o)),t[t.length-1]=s.withText(t[t.length-1].text+s.text)):t&&t.push(s)}return new fe(t||e,r)}static from(e){if(!e)return fe.empty;if(e instanceof fe)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new fe([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}fe.empty=new fe([],0);const ed={index:0,offset:0};function il(n,e){return ed.index=n,ed.offset=e,ed}function ll(n,e){if(n===e)return!0;if(!(n&&typeof n=="object")||!(e&&typeof e=="object"))return!1;let t=Array.isArray(n);if(Array.isArray(e)!=t)return!1;if(t){if(n.length!=e.length)return!1;for(let r=0;r<n.length;r++)if(!ll(n[r],e[r]))return!1}else{for(let r in n)if(!(r in e)||!ll(n[r],e[r]))return!1;for(let r in e)if(!(r in n))return!1}return!0}let ft=class K1{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,r=!1;for(let o=0;o<e.length;o++){let s=e[o];if(this.eq(s))return e;if(this.type.excludes(s.type))t||(t=e.slice(0,o));else{if(s.type.excludes(this.type))return e;!r&&s.type.rank>this.type.rank&&(t||(t=e.slice(0,o)),t.push(this),r=!0),t&&t.push(s)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&ll(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mark.fromJSON");let r=e.marks[t.type];if(!r)throw new RangeError(`There is no mark type ${t.type} in this schema`);let o=r.create(t.attrs);return r.checkAttrs(o.attrs),o}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!e[r].eq(t[r]))return!1;return!0}static setFrom(e){if(!e||Array.isArray(e)&&e.length==0)return K1.none;if(e instanceof K1)return[e];let t=e.slice();return t.sort((r,o)=>r.type.rank-o.type.rank),t}};ft.none=[];class cl extends Error{}class ve{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=Tp(this.content,e+this.openStart,t);return r&&new ve(r,this.openStart,this.openEnd)}removeBetween(e,t){return new ve(Ip(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return ve.empty;let r=t.openStart||0,o=t.openEnd||0;if(typeof r!="number"||typeof o!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new ve(fe.fromJSON(e,t.content),r,o)}static maxOpen(e,t=!0){let r=0,o=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)o++;return new ve(e,r,o)}}ve.empty=new ve(fe.empty,0,0);function Ip(n,e,t){let{index:r,offset:o}=n.findIndex(e),s=n.maybeChild(r),{index:i,offset:l}=n.findIndex(t);if(o==e||s.isText){if(l!=t&&!n.child(i).isText)throw new RangeError("Removing non-flat range");return n.cut(0,e).append(n.cut(t))}if(r!=i)throw new RangeError("Removing non-flat range");return n.replaceChild(r,s.copy(Ip(s.content,e-o-1,t-o-1)))}function Tp(n,e,t,r){let{index:o,offset:s}=n.findIndex(e),i=n.maybeChild(o);if(s==e||i.isText)return r&&!r.canReplace(o,o,t)?null:n.cut(0,e).append(t).append(n.cut(e));let l=Tp(i.content,e-s-1,t,i);return l&&n.replaceChild(o,i.copy(l))}function JE(n,e,t){if(t.openStart>n.depth)throw new cl("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new cl("Inconsistent open depths");return Pp(n,e,t,0)}function Pp(n,e,t,r){let o=n.index(r),s=n.node(r);if(o==e.index(r)&&r<n.depth-t.openStart){let i=Pp(n,e,t,r+1);return s.copy(s.content.replaceChild(o,i))}else if(t.content.size)if(!t.openStart&&!t.openEnd&&n.depth==r&&e.depth==r){let i=n.parent,l=i.content;return Mo(i,l.cut(0,n.parentOffset).append(t.content).append(l.cut(e.parentOffset)))}else{let{start:i,end:l}=eS(t,n);return Mo(s,Rp(n,i,l,e,r))}else return Mo(s,dl(n,e,r))}function Hp(n,e){if(!e.type.compatibleContent(n.type))throw new cl("Cannot join "+e.type.name+" onto "+n.type.name)}function td(n,e,t){let r=n.node(t);return Hp(r,e.node(t)),r}function So(n,e){let t=e.length-1;t>=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function Ps(n,e,t,r){let o=(e||n).node(t),s=0,i=e?e.index(t):o.childCount;n&&(s=n.index(t),n.depth>t?s++:n.textOffset&&(So(n.nodeAfter,r),s++));for(let l=s;l<i;l++)So(o.child(l),r);e&&e.depth==t&&e.textOffset&&So(e.nodeBefore,r)}function Mo(n,e){return n.type.checkContent(e),n.copy(e)}function Rp(n,e,t,r,o){let s=n.depth>o&&td(n,e,o+1),i=r.depth>o&&td(t,r,o+1),l=[];return Ps(null,n,o,l),s&&i&&e.index(o)==t.index(o)?(Hp(s,i),So(Mo(s,Rp(n,e,t,r,o+1)),l)):(s&&So(Mo(s,dl(n,e,o+1)),l),Ps(e,t,o,l),i&&So(Mo(i,dl(t,r,o+1)),l)),Ps(r,null,o,l),new fe(l)}function dl(n,e,t){let r=[];if(Ps(null,n,t,r),n.depth>t){let o=td(n,e,t+1);So(Mo(o,dl(n,e,t+1)),r)}return Ps(e,null,t,r),new fe(r)}function eS(n,e){let t=e.depth-n.openStart,o=e.node(t).copy(n.content);for(let s=t-1;s>=0;s--)o=e.node(s).copy(fe.from(o));return{start:o.resolveNoCache(n.openStart+t),end:o.resolveNoCache(o.content.size-n.openEnd-t)}}class Hs{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],o=e.child(t);return r?e.child(t).cut(r):o}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],o=t==0?0:this.path[t*3-1]+1;for(let s=0;s<e;s++)o+=r.child(s).nodeSize;return o}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return ft.none;if(this.textOffset)return e.child(t).marks;let r=e.maybeChild(t-1),o=e.maybeChild(t);if(!r){let l=r;r=o,o=l}let s=r.marks;for(var i=0;i<s.length;i++)s[i].type.spec.inclusive===!1&&(!o||!s[i].isInSet(o.marks))&&(s=s[i--].removeFromSet(s));return s}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let r=t.marks,o=e.parent.maybeChild(e.index());for(var s=0;s<r.length;s++)r[s].type.spec.inclusive===!1&&(!o||!r[s].isInSet(o.marks))&&(r=r[s--].removeFromSet(r));return r}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let r=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);r>=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new hl(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e="";for(let t=1;t<=this.depth;t++)e+=(e?"/":"")+this.node(t).type.name+"_"+this.index(t-1);return e+":"+this.parentOffset}static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let r=[],o=0,s=t;for(let i=e;;){let{index:l,offset:c}=i.content.findIndex(s),h=s-c;if(r.push(i,l,o+c),!h||(i=i.child(l),i.isText))break;s=h-1,o+=c+1}return new Hs(t,r,s)}static resolveCached(e,t){let r=Op.get(e);if(r)for(let s=0;s<r.elts.length;s++){let i=r.elts[s];if(i.pos==t)return i}else Op.set(e,r=new tS);let o=r.elts[r.i]=Hs.resolve(e,t);return r.i=(r.i+1)%aS,o}}class tS{constructor(){this.elts=[],this.i=0}}const aS=12,Op=new WeakMap;class hl{constructor(e,t,r){this.$from=e,this.$to=t,this.depth=r}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}}const rS=Object.create(null);let Vo=class Q1{constructor(e,t,r,o=ft.none){this.type=e,this.attrs=t,this.marks=o,this.content=r||fe.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,r,o=0){this.content.nodesBetween(e,t,r,o,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,"")}textBetween(e,t,r,o){return this.content.textBetween(e,t,r,o)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,r){return this.type==e&&ll(this.attrs,t||e.defaultAttrs||rS)&&ft.sameSet(this.marks,r||ft.none)}copy(e=null){return e==this.content?this:new Q1(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new Q1(this.type,this.attrs,this.content,e)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,r=!1){if(e==t)return ve.empty;let o=this.resolve(e),s=this.resolve(t),i=r?0:o.sharedDepth(t),l=o.start(i),h=o.node(i).content.cut(o.pos-l,s.pos-l);return new ve(h,o.depth-i,s.depth-i)}replace(e,t,r){return JE(this.resolve(e),this.resolve(t),r)}nodeAt(e){for(let t=this;;){let{index:r,offset:o}=t.content.findIndex(e);if(t=t.maybeChild(r),!t)return null;if(o==e||t.isText)return t;e-=o+1}}childAfter(e){let{index:t,offset:r}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:r}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:r}=this.content.findIndex(e);if(r<e)return{node:this.content.child(t),index:t,offset:r};let o=this.content.child(t-1);return{node:o,index:t-1,offset:r-o.nodeSize}}resolve(e){return Hs.resolveCached(this,e)}resolveNoCache(e){return Hs.resolve(this,e)}rangeHasMark(e,t,r){let o=!1;return t>e&&this.nodesBetween(e,t,s=>(r.isInSet(s.marks)&&(o=!0),!o)),o}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),zp(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,r=fe.empty,o=0,s=r.childCount){let i=this.contentMatchAt(e).matchFragment(r,o,s),l=i&&i.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let c=o;c<s;c++)if(!this.type.allowsMarks(r.child(c).marks))return!1;return!0}canReplaceWith(e,t,r,o){if(o&&!this.type.allowsMarks(o))return!1;let s=this.contentMatchAt(e).matchType(r),i=s&&s.matchFragment(this.content,t);return i?i.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=ft.none;for(let t=0;t<this.marks.length;t++){let r=this.marks[t];r.type.checkAttrs(r.attrs),e=r.addToSet(e)}if(!ft.sameSet(e,this.marks))throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(t=>t.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,r)}let o=fe.fromJSON(e,t.content),s=e.nodeType(t.type).create(t.attrs,o,r);return s.type.checkAttrs(s.attrs),s}};Vo.prototype.text=void 0;class ul extends Vo{constructor(e,t,r,o){if(super(e,t,null,o),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):zp(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new ul(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new ul(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function zp(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}class No{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new oS(e,t);if(r.next==null)return No.empty;let o=Zp(r);r.next&&r.err("Unexpected trailing text");let s=hS(dS(o));return uS(s,r),s}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,r=e.childCount){let o=this;for(let s=t;o&&s<r;s++)o=o.matchType(e.child(s).type);return o}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let r=0;r<e.next.length;r++)if(this.next[t].type==e.next[r].type)return!0;return!1}fillBefore(e,t=!1,r=0){let o=[this];function s(i,l){let c=i.matchFragment(e,r);if(c&&(!t||c.validEnd))return fe.from(l.map(h=>h.createAndFill()));for(let h=0;h<i.next.length;h++){let{type:d,next:u}=i.next[h];if(!(d.isText||d.hasRequiredAttrs())&&o.indexOf(u)==-1){o.push(u);let p=s(u,l.concat(d));if(p)return p}}return null}return s(this,[])}findWrapping(e){for(let r=0;r<this.wrapCache.length;r+=2)if(this.wrapCache[r]==e)return this.wrapCache[r+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),r=[{match:this,type:null,via:null}];for(;r.length;){let o=r.shift(),s=o.match;if(s.matchType(e)){let i=[];for(let l=o;l.type;l=l.via)i.push(l.type);return i.reverse()}for(let i=0;i<s.next.length;i++){let{type:l,next:c}=s.next[i];!l.isLeaf&&!l.hasRequiredAttrs()&&!(l.name in t)&&(!o.type||c.validEnd)&&(r.push({match:l.contentMatch,type:l,via:o}),t[l.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let o=0;o<r.next.length;o++)e.indexOf(r.next[o].next)==-1&&t(r.next[o].next)}return t(this),e.map((r,o)=>{let s=o+(r.validEnd?"*":" ")+" ";for(let i=0;i<r.next.length;i++)s+=(i?", ":"")+r.next[i].type.name+"->"+e.indexOf(r.next[i].next);return s}).join(`
|
|
988
988
|
`)}}No.empty=new No(!0);class oS{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function Zp(n){let e=[];do e.push(nS(n));while(n.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function nS(n){let e=[];do e.push(sS(n));while(n.next&&n.next!=")"&&n.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function sS(n){let e=cS(n);for(;;)if(n.eat("+"))e={type:"plus",expr:e};else if(n.eat("*"))e={type:"star",expr:e};else if(n.eat("?"))e={type:"opt",expr:e};else if(n.eat("{"))e=iS(n,e);else break;return e}function Fp(n){/\D/.test(n.next)&&n.err("Expected number, got '"+n.next+"'");let e=Number(n.next);return n.pos++,e}function iS(n,e){let t=Fp(n),r=t;return n.eat(",")&&(n.next!="}"?r=Fp(n):r=-1),n.eat("}")||n.err("Unclosed braced range"),{type:"range",min:t,max:r,expr:e}}function lS(n,e){let t=n.nodeTypes,r=t[e];if(r)return[r];let o=[];for(let s in t){let i=t[s];i.isInGroup(e)&&o.push(i)}return o.length==0&&n.err("No node type or group '"+e+"' found"),o}function cS(n){if(n.eat("(")){let e=Zp(n);return n.eat(")")||n.err("Missing closing paren"),e}else if(/\W/.test(n.next))n.err("Unexpected token '"+n.next+"'");else{let e=lS(n,n.next).map(t=>(n.inline==null?n.inline=t.isInline:n.inline!=t.isInline&&n.err("Mixing inline and block content"),{type:"name",value:t}));return n.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function dS(n){let e=[[]];return o(s(n,0),t()),e;function t(){return e.push([])-1}function r(i,l,c){let h={term:c,to:l};return e[i].push(h),h}function o(i,l){i.forEach(c=>c.to=l)}function s(i,l){if(i.type=="choice")return i.exprs.reduce((c,h)=>c.concat(s(h,l)),[]);if(i.type=="seq")for(let c=0;;c++){let h=s(i.exprs[c],l);if(c==i.exprs.length-1)return h;o(h,l=t())}else if(i.type=="star"){let c=t();return r(l,c),o(s(i.expr,c),c),[r(c)]}else if(i.type=="plus"){let c=t();return o(s(i.expr,l),c),o(s(i.expr,c),c),[r(c)]}else{if(i.type=="opt")return[r(l)].concat(s(i.expr,l));if(i.type=="range"){let c=l;for(let h=0;h<i.min;h++){let d=t();o(s(i.expr,c),d),c=d}if(i.max==-1)o(s(i.expr,c),c);else for(let h=i.min;h<i.max;h++){let d=t();r(c,d),o(s(i.expr,c),d),c=d}return[r(c)]}else{if(i.type=="name")return[r(l,void 0,i.value)];throw new Error("Unknown expr type")}}}}function _p(n,e){return e-n}function Xp(n,e){let t=[];return r(e),t.sort(_p);function r(o){let s=n[o];if(s.length==1&&!s[0].term)return r(s[0].to);t.push(o);for(let i=0;i<s.length;i++){let{term:l,to:c}=s[i];!l&&t.indexOf(c)==-1&&r(c)}}}function hS(n){let e=Object.create(null);return t(Xp(n,0));function t(r){let o=[];r.forEach(i=>{n[i].forEach(({term:l,to:c})=>{if(!l)return;let h;for(let d=0;d<o.length;d++)o[d][0]==l&&(h=o[d][1]);Xp(n,c).forEach(d=>{h||o.push([l,h=[]]),h.indexOf(d)==-1&&h.push(d)})})});let s=e[r.join(",")]=new No(r.indexOf(n.length-1)>-1);for(let i=0;i<o.length;i++){let l=o[i][1].sort(_p);s.next.push({type:o[i][0],next:e[l.join(",")]||t(l)})}return s}}function uS(n,e){for(let t=0,r=[n];t<r.length;t++){let o=r[t],s=!o.validEnd,i=[];for(let l=0;l<o.next.length;l++){let{type:c,next:h}=o.next[l];i.push(c.name),s&&!(c.isText||c.hasRequiredAttrs())&&(s=!1),r.indexOf(h)==-1&&r.push(h)}s&&e.err("Only non-generatable nodes ("+i.join(", ")+") in a required position (see https://prosemirror.net/docs/guide/#generatable)")}}function Yp(n){let e=Object.create(null);for(let t in n){let r=n[t];if(!r.hasDefault)return null;e[t]=r.default}return e}function $p(n,e){let t=Object.create(null);for(let r in n){let o=e&&e[r];if(o===void 0){let s=n[r];if(s.hasDefault)o=s.default;else throw new RangeError("No value supplied for attribute "+r)}t[r]=o}return t}function Wp(n,e,t,r){for(let o in e)if(!(o in n))throw new RangeError(`Unsupported attribute ${o} for ${t} of type ${o}`);for(let o in n){let s=n[o];s.validate&&s.validate(e[o])}}function jp(n,e){let t=Object.create(null);if(e)for(let r in e)t[r]=new fS(n,r,e[r]);return t}let Up=class W7{constructor(e,t,r){this.name=e,this.schema=t,this.spec=r,this.markSet=null,this.groups=r.group?r.group.split(" "):[],this.attrs=jp(e,r.attrs),this.defaultAttrs=Yp(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(r.inline||e=="text"),this.isText=e=="text"}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==No.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:$p(this.attrs,e)}create(e=null,t,r){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new Vo(this,this.computeAttrs(e),fe.from(t),ft.setFrom(r))}createChecked(e=null,t,r){return t=fe.from(t),this.checkContent(t),new Vo(this,this.computeAttrs(e),t,ft.setFrom(r))}createAndFill(e=null,t,r){if(e=this.computeAttrs(e),t=fe.from(t),t.size){let i=this.contentMatch.fillBefore(t);if(!i)return null;t=i.append(t)}let o=this.contentMatch.matchFragment(t),s=o&&o.fillBefore(fe.empty,!0);return s?new Vo(this,e,t.append(s),ft.setFrom(r)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let r=0;r<e.childCount;r++)if(!this.allowsMarks(e.child(r).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw new RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){Wp(this.attrs,e,"node",this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let r=0;r<e.length;r++)this.allowsMarkType(e[r].type)?t&&t.push(e[r]):t||(t=e.slice(0,r));return t?t.length?t:ft.none:e}static compile(e,t){let r=Object.create(null);e.forEach((s,i)=>r[s]=new W7(s,t,i));let o=t.spec.topNode||"doc";if(!r[o])throw new RangeError("Schema is missing its top node type ('"+o+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let s in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};function pS(n,e,t){let r=t.split("|");return o=>{let s=o===null?"null":typeof o;if(r.indexOf(s)<0)throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${n}, got ${s}`)}}class fS{constructor(e,t,r){this.hasDefault=Object.prototype.hasOwnProperty.call(r,"default"),this.default=r.default,this.validate=typeof r.validate=="string"?pS(e,t,r.validate):r.validate}get isRequired(){return!this.hasDefault}}class pl{constructor(e,t,r,o){this.name=e,this.rank=t,this.schema=r,this.spec=o,this.attrs=jp(e,o.attrs),this.excluded=null;let s=Yp(this.attrs);this.instance=s?new ft(this,s):null}create(e=null){return!e&&this.instance?this.instance:new ft(this,$p(this.attrs,e))}static compile(e,t){let r=Object.create(null),o=0;return e.forEach((s,i)=>r[s]=new pl(s,o++,t,i)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){Wp(this.attrs,e,"mark",this.name)}excludes(e){return this.excluded.indexOf(e)>-1}}class mS{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let o in e)t[o]=e[o];t.nodes=Xt.from(e.nodes),t.marks=Xt.from(e.marks||{}),this.nodes=Up.compile(this.spec.nodes,this),this.marks=pl.compile(this.spec.marks,this);let r=Object.create(null);for(let o in this.nodes){if(o in this.marks)throw new RangeError(o+" can not be both a node and a mark");let s=this.nodes[o],i=s.spec.content||"",l=s.spec.marks;if(s.contentMatch=r[i]||(r[i]=No.parse(i,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!s.isInline||!s.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=s}s.markSet=l=="_"?null:l?Gp(this,l.split(" ")):l==""||!s.inlineContent?[]:null}for(let o in this.marks){let s=this.marks[o],i=s.spec.excludes;s.excluded=i==null?[s]:i==""?[]:Gp(this,i.split(" "))}this.nodeFromJSON=o=>Vo.fromJSON(this,o),this.markFromJSON=o=>ft.fromJSON(this,o),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,r,o){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof Up){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(t,r,o)}text(e,t){let r=this.nodes.text;return new ul(r,r.defaultAttrs,e,ft.setFrom(t))}mark(e,t){return typeof e=="string"&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function Gp(n,e){let t=[];for(let r=0;r<e.length;r++){let o=e[r],s=n.marks[o],i=s;if(s)t.push(s);else for(let l in n.marks){let c=n.marks[l];(o=="_"||c.spec.group&&c.spec.group.split(" ").indexOf(o)>-1)&&t.push(i=c)}if(!i)throw new SyntaxError("Unknown mark type: '"+e[r]+"'")}return t}function gS(n){return n.tag!=null}function xS(n){return n.style!=null}let fl=class J1{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let r=this.matchedStyles=[];t.forEach(o=>{if(gS(o))this.tags.push(o);else if(xS(o)){let s=/[^=]*/.exec(o.style)[0];r.indexOf(s)<0&&r.push(s),this.styles.push(o)}}),this.normalizeLists=!this.tags.some(o=>{if(!/^(ul|ol)\b/.test(o.tag)||!o.node)return!1;let s=e.nodes[o.node];return s.contentMatch.matchType(s)})}parse(e,t={}){let r=new Jp(this,t,!1);return r.addAll(e,ft.none,t.from,t.to),r.finish()}parseSlice(e,t={}){let r=new Jp(this,t,!0);return r.addAll(e,ft.none,t.from,t.to),ve.maxOpen(r.finish())}matchTag(e,t,r){for(let o=r?this.tags.indexOf(r)+1:0;o<this.tags.length;o++){let s=this.tags[o];if(yS(e,s.tag)&&(s.namespace===void 0||e.namespaceURI==s.namespace)&&(!s.context||t.matchesContext(s.context))){if(s.getAttrs){let i=s.getAttrs(e);if(i===!1)continue;s.attrs=i||void 0}return s}}}matchStyle(e,t,r,o){for(let s=o?this.styles.indexOf(o)+1:0;s<this.styles.length;s++){let i=this.styles[s],l=i.style;if(!(l.indexOf(e)!=0||i.context&&!r.matchesContext(i.context)||l.length>e.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=t))){if(i.getAttrs){let c=i.getAttrs(t);if(c===!1)continue;i.attrs=c||void 0}return i}}}static schemaRules(e){let t=[];function r(o){let s=o.priority==null?50:o.priority,i=0;for(;i<t.length;i++){let l=t[i];if((l.priority==null?50:l.priority)<s)break}t.splice(i,0,o)}for(let o in e.marks){let s=e.marks[o].spec.parseDOM;s&&s.forEach(i=>{r(i=e2(i)),i.mark||i.ignore||i.clearMark||(i.mark=o)})}for(let o in e.nodes){let s=e.nodes[o].spec.parseDOM;s&&s.forEach(i=>{r(i=e2(i)),i.node||i.ignore||i.mark||(i.node=o)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new J1(e,J1.schemaRules(e)))}};const qp={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},wS={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Kp={ol:!0,ul:!0},Rs=1,ad=2,Os=4;function Qp(n,e,t){return e!=null?(e?Rs:0)|(e==="full"?ad:0):n&&n.whitespace=="pre"?Rs|ad:t&~Os}class ml{constructor(e,t,r,o,s,i){this.type=e,this.attrs=t,this.marks=r,this.solid=o,this.options=i,this.content=[],this.activeMarks=ft.none,this.match=s||(i&Os?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(fe.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let r=this.type.contentMatch,o;return(o=r.findWrapping(e.type))?(this.match=r,o):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&Rs)){let r=this.content[this.content.length-1],o;if(r&&r.isText&&(o=/[ \t\r\n\u000c]+$/.exec(r.text))){let s=r;r.text.length==o[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-o[0].length))}}let t=fe.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(fe.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!qp.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class Jp{constructor(e,t,r){this.parser=e,this.options=t,this.isOpen=r,this.open=0,this.localPreserveWS=!1;let o=t.topNode,s,i=Qp(null,t.preserveWhitespace,0)|(r?Os:0);o?s=new ml(o.type,o.attrs,ft.none,!0,t.topMatch||o.type.contentMatch,i):r?s=new ml(null,null,ft.none,!0,null,i):s=new ml(e.schema.topNodeType,null,ft.none,!0,null,i),this.nodes=[s],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let r=e.nodeValue,o=this.top,s=o.options&ad?"full":this.localPreserveWS||(o.options&Rs)>0,{schema:i}=this.parser;if(s==="full"||o.inlineContext(e)||/[^ \t\r\n\u000c]/.test(r)){if(s)if(s==="full")r=r.replace(/\r\n?/g,`
|
|
989
989
|
`);else if(i.linebreakReplacement&&/[\r\n]/.test(r)&&this.top.findWrapping(i.linebreakReplacement.create())){let l=r.split(/\r?\n|\r/);for(let c=0;c<l.length;c++)c&&this.insertNode(i.linebreakReplacement.create(),t,!0),l[c]&&this.insertNode(i.text(l[c]),t,!/\S/.test(l[c]));r=""}else r=r.replace(/\r?\n|\r/g," ");else if(r=r.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(r)&&this.open==this.nodes.length-1){let l=o.content[o.content.length-1],c=e.previousSibling;(!l||c&&c.nodeName=="BR"||l.isText&&/[ \t\r\n\u000c]$/.test(l.text))&&(r=r.slice(1))}r&&this.insertNode(i.text(r),t,!/\S/.test(r)),this.findInText(e)}else this.findInside(e)}addElement(e,t,r){let o=this.localPreserveWS,s=this.top;(e.tagName=="PRE"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let i=e.nodeName.toLowerCase(),l;Kp.hasOwnProperty(i)&&this.parser.normalizeLists&&bS(e);let c=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(l=this.parser.matchTag(e,this,r));e:if(c?c.ignore:wS.hasOwnProperty(i))this.findInside(e),this.ignoreFallback(e,t);else if(!c||c.skip||c.closeParent){c&&c.closeParent?this.open=Math.max(0,this.open-1):c&&c.skip.nodeType&&(e=c.skip);let h,d=this.needsBlock;if(qp.hasOwnProperty(i))s.content.length&&s.content[0].isInline&&this.open&&(this.open--,s=this.top),h=!0,s.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break e}let u=c&&c.skip?t:this.readStyles(e,t);u&&this.addAll(e,u),h&&this.sync(s),this.needsBlock=d}else{let h=this.readStyles(e,t);h&&this.addElementByRule(e,c,h,c.consuming===!1?l:void 0)}this.localPreserveWS=o}leafFallback(e,t){e.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
|
|
990
990
|
`),t)}ignoreFallback(e,t){e.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"),t,!0)}readStyles(e,t){let r=e.style;if(r&&r.length)for(let o=0;o<this.parser.matchedStyles.length;o++){let s=this.parser.matchedStyles[o],i=r.getPropertyValue(s);if(i)for(let l=void 0;;){let c=this.parser.matchStyle(s,i,this,l);if(!c)break;if(c.ignore)return null;if(c.clearMark?t=t.filter(h=>!c.clearMark(h)):t=t.concat(this.parser.schema.marks[c.mark].create(c.attrs)),c.consuming===!1)l=c;else break}}return t}addElementByRule(e,t,r,o){let s,i;if(t.node)if(i=this.parser.schema.nodes[t.node],i.isLeaf)this.insertNode(i.create(t.attrs),r,e.nodeName=="BR")||this.leafFallback(e,r);else{let c=this.enter(i,t.attrs||null,r,t.preserveWhitespace);c&&(s=!0,r=c)}else{let c=this.parser.schema.marks[t.mark];r=r.concat(c.create(t.attrs))}let l=this.top;if(i&&i.isLeaf)this.findInside(e);else if(o)this.addElement(e,r,o);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(c=>this.insertNode(c,r,!1));else{let c=e;typeof t.contentElement=="string"?c=e.querySelector(t.contentElement):typeof t.contentElement=="function"?c=t.contentElement(e):t.contentElement&&(c=t.contentElement),this.findAround(e,c,!0),this.addAll(c,r),this.findAround(e,c,!1)}s&&this.sync(l)&&this.open--}addAll(e,t,r,o){let s=r||0;for(let i=r?e.childNodes[r]:e.firstChild,l=o==null?null:e.childNodes[o];i!=l;i=i.nextSibling,++s)this.findAtPoint(e,s),this.addDOM(i,t);this.findAtPoint(e,s)}findPlace(e,t,r){let o,s;for(let i=this.open,l=0;i>=0;i--){let c=this.nodes[i],h=c.findWrapping(e);if(h&&(!o||o.length>h.length+l)&&(o=h,s=c,!h.length))break;if(c.solid){if(r)break;l+=2}}if(!o)return null;this.sync(s);for(let i=0;i<o.length;i++)t=this.enterInner(o[i],null,t,!1);return t}insertNode(e,t,r){if(e.isInline&&this.needsBlock&&!this.top.type){let s=this.textblockFromContext();s&&(t=this.enterInner(s,null,t))}let o=this.findPlace(e,t,r);if(o){this.closeExtra();let s=this.top;s.match&&(s.match=s.match.matchType(e.type));let i=ft.none;for(let l of o.concat(e.marks))(s.type?s.type.allowsMarkType(l.type):t2(l.type,e.type))&&(i=l.addToSet(i));return s.content.push(e.mark(i)),!0}return!1}enter(e,t,r,o){let s=this.findPlace(e.create(t),r,!1);return s&&(s=this.enterInner(e,t,r,!0,o)),s}enterInner(e,t,r,o=!1,s){this.closeExtra();let i=this.top;i.match=i.match&&i.match.matchType(e);let l=Qp(e,s,i.options);i.options&Os&&i.content.length==0&&(l|=Os);let c=ft.none;return r=r.filter(h=>(i.type?i.type.allowsMarkType(h.type):t2(h.type,e))?(c=h.addToSet(c),!1):!0),this.nodes.push(new ml(e,t,c,o,null,l)),this.open++,r}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=Rs)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let r=this.nodes[t].content;for(let o=r.length-1;o>=0;o--)e+=r[o].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let r=0;r<this.find.length;r++)this.find[r].node==e&&this.find[r].offset==t&&(this.find[r].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,r){if(e!=t&&this.find)for(let o=0;o<this.find.length;o++)this.find[o].pos==null&&e.nodeType==1&&e.contains(this.find[o].node)&&t.compareDocumentPosition(this.find[o].node)&(r?2:4)&&(this.find[o].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf("|")>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split("/"),r=this.options.context,o=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),s=-(r?r.depth+1:0)+(o?0:1),i=(l,c)=>{for(;l>=0;l--){let h=t[l];if(h==""){if(l==t.length-1||l==0)continue;for(;c>=s;c--)if(i(l-1,c))return!0;return!1}else{let d=c>0||c==0&&o?this.nodes[c].type:r&&c>=s?r.node(c-s).type:null;if(!d||d.name!=h&&!d.isInGroup(h))return!1;c--}}return!0};return i(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let r=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let t in this.parser.schema.nodes){let r=this.parser.schema.nodes[t];if(r.isTextblock&&r.defaultAttrs)return r}}}function bS(n){for(let e=n.firstChild,t=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&Kp.hasOwnProperty(r)&&t?(t.appendChild(e),e=t):r=="li"?t=e:r&&(t=null)}}function yS(n,e){return(n.matches||n.msMatchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector).call(n,e)}function e2(n){let e={};for(let t in n)e[t]=n[t];return e}function t2(n,e){let t=e.schema.nodes;for(let r in t){let o=t[r];if(!o.allowsMarkType(n))continue;let s=[],i=l=>{s.push(l);for(let c=0;c<l.edgeCount;c++){let{type:h,next:d}=l.edge(c);if(h==e||s.indexOf(d)<0&&i(d))return!0}};if(i(o.contentMatch))return!0}}class gl{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},r){r||(r=rd(t).createDocumentFragment());let o=r,s=[];return e.forEach(i=>{if(s.length||i.marks.length){let l=0,c=0;for(;l<s.length&&c<i.marks.length;){let h=i.marks[c];if(!this.marks[h.type.name]){c++;continue}if(!h.eq(s[l][0])||h.type.spec.spanning===!1)break;l++,c++}for(;l<s.length;)o=s.pop()[1];for(;c<i.marks.length;){let h=i.marks[c++],d=this.serializeMark(h,i.isInline,t);d&&(s.push([h,o]),o.appendChild(d.dom),o=d.contentDOM||d.dom)}}o.appendChild(this.serializeNodeInner(i,t))}),r}serializeNodeInner(e,t){let{dom:r,contentDOM:o}=xl(rd(t),this.nodes[e.type.name](e),null,e.attrs);if(o){if(e.isLeaf)throw new RangeError("Content hole not allowed in a leaf node spec");this.serializeFragment(e.content,t,o)}return r}serializeNode(e,t={}){let r=this.serializeNodeInner(e,t);for(let o=e.marks.length-1;o>=0;o--){let s=this.serializeMark(e.marks[o],e.isInline,t);s&&((s.contentDOM||s.dom).appendChild(r),r=s.dom)}return r}serializeMark(e,t,r={}){let o=this.marks[e.type.name];return o&&xl(rd(r),o(e,t),null,e.attrs)}static renderSpec(e,t,r=null,o){return xl(e,t,r,o)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new gl(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=a2(e.nodes);return t.text||(t.text=r=>r.text),t}static marksFromSchema(e){return a2(e.marks)}}function a2(n){let e={};for(let t in n){let r=n[t].spec.toDOM;r&&(e[t]=r)}return e}function rd(n){return n.document||window.document}const r2=new WeakMap;function kS(n){let e=r2.get(n);return e===void 0&&r2.set(n,e=vS(n)),e}function vS(n){let e=null;function t(r){if(r&&typeof r=="object")if(Array.isArray(r))if(typeof r[0]=="string")e||(e=[]),e.push(r);else for(let o=0;o<r.length;o++)t(r[o]);else for(let o in r)t(r[o])}return t(n),e}function xl(n,e,t,r){if(typeof e=="string")return{dom:n.createTextNode(e)};if(e.nodeType!=null)return{dom:e};if(e.dom&&e.dom.nodeType!=null)return e;let o=e[0],s;if(typeof o!="string")throw new RangeError("Invalid array passed to renderSpec");if(r&&(s=kS(r))&&s.indexOf(e)>-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let i=o.indexOf(" ");i>0&&(t=o.slice(0,i),o=o.slice(i+1));let l,c=t?n.createElementNS(t,o):n.createElement(o),h=e[1],d=1;if(h&&typeof h=="object"&&h.nodeType==null&&!Array.isArray(h)){d=2;for(let u in h)if(h[u]!=null){let p=u.indexOf(" ");p>0?c.setAttributeNS(u.slice(0,p),u.slice(p+1),h[u]):u=="style"&&c.style?c.style.cssText=h[u]:c.setAttribute(u,h[u])}}for(let u=d;u<e.length;u++){let p=e[u];if(p===0){if(u<e.length-1||u>d)throw new RangeError("Content hole must be the only child of its parent node");return{dom:c,contentDOM:c}}else{let{dom:f,contentDOM:g}=xl(n,p,t,r);if(c.appendChild(f),g){if(l)throw new RangeError("Multiple content holes");l=g}}}return{dom:c,contentDOM:l}}const o2=65535,n2=Math.pow(2,16);function CS(n,e){return n+e*n2}function s2(n){return n&o2}function AS(n){return(n-(n&o2))/n2}const i2=1,l2=2,wl=4,c2=8;class od{constructor(e,t,r){this.pos=e,this.delInfo=t,this.recover=r}get deleted(){return(this.delInfo&c2)>0}get deletedBefore(){return(this.delInfo&(i2|wl))>0}get deletedAfter(){return(this.delInfo&(l2|wl))>0}get deletedAcross(){return(this.delInfo&wl)>0}}class ya{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&ya.empty)return ya.empty}recover(e){let t=0,r=s2(e);if(!this.inverted)for(let o=0;o<r;o++)t+=this.ranges[o*3+2]-this.ranges[o*3+1];return this.ranges[r*3]+t+AS(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,r){let o=0,s=this.inverted?2:1,i=this.inverted?1:2;for(let l=0;l<this.ranges.length;l+=3){let c=this.ranges[l]-(this.inverted?o:0);if(c>e)break;let h=this.ranges[l+s],d=this.ranges[l+i],u=c+h;if(e<=u){let p=h?e==c?-1:e==u?1:t:t,f=c+o+(p<0?0:d);if(r)return f;let g=e==(t<0?c:u)?null:CS(l/3,e-c),m=e==c?l2:e==u?i2:wl;return(t<0?e!=c:e!=u)&&(m|=c2),new od(f,m,g)}o+=d-h}return r?e+o:new od(e+o,0,null)}touches(e,t){let r=0,o=s2(t),s=this.inverted?2:1,i=this.inverted?1:2;for(let l=0;l<this.ranges.length;l+=3){let c=this.ranges[l]-(this.inverted?r:0);if(c>e)break;let h=this.ranges[l+s],d=c+h;if(e<=d&&l==o*3)return!0;r+=this.ranges[l+i]-h}return!1}forEach(e){let t=this.inverted?2:1,r=this.inverted?1:2;for(let o=0,s=0;o<this.ranges.length;o+=3){let i=this.ranges[o],l=i-(this.inverted?s:0),c=i+(this.inverted?0:s),h=this.ranges[o+t],d=this.ranges[o+r];e(l,l+h,c,c+d),s+=d-h}}invert(){return new ya(this.ranges,!this.inverted)}toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}static offset(e){return e==0?ya.empty:new ya(e<0?[0,-e,0]:[0,0,e])}}ya.empty=new ya([]);class zs{constructor(e,t,r=0,o=e?e.length:0){this.mirror=t,this.from=r,this.to=o,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(e=0,t=this.maps.length){return new zs(this._maps,this.mirror,e,t)}appendMap(e,t){this.ownData||(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),this.ownData=!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,r=this._maps.length;t<e._maps.length;t++){let o=e.getMirror(t);this.appendMap(e._maps[t],o!=null&&o<t?r+o:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,r=this._maps.length+e._maps.length;t>=0;t--){let o=e.getMirror(t);this.appendMap(e._maps[t].invert(),o!=null&&o>t?r-o-1:void 0)}}invert(){let e=new zs;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let r=this.from;r<this.to;r++)e=this._maps[r].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,r){let o=0;for(let s=this.from;s<this.to;s++){let i=this._maps[s],l=i.mapResult(e,t);if(l.recover!=null){let c=this.getMirror(s);if(c!=null&&c>s&&c<this.to){s=c,e=this._maps[c].recover(l.recover);continue}}o|=l.delInfo,e=l.pos}return r?e:new od(e,o,null)}}const nd=Object.create(null);class Qt{getMap(){return ya.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError("Invalid input for Step.fromJSON");let r=nd[t.stepType];if(!r)throw new RangeError(`No step type ${t.stepType} defined`);return r.fromJSON(e,t)}static jsonID(e,t){if(e in nd)throw new RangeError("Duplicate use of step JSON ID "+e);return nd[e]=t,t.prototype.jsonID=e,t}}class It{constructor(e,t){this.doc=e,this.failed=t}static ok(e){return new It(e,null)}static fail(e){return new It(null,e)}static fromReplace(e,t,r,o){try{return It.ok(e.replace(t,r,o))}catch(s){if(s instanceof cl)return It.fail(s.message);throw s}}}function sd(n,e,t){let r=[];for(let o=0;o<n.childCount;o++){let s=n.child(o);s.content.size&&(s=s.copy(sd(s.content,e,s))),s.isInline&&(s=e(s,t,o)),r.push(s)}return fe.fromArray(r)}class zr extends Qt{constructor(e,t,r){super(),this.from=e,this.to=t,this.mark=r}apply(e){let t=e.slice(this.from,this.to),r=e.resolve(this.from),o=r.node(r.sharedDepth(this.to)),s=new ve(sd(t.content,(i,l)=>!i.isAtom||!l.type.allowsMarkType(this.mark.type)?i:i.mark(this.mark.addToSet(i.marks)),o),t.openStart,t.openEnd);return It.fromReplace(e,this.from,this.to,s)}invert(){return new Ua(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new zr(t.pos,r.pos,this.mark)}merge(e){return e instanceof zr&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new zr(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new zr(t.from,t.to,e.markFromJSON(t.mark))}}Qt.jsonID("addMark",zr);class Ua extends Qt{constructor(e,t,r){super(),this.from=e,this.to=t,this.mark=r}apply(e){let t=e.slice(this.from,this.to),r=new ve(sd(t.content,o=>o.mark(this.mark.removeFromSet(o.marks)),e),t.openStart,t.openEnd);return It.fromReplace(e,this.from,this.to,r)}invert(){return new zr(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new Ua(t.pos,r.pos,this.mark)}merge(e){return e instanceof Ua&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Ua(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Ua(t.from,t.to,e.markFromJSON(t.mark))}}Qt.jsonID("removeMark",Ua);class Zr extends Qt{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return It.fail("No node at mark step's position");let r=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return It.fromReplace(e,this.pos,this.pos+1,new ve(fe.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let r=this.mark.addToSet(t.marks);if(r.length==t.marks.length){for(let o=0;o<t.marks.length;o++)if(!t.marks[o].isInSet(r))return new Zr(this.pos,t.marks[o]);return new Zr(this.pos,this.mark)}}return new Do(this.pos,this.mark)}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Zr(t.pos,this.mark)}toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,t){if(typeof t.pos!="number")throw new RangeError("Invalid input for AddNodeMarkStep.fromJSON");return new Zr(t.pos,e.markFromJSON(t.mark))}}Qt.jsonID("addNodeMark",Zr);class Do extends Qt{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return It.fail("No node at mark step's position");let r=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return It.fromReplace(e,this.pos,this.pos+1,new ve(fe.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new Zr(this.pos,this.mark)}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Do(t.pos,this.mark)}toJSON(){return{stepType:"removeNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,t){if(typeof t.pos!="number")throw new RangeError("Invalid input for RemoveNodeMarkStep.fromJSON");return new Do(t.pos,e.markFromJSON(t.mark))}}Qt.jsonID("removeNodeMark",Do);class Ot extends Qt{constructor(e,t,r,o=!1){super(),this.from=e,this.to=t,this.slice=r,this.structure=o}apply(e){return this.structure&&id(e,this.from,this.to)?It.fail("Structure replace would overwrite content"):It.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new ya([this.from,this.to-this.from,this.slice.size])}invert(e){return new Ot(this.from,this.from+this.slice.size,e.slice(this.from,this.to))}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deletedAcross&&r.deletedAcross?null:new Ot(t.pos,Math.max(t.pos,r.pos),this.slice,this.structure)}merge(e){if(!(e instanceof Ot)||e.structure||this.structure)return null;if(this.from+this.slice.size==e.from&&!this.slice.openEnd&&!e.slice.openStart){let t=this.slice.size+e.slice.size==0?ve.empty:new ve(this.slice.content.append(e.slice.content),this.slice.openStart,e.slice.openEnd);return new Ot(this.from,this.to+(e.to-e.from),t,this.structure)}else if(e.to==this.from&&!this.slice.openStart&&!e.slice.openEnd){let t=this.slice.size+e.slice.size==0?ve.empty:new ve(e.slice.content.append(this.slice.content),e.slice.openStart,this.slice.openEnd);return new Ot(e.from,this.to,t,this.structure)}else return null}toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for ReplaceStep.fromJSON");return new Ot(t.from,t.to,ve.fromJSON(e,t.slice),!!t.structure)}}Qt.jsonID("replace",Ot);class zt extends Qt{constructor(e,t,r,o,s,i,l=!1){super(),this.from=e,this.to=t,this.gapFrom=r,this.gapTo=o,this.slice=s,this.insert=i,this.structure=l}apply(e){if(this.structure&&(id(e,this.from,this.gapFrom)||id(e,this.gapTo,this.to)))return It.fail("Structure gap-replace would overwrite content");let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return It.fail("Gap is not a flat range");let r=this.slice.insertAt(this.insert,t.content);return r?It.fromReplace(e,this.from,this.to,r):It.fail("Content does not fit in gap")}getMap(){return new ya([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(e){let t=this.gapTo-this.gapFrom;return new zt(this.from,this.from+this.slice.size+t,this.from+this.insert,this.from+this.insert+t,e.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1),o=this.from==this.gapFrom?t.pos:e.map(this.gapFrom,-1),s=this.to==this.gapTo?r.pos:e.map(this.gapTo,1);return t.deletedAcross&&r.deletedAcross||o<t.pos||s>r.pos?null:new zt(t.pos,r.pos,o,s,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number"||typeof t.gapFrom!="number"||typeof t.gapTo!="number"||typeof t.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new zt(t.from,t.to,t.gapFrom,t.gapTo,ve.fromJSON(e,t.slice),t.insert,!!t.structure)}}Qt.jsonID("replaceAround",zt);function id(n,e,t){let r=n.resolve(e),o=t-e,s=r.depth;for(;o>0&&s>0&&r.indexAfter(s)==r.node(s).childCount;)s--,o--;if(o>0){let i=r.node(s).maybeChild(r.indexAfter(s));for(;o>0;){if(!i||i.isLeaf)return!0;i=i.firstChild,o--}}return!1}function BS(n,e,t,r){let o=[],s=[],i,l;n.doc.nodesBetween(e,t,(c,h,d)=>{if(!c.isInline)return;let u=c.marks;if(!r.isInSet(u)&&d.type.allowsMarkType(r.type)){let p=Math.max(h,e),f=Math.min(h+c.nodeSize,t),g=r.addToSet(u);for(let m=0;m<u.length;m++)u[m].isInSet(g)||(i&&i.to==p&&i.mark.eq(u[m])?i.to=f:o.push(i=new Ua(p,f,u[m])));l&&l.to==p?l.to=f:s.push(l=new zr(p,f,r))}}),o.forEach(c=>n.step(c)),s.forEach(c=>n.step(c))}function ES(n,e,t,r){let o=[],s=0;n.doc.nodesBetween(e,t,(i,l)=>{if(!i.isInline)return;s++;let c=null;if(r instanceof pl){let h=i.marks,d;for(;d=r.isInSet(h);)(c||(c=[])).push(d),h=d.removeFromSet(h)}else r?r.isInSet(i.marks)&&(c=[r]):c=i.marks;if(c&&c.length){let h=Math.min(l+i.nodeSize,t);for(let d=0;d<c.length;d++){let u=c[d],p;for(let f=0;f<o.length;f++){let g=o[f];g.step==s-1&&u.eq(o[f].style)&&(p=g)}p?(p.to=h,p.step=s):o.push({style:u,from:Math.max(l,e),to:h,step:s})}}}),o.forEach(i=>n.step(new Ua(i.from,i.to,i.style)))}function ld(n,e,t,r=t.contentMatch,o=!0){let s=n.doc.nodeAt(e),i=[],l=e+1;for(let c=0;c<s.childCount;c++){let h=s.child(c),d=l+h.nodeSize,u=r.matchType(h.type);if(!u)i.push(new Ot(l,d,ve.empty));else{r=u;for(let p=0;p<h.marks.length;p++)t.allowsMarkType(h.marks[p].type)||n.step(new Ua(l,d,h.marks[p]));if(o&&h.isText&&t.whitespace!="pre"){let p,f=/\r?\n|\r/g,g;for(;p=f.exec(h.text);)g||(g=new ve(fe.from(t.schema.text(" ",t.allowedMarks(h.marks))),0,0)),i.push(new Ot(l+p.index,l+p.index+p[0].length,g))}}l=d}if(!r.validEnd){let c=r.fillBefore(fe.empty,!0);n.replace(l,l,new ve(c,0,0))}for(let c=i.length-1;c>=0;c--)n.step(i[c])}function SS(n,e,t){return(e==0||n.canReplace(e,n.childCount))&&(t==n.childCount||n.canReplace(0,t))}function Bn(n){let t=n.parent.content.cutByIndex(n.startIndex,n.endIndex);for(let r=n.depth,o=0,s=0;;--r){let i=n.$from.node(r),l=n.$from.index(r)+o,c=n.$to.indexAfter(r)-s;if(r<n.depth&&i.canReplace(l,c,t))return r;if(r==0||i.type.spec.isolating||!SS(i,l,c))break;l&&(o=1),c<i.childCount&&(s=1)}return null}function MS(n,e,t){let{$from:r,$to:o,depth:s}=e,i=r.before(s+1),l=o.after(s+1),c=i,h=l,d=fe.empty,u=0;for(let g=s,m=!1;g>t;g--)m||r.index(g)>0?(m=!0,d=fe.from(r.node(g).copy(d)),u++):c--;let p=fe.empty,f=0;for(let g=s,m=!1;g>t;g--)m||o.after(g+1)<o.end(g)?(m=!0,p=fe.from(o.node(g).copy(p)),f++):h++;n.step(new zt(c,h,i,l,new ve(d.append(p),u,f),d.size-u,!0))}function cd(n,e,t=null,r=n){let o=VS(n,e),s=o&&NS(r,e);return s?o.map(d2).concat({type:e,attrs:t}).concat(s.map(d2)):null}function d2(n){return{type:n,attrs:null}}function VS(n,e){let{parent:t,startIndex:r,endIndex:o}=n,s=t.contentMatchAt(r).findWrapping(e);if(!s)return null;let i=s.length?s[0]:e;return t.canReplaceWith(r,o,i)?s:null}function NS(n,e){let{parent:t,startIndex:r,endIndex:o}=n,s=t.child(r),i=e.contentMatch.findWrapping(s.type);if(!i)return null;let c=(i.length?i[i.length-1]:e).contentMatch;for(let h=r;c&&h<o;h++)c=c.matchType(t.child(h).type);return!c||!c.validEnd?null:i}function DS(n,e,t){let r=fe.empty;for(let i=t.length-1;i>=0;i--){if(r.size){let l=t[i].type.contentMatch.matchFragment(r);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=fe.from(t[i].type.create(t[i].attrs,r))}let o=e.start,s=e.end;n.step(new zt(o,s,o,s,new ve(r,0,0),t.length,!0))}function LS(n,e,t,r,o){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=n.steps.length;n.doc.nodesBetween(e,t,(i,l)=>{let c=typeof o=="function"?o(i):o;if(i.isTextblock&&!i.hasMarkup(r,c)&&IS(n.doc,n.mapping.slice(s).map(l),r)){let h=null;if(r.schema.linebreakReplacement){let f=r.whitespace=="pre",g=!!r.contentMatch.matchType(r.schema.linebreakReplacement);f&&!g?h=!1:!f&&g&&(h=!0)}h===!1&&u2(n,i,l,s),ld(n,n.mapping.slice(s).map(l,1),r,void 0,h===null);let d=n.mapping.slice(s),u=d.map(l,1),p=d.map(l+i.nodeSize,1);return n.step(new zt(u,p,u+1,p-1,new ve(fe.from(r.create(c,null,i.marks)),0,0),1,!0)),h===!0&&h2(n,i,l,s),!1}})}function h2(n,e,t,r){e.forEach((o,s)=>{if(o.isText){let i,l=/\r?\n|\r/g;for(;i=l.exec(o.text);){let c=n.mapping.slice(r).map(t+1+s+i.index);n.replaceWith(c,c+1,e.type.schema.linebreakReplacement.create())}}})}function u2(n,e,t,r){e.forEach((o,s)=>{if(o.type==o.type.schema.linebreakReplacement){let i=n.mapping.slice(r).map(t+1+s);n.replaceWith(i,i+1,e.type.schema.text(`
|