vue-data-ui 3.28.1 → 3.28.2
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/{PackageVersion-C4ZM3Vf7.js → PackageVersion-BIhjLNBU.js} +1 -1
- package/dist/components/vue-ui-3d-bar.js +1 -1
- package/dist/components/vue-ui-age-pyramid.js +1 -1
- package/dist/components/vue-ui-bullet.js +1 -1
- package/dist/components/vue-ui-bump.js +1 -1
- package/dist/components/vue-ui-candlestick.js +1 -1
- package/dist/components/vue-ui-carousel-table.js +1 -1
- package/dist/components/vue-ui-chestnut.js +1 -1
- package/dist/components/vue-ui-chord.js +1 -1
- package/dist/components/vue-ui-circle-pack.js +1 -1
- package/dist/components/vue-ui-cursor.js +1 -1
- package/dist/components/vue-ui-dag.js +1 -1
- package/dist/components/vue-ui-dashboard.js +1 -1
- package/dist/components/vue-ui-digits.js +1 -1
- package/dist/components/vue-ui-donut-evolution.js +1 -1
- package/dist/components/vue-ui-donut.js +1 -1
- package/dist/components/vue-ui-dumbbell.js +1 -1
- package/dist/components/vue-ui-flow.js +1 -1
- package/dist/components/vue-ui-funnel.js +1 -1
- package/dist/components/vue-ui-galaxy.js +1 -1
- package/dist/components/vue-ui-gauge.js +1 -1
- package/dist/components/vue-ui-geo.js +1 -1
- package/dist/components/vue-ui-gizmo.js +1 -1
- package/dist/components/vue-ui-graph.js +1 -1
- package/dist/components/vue-ui-heatmap.js +1 -1
- package/dist/components/vue-ui-hill.js +1 -1
- package/dist/components/vue-ui-history-plot.js +1 -1
- package/dist/components/vue-ui-horizontal-bar.js +1 -1
- package/dist/components/vue-ui-kpi.js +1 -1
- package/dist/components/vue-ui-molecule.js +1 -1
- package/dist/components/vue-ui-mood-radar.js +1 -1
- package/dist/components/vue-ui-nested-donuts.js +1 -1
- package/dist/components/vue-ui-onion.js +1 -1
- package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
- package/dist/components/vue-ui-quadrant.js +1 -1
- package/dist/components/vue-ui-quick-chart.js +1 -1
- package/dist/components/vue-ui-radar.js +1 -1
- package/dist/components/vue-ui-relation-circle.js +1 -1
- package/dist/components/vue-ui-ridgeline.js +1 -1
- package/dist/components/vue-ui-rings.js +1 -1
- package/dist/components/vue-ui-scatter.js +1 -1
- package/dist/components/vue-ui-skeleton.js +1 -1
- package/dist/components/vue-ui-spark-trend.js +1 -1
- package/dist/components/vue-ui-sparkbar.js +1 -1
- package/dist/components/vue-ui-sparkgauge.js +1 -1
- package/dist/components/vue-ui-sparkhistogram.js +1 -1
- package/dist/components/vue-ui-sparkline.js +1 -1
- package/dist/components/vue-ui-sparkstackbar.js +1 -1
- package/dist/components/vue-ui-stackbar.js +1 -1
- package/dist/components/vue-ui-stackline.js +1 -1
- package/dist/components/vue-ui-strip-plot.js +1 -1
- package/dist/components/vue-ui-table-sparkline.js +1 -1
- package/dist/components/vue-ui-table.js +1 -1
- package/dist/components/vue-ui-thermometer.js +1 -1
- package/dist/components/vue-ui-timer.js +1 -1
- package/dist/components/vue-ui-tiremarks.js +1 -1
- package/dist/components/vue-ui-treemap.js +1 -1
- package/dist/components/vue-ui-vertical-bar.js +1 -1
- package/dist/components/vue-ui-waffle.js +1 -1
- package/dist/components/vue-ui-wheel.js +1 -1
- package/dist/components/vue-ui-word-cloud.js +1 -1
- package/dist/components/vue-ui-world.js +1 -1
- package/dist/components/vue-ui-xy.js +1 -1
- package/dist/package-DwcKiXuI.js +1 -0
- package/dist/{render-common-CJz0wn0I.js → render-common-B-s2XJ_I.js} +1 -1
- package/dist/ssr/vue-ui-donut.js +1 -1
- package/dist/ssr/vue-ui-xy.js +1 -1
- package/dist/ssr.js +1 -1
- package/dist/style.css.d.ts +2 -0
- package/dist/style.d.css.ts +2 -0
- package/dist/vue-data-ui-BvHCscNE.js +1 -0
- package/dist/vue-data-ui.js +1 -1
- package/dist/{vue-ui-3d-bar-CW8ahywt.js → vue-ui-3d-bar-CkHFiFp4.js} +1 -1
- package/dist/{vue-ui-age-pyramid-CxMwKICA.js → vue-ui-age-pyramid-vpIjdLg5.js} +1 -1
- package/dist/{vue-ui-bullet-ClnewIWQ.js → vue-ui-bullet-rgxGRR1p.js} +1 -1
- package/dist/{vue-ui-bump-C6FuNDUg.js → vue-ui-bump-CeDsunDi.js} +1 -1
- package/dist/{vue-ui-candlestick-CyewIjJk.js → vue-ui-candlestick-KJHOS5F7.js} +1 -1
- package/dist/{vue-ui-carousel-table-D0dD4kai.js → vue-ui-carousel-table-CeI5SIxH.js} +1 -1
- package/dist/{vue-ui-chestnut-nS1vjCqH.js → vue-ui-chestnut-CiY-2e77.js} +1 -1
- package/dist/{vue-ui-chord-B963Q_26.js → vue-ui-chord-8rk7304-.js} +1 -1
- package/dist/{vue-ui-circle-pack-DEY9X3jA.js → vue-ui-circle-pack-BsH09EPG.js} +1 -1
- package/dist/{vue-ui-cursor-CNv12HQG.js → vue-ui-cursor-Cpov2m58.js} +1 -1
- package/dist/{vue-ui-dag-s3-TMmid.js → vue-ui-dag-BHFL2cUA.js} +1 -1
- package/dist/{vue-ui-dashboard-B5zrGAvS.js → vue-ui-dashboard-BxXdhdNJ.js} +1 -1
- package/dist/{vue-ui-digits-DXQwmTUx.js → vue-ui-digits-xHOLjA2_.js} +1 -1
- package/dist/{vue-ui-donut-DHfOfLBF.js → vue-ui-donut-CR3klUbX.js} +1 -1
- package/dist/{vue-ui-donut-CDryub1L.js → vue-ui-donut-Vbp5Xs2-.js} +1 -1
- package/dist/{vue-ui-donut-evolution-C5pHSrza.js → vue-ui-donut-evolution-BTmztL3Y.js} +1 -1
- package/dist/{vue-ui-dumbbell-CQbGR7yM.js → vue-ui-dumbbell-CDcgKS2A.js} +1 -1
- package/dist/{vue-ui-flow-B16Mj6MW.js → vue-ui-flow-kVocPE27.js} +1 -1
- package/dist/{vue-ui-funnel-Dh-xi_Qi.js → vue-ui-funnel-CZAdPYqK.js} +1 -1
- package/dist/{vue-ui-galaxy-U_ZIP5vm.js → vue-ui-galaxy-hP-9mVlB.js} +1 -1
- package/dist/{vue-ui-gauge-Dr4zsf6D.js → vue-ui-gauge-BRabsLkh.js} +1 -1
- package/dist/{vue-ui-geo-DFebja0s.js → vue-ui-geo-Dacnp6iw.js} +1 -1
- package/dist/{vue-ui-gizmo-CssVcz-O.js → vue-ui-gizmo-Dp3hpHIX.js} +1 -1
- package/dist/{vue-ui-graph-BB_97Qz7.js → vue-ui-graph-DHU9hUry.js} +1 -1
- package/dist/{vue-ui-heatmap-DEBbVnrg.js → vue-ui-heatmap-kPnmZgWi.js} +1 -1
- package/dist/{vue-ui-hill-C1sHz3TI.js → vue-ui-hill-Ddbup7-b.js} +1 -1
- package/dist/{vue-ui-history-plot-CsBTJXR3.js → vue-ui-history-plot-CwO2o-2s.js} +1 -1
- package/dist/{vue-ui-horizontal-bar-D0kfcpEW.js → vue-ui-horizontal-bar-CvX77vE4.js} +1 -1
- package/dist/{vue-ui-kpi-CltKSYUI.js → vue-ui-kpi-CCOOwX_Q.js} +1 -1
- package/dist/{vue-ui-molecule-DtoyWWTf.js → vue-ui-molecule-BPGs9Dom.js} +1 -1
- package/dist/{vue-ui-mood-radar-ClOxfeH8.js → vue-ui-mood-radar-GJ-lhgI0.js} +1 -1
- package/dist/{vue-ui-nested-donuts-CULAXTg1.js → vue-ui-nested-donuts-CrlPwpg8.js} +1 -1
- package/dist/{vue-ui-onion-D7zu861i.js → vue-ui-onion-CKmyy-Y_.js} +1 -1
- package/dist/{vue-ui-parallel-coordinate-plot-Cjbc-WUG.js → vue-ui-parallel-coordinate-plot-C0UqWt0M.js} +1 -1
- package/dist/{vue-ui-quadrant-DWAb_t6r.js → vue-ui-quadrant-CTGFBNo9.js} +1 -1
- package/dist/{vue-ui-quick-chart-oDZwgVo8.js → vue-ui-quick-chart-ZBOPZhxA.js} +1 -1
- package/dist/{vue-ui-radar-BWG_N0xO.js → vue-ui-radar-B1z3Ux3E.js} +1 -1
- package/dist/{vue-ui-relation-circle-BCRiS2n6.js → vue-ui-relation-circle-DqN5N08e.js} +1 -1
- package/dist/{vue-ui-ridgeline-VYcGUP_p.js → vue-ui-ridgeline-DcSB5Qef.js} +1 -1
- package/dist/{vue-ui-rings-Dl0AjrRj.js → vue-ui-rings-CJqAnf-l.js} +1 -1
- package/dist/{vue-ui-scatter-DTa48HvG.js → vue-ui-scatter-THQAeoWs.js} +1 -1
- package/dist/{vue-ui-skeleton-C5mGG8hR.js → vue-ui-skeleton-DqmhigQ0.js} +1 -1
- package/dist/{vue-ui-spark-trend--frxeJ8f.js → vue-ui-spark-trend-B2Nf1raK.js} +1 -1
- package/dist/{vue-ui-sparkbar-BS5v3HMo.js → vue-ui-sparkbar-CamZ_49V.js} +1 -1
- package/dist/{vue-ui-sparkgauge-B1TGfXvR.js → vue-ui-sparkgauge-Ffrp_7VV.js} +1 -1
- package/dist/{vue-ui-sparkhistogram-Cs97AL6h.js → vue-ui-sparkhistogram-CLfzi3PO.js} +1 -1
- package/dist/{vue-ui-sparkline-Bp9J6x7z.js → vue-ui-sparkline-Y-sljnbS.js} +1 -1
- package/dist/{vue-ui-sparkstackbar-BVuuRD10.js → vue-ui-sparkstackbar-CYZ-ADO1.js} +1 -1
- package/dist/{vue-ui-stackbar-CRuXn3XI.js → vue-ui-stackbar-CQLYm10x.js} +1 -1
- package/dist/{vue-ui-stackline-Besmr9vq.js → vue-ui-stackline-VpvF7MRx.js} +1 -1
- package/dist/{vue-ui-strip-plot-D-aRJkR7.js → vue-ui-strip-plot-B9Ogpw7K.js} +1 -1
- package/dist/{vue-ui-table-D_UdQwV3.js → vue-ui-table-Bi9C3LzP.js} +1 -1
- package/dist/{vue-ui-table-sparkline-BdNo8fW_.js → vue-ui-table-sparkline-DEVAL0cR.js} +1 -1
- package/dist/{vue-ui-thermometer-TFg1SGY7.js → vue-ui-thermometer-ClN4EO0I.js} +1 -1
- package/dist/{vue-ui-timer-BdPksC26.js → vue-ui-timer-nqZxt1vU.js} +1 -1
- package/dist/{vue-ui-tiremarks-HWuO-eyj.js → vue-ui-tiremarks-BeJBsgXo.js} +1 -1
- package/dist/{vue-ui-treemap-IegiAqaX.js → vue-ui-treemap-FA-yXwmv.js} +1 -1
- package/dist/{vue-ui-waffle-BEyGfPks.js → vue-ui-waffle-CO07S6HV.js} +1 -1
- package/dist/{vue-ui-wheel-k8GNPGET.js → vue-ui-wheel-BeaSWB4x.js} +1 -1
- package/dist/{vue-ui-word-cloud-D9_15Ve7.js → vue-ui-word-cloud-C1OWGFng.js} +1 -1
- package/dist/{vue-ui-world-rCp5Vb7u.js → vue-ui-world-CUS_mKgl.js} +1 -1
- package/dist/{vue-ui-xy-CFgFg11v.js → vue-ui-xy-6B_K-quN.js} +1 -1
- package/dist/{vue-ui-xy-42AXepcQ.js → vue-ui-xy-BigPHE0Q.js} +1 -1
- package/package.json +6 -2
- package/dist/package-DGRUegc-.js +0 -1
- package/dist/vue-data-ui-CxiWUtNw.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Bt as r,D as i,Dt as a,Ht as o,It as s,Jt as c,S as l,X as u,Y as ee,Yt as te,Zt as ne,at as d,b as re,dt as ie,f,h as p,i as m,in as ae,it as oe,j as se,nn as ce,nt as le,p as h,s as ue,t as de,ut as fe,w as pe,yt as me,zt as he}from"./lib-rPeBMZrn.js";import{n as ge,t as _e}from"./BaseScanner-8NdoBs7B.js";import{n as ve,t as ye}from"./useHints-BH9r_0Vd.js";import{t as be}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as xe}from"./useNestedProp-DnGoh-XS.js";import{t as Se}from"./useThemeCheck-BKNRbGeC.js";import{t as Ce}from"./chartImage-DPGnEuYM.js";import{n as we}from"./Title-BliHuXfT.js";import{t as Te}from"./useChartExport-BZts4KFb.js";import{n as Ee,t as De}from"./tableIntegration-CNoJ1CIY.js";import{n as Oe,t as ke}from"./annotationSlots-BRR85CqJ.js";import{n as Ae,t as je}from"./userOptionsSlots-DYuo-E5m.js";import{t as Me}from"./usePrinter-sVoTzet1.js";import{t as Ne}from"./Shape-CRe8woTu.js";import{c as Pe}from"./canvas-lib-22VpOI4_.js";import{t as Fe}from"./useResponsive-CENUxfEL.js";import{t as Ie}from"./DefGrad-DKMq1REY.js";import{t as Le}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Re}from"./A11yDataTable-DWNlWXzs.js";import{t as ze}from"./useUserOptionState-CXlFnwPv.js";import{t as Be}from"./useChartAccessibility-DOMuYJfm.js";import{n as Ve,t as He}from"./labelUtils-CdtU-yB_.js";import{t as Ue}from"./vue_ui_donut-T5PeOqvf.js";import{t as We}from"./Legend-DM0ClX3D.js";import{Fragment as g,Teleport as Ge,computed as _,createBlock as v,createCommentVNode as y,createElementBlock as b,createElementVNode as x,createSlots as Ke,createTextVNode as qe,createVNode as Je,defineAsyncComponent as Ye,guardReactiveProps as Xe,mergeProps as Ze,nextTick as Qe,normalizeClass as $e,normalizeProps as et,normalizeStyle as S,onBeforeUnmount as tt,onMounted as nt,openBlock as C,ref as w,renderList as T,renderSlot as E,resolveDynamicComponent as rt,shallowRef as it,toDisplayString as D,toRefs as at,unref as O,useSlots as ot,vShow as st,watch as ct,withCtx as k,withDirectives as lt}from"vue";function ut(e){let{FINAL_CONFIG:t,noGhostDonut:n,svg:r,padding:i,labels_inline_fontSize:a,minSize:o,findArcMidpoint:s,calcMarkerOffsetX:c,calcMarkerOffsetY:l,animatingIndex:u,segregated:ee,isSmallArc:te}=e;return{smallArcLayoutsClassic:_(()=>{if(t.value.type!==`classic`)return{};let e={},ne=n.value||[];if(!ne.length)return e;let d=r.value.width/2,re=r.value.height/2,ie=i.value.top+16,f=r.value.height-i.value.bottom-16,p=a.value,m=p/3,ae=p*1.5,oe=d-(o.value+6),se=d+(o.value+6),ce=!!t.value.style.chart.layout.curvedMarkers;function le({midX:e,midY:t,bandX:n,bandY:r}){if(!ce)return`M ${e} ${t} L ${e} ${r} L ${n} ${r}`;let i=n<d?-1:1,a=n-e,o=r-t,s=Math.sqrt(a*a+o*o)||1,c=e-d,l=t-re,u=Math.sqrt(c*c+l*l)||1,ee=c/u,te=l/u,ne=u+9;function ie({x:e,y:t}){let n=e-d,r=t-re,i=Math.sqrt(n*n+r*r)||1;if(i>=ne)return{x:e,y:t};let a=ne/i;return{x:d+n*a,y:re+r*a}}if(s<56){let i=a/s,c=-(o/s),l=i,u=(e+n)*.5,ne=(t+r)*.5,f=u+c,p=ne+l,m=(f-d)*(f-d)+(p-re)*(p-re),ae=u-c,oe=ne-l;(ae-d)*(ae-d)+(oe-re)*(oe-re)>m&&(c=-c,l=-l);let se=.78,ce=e+a*se,le=t+o*se,h=Math.max(0,Math.min(1,(s-18)/44)),ue=h*h*(3-2*h),de=2.5+ue*4,fe=1+ue*2.5;de*=.9;let pe=ie({x:ce+c*de+ee*fe,y:le+l*de+te*fe});return`M ${e} ${t} Q ${pe.x} ${pe.y} ${n} ${r}`}let f=s*.34;f<20&&(f=20),f>46&&(f=46);let p=s*.46;p<22&&(p=22),p>70&&(p=70);let m={x:e+ee*f,y:t+te*f},ae=d+i*Math.max(Math.abs(n-d),ne),oe={x:n-i*Math.min(p,Math.abs(ae-n)*.75),y:r},se=ie(m),le=ie(oe);return`M ${e} ${t} C ${se.x} ${se.y} ${le.x} ${le.y} ${n} ${r}`}function h(e){let t=String(e??``).split(/\n/g),n=Math.max(0,t.length-1)*(p*1.2);return ae+n}function ue({arc:e,index:t}){let{x:n,y:r}=s(e.path);return{arc:e,index:t,midX:n,midY:r,inlineMarkerX:c(e).x,inlineMarkerY:l(e)-3.5,labelHeight:h(e.name)}}function de(e){let{arc:t}=e,n=t.seriesIndex??0;return u.value===n||ee.value.includes(n)?!1:te(t,n)}function fe(e){let t=e.inlineMarkerY<re,n=e.inlineMarkerX<d;return t&&n?`TL`:t&&!n?`TR`:!t&&n?`BL`:`BR`}function pe(e,t){t.startsWith(`T`)?e.sort((e,t)=>e.inlineMarkerY-t.inlineMarkerY||e.index-t.index):e.sort((e,t)=>t.inlineMarkerY-e.inlineMarkerY||e.index-t.index)}function me({side:e,markerX:t,markerY:n,labelY:r,connectorPath:i}){return{side:e,labelX:e===`left`?t-8:t+8,labelY:r+m,textAnchor:e===`left`?`end`:`start`,markerX:t,markerY:n,connectorPath:i}}function he({candidateList:t,side:n,bandMarkerX:r,startY:i,direction:a}){let o=i;t.forEach(t=>{let{index:i,midX:s,midY:c,labelHeight:l}=t,u;a===`down`?(u=o,o+=l):(o-=l,u=o);let ee=u,te=le({midX:s,midY:c,bandX:r,bandY:ee});e[i]=me({side:n,markerX:r,markerY:ee,labelY:u,connectorPath:te})})}let ge=ne.map((e,t)=>ue({arc:e,index:t})).filter(de),_e={TL:[],TR:[],BL:[],BR:[]};return ge.forEach(e=>{_e[fe(e)].push(e)}),Object.keys(_e).forEach(e=>{pe(_e[e],e)}),he({candidateList:_e.TL,side:`left`,bandMarkerX:oe,startY:ie,direction:`down`}),he({candidateList:_e.TR,side:`right`,bandMarkerX:se,startY:ie,direction:`down`}),_e.BL.length>1&&he({candidateList:_e.BL,side:`left`,bandMarkerX:oe,startY:f,direction:`up`}),_e.BR.length>1&&he({candidateList:_e.BR,side:`right`,bandMarkerX:se,startY:f,direction:`up`}),e})}}var dt=/* @__PURE__ */ e({default:()=>En}),ft=[`id`],pt=[`id`],mt=[`id`],ht={style:{position:`relative`}},gt=[`xmlns`,`aria-describedby`,`viewBox`],_t=[`width`,`height`],vt={key:1},yt={key:2},bt=[`id`],xt=[`id`],St=[`id`],Ct=[`flood-color`],wt=[`id`],Tt=[`flood-color`],Et=[`d`,`stroke`,`filter`],Dt=[`d`,`stroke`,`filter`],Ot=[`cx`,`cy`,`r`,`fill`,`filter`],kt={key:6},At=[`stroke`,`d`],jt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Mt={key:0},Nt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Pt={key:0},Ft=[`stroke`,`d`],It={key:0},Lt=[`d`,`stroke`,`stroke-width`,`filter`],Rt={key:1},zt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Bt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Vt={key:1},Ht=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`],Ut=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`],Wt={key:0},Gt=[`d`,`fill`,`stroke`,`stroke-width`],Kt=[`cx`,`cy`,`r`,`stroke`],qt=[`cx`,`cy`,`r`,`fill`],Jt=[`cx`,`cy`,`r`],Yt={key:0},Xt=[`d`,`stroke`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],Zt={key:1},Qt=[`cx`,`cy`,`r`],$t=[`x`,`y`,`fill`,`font-size`],en=[`x`,`y`,`fill`,`font-size`],tn=[`x`,`y`,`fill`,`font-size`],nn=[`x`,`y`,`fill`,`font-size`],rn=[`filter`,`opacity`],an={key:0},on=[`x`,`y`],sn={key:1},cn=[`cx`,`cy`,`fill`,`stroke`,`filter`,`onClick`,`onMouseenter`,`onMouseleave`],ln=[`text-anchor`,`x`,`y`,`onClick`,`onMouseenter`,`onMouseleave`,`innerHTML`],un=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`onClick`,`onMouseenter`,`onMouseleave`],dn=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`onClick`,`onMouseenter`,`onMouseleave`,`innerHTML`],fn=[`cx`,`cy`,`fill`,`stroke`,`filter`,`onClick`,`onMouseenter`,`onMouseleave`],pn=[`text-anchor`,`x`,`y`,`onClick`,`onMouseenter`,`onMouseleave`,`innerHTML`],mn=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`onClick`,`onMouseenter`,`onMouseleave`],hn=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`onClick`,`onMouseenter`,`onMouseleave`,`innerHTML`],gn={key:2},_n=[`x`,`y`,`width`],vn=[`x`,`y`,`width`],yn={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},bn={key:5,class:`vue-data-ui-watermark`},xn=[`id`],Sn=[`onClick`],Cn={key:8,class:`vue-ui-donut-hollow`},wn={key:0},Tn={key:1},En=/*#__PURE__*/ be({__name:`vue-ui-donut`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`selectDatapoint`,`copyAlt`],setup(e,{expose:be,emit:dt}){let En=Ye(()=>import(`./Tooltip-C1q0Qoh7.js`)),Dn=Ye(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),On=Ye(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),kn=Ye(()=>import(`./DataTable-0Vv-aGHD.js`)),An=Ye(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),jn=Ye(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Mn=Ye(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),Nn=Ye(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_donut:Pn}=t(),{isThemeValid:Fn,warnInvalidTheme:In}=Se(),Ln=ot(),A=e,Rn=_({get(){return!!A.dataset&&A.dataset.length},set(e){return e}}),zn=it(null),Bn=w(null),Vn=w(null),Hn=w(null),Un=it(null),Wn=it(null),Gn=it(null),Kn=it(null),qn=it(null),Jn=it(null),Yn=w(0),Xn=w(0),Zn=w(0),Qn=w(!1),$n=w(null),er=w(null),tr=w(null),nr=w({x:0,y:0}),rr=w(`pointer`),ir=w(!1),ar=_({get:()=>P.value.style.chart.layout.labels.percentage.fontSize,set:e=>e}),j=_({get:()=>P.value.style.chart.layout.labels.name.fontSize,set:e=>e}),or=_({get:()=>P.value.style.chart.layout.labels.dataLabels.smallArcClusterFontSize,set:e=>e}),sr=!1,cr=()=>{P.value.autoSize&&!sr&&(sr=!0,requestAnimationFrame(()=>{sr=!1;let e=P.value,t=Bn.value,n=z.value;if(!e.autoSize||!t||!n)return;let[r,i,a,o]=n.getAttribute(`viewBox`).split(` `).map(Number),s={x:r,y:i,width:a,height:o},c=[{selector:`.vue-data-ui-datalabel-value`,baseSize:F.value.percentage.fontSize,minSize:F.value.percentage.minFontSize,sizeRef:ar},{selector:`.vue-data-ui-datalabel-name`,baseSize:F.value.name.fontSize,minSize:F.value.name.minFontSize,sizeRef:j},{selector:`.vue-data-ui-datalabel-inline`,baseSize:F.value.dataLabels.smallArcClusterFontSize,minSize:F.value.name.minFontSize,sizeRef:or}];c.map(e=>t.querySelectorAll(e.selector).length).reduce((e,t)=>e+t,0)!==0&&c.forEach(({selector:e,baseSize:n,minSize:r,sizeRef:i})=>{t.querySelectorAll(e).forEach(e=>{i.value=ue({el:e,bounds:s,currentFontSize:n,minFontSize:r,attempts:200,padding:1})})})}))};nt(async()=>{Qn.value=!0,dr(),requestAnimationFrame(cr)});let lr;nt(()=>{zn.value&&(lr=new ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;if(e>0&&n>0){cr();break}}}),lr.observe(zn.value.parentElement))}),tt(()=>{lr?.disconnect()}),tt(()=>{Gn.value&&(Kn.value&&Gn.value.unobserve(Kn.value),Gn.value.disconnect())});let ur=_(()=>P.value.debug);function dr(){if(he(A.dataset)?(d({componentName:`VueUiDonut`,type:`dataset`,debug:ur.value}),Rn.value=!1,xr.value=!0):(A.dataset.forEach((e,t)=>{me({datasetObject:e,requiredAttributes:[`name`,`values`]}).forEach(e=>{d({componentName:`VueUiDonut`,type:`datasetSerieAttribute`,property:e,index:t,debug:ur.value}),Rn.value=!1,xr.value=!0})}),ur.value&&A.dataset.forEach((e,t)=>{(!e.name||e.name===``)&&d({componentName:`VueUiDonut`,type:`datasetAttributeEmpty`,property:`name`,index:t})})),he(A.dataset)||(xr.value=P.value.loading),P.value.responsive){let e=Pe(()=>{let{width:e,height:t}=Fe({chart:zn.value,title:P.value.style.chart.title.text?Un.value:null,legend:P.value.style.chart.legend.show?Wn.value:null,source:qn.value,noTitle:Jn.value,padding:P.value.autoSize?void 0:Nr.value});requestAnimationFrame(()=>{V.value.width=e,V.value.height=t,cr()})});Gn.value&&(Kn.value&&Gn.value.unobserve(Kn.value),Gn.value.disconnect()),Gn.value=new ResizeObserver(e),Kn.value=zn.value.parentNode,Gn.value.observe(Kn.value)}}let M=w(u()),fr=w(!1),pr=w(``),N=w(null),mr=w(0);function hr(){let e=xe({userConfig:A.config,defaultConfig:Pn}),t={},n=e.theme;if(!n)t=e;else if(!Fn.value(e))In(e),t=e;else{let r=xe({userConfig:Ue[n]||A.config,defaultConfig:e});t={...xe({userConfig:A.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:ce[n]||o}}return t}let P=w(hr()),F=_(()=>P.value.style.chart.layout.labels),I=_(()=>P.value.style.chart.layout.donut),gr=_(()=>P.value.style.chart.layout),L=_(()=>P.value.style.chart);ve({config:()=>P.value,dataset:()=>A.dataset,component:`VueUiDonut`,rules:[ye.singleSeries,ye.emptyArray,{test:e=>e.length>6,message:[`👀 The number of series is > 6. Consider:`,``,`▶️ Grouping small values dynamically into a single "Other" series.`,``,`▶️ Using filters to let users choose a maximum number of series to display.`,``,`▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read.`]}]});let _r=_(()=>P.value.userOptions.useCursorPointer),vr=_(()=>ae({defaultConfig:{useCssAnimation:!1,table:{show:!1},startAnimation:{show:!1},userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{labels:{dataLabels:{show:!1},hollow:{average:{show:!1},total:{show:!1}},value:{show:!1}}},legend:{backgroundColor:`transparent`,showValue:!1,showPercentage:!1},title:{color:`#1A1A1A`,subtitle:{color:`#5A5A5A`}}}}},userConfig:P.value.skeletonConfig??{}})),{loading:yr,FINAL_DATASET:br,manualLoading:xr,skeletonDataset:Sr}=ge({...at(A),FINAL_CONFIG:P,prepareConfig:hr,skeletonDataset:A.config?.skeletonDataset??[{name:``,values:[3],color:`#BABABA`},{name:``,values:[2],color:`#AAAAAA`},{name:``,values:[1],color:`#CACACA`}],skeletonConfig:ae({defaultConfig:P.value,userConfig:vr.value})}),R=w(!0),Cr=w(0),wr=w(!1),Tr=null;function Er(e=1e3){return new Promise(t=>{let n=performance.now();function r(i){let a=i-n,o=Math.min(a/e,1),s=oe(o);Cr.value=s,o<1?Tr=requestAnimationFrame(r):(Cr.value=1,Tr=null,t())}Tr!==null&&cancelAnimationFrame(Tr),Cr.value=0,Tr=requestAnimationFrame(r)})}ct(()=>yr.value,async e=>{if(e||wr.value)return;let t=br.value===Sr,n=P.value.startAnimation?.show;!t&&n?(wr.value=!0,await Er(P.value.startAnimation.durationMs||1e3)):Cr.value=1,R.value=!1},{immediate:!0});let{userOptionsVisible:Dr,setUserOptionsVisibility:Or,keepUserOptionState:kr}=ze({config:P.value}),{svgRef:z}=Be({config:L.value.title});function Ar(){Or(!0)}function jr(){Or(!1)}let Mr=ne(A.config);ct(()=>A.config,(e,t)=>{let n=ne(e),r=n!==Mr;Mr=n;let i=hr();r?(yr.value||(P.value=i),Dr.value=!P.value.userOptions.showOnChartHover,dr(),Yn.value+=1,Xn.value+=1,Zn.value+=1,B.value.dataLabels.show=F.value.dataLabels.show,B.value.showTable=P.value.table.show,B.value.showTooltip=L.value.tooltip.show,V.value.height=L.value.height,V.value.width=L.value.width):(P.value.style.chart.tooltip=i.style.chart.tooltip,B.value.showTooltip=P.value.style.chart.tooltip.show)},{deep:!0});let Nr=_(()=>{let{top:e,right:t,bottom:n,left:r}=L.value.padding;return{css:`padding:${e}px ${t}px ${n}px ${r}px`,top:e,right:t,bottom:n,left:r}}),{isPrinting:Pr,isImaging:Fr,generatePdf:Ir,generateImage:Lr}=Me({elementId:`donut__${M.value}`,fileName:L.value.title.text||`vue-ui-donut`,options:P.value.userOptions.print}),Rr=_(()=>P.value.userOptions.show&&!L.value.title.text),zr=_(()=>pe(P.value.customPalette)),B=w({dataLabels:{show:F.value.dataLabels.show},showTable:P.value.table.show,showTooltip:L.value.tooltip.show});ct(P,()=>{B.value={dataLabels:{show:F.value.dataLabels.show},showTable:P.value.table.show,showTooltip:L.value.tooltip.show}},{immediate:!0});let V=w({height:L.value.height,width:L.value.width}),Br=_(()=>{if(P.value.pie)return G.value;let e=I.value.strokeWidth/512,t=Math.min(V.value.width,V.value.height)*e,n=t>G.value?G.value:t;return Math.max(n,12*(1+e))}),Vr=dt,H=_(()=>br.value.sort((e,t)=>{let n=Array.isArray(e.values)?e.values.reduce((e,t)=>e+t,0):e.value??0,r=Array.isArray(t.values)?t.values.reduce((e,t)=>e+t,0):t.value??0;return e.ghost&&!t.ghost?1:t.ghost&&!e.ghost?-1:r-n}).map((e,t)=>({name:e.name,color:l(e.color)||zr.value[t]||o[t]||o[t%o.length],value:re(e.values.reduce((e,t)=>e+t,0)),absoluteValues:e.values,comment:e.comment||``,patternIndex:t,seriesIndex:t,ghost:!1,pattern:`pattern_${M.value}_${t}`})));ct(()=>A.dataset,e=>{Array.isArray(e)&&e.length>0&&(xr.value=!1)},{immediate:!0});let U=it(H.value);ct(()=>H.value,e=>{U.value=e,requestAnimationFrame(cr)});function Hr(){return H.value.map(e=>({name:e.name,color:e.color,value:e.value}))}let W=w([]),Ur=w(!1),Wr=w(null);function Gr(){Vr(`selectLegend`,$r.value.map(e=>({name:e.name,color:e.color,value:e.value})))}function Kr({from:e,to:t,duration:n,onUpdate:r,onDone:i,easing:a=oe}){let o=performance.now();function s(c){let l=Math.min((c-o)/n,1),u=a(l);r(e+(t-e)*u,l),l<1?requestAnimationFrame(s):(r(t,1),i&&i())}requestAnimationFrame(s)}function qr(){W.value.length?W.value=[]:ei.value.forEach((e,t)=>{W.value.push(t)}),Gr()}function Jr(e){let t=H.value.find((t,n)=>n===e),n=U.value.find((t,n)=>n===e).value;if(W.value.includes(e)){W.value=W.value.filter(t=>t!==e);let r=t.value;function i(){U.value=U.value.map((t,n)=>e===n?{...t,value:r}:t),Gr()}function a(){Ur.value=!0,Wr.value=e,Kr({from:n,to:r,duration:P.value.serieToggleAnimation.durationMs,onUpdate:(t,n)=>{U.value=U.value.map((n,r)=>e===r?{...n,value:t}:n),requestAnimationFrame(cr)},onDone:()=>{i(),Ur.value=!1,Wr.value=null}})}P.value.serieToggleAnimation.show&&P.value.type===`classic`?a():(i(),requestAnimationFrame(cr))}else if(W.value.length<H.value.length-1){function t(){W.value.push(e),U.value=U.value.map((t,n)=>e===n?{...t,value:0}:t),Gr()}function r(){Ur.value=!0,Wr.value=e,Kr({from:n,to:0,duration:P.value.serieToggleAnimation.durationMs,onUpdate:(t,n)=>{U.value=U.value.map((n,r)=>e===r?{...n,value:t}:n),requestAnimationFrame(cr)},onDone:()=>{t(),requestAnimationFrame(cr),Ur.value=!1,Wr.value=null}})}P.value.serieToggleAnimation.show&&P.value.type===`classic`?r():t()}}function Yr(e){return H.value.length?H.value.find(t=>t.name===e)||(ur.value&&console.warn(`VueUiDonut - Series name not found "${e}"`),null):(ur.value&&console.warn(`VueUiDonut - There are no series to show.`),null)}function Xr(e){let t=Yr(e);t!==null&&W.value.includes(t.seriesIndex)&&Jr(t.seriesIndex)}function Zr(e){let t=Yr(e);t!==null&&(W.value.includes(t.seriesIndex)||Jr(t.seriesIndex))}let Qr=_(()=>br.value.reduce((e,t)=>e+t.values.reduce((e,t)=>e+t,0),0)),$r=_(()=>{if(R.value&&!yr.value){let e=Cr.value,t=H.value.map(t=>({...t,value:t.value*e,color:t.color,ghost:!1})),n=Qr.value*(1-e);return n>0&&t.push({name:`__ghost__`,value:n,color:`transparent`,ghost:!0}),t}return U.value.forEach(e=>{if([null,void 0].includes(e.values))return{...e,values:[]}}),U.value.map((e,t)=>({...e,seriesIndex:t})).filter((e,t)=>!W.value.includes(t))}),ei=_(()=>br.value.map((e,t)=>{let n=(e.values||[]).reduce((e,t)=>e+t,0),r=n/br.value.map(e=>(e.values||[]).reduce((e,t)=>e+t,0)).reduce((e,t)=>e+t,0);return{name:e.name,color:l(e.color)||zr.value[t]||o[t]||o[t%o.length],value:n,shape:`circle`,patternIndex:t,proportion:r}}).map((e,t)=>{let r=m(F.value.value.formatter,e.value,n({p:F.value.dataLabels.prefix,v:e.value,s:F.value.dataLabels.suffix,r:L.value.legend.roundingValue}),{datapoint:e,index:t}),i=m(F.value.percentage.formatter,di(e),n({v:di(e),s:`%`,r:L.value.legend.roundingPercentage})),a=Di({val:r,percentage:W.value.includes(t)?`${Ei(e.proportion*100)}%`:i,showVal:L.value.legend.showValue,showPercentage:L.value.legend.showPercentage,config:L.value.legend});return{...e,opacity:W.value.includes(t)?.5:1,segregate:()=>!Ur.value&&Jr(t),isSegregated:W.value.includes(t),display:`${e.name}${L.value.legend.showPercentage||L.value.legend.showValue?`: `:``}${a}`}})),ti=_(()=>({cy:`donut-div-legend`,backgroundColor:L.value.legend.backgroundColor,color:L.value.legend.color,fontSize:L.value.legend.fontSize,paddingBottom:12,fontWeight:L.value.legend.bold?`bold`:``})),G=_(()=>{let e=I.value.radiusRatio,t=Math.max(.1,Math.min(.50001,e)),n=Math.min(V.value.width*t,V.value.height*t);return Math.max(12,n)}),K=_(()=>s({series:$r.value},V.value.width/2,V.value.height/2,G.value,G.value,1.99999,2,1,360,105.25,Br.value)),ni=_(()=>Math.abs($r.value.map(e=>e.value).reduce((e,t)=>e+t,0))>0),ri=_(()=>s({series:[{value:1,color:I.value.emptyFill,name:`_`,seriesIndex:0,patternIndex:-1,ghost:!1,absoluteValues:[1]}]},V.value.width/2,V.value.height/2,G.value,G.value,1.99999,2,1,360,105.25,Br.value)),q=_(()=>K.value.filter(e=>!e.ghost)),J=_(()=>{let e=Math.max(...$r.value.map(e=>e.value)),t=$r.value.map(t=>t.value/e);return se({series:t,center:{x:V.value.width/2,y:V.value.height/2},maxRadius:Math.min(V.value.width,V.value.height)/3,hasGhost:R.value})});function ii(e){return e.x>V.value.width/2+6?`start`:e.x<V.value.width/2-6?`end`:`middle`}function ai(e){return e.middlePoint.y>V.value.height/2?r({initX:e.middlePoint.x,initY:e.middlePoint.y,offset:100,centerX:V.value.width/2,centerY:V.value.height/2}).y:r({initX:e.middlePoint.x,initY:e.middlePoint.y,offset:0,centerX:V.value.width/2,centerY:V.value.height/2}).y-100}function Y(e){return e.proportion*100>F.value.dataLabels.hideUnderValue}function oi(e,t){let n=F.value.dataLabels.hideUnderValue,r=F.value.dataLabels.smallArcClusterThreshold,i=(li.value[t]??e.proportion??0)*100;return i>n&&i<=r}let{smallArcLayoutsClassic:X}=ut({FINAL_CONFIG:P,noGhostDonut:q,svg:V,padding:Nr,labels_inline_fontSize:or,minSize:G,findArcMidpoint:fe,calcMarkerOffsetX:f,calcMarkerOffsetY:h,animatingIndex:Wr,segregated:W,isSmallArc:oi});function si(e,t){let r=e.value/ci(t);return isNaN(r)?0:m(F.value.percentage.formatter,r*100,n({v:r*100,s:`%`,r:F.value.percentage.rounding}),{datapoint:e})}function ci(e){return[...e].map(e=>e.value).reduce((e,t)=>e+t,0)}let Z=_(()=>$r.value.map(e=>e.value).reduce((e,t)=>e+t,0)),li=_(()=>{let e=H.value.reduce((e,t)=>e+t.value,0);return e<=0?[]:H.value.map(t=>t.value/e)}),ui=_(()=>Z.value/$r.value.length);function di(e){return Ur.value?e.proportion*100:e.value/Z.value*100}let fi=w(null),pi=w(!1);function mi({datapoint:e,seriesIndex:t}){P.value.events.datapointLeave&&P.value.events.datapointLeave({datapoint:e,seriesIndex:t}),fr.value=!1,N.value=null,tr.value=null,rr.value=`pointer`}function Q({datapoint:e,relativeIndex:t,seriesIndex:r,show:i=!1,triggerMode:o=`pointer`}){P.value.events.datapointEnter&&P.value.events.datapointEnter({datapoint:e,seriesIndex:r}),rr.value=o,tr.value=t,fi.value={datapoint:e,seriesIndex:r,config:P.value,series:H.value},fr.value=i,N.value=t;let s=``,l=L.value.tooltip.customFormat;if(pi.value=!1,a(l))try{let t=l({seriesIndex:r,datapoint:e,series:H.value,config:P.value});typeof t==`string`&&(pr.value=t,pi.value=!0)}catch{console.warn(`Custom format cannot be applied.`),pi.value=!1}pi.value||(s+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${L.value.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;">${e.name}</div>`,s+=`<div style="display:flex;flex-direction:row;gap:6px;align-items:center;"><svg viewBox="0 0 60 60" height="14" width="14"><circle cx="30" cy="30" r="30" stroke="none" fill="${e.color}"/>${Ln.pattern?`<circle cx="30" cy="30" r="30" stroke="none" fill="url(#pattern_${M.value}_${r})"/>`:``}</svg>`,s+=`<b>${Di({showVal:L.value.tooltip.showValue,showPercentage:L.value.tooltip.showPercentage,val:`<span>${m(F.value.value.formatter,e.value,n({p:F.value.dataLabels.prefix,v:e.value,s:F.value.dataLabels.suffix,r:L.value.tooltip.roundingValue}),{datapoint:e,relativeIndex:t,seriesIndex:r})}</span>`,percentage:m(F.value.percentage.formatter,e.proportion*100,n({v:e.proportion*100,s:`%`,r:L.value.tooltip.roundingPercentage}),{datapoint:e,relativeIndex:t,seriesIndex:r}),config:L.value.tooltip})}</b></div>`,L.value.comments.showInTooltip&&e.comment&&(s+=`<div class="vue-data-ui-tooltip-comment" style="background:${c(e.color,12.5)}; padding: 6px; margin-bottom: 6px; margin-top:6px; border-left: 1px solid ${e.color}">${e.comment}</div>`),pr.value=`<div>${s}</div>`)}function hi(e,t){let n=X.value[t];if(n)return{textAnchor:n.textAnchor,x:n.labelX,y:n.labelY};let r=f(e,!0,12);return{textAnchor:r.anchor,x:r.x,y:h(e)}}function gi(e,t,n){let{textAnchor:r,x:i}=hi(e,t),a=Oi(e),o=`
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Bt as r,D as i,Dt as a,Ht as o,It as s,Jt as c,S as l,X as u,Y as ee,Yt as te,Zt as ne,at as d,b as re,dt as ie,f,h as p,i as m,in as ae,it as oe,j as se,nn as ce,nt as le,p as h,s as ue,t as de,ut as fe,w as pe,yt as me,zt as he}from"./lib-rPeBMZrn.js";import{n as ge,t as _e}from"./BaseScanner-8NdoBs7B.js";import{n as ve,t as ye}from"./useHints-BH9r_0Vd.js";import{t as be}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as xe}from"./useNestedProp-DnGoh-XS.js";import{t as Se}from"./useThemeCheck-BKNRbGeC.js";import{t as Ce}from"./chartImage-DPGnEuYM.js";import{n as we}from"./Title-BliHuXfT.js";import{t as Te}from"./useChartExport-BZts4KFb.js";import{n as Ee,t as De}from"./tableIntegration-CNoJ1CIY.js";import{n as Oe,t as ke}from"./annotationSlots-BRR85CqJ.js";import{n as Ae,t as je}from"./userOptionsSlots-DYuo-E5m.js";import{t as Me}from"./usePrinter-sVoTzet1.js";import{t as Ne}from"./Shape-CRe8woTu.js";import{c as Pe}from"./canvas-lib-22VpOI4_.js";import{t as Fe}from"./useResponsive-CENUxfEL.js";import{t as Ie}from"./DefGrad-DKMq1REY.js";import{t as Le}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Re}from"./A11yDataTable-DWNlWXzs.js";import{t as ze}from"./useUserOptionState-CXlFnwPv.js";import{t as Be}from"./useChartAccessibility-DOMuYJfm.js";import{n as Ve,t as He}from"./labelUtils-CdtU-yB_.js";import{t as Ue}from"./vue_ui_donut-T5PeOqvf.js";import{t as We}from"./Legend-DM0ClX3D.js";import{Fragment as g,Teleport as Ge,computed as _,createBlock as v,createCommentVNode as y,createElementBlock as b,createElementVNode as x,createSlots as Ke,createTextVNode as qe,createVNode as Je,defineAsyncComponent as Ye,guardReactiveProps as Xe,mergeProps as Ze,nextTick as Qe,normalizeClass as $e,normalizeProps as et,normalizeStyle as S,onBeforeUnmount as tt,onMounted as nt,openBlock as C,ref as w,renderList as T,renderSlot as E,resolveDynamicComponent as rt,shallowRef as it,toDisplayString as D,toRefs as at,unref as O,useSlots as ot,vShow as st,watch as ct,withCtx as k,withDirectives as lt}from"vue";function ut(e){let{FINAL_CONFIG:t,noGhostDonut:n,svg:r,padding:i,labels_inline_fontSize:a,minSize:o,findArcMidpoint:s,calcMarkerOffsetX:c,calcMarkerOffsetY:l,animatingIndex:u,segregated:ee,isSmallArc:te}=e;return{smallArcLayoutsClassic:_(()=>{if(t.value.type!==`classic`)return{};let e={},ne=n.value||[];if(!ne.length)return e;let d=r.value.width/2,re=r.value.height/2,ie=i.value.top+16,f=r.value.height-i.value.bottom-16,p=a.value,m=p/3,ae=p*1.5,oe=d-(o.value+6),se=d+(o.value+6),ce=!!t.value.style.chart.layout.curvedMarkers;function le({midX:e,midY:t,bandX:n,bandY:r}){if(!ce)return`M ${e} ${t} L ${e} ${r} L ${n} ${r}`;let i=n<d?-1:1,a=n-e,o=r-t,s=Math.sqrt(a*a+o*o)||1,c=e-d,l=t-re,u=Math.sqrt(c*c+l*l)||1,ee=c/u,te=l/u,ne=u+9;function ie({x:e,y:t}){let n=e-d,r=t-re,i=Math.sqrt(n*n+r*r)||1;if(i>=ne)return{x:e,y:t};let a=ne/i;return{x:d+n*a,y:re+r*a}}if(s<56){let i=a/s,c=-(o/s),l=i,u=(e+n)*.5,ne=(t+r)*.5,f=u+c,p=ne+l,m=(f-d)*(f-d)+(p-re)*(p-re),ae=u-c,oe=ne-l;(ae-d)*(ae-d)+(oe-re)*(oe-re)>m&&(c=-c,l=-l);let se=.78,ce=e+a*se,le=t+o*se,h=Math.max(0,Math.min(1,(s-18)/44)),ue=h*h*(3-2*h),de=2.5+ue*4,fe=1+ue*2.5;de*=.9;let pe=ie({x:ce+c*de+ee*fe,y:le+l*de+te*fe});return`M ${e} ${t} Q ${pe.x} ${pe.y} ${n} ${r}`}let f=s*.34;f<20&&(f=20),f>46&&(f=46);let p=s*.46;p<22&&(p=22),p>70&&(p=70);let m={x:e+ee*f,y:t+te*f},ae=d+i*Math.max(Math.abs(n-d),ne),oe={x:n-i*Math.min(p,Math.abs(ae-n)*.75),y:r},se=ie(m),le=ie(oe);return`M ${e} ${t} C ${se.x} ${se.y} ${le.x} ${le.y} ${n} ${r}`}function h(e){let t=String(e??``).split(/\n/g),n=Math.max(0,t.length-1)*(p*1.2);return ae+n}function ue({arc:e,index:t}){let{x:n,y:r}=s(e.path);return{arc:e,index:t,midX:n,midY:r,inlineMarkerX:c(e).x,inlineMarkerY:l(e)-3.5,labelHeight:h(e.name)}}function de(e){let{arc:t}=e,n=t.seriesIndex??0;return u.value===n||ee.value.includes(n)?!1:te(t,n)}function fe(e){let t=e.inlineMarkerY<re,n=e.inlineMarkerX<d;return t&&n?`TL`:t&&!n?`TR`:!t&&n?`BL`:`BR`}function pe(e,t){t.startsWith(`T`)?e.sort((e,t)=>e.inlineMarkerY-t.inlineMarkerY||e.index-t.index):e.sort((e,t)=>t.inlineMarkerY-e.inlineMarkerY||e.index-t.index)}function me({side:e,markerX:t,markerY:n,labelY:r,connectorPath:i}){return{side:e,labelX:e===`left`?t-8:t+8,labelY:r+m,textAnchor:e===`left`?`end`:`start`,markerX:t,markerY:n,connectorPath:i}}function he({candidateList:t,side:n,bandMarkerX:r,startY:i,direction:a}){let o=i;t.forEach(t=>{let{index:i,midX:s,midY:c,labelHeight:l}=t,u;a===`down`?(u=o,o+=l):(o-=l,u=o);let ee=u,te=le({midX:s,midY:c,bandX:r,bandY:ee});e[i]=me({side:n,markerX:r,markerY:ee,labelY:u,connectorPath:te})})}let ge=ne.map((e,t)=>ue({arc:e,index:t})).filter(de),_e={TL:[],TR:[],BL:[],BR:[]};return ge.forEach(e=>{_e[fe(e)].push(e)}),Object.keys(_e).forEach(e=>{pe(_e[e],e)}),he({candidateList:_e.TL,side:`left`,bandMarkerX:oe,startY:ie,direction:`down`}),he({candidateList:_e.TR,side:`right`,bandMarkerX:se,startY:ie,direction:`down`}),_e.BL.length>1&&he({candidateList:_e.BL,side:`left`,bandMarkerX:oe,startY:f,direction:`up`}),_e.BR.length>1&&he({candidateList:_e.BR,side:`right`,bandMarkerX:se,startY:f,direction:`up`}),e})}}var dt=/* @__PURE__ */ e({default:()=>En}),ft=[`id`],pt=[`id`],mt=[`id`],ht={style:{position:`relative`}},gt=[`xmlns`,`aria-describedby`,`viewBox`],_t=[`width`,`height`],vt={key:1},yt={key:2},bt=[`id`],xt=[`id`],St=[`id`],Ct=[`flood-color`],wt=[`id`],Tt=[`flood-color`],Et=[`d`,`stroke`,`filter`],Dt=[`d`,`stroke`,`filter`],Ot=[`cx`,`cy`,`r`,`fill`,`filter`],kt={key:6},At=[`stroke`,`d`],jt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Mt={key:0},Nt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Pt={key:0},Ft=[`stroke`,`d`],It={key:0},Lt=[`d`,`stroke`,`stroke-width`,`filter`],Rt={key:1},zt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Bt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Vt={key:1},Ht=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`],Ut=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`],Wt={key:0},Gt=[`d`,`fill`,`stroke`,`stroke-width`],Kt=[`cx`,`cy`,`r`,`stroke`],qt=[`cx`,`cy`,`r`,`fill`],Jt=[`cx`,`cy`,`r`],Yt={key:0},Xt=[`d`,`stroke`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],Zt={key:1},Qt=[`cx`,`cy`,`r`],$t=[`x`,`y`,`fill`,`font-size`],en=[`x`,`y`,`fill`,`font-size`],tn=[`x`,`y`,`fill`,`font-size`],nn=[`x`,`y`,`fill`,`font-size`],rn=[`filter`,`opacity`],an={key:0},on=[`x`,`y`],sn={key:1},cn=[`cx`,`cy`,`fill`,`stroke`,`filter`,`onClick`,`onMouseenter`,`onMouseleave`],ln=[`text-anchor`,`x`,`y`,`onClick`,`onMouseenter`,`onMouseleave`,`innerHTML`],un=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`onClick`,`onMouseenter`,`onMouseleave`],dn=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`onClick`,`onMouseenter`,`onMouseleave`,`innerHTML`],fn=[`cx`,`cy`,`fill`,`stroke`,`filter`,`onClick`,`onMouseenter`,`onMouseleave`],pn=[`text-anchor`,`x`,`y`,`onClick`,`onMouseenter`,`onMouseleave`,`innerHTML`],mn=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`onClick`,`onMouseenter`,`onMouseleave`],hn=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`onClick`,`onMouseenter`,`onMouseleave`,`innerHTML`],gn={key:2},_n=[`x`,`y`,`width`],vn=[`x`,`y`,`width`],yn={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},bn={key:5,class:`vue-data-ui-watermark`},xn=[`id`],Sn=[`onClick`],Cn={key:8,class:`vue-ui-donut-hollow`},wn={key:0},Tn={key:1},En=/*#__PURE__*/ be({__name:`vue-ui-donut`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`selectDatapoint`,`copyAlt`],setup(e,{expose:be,emit:dt}){let En=Ye(()=>import(`./Tooltip-C1q0Qoh7.js`)),Dn=Ye(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),On=Ye(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),kn=Ye(()=>import(`./DataTable-0Vv-aGHD.js`)),An=Ye(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),jn=Ye(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Mn=Ye(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),Nn=Ye(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_donut:Pn}=t(),{isThemeValid:Fn,warnInvalidTheme:In}=Se(),Ln=ot(),A=e,Rn=_({get(){return!!A.dataset&&A.dataset.length},set(e){return e}}),zn=it(null),Bn=w(null),Vn=w(null),Hn=w(null),Un=it(null),Wn=it(null),Gn=it(null),Kn=it(null),qn=it(null),Jn=it(null),Yn=w(0),Xn=w(0),Zn=w(0),Qn=w(!1),$n=w(null),er=w(null),tr=w(null),nr=w({x:0,y:0}),rr=w(`pointer`),ir=w(!1),ar=_({get:()=>P.value.style.chart.layout.labels.percentage.fontSize,set:e=>e}),j=_({get:()=>P.value.style.chart.layout.labels.name.fontSize,set:e=>e}),or=_({get:()=>P.value.style.chart.layout.labels.dataLabels.smallArcClusterFontSize,set:e=>e}),sr=!1,cr=()=>{P.value.autoSize&&!sr&&(sr=!0,requestAnimationFrame(()=>{sr=!1;let e=P.value,t=Bn.value,n=z.value;if(!e.autoSize||!t||!n)return;let[r,i,a,o]=n.getAttribute(`viewBox`).split(` `).map(Number),s={x:r,y:i,width:a,height:o},c=[{selector:`.vue-data-ui-datalabel-value`,baseSize:F.value.percentage.fontSize,minSize:F.value.percentage.minFontSize,sizeRef:ar},{selector:`.vue-data-ui-datalabel-name`,baseSize:F.value.name.fontSize,minSize:F.value.name.minFontSize,sizeRef:j},{selector:`.vue-data-ui-datalabel-inline`,baseSize:F.value.dataLabels.smallArcClusterFontSize,minSize:F.value.name.minFontSize,sizeRef:or}];c.map(e=>t.querySelectorAll(e.selector).length).reduce((e,t)=>e+t,0)!==0&&c.forEach(({selector:e,baseSize:n,minSize:r,sizeRef:i})=>{t.querySelectorAll(e).forEach(e=>{i.value=ue({el:e,bounds:s,currentFontSize:n,minFontSize:r,attempts:200,padding:1})})})}))};nt(async()=>{Qn.value=!0,dr(),requestAnimationFrame(cr)});let lr;nt(()=>{zn.value&&(lr=new ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;if(e>0&&n>0){cr();break}}}),lr.observe(zn.value.parentElement))}),tt(()=>{lr?.disconnect()}),tt(()=>{Gn.value&&(Kn.value&&Gn.value.unobserve(Kn.value),Gn.value.disconnect())});let ur=_(()=>P.value.debug);function dr(){if(he(A.dataset)?(d({componentName:`VueUiDonut`,type:`dataset`,debug:ur.value}),Rn.value=!1,xr.value=!0):(A.dataset.forEach((e,t)=>{me({datasetObject:e,requiredAttributes:[`name`,`values`]}).forEach(e=>{d({componentName:`VueUiDonut`,type:`datasetSerieAttribute`,property:e,index:t,debug:ur.value}),Rn.value=!1,xr.value=!0})}),ur.value&&A.dataset.forEach((e,t)=>{(!e.name||e.name===``)&&d({componentName:`VueUiDonut`,type:`datasetAttributeEmpty`,property:`name`,index:t})})),he(A.dataset)||(xr.value=P.value.loading),P.value.responsive){let e=Pe(()=>{let{width:e,height:t}=Fe({chart:zn.value,title:P.value.style.chart.title.text?Un.value:null,legend:P.value.style.chart.legend.show?Wn.value:null,source:qn.value,noTitle:Jn.value,padding:P.value.autoSize?void 0:Nr.value});requestAnimationFrame(()=>{V.value.width=e,V.value.height=t,cr()})});Gn.value&&(Kn.value&&Gn.value.unobserve(Kn.value),Gn.value.disconnect()),Gn.value=new ResizeObserver(e),Kn.value=zn.value.parentNode,Gn.value.observe(Kn.value)}}let M=w(u()),fr=w(!1),pr=w(``),N=w(null),mr=w(0);function hr(){let e=xe({userConfig:A.config,defaultConfig:Pn}),t={},n=e.theme;if(!n)t=e;else if(!Fn.value(e))In(e),t=e;else{let r=xe({userConfig:Ue[n]||A.config,defaultConfig:e});t={...xe({userConfig:A.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:ce[n]||o}}return t}let P=w(hr()),F=_(()=>P.value.style.chart.layout.labels),I=_(()=>P.value.style.chart.layout.donut),gr=_(()=>P.value.style.chart.layout),L=_(()=>P.value.style.chart);ve({config:()=>P.value,dataset:()=>A.dataset,component:`VueUiDonut`,rules:[ye.singleSeries,ye.emptyArray,{test:e=>e.length>6,message:[`👀 The number of series is > 6. Consider:`,``,`▶️ Grouping small values dynamically into a single "Other" series.`,``,`▶️ Using filters to let users choose a maximum number of series to display.`,``,`▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read.`]}]});let _r=_(()=>P.value.userOptions.useCursorPointer),vr=_(()=>ae({defaultConfig:{useCssAnimation:!1,table:{show:!1},startAnimation:{show:!1},userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{labels:{dataLabels:{show:!1},hollow:{average:{show:!1},total:{show:!1}},value:{show:!1}}},legend:{backgroundColor:`transparent`,showValue:!1,showPercentage:!1},title:{color:`#1A1A1A`,subtitle:{color:`#5A5A5A`}}}}},userConfig:P.value.skeletonConfig??{}})),{loading:yr,FINAL_DATASET:br,manualLoading:xr,skeletonDataset:Sr}=ge({...at(A),FINAL_CONFIG:P,prepareConfig:hr,skeletonDataset:A.config?.skeletonDataset??[{name:``,values:[3],color:`#BABABA`},{name:``,values:[2],color:`#AAAAAA`},{name:``,values:[1],color:`#CACACA`}],skeletonConfig:ae({defaultConfig:P.value,userConfig:vr.value})}),R=w(!0),Cr=w(0),wr=w(!1),Tr=null;function Er(e=1e3){return new Promise(t=>{let n=performance.now();function r(i){let a=i-n,o=Math.min(a/e,1),s=oe(o);Cr.value=s,o<1?Tr=requestAnimationFrame(r):(Cr.value=1,Tr=null,t())}Tr!==null&&cancelAnimationFrame(Tr),Cr.value=0,Tr=requestAnimationFrame(r)})}ct(()=>yr.value,async e=>{if(e||wr.value)return;let t=br.value===Sr,n=P.value.startAnimation?.show;!t&&n?(wr.value=!0,await Er(P.value.startAnimation.durationMs||1e3)):Cr.value=1,R.value=!1},{immediate:!0});let{userOptionsVisible:Dr,setUserOptionsVisibility:Or,keepUserOptionState:kr}=ze({config:P.value}),{svgRef:z}=Be({config:L.value.title});function Ar(){Or(!0)}function jr(){Or(!1)}let Mr=ne(A.config);ct(()=>A.config,(e,t)=>{let n=ne(e),r=n!==Mr;Mr=n;let i=hr();r?(yr.value||(P.value=i),Dr.value=!P.value.userOptions.showOnChartHover,dr(),Yn.value+=1,Xn.value+=1,Zn.value+=1,B.value.dataLabels.show=F.value.dataLabels.show,B.value.showTable=P.value.table.show,B.value.showTooltip=L.value.tooltip.show,V.value.height=L.value.height,V.value.width=L.value.width):(P.value.style.chart.tooltip=i.style.chart.tooltip,B.value.showTooltip=P.value.style.chart.tooltip.show)},{deep:!0});let Nr=_(()=>{let{top:e,right:t,bottom:n,left:r}=L.value.padding;return{css:`padding:${e}px ${t}px ${n}px ${r}px`,top:e,right:t,bottom:n,left:r}}),{isPrinting:Pr,isImaging:Fr,generatePdf:Ir,generateImage:Lr}=Me({elementId:`donut__${M.value}`,fileName:L.value.title.text||`vue-ui-donut`,options:P.value.userOptions.print}),Rr=_(()=>P.value.userOptions.show&&!L.value.title.text),zr=_(()=>pe(P.value.customPalette)),B=w({dataLabels:{show:F.value.dataLabels.show},showTable:P.value.table.show,showTooltip:L.value.tooltip.show});ct(P,()=>{B.value={dataLabels:{show:F.value.dataLabels.show},showTable:P.value.table.show,showTooltip:L.value.tooltip.show}},{immediate:!0});let V=w({height:L.value.height,width:L.value.width}),Br=_(()=>{if(P.value.pie)return G.value;let e=I.value.strokeWidth/512,t=Math.min(V.value.width,V.value.height)*e,n=t>G.value?G.value:t;return Math.max(n,12*(1+e))}),Vr=dt,H=_(()=>br.value.sort((e,t)=>{let n=Array.isArray(e.values)?e.values.reduce((e,t)=>e+t,0):e.value??0,r=Array.isArray(t.values)?t.values.reduce((e,t)=>e+t,0):t.value??0;return e.ghost&&!t.ghost?1:t.ghost&&!e.ghost?-1:r-n}).map((e,t)=>({name:e.name,color:l(e.color)||zr.value[t]||o[t]||o[t%o.length],value:re(e.values.reduce((e,t)=>e+t,0)),absoluteValues:e.values,comment:e.comment||``,patternIndex:t,seriesIndex:t,ghost:!1,pattern:`pattern_${M.value}_${t}`})));ct(()=>A.dataset,e=>{Array.isArray(e)&&e.length>0&&(xr.value=!1)},{immediate:!0});let U=it(H.value);ct(()=>H.value,e=>{U.value=e,requestAnimationFrame(cr)});function Hr(){return H.value.map(e=>({name:e.name,color:e.color,value:e.value}))}let W=w([]),Ur=w(!1),Wr=w(null);function Gr(){Vr(`selectLegend`,$r.value.map(e=>({name:e.name,color:e.color,value:e.value})))}function Kr({from:e,to:t,duration:n,onUpdate:r,onDone:i,easing:a=oe}){let o=performance.now();function s(c){let l=Math.min((c-o)/n,1),u=a(l);r(e+(t-e)*u,l),l<1?requestAnimationFrame(s):(r(t,1),i&&i())}requestAnimationFrame(s)}function qr(){W.value.length?W.value=[]:ei.value.forEach((e,t)=>{W.value.push(t)}),Gr()}function Jr(e){let t=H.value.find((t,n)=>n===e),n=U.value.find((t,n)=>n===e).value;if(W.value.includes(e)){W.value=W.value.filter(t=>t!==e);let r=t.value;function i(){U.value=U.value.map((t,n)=>e===n?{...t,value:r}:t),Gr()}function a(){Ur.value=!0,Wr.value=e,Kr({from:n,to:r,duration:P.value.serieToggleAnimation.durationMs,onUpdate:(t,n)=>{U.value=U.value.map((n,r)=>e===r?{...n,value:t}:n),requestAnimationFrame(cr)},onDone:()=>{i(),Ur.value=!1,Wr.value=null}})}P.value.serieToggleAnimation.show&&P.value.type===`classic`?a():(i(),requestAnimationFrame(cr))}else if(W.value.length<H.value.length-1){function t(){W.value.push(e),U.value=U.value.map((t,n)=>e===n?{...t,value:0}:t),Gr()}function r(){Ur.value=!0,Wr.value=e,Kr({from:n,to:0,duration:P.value.serieToggleAnimation.durationMs,onUpdate:(t,n)=>{U.value=U.value.map((n,r)=>e===r?{...n,value:t}:n),requestAnimationFrame(cr)},onDone:()=>{t(),requestAnimationFrame(cr),Ur.value=!1,Wr.value=null}})}P.value.serieToggleAnimation.show&&P.value.type===`classic`?r():t()}}function Yr(e){return H.value.length?H.value.find(t=>t.name===e)||(ur.value&&console.warn(`VueUiDonut - Series name not found "${e}"`),null):(ur.value&&console.warn(`VueUiDonut - There are no series to show.`),null)}function Xr(e){let t=Yr(e);t!==null&&W.value.includes(t.seriesIndex)&&Jr(t.seriesIndex)}function Zr(e){let t=Yr(e);t!==null&&(W.value.includes(t.seriesIndex)||Jr(t.seriesIndex))}let Qr=_(()=>br.value.reduce((e,t)=>e+t.values.reduce((e,t)=>e+t,0),0)),$r=_(()=>{if(R.value&&!yr.value){let e=Cr.value,t=H.value.map(t=>({...t,value:t.value*e,color:t.color,ghost:!1})),n=Qr.value*(1-e);return n>0&&t.push({name:`__ghost__`,value:n,color:`transparent`,ghost:!0}),t}return U.value.forEach(e=>{if([null,void 0].includes(e.values))return{...e,values:[]}}),U.value.map((e,t)=>({...e,seriesIndex:t})).filter((e,t)=>!W.value.includes(t))}),ei=_(()=>br.value.map((e,t)=>{let n=(e.values||[]).reduce((e,t)=>e+t,0),r=n/br.value.map(e=>(e.values||[]).reduce((e,t)=>e+t,0)).reduce((e,t)=>e+t,0);return{name:e.name,color:l(e.color)||zr.value[t]||o[t]||o[t%o.length],value:n,shape:`circle`,patternIndex:t,proportion:r}}).map((e,t)=>{let r=m(F.value.value.formatter,e.value,n({p:F.value.dataLabels.prefix,v:e.value,s:F.value.dataLabels.suffix,r:L.value.legend.roundingValue}),{datapoint:e,index:t}),i=m(F.value.percentage.formatter,di(e),n({v:di(e),s:`%`,r:L.value.legend.roundingPercentage})),a=Di({val:r,percentage:W.value.includes(t)?`${Ei(e.proportion*100)}%`:i,showVal:L.value.legend.showValue,showPercentage:L.value.legend.showPercentage,config:L.value.legend});return{...e,opacity:W.value.includes(t)?.5:1,segregate:()=>!Ur.value&&Jr(t),isSegregated:W.value.includes(t),display:`${e.name}${L.value.legend.showPercentage||L.value.legend.showValue?`: `:``}${a}`}})),ti=_(()=>({cy:`donut-div-legend`,backgroundColor:L.value.legend.backgroundColor,color:L.value.legend.color,fontSize:L.value.legend.fontSize,paddingBottom:12,fontWeight:L.value.legend.bold?`bold`:``})),G=_(()=>{let e=I.value.radiusRatio,t=Math.max(.1,Math.min(.50001,e)),n=Math.min(V.value.width*t,V.value.height*t);return Math.max(12,n)}),K=_(()=>s({series:$r.value},V.value.width/2,V.value.height/2,G.value,G.value,1.99999,2,1,360,105.25,Br.value)),ni=_(()=>Math.abs($r.value.map(e=>e.value).reduce((e,t)=>e+t,0))>0),ri=_(()=>s({series:[{value:1,color:I.value.emptyFill,name:`_`,seriesIndex:0,patternIndex:-1,ghost:!1,absoluteValues:[1]}]},V.value.width/2,V.value.height/2,G.value,G.value,1.99999,2,1,360,105.25,Br.value)),q=_(()=>K.value.filter(e=>!e.ghost)),J=_(()=>{let e=Math.max(...$r.value.map(e=>e.value)),t=$r.value.map(t=>t.value/e);return se({series:t,center:{x:V.value.width/2,y:V.value.height/2},maxRadius:Math.min(V.value.width,V.value.height)/3,hasGhost:R.value})});function ii(e){return e.x>V.value.width/2+6?`start`:e.x<V.value.width/2-6?`end`:`middle`}function ai(e){return e.middlePoint.y>V.value.height/2?r({initX:e.middlePoint.x,initY:e.middlePoint.y,offset:100,centerX:V.value.width/2,centerY:V.value.height/2}).y:r({initX:e.middlePoint.x,initY:e.middlePoint.y,offset:0,centerX:V.value.width/2,centerY:V.value.height/2}).y-100}function Y(e){return e.proportion*100>F.value.dataLabels.hideUnderValue}function oi(e,t){let n=F.value.dataLabels.hideUnderValue,r=F.value.dataLabels.smallArcClusterThreshold,i=(li.value[t]??e.proportion??0)*100;return i>n&&i<=r}let{smallArcLayoutsClassic:X}=ut({FINAL_CONFIG:P,noGhostDonut:q,svg:V,padding:Nr,labels_inline_fontSize:or,minSize:G,findArcMidpoint:fe,calcMarkerOffsetX:f,calcMarkerOffsetY:h,animatingIndex:Wr,segregated:W,isSmallArc:oi});function si(e,t){let r=e.value/ci(t);return isNaN(r)?0:m(F.value.percentage.formatter,r*100,n({v:r*100,s:`%`,r:F.value.percentage.rounding}),{datapoint:e})}function ci(e){return[...e].map(e=>e.value).reduce((e,t)=>e+t,0)}let Z=_(()=>$r.value.map(e=>e.value).reduce((e,t)=>e+t,0)),li=_(()=>{let e=H.value.reduce((e,t)=>e+t.value,0);return e<=0?[]:H.value.map(t=>t.value/e)}),ui=_(()=>Z.value/$r.value.length);function di(e){return Ur.value?e.proportion*100:e.value/Z.value*100}let fi=w(null),pi=w(!1);function mi({datapoint:e,seriesIndex:t}){P.value.events.datapointLeave&&P.value.events.datapointLeave({datapoint:e,seriesIndex:t}),fr.value=!1,N.value=null,tr.value=null,rr.value=`pointer`}function Q({datapoint:e,relativeIndex:t,seriesIndex:r,show:i=!1,triggerMode:o=`pointer`}){P.value.events.datapointEnter&&P.value.events.datapointEnter({datapoint:e,seriesIndex:r}),rr.value=o,tr.value=t,fi.value={datapoint:e,seriesIndex:r,config:P.value,series:H.value},fr.value=i,N.value=t;let s=``,l=L.value.tooltip.customFormat;if(pi.value=!1,a(l))try{let t=l({seriesIndex:r,datapoint:e,series:H.value,config:P.value});typeof t==`string`&&(pr.value=t,pi.value=!0)}catch{console.warn(`Custom format cannot be applied.`),pi.value=!1}pi.value||(s+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${L.value.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;">${e.name}</div>`,s+=`<div style="display:flex;flex-direction:row;gap:6px;align-items:center;"><svg viewBox="0 0 60 60" height="14" width="14"><circle cx="30" cy="30" r="30" stroke="none" fill="${e.color}"/>${Ln.pattern?`<circle cx="30" cy="30" r="30" stroke="none" fill="url(#pattern_${M.value}_${r})"/>`:``}</svg>`,s+=`<b>${Di({showVal:L.value.tooltip.showValue,showPercentage:L.value.tooltip.showPercentage,val:`<span>${m(F.value.value.formatter,e.value,n({p:F.value.dataLabels.prefix,v:e.value,s:F.value.dataLabels.suffix,r:L.value.tooltip.roundingValue}),{datapoint:e,relativeIndex:t,seriesIndex:r})}</span>`,percentage:m(F.value.percentage.formatter,e.proportion*100,n({v:e.proportion*100,s:`%`,r:L.value.tooltip.roundingPercentage}),{datapoint:e,relativeIndex:t,seriesIndex:r}),config:L.value.tooltip})}</b></div>`,L.value.comments.showInTooltip&&e.comment&&(s+=`<div class="vue-data-ui-tooltip-comment" style="background:${c(e.color,12.5)}; padding: 6px; margin-bottom: 6px; margin-top:6px; border-left: 1px solid ${e.color}">${e.comment}</div>`),pr.value=`<div>${s}</div>`)}function hi(e,t){let n=X.value[t];if(n)return{textAnchor:n.textAnchor,x:n.labelX,y:n.labelY};let r=f(e,!0,12);return{textAnchor:r.anchor,x:r.x,y:h(e)}}function gi(e,t,n){let{textAnchor:r,x:i}=hi(e,t),a=Oi(e),o=`
|
|
2
2
|
<tspan
|
|
3
3
|
class="vue-data-ui-datalabel-inline"
|
|
4
4
|
fill="${F.value.percentage.color}"
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,$t as r,At as i,D as a,Ht as o,It as ee,J as s,Jt as c,Kt as te,S as ne,X as re,_ as ie,at as ae,f as oe,h as se,i as ce,in as le,nn as ue,nt as de,p as fe,t as pe,tt as me,w as he,y as ge,yt as _e,zt as ve}from"./lib-rPeBMZrn.js";import{n as ye,t as be}from"./BaseScanner-8NdoBs7B.js";import{n as xe,t as Se}from"./useHints-BH9r_0Vd.js";import{t as Ce}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as we}from"./useNestedProp-DnGoh-XS.js";import{t as Te}from"./useThemeCheck-BKNRbGeC.js";import{t as Ee}from"./chartImage-DPGnEuYM.js";import{n as De}from"./Title-BliHuXfT.js";import{t as Oe}from"./useChartExport-BZts4KFb.js";import{n as ke,t as Ae}from"./tableIntegration-CNoJ1CIY.js";import{n as je,t as Me}from"./annotationSlots-BRR85CqJ.js";import{n as Ne,t as Pe}from"./userOptionsSlots-DYuo-E5m.js";import{t as Fe}from"./useTimeLabels-Das5O74F.js";import{t as Ie}from"./usePrinter-sVoTzet1.js";import{t as Le}from"./useTransitions-ChGGrtrv.js";import{t as Re}from"./useStableElementSize-CegFbRlF.js";import{t as ze}from"./useSvgLabelLayout-D1I8sQUi.js";import{t as Be}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Ve}from"./useResponsive-CENUxfEL.js";import{t as He}from"./DefGrad-DKMq1REY.js";import{t as Ue}from"./SlicerPreview-CFFUOlQr.js";import{t as We}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Ge}from"./A11yDataTable-DWNlWXzs.js";import{t as Ke}from"./useUserOptionState-CXlFnwPv.js";import{t as qe}from"./useChartAccessibility-DOMuYJfm.js";import{t as Je}from"./Legend-DM0ClX3D.js";import{t as Ye}from"./vue_ui_donut_evolution-CVoh3twl.js";import{Fragment as l,Teleport as Xe,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as Ze,createTextVNode as Qe,createVNode as $e,defineAsyncComponent as et,guardReactiveProps as tt,mergeProps as nt,nextTick as rt,normalizeClass as h,normalizeProps as it,normalizeStyle as at,onBeforeUnmount as ot,onMounted as st,openBlock as g,ref as _,renderList as v,renderSlot as y,resolveDynamicComponent as ct,shallowRef as lt,toDisplayString as b,toRefs as ut,unref as x,watch as dt,watchEffect as ft,withCtx as S}from"vue";var pt=/* @__PURE__ */ e({default:()=>nn}),mt=[`id`],ht=[`id`],gt=[`id`],_t={style:{position:`relative`}},vt=[`xmlns`,`aria-describedby`,`viewBox`],yt=[`x`,`y`,`width`,`height`],bt={key:1},xt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],St=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Ct={key:0},wt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Tt=[`font-size`,`fill`,`transform`],Et=[`x`,`y`,`font-size`,`fill`],Dt=[`d`,`stroke`,`stroke-width`],Ot=[`transform`,`font-size`,`text-anchor`,`fill`,`font-weight`],kt={key:0},At=[`text-anchor`,`font-size`,`fill`,`transform`],jt=[`text-anchor`,`font-size`,`fill`,`transform`,`innerHTML`],Mt=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],Nt={key:1},Pt=[`cx`,`cy`,`r`,`fill`],Ft={key:0},It={key:0},Lt=[`d`,`stroke`],Rt=[`text-anchor`,`x`,`y`,`fill`],zt=[`cx`,`cy`,`r`,`fill`],Bt={key:0},Vt=[`cx`,`cy`,`fill`],Ht={key:1},Ut=[`d`,`fill`,`stroke`],Wt={key:2},Gt=[`d`,`fill`,`stroke`],Kt=[`x`,`y`,`font-size`,`fill`],qt=[`x`,`y`,`width`,`height`,`fill`],Jt=[`x`,`y`,`width`,`height`,`onMouseenter`,`onMouseleave`,`onClick`],Yt=[`x`,`y`,`width`,`height`,`fill`,`fill-opacity`,`stroke`,`stroke-opacity`,`stroke-width`,`stroke-dasharray`],Xt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},Zt={key:5,class:`vue-data-ui-watermark`},Qt=[`id`],$t=[`onClick`],en={key:0},tn={key:1},nn=/*#__PURE__*/ Ce({__name:`vue-ui-donut-evolution`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}},zoomState:{type:Object,default:null}},emits:[`selectLegend`,`zoomStart`,`zoomEnd`,`zoomReset`,`update:zoomState`,`copyAlt`],setup(e,{expose:Ce,emit:pt}){let nn=et(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),rn=et(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),an=et(()=>import(`./DataTable-0Vv-aGHD.js`)),on=et(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),sn=et(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),cn=et(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),ln=et(()=>import(`./vue-ui-donut-CDryub1L.js`).then(e=>e.n)),un=et(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_donut_evolution:dn}=t(),{isThemeValid:fn,warnInvalidTheme:pn}=Te(),C=e,w=_(re()),T=_([]),E=_(null),mn=_(null),hn=_(!1),D=_(null),O=_(null),gn=_(null),_n=_(0),vn=_(0),yn=_(0),bn=_(0),xn=_(0),Sn=_(null),Cn=_(null),wn=_(null),Tn=_(null),En=_(!1),Dn=_(null),On=_(null),kn=lt(null),An=_(0),jn=_(0),Mn=_(!1);function Nn(){kn.value=O.value?.parentNode??null}function Pn(){return new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(e)})})}async function Fn(){let e=++jn.value;await rt(),await Pn(),await Pn(),e===jn.value&&(An.value+=1)}function In(){Mn.value||(Mn.value=!0,rt(()=>{Mn.value=!1,Nn(),Fn()}))}let Ln=Re({elementRef:kn,minimumWidth:2,minimumHeight:2,stableFramesRequired:2,once:!1,onSizeAccepted:()=>{Fn()}}),Rn=_(null),zn=_(null),Bn=_(null),Vn=_(null),Hn=_(null),Un=_(!1),k=lt(null),Wn=lt(null),Gn=_(null),A=_(null),Kn=_(!1),j=pt,qn=u(()=>!!C.dataset&&C.dataset.length),Jn=_(!1),Yn=0;st(()=>{En.value=!0,Nn(),Ln.start(),Zn(),Fn()});let Xn=u(()=>M.value.debug);function Zn(){ve(C.dataset)?(ae({componentName:`VueUiDonutEvolution`,type:`dataset`,debug:Xn.value}),rr.value=!0):C.dataset.length&&C.dataset.forEach((e,t)=>{_e({datasetObject:e,requiredAttributes:[`name`,`values`]}).forEach(e=>{ae({componentName:`VueUiDonutEvolution`,type:`datasetSerieAttribute`,property:e,index:t,debug:Xn.value}),rr.value=!0})}),ve(C.dataset)||(rr.value=M.value.loading),setTimeout(()=>{Un.value=!0},10),br(),M.value.responsive&&(k.value&&(Wn.value&&k.value.unobserve(Wn.value),k.value.disconnect()),k.value=new ResizeObserver(()=>{Un.value=!1;let{width:e,height:t}=Ve({chart:O.value,title:M.value.style.chart.title.text?Rn.value:null,legend:M.value.style.chart.legend.show?zn.value:null,slicer:M.value.style.chart.zoom.show&&ir.value>1?Hn.value:null,source:Bn.value});cancelAnimationFrame(Yn),Yn=requestAnimationFrame(()=>{L.value.width=e,L.value.height=t-12,Jn.value=!0,In(),clearTimeout(Gn.value),Gn.value=setTimeout(()=>{Un.value=!0},10)})}),Wn.value=O.value.parentNode,k.value.observe(Wn.value)),In()}let M=_(Or()),N=u(()=>P.value.grid),P=u(()=>M.value.style.chart.layout),Qn=u(()=>M.value.style.chart.dialog),F=u(()=>M.value.style.chart);xe({config:()=>M.value,dataset:()=>C.dataset,component:`VueUiDonutEvolution`,rules:[Se.emptyArray,{test:e=>e.length===1,message:[`👀 There is only a single series in your dataset. Consider:`,``,`▶️ Using VueUiXy instead, for a regular line chart.`]},{test:e=>e.length>6,message:[`👀 The number of series is > 6, which makes donuts hard to read. Consider:`,``,`▶️ Grouping small values dynamically into a single "Other" series.`,``,`▶️ Using filters to let users choose a maximum number of series to display.`,``,`▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read.`]},{test:e=>e.some(e=>e.values.length>24),message:[`👀 Some series have a number of data points > 24, which can make the chart and donuts hard to read. Consider:`,``,`▶️ Using larger time scales, or aggregated values.`,``,`▶️ Filtering the time range by adding date intputs in your UI.`,``,`▶️ Using VueUiXy to show longer series in a more comfortable display.`]}]});let{transitionEnabled:$n}=Le({config:()=>M.value.transitions,dataset:()=>C.dataset}),I=u(()=>M.value.userOptions.useCursorPointer),er=u(()=>le({defaultConfig:{useCssAnimation:!1,table:{show:!1},userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{dataLabels:{show:!1},grid:{stroke:`#6A6A6A`,axis:{yLabel:``,xLabel:``},yAxis:{scaleMin:null,scaleMax:null,autoScale:!1,dataLabels:{show:!1}},xAxis:{dataLabels:{show:!1}}},line:{stroke:`#CACACA60`}},legend:{backgroundColor:`transparent`,showValue:!1,showPercentage:!1},zoom:{show:!1,startIndex:null,endIndex:null}}}},userConfig:M.value.skeletonConfig??{}})),{loading:tr,FINAL_DATASET:nr,manualLoading:rr}=ye({...ut(C),FINAL_CONFIG:M,prepareConfig:Or,callback:()=>{Promise.resolve().then(async()=>{await br()})},skeletonDataset:C.config?.skeletonDataset??[{name:``,values:[1,2,3,5,8,13],color:`#AAAAAA`},{name:``,values:[1,2,3,5,8,13],color:`#BABABA`},{name:``,values:[1,2,3,5,8,13],color:`#CACACA`}],skeletonConfig:le({defaultConfig:M.value,userConfig:er.value})}),L=_({width:P.value.width,height:P.value.height}),ir=u(()=>Math.max(...nr.value.map(e=>e.values.length))),R=_({start:0,end:ir.value}),z=_(!1),ar=_(!1),B=_(null),V=_(null),H=_(null),or=_(!1),sr=_({time:0,x:0,y:0,pointerType:null}),cr=u(()=>M.value.style.chart.zoom?.dragToZoom),U=u(()=>cr.value.show&&qn.value&&ur.value&&Y.value>1&&!tr.value),lr=_(!1),ur=_(!1),dr=_(!1),fr=null,W={};function pr(e,t=R.value){if(!e||typeof e!=`object`)return null;let n=e.start!==void 0&&e.start!==null,r=e.end!==void 0&&e.end!==null;if(!n&&!r)return null;let i=Number(n?e.start:t.start),a=Number(r?e.end:t.end);return!Number.isFinite(i)||!Number.isFinite(a)?null:{start:i,end:a}}function mr(e){let t=pr(e);t&&j(`update:zoomState`,t)}function hr(){fr&&=(cancelAnimationFrame(fr),null),W={}}function gr(e,t=R.value.start){let n=Y.value,r=Number(t);return e>n?n:e<0||e<=r?Math.min(r+1,n):e}function _r(){let e=Y.value;if(!Number.isFinite(e)||e<=0){R.value={start:0,end:0};return}let t=Math.max(0,Math.min(Number(R.value.start)||0,e-1)),n=Math.max(t+1,Math.min(Number(R.value.end)||e,e));(!Number.isFinite(t)||!Number.isFinite(n)||n<=t)&&(t=0,n=e),R.value={start:t,end:n},Vn.value&&Vn.value.setRangeValues(t,n)}function vr(e){let t=pr(e);if(!t)return null;let{start:n,end:r}=t;return(n!==Number(R.value.start)||r!==Number(R.value.end))&&(hr(),R.value={start:n,end:r},_r(),In()),{start:Number(R.value.start),end:Number(R.value.end)}}function yr(e){let t=vr(e);return t?(mr(t),t):null}async function br(e=!0){if(!lr.value){lr.value=!0;try{await rt(),await rt();let{startIndex:t,endIndex:n}=F.value.zoom,r=Y.value;if(!Number.isFinite(r)||r<=0){R.value={start:0,end:0},ur.value=!0;return}let i=t==null?0:Number(t),a=n==null?r:gr(Number(n)+1,i);dr.value=!0,R.value={start:i,end:a},_r(),ur.value=!0,e&&C.zoomState&&vr(C.zoomState)}finally{queueMicrotask(()=>{dr.value=!1}),lr.value=!1,In()}}}async function xr({force:e=!1,publish:t=!1}={}){await br(!e),t&&(mr({start:Number(R.value.start),end:Number(R.value.end)}),j(`zoomReset`))}dt([()=>C.zoomState,ur],([e,t])=>{t&&e&&vr(e)},{deep:!0,immediate:!0});function Sr(e){W={...W,...e},fr&&cancelAnimationFrame(fr),fr=requestAnimationFrame(()=>{let e={...R.value,...W};W={},fr=null,R.value=e,_r(),In(),mr({start:Number(R.value.start),end:Number(R.value.end)})})}function Cr(e){if(lr.value||dr.value)return;let t=Number(e);Number.isFinite(t)&&(j(`zoomStart`,{index:t,isZoom:t!==0}),t!==R.value.start&&Sr({start:t}))}function wr(e){if(lr.value||dr.value)return;let t=W.start===void 0?R.value.start:W.start,n=gr(Number(e),t);Number.isFinite(n)&&(j(`zoomEnd`,{index:n,isZoom:n!==Y.value}),(n!==R.value.end||W.start!==void 0)&&Sr({end:n}))}let{userOptionsVisible:Tr,setUserOptionsVisibility:Er,keepUserOptionState:Dr}=Ke({config:M.value}),{svgRef:G}=qe({config:F.value.title});function Or(){let e=we({userConfig:C.config,defaultConfig:dn}),t={},n=e.theme;if(n){if(!fn.value(e))pn(e),t=e;else{let r=we({userConfig:Ye[n]||C.config,defaultConfig:e});t={...we({userConfig:C.config,defaultConfig:r}),customPalette:e.customPalette?e.customPalette:ue[n]||o}}}else t=e;return t}dt(()=>C.config,e=>{tr.value||(M.value=Or()),Tr.value=!M.value.userOptions.showOnChartHover,Zn(),yn.value+=1,bn.value+=1,xn.value+=1,Fr.value.showTable=M.value.table.show},{deep:!0}),dt(()=>C.dataset,e=>{Array.isArray(e)&&e.length>0&&(rr.value=!1),xr()},{deep:!0});let{isPrinting:kr,isImaging:Ar,generatePdf:jr,generateImage:Mr}=Ie({elementId:w.value,fileName:F.value.title.text||`vue-ui-donut-evolution`,options:M.value.userOptions.print}),Nr=u(()=>M.value.userOptions.show&&!F.value.title.text),Pr=u(()=>he(M.value.customPalette)),Fr=_({showTable:M.value.table.show});dt(M,()=>{Fr.value={showTable:M.value.table.show}},{immediate:!0});let Ir=u(()=>({top:P.value.padding.top,right:P.value.padding.right,bottom:P.value.padding.bottom,left:P.value.padding.left})),K=u(()=>N.value.yAxis.position===`right`),{metrics:Lr,ready:Rr,settling:zr,update:Br}=ze({svgRef:G,canMeasure:()=>(!M.value.responsive||Jn.value)&&(!N.value.xAxis.dataLabels.show||Wr.value),initialMetrics:{scaleLabelsWidth:0,yAxisLabelWidth:0,xAxisLabelHeight:0,timeLabelsHeight:0},measure:e=>({scaleLabelsWidth:e(Sn.value).textWidth,yAxisLabelWidth:e(Tn.value).rotatedWidth,xAxisLabelHeight:e(wn.value).height,timeLabelsHeight:e(Cn.value).height})});function Vr(){let e=Lr.value.scaleLabelsWidth,t=Tn.value?Lr.value.yAxisLabelWidth+N.value.axis.yLabelOffsetX+N.value.axis.fontSize:0,n=e+t+5;return{left:K.value?0:n,right:K.value?n:0,scaleLabelsWidth:e,yAxisLabelWidth:t,crosshair:5}}ot(()=>{cancelAnimationFrame(Yn),Ln.stop(),clearTimeout(Gn.value),hr(),_i(),ri(),k.value&&(Wn.value&&k.value.unobserve(Wn.value),k.value.disconnect(),k.value=null,Wn.value=null)});let Hr=u(()=>Lr.value.xAxisLabelHeight+Lr.value.timeLabelsHeight+N.value.axis.fontSize+N.value.xAxis.dataLabels.offsetY),q=u(()=>{let e=Vr(),t=P.value.dataLabels.fontSize*3,n=L.value.width,r=L.value.height,i=Ir.value.left+e.left,a=n-Ir.value.right-e.right,o=n-i-Ir.value.right-e.right,ee=r-Ir.value.top-Ir.value.bottom-t-Hr.value,s=Ir.value.top+t;return{top:s,left:i,right:a,bottom:r-Ir.value.bottom-Hr.value,absoluteHeight:r,absoluteWidth:n,centerX:i+Math.max(10,o)/2,centerY:s+Math.max(10,ee)/2,width:Math.max(10,o),height:Math.max(10,ee),scaleLabelsWidth:e.scaleLabelsWidth,yAxisLabelWidth:e.yAxisLabelWidth,crosshair:e.crosshair}}),J=u(()=>(Xn.value&&nr.value.forEach((e,t)=>{[null,void 0].includes(e.name)&&ae({componentName:`VueUiDonutEvolution`,type:`datasetSerieAttribute`,property:`name`,index:t}),[null,void 0].includes(e.values)&&ae({componentName:`VueUiDonutEvolution`,type:`datasetSerieAttribute`,property:`values`,index:t})}),nr.value.map((e,t)=>({...e,values:te(e.values),color:ne(e.color)||Pr.value[t]||o[t]||o[t%o.length],length:(e.values||[]).length,uid:re()})))),Ur=u(()=>J.value.filter(e=>!T.value.includes(e.uid)).map(e=>({...e,values:e.values.filter((e,t)=>t>=R.value.start&&t<=R.value.end)}))),Y=u(()=>Math.max(...J.value.map(e=>e.length))),X=_([]),Wr=_(!1),Gr=0;ft(()=>{let e=++Gr;(async()=>{let t=await Fe({values:N.value.xAxis.dataLabels.values,maxDatapoints:Y.value,formatter:N.value.xAxis.dataLabels.datetimeFormatter,start:R.value.start,end:R.value.end});e===Gr&&(X.value=t,Wr.value=!0)})()});let Z=u(()=>q.value.width/(R.value.end-R.value.start)),Kr=u(()=>{let e=[];for(let t=0;t<R.value.end-R.value.start;t+=1){let n=Ur.value.map(e=>e.values[t]??null),r=n.filter(e=>[void 0,null].includes(e)).length===n.length,i=n.reduce((e,t)=>e+t,0),a=n.map(e=>e/i),o=q.value.left+Z.value*t+Z.value/2;e.push({index:t,percentages:a,subtotal:r||i<0?null:i,values:n,x:o})}return e}),qr=u(()=>{let e=Math.max(...Kr.value.map(e=>e.subtotal).filter(e=>i(e)))??1,t=Math.min(...Kr.value.map(e=>e.subtotal).filter(e=>i(e)))??0,n=Math.max(N.value.yAxis.scaleMax??0,e),r;return r=N.value.yAxis.scaleMin==null?0:Math.min(t,N.value.yAxis.scaleMin),N.value.yAxis.autoScale&&(r=t,n=e),r===n&&(r=n/2,n*=1.5),{max:n,min:r}}),Q=u(()=>{let e=Kr.value.length===1?qr.value.max*2:qr.value.max;return ie(qr.value.min,e,N.value.yAxis.dataLabels.steps)});dt(()=>Q.value.ticks.join(`|`),()=>{In()},{flush:`post`});function Jr(e){return(e-Q.value.min)/(Q.value.max-Q.value.min)}let Yr=u(()=>Q.value.ticks.map(e=>({y:q.value.bottom-q.value.height*Jr(e),value:e}))),$=u(()=>{let e=Kr.value,t=Math.max(...e.map(e=>e.subtotal));return e.length===1&&t*2,e.map((t,n)=>{let r=Math.min(q.value.width/24,Z.value/2*.7),i=r>q.value.width/16?q.value.width/16:r,a=E.value===t.index?q.value.width/16:i,o=e.length>4?r*2:r*2>Z.value/2*.7?Z.value/2*.7:r*2,s=q.value.bottom-q.value.height*Jr(t.subtotal),c=Ur.value.map(e=>({color:e.color,name:e.name,value:e.values[n]??0})).toSorted((e,t)=>t.value-e.value);return{...t,y:s,radius:i,activeRadius:a,hoverRadius:o,donut:ee({series:c},t.x,s,i,i,1.99999,2,1,360,105.25,i/2),donutHover:ee({series:c},t.x,s,o,o,1.99999,2,1,360,105.25,o/2),donutFocus:ee({series:c},q.value.centerX,q.value.centerY,q.value.height/3.6,q.value.height/3.6,1.99999,2,1,360,105.25,q.value.height/6)}})});function Xr(e,t,r){return ce(P.value.dataLabels.formatter,e,n({p:P.value.dataLabels.prefix,v:e,s:P.value.dataLabels.suffix,r:P.value.dataLabels.rounding}),{datapoint:t,index:r})}function Zr(e,t){return isNaN(e.value/r(t,`value`))?0:(e.value/r(t,`value`)*100).toFixed(0)+`%`}function Qr(e){let t=G.value;if(!t)return null;if(t.createSVGPoint&&t.getScreenCTM){let n=t.createSVGPoint();n.x=e.clientX,n.y=e.clientY;let r=t.getScreenCTM();if(r){let e=n.matrixTransform(r.inverse());return{x:e.x,y:e.y}}}let n=t.getBoundingClientRect(),r=t.viewBox?.baseVal||{x:0,y:0,width:n.width,height:n.height},i=Math.min(n.width/r.width,n.height/r.height);if(!Number.isFinite(i)||i<=0)return null;let a=r.width*i,o=r.height*i,ee=(n.width-a)/2,s=(n.height-o)/2;return{x:(e.clientX-n.left-ee)/i+r.x,y:(e.clientY-n.top-s)/i+r.y}}let $r=u(()=>!z.value||B.value==null||V.value==null?null:{x:Math.min(B.value,V.value),y:q.value.top,width:Math.abs(V.value-B.value),height:q.value.height}),ei=u(()=>ur.value?Number(R.value.start)!==0||Number(R.value.end)!==Number(Y.value):!1);function ti(e){return Math.min(Math.max(e,q.value.left),q.value.right)}function ni(){E.value=null,mn.value=null,A.value=null}function ri(e){let t=e?.pointerId==null?H.value:e.pointerId;t!=null&&G.value?.hasPointerCapture?.(t)&&G.value.releasePointerCapture(t),z.value=!1,B.value=null,V.value=null,H.value=null}function ii(){or.value=!0,setTimeout(()=>{or.value=!1},0)}function ai(e){or.value&&(or.value=!1,e.preventDefault(),e.stopPropagation())}function oi(e){if(!U.value||!ei.value||!e)return!1;let t=Date.now(),n=e.pointerType||`mouse`,r=sr.value,i=n===`touch`?450:350,a=n===`touch`?28:10,o=Math.hypot(e.clientX-r.x,e.clientY-r.y);return r.time>0&&r.pointerType===n&&t-r.time<=i&&o<=a?(sr.value={time:0,x:0,y:0,pointerType:null},ii(),_i(),ri(e),Bi(),xr({force:!0,publish:!0}),!0):(sr.value={time:t,x:e.clientX,y:e.clientY,pointerType:n},!1)}function si(e){let t=Number(R.value.end)-Number(R.value.start);if(t<=0||!Number.isFinite(Z.value)||Z.value<=0)return null;let n=Math.floor((ti(e)-q.value.left)/Z.value);return Math.max(0,Math.min(t-1,n))}function ci(e,t){let n=si(e),r=si(t);if(n==null||r==null)return null;let i=Math.min(n,r),a=Math.max(n,r);return a<=i?null:{start:Number(R.value.start)+i,end:Number(R.value.start)+a+1}}function li(e){let t=yr(e);return t?(j(`zoomStart`,{index:t.start,isZoom:t.start!==0}),j(`zoomEnd`,{index:t.end,isZoom:t.end!==Y.value}),t):null}function ui(e){if(!U.value||Pi.value||e.button!==void 0&&e.button!==0||H.value!=null&&e.pointerId!==H.value)return;let t=Qr(e);if(!t||t.x<q.value.left||t.x>q.value.right||t.y<q.value.top||t.y>q.value.bottom||Number(R.value.end)-Number(R.value.start)<=1)return;ar.value=!0,G.value?.focus?.({preventScroll:!0}),_i(),ni();let n=ti(t.x);H.value=e.pointerId,z.value=!0,B.value=n,V.value=n}function di(e){if(!U.value||!z.value||H.value!=null&&e.pointerId!==H.value)return;let t=Qr(e);t&&(V.value=ti(t.x),ni(),B.value!=null&&Math.abs(V.value-B.value)>=2&&!G.value?.hasPointerCapture?.(e.pointerId)&&G.value?.setPointerCapture?.(e.pointerId))}function fi(e){if(!U.value||!z.value||H.value!=null&&e.pointerId!==H.value)return;let t=Qr(e);t&&(V.value=ti(t.x));let n=B.value,r=V.value;if((n==null||r==null?0:Math.abs(r-n))<Math.max(4,q.value.width*.01)){if(oi(e))return;ri(e);return}let i=ci(Math.min(n,r),Math.max(n,r));i?(ri(e),li(i)&&(sr.value={time:0,x:0,y:0,pointerType:null},ni(),ii())):ri(e)}function pi(e){z.value||(E.value=null,mn.value=null,A.value=null,M.value.events.datapointLeave&&M.value.events.datapointLeave({datapoint:e,seriesIndex:e.seriesIndex+R.value.start}))}function mi(e){z.value||(M.value.events.datapointEnter&&M.value.events.datapointEnter({datapoint:e,seriesIndex:e.index+R.value.start}),E.value=e.index,mn.value=e,A.value=e.index)}let hi=_(null),gi=null;function _i(){gi&&=(clearTimeout(gi),null)}function vi(e,t){M.value.events.datapointClick&&M.value.events.datapointClick({datapoint:e,seriesIndex:e.index+R.value.start}),e.subtotal&&Qn.value.show&&(mn.value=null,E.value=null,hn.value=!0,D.value=e,Vi(e),[null,void 0].includes(t)||(hi.value=t))}function yi(e,t){if(_i(),!U.value||!ei.value){vi(e,t);return}let n=sr.value.pointerType===`touch`?480:380;gi=setTimeout(()=>{gi=null,vi(e,t)},n)}let bi=u(()=>J.value.map((e,t)=>({name:e.name,value:e.values.slice(R.value.start,R.value.end).reduce((e,t)=>e+t,0),shape:`circle`,uid:e.uid,color:e.color})).sort((e,t)=>t.value-e.value).map((e,t)=>({...e,opacity:T.value.includes(e.uid)?.5:1,segregate:()=>wi(e.uid),isSegregated:T.value.includes(e.uid),display:`${e.name}${F.value.legend.showPercentage||F.value.legend.showValue?`: `:``}${F.value.legend.showValue?ce(P.value.dataLabels.formatter,e.value,n({p:P.value.dataLabels.prefix,v:e.value,s:P.value.dataLabels.suffix,r:F.value.legend.roundingValue}),{datapoint:e,seriesIndex:t}):``}${F.value.legend.showPercentage?T.value.includes(e.uid)?`${F.value.legend.showValue?` (`:``}- %${F.value.legend.showValue?`)`:``}`:`${F.value.legend.showValue?` (`:``}${isNaN(e.value/xi.value)?`-`:n({v:e.value/xi.value*100,s:`%`,r:F.value.legend.roundingPercentage})}${F.value.legend.showValue?`)`:``}`:``}`}))),xi=u(()=>$.value.map(e=>e.subtotal).reduce((e,t)=>e+t,0)),Si=u(()=>({cy:`donut-div-legend`,backgroundColor:F.value.legend.backgroundColor,color:F.value.legend.color,fontSize:F.value.legend.fontSize,paddingBottom:12,fontWeight:F.value.legend.bold?`bold`:``}));function Ci(){T.value.length?T.value=[]:bi.value.forEach(e=>{T.value.push(e.uid)}),j(`selectLegend`,Ur.value)}function wi(e){if(T.value.includes(e))T.value=T.value.filter(t=>t!==e),j(`selectLegend`,Ur.value);else{if(T.value.length===J.value.length-1)return;T.value.push(e),j(`selectLegend`,Ur.value)}D.value&&vi($.value.find((e,t)=>t===hi.value))}function Ti(e){return J.value.length?J.value.find(t=>t.name===e)||(Xn.value&&console.warn(`VueUiDonutEvolution - Series name not found "${e}"`),null):(Xn.value&&console.warn(`VueUiDonutEvolution - There are no series to show.`),null)}function Ei(e){let t=Ti(e);t!==null&&T.value.includes(t.uid)&&wi(t.uid)}function Di(e){let t=Ti(e);t!==null&&(T.value.includes(t.uid)||wi(t.uid))}let Oi=u(()=>{let e=[``].concat(J.value.filter(e=>!T.value.includes(e.uid)).map(e=>({name:e.name,color:e.color})),[`Σ`]),t=[];for(let e=0;e<Y.value;e+=1){let n=J.value.filter(e=>!T.value.includes(e.uid)).map(t=>t.values[e]??0).reduce((e,t)=>e+t,0);t.push([X.value[e]?X.value[e].text:`-`].concat(J.value.filter(e=>!T.value.includes(e.uid)).map(t=>({value:t.values[e]??0,percentage:t.values[e]?t.values[e]/n*100:0})),[`${P.value.dataLabels.prefix}${Number(n.toFixed(M.value.table.td.roundingValue))}${P.value.dataLabels.suffix}`]))}return{head:e,body:t,bodyA11y:t.map(e=>e.map((t,n)=>n===0||n===e.length-1?t:`${Xr(t.value??0,null,n)} (${t.percentage.toFixed(1)}%)`)),config:{th:{backgroundColor:M.value.table.th.backgroundColor,color:M.value.table.th.color,outline:M.value.table.th.outline},td:{backgroundColor:M.value.table.td.backgroundColor,color:M.value.table.td.color,outline:M.value.table.td.outline},breakpoint:M.value.table.responsiveBreakpoint},colNames:[M.value.table.columnNames.period].concat(J.value.filter(e=>!T.value.includes(e.uid)).map(e=>e.name),M.value.table.columnNames.total)}});function ki(){return J.value}function Ai(e=null){rt(()=>{let t=[[F.value.title.text],[F.value.title.subtitle.text],[``]],n=[...Oi.value.head.map(e=>e.name??e)],r=[...Oi.value.body.map(e=>e.map(e=>e.value??e))],i=t.concat([n]).concat(r),o=a(i);e?e(o):de({csvContent:o,title:F.value.title.text||`vue-ui-donut-evolution`})})}let ji=_(!1);function Mi(e){ji.value=e,_n.value+=1}function Ni(){Fr.value.showTable=!Fr.value.showTable}let Pi=_(!1);function Fi(){Pi.value=!Pi.value}function Ii(e){return e.proportion*100>F.value.donuts.hover.hideLabelsUnderValue}let Li=_([]),Ri=_({}),zi=_(null);function Bi(){zi.value?.close?.(),D.value=null,hi.value=null,hn.value=!1,mn.value=null,E.value=null,A.value=null}function Vi(e){Li.value=e.donut.map(e=>({name:e.name,values:[e.value],color:e.color})),Ri.value=me({...Qn.value.donutChart,responsive:!0,theme:M.value.theme}),zi.value&&zi.value.open()}let Hi=Ee(O,()=>F.value.title.text),Ui=u(()=>L.value.width),Wi=u(()=>L.value.height);Be({timeLabelsEls:Cn,timeLabels:X,slicer:R,configRef:M,rotationPath:[`style`,`chart`,`layout`,`grid`,`xAxis`,`dataLabels`,`rotation`],autoRotatePath:[`style`,`chart`,`layout`,`grid`,`xAxis`,`dataLabels`,`autoRotate`,`enable`],isAutoSize:!1,width:Ui,height:Wi,rotation:N.value.xAxis.dataLabels.autoRotate.angle});let Gi=u(()=>Ae({config:M,style:F,mutableConfig:Fr,dialog:un,accordion:nn,isFullscreen:ji,parent:O,maxWidth:800,isCursorPointer:I}));dt(()=>Fr.value.showTable,e=>ke(e,M,Dn));function Ki(){Fr.value.showTable=!1,On.value&&On.value.setTableIconState(!1)}let qi=u(()=>bi.value.map(e=>({...e,name:e.display}))),Ji=u(()=>F.value.backgroundColor),Yi=u(()=>F.value.legend),Xi=u(()=>F.value.title),{isCallbackImaging:Zi,isCallbackSvg:Qi,generateSvg:$i,onGenerateImage:ea}=Oe({svg:G,title:Xi,legend:Yi,legendItems:qi,backgroundColor:Ji,getSvgCallback:()=>M.value.userOptions.callbacks.svg,generateImage:Mr});async function ta(){j(`copyAlt`,{config:M.value,dataset:$.value}),M.value.userOptions.callbacks.altCopy?await Promise.resolve(M.value.userOptions.callbacks.altCopy({config:M.value,dataset:$.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function na(){A.value=null,Kn.value=!0}function ra(){ar.value=!1,A.value=null,E.value=null,mn.value=null,Kn.value=!1}function ia(e){if(!G.value||Pi.value||document.activeElement!==G.value||(ar.value=!1,!$.value.length))return;let t=e.key===`ArrowLeft`,n=e.key===`ArrowRight`,r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){if(U.value&&(ei.value||z.value)){_i(),ri(),Bi(),xr({force:!0,publish:!0});return}A.value=null,E.value=null,mn.value=null;return}if(r){if(A.value===null)return;let e=$.value[A.value];if(!e)return;vi(e,A.value);return}let a=A.value,o=E.value,ee=a!==null&&a>=0&&a<$.value.length,s=o!==null&&o>=0&&o<$.value.length;ee?n?(a+=1,a>=$.value.length&&(a=0)):t&&(--a,a<0&&(a=$.value.length-1)):s?(a=n?o+1:o-1,a>=$.value.length&&(a=0),a<0&&(a=$.value.length-1)):a=n?0:$.value.length-1;let c=$.value[a];c&&mi(c)}let aa=u(()=>({headers:Oi.value?.colNames??[],rows:Oi.value?.bodyA11y??[]}));return Ce({getData:ki,getImage:Hi,generatePdf:jr,generateCsv:Ai,generateImage:Mr,generateSvg:$i,hideSeries:Di,showSeries:Ei,toggleTable:Ni,toggleAnnotator:Fi,toggleFullscreen:Mi,copyAlt:ta,resetZoom:()=>xr({force:!0,publish:!0}),setZoomState:yr}),dt(()=>[L.value.width,L.value.height,An.value,X.value,Wr.value,R.value.start,R.value.end,N.value,P.value,M.value.style.fontFamily,C.dataset,Jn.value,Sn.value,Cn.value,wn.value,Tn.value],Br,{flush:`post`,deep:!0}),(e,t)=>(g(),p(`div`,{ref_key:`donutEvolutionChart`,ref:O,class:h(`vue-data-ui-component vue-ui-donut-evolution ${ji.value?`vue-data-ui-wrapper-fullscreen`:``} ${M.value.useCssAnimation?``:`vue-ui-dna`}`),style:at(`font-family:${M.value.style.fontFamily};width:100%; text-align:center;background:${F.value.backgroundColor}`),id:w.value,onMouseenter:t[4]||=()=>x(Er)(!0),onMouseleave:t[5]||=()=>x(Er)(!1)},[m(`div`,{id:`chart-instructions-${w.value}`,class:`sr-only`},[m(`p`,null,b(M.value.a11y.translations.keyboardNavigation),1)],8,ht),aa.value?.rows?.length?(g(),d(Ge,{key:0,uid:w.value,head:aa.value.headers,body:aa.value.rows,notice:M.value.a11y.translations.tableAvailable,caption:M.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):f(``,!0),M.value.userOptions.buttons.annotator?(g(),d(x(sn),{key:1,svgRef:x(G),backgroundColor:F.value.backgroundColor,color:F.value.color,active:Pi.value,isCursorPointer:I.value,palette:M.value.userOptions.annotatorPalette,onClose:Fi},Ze({_:2},[v(x(Me),t=>({name:t,fn:S(n=>[y(e.$slots,t,it(tt(x(je)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):f(``,!0),Nr.value?(g(),p(`div`,{key:2,ref_key:`noTitle`,ref:gn,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):f(``,!0),F.value.title.text?(g(),p(`div`,{key:3,ref_key:`chartTitle`,ref:Rn,style:`width:100%;background:transparent;padding-bottom:24px`,onMouseleave:pi},[(g(),d(De,{key:`title_${yn.value}`,config:{title:{cy:`donut-evolution-div-title`,...F.value.title},subtitle:{cy:`donut-evolution-div-subtitle`,...F.value.title.subtitle}}},null,8,[`config`]))],544)):f(``,!0),m(`div`,{id:`legend-top-${w.value}`},null,8,gt),M.value.userOptions.show&&qn.value&&(x(Dr)||x(Tr))?(g(),d(x(cn),{ref_key:`userOptionsRef`,ref:On,key:`user_options_${_n.value}`,backgroundColor:F.value.backgroundColor,color:F.value.color,isPrinting:x(kr),isImaging:x(Ar),uid:w.value,hasPdf:M.value.userOptions.buttons.pdf,hasImg:M.value.userOptions.buttons.img,hasSvg:M.value.userOptions.buttons.svg,hasXls:M.value.userOptions.buttons.csv,hasTable:M.value.userOptions.buttons.table,hasFullscreen:M.value.userOptions.buttons.fullscreen,hasAltCopy:M.value.userOptions.buttons.altCopy,isFullscreen:ji.value,titles:{...M.value.userOptions.buttonTitles},chartElement:O.value,position:M.value.userOptions.position,hasAnnotator:M.value.userOptions.buttons.annotator,isAnnotation:Pi.value,callbacks:M.value.userOptions.callbacks,printScale:M.value.userOptions.print.scale,tableDialog:M.value.table.useDialog,isCursorPointer:I.value,onToggleFullscreen:Mi,onGeneratePdf:x(jr),onGenerateCsv:Ai,onGenerateImage:x(ea),onGenerateSvg:x($i),onToggleTable:Ni,onToggleAnnotator:Fi,onCopyAlt:ta,style:at({visibility:x(Dr)?x(Tr)?`visible`:`hidden`:`visible`})},Ze({_:2},[v(x(Ne)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:S(n=>[y(e.$slots,t,it(tt(x(Pe)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasFullscreen.hasAltCopy.isFullscreen.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):f(``,!0),m(`div`,_t,[(g(),p(`svg`,{ref_key:`svgRef`,ref:G,xmlns:x(pe),"aria-describedby":`chart-instructions-${w.value}`,class:h({"vue-data-ui-fullscreen--on":ji.value,"vue-data-ui-fulscreen--off":!ji.value,"vue-data-ui-no-transition":!x($n)||x(zr),"vue-ui-donut-evolution-chart-zoom-pointer-focus":U.value&&ar.value}),viewBox:`0 0 ${q.value.absoluteWidth} ${q.value.absoluteHeight}`,style:at({maxWidth:`100%`,visibility:x(Rr)?`visible`:`hidden`,overflow:`visible`,background:`transparent`,color:F.value.color,cursor:U.value?z.value?`col-resize`:`crosshair`:void 0,touchAction:U.value?`pan-y`:void 0,userSelect:U.value?`none`:void 0}),tabindex:`0`,onFocus:na,onBlur:ra,onKeydown:ia,onPointerdown:ui,onPointermove:di,onPointerup:fi,onPointercancel:ri,onClickCapture:ai},[$e(x(on)),y(e.$slots,`svg-underlayer`,{svg:{...q.value,isPrintingImg:x(kr)||x(Ar)||x(Zi),isPrintingSvg:x(Qi)}},void 0,!0),e.$slots[`chart-background`]?(g(),p(`foreignObject`,{key:0,x:q.value.left,y:q.value.top,width:q.value.width,height:q.value.height,style:{pointerEvents:`none`}},[y(e.$slots,`chart-background`,{},void 0,!0)],8,yt)):f(``,!0),m(`defs`,null,[$e(He,{t:`linear`,id:`hover_${w.value}`,x1:`0%`,y1:`0%`,x2:`0%`,y2:`100%`,stops:[[`0%`,x(c)(F.value.backgroundColor,P.value.highlighter.opacity),1],[`100%`,x(c)(P.value.highlighter.color,P.value.highlighter.opacity),1]]},null,8,[`id`,`stops`]),$e(He,{t:`radial`,id:`focus_${w.value}`,stops:[[`0%`,x(c)(x(ne)(F.value.backgroundColor),0),1],[`77%`,x(c)(`#FFFFFF`,30),1],[`100%`,x(c)(x(ne)(F.value.backgroundColor),0),1]]},null,8,[`id`,`stops`])]),N.value.show?(g(),p(`g`,bt,[m(`line`,{x1:K.value?q.value.right:q.value.left,x2:K.value?q.value.right:q.value.left,y1:q.value.top,y2:q.value.top+q.value.height,stroke:N.value.stroke,"stroke-width":N.value.strokeWidth,"stroke-linecap":`round`},null,8,xt),m(`line`,{x1:q.value.left,x2:q.value.right,y1:q.value.bottom,y2:q.value.bottom,stroke:N.value.stroke,"stroke-width":N.value.strokeWidth,"stroke-linecap":`round`},null,8,St),N.value.showVerticalLines?(g(),p(`g`,Ct,[(g(!0),p(l,null,v(R.value.end-R.value.start,(e,t)=>(g(),p(`line`,{x1:q.value.left+(t+1)*Z.value,x2:q.value.left+(t+1)*Z.value,y1:q.value.top,y2:q.value.bottom,stroke:N.value.stroke,"stroke-width":N.value.strokeWidth,"stroke-linecap":`round`},null,8,wt))),256))])):f(``,!0)])):f(``,!0),m(`g`,null,[N.value.axis.yLabel?(g(),p(`text`,{key:0,ref_key:`yAxisLabel`,ref:Tn,"font-size":N.value.axis.fontSize,fill:N.value.axis.color,transform:`translate(${K.value?q.value.absoluteWidth-N.value.axis.fontSize/2-N.value.axis.yLabelOffsetX:N.value.axis.fontSize}, ${q.value.top+q.value.height/2}) rotate(-90)`,"text-anchor":`middle`,style:{transition:`none`}},b(N.value.axis.yLabel),9,Tt)):f(``,!0),N.value.axis.xLabel?(g(),p(`text`,{key:1,ref_key:`xAxisLabel`,ref:wn,"text-anchor":`middle`,x:q.value.absoluteWidth/2,y:q.value.absoluteHeight-3,"font-size":N.value.axis.fontSize,fill:N.value.axis.color},b(N.value.axis.xLabel),9,Et)):f(``,!0)]),N.value.yAxis.dataLabels.show?(g(),p(`g`,{key:2,ref_key:`scaleLabels`,ref:Sn,class:h({"donut-opacity":!0,"donut-behind":E.value!==null})},[(g(!0),p(l,null,v(Yr.value,(e,t)=>(g(),p(`g`,{key:`sl_${t}`},[e.value>=Q.value.min&&e.value<=Q.value.max?(g(),p(`path`,{key:0,class:h({"vue-data-ui-transition":x($n)&&!x(zr)}),d:`M${K.value?q.value.right:q.value.left},${e.y} ${K.value?q.value.right+5:q.value.left-5},${e.y}`,stroke:N.value.stroke,"stroke-width":N.value.strokeWidth,"stroke-linecap":`round`},null,10,Dt)):f(``,!0),e.value>=Q.value.min&&e.value<=Q.value.max?(g(),p(`text`,{key:1,class:h({"vue-data-ui-transition":x($n)&&!x(zr)}),transform:`translate(${K.value?q.value.right-N.value.yAxis.dataLabels.offsetX+7:q.value.left+N.value.yAxis.dataLabels.offsetX-7}, ${e.y+N.value.yAxis.dataLabels.fontSize/3})`,"font-size":N.value.yAxis.dataLabels.fontSize,"text-anchor":K.value?`start`:`end`,fill:N.value.yAxis.dataLabels.color,"font-weight":N.value.yAxis.dataLabels.bold?`bold`:`normal`},b(x(ge)(e.value)?x(ce)(P.value.dataLabels.formatter,e.value,x(n)({p:P.value.dataLabels.prefix,v:e.value,s:P.value.dataLabels.suffix,r:P.value.grid.yAxis.dataLabels.roundingValue}),{datapoint:e,seriesIndex:t}):``),11,Ot)):f(``,!0)]))),128))],2)):f(``,!0),N.value.xAxis.dataLabels.show?(g(),p(`g`,{key:3,ref_key:`timeLabelsEls`,ref:Cn,class:h({"donut-opacity":!0})},[(g(!0),p(l,null,v(R.value.end-R.value.start,(e,t)=>(g(),p(`g`,null,[(N.value.xAxis.dataLabels.showOnlyFirstAndLast&&(t===0||t===Y.value-1)||!N.value.xAxis.dataLabels.showOnlyFirstAndLast)&&X.value[t]&&X.value[t].text?(g(),p(`g`,kt,[String(X.value[t].text).includes(`
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,$t as r,At as i,D as a,Ht as o,It as ee,J as s,Jt as c,Kt as te,S as ne,X as re,_ as ie,at as ae,f as oe,h as se,i as ce,in as le,nn as ue,nt as de,p as fe,t as pe,tt as me,w as he,y as ge,yt as _e,zt as ve}from"./lib-rPeBMZrn.js";import{n as ye,t as be}from"./BaseScanner-8NdoBs7B.js";import{n as xe,t as Se}from"./useHints-BH9r_0Vd.js";import{t as Ce}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as we}from"./useNestedProp-DnGoh-XS.js";import{t as Te}from"./useThemeCheck-BKNRbGeC.js";import{t as Ee}from"./chartImage-DPGnEuYM.js";import{n as De}from"./Title-BliHuXfT.js";import{t as Oe}from"./useChartExport-BZts4KFb.js";import{n as ke,t as Ae}from"./tableIntegration-CNoJ1CIY.js";import{n as je,t as Me}from"./annotationSlots-BRR85CqJ.js";import{n as Ne,t as Pe}from"./userOptionsSlots-DYuo-E5m.js";import{t as Fe}from"./useTimeLabels-Das5O74F.js";import{t as Ie}from"./usePrinter-sVoTzet1.js";import{t as Le}from"./useTransitions-ChGGrtrv.js";import{t as Re}from"./useStableElementSize-CegFbRlF.js";import{t as ze}from"./useSvgLabelLayout-D1I8sQUi.js";import{t as Be}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Ve}from"./useResponsive-CENUxfEL.js";import{t as He}from"./DefGrad-DKMq1REY.js";import{t as Ue}from"./SlicerPreview-CFFUOlQr.js";import{t as We}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Ge}from"./A11yDataTable-DWNlWXzs.js";import{t as Ke}from"./useUserOptionState-CXlFnwPv.js";import{t as qe}from"./useChartAccessibility-DOMuYJfm.js";import{t as Je}from"./Legend-DM0ClX3D.js";import{t as Ye}from"./vue_ui_donut_evolution-CVoh3twl.js";import{Fragment as l,Teleport as Xe,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as Ze,createTextVNode as Qe,createVNode as $e,defineAsyncComponent as et,guardReactiveProps as tt,mergeProps as nt,nextTick as rt,normalizeClass as h,normalizeProps as it,normalizeStyle as at,onBeforeUnmount as ot,onMounted as st,openBlock as g,ref as _,renderList as v,renderSlot as y,resolveDynamicComponent as ct,shallowRef as lt,toDisplayString as b,toRefs as ut,unref as x,watch as dt,watchEffect as ft,withCtx as S}from"vue";var pt=/* @__PURE__ */ e({default:()=>nn}),mt=[`id`],ht=[`id`],gt=[`id`],_t={style:{position:`relative`}},vt=[`xmlns`,`aria-describedby`,`viewBox`],yt=[`x`,`y`,`width`,`height`],bt={key:1},xt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],St=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Ct={key:0},wt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Tt=[`font-size`,`fill`,`transform`],Et=[`x`,`y`,`font-size`,`fill`],Dt=[`d`,`stroke`,`stroke-width`],Ot=[`transform`,`font-size`,`text-anchor`,`fill`,`font-weight`],kt={key:0},At=[`text-anchor`,`font-size`,`fill`,`transform`],jt=[`text-anchor`,`font-size`,`fill`,`transform`,`innerHTML`],Mt=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],Nt={key:1},Pt=[`cx`,`cy`,`r`,`fill`],Ft={key:0},It={key:0},Lt=[`d`,`stroke`],Rt=[`text-anchor`,`x`,`y`,`fill`],zt=[`cx`,`cy`,`r`,`fill`],Bt={key:0},Vt=[`cx`,`cy`,`fill`],Ht={key:1},Ut=[`d`,`fill`,`stroke`],Wt={key:2},Gt=[`d`,`fill`,`stroke`],Kt=[`x`,`y`,`font-size`,`fill`],qt=[`x`,`y`,`width`,`height`,`fill`],Jt=[`x`,`y`,`width`,`height`,`onMouseenter`,`onMouseleave`,`onClick`],Yt=[`x`,`y`,`width`,`height`,`fill`,`fill-opacity`,`stroke`,`stroke-opacity`,`stroke-width`,`stroke-dasharray`],Xt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},Zt={key:5,class:`vue-data-ui-watermark`},Qt=[`id`],$t=[`onClick`],en={key:0},tn={key:1},nn=/*#__PURE__*/ Ce({__name:`vue-ui-donut-evolution`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}},zoomState:{type:Object,default:null}},emits:[`selectLegend`,`zoomStart`,`zoomEnd`,`zoomReset`,`update:zoomState`,`copyAlt`],setup(e,{expose:Ce,emit:pt}){let nn=et(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),rn=et(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),an=et(()=>import(`./DataTable-0Vv-aGHD.js`)),on=et(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),sn=et(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),cn=et(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),ln=et(()=>import(`./vue-ui-donut-Vbp5Xs2-.js`).then(e=>e.n)),un=et(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_donut_evolution:dn}=t(),{isThemeValid:fn,warnInvalidTheme:pn}=Te(),C=e,w=_(re()),T=_([]),E=_(null),mn=_(null),hn=_(!1),D=_(null),O=_(null),gn=_(null),_n=_(0),vn=_(0),yn=_(0),bn=_(0),xn=_(0),Sn=_(null),Cn=_(null),wn=_(null),Tn=_(null),En=_(!1),Dn=_(null),On=_(null),kn=lt(null),An=_(0),jn=_(0),Mn=_(!1);function Nn(){kn.value=O.value?.parentNode??null}function Pn(){return new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(e)})})}async function Fn(){let e=++jn.value;await rt(),await Pn(),await Pn(),e===jn.value&&(An.value+=1)}function In(){Mn.value||(Mn.value=!0,rt(()=>{Mn.value=!1,Nn(),Fn()}))}let Ln=Re({elementRef:kn,minimumWidth:2,minimumHeight:2,stableFramesRequired:2,once:!1,onSizeAccepted:()=>{Fn()}}),Rn=_(null),zn=_(null),Bn=_(null),Vn=_(null),Hn=_(null),Un=_(!1),k=lt(null),Wn=lt(null),Gn=_(null),A=_(null),Kn=_(!1),j=pt,qn=u(()=>!!C.dataset&&C.dataset.length),Jn=_(!1),Yn=0;st(()=>{En.value=!0,Nn(),Ln.start(),Zn(),Fn()});let Xn=u(()=>M.value.debug);function Zn(){ve(C.dataset)?(ae({componentName:`VueUiDonutEvolution`,type:`dataset`,debug:Xn.value}),rr.value=!0):C.dataset.length&&C.dataset.forEach((e,t)=>{_e({datasetObject:e,requiredAttributes:[`name`,`values`]}).forEach(e=>{ae({componentName:`VueUiDonutEvolution`,type:`datasetSerieAttribute`,property:e,index:t,debug:Xn.value}),rr.value=!0})}),ve(C.dataset)||(rr.value=M.value.loading),setTimeout(()=>{Un.value=!0},10),br(),M.value.responsive&&(k.value&&(Wn.value&&k.value.unobserve(Wn.value),k.value.disconnect()),k.value=new ResizeObserver(()=>{Un.value=!1;let{width:e,height:t}=Ve({chart:O.value,title:M.value.style.chart.title.text?Rn.value:null,legend:M.value.style.chart.legend.show?zn.value:null,slicer:M.value.style.chart.zoom.show&&ir.value>1?Hn.value:null,source:Bn.value});cancelAnimationFrame(Yn),Yn=requestAnimationFrame(()=>{L.value.width=e,L.value.height=t-12,Jn.value=!0,In(),clearTimeout(Gn.value),Gn.value=setTimeout(()=>{Un.value=!0},10)})}),Wn.value=O.value.parentNode,k.value.observe(Wn.value)),In()}let M=_(Or()),N=u(()=>P.value.grid),P=u(()=>M.value.style.chart.layout),Qn=u(()=>M.value.style.chart.dialog),F=u(()=>M.value.style.chart);xe({config:()=>M.value,dataset:()=>C.dataset,component:`VueUiDonutEvolution`,rules:[Se.emptyArray,{test:e=>e.length===1,message:[`👀 There is only a single series in your dataset. Consider:`,``,`▶️ Using VueUiXy instead, for a regular line chart.`]},{test:e=>e.length>6,message:[`👀 The number of series is > 6, which makes donuts hard to read. Consider:`,``,`▶️ Grouping small values dynamically into a single "Other" series.`,``,`▶️ Using filters to let users choose a maximum number of series to display.`,``,`▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read.`]},{test:e=>e.some(e=>e.values.length>24),message:[`👀 Some series have a number of data points > 24, which can make the chart and donuts hard to read. Consider:`,``,`▶️ Using larger time scales, or aggregated values.`,``,`▶️ Filtering the time range by adding date intputs in your UI.`,``,`▶️ Using VueUiXy to show longer series in a more comfortable display.`]}]});let{transitionEnabled:$n}=Le({config:()=>M.value.transitions,dataset:()=>C.dataset}),I=u(()=>M.value.userOptions.useCursorPointer),er=u(()=>le({defaultConfig:{useCssAnimation:!1,table:{show:!1},userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{dataLabels:{show:!1},grid:{stroke:`#6A6A6A`,axis:{yLabel:``,xLabel:``},yAxis:{scaleMin:null,scaleMax:null,autoScale:!1,dataLabels:{show:!1}},xAxis:{dataLabels:{show:!1}}},line:{stroke:`#CACACA60`}},legend:{backgroundColor:`transparent`,showValue:!1,showPercentage:!1},zoom:{show:!1,startIndex:null,endIndex:null}}}},userConfig:M.value.skeletonConfig??{}})),{loading:tr,FINAL_DATASET:nr,manualLoading:rr}=ye({...ut(C),FINAL_CONFIG:M,prepareConfig:Or,callback:()=>{Promise.resolve().then(async()=>{await br()})},skeletonDataset:C.config?.skeletonDataset??[{name:``,values:[1,2,3,5,8,13],color:`#AAAAAA`},{name:``,values:[1,2,3,5,8,13],color:`#BABABA`},{name:``,values:[1,2,3,5,8,13],color:`#CACACA`}],skeletonConfig:le({defaultConfig:M.value,userConfig:er.value})}),L=_({width:P.value.width,height:P.value.height}),ir=u(()=>Math.max(...nr.value.map(e=>e.values.length))),R=_({start:0,end:ir.value}),z=_(!1),ar=_(!1),B=_(null),V=_(null),H=_(null),or=_(!1),sr=_({time:0,x:0,y:0,pointerType:null}),cr=u(()=>M.value.style.chart.zoom?.dragToZoom),U=u(()=>cr.value.show&&qn.value&&ur.value&&Y.value>1&&!tr.value),lr=_(!1),ur=_(!1),dr=_(!1),fr=null,W={};function pr(e,t=R.value){if(!e||typeof e!=`object`)return null;let n=e.start!==void 0&&e.start!==null,r=e.end!==void 0&&e.end!==null;if(!n&&!r)return null;let i=Number(n?e.start:t.start),a=Number(r?e.end:t.end);return!Number.isFinite(i)||!Number.isFinite(a)?null:{start:i,end:a}}function mr(e){let t=pr(e);t&&j(`update:zoomState`,t)}function hr(){fr&&=(cancelAnimationFrame(fr),null),W={}}function gr(e,t=R.value.start){let n=Y.value,r=Number(t);return e>n?n:e<0||e<=r?Math.min(r+1,n):e}function _r(){let e=Y.value;if(!Number.isFinite(e)||e<=0){R.value={start:0,end:0};return}let t=Math.max(0,Math.min(Number(R.value.start)||0,e-1)),n=Math.max(t+1,Math.min(Number(R.value.end)||e,e));(!Number.isFinite(t)||!Number.isFinite(n)||n<=t)&&(t=0,n=e),R.value={start:t,end:n},Vn.value&&Vn.value.setRangeValues(t,n)}function vr(e){let t=pr(e);if(!t)return null;let{start:n,end:r}=t;return(n!==Number(R.value.start)||r!==Number(R.value.end))&&(hr(),R.value={start:n,end:r},_r(),In()),{start:Number(R.value.start),end:Number(R.value.end)}}function yr(e){let t=vr(e);return t?(mr(t),t):null}async function br(e=!0){if(!lr.value){lr.value=!0;try{await rt(),await rt();let{startIndex:t,endIndex:n}=F.value.zoom,r=Y.value;if(!Number.isFinite(r)||r<=0){R.value={start:0,end:0},ur.value=!0;return}let i=t==null?0:Number(t),a=n==null?r:gr(Number(n)+1,i);dr.value=!0,R.value={start:i,end:a},_r(),ur.value=!0,e&&C.zoomState&&vr(C.zoomState)}finally{queueMicrotask(()=>{dr.value=!1}),lr.value=!1,In()}}}async function xr({force:e=!1,publish:t=!1}={}){await br(!e),t&&(mr({start:Number(R.value.start),end:Number(R.value.end)}),j(`zoomReset`))}dt([()=>C.zoomState,ur],([e,t])=>{t&&e&&vr(e)},{deep:!0,immediate:!0});function Sr(e){W={...W,...e},fr&&cancelAnimationFrame(fr),fr=requestAnimationFrame(()=>{let e={...R.value,...W};W={},fr=null,R.value=e,_r(),In(),mr({start:Number(R.value.start),end:Number(R.value.end)})})}function Cr(e){if(lr.value||dr.value)return;let t=Number(e);Number.isFinite(t)&&(j(`zoomStart`,{index:t,isZoom:t!==0}),t!==R.value.start&&Sr({start:t}))}function wr(e){if(lr.value||dr.value)return;let t=W.start===void 0?R.value.start:W.start,n=gr(Number(e),t);Number.isFinite(n)&&(j(`zoomEnd`,{index:n,isZoom:n!==Y.value}),(n!==R.value.end||W.start!==void 0)&&Sr({end:n}))}let{userOptionsVisible:Tr,setUserOptionsVisibility:Er,keepUserOptionState:Dr}=Ke({config:M.value}),{svgRef:G}=qe({config:F.value.title});function Or(){let e=we({userConfig:C.config,defaultConfig:dn}),t={},n=e.theme;if(n){if(!fn.value(e))pn(e),t=e;else{let r=we({userConfig:Ye[n]||C.config,defaultConfig:e});t={...we({userConfig:C.config,defaultConfig:r}),customPalette:e.customPalette?e.customPalette:ue[n]||o}}}else t=e;return t}dt(()=>C.config,e=>{tr.value||(M.value=Or()),Tr.value=!M.value.userOptions.showOnChartHover,Zn(),yn.value+=1,bn.value+=1,xn.value+=1,Fr.value.showTable=M.value.table.show},{deep:!0}),dt(()=>C.dataset,e=>{Array.isArray(e)&&e.length>0&&(rr.value=!1),xr()},{deep:!0});let{isPrinting:kr,isImaging:Ar,generatePdf:jr,generateImage:Mr}=Ie({elementId:w.value,fileName:F.value.title.text||`vue-ui-donut-evolution`,options:M.value.userOptions.print}),Nr=u(()=>M.value.userOptions.show&&!F.value.title.text),Pr=u(()=>he(M.value.customPalette)),Fr=_({showTable:M.value.table.show});dt(M,()=>{Fr.value={showTable:M.value.table.show}},{immediate:!0});let Ir=u(()=>({top:P.value.padding.top,right:P.value.padding.right,bottom:P.value.padding.bottom,left:P.value.padding.left})),K=u(()=>N.value.yAxis.position===`right`),{metrics:Lr,ready:Rr,settling:zr,update:Br}=ze({svgRef:G,canMeasure:()=>(!M.value.responsive||Jn.value)&&(!N.value.xAxis.dataLabels.show||Wr.value),initialMetrics:{scaleLabelsWidth:0,yAxisLabelWidth:0,xAxisLabelHeight:0,timeLabelsHeight:0},measure:e=>({scaleLabelsWidth:e(Sn.value).textWidth,yAxisLabelWidth:e(Tn.value).rotatedWidth,xAxisLabelHeight:e(wn.value).height,timeLabelsHeight:e(Cn.value).height})});function Vr(){let e=Lr.value.scaleLabelsWidth,t=Tn.value?Lr.value.yAxisLabelWidth+N.value.axis.yLabelOffsetX+N.value.axis.fontSize:0,n=e+t+5;return{left:K.value?0:n,right:K.value?n:0,scaleLabelsWidth:e,yAxisLabelWidth:t,crosshair:5}}ot(()=>{cancelAnimationFrame(Yn),Ln.stop(),clearTimeout(Gn.value),hr(),_i(),ri(),k.value&&(Wn.value&&k.value.unobserve(Wn.value),k.value.disconnect(),k.value=null,Wn.value=null)});let Hr=u(()=>Lr.value.xAxisLabelHeight+Lr.value.timeLabelsHeight+N.value.axis.fontSize+N.value.xAxis.dataLabels.offsetY),q=u(()=>{let e=Vr(),t=P.value.dataLabels.fontSize*3,n=L.value.width,r=L.value.height,i=Ir.value.left+e.left,a=n-Ir.value.right-e.right,o=n-i-Ir.value.right-e.right,ee=r-Ir.value.top-Ir.value.bottom-t-Hr.value,s=Ir.value.top+t;return{top:s,left:i,right:a,bottom:r-Ir.value.bottom-Hr.value,absoluteHeight:r,absoluteWidth:n,centerX:i+Math.max(10,o)/2,centerY:s+Math.max(10,ee)/2,width:Math.max(10,o),height:Math.max(10,ee),scaleLabelsWidth:e.scaleLabelsWidth,yAxisLabelWidth:e.yAxisLabelWidth,crosshair:e.crosshair}}),J=u(()=>(Xn.value&&nr.value.forEach((e,t)=>{[null,void 0].includes(e.name)&&ae({componentName:`VueUiDonutEvolution`,type:`datasetSerieAttribute`,property:`name`,index:t}),[null,void 0].includes(e.values)&&ae({componentName:`VueUiDonutEvolution`,type:`datasetSerieAttribute`,property:`values`,index:t})}),nr.value.map((e,t)=>({...e,values:te(e.values),color:ne(e.color)||Pr.value[t]||o[t]||o[t%o.length],length:(e.values||[]).length,uid:re()})))),Ur=u(()=>J.value.filter(e=>!T.value.includes(e.uid)).map(e=>({...e,values:e.values.filter((e,t)=>t>=R.value.start&&t<=R.value.end)}))),Y=u(()=>Math.max(...J.value.map(e=>e.length))),X=_([]),Wr=_(!1),Gr=0;ft(()=>{let e=++Gr;(async()=>{let t=await Fe({values:N.value.xAxis.dataLabels.values,maxDatapoints:Y.value,formatter:N.value.xAxis.dataLabels.datetimeFormatter,start:R.value.start,end:R.value.end});e===Gr&&(X.value=t,Wr.value=!0)})()});let Z=u(()=>q.value.width/(R.value.end-R.value.start)),Kr=u(()=>{let e=[];for(let t=0;t<R.value.end-R.value.start;t+=1){let n=Ur.value.map(e=>e.values[t]??null),r=n.filter(e=>[void 0,null].includes(e)).length===n.length,i=n.reduce((e,t)=>e+t,0),a=n.map(e=>e/i),o=q.value.left+Z.value*t+Z.value/2;e.push({index:t,percentages:a,subtotal:r||i<0?null:i,values:n,x:o})}return e}),qr=u(()=>{let e=Math.max(...Kr.value.map(e=>e.subtotal).filter(e=>i(e)))??1,t=Math.min(...Kr.value.map(e=>e.subtotal).filter(e=>i(e)))??0,n=Math.max(N.value.yAxis.scaleMax??0,e),r;return r=N.value.yAxis.scaleMin==null?0:Math.min(t,N.value.yAxis.scaleMin),N.value.yAxis.autoScale&&(r=t,n=e),r===n&&(r=n/2,n*=1.5),{max:n,min:r}}),Q=u(()=>{let e=Kr.value.length===1?qr.value.max*2:qr.value.max;return ie(qr.value.min,e,N.value.yAxis.dataLabels.steps)});dt(()=>Q.value.ticks.join(`|`),()=>{In()},{flush:`post`});function Jr(e){return(e-Q.value.min)/(Q.value.max-Q.value.min)}let Yr=u(()=>Q.value.ticks.map(e=>({y:q.value.bottom-q.value.height*Jr(e),value:e}))),$=u(()=>{let e=Kr.value,t=Math.max(...e.map(e=>e.subtotal));return e.length===1&&t*2,e.map((t,n)=>{let r=Math.min(q.value.width/24,Z.value/2*.7),i=r>q.value.width/16?q.value.width/16:r,a=E.value===t.index?q.value.width/16:i,o=e.length>4?r*2:r*2>Z.value/2*.7?Z.value/2*.7:r*2,s=q.value.bottom-q.value.height*Jr(t.subtotal),c=Ur.value.map(e=>({color:e.color,name:e.name,value:e.values[n]??0})).toSorted((e,t)=>t.value-e.value);return{...t,y:s,radius:i,activeRadius:a,hoverRadius:o,donut:ee({series:c},t.x,s,i,i,1.99999,2,1,360,105.25,i/2),donutHover:ee({series:c},t.x,s,o,o,1.99999,2,1,360,105.25,o/2),donutFocus:ee({series:c},q.value.centerX,q.value.centerY,q.value.height/3.6,q.value.height/3.6,1.99999,2,1,360,105.25,q.value.height/6)}})});function Xr(e,t,r){return ce(P.value.dataLabels.formatter,e,n({p:P.value.dataLabels.prefix,v:e,s:P.value.dataLabels.suffix,r:P.value.dataLabels.rounding}),{datapoint:t,index:r})}function Zr(e,t){return isNaN(e.value/r(t,`value`))?0:(e.value/r(t,`value`)*100).toFixed(0)+`%`}function Qr(e){let t=G.value;if(!t)return null;if(t.createSVGPoint&&t.getScreenCTM){let n=t.createSVGPoint();n.x=e.clientX,n.y=e.clientY;let r=t.getScreenCTM();if(r){let e=n.matrixTransform(r.inverse());return{x:e.x,y:e.y}}}let n=t.getBoundingClientRect(),r=t.viewBox?.baseVal||{x:0,y:0,width:n.width,height:n.height},i=Math.min(n.width/r.width,n.height/r.height);if(!Number.isFinite(i)||i<=0)return null;let a=r.width*i,o=r.height*i,ee=(n.width-a)/2,s=(n.height-o)/2;return{x:(e.clientX-n.left-ee)/i+r.x,y:(e.clientY-n.top-s)/i+r.y}}let $r=u(()=>!z.value||B.value==null||V.value==null?null:{x:Math.min(B.value,V.value),y:q.value.top,width:Math.abs(V.value-B.value),height:q.value.height}),ei=u(()=>ur.value?Number(R.value.start)!==0||Number(R.value.end)!==Number(Y.value):!1);function ti(e){return Math.min(Math.max(e,q.value.left),q.value.right)}function ni(){E.value=null,mn.value=null,A.value=null}function ri(e){let t=e?.pointerId==null?H.value:e.pointerId;t!=null&&G.value?.hasPointerCapture?.(t)&&G.value.releasePointerCapture(t),z.value=!1,B.value=null,V.value=null,H.value=null}function ii(){or.value=!0,setTimeout(()=>{or.value=!1},0)}function ai(e){or.value&&(or.value=!1,e.preventDefault(),e.stopPropagation())}function oi(e){if(!U.value||!ei.value||!e)return!1;let t=Date.now(),n=e.pointerType||`mouse`,r=sr.value,i=n===`touch`?450:350,a=n===`touch`?28:10,o=Math.hypot(e.clientX-r.x,e.clientY-r.y);return r.time>0&&r.pointerType===n&&t-r.time<=i&&o<=a?(sr.value={time:0,x:0,y:0,pointerType:null},ii(),_i(),ri(e),Bi(),xr({force:!0,publish:!0}),!0):(sr.value={time:t,x:e.clientX,y:e.clientY,pointerType:n},!1)}function si(e){let t=Number(R.value.end)-Number(R.value.start);if(t<=0||!Number.isFinite(Z.value)||Z.value<=0)return null;let n=Math.floor((ti(e)-q.value.left)/Z.value);return Math.max(0,Math.min(t-1,n))}function ci(e,t){let n=si(e),r=si(t);if(n==null||r==null)return null;let i=Math.min(n,r),a=Math.max(n,r);return a<=i?null:{start:Number(R.value.start)+i,end:Number(R.value.start)+a+1}}function li(e){let t=yr(e);return t?(j(`zoomStart`,{index:t.start,isZoom:t.start!==0}),j(`zoomEnd`,{index:t.end,isZoom:t.end!==Y.value}),t):null}function ui(e){if(!U.value||Pi.value||e.button!==void 0&&e.button!==0||H.value!=null&&e.pointerId!==H.value)return;let t=Qr(e);if(!t||t.x<q.value.left||t.x>q.value.right||t.y<q.value.top||t.y>q.value.bottom||Number(R.value.end)-Number(R.value.start)<=1)return;ar.value=!0,G.value?.focus?.({preventScroll:!0}),_i(),ni();let n=ti(t.x);H.value=e.pointerId,z.value=!0,B.value=n,V.value=n}function di(e){if(!U.value||!z.value||H.value!=null&&e.pointerId!==H.value)return;let t=Qr(e);t&&(V.value=ti(t.x),ni(),B.value!=null&&Math.abs(V.value-B.value)>=2&&!G.value?.hasPointerCapture?.(e.pointerId)&&G.value?.setPointerCapture?.(e.pointerId))}function fi(e){if(!U.value||!z.value||H.value!=null&&e.pointerId!==H.value)return;let t=Qr(e);t&&(V.value=ti(t.x));let n=B.value,r=V.value;if((n==null||r==null?0:Math.abs(r-n))<Math.max(4,q.value.width*.01)){if(oi(e))return;ri(e);return}let i=ci(Math.min(n,r),Math.max(n,r));i?(ri(e),li(i)&&(sr.value={time:0,x:0,y:0,pointerType:null},ni(),ii())):ri(e)}function pi(e){z.value||(E.value=null,mn.value=null,A.value=null,M.value.events.datapointLeave&&M.value.events.datapointLeave({datapoint:e,seriesIndex:e.seriesIndex+R.value.start}))}function mi(e){z.value||(M.value.events.datapointEnter&&M.value.events.datapointEnter({datapoint:e,seriesIndex:e.index+R.value.start}),E.value=e.index,mn.value=e,A.value=e.index)}let hi=_(null),gi=null;function _i(){gi&&=(clearTimeout(gi),null)}function vi(e,t){M.value.events.datapointClick&&M.value.events.datapointClick({datapoint:e,seriesIndex:e.index+R.value.start}),e.subtotal&&Qn.value.show&&(mn.value=null,E.value=null,hn.value=!0,D.value=e,Vi(e),[null,void 0].includes(t)||(hi.value=t))}function yi(e,t){if(_i(),!U.value||!ei.value){vi(e,t);return}let n=sr.value.pointerType===`touch`?480:380;gi=setTimeout(()=>{gi=null,vi(e,t)},n)}let bi=u(()=>J.value.map((e,t)=>({name:e.name,value:e.values.slice(R.value.start,R.value.end).reduce((e,t)=>e+t,0),shape:`circle`,uid:e.uid,color:e.color})).sort((e,t)=>t.value-e.value).map((e,t)=>({...e,opacity:T.value.includes(e.uid)?.5:1,segregate:()=>wi(e.uid),isSegregated:T.value.includes(e.uid),display:`${e.name}${F.value.legend.showPercentage||F.value.legend.showValue?`: `:``}${F.value.legend.showValue?ce(P.value.dataLabels.formatter,e.value,n({p:P.value.dataLabels.prefix,v:e.value,s:P.value.dataLabels.suffix,r:F.value.legend.roundingValue}),{datapoint:e,seriesIndex:t}):``}${F.value.legend.showPercentage?T.value.includes(e.uid)?`${F.value.legend.showValue?` (`:``}- %${F.value.legend.showValue?`)`:``}`:`${F.value.legend.showValue?` (`:``}${isNaN(e.value/xi.value)?`-`:n({v:e.value/xi.value*100,s:`%`,r:F.value.legend.roundingPercentage})}${F.value.legend.showValue?`)`:``}`:``}`}))),xi=u(()=>$.value.map(e=>e.subtotal).reduce((e,t)=>e+t,0)),Si=u(()=>({cy:`donut-div-legend`,backgroundColor:F.value.legend.backgroundColor,color:F.value.legend.color,fontSize:F.value.legend.fontSize,paddingBottom:12,fontWeight:F.value.legend.bold?`bold`:``}));function Ci(){T.value.length?T.value=[]:bi.value.forEach(e=>{T.value.push(e.uid)}),j(`selectLegend`,Ur.value)}function wi(e){if(T.value.includes(e))T.value=T.value.filter(t=>t!==e),j(`selectLegend`,Ur.value);else{if(T.value.length===J.value.length-1)return;T.value.push(e),j(`selectLegend`,Ur.value)}D.value&&vi($.value.find((e,t)=>t===hi.value))}function Ti(e){return J.value.length?J.value.find(t=>t.name===e)||(Xn.value&&console.warn(`VueUiDonutEvolution - Series name not found "${e}"`),null):(Xn.value&&console.warn(`VueUiDonutEvolution - There are no series to show.`),null)}function Ei(e){let t=Ti(e);t!==null&&T.value.includes(t.uid)&&wi(t.uid)}function Di(e){let t=Ti(e);t!==null&&(T.value.includes(t.uid)||wi(t.uid))}let Oi=u(()=>{let e=[``].concat(J.value.filter(e=>!T.value.includes(e.uid)).map(e=>({name:e.name,color:e.color})),[`Σ`]),t=[];for(let e=0;e<Y.value;e+=1){let n=J.value.filter(e=>!T.value.includes(e.uid)).map(t=>t.values[e]??0).reduce((e,t)=>e+t,0);t.push([X.value[e]?X.value[e].text:`-`].concat(J.value.filter(e=>!T.value.includes(e.uid)).map(t=>({value:t.values[e]??0,percentage:t.values[e]?t.values[e]/n*100:0})),[`${P.value.dataLabels.prefix}${Number(n.toFixed(M.value.table.td.roundingValue))}${P.value.dataLabels.suffix}`]))}return{head:e,body:t,bodyA11y:t.map(e=>e.map((t,n)=>n===0||n===e.length-1?t:`${Xr(t.value??0,null,n)} (${t.percentage.toFixed(1)}%)`)),config:{th:{backgroundColor:M.value.table.th.backgroundColor,color:M.value.table.th.color,outline:M.value.table.th.outline},td:{backgroundColor:M.value.table.td.backgroundColor,color:M.value.table.td.color,outline:M.value.table.td.outline},breakpoint:M.value.table.responsiveBreakpoint},colNames:[M.value.table.columnNames.period].concat(J.value.filter(e=>!T.value.includes(e.uid)).map(e=>e.name),M.value.table.columnNames.total)}});function ki(){return J.value}function Ai(e=null){rt(()=>{let t=[[F.value.title.text],[F.value.title.subtitle.text],[``]],n=[...Oi.value.head.map(e=>e.name??e)],r=[...Oi.value.body.map(e=>e.map(e=>e.value??e))],i=t.concat([n]).concat(r),o=a(i);e?e(o):de({csvContent:o,title:F.value.title.text||`vue-ui-donut-evolution`})})}let ji=_(!1);function Mi(e){ji.value=e,_n.value+=1}function Ni(){Fr.value.showTable=!Fr.value.showTable}let Pi=_(!1);function Fi(){Pi.value=!Pi.value}function Ii(e){return e.proportion*100>F.value.donuts.hover.hideLabelsUnderValue}let Li=_([]),Ri=_({}),zi=_(null);function Bi(){zi.value?.close?.(),D.value=null,hi.value=null,hn.value=!1,mn.value=null,E.value=null,A.value=null}function Vi(e){Li.value=e.donut.map(e=>({name:e.name,values:[e.value],color:e.color})),Ri.value=me({...Qn.value.donutChart,responsive:!0,theme:M.value.theme}),zi.value&&zi.value.open()}let Hi=Ee(O,()=>F.value.title.text),Ui=u(()=>L.value.width),Wi=u(()=>L.value.height);Be({timeLabelsEls:Cn,timeLabels:X,slicer:R,configRef:M,rotationPath:[`style`,`chart`,`layout`,`grid`,`xAxis`,`dataLabels`,`rotation`],autoRotatePath:[`style`,`chart`,`layout`,`grid`,`xAxis`,`dataLabels`,`autoRotate`,`enable`],isAutoSize:!1,width:Ui,height:Wi,rotation:N.value.xAxis.dataLabels.autoRotate.angle});let Gi=u(()=>Ae({config:M,style:F,mutableConfig:Fr,dialog:un,accordion:nn,isFullscreen:ji,parent:O,maxWidth:800,isCursorPointer:I}));dt(()=>Fr.value.showTable,e=>ke(e,M,Dn));function Ki(){Fr.value.showTable=!1,On.value&&On.value.setTableIconState(!1)}let qi=u(()=>bi.value.map(e=>({...e,name:e.display}))),Ji=u(()=>F.value.backgroundColor),Yi=u(()=>F.value.legend),Xi=u(()=>F.value.title),{isCallbackImaging:Zi,isCallbackSvg:Qi,generateSvg:$i,onGenerateImage:ea}=Oe({svg:G,title:Xi,legend:Yi,legendItems:qi,backgroundColor:Ji,getSvgCallback:()=>M.value.userOptions.callbacks.svg,generateImage:Mr});async function ta(){j(`copyAlt`,{config:M.value,dataset:$.value}),M.value.userOptions.callbacks.altCopy?await Promise.resolve(M.value.userOptions.callbacks.altCopy({config:M.value,dataset:$.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function na(){A.value=null,Kn.value=!0}function ra(){ar.value=!1,A.value=null,E.value=null,mn.value=null,Kn.value=!1}function ia(e){if(!G.value||Pi.value||document.activeElement!==G.value||(ar.value=!1,!$.value.length))return;let t=e.key===`ArrowLeft`,n=e.key===`ArrowRight`,r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){if(U.value&&(ei.value||z.value)){_i(),ri(),Bi(),xr({force:!0,publish:!0});return}A.value=null,E.value=null,mn.value=null;return}if(r){if(A.value===null)return;let e=$.value[A.value];if(!e)return;vi(e,A.value);return}let a=A.value,o=E.value,ee=a!==null&&a>=0&&a<$.value.length,s=o!==null&&o>=0&&o<$.value.length;ee?n?(a+=1,a>=$.value.length&&(a=0)):t&&(--a,a<0&&(a=$.value.length-1)):s?(a=n?o+1:o-1,a>=$.value.length&&(a=0),a<0&&(a=$.value.length-1)):a=n?0:$.value.length-1;let c=$.value[a];c&&mi(c)}let aa=u(()=>({headers:Oi.value?.colNames??[],rows:Oi.value?.bodyA11y??[]}));return Ce({getData:ki,getImage:Hi,generatePdf:jr,generateCsv:Ai,generateImage:Mr,generateSvg:$i,hideSeries:Di,showSeries:Ei,toggleTable:Ni,toggleAnnotator:Fi,toggleFullscreen:Mi,copyAlt:ta,resetZoom:()=>xr({force:!0,publish:!0}),setZoomState:yr}),dt(()=>[L.value.width,L.value.height,An.value,X.value,Wr.value,R.value.start,R.value.end,N.value,P.value,M.value.style.fontFamily,C.dataset,Jn.value,Sn.value,Cn.value,wn.value,Tn.value],Br,{flush:`post`,deep:!0}),(e,t)=>(g(),p(`div`,{ref_key:`donutEvolutionChart`,ref:O,class:h(`vue-data-ui-component vue-ui-donut-evolution ${ji.value?`vue-data-ui-wrapper-fullscreen`:``} ${M.value.useCssAnimation?``:`vue-ui-dna`}`),style:at(`font-family:${M.value.style.fontFamily};width:100%; text-align:center;background:${F.value.backgroundColor}`),id:w.value,onMouseenter:t[4]||=()=>x(Er)(!0),onMouseleave:t[5]||=()=>x(Er)(!1)},[m(`div`,{id:`chart-instructions-${w.value}`,class:`sr-only`},[m(`p`,null,b(M.value.a11y.translations.keyboardNavigation),1)],8,ht),aa.value?.rows?.length?(g(),d(Ge,{key:0,uid:w.value,head:aa.value.headers,body:aa.value.rows,notice:M.value.a11y.translations.tableAvailable,caption:M.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):f(``,!0),M.value.userOptions.buttons.annotator?(g(),d(x(sn),{key:1,svgRef:x(G),backgroundColor:F.value.backgroundColor,color:F.value.color,active:Pi.value,isCursorPointer:I.value,palette:M.value.userOptions.annotatorPalette,onClose:Fi},Ze({_:2},[v(x(Me),t=>({name:t,fn:S(n=>[y(e.$slots,t,it(tt(x(je)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):f(``,!0),Nr.value?(g(),p(`div`,{key:2,ref_key:`noTitle`,ref:gn,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):f(``,!0),F.value.title.text?(g(),p(`div`,{key:3,ref_key:`chartTitle`,ref:Rn,style:`width:100%;background:transparent;padding-bottom:24px`,onMouseleave:pi},[(g(),d(De,{key:`title_${yn.value}`,config:{title:{cy:`donut-evolution-div-title`,...F.value.title},subtitle:{cy:`donut-evolution-div-subtitle`,...F.value.title.subtitle}}},null,8,[`config`]))],544)):f(``,!0),m(`div`,{id:`legend-top-${w.value}`},null,8,gt),M.value.userOptions.show&&qn.value&&(x(Dr)||x(Tr))?(g(),d(x(cn),{ref_key:`userOptionsRef`,ref:On,key:`user_options_${_n.value}`,backgroundColor:F.value.backgroundColor,color:F.value.color,isPrinting:x(kr),isImaging:x(Ar),uid:w.value,hasPdf:M.value.userOptions.buttons.pdf,hasImg:M.value.userOptions.buttons.img,hasSvg:M.value.userOptions.buttons.svg,hasXls:M.value.userOptions.buttons.csv,hasTable:M.value.userOptions.buttons.table,hasFullscreen:M.value.userOptions.buttons.fullscreen,hasAltCopy:M.value.userOptions.buttons.altCopy,isFullscreen:ji.value,titles:{...M.value.userOptions.buttonTitles},chartElement:O.value,position:M.value.userOptions.position,hasAnnotator:M.value.userOptions.buttons.annotator,isAnnotation:Pi.value,callbacks:M.value.userOptions.callbacks,printScale:M.value.userOptions.print.scale,tableDialog:M.value.table.useDialog,isCursorPointer:I.value,onToggleFullscreen:Mi,onGeneratePdf:x(jr),onGenerateCsv:Ai,onGenerateImage:x(ea),onGenerateSvg:x($i),onToggleTable:Ni,onToggleAnnotator:Fi,onCopyAlt:ta,style:at({visibility:x(Dr)?x(Tr)?`visible`:`hidden`:`visible`})},Ze({_:2},[v(x(Ne)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:S(n=>[y(e.$slots,t,it(tt(x(Pe)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasFullscreen.hasAltCopy.isFullscreen.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):f(``,!0),m(`div`,_t,[(g(),p(`svg`,{ref_key:`svgRef`,ref:G,xmlns:x(pe),"aria-describedby":`chart-instructions-${w.value}`,class:h({"vue-data-ui-fullscreen--on":ji.value,"vue-data-ui-fulscreen--off":!ji.value,"vue-data-ui-no-transition":!x($n)||x(zr),"vue-ui-donut-evolution-chart-zoom-pointer-focus":U.value&&ar.value}),viewBox:`0 0 ${q.value.absoluteWidth} ${q.value.absoluteHeight}`,style:at({maxWidth:`100%`,visibility:x(Rr)?`visible`:`hidden`,overflow:`visible`,background:`transparent`,color:F.value.color,cursor:U.value?z.value?`col-resize`:`crosshair`:void 0,touchAction:U.value?`pan-y`:void 0,userSelect:U.value?`none`:void 0}),tabindex:`0`,onFocus:na,onBlur:ra,onKeydown:ia,onPointerdown:ui,onPointermove:di,onPointerup:fi,onPointercancel:ri,onClickCapture:ai},[$e(x(on)),y(e.$slots,`svg-underlayer`,{svg:{...q.value,isPrintingImg:x(kr)||x(Ar)||x(Zi),isPrintingSvg:x(Qi)}},void 0,!0),e.$slots[`chart-background`]?(g(),p(`foreignObject`,{key:0,x:q.value.left,y:q.value.top,width:q.value.width,height:q.value.height,style:{pointerEvents:`none`}},[y(e.$slots,`chart-background`,{},void 0,!0)],8,yt)):f(``,!0),m(`defs`,null,[$e(He,{t:`linear`,id:`hover_${w.value}`,x1:`0%`,y1:`0%`,x2:`0%`,y2:`100%`,stops:[[`0%`,x(c)(F.value.backgroundColor,P.value.highlighter.opacity),1],[`100%`,x(c)(P.value.highlighter.color,P.value.highlighter.opacity),1]]},null,8,[`id`,`stops`]),$e(He,{t:`radial`,id:`focus_${w.value}`,stops:[[`0%`,x(c)(x(ne)(F.value.backgroundColor),0),1],[`77%`,x(c)(`#FFFFFF`,30),1],[`100%`,x(c)(x(ne)(F.value.backgroundColor),0),1]]},null,8,[`id`,`stops`])]),N.value.show?(g(),p(`g`,bt,[m(`line`,{x1:K.value?q.value.right:q.value.left,x2:K.value?q.value.right:q.value.left,y1:q.value.top,y2:q.value.top+q.value.height,stroke:N.value.stroke,"stroke-width":N.value.strokeWidth,"stroke-linecap":`round`},null,8,xt),m(`line`,{x1:q.value.left,x2:q.value.right,y1:q.value.bottom,y2:q.value.bottom,stroke:N.value.stroke,"stroke-width":N.value.strokeWidth,"stroke-linecap":`round`},null,8,St),N.value.showVerticalLines?(g(),p(`g`,Ct,[(g(!0),p(l,null,v(R.value.end-R.value.start,(e,t)=>(g(),p(`line`,{x1:q.value.left+(t+1)*Z.value,x2:q.value.left+(t+1)*Z.value,y1:q.value.top,y2:q.value.bottom,stroke:N.value.stroke,"stroke-width":N.value.strokeWidth,"stroke-linecap":`round`},null,8,wt))),256))])):f(``,!0)])):f(``,!0),m(`g`,null,[N.value.axis.yLabel?(g(),p(`text`,{key:0,ref_key:`yAxisLabel`,ref:Tn,"font-size":N.value.axis.fontSize,fill:N.value.axis.color,transform:`translate(${K.value?q.value.absoluteWidth-N.value.axis.fontSize/2-N.value.axis.yLabelOffsetX:N.value.axis.fontSize}, ${q.value.top+q.value.height/2}) rotate(-90)`,"text-anchor":`middle`,style:{transition:`none`}},b(N.value.axis.yLabel),9,Tt)):f(``,!0),N.value.axis.xLabel?(g(),p(`text`,{key:1,ref_key:`xAxisLabel`,ref:wn,"text-anchor":`middle`,x:q.value.absoluteWidth/2,y:q.value.absoluteHeight-3,"font-size":N.value.axis.fontSize,fill:N.value.axis.color},b(N.value.axis.xLabel),9,Et)):f(``,!0)]),N.value.yAxis.dataLabels.show?(g(),p(`g`,{key:2,ref_key:`scaleLabels`,ref:Sn,class:h({"donut-opacity":!0,"donut-behind":E.value!==null})},[(g(!0),p(l,null,v(Yr.value,(e,t)=>(g(),p(`g`,{key:`sl_${t}`},[e.value>=Q.value.min&&e.value<=Q.value.max?(g(),p(`path`,{key:0,class:h({"vue-data-ui-transition":x($n)&&!x(zr)}),d:`M${K.value?q.value.right:q.value.left},${e.y} ${K.value?q.value.right+5:q.value.left-5},${e.y}`,stroke:N.value.stroke,"stroke-width":N.value.strokeWidth,"stroke-linecap":`round`},null,10,Dt)):f(``,!0),e.value>=Q.value.min&&e.value<=Q.value.max?(g(),p(`text`,{key:1,class:h({"vue-data-ui-transition":x($n)&&!x(zr)}),transform:`translate(${K.value?q.value.right-N.value.yAxis.dataLabels.offsetX+7:q.value.left+N.value.yAxis.dataLabels.offsetX-7}, ${e.y+N.value.yAxis.dataLabels.fontSize/3})`,"font-size":N.value.yAxis.dataLabels.fontSize,"text-anchor":K.value?`start`:`end`,fill:N.value.yAxis.dataLabels.color,"font-weight":N.value.yAxis.dataLabels.bold?`bold`:`normal`},b(x(ge)(e.value)?x(ce)(P.value.dataLabels.formatter,e.value,x(n)({p:P.value.dataLabels.prefix,v:e.value,s:P.value.dataLabels.suffix,r:P.value.grid.yAxis.dataLabels.roundingValue}),{datapoint:e,seriesIndex:t}):``),11,Ot)):f(``,!0)]))),128))],2)):f(``,!0),N.value.xAxis.dataLabels.show?(g(),p(`g`,{key:3,ref_key:`timeLabelsEls`,ref:Cn,class:h({"donut-opacity":!0})},[(g(!0),p(l,null,v(R.value.end-R.value.start,(e,t)=>(g(),p(`g`,null,[(N.value.xAxis.dataLabels.showOnlyFirstAndLast&&(t===0||t===Y.value-1)||!N.value.xAxis.dataLabels.showOnlyFirstAndLast)&&X.value[t]&&X.value[t].text?(g(),p(`g`,kt,[String(X.value[t].text).includes(`
|
|
2
2
|
`)?(g(),p(`text`,{key:1,class:`vue-data-ui-time-label`,"text-anchor":N.value.xAxis.dataLabels.rotation>0?`start`:N.value.xAxis.dataLabels.rotation<0?`end`:`middle`,"font-size":N.value.xAxis.dataLabels.fontSize,fill:N.value.xAxis.dataLabels.color,transform:`translate(${q.value.left+Z.value*t+Z.value/2}, ${q.value.bottom+N.value.xAxis.dataLabels.fontSize+N.value.xAxis.dataLabels.offsetY}), rotate(${N.value.xAxis.dataLabels.rotation})`,innerHTML:x(s)({content:String(X.value[t].text),fontSize:N.value.xAxis.dataLabels.fontSize,fill:P.value.grid.xAxis.dataLabels.color,x:0,y:0})},null,8,jt)):(g(),p(`text`,{key:0,class:`vue-data-ui-time-label`,"text-anchor":N.value.xAxis.dataLabels.rotation>0?`start`:N.value.xAxis.dataLabels.rotation<0?`end`:`middle`,"font-size":N.value.xAxis.dataLabels.fontSize,fill:N.value.xAxis.dataLabels.color,transform:`translate(${q.value.left+Z.value*t+Z.value/2}, ${q.value.bottom+N.value.xAxis.dataLabels.fontSize+N.value.xAxis.dataLabels.offsetY}), rotate(${N.value.xAxis.dataLabels.rotation})`},b(X.value[t].text||``),9,At))])):f(``,!0)]))),256))],512)):f(``,!0),(g(!0),p(l,null,v($.value,(e,t)=>(g(),p(`g`,null,[P.value.line.show&&t<$.value.length-1&&![e.subtotal,$.value[t+1].subtotal].includes(null)?(g(),p(`line`,{key:0,class:h({"donut-opacity":!0,"donut-behind":E.value!==null}),x1:e.x,y1:e.y,x2:$.value[t+1].x,y2:$.value[t+1].y,stroke:P.value.line.stroke,"stroke-width":P.value.line.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,10,Mt)):f(``,!0),e.subtotal===null?f(``,!0):(g(),p(`g`,Nt,[e.subtotal?(g(),p(`circle`,{key:0,cx:e.x,cy:e.y,r:e.activeRadius,fill:F.value.backgroundColor},null,8,Pt)):f(``,!0)]))]))),256)),(g(!0),p(l,null,v($.value,(e,t)=>(g(),p(`g`,{class:h({"donut-opacity":!0,"donut-behind":t!==E.value&&E.value!==null})},[e.subtotal?(g(),p(`g`,Ft,[E.value!==null&&E.value===t?(g(),p(`g`,It,[(g(!0),p(l,null,v(e.donutHover,t=>(g(),p(`g`,null,[Ii(t)?(g(),p(`path`,{key:0,d:x(se)(t,{x:t.center.endX,y:t.center.endY},12,12,{x:e.x,y:e.y},!1,20),stroke:t.color,"stroke-width":`1`,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:`none`},null,8,Lt)):f(``,!0)]))),256)),(g(!0),p(l,null,v(e.donutHover,(t,n)=>(g(),p(`g`,null,[Ii(t)?(g(),p(`text`,{key:0,"data-cy-hover-label":``,"text-anchor":x(oe)(t,!0,0).anchor,x:x(oe)(t,!0,9).x,y:x(fe)(t,14,10),fill:N.value.yAxis.dataLabels.color,"font-size":8,"font-weight":`bold`},b(t.name)+`: `+b(Zr(t,e.donut))+` (`+b(t.value===null?`-`:Xr(t.value,t,n))+`) `,9,Rt)):f(``,!0)]))),256)),m(`g`,null,[m(`circle`,{cx:e.x,cy:e.y,r:e.hoverRadius,fill:F.value.backgroundColor},null,8,zt)])])):f(``,!0)])):f(``,!0)],2))),256)),(g(!0),p(l,null,v($.value,(e,t)=>(g(),p(`g`,{class:h({"donut-opacity":!0,"donut-behind":t!==E.value&&E.value!==null})},[e.subtotal===null?f(``,!0):(g(),p(`g`,Bt,[e.subtotal===0?(g(),p(`circle`,{key:0,cx:e.x,cy:e.y,r:3,fill:F.value.color},null,8,Vt)):E.value!==null&&E.value===t?(g(),p(`g`,Ht,[(g(!0),p(l,null,v(e.donutHover,(e,t)=>(g(),p(`path`,{d:e.arcSlice,fill:`${e.color}`,"stroke-width":1,stroke:F.value.backgroundColor},null,8,Ut))),256))])):(g(),p(`g`,Wt,[(g(!0),p(l,null,v(e.donut,(e,t)=>(g(),p(`path`,{d:e.arcSlice,fill:`${e.color}`,"stroke-width":.5,stroke:F.value.backgroundColor},null,8,Gt))),256))]))]))],2))),256)),(g(!0),p(l,null,v($.value,(e,t)=>(g(),p(`g`,{class:h({"donut-opacity":!0,"donut-behind":t!==E.value&&E.value!==null||hn.value&&t!==D.value.index})},[e.subtotal!==null&&P.value.dataLabels.show?(g(),p(`text`,{key:0,"text-anchor":`middle`,x:e.x,y:E.value===e.index&&e.subtotal?e.y+P.value.dataLabels.fontSize/3:e.y-e.radius-P.value.dataLabels.fontSize+P.value.dataLabels.offsetY,"font-size":P.value.dataLabels.fontSize,"font-weight":`bold`,fill:P.value.dataLabels.color},b(Xr(e.subtotal,e,t)),9,Kt)):f(``,!0)],2))),256)),(g(!0),p(l,null,v($.value,(e,t)=>(g(),p(`rect`,{x:q.value.left+t*Z.value,y:q.value.top,width:Z.value,height:q.value.height,fill:[E.value,hi.value].includes(e.index)?`url(#hover_${w.value})`:`transparent`,class:h({"donut-hover":I.value&&e.subtotal&&[E.value,hi.value].includes(e.index)}),style:{pointerEvents:`none`}},null,10,qt))),256)),(g(!0),p(l,null,v($.value,(e,t)=>(g(),p(`rect`,{"data-cy-trap":``,x:q.value.left+t*Z.value,y:q.value.top,width:Z.value,height:q.value.height,fill:`transparent`,onMouseenter:t=>mi(e),onMouseleave:t=>pi(e),onClick:n=>yi(e,t),style:at({cursor:U.value?z.value?`col-resize`:`crosshair`:void 0}),class:h({"donut-hover":I.value&&E.value===e.index&&e.subtotal})},null,46,Jt))),256)),$r.value?(g(),p(`rect`,{key:4,x:$r.value.x,y:$r.value.y,width:$r.value.width,height:$r.value.height,fill:cr.value.selection.fill,"fill-opacity":cr.value.selection.fillOpacity,stroke:cr.value.selection.stroke,"stroke-opacity":cr.value.selection.strokeOpacity,"stroke-width":cr.value.selection.strokeWidth,"stroke-dasharray":cr.value.selection.strokeDasharray,"stroke-linecap":`round`,"stroke-linejoin":`round`,"pointer-events":`none`},null,8,Yt)):f(``,!0),y(e.$slots,`svg`,{svg:{...q.value,isPrintingImg:x(kr)||x(Ar)||x(Zi),isPrintingSvg:x(Qi)}},void 0,!0)],46,vt)),e.$slots.hint?(g(),p(`div`,Xt,[y(e.$slots,`hint`,it(tt({hint:M.value.a11y.translations.keyboardNavigation,isVisible:Kn.value})),void 0,!0)])):f(``,!0)]),e.$slots.watermark?(g(),p(`div`,Zt,[y(e.$slots,`watermark`,it(tt({isPrinting:x(kr)||x(Ar)||x(Zi)||x(Qi)})),void 0,!0)])):f(``,!0),m(`div`,{ref_key:`chartSlicer`,ref:Hn,style:at(`width:100%;background:${F.value.backgroundColor}`),"data-dom-to-png-ignore":``},[Y.value>1&&F.value.zoom.show?(g(),d(Ue,{ref_key:`slicerComponent`,ref:Vn,key:`slicer_${vn.value}`,background:F.value.zoom.color,borderColor:F.value.backgroundColor,fontSize:F.value.zoom.fontSize,useResetSlot:F.value.zoom.useResetSlot,timeLabels:X.value,textColor:F.value.color,inputColor:F.value.zoom.color,selectColor:F.value.zoom.highlightColor,max:Y.value,min:0,valueStart:R.value.start,valueEnd:R.value.end,refreshStartPoint:F.value.zoom.startIndex===null?0:F.value.zoom.startIndex,refreshEndPoint:F.value.zoom.endIndex===null?Y.value:F.value.zoom.endIndex+1,enableRangeHandles:F.value.zoom.enableRangeHandles,enableSelectionDrag:F.value.zoom.enableSelectionDrag,focusOnDrag:F.value.zoom.focusOnDrag,focusRangeRatio:F.value.zoom.focusRangeRatio,isCursorPointer:I.value,maxWidth:F.value.zoom.maxWidth,minimapLeftInsetRatio:q.value.absoluteWidth>0&&F.value.zoom.autoFit?q.value.left/q.value.absoluteWidth:null,minimapRightInsetRatio:q.value.absoluteWidth>0&&F.value.zoom.autoFit?(q.value.absoluteWidth-q.value.right)/q.value.absoluteWidth:null,"onUpdate:start":Cr,"onUpdate:end":wr,onReset:t[0]||=()=>xr({force:!0,publish:!0})},{"reset-action":S(({reset:t})=>[y(e.$slots,`reset-action`,it(tt({reset:t})),void 0,!0)]),_:3},8,[`background`,`borderColor`,`fontSize`,`useResetSlot`,`timeLabels`,`textColor`,`inputColor`,`selectColor`,`max`,`valueStart`,`valueEnd`,`refreshStartPoint`,`refreshEndPoint`,`enableRangeHandles`,`enableSelectionDrag`,`focusOnDrag`,`focusRangeRatio`,`isCursorPointer`,`maxWidth`,`minimapLeftInsetRatio`,`minimapRightInsetRatio`])):f(``,!0)],4),m(`div`,{id:`legend-bottom-${w.value}`},null,8,Qt),En.value&&(F.value.legend.show||e.$slots.legend)?(g(),d(Xe,{key:6,to:F.value.legend.position===`top`?`#legend-top-${w.value}`:`#legend-bottom-${w.value}`},[m(`div`,{ref_key:`chartLegend`,ref:zn},[y(e.$slots,`legend`,{legend:bi.value},()=>[F.value.legend.show?(g(),d(Je,{key:`legend_${xn.value}`,legendSet:bi.value,config:Si.value,onClickMarker:t[1]||=({legend:e})=>wi(e.uid)},{item:S(({legend:e,index:t})=>[m(`div`,{onClick:t=>wi(e.uid),style:at(`opacity:${T.value.includes(e.uid)?.5:1}`)},b(e.display),13,$t)]),legendToggle:S(()=>[bi.value.length>2&&F.value.legend.selectAllToggle.show&&!x(tr)?(g(),d(We,{key:0,backgroundColor:F.value.legend.selectAllToggle.backgroundColor,color:F.value.legend.selectAllToggle.color,fontSize:F.value.legend.fontSize,checked:T.value.length>0,onToggle:Ci},null,8,[`backgroundColor`,`color`,`fontSize`,`checked`])):f(``,!0)]),_:1},8,[`legendSet`,`config`])):f(``,!0)],!0)],512)],8,[`to`])):f(``,!0),e.$slots.source?(g(),p(`div`,{key:7,ref_key:`source`,ref:Bn,dir:`auto`},[y(e.$slots,`source`,{},void 0,!0)],512)):f(``,!0),qn.value&&M.value.userOptions.buttons.table?(g(),d(ct(Gi.value.component),nt({key:8},Gi.value.props,{ref_key:`tableUnit`,ref:Dn,onClose:Ki}),Ze({content:S(()=>[(g(),d(x(an),{key:`table_${bn.value}`,colNames:Oi.value.colNames,head:Oi.value.head,body:Oi.value.body,config:Oi.value.config,title:M.value.table.useDialog?``:Gi.value.title,withCloseButton:!M.value.table.useDialog,isCursorPointer:I.value,onClose:Ki},{th:S(({th:e})=>[Qe(b(e.name??e),1)]),td:S(({td:e})=>[e.value===null?(g(),p(`span`,en,`-`)):(g(),p(`b`,tn,b(isNaN(e.value)?``:P.value.dataLabels.prefix)+b(!isNaN(e.value)&&e.value!==null?Number(e.value.toFixed(M.value.table.td.roundingValue)).toLocaleString():e)+b(isNaN(e.value)?``:P.value.dataLabels.suffix),1)),m(`span`,null,b(e.percentage&&!isNaN(e.percentage)?`(${Number(e.percentage.toFixed(M.value.table.td.roundingPercentage)).toLocaleString()}%)`:``),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`]))]),_:2},[M.value.table.useDialog?{name:`title`,fn:S(()=>[Qe(b(Gi.value.title),1)]),key:`0`}:void 0,M.value.table.useDialog?{name:`actions`,fn:S(()=>[m(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[2]||=e=>Ai(M.value.userOptions.callbacks.csv),style:at({cursor:I.value?`cursor`:`default`})},[$e(x(rn),{name:`fileCsv`,stroke:Gi.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):f(``,!0),Qn.value.show?(g(),d(x(un),{key:9,ref_key:`dialog`,ref:zi,onClose:t[3]||=e=>{D.value=null,hn.value=!1,mn.value=null,E.value=null,hi.value=null},backgroundColor:Qn.value.backgroundColor,color:Qn.value.color,headerBg:Qn.value.header.backgroundColor,headerColor:Qn.value.header.color,isFullscreen:ji.value,fullscreenParent:O.value},{title:S(()=>[Qe(b(X.value[Number(D.value.index)]?X.value[Number(D.value.index)].text:``),1)]),content:S(()=>[D.value?(g(),d(x(ln),{key:0,config:Ri.value,dataset:Li.value},null,8,[`config`,`dataset`])):f(``,!0)]),_:1},8,[`backgroundColor`,`color`,`headerBg`,`headerColor`,`isFullscreen`,`fullscreenParent`])):f(``,!0),x(tr)?(g(),d(be,{key:10})):f(``,!0)],46,mt))}},[[`__scopeId`,`data-v-36a2b861`]]);export{pt as n,nn as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Ft as i,Jt as a,Q as o,X as s,_ as ee,at as te,b as ne,i as c,in as re,nt as ie,t as ae,yt as oe,zt as se}from"./lib-rPeBMZrn.js";import{n as ce,t as le}from"./BaseScanner-8NdoBs7B.js";import{n as ue,t as de}from"./useHints-BH9r_0Vd.js";import{t as fe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as pe}from"./resolveChartConfig-CIhClE5R.js";import{t as me}from"./chartImage-DPGnEuYM.js";import{n as he}from"./Title-BliHuXfT.js";import{t as ge}from"./useChartExport-BZts4KFb.js";import{n as _e,t as ve}from"./tableIntegration-CNoJ1CIY.js";import{n as ye,t as be}from"./annotationSlots-BRR85CqJ.js";import{n as xe,t as Se}from"./userOptionsSlots-DYuo-E5m.js";import{t as Ce}from"./usePrinter-sVoTzet1.js";import{t as we}from"./useSvgLabelLayout-D1I8sQUi.js";import{t as Te}from"./useTimeLabelCollider-BTybMUFi.js";import{c as Ee}from"./canvas-lib-22VpOI4_.js";import{t as De}from"./useResponsive-CENUxfEL.js";import{t as l}from"./DefGrad-DKMq1REY.js";import{t as Oe}from"./A11yDataTable-DWNlWXzs.js";import{t as ke}from"./useUserOptionState-CXlFnwPv.js";import{t as Ae}from"./useChartAccessibility-DOMuYJfm.js";import{t as je}from"./Legend-DM0ClX3D.js";import{t as Me}from"./usePrefersMotion-XLHwega2.js";import{t as Ne}from"./vue_ui_dumbbell-BMcxK0N3.js";import{Fragment as u,Teleport as Pe,computed as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createSlots as Fe,createTextVNode as Ie,createVNode as g,defineAsyncComponent as _,guardReactiveProps as Le,mergeProps as Re,nextTick as ze,normalizeClass as Be,normalizeProps as Ve,normalizeStyle as v,onBeforeUnmount as He,onMounted as Ue,openBlock as y,ref as b,renderList as x,renderSlot as S,resolveDynamicComponent as We,shallowRef as Ge,toDisplayString as C,toRefs as Ke,unref as w,vShow as qe,watch as Je,withCtx as T,withDirectives as Ye}from"vue";var Xe=/* @__PURE__ */ e({default:()=>Ft}),Ze=[`id`],Qe=[`id`],$e=[`id`],et={style:{position:`relative`}},tt=[`xmlns`,`viewBox`,`aria-describedby`],nt=[`x`,`y`,`width`,`height`],rt={key:1},it=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],at={key:2},ot=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],st=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],ct=[`transform`,`font-size`,`fill`],lt=[`x`,`y`,`font-size`,`fill`,`font-weight`,`onMouseenter`,`onMouseleave`,`onClick`],ut=[`x`,`y`,`font-size`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],dt=[`x`,`y`,`font-size`,`fill`],ft=[`transform`,`font-size`,`fill`,`font-weight`,`text-anchor`],pt=[`d`,`stroke`,`stroke-width`,`stroke-dasharray`],mt=[`d`,`stroke`,`stroke-width`,`stroke-dasharray`],ht=[`x`,`y`,`height`,`width`,`fill`],gt=[`transform`,`fill`,`font-size`],_t={key:0},vt={key:0},yt=[`d`,`fill`],bt={key:1},xt=[`x`,`y`,`height`,`width`,`fill`],St=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`],Ct=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`],wt={key:7},Tt=[`x`,`y`,`fill`,`font-size`],Et={key:8},Dt=[`x`,`y`,`fill`,`font-size`],Ot=[`x`,`y`,`width`,`height`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],kt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},At={key:5,class:`vue-data-ui-watermark`},jt=[`id`],Mt=[`xmlns`,`height`,`width`],Nt=[`fill`],Pt={style:{display:`flex`,"align-items":`center`}},Ft=/*#__PURE__*/ fe({__name:`vue-ui-dumbbell`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectDatapoint`,`copyAlt`],setup(e,{expose:fe,emit:Xe}){let Ft=_(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),It=_(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),Lt=_(()=>import(`./DataTable-0Vv-aGHD.js`)),Rt=_(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),zt=_(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Bt=_(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),Vt=_(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_dumbbell:Ht}=t(),Ut=Me(),E=e,Wt=Xe,Gt=d({get(){return!!E.dataset&&E.dataset.length},set(e){return e}}),D=b(s()),Kt=b(0),O=b(null),qt=b(null),Jt=b(null),Yt=b(null),Xt=b(null),Zt=b(0),Qt=b(0),$t=b(0),en=b(!1),tn=b(null),nn=b(null),rn=b(null),an=b(null),on=b(null),sn=b(null),k=b(null),A=b(null),j=b(null),cn=b(!1),M=b(!1),N=b(vn()),P=d(()=>N.value.style.chart.grid.horizontalGrid),ln=d(()=>N.value.style.chart.grid.verticalGrid),F=d(()=>N.value.style.chart.labels);d(()=>N.value.style.chart.grid);let I=d(()=>N.value.style.chart.plots),L=d(()=>N.value.style.chart.comparisonLines),R=d(()=>N.value.style.chart);ue({config:()=>N.value,dataset:()=>E.dataset,component:`VueUiDumbbell`,rules:[de.emptyArray,{test:e=>e.length>31,message:[`👀 The number of series is > 31. Consider:`,``,`▶️ Using filters to let users choose a maximum number of series to display.`,``,`▶️ Using multiple instances of the component to display related series.`]}]});let un=d(()=>N.value.userOptions.useCursorPointer),dn=d(()=>re({defaultConfig:{userOptions:{show:!1},table:{show:!1},useAnimation:!1,style:{chart:{backgroundColor:`#99999930`,padding:{top:12,right:12,bottom:12,left:12},grid:{horizontalGrid:{stroke:`#6A6A6A`},verticalGrid:{stroke:`#6A6A6A`}},labels:{axis:{yLabel:``,xLabel:``},xAxisLabels:{show:!1},yAxisLabels:{show:!1},endLabels:{show:!1},startLabels:{show:!1}},legend:{backgroundColor:`transparent`},plots:{endColor:`#969696`,startColor:`#DBDBDB`,stroke:`#6A6A6A`,evaluationColors:{enable:!1}}}}},userConfig:N.value.skeletonConfig??{}})),{loading:fn,FINAL_DATASET:pn,manualLoading:mn}=ce({...Ke(E),FINAL_CONFIG:N,prepareConfig:vn,skeletonDataset:E.config?.skeletonDataset??[{name:`_`,start:21,end:34},{name:`_`,start:13,end:21},{name:`_`,start:8,end:13},{name:`_`,start:5,end:8},{name:`_`,start:3,end:5}],skeletonConfig:re({defaultConfig:N.value,userConfig:dn.value})}),{userOptionsVisible:hn,setUserOptionsVisibility:gn,keepUserOptionState:_n}=ke({config:N.value}),{svgRef:z}=Ae({config:R.value.title});function vn(){return pe(E.config,Ht,Ne)}Je(()=>E.config,e=>{fn.value||(N.value=vn()),hn.value=!N.value.userOptions.showOnChartHover,Sn(),Zt.value+=1,Qt.value+=1,$t.value+=1,N.value.responsive||(G.value=R.value.rowHeight,K.value=R.value.width),H.value.showTable=N.value.table.show},{deep:!0}),Je(()=>pn.value,e=>{Array.isArray(e)&&e.length>0&&(mn.value=!1),Rn(),zn()},{deep:!0});let B=Ge(null),V=Ge(null),yn=b(!1),bn=0;Ue(()=>{en.value=!0,Sn()});let xn=d(()=>N.value.debug);function Sn(){se(E.dataset)?te({componentName:`VueUiDumbbell`,type:`dataset`,debug:xn.value}):E.dataset.forEach((e,t)=>{oe({datasetObject:e,requiredAttributes:[`name`,`start`,`end`]}).forEach(e=>{Gt.value=!1,te({componentName:`VueUiDumbbell`,type:`datasetSerieAttribute`,property:e,index:t,debug:xn.value})})}),N.value.responsive&&(B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect()),B.value=new ResizeObserver(()=>{let{width:e,height:t}=De({chart:O.value,title:R.value.title.text?qt.value:null,legend:R.value.legend.show?Jt.value:null,source:Yt.value,noTitle:Xt.value}),n=R.value.title.text?24:0,r=R.value.legend.show?24:0;cancelAnimationFrame(bn),bn=requestAnimationFrame(async()=>{K.value=Math.max(.1,e),G.value=Math.max(.1,(Math.max(.1,t)-(n+r))/pn.value.length),$n(),yn.value=!0})}),V.value=O.value.parentNode,B.value.observe(V.value)),$n()}He(()=>{cancelAnimationFrame(bn),X.value!=null&&(cancelAnimationFrame(X.value),X.value=null),B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect())});let{isPrinting:Cn,isImaging:wn,generatePdf:Tn,generateImage:En}=Ce({elementId:`dumbbell_${D.value}`,fileName:R.value.title.text||`vue-ui-dumbbell`,options:N.value.userOptions.print}),Dn=d(()=>N.value.userOptions.show&&!R.value.title.text),H=b({showTable:N.value.table.show});Je(N,()=>{H.value={showTable:N.value.table.show}},{immediate:!0});let U=d(()=>pn.value.map((e,t)=>({...e,start:ne(e.start),end:ne(e.end),id:e.id??`${String(e.name)}__${String(e.start)}__${String(e.end)}__${s()}`}))),On=d(()=>{let e=R.value.grid,t=U.value.flatMap(e=>[e.start,e.end]).map(e=>Number(e)).filter(e=>Number.isFinite(e)),n=t.length?Math.min(...t):0,r=t.length?Math.max(...t):0;return{min:e.scaleMin??Math.min(n,0),max:e.scaleMax??r}}),W=d(()=>ee(On.value.min,On.value.max,R.value.grid.scaleSteps)),G=b(R.value.rowHeight),K=b(R.value.width),{metrics:kn,ready:An,settling:jn,update:Mn}=we({svgRef:z,canMeasure:()=>!N.value.responsive||yn.value,initialMetrics:{scaleLabelsWidth:0,yAxisLabelWidth:0,xAxisLabelHeight:0,timeLabelsHeight:0},measure:e=>({scaleLabelsWidth:e(an.value).textWidth,yAxisLabelWidth:e(rn.value).rotatedWidth,xAxisLabelHeight:e(sn.value).height,timeLabelsHeight:e(on.value).height})});function Nn(){let e=kn.value.scaleLabelsWidth,t=kn.value.yAxisLabelWidth;return e+t+(t?24+F.value.axis.yLabelOffsetX:0)}let Pn=d(()=>kn.value.xAxisLabelHeight+kn.value.timeLabelsHeight),Fn=d(()=>U.value.length);function In(e,t,n){let r=Number(e),i=Number(t.min),a=Number(t.max),o=Number(n.width);if(!Number.isFinite(r)||!Number.isFinite(i)||!Number.isFinite(a)||!Number.isFinite(o))return n.left;let s=a-i;return s<=0?n.left:n.left+(r-i)/s*o}let q=d(()=>{M.value;let e=Nn(),t=R.value.padding,n=F.value.axis.xLabel?F.value.axis.xLabelOffsetY:0,r=G.value*Fn.value-Pn.value-t.top-t.bottom-n,i=r/Fn.value,a=G.value*Fn.value,o=K.value-e-t.left-t.right,s=W.value.ticks.length*(o/W.value.ticks.length);return{left:R.value.padding.left+e,right:K.value-R.value.padding.right,top:R.value.padding.top,bottom:a-R.value.padding.bottom-Pn.value-n,width:o,height:r,rowHeight:i,absoluteHeight:a,widthPlotReference:s}}),J=d(()=>Math.min(G.value/2*.7,I.value.radius)),Ln=b([]),Y=d({get(){let e=q.value,t=W.value;return Ln.value.map((n,r)=>{let i=In(n.start,t,e),a=In(n.endVal,t,e),o=i+(a-i)/2,s=![null,void 0].includes(n.start)&&![null,void 0].includes(n.end)&&n.end>n.start,ee=![null,void 0].includes(n.start)&&![null,void 0].includes(n.end)&&n.end<n.start,te=![null,void 0].includes(n.start)&&![null,void 0].includes(n.end)&&n.end===n.start||[null,void 0].includes(n.start)||[null,void 0].includes(n.end),ne=s?I.value.evaluationColors.positive:ee?I.value.evaluationColors.negative:I.value.evaluationColors.neutral;return{...n,isPositive:s,isNegative:ee,isNeutral:te,evaluationColor:ne,evaluationGrad:`url(#${s?`positive`:ee?`negative`:`neutral`}_grad_${D.value})`,startX:i,endX:a,centerX:o,y:e.top+r*e.rowHeight+e.rowHeight/2}})},set(e){Ln.value=e}});function Rn(){Ln.value=U.value.map(e=>{let t=Number(e.start);return{...e,endVal:Number.isFinite(t)?t:0}})}let X=b(null);Ue(()=>{zn()});function zn(){if(X.value!=null&&(cancelAnimationFrame(X.value),X.value=null),Rn(),!N.value.useAnimation||Ut.value){Y.value=Ln.value.map(e=>{let t=Number(e.end);return{...e,endVal:Number.isFinite(t)?t:e.endVal}});return}let e=Math.max(1,Math.min(100,N.value.animationSpeed||100))/100,t=U.value.map(e=>{let t=Number(e.start),n=Number(e.end),r=Number.isFinite(t)?t:0;return(Number.isFinite(n)?n:r)-r}),n=()=>{let r=!0;Y.value=Ln.value.map((n,i)=>{let a=Number.isFinite(Number(n.end))?Number(n.end):n.endVal,o=n.endVal+t[i]*e,s=t[i]>=0?Math.min(o,a):Math.max(o,a);return s!==a&&(r=!1),{...n,endVal:s}}),r?X.value=null:X.value=requestAnimationFrame(n)};X.value=requestAnimationFrame(n)}let Bn=d(()=>I.value.evaluationColors.enable?[{name:R.value.legend.labelNegative,color:I.value.gradient.show?`url(#negative_grad_${D.value})`:I.value.evaluationColors.negative},{name:R.value.legend.labelNeutral,color:I.value.gradient.show?`url(#neutral_grad_${D.value})`:I.value.evaluationColors.neutral},{name:R.value.legend.labelPositive,color:I.value.gradient.show?`url(#positive_grad_${D.value})`:I.value.evaluationColors.positive}]:[{name:R.value.legend.labelStart,color:I.value.gradient.show?`url(#start_grad_${D.value})`:I.value.startColor},{name:R.value.legend.labelEnd,color:I.value.gradient.show?`url(#end_grad_${D.value})`:I.value.endColor}]),Vn=d(()=>({cy:`donut-div-legend`,backgroundColor:R.value.legend.backgroundColor,color:R.value.legend.color,fontSize:R.value.legend.fontSize,paddingBottom:12,paddingTop:12,fontWeight:R.value.legend.bold?`bold`:``})),Z=d(()=>({head:Y.value.map(e=>({name:e.name})),body:Y.value.map(e=>({start:e.start,end:e.end}))})),Q=d(()=>{let e=[N.value.table.columnNames.series,N.value.table.columnNames.start,N.value.table.columnNames.end,N.value.table.columnNames.progression],t=Z.value.head.map((e,t)=>{let r=n({p:F.value.prefix,v:Z.value.body[t].start,s:F.value.suffix,r:N.value.table.td.roundingValue}),i=n({p:F.value.prefix,v:Z.value.body[t].end,s:F.value.suffix,r:N.value.table.td.roundingValue}),a=n({v:100*(Z.value.body[t].end/Z.value.body[t].start-1),s:`%`,r:N.value.table.td.roundingPercentage});return[{name:e.name},r,i,a]}),r={th:{backgroundColor:N.value.table.th.backgroundColor,color:N.value.table.th.color,outline:N.value.table.th.outline},td:{backgroundColor:N.value.table.td.backgroundColor,color:N.value.table.td.color,outline:N.value.table.td.outline},breakpoint:N.value.table.responsiveBreakpoint};return{colNames:[N.value.table.columnNames.series,N.value.table.columnNames.start,N.value.table.columnNames.end,N.value.table.columnNames.progression],head:e,body:t,config:r}});function Hn(e=null){ze(()=>{let t=Z.value.head.map((e,t)=>[[e.name],[Z.value.body[t].start],[Z.value.body[t].end]]),n=[[R.value.title.text],[R.value.title.subtitle.text],[[N.value.table.columnNames.series],[N.value.table.columnNames.start],[N.value.table.columnNames.end]]].concat(t),i=r(n);e?e(i):ie({csvContent:i,title:R.value.title.text||`vue-ui-dumbbell`})})}let $=b(!1);function Un(e){$.value=e,Kt.value+=1}function Wn(){return U.value}function Gn(){H.value.showTable=!H.value.showTable}let Kn=b(!1);function qn(){Kn.value=!Kn.value}let Jn=me(O,()=>R.value.title.text),Yn=d(()=>W.value.ticks),Xn=d(()=>({start:0,end:Yn.value.length}));Te({timeLabelsEls:on,timeLabels:Yn,slicer:Xn,configRef:N,rotationPath:[`style`,`chart`,`labels`,`xAxisLabels`,`rotation`],autoRotatePath:[`style`,`chart`,`labels`,`xAxisLabels`,`autoRotate`,`enable`],isAutoSize:!1,width:K,height:G,targetClass:`.vue-ui-dumbbell-scale-label`,rotation:F.value.xAxisLabels.autoRotate.angle});function Zn({rowHeight:e,fontSize:t,showProgression:n}){if(!n)return!1;let r=e/3,i=e/1.3;return Math.abs(i-r)<t*1.2}let Qn=(()=>{let e=null,t=0;return n=>{n===M.value?(e=null,t=0):e===null||e!==n?(e=n,t=1):(t+=1,t>=1&&(M.value=n,e=null,t=0))}})(),$n=Ee(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{let e=Zn({rowHeight:q.value.rowHeight,fontSize:F.value.yAxisLabels.fontSize,showProgression:F.value.yAxisLabels.showProgression});Qn(e)})})},100);function er({datapoint:e,seriesIndex:t}){k.value=t,A.value=e,N.value.events.datapointEnter&&N.value.events.datapointEnter({datapoint:e,seriesIndex:t})}function tr({datapoint:e,seriesIndex:t}){k.value=null,A.value=null,N.value.events.datapointLeave&&N.value.events.datapointLeave({datapoint:e,seriesIndex:t})}function nr({datapoint:e,seriesIndex:t}){N.value.events.datapointClick&&N.value.events.datapointClick({datapoint:e,seriesIndex:t}),Wt(`selectDatapoint`,{...e,seriesIndex:t})}let rr=d(()=>{if(A.value===null)return 0;let e=![null,void 0].includes(A.value.start),t=![null,void 0].includes(A.value.end);return e&&t?Math.min(A.value.startX,A.value.endX)+Math.abs(A.value.startX-A.value.endX)/2:e&&!t?A.value.startX:t&&!e?A.value.endX:null}),ir=d(()=>{if(A.value===null)return``;let e=![null,void 0].includes(A.value.start),t=![null,void 0].includes(A.value.end),r=``,i=``;return e&&(r=c(F.value.formatter,A.value.start,n({p:F.value.prefix,v:A.value.start,s:F.value.suffix,r:F.value.startLabels.rounding}),{datapoint:A.value,seriesIndex:k.value})),t&&(i=c(F.value.formatter,A.value.end,n({p:F.value.prefix,v:A.value.end,s:F.value.suffix,r:F.value.startLabels.rounding}),{datapoint:A.value,seriesIndex:k.value})),e&&t?`${r} → ${i}`:e&&!t?r:t&&!e?i:``}),ar=d(()=>ve({config:N,style:R,mutableConfig:H,dialog:Vt,accordion:It,isFullscreen:$,parent:O,maxWidth:800,isCursorPointer:un}));Je(()=>H.value.showTable,e=>_e(e,N,tn));function or(){H.value.showTable=!1,nn.value&&nn.value.setTableIconState(!1)}let sr=d(()=>Bn.value.map(e=>({...e,shape:`circle`}))),cr=d(()=>R.value.backgroundColor),lr=d(()=>R.value.legend),ur=d(()=>R.value.title),{isCallbackImaging:dr,isCallbackSvg:fr,generateSvg:pr,onGenerateImage:mr}=ge({svg:z,title:ur,legend:lr,legendItems:sr,backgroundColor:cr,getSvgCallback:()=>N.value.userOptions.callbacks.svg,generateImage:En});async function hr(){Wt(`copyAlt`,{config:N.value,dataset:Y.value}),N.value.userOptions.callbacks.altCopy?await Promise.resolve(N.value.userOptions.callbacks.altCopy({config:N.value,dataset:Y.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function gr(e){let t=Y.value.length;return t?(e%t+t)%t:null}function _r(){if(j.value!==null){let e=Y.value[j.value];e&&tr({datapoint:e,seriesIndex:j.value})}j.value=null,k.value=null,A.value=null}function vr(){j.value=null,cn.value=!0}function yr(){_r(),cn.value=!1}function br(e){if(!z.value||Kn.value||document.activeElement!==z.value||!Y.value.length)return;let t=[`ArrowUp`,`ArrowLeft`].includes(e.key),n=[`ArrowDown`,`ArrowRight`].includes(e.key),r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){_r();return}if(r){if(j.value===null)return;let e=Y.value[j.value];if(!e)return;nr({datapoint:e,seriesIndex:j.value});return}let a=j.value;a=a===null?n?0:Y.value.length-1:gr(a+(n?1:-1));let o=Y.value[a];o&&(j.value=a,er({datapoint:o,seriesIndex:a}))}let xr=d(()=>({head:Q.value.head,body:Q.value.body.map(e=>[e[0]?.name??``,e[1],e[2],e[3]]),caption:N.value.a11y.translations.tableCaption,notice:N.value.a11y.translations.tableAvailable}));return fe({getData:Wn,getImage:Jn,generatePdf:Tn,generateCsv:Hn,generateImage:En,generateSvg:pr,toggleTable:Gn,toggleAnnotator:qn,toggleFullscreen:Un,copyAlt:hr}),Je(()=>[K.value,G.value,M.value,F.value,R.value,N.value.style.fontFamily,E.dataset,yn.value,an.value,on.value,sn.value,rn.value],Mn,{flush:`post`,deep:!0}),(e,t)=>(y(),m(`div`,{ref_key:`dumbbellChart`,ref:O,class:Be(`vue-data-ui-component vue-ui-dumbbell ${$.value?`vue-data-ui-wrapper-fullscreen`:``}`),style:v(`font-family:${N.value.style.fontFamily};width:100%; text-align:center;background:${R.value.backgroundColor};${N.value.responsive?`height:100%`:``}`),id:`dumbbell_${D.value}`,onMouseenter:t[1]||=()=>w(gn)(!0),onMouseleave:t[2]||=()=>w(gn)(!1)},[h(`div`,{id:`chart-instructions-${D.value}`,class:`sr-only`},[h(`p`,null,C(N.value.a11y.translations.keyboardNavigation),1)],8,Qe),xr.value.body.length?(y(),f(Oe,{key:0,uid:D.value,head:xr.value.head,body:xr.value.body,caption:xr.value.caption,notice:xr.value.notice},null,8,[`uid`,`head`,`body`,`caption`,`notice`])):p(``,!0),N.value.userOptions.buttons.annotator?(y(),f(w(Rt),{key:1,svgRef:w(z),backgroundColor:R.value.backgroundColor,color:R.value.color,active:Kn.value,isCursorPointer:un.value,palette:N.value.userOptions.annotatorPalette,onClose:qn},Fe({_:2},[x(w(be),t=>({name:t,fn:T(n=>[S(e.$slots,t,Ve(Le(w(ye)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):p(``,!0),Dn.value?(y(),m(`div`,{key:2,ref_key:`noTitle`,ref:Xt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):p(``,!0),R.value.title.text?(y(),m(`div`,{key:3,ref_key:`chartTitle`,ref:qt,style:`width:100%;background:transparent;padding-bottom:24px`},[(y(),f(he,{key:`title_${Zt.value}`,config:{title:{cy:`donut-div-title`,...R.value.title},subtitle:{cy:`donut-div-subtitle`,...R.value.title.subtitle}}},null,8,[`config`]))],512)):p(``,!0),h(`div`,{id:`legend-top-${D.value}`},null,8,$e),N.value.userOptions.show&&Gt.value&&(w(_n)||w(hn))?(y(),f(w(zt),{ref_key:`userOptionsRef`,ref:nn,key:`user_option_${Kt.value}`,backgroundColor:R.value.backgroundColor,color:R.value.color,isPrinting:w(Cn),isImaging:w(wn),uid:D.value,hasPdf:N.value.userOptions.buttons.pdf,hasXls:N.value.userOptions.buttons.csv,hasImg:N.value.userOptions.buttons.img,hasSvg:N.value.userOptions.buttons.svg,hasTable:N.value.userOptions.buttons.table,hasFullscreen:N.value.userOptions.buttons.fullscreen,hasAltCopy:N.value.userOptions.buttons.altCopy,isFullscreen:$.value,titles:{...N.value.userOptions.buttonTitles},chartElement:O.value,position:N.value.userOptions.position,hasAnnotator:N.value.userOptions.buttons.annotator,isAnnotation:Kn.value,callbacks:N.value.userOptions.callbacks,printScale:N.value.userOptions.print.scale,tableDialog:N.value.table.useDialog,isCursorPointer:un.value,onToggleFullscreen:Un,onGeneratePdf:w(Tn),onGenerateCsv:Hn,onGenerateImage:w(mr),onGenerateSvg:w(pr),onToggleTable:Gn,onToggleAnnotator:qn,onCopyAlt:hr,style:v({visibility:w(_n)?w(hn)?`visible`:`hidden`:`visible`})},Fe({_:2},[x(w(xe)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:T(n=>[S(e.$slots,t,Ve(Le(w(Se)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasFullscreen.hasAltCopy.isFullscreen.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):p(``,!0),h(`div`,et,[(y(),m(`svg`,{ref_key:`svgRef`,ref:z,xmlns:w(ae),class:Be({"vue-data-ui-fullscreen--on":$.value,"vue-data-ui-fulscreen--off":!$.value}),viewBox:`0 0 ${K.value} ${q.value.absoluteHeight<=0?10:q.value.absoluteHeight}`,style:v(`max-width:100%; overflow: visible; background:transparent;color:${R.value.color};visibility:${w(An)?`visible`:`hidden`}`),"aria-describedby":`chart-instructions-${D.value}`,tabindex:`0`,onFocus:vr,onBlur:yr,onKeydown:br},[g(w(Bt)),S(e.$slots,`svg-underlayer`,{svg:{...q.value,isPrintingImg:w(Cn)||w(wn)||w(dr),isPrintingSvg:w(fr)}},void 0,!0),e.$slots[`chart-background`]?(y(),m(`foreignObject`,{key:0,x:q.value.left,y:q.value.top,width:Math.max(.1,q.value.width),height:Math.max(.1,q.value.height),style:{pointerEvents:`none`}},[S(e.$slots,`chart-background`,{},void 0,!0)],8,nt)):p(``,!0),ln.value.show?(y(),m(`g`,rt,[(y(!0),m(u,null,x(W.value.ticks,(e,t)=>(y(),m(`line`,{x1:q.value.left+t*q.value.width/(W.value.ticks.length-1),x2:q.value.left+t*q.value.width/(W.value.ticks.length-1),y1:q.value.top,y2:q.value.bottom,stroke:ln.value.stroke,"stroke-width":ln.value.strokeWidth,"stroke-dasharray":ln.value.strokeDasharray},null,8,it))),256))])):p(``,!0),P.value.show?(y(),m(`g`,at,[(y(!0),m(u,null,x(U.value,(e,t)=>(y(),m(`line`,{x1:q.value.left,x2:q.value.right,y1:q.value.top+t*q.value.rowHeight,y2:q.value.top+t*q.value.rowHeight,stroke:P.value.stroke,"stroke-width":P.value.strokeWidth,"stroke-dasharray":P.value.strokeDasharray},null,8,ot))),256)),h(`line`,{x1:q.value.left,x2:q.value.right,y1:q.value.bottom,y2:q.value.bottom,stroke:P.value.stroke,"stroke-width":P.value.strokeWidth,"stroke-dasharray":P.value.strokeDasharray},null,8,st)])):p(``,!0),F.value.axis.yLabel?(y(),m(`text`,{key:3,ref_key:`yAxisLabel`,ref:rn,transform:`translate(${F.value.axis.fontSize}, ${q.value.absoluteHeight/2}), rotate(-90)`,"font-size":F.value.axis.fontSize,fill:F.value.axis.color,"text-anchor":`middle`},C(F.value.axis.yLabel),9,ct)):p(``,!0),F.value.yAxisLabels.show?(y(),m(`g`,{key:4,ref_key:`serieLabels`,ref:an},[(y(!0),m(u,null,x(Y.value,(e,t)=>(y(),m(`text`,{class:`vue-ui-dumbbell-serie-name`,key:`serieLabel_${e.id}_${t}`,x:q.value.left-6+F.value.yAxisLabels.offsetX,y:q.value.top+t*q.value.rowHeight+(!F.value.yAxisLabels.showProgression||M.value?q.value.rowHeight/2:q.value.rowHeight/3)+F.value.yAxisLabels.fontSize/3,"font-size":F.value.yAxisLabels.fontSize,fill:F.value.yAxisLabels.color,"font-weight":F.value.yAxisLabels.bold?`bold`:`normal`,"text-anchor":`end`,onMouseenter:n=>er({datapoint:e,seriesIndex:t}),onMouseleave:n=>tr({datapoint:e,seriesIndex:t}),onClick:n=>nr({datapoint:e,seriesIndex:t})},C(e.name)+` `+C(M.value&&F.value.yAxisLabels.showProgression?[null,void 0].includes(e.start)||[null,void 0].includes(e.end)?``:`(${w(c)(F.value.yAxisLabels.formatter,100*(e.end/e.start-1),w(n)({v:100*(e.end/e.start-1),s:`%`,r:F.value.yAxisLabels.rounding}),{datapoint:e})})`:``),41,lt))),128)),F.value.yAxisLabels.showProgression&&!M.value?(y(!0),m(u,{key:0},x(Y.value,(e,t)=>(y(),m(`text`,{class:`vue-ui-dumbbell-serie-value`,x:q.value.left-6+F.value.yAxisLabels.offsetX,y:q.value.top+t*q.value.rowHeight+q.value.rowHeight/1.3+F.value.yAxisLabels.fontSize/3,"font-size":F.value.yAxisLabels.fontSize,fill:F.value.yAxisLabels.color,"text-anchor":`end`,onMouseenter:n=>er({datapoint:e,seriesIndex:t}),onMouseleave:n=>tr({datapoint:e,seriesIndex:t}),onClick:n=>nr({datapoint:e,seriesIndex:t})},C([null,void 0].includes(e.start)||[null,void 0].includes(e.end)?``:w(c)(F.value.yAxisLabels.formatter,100*(e.end/e.start-1),w(n)({v:100*(e.end/e.start-1),s:`%`,r:F.value.yAxisLabels.rounding}),{datapoint:e})),41,ut))),256)):p(``,!0)],512)):p(``,!0),F.value.axis.xLabel?(y(),m(`text`,{key:5,ref_key:`xAxisLabel`,ref:sn,x:q.value.left+q.value.width/2,y:q.value.absoluteHeight-F.value.axis.fontSize/3,"font-size":F.value.axis.fontSize,fill:F.value.axis.color,"text-anchor":`middle`},C(F.value.axis.xLabel),9,dt)):p(``,!0),F.value.xAxisLabels.show?(y(),m(`g`,{key:6,ref_key:`scaleLabels`,ref:on},[(y(!0),m(u,null,x(W.value.ticks,(e,t)=>(y(),m(`text`,{class:`vue-ui-dumbbell-scale-label`,key:`tick_${t}`,transform:`translate(${q.value.left+t*(q.value.width/(W.value.ticks.length-1))}, ${q.value.bottom+F.value.xAxisLabels.fontSize+F.value.xAxisLabels.offsetY}), rotate(${F.value.xAxisLabels.rotation})`,"font-size":F.value.xAxisLabels.fontSize,fill:F.value.xAxisLabels.color,"font-weight":F.value.xAxisLabels.bold?`bold`:`normal`,"text-anchor":F.value.xAxisLabels.rotation>0?`start`:F.value.xAxisLabels.rotation<0?`end`:`middle`},C(w(c)(F.value.formatter,e,w(n)({p:F.value.prefix,v:e,s:F.value.suffix,r:F.value.xAxisLabels.rounding}),{datapoint:e,seriesIndex:t})),9,ft))),128))],512)):p(``,!0),Ye(h(`g`,null,[Ye(h(`path`,{d:`M ${A.value?A.value.startX:q.value.left},${q.value.top} ${A.value?A.value.startX:q.value.left},${q.value.bottom}`,stroke:A.value?I.value.evaluationColors.enable?A.value.evaluationColor:I.value.startColor:`transparent`,"stroke-width":L.value.strokeWidth,"stroke-dasharray":L.value.strokeDasharray,style:v({transition:w(jn)?`none`:`all 0.3s ease-in-out`})},null,12,pt),[[qe,A.value!==null&&![null,void 0].includes(A.value.start)]]),Ye(h(`path`,{d:`M ${A.value?A.value.endX:q.value.left},${q.value.top} ${A.value?A.value.endX:q.value.left},${q.value.bottom}`,stroke:A.value?I.value.evaluationColors.enable?A.value.evaluationColor:I.value.endColor:`transparent`,"stroke-width":L.value.strokeWidth,"stroke-dasharray":L.value.strokeDasharray,style:v({transition:w(jn)?`none`:`all 0.3s ease-in-out`})},null,12,mt),[[qe,A.value!==null&&![null,void 0].includes(A.value.end)]]),Ye(h(`rect`,{x:A.value?Math.min(A.value.startX,A.value.endX):q.value.left,y:q.value.top,height:Math.max(.1,q.value.height),width:A.value?Math.max(.1,Math.abs(A.value.endX-A.value.startX)):0,fill:A.value?w(a)(L.value.rectColor,L.value.rectOpacity):`transparent`,style:v({transition:w(jn)?`none`:`all 0.3s ease-in-out`})},null,12,ht),[[qe,L.value.showRect&&A.value!==null&&![null,void 0].includes(A.value.start)&&![null,void 0].includes(A.value.end)]]),Ye(h(`text`,{transform:`translate(${rr.value==null?0:rr.value}, ${q.value.top-6})`,fill:L.value.labelColor,"font-size":L.value.labelFontSize,"text-anchor":`middle`,style:v({transition:w(jn)?`none`:`all 0.3s ease-in-out`})},C(ir.value),13,gt),[[qe,A.value!==null&&rr.value!==null&&L.value.showLabel]])],512),[[qe,L.value.show&&k.value!==null]]),h(`defs`,null,[g(l,{t:`radial`,id:`start_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.startColor,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.startColor,.1),1],[`100%`,I.value.startColor,1]]},null,8,[`id`,`stops`]),g(l,{t:`radial`,id:`end_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.endColor,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.endColor,.1),1],[`100%`,I.value.endColor,1]]},null,8,[`id`,`stops`]),g(l,{t:`radial`,id:`positive_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.evaluationColors.positive,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.evaluationColors.positive,.1),1],[`100%`,I.value.evaluationColors.positive,1]]},null,8,[`id`,`stops`]),g(l,{t:`radial`,id:`negative_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.evaluationColors.negative,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.evaluationColors.negative,.1),1],[`100%`,I.value.evaluationColors.negative,1]]},null,8,[`id`,`stops`]),g(l,{t:`radial`,id:`neutral_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.evaluationColors.neutral,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.evaluationColors.neutral,.1),1],[`100%`,I.value.evaluationColors.neutral,1]]},null,8,[`id`,`stops`])]),(y(!0),m(u,null,x(Y.value,(e,t)=>(y(),m(`g`,{key:`plot_${t}_${e.id}`},[h(`defs`,null,[g(l,{t:`linear`,id:`grad_pos_${D.value}`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`,stops:[[`0%`,I.value.startColor,1],[`100%`,I.value.endColor,1]]},null,8,[`id`,`stops`]),g(l,{t:`linear`,id:`grad_neg_${D.value}`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`,stops:[[`0%`,I.value.endColor,1],[`100%`,I.value.startColor,1]]},null,8,[`id`,`stops`])]),![void 0,null].includes(e.end)&&![void 0,null].includes(e.start)?(y(),m(`g`,_t,[I.value.link.type===`curved`?(y(),m(`g`,vt,[h(`path`,{d:`M
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Ft as i,Jt as a,Q as o,X as s,_ as ee,at as te,b as ne,i as c,in as re,nt as ie,t as ae,yt as oe,zt as se}from"./lib-rPeBMZrn.js";import{n as ce,t as le}from"./BaseScanner-8NdoBs7B.js";import{n as ue,t as de}from"./useHints-BH9r_0Vd.js";import{t as fe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as pe}from"./resolveChartConfig-CIhClE5R.js";import{t as me}from"./chartImage-DPGnEuYM.js";import{n as he}from"./Title-BliHuXfT.js";import{t as ge}from"./useChartExport-BZts4KFb.js";import{n as _e,t as ve}from"./tableIntegration-CNoJ1CIY.js";import{n as ye,t as be}from"./annotationSlots-BRR85CqJ.js";import{n as xe,t as Se}from"./userOptionsSlots-DYuo-E5m.js";import{t as Ce}from"./usePrinter-sVoTzet1.js";import{t as we}from"./useSvgLabelLayout-D1I8sQUi.js";import{t as Te}from"./useTimeLabelCollider-BTybMUFi.js";import{c as Ee}from"./canvas-lib-22VpOI4_.js";import{t as De}from"./useResponsive-CENUxfEL.js";import{t as l}from"./DefGrad-DKMq1REY.js";import{t as Oe}from"./A11yDataTable-DWNlWXzs.js";import{t as ke}from"./useUserOptionState-CXlFnwPv.js";import{t as Ae}from"./useChartAccessibility-DOMuYJfm.js";import{t as je}from"./Legend-DM0ClX3D.js";import{t as Me}from"./usePrefersMotion-XLHwega2.js";import{t as Ne}from"./vue_ui_dumbbell-BMcxK0N3.js";import{Fragment as u,Teleport as Pe,computed as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createSlots as Fe,createTextVNode as Ie,createVNode as g,defineAsyncComponent as _,guardReactiveProps as Le,mergeProps as Re,nextTick as ze,normalizeClass as Be,normalizeProps as Ve,normalizeStyle as v,onBeforeUnmount as He,onMounted as Ue,openBlock as y,ref as b,renderList as x,renderSlot as S,resolveDynamicComponent as We,shallowRef as Ge,toDisplayString as C,toRefs as Ke,unref as w,vShow as qe,watch as Je,withCtx as T,withDirectives as Ye}from"vue";var Xe=/* @__PURE__ */ e({default:()=>Ft}),Ze=[`id`],Qe=[`id`],$e=[`id`],et={style:{position:`relative`}},tt=[`xmlns`,`viewBox`,`aria-describedby`],nt=[`x`,`y`,`width`,`height`],rt={key:1},it=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],at={key:2},ot=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],st=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],ct=[`transform`,`font-size`,`fill`],lt=[`x`,`y`,`font-size`,`fill`,`font-weight`,`onMouseenter`,`onMouseleave`,`onClick`],ut=[`x`,`y`,`font-size`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],dt=[`x`,`y`,`font-size`,`fill`],ft=[`transform`,`font-size`,`fill`,`font-weight`,`text-anchor`],pt=[`d`,`stroke`,`stroke-width`,`stroke-dasharray`],mt=[`d`,`stroke`,`stroke-width`,`stroke-dasharray`],ht=[`x`,`y`,`height`,`width`,`fill`],gt=[`transform`,`fill`,`font-size`],_t={key:0},vt={key:0},yt=[`d`,`fill`],bt={key:1},xt=[`x`,`y`,`height`,`width`,`fill`],St=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`],Ct=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`],wt={key:7},Tt=[`x`,`y`,`fill`,`font-size`],Et={key:8},Dt=[`x`,`y`,`fill`,`font-size`],Ot=[`x`,`y`,`width`,`height`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],kt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},At={key:5,class:`vue-data-ui-watermark`},jt=[`id`],Mt=[`xmlns`,`height`,`width`],Nt=[`fill`],Pt={style:{display:`flex`,"align-items":`center`}},Ft=/*#__PURE__*/ fe({__name:`vue-ui-dumbbell`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectDatapoint`,`copyAlt`],setup(e,{expose:fe,emit:Xe}){let Ft=_(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),It=_(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),Lt=_(()=>import(`./DataTable-0Vv-aGHD.js`)),Rt=_(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),zt=_(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Bt=_(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),Vt=_(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_dumbbell:Ht}=t(),Ut=Me(),E=e,Wt=Xe,Gt=d({get(){return!!E.dataset&&E.dataset.length},set(e){return e}}),D=b(s()),Kt=b(0),O=b(null),qt=b(null),Jt=b(null),Yt=b(null),Xt=b(null),Zt=b(0),Qt=b(0),$t=b(0),en=b(!1),tn=b(null),nn=b(null),rn=b(null),an=b(null),on=b(null),sn=b(null),k=b(null),A=b(null),j=b(null),cn=b(!1),M=b(!1),N=b(vn()),P=d(()=>N.value.style.chart.grid.horizontalGrid),ln=d(()=>N.value.style.chart.grid.verticalGrid),F=d(()=>N.value.style.chart.labels);d(()=>N.value.style.chart.grid);let I=d(()=>N.value.style.chart.plots),L=d(()=>N.value.style.chart.comparisonLines),R=d(()=>N.value.style.chart);ue({config:()=>N.value,dataset:()=>E.dataset,component:`VueUiDumbbell`,rules:[de.emptyArray,{test:e=>e.length>31,message:[`👀 The number of series is > 31. Consider:`,``,`▶️ Using filters to let users choose a maximum number of series to display.`,``,`▶️ Using multiple instances of the component to display related series.`]}]});let un=d(()=>N.value.userOptions.useCursorPointer),dn=d(()=>re({defaultConfig:{userOptions:{show:!1},table:{show:!1},useAnimation:!1,style:{chart:{backgroundColor:`#99999930`,padding:{top:12,right:12,bottom:12,left:12},grid:{horizontalGrid:{stroke:`#6A6A6A`},verticalGrid:{stroke:`#6A6A6A`}},labels:{axis:{yLabel:``,xLabel:``},xAxisLabels:{show:!1},yAxisLabels:{show:!1},endLabels:{show:!1},startLabels:{show:!1}},legend:{backgroundColor:`transparent`},plots:{endColor:`#969696`,startColor:`#DBDBDB`,stroke:`#6A6A6A`,evaluationColors:{enable:!1}}}}},userConfig:N.value.skeletonConfig??{}})),{loading:fn,FINAL_DATASET:pn,manualLoading:mn}=ce({...Ke(E),FINAL_CONFIG:N,prepareConfig:vn,skeletonDataset:E.config?.skeletonDataset??[{name:`_`,start:21,end:34},{name:`_`,start:13,end:21},{name:`_`,start:8,end:13},{name:`_`,start:5,end:8},{name:`_`,start:3,end:5}],skeletonConfig:re({defaultConfig:N.value,userConfig:dn.value})}),{userOptionsVisible:hn,setUserOptionsVisibility:gn,keepUserOptionState:_n}=ke({config:N.value}),{svgRef:z}=Ae({config:R.value.title});function vn(){return pe(E.config,Ht,Ne)}Je(()=>E.config,e=>{fn.value||(N.value=vn()),hn.value=!N.value.userOptions.showOnChartHover,Sn(),Zt.value+=1,Qt.value+=1,$t.value+=1,N.value.responsive||(G.value=R.value.rowHeight,K.value=R.value.width),H.value.showTable=N.value.table.show},{deep:!0}),Je(()=>pn.value,e=>{Array.isArray(e)&&e.length>0&&(mn.value=!1),Rn(),zn()},{deep:!0});let B=Ge(null),V=Ge(null),yn=b(!1),bn=0;Ue(()=>{en.value=!0,Sn()});let xn=d(()=>N.value.debug);function Sn(){se(E.dataset)?te({componentName:`VueUiDumbbell`,type:`dataset`,debug:xn.value}):E.dataset.forEach((e,t)=>{oe({datasetObject:e,requiredAttributes:[`name`,`start`,`end`]}).forEach(e=>{Gt.value=!1,te({componentName:`VueUiDumbbell`,type:`datasetSerieAttribute`,property:e,index:t,debug:xn.value})})}),N.value.responsive&&(B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect()),B.value=new ResizeObserver(()=>{let{width:e,height:t}=De({chart:O.value,title:R.value.title.text?qt.value:null,legend:R.value.legend.show?Jt.value:null,source:Yt.value,noTitle:Xt.value}),n=R.value.title.text?24:0,r=R.value.legend.show?24:0;cancelAnimationFrame(bn),bn=requestAnimationFrame(async()=>{K.value=Math.max(.1,e),G.value=Math.max(.1,(Math.max(.1,t)-(n+r))/pn.value.length),$n(),yn.value=!0})}),V.value=O.value.parentNode,B.value.observe(V.value)),$n()}He(()=>{cancelAnimationFrame(bn),X.value!=null&&(cancelAnimationFrame(X.value),X.value=null),B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect())});let{isPrinting:Cn,isImaging:wn,generatePdf:Tn,generateImage:En}=Ce({elementId:`dumbbell_${D.value}`,fileName:R.value.title.text||`vue-ui-dumbbell`,options:N.value.userOptions.print}),Dn=d(()=>N.value.userOptions.show&&!R.value.title.text),H=b({showTable:N.value.table.show});Je(N,()=>{H.value={showTable:N.value.table.show}},{immediate:!0});let U=d(()=>pn.value.map((e,t)=>({...e,start:ne(e.start),end:ne(e.end),id:e.id??`${String(e.name)}__${String(e.start)}__${String(e.end)}__${s()}`}))),On=d(()=>{let e=R.value.grid,t=U.value.flatMap(e=>[e.start,e.end]).map(e=>Number(e)).filter(e=>Number.isFinite(e)),n=t.length?Math.min(...t):0,r=t.length?Math.max(...t):0;return{min:e.scaleMin??Math.min(n,0),max:e.scaleMax??r}}),W=d(()=>ee(On.value.min,On.value.max,R.value.grid.scaleSteps)),G=b(R.value.rowHeight),K=b(R.value.width),{metrics:kn,ready:An,settling:jn,update:Mn}=we({svgRef:z,canMeasure:()=>!N.value.responsive||yn.value,initialMetrics:{scaleLabelsWidth:0,yAxisLabelWidth:0,xAxisLabelHeight:0,timeLabelsHeight:0},measure:e=>({scaleLabelsWidth:e(an.value).textWidth,yAxisLabelWidth:e(rn.value).rotatedWidth,xAxisLabelHeight:e(sn.value).height,timeLabelsHeight:e(on.value).height})});function Nn(){let e=kn.value.scaleLabelsWidth,t=kn.value.yAxisLabelWidth;return e+t+(t?24+F.value.axis.yLabelOffsetX:0)}let Pn=d(()=>kn.value.xAxisLabelHeight+kn.value.timeLabelsHeight),Fn=d(()=>U.value.length);function In(e,t,n){let r=Number(e),i=Number(t.min),a=Number(t.max),o=Number(n.width);if(!Number.isFinite(r)||!Number.isFinite(i)||!Number.isFinite(a)||!Number.isFinite(o))return n.left;let s=a-i;return s<=0?n.left:n.left+(r-i)/s*o}let q=d(()=>{M.value;let e=Nn(),t=R.value.padding,n=F.value.axis.xLabel?F.value.axis.xLabelOffsetY:0,r=G.value*Fn.value-Pn.value-t.top-t.bottom-n,i=r/Fn.value,a=G.value*Fn.value,o=K.value-e-t.left-t.right,s=W.value.ticks.length*(o/W.value.ticks.length);return{left:R.value.padding.left+e,right:K.value-R.value.padding.right,top:R.value.padding.top,bottom:a-R.value.padding.bottom-Pn.value-n,width:o,height:r,rowHeight:i,absoluteHeight:a,widthPlotReference:s}}),J=d(()=>Math.min(G.value/2*.7,I.value.radius)),Ln=b([]),Y=d({get(){let e=q.value,t=W.value;return Ln.value.map((n,r)=>{let i=In(n.start,t,e),a=In(n.endVal,t,e),o=i+(a-i)/2,s=![null,void 0].includes(n.start)&&![null,void 0].includes(n.end)&&n.end>n.start,ee=![null,void 0].includes(n.start)&&![null,void 0].includes(n.end)&&n.end<n.start,te=![null,void 0].includes(n.start)&&![null,void 0].includes(n.end)&&n.end===n.start||[null,void 0].includes(n.start)||[null,void 0].includes(n.end),ne=s?I.value.evaluationColors.positive:ee?I.value.evaluationColors.negative:I.value.evaluationColors.neutral;return{...n,isPositive:s,isNegative:ee,isNeutral:te,evaluationColor:ne,evaluationGrad:`url(#${s?`positive`:ee?`negative`:`neutral`}_grad_${D.value})`,startX:i,endX:a,centerX:o,y:e.top+r*e.rowHeight+e.rowHeight/2}})},set(e){Ln.value=e}});function Rn(){Ln.value=U.value.map(e=>{let t=Number(e.start);return{...e,endVal:Number.isFinite(t)?t:0}})}let X=b(null);Ue(()=>{zn()});function zn(){if(X.value!=null&&(cancelAnimationFrame(X.value),X.value=null),Rn(),!N.value.useAnimation||Ut.value){Y.value=Ln.value.map(e=>{let t=Number(e.end);return{...e,endVal:Number.isFinite(t)?t:e.endVal}});return}let e=Math.max(1,Math.min(100,N.value.animationSpeed||100))/100,t=U.value.map(e=>{let t=Number(e.start),n=Number(e.end),r=Number.isFinite(t)?t:0;return(Number.isFinite(n)?n:r)-r}),n=()=>{let r=!0;Y.value=Ln.value.map((n,i)=>{let a=Number.isFinite(Number(n.end))?Number(n.end):n.endVal,o=n.endVal+t[i]*e,s=t[i]>=0?Math.min(o,a):Math.max(o,a);return s!==a&&(r=!1),{...n,endVal:s}}),r?X.value=null:X.value=requestAnimationFrame(n)};X.value=requestAnimationFrame(n)}let Bn=d(()=>I.value.evaluationColors.enable?[{name:R.value.legend.labelNegative,color:I.value.gradient.show?`url(#negative_grad_${D.value})`:I.value.evaluationColors.negative},{name:R.value.legend.labelNeutral,color:I.value.gradient.show?`url(#neutral_grad_${D.value})`:I.value.evaluationColors.neutral},{name:R.value.legend.labelPositive,color:I.value.gradient.show?`url(#positive_grad_${D.value})`:I.value.evaluationColors.positive}]:[{name:R.value.legend.labelStart,color:I.value.gradient.show?`url(#start_grad_${D.value})`:I.value.startColor},{name:R.value.legend.labelEnd,color:I.value.gradient.show?`url(#end_grad_${D.value})`:I.value.endColor}]),Vn=d(()=>({cy:`donut-div-legend`,backgroundColor:R.value.legend.backgroundColor,color:R.value.legend.color,fontSize:R.value.legend.fontSize,paddingBottom:12,paddingTop:12,fontWeight:R.value.legend.bold?`bold`:``})),Z=d(()=>({head:Y.value.map(e=>({name:e.name})),body:Y.value.map(e=>({start:e.start,end:e.end}))})),Q=d(()=>{let e=[N.value.table.columnNames.series,N.value.table.columnNames.start,N.value.table.columnNames.end,N.value.table.columnNames.progression],t=Z.value.head.map((e,t)=>{let r=n({p:F.value.prefix,v:Z.value.body[t].start,s:F.value.suffix,r:N.value.table.td.roundingValue}),i=n({p:F.value.prefix,v:Z.value.body[t].end,s:F.value.suffix,r:N.value.table.td.roundingValue}),a=n({v:100*(Z.value.body[t].end/Z.value.body[t].start-1),s:`%`,r:N.value.table.td.roundingPercentage});return[{name:e.name},r,i,a]}),r={th:{backgroundColor:N.value.table.th.backgroundColor,color:N.value.table.th.color,outline:N.value.table.th.outline},td:{backgroundColor:N.value.table.td.backgroundColor,color:N.value.table.td.color,outline:N.value.table.td.outline},breakpoint:N.value.table.responsiveBreakpoint};return{colNames:[N.value.table.columnNames.series,N.value.table.columnNames.start,N.value.table.columnNames.end,N.value.table.columnNames.progression],head:e,body:t,config:r}});function Hn(e=null){ze(()=>{let t=Z.value.head.map((e,t)=>[[e.name],[Z.value.body[t].start],[Z.value.body[t].end]]),n=[[R.value.title.text],[R.value.title.subtitle.text],[[N.value.table.columnNames.series],[N.value.table.columnNames.start],[N.value.table.columnNames.end]]].concat(t),i=r(n);e?e(i):ie({csvContent:i,title:R.value.title.text||`vue-ui-dumbbell`})})}let $=b(!1);function Un(e){$.value=e,Kt.value+=1}function Wn(){return U.value}function Gn(){H.value.showTable=!H.value.showTable}let Kn=b(!1);function qn(){Kn.value=!Kn.value}let Jn=me(O,()=>R.value.title.text),Yn=d(()=>W.value.ticks),Xn=d(()=>({start:0,end:Yn.value.length}));Te({timeLabelsEls:on,timeLabels:Yn,slicer:Xn,configRef:N,rotationPath:[`style`,`chart`,`labels`,`xAxisLabels`,`rotation`],autoRotatePath:[`style`,`chart`,`labels`,`xAxisLabels`,`autoRotate`,`enable`],isAutoSize:!1,width:K,height:G,targetClass:`.vue-ui-dumbbell-scale-label`,rotation:F.value.xAxisLabels.autoRotate.angle});function Zn({rowHeight:e,fontSize:t,showProgression:n}){if(!n)return!1;let r=e/3,i=e/1.3;return Math.abs(i-r)<t*1.2}let Qn=(()=>{let e=null,t=0;return n=>{n===M.value?(e=null,t=0):e===null||e!==n?(e=n,t=1):(t+=1,t>=1&&(M.value=n,e=null,t=0))}})(),$n=Ee(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{let e=Zn({rowHeight:q.value.rowHeight,fontSize:F.value.yAxisLabels.fontSize,showProgression:F.value.yAxisLabels.showProgression});Qn(e)})})},100);function er({datapoint:e,seriesIndex:t}){k.value=t,A.value=e,N.value.events.datapointEnter&&N.value.events.datapointEnter({datapoint:e,seriesIndex:t})}function tr({datapoint:e,seriesIndex:t}){k.value=null,A.value=null,N.value.events.datapointLeave&&N.value.events.datapointLeave({datapoint:e,seriesIndex:t})}function nr({datapoint:e,seriesIndex:t}){N.value.events.datapointClick&&N.value.events.datapointClick({datapoint:e,seriesIndex:t}),Wt(`selectDatapoint`,{...e,seriesIndex:t})}let rr=d(()=>{if(A.value===null)return 0;let e=![null,void 0].includes(A.value.start),t=![null,void 0].includes(A.value.end);return e&&t?Math.min(A.value.startX,A.value.endX)+Math.abs(A.value.startX-A.value.endX)/2:e&&!t?A.value.startX:t&&!e?A.value.endX:null}),ir=d(()=>{if(A.value===null)return``;let e=![null,void 0].includes(A.value.start),t=![null,void 0].includes(A.value.end),r=``,i=``;return e&&(r=c(F.value.formatter,A.value.start,n({p:F.value.prefix,v:A.value.start,s:F.value.suffix,r:F.value.startLabels.rounding}),{datapoint:A.value,seriesIndex:k.value})),t&&(i=c(F.value.formatter,A.value.end,n({p:F.value.prefix,v:A.value.end,s:F.value.suffix,r:F.value.startLabels.rounding}),{datapoint:A.value,seriesIndex:k.value})),e&&t?`${r} → ${i}`:e&&!t?r:t&&!e?i:``}),ar=d(()=>ve({config:N,style:R,mutableConfig:H,dialog:Vt,accordion:It,isFullscreen:$,parent:O,maxWidth:800,isCursorPointer:un}));Je(()=>H.value.showTable,e=>_e(e,N,tn));function or(){H.value.showTable=!1,nn.value&&nn.value.setTableIconState(!1)}let sr=d(()=>Bn.value.map(e=>({...e,shape:`circle`}))),cr=d(()=>R.value.backgroundColor),lr=d(()=>R.value.legend),ur=d(()=>R.value.title),{isCallbackImaging:dr,isCallbackSvg:fr,generateSvg:pr,onGenerateImage:mr}=ge({svg:z,title:ur,legend:lr,legendItems:sr,backgroundColor:cr,getSvgCallback:()=>N.value.userOptions.callbacks.svg,generateImage:En});async function hr(){Wt(`copyAlt`,{config:N.value,dataset:Y.value}),N.value.userOptions.callbacks.altCopy?await Promise.resolve(N.value.userOptions.callbacks.altCopy({config:N.value,dataset:Y.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function gr(e){let t=Y.value.length;return t?(e%t+t)%t:null}function _r(){if(j.value!==null){let e=Y.value[j.value];e&&tr({datapoint:e,seriesIndex:j.value})}j.value=null,k.value=null,A.value=null}function vr(){j.value=null,cn.value=!0}function yr(){_r(),cn.value=!1}function br(e){if(!z.value||Kn.value||document.activeElement!==z.value||!Y.value.length)return;let t=[`ArrowUp`,`ArrowLeft`].includes(e.key),n=[`ArrowDown`,`ArrowRight`].includes(e.key),r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){_r();return}if(r){if(j.value===null)return;let e=Y.value[j.value];if(!e)return;nr({datapoint:e,seriesIndex:j.value});return}let a=j.value;a=a===null?n?0:Y.value.length-1:gr(a+(n?1:-1));let o=Y.value[a];o&&(j.value=a,er({datapoint:o,seriesIndex:a}))}let xr=d(()=>({head:Q.value.head,body:Q.value.body.map(e=>[e[0]?.name??``,e[1],e[2],e[3]]),caption:N.value.a11y.translations.tableCaption,notice:N.value.a11y.translations.tableAvailable}));return fe({getData:Wn,getImage:Jn,generatePdf:Tn,generateCsv:Hn,generateImage:En,generateSvg:pr,toggleTable:Gn,toggleAnnotator:qn,toggleFullscreen:Un,copyAlt:hr}),Je(()=>[K.value,G.value,M.value,F.value,R.value,N.value.style.fontFamily,E.dataset,yn.value,an.value,on.value,sn.value,rn.value],Mn,{flush:`post`,deep:!0}),(e,t)=>(y(),m(`div`,{ref_key:`dumbbellChart`,ref:O,class:Be(`vue-data-ui-component vue-ui-dumbbell ${$.value?`vue-data-ui-wrapper-fullscreen`:``}`),style:v(`font-family:${N.value.style.fontFamily};width:100%; text-align:center;background:${R.value.backgroundColor};${N.value.responsive?`height:100%`:``}`),id:`dumbbell_${D.value}`,onMouseenter:t[1]||=()=>w(gn)(!0),onMouseleave:t[2]||=()=>w(gn)(!1)},[h(`div`,{id:`chart-instructions-${D.value}`,class:`sr-only`},[h(`p`,null,C(N.value.a11y.translations.keyboardNavigation),1)],8,Qe),xr.value.body.length?(y(),f(Oe,{key:0,uid:D.value,head:xr.value.head,body:xr.value.body,caption:xr.value.caption,notice:xr.value.notice},null,8,[`uid`,`head`,`body`,`caption`,`notice`])):p(``,!0),N.value.userOptions.buttons.annotator?(y(),f(w(Rt),{key:1,svgRef:w(z),backgroundColor:R.value.backgroundColor,color:R.value.color,active:Kn.value,isCursorPointer:un.value,palette:N.value.userOptions.annotatorPalette,onClose:qn},Fe({_:2},[x(w(be),t=>({name:t,fn:T(n=>[S(e.$slots,t,Ve(Le(w(ye)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):p(``,!0),Dn.value?(y(),m(`div`,{key:2,ref_key:`noTitle`,ref:Xt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):p(``,!0),R.value.title.text?(y(),m(`div`,{key:3,ref_key:`chartTitle`,ref:qt,style:`width:100%;background:transparent;padding-bottom:24px`},[(y(),f(he,{key:`title_${Zt.value}`,config:{title:{cy:`donut-div-title`,...R.value.title},subtitle:{cy:`donut-div-subtitle`,...R.value.title.subtitle}}},null,8,[`config`]))],512)):p(``,!0),h(`div`,{id:`legend-top-${D.value}`},null,8,$e),N.value.userOptions.show&&Gt.value&&(w(_n)||w(hn))?(y(),f(w(zt),{ref_key:`userOptionsRef`,ref:nn,key:`user_option_${Kt.value}`,backgroundColor:R.value.backgroundColor,color:R.value.color,isPrinting:w(Cn),isImaging:w(wn),uid:D.value,hasPdf:N.value.userOptions.buttons.pdf,hasXls:N.value.userOptions.buttons.csv,hasImg:N.value.userOptions.buttons.img,hasSvg:N.value.userOptions.buttons.svg,hasTable:N.value.userOptions.buttons.table,hasFullscreen:N.value.userOptions.buttons.fullscreen,hasAltCopy:N.value.userOptions.buttons.altCopy,isFullscreen:$.value,titles:{...N.value.userOptions.buttonTitles},chartElement:O.value,position:N.value.userOptions.position,hasAnnotator:N.value.userOptions.buttons.annotator,isAnnotation:Kn.value,callbacks:N.value.userOptions.callbacks,printScale:N.value.userOptions.print.scale,tableDialog:N.value.table.useDialog,isCursorPointer:un.value,onToggleFullscreen:Un,onGeneratePdf:w(Tn),onGenerateCsv:Hn,onGenerateImage:w(mr),onGenerateSvg:w(pr),onToggleTable:Gn,onToggleAnnotator:qn,onCopyAlt:hr,style:v({visibility:w(_n)?w(hn)?`visible`:`hidden`:`visible`})},Fe({_:2},[x(w(xe)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:T(n=>[S(e.$slots,t,Ve(Le(w(Se)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasFullscreen.hasAltCopy.isFullscreen.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):p(``,!0),h(`div`,et,[(y(),m(`svg`,{ref_key:`svgRef`,ref:z,xmlns:w(ae),class:Be({"vue-data-ui-fullscreen--on":$.value,"vue-data-ui-fulscreen--off":!$.value}),viewBox:`0 0 ${K.value} ${q.value.absoluteHeight<=0?10:q.value.absoluteHeight}`,style:v(`max-width:100%; overflow: visible; background:transparent;color:${R.value.color};visibility:${w(An)?`visible`:`hidden`}`),"aria-describedby":`chart-instructions-${D.value}`,tabindex:`0`,onFocus:vr,onBlur:yr,onKeydown:br},[g(w(Bt)),S(e.$slots,`svg-underlayer`,{svg:{...q.value,isPrintingImg:w(Cn)||w(wn)||w(dr),isPrintingSvg:w(fr)}},void 0,!0),e.$slots[`chart-background`]?(y(),m(`foreignObject`,{key:0,x:q.value.left,y:q.value.top,width:Math.max(.1,q.value.width),height:Math.max(.1,q.value.height),style:{pointerEvents:`none`}},[S(e.$slots,`chart-background`,{},void 0,!0)],8,nt)):p(``,!0),ln.value.show?(y(),m(`g`,rt,[(y(!0),m(u,null,x(W.value.ticks,(e,t)=>(y(),m(`line`,{x1:q.value.left+t*q.value.width/(W.value.ticks.length-1),x2:q.value.left+t*q.value.width/(W.value.ticks.length-1),y1:q.value.top,y2:q.value.bottom,stroke:ln.value.stroke,"stroke-width":ln.value.strokeWidth,"stroke-dasharray":ln.value.strokeDasharray},null,8,it))),256))])):p(``,!0),P.value.show?(y(),m(`g`,at,[(y(!0),m(u,null,x(U.value,(e,t)=>(y(),m(`line`,{x1:q.value.left,x2:q.value.right,y1:q.value.top+t*q.value.rowHeight,y2:q.value.top+t*q.value.rowHeight,stroke:P.value.stroke,"stroke-width":P.value.strokeWidth,"stroke-dasharray":P.value.strokeDasharray},null,8,ot))),256)),h(`line`,{x1:q.value.left,x2:q.value.right,y1:q.value.bottom,y2:q.value.bottom,stroke:P.value.stroke,"stroke-width":P.value.strokeWidth,"stroke-dasharray":P.value.strokeDasharray},null,8,st)])):p(``,!0),F.value.axis.yLabel?(y(),m(`text`,{key:3,ref_key:`yAxisLabel`,ref:rn,transform:`translate(${F.value.axis.fontSize}, ${q.value.absoluteHeight/2}), rotate(-90)`,"font-size":F.value.axis.fontSize,fill:F.value.axis.color,"text-anchor":`middle`},C(F.value.axis.yLabel),9,ct)):p(``,!0),F.value.yAxisLabels.show?(y(),m(`g`,{key:4,ref_key:`serieLabels`,ref:an},[(y(!0),m(u,null,x(Y.value,(e,t)=>(y(),m(`text`,{class:`vue-ui-dumbbell-serie-name`,key:`serieLabel_${e.id}_${t}`,x:q.value.left-6+F.value.yAxisLabels.offsetX,y:q.value.top+t*q.value.rowHeight+(!F.value.yAxisLabels.showProgression||M.value?q.value.rowHeight/2:q.value.rowHeight/3)+F.value.yAxisLabels.fontSize/3,"font-size":F.value.yAxisLabels.fontSize,fill:F.value.yAxisLabels.color,"font-weight":F.value.yAxisLabels.bold?`bold`:`normal`,"text-anchor":`end`,onMouseenter:n=>er({datapoint:e,seriesIndex:t}),onMouseleave:n=>tr({datapoint:e,seriesIndex:t}),onClick:n=>nr({datapoint:e,seriesIndex:t})},C(e.name)+` `+C(M.value&&F.value.yAxisLabels.showProgression?[null,void 0].includes(e.start)||[null,void 0].includes(e.end)?``:`(${w(c)(F.value.yAxisLabels.formatter,100*(e.end/e.start-1),w(n)({v:100*(e.end/e.start-1),s:`%`,r:F.value.yAxisLabels.rounding}),{datapoint:e})})`:``),41,lt))),128)),F.value.yAxisLabels.showProgression&&!M.value?(y(!0),m(u,{key:0},x(Y.value,(e,t)=>(y(),m(`text`,{class:`vue-ui-dumbbell-serie-value`,x:q.value.left-6+F.value.yAxisLabels.offsetX,y:q.value.top+t*q.value.rowHeight+q.value.rowHeight/1.3+F.value.yAxisLabels.fontSize/3,"font-size":F.value.yAxisLabels.fontSize,fill:F.value.yAxisLabels.color,"text-anchor":`end`,onMouseenter:n=>er({datapoint:e,seriesIndex:t}),onMouseleave:n=>tr({datapoint:e,seriesIndex:t}),onClick:n=>nr({datapoint:e,seriesIndex:t})},C([null,void 0].includes(e.start)||[null,void 0].includes(e.end)?``:w(c)(F.value.yAxisLabels.formatter,100*(e.end/e.start-1),w(n)({v:100*(e.end/e.start-1),s:`%`,r:F.value.yAxisLabels.rounding}),{datapoint:e})),41,ut))),256)):p(``,!0)],512)):p(``,!0),F.value.axis.xLabel?(y(),m(`text`,{key:5,ref_key:`xAxisLabel`,ref:sn,x:q.value.left+q.value.width/2,y:q.value.absoluteHeight-F.value.axis.fontSize/3,"font-size":F.value.axis.fontSize,fill:F.value.axis.color,"text-anchor":`middle`},C(F.value.axis.xLabel),9,dt)):p(``,!0),F.value.xAxisLabels.show?(y(),m(`g`,{key:6,ref_key:`scaleLabels`,ref:on},[(y(!0),m(u,null,x(W.value.ticks,(e,t)=>(y(),m(`text`,{class:`vue-ui-dumbbell-scale-label`,key:`tick_${t}`,transform:`translate(${q.value.left+t*(q.value.width/(W.value.ticks.length-1))}, ${q.value.bottom+F.value.xAxisLabels.fontSize+F.value.xAxisLabels.offsetY}), rotate(${F.value.xAxisLabels.rotation})`,"font-size":F.value.xAxisLabels.fontSize,fill:F.value.xAxisLabels.color,"font-weight":F.value.xAxisLabels.bold?`bold`:`normal`,"text-anchor":F.value.xAxisLabels.rotation>0?`start`:F.value.xAxisLabels.rotation<0?`end`:`middle`},C(w(c)(F.value.formatter,e,w(n)({p:F.value.prefix,v:e,s:F.value.suffix,r:F.value.xAxisLabels.rounding}),{datapoint:e,seriesIndex:t})),9,ft))),128))],512)):p(``,!0),Ye(h(`g`,null,[Ye(h(`path`,{d:`M ${A.value?A.value.startX:q.value.left},${q.value.top} ${A.value?A.value.startX:q.value.left},${q.value.bottom}`,stroke:A.value?I.value.evaluationColors.enable?A.value.evaluationColor:I.value.startColor:`transparent`,"stroke-width":L.value.strokeWidth,"stroke-dasharray":L.value.strokeDasharray,style:v({transition:w(jn)?`none`:`all 0.3s ease-in-out`})},null,12,pt),[[qe,A.value!==null&&![null,void 0].includes(A.value.start)]]),Ye(h(`path`,{d:`M ${A.value?A.value.endX:q.value.left},${q.value.top} ${A.value?A.value.endX:q.value.left},${q.value.bottom}`,stroke:A.value?I.value.evaluationColors.enable?A.value.evaluationColor:I.value.endColor:`transparent`,"stroke-width":L.value.strokeWidth,"stroke-dasharray":L.value.strokeDasharray,style:v({transition:w(jn)?`none`:`all 0.3s ease-in-out`})},null,12,mt),[[qe,A.value!==null&&![null,void 0].includes(A.value.end)]]),Ye(h(`rect`,{x:A.value?Math.min(A.value.startX,A.value.endX):q.value.left,y:q.value.top,height:Math.max(.1,q.value.height),width:A.value?Math.max(.1,Math.abs(A.value.endX-A.value.startX)):0,fill:A.value?w(a)(L.value.rectColor,L.value.rectOpacity):`transparent`,style:v({transition:w(jn)?`none`:`all 0.3s ease-in-out`})},null,12,ht),[[qe,L.value.showRect&&A.value!==null&&![null,void 0].includes(A.value.start)&&![null,void 0].includes(A.value.end)]]),Ye(h(`text`,{transform:`translate(${rr.value==null?0:rr.value}, ${q.value.top-6})`,fill:L.value.labelColor,"font-size":L.value.labelFontSize,"text-anchor":`middle`,style:v({transition:w(jn)?`none`:`all 0.3s ease-in-out`})},C(ir.value),13,gt),[[qe,A.value!==null&&rr.value!==null&&L.value.showLabel]])],512),[[qe,L.value.show&&k.value!==null]]),h(`defs`,null,[g(l,{t:`radial`,id:`start_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.startColor,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.startColor,.1),1],[`100%`,I.value.startColor,1]]},null,8,[`id`,`stops`]),g(l,{t:`radial`,id:`end_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.endColor,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.endColor,.1),1],[`100%`,I.value.endColor,1]]},null,8,[`id`,`stops`]),g(l,{t:`radial`,id:`positive_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.evaluationColors.positive,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.evaluationColors.positive,.1),1],[`100%`,I.value.evaluationColors.positive,1]]},null,8,[`id`,`stops`]),g(l,{t:`radial`,id:`negative_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.evaluationColors.negative,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.evaluationColors.negative,.1),1],[`100%`,I.value.evaluationColors.negative,1]]},null,8,[`id`,`stops`]),g(l,{t:`radial`,id:`neutral_grad_${D.value}`,fy:`30%`,stops:[[`10%`,w(i)(I.value.evaluationColors.neutral,I.value.gradient.intensity/100),1],[`90%`,w(o)(I.value.evaluationColors.neutral,.1),1],[`100%`,I.value.evaluationColors.neutral,1]]},null,8,[`id`,`stops`])]),(y(!0),m(u,null,x(Y.value,(e,t)=>(y(),m(`g`,{key:`plot_${t}_${e.id}`},[h(`defs`,null,[g(l,{t:`linear`,id:`grad_pos_${D.value}`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`,stops:[[`0%`,I.value.startColor,1],[`100%`,I.value.endColor,1]]},null,8,[`id`,`stops`]),g(l,{t:`linear`,id:`grad_neg_${D.value}`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`,stops:[[`0%`,I.value.endColor,1],[`100%`,I.value.startColor,1]]},null,8,[`id`,`stops`])]),![void 0,null].includes(e.end)&&![void 0,null].includes(e.start)?(y(),m(`g`,_t,[I.value.link.type===`curved`?(y(),m(`g`,vt,[h(`path`,{d:`M
|
|
2
2
|
${e.startX},${e.y+J.value/2}
|
|
3
3
|
C ${e.centerX},${e.y} ${e.centerX},${e.y}
|
|
4
4
|
${e.endX},${e.y+J.value/2}
|