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.
Files changed (138) hide show
  1. package/dist/{PackageVersion-C4ZM3Vf7.js → PackageVersion-BIhjLNBU.js} +1 -1
  2. package/dist/components/vue-ui-3d-bar.js +1 -1
  3. package/dist/components/vue-ui-age-pyramid.js +1 -1
  4. package/dist/components/vue-ui-bullet.js +1 -1
  5. package/dist/components/vue-ui-bump.js +1 -1
  6. package/dist/components/vue-ui-candlestick.js +1 -1
  7. package/dist/components/vue-ui-carousel-table.js +1 -1
  8. package/dist/components/vue-ui-chestnut.js +1 -1
  9. package/dist/components/vue-ui-chord.js +1 -1
  10. package/dist/components/vue-ui-circle-pack.js +1 -1
  11. package/dist/components/vue-ui-cursor.js +1 -1
  12. package/dist/components/vue-ui-dag.js +1 -1
  13. package/dist/components/vue-ui-dashboard.js +1 -1
  14. package/dist/components/vue-ui-digits.js +1 -1
  15. package/dist/components/vue-ui-donut-evolution.js +1 -1
  16. package/dist/components/vue-ui-donut.js +1 -1
  17. package/dist/components/vue-ui-dumbbell.js +1 -1
  18. package/dist/components/vue-ui-flow.js +1 -1
  19. package/dist/components/vue-ui-funnel.js +1 -1
  20. package/dist/components/vue-ui-galaxy.js +1 -1
  21. package/dist/components/vue-ui-gauge.js +1 -1
  22. package/dist/components/vue-ui-geo.js +1 -1
  23. package/dist/components/vue-ui-gizmo.js +1 -1
  24. package/dist/components/vue-ui-graph.js +1 -1
  25. package/dist/components/vue-ui-heatmap.js +1 -1
  26. package/dist/components/vue-ui-hill.js +1 -1
  27. package/dist/components/vue-ui-history-plot.js +1 -1
  28. package/dist/components/vue-ui-horizontal-bar.js +1 -1
  29. package/dist/components/vue-ui-kpi.js +1 -1
  30. package/dist/components/vue-ui-molecule.js +1 -1
  31. package/dist/components/vue-ui-mood-radar.js +1 -1
  32. package/dist/components/vue-ui-nested-donuts.js +1 -1
  33. package/dist/components/vue-ui-onion.js +1 -1
  34. package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
  35. package/dist/components/vue-ui-quadrant.js +1 -1
  36. package/dist/components/vue-ui-quick-chart.js +1 -1
  37. package/dist/components/vue-ui-radar.js +1 -1
  38. package/dist/components/vue-ui-relation-circle.js +1 -1
  39. package/dist/components/vue-ui-ridgeline.js +1 -1
  40. package/dist/components/vue-ui-rings.js +1 -1
  41. package/dist/components/vue-ui-scatter.js +1 -1
  42. package/dist/components/vue-ui-skeleton.js +1 -1
  43. package/dist/components/vue-ui-spark-trend.js +1 -1
  44. package/dist/components/vue-ui-sparkbar.js +1 -1
  45. package/dist/components/vue-ui-sparkgauge.js +1 -1
  46. package/dist/components/vue-ui-sparkhistogram.js +1 -1
  47. package/dist/components/vue-ui-sparkline.js +1 -1
  48. package/dist/components/vue-ui-sparkstackbar.js +1 -1
  49. package/dist/components/vue-ui-stackbar.js +1 -1
  50. package/dist/components/vue-ui-stackline.js +1 -1
  51. package/dist/components/vue-ui-strip-plot.js +1 -1
  52. package/dist/components/vue-ui-table-sparkline.js +1 -1
  53. package/dist/components/vue-ui-table.js +1 -1
  54. package/dist/components/vue-ui-thermometer.js +1 -1
  55. package/dist/components/vue-ui-timer.js +1 -1
  56. package/dist/components/vue-ui-tiremarks.js +1 -1
  57. package/dist/components/vue-ui-treemap.js +1 -1
  58. package/dist/components/vue-ui-vertical-bar.js +1 -1
  59. package/dist/components/vue-ui-waffle.js +1 -1
  60. package/dist/components/vue-ui-wheel.js +1 -1
  61. package/dist/components/vue-ui-word-cloud.js +1 -1
  62. package/dist/components/vue-ui-world.js +1 -1
  63. package/dist/components/vue-ui-xy.js +1 -1
  64. package/dist/package-DwcKiXuI.js +1 -0
  65. package/dist/{render-common-CJz0wn0I.js → render-common-B-s2XJ_I.js} +1 -1
  66. package/dist/ssr/vue-ui-donut.js +1 -1
  67. package/dist/ssr/vue-ui-xy.js +1 -1
  68. package/dist/ssr.js +1 -1
  69. package/dist/style.css.d.ts +2 -0
  70. package/dist/style.d.css.ts +2 -0
  71. package/dist/vue-data-ui-BvHCscNE.js +1 -0
  72. package/dist/vue-data-ui.js +1 -1
  73. package/dist/{vue-ui-3d-bar-CW8ahywt.js → vue-ui-3d-bar-CkHFiFp4.js} +1 -1
  74. package/dist/{vue-ui-age-pyramid-CxMwKICA.js → vue-ui-age-pyramid-vpIjdLg5.js} +1 -1
  75. package/dist/{vue-ui-bullet-ClnewIWQ.js → vue-ui-bullet-rgxGRR1p.js} +1 -1
  76. package/dist/{vue-ui-bump-C6FuNDUg.js → vue-ui-bump-CeDsunDi.js} +1 -1
  77. package/dist/{vue-ui-candlestick-CyewIjJk.js → vue-ui-candlestick-KJHOS5F7.js} +1 -1
  78. package/dist/{vue-ui-carousel-table-D0dD4kai.js → vue-ui-carousel-table-CeI5SIxH.js} +1 -1
  79. package/dist/{vue-ui-chestnut-nS1vjCqH.js → vue-ui-chestnut-CiY-2e77.js} +1 -1
  80. package/dist/{vue-ui-chord-B963Q_26.js → vue-ui-chord-8rk7304-.js} +1 -1
  81. package/dist/{vue-ui-circle-pack-DEY9X3jA.js → vue-ui-circle-pack-BsH09EPG.js} +1 -1
  82. package/dist/{vue-ui-cursor-CNv12HQG.js → vue-ui-cursor-Cpov2m58.js} +1 -1
  83. package/dist/{vue-ui-dag-s3-TMmid.js → vue-ui-dag-BHFL2cUA.js} +1 -1
  84. package/dist/{vue-ui-dashboard-B5zrGAvS.js → vue-ui-dashboard-BxXdhdNJ.js} +1 -1
  85. package/dist/{vue-ui-digits-DXQwmTUx.js → vue-ui-digits-xHOLjA2_.js} +1 -1
  86. package/dist/{vue-ui-donut-DHfOfLBF.js → vue-ui-donut-CR3klUbX.js} +1 -1
  87. package/dist/{vue-ui-donut-CDryub1L.js → vue-ui-donut-Vbp5Xs2-.js} +1 -1
  88. package/dist/{vue-ui-donut-evolution-C5pHSrza.js → vue-ui-donut-evolution-BTmztL3Y.js} +1 -1
  89. package/dist/{vue-ui-dumbbell-CQbGR7yM.js → vue-ui-dumbbell-CDcgKS2A.js} +1 -1
  90. package/dist/{vue-ui-flow-B16Mj6MW.js → vue-ui-flow-kVocPE27.js} +1 -1
  91. package/dist/{vue-ui-funnel-Dh-xi_Qi.js → vue-ui-funnel-CZAdPYqK.js} +1 -1
  92. package/dist/{vue-ui-galaxy-U_ZIP5vm.js → vue-ui-galaxy-hP-9mVlB.js} +1 -1
  93. package/dist/{vue-ui-gauge-Dr4zsf6D.js → vue-ui-gauge-BRabsLkh.js} +1 -1
  94. package/dist/{vue-ui-geo-DFebja0s.js → vue-ui-geo-Dacnp6iw.js} +1 -1
  95. package/dist/{vue-ui-gizmo-CssVcz-O.js → vue-ui-gizmo-Dp3hpHIX.js} +1 -1
  96. package/dist/{vue-ui-graph-BB_97Qz7.js → vue-ui-graph-DHU9hUry.js} +1 -1
  97. package/dist/{vue-ui-heatmap-DEBbVnrg.js → vue-ui-heatmap-kPnmZgWi.js} +1 -1
  98. package/dist/{vue-ui-hill-C1sHz3TI.js → vue-ui-hill-Ddbup7-b.js} +1 -1
  99. package/dist/{vue-ui-history-plot-CsBTJXR3.js → vue-ui-history-plot-CwO2o-2s.js} +1 -1
  100. package/dist/{vue-ui-horizontal-bar-D0kfcpEW.js → vue-ui-horizontal-bar-CvX77vE4.js} +1 -1
  101. package/dist/{vue-ui-kpi-CltKSYUI.js → vue-ui-kpi-CCOOwX_Q.js} +1 -1
  102. package/dist/{vue-ui-molecule-DtoyWWTf.js → vue-ui-molecule-BPGs9Dom.js} +1 -1
  103. package/dist/{vue-ui-mood-radar-ClOxfeH8.js → vue-ui-mood-radar-GJ-lhgI0.js} +1 -1
  104. package/dist/{vue-ui-nested-donuts-CULAXTg1.js → vue-ui-nested-donuts-CrlPwpg8.js} +1 -1
  105. package/dist/{vue-ui-onion-D7zu861i.js → vue-ui-onion-CKmyy-Y_.js} +1 -1
  106. package/dist/{vue-ui-parallel-coordinate-plot-Cjbc-WUG.js → vue-ui-parallel-coordinate-plot-C0UqWt0M.js} +1 -1
  107. package/dist/{vue-ui-quadrant-DWAb_t6r.js → vue-ui-quadrant-CTGFBNo9.js} +1 -1
  108. package/dist/{vue-ui-quick-chart-oDZwgVo8.js → vue-ui-quick-chart-ZBOPZhxA.js} +1 -1
  109. package/dist/{vue-ui-radar-BWG_N0xO.js → vue-ui-radar-B1z3Ux3E.js} +1 -1
  110. package/dist/{vue-ui-relation-circle-BCRiS2n6.js → vue-ui-relation-circle-DqN5N08e.js} +1 -1
  111. package/dist/{vue-ui-ridgeline-VYcGUP_p.js → vue-ui-ridgeline-DcSB5Qef.js} +1 -1
  112. package/dist/{vue-ui-rings-Dl0AjrRj.js → vue-ui-rings-CJqAnf-l.js} +1 -1
  113. package/dist/{vue-ui-scatter-DTa48HvG.js → vue-ui-scatter-THQAeoWs.js} +1 -1
  114. package/dist/{vue-ui-skeleton-C5mGG8hR.js → vue-ui-skeleton-DqmhigQ0.js} +1 -1
  115. package/dist/{vue-ui-spark-trend--frxeJ8f.js → vue-ui-spark-trend-B2Nf1raK.js} +1 -1
  116. package/dist/{vue-ui-sparkbar-BS5v3HMo.js → vue-ui-sparkbar-CamZ_49V.js} +1 -1
  117. package/dist/{vue-ui-sparkgauge-B1TGfXvR.js → vue-ui-sparkgauge-Ffrp_7VV.js} +1 -1
  118. package/dist/{vue-ui-sparkhistogram-Cs97AL6h.js → vue-ui-sparkhistogram-CLfzi3PO.js} +1 -1
  119. package/dist/{vue-ui-sparkline-Bp9J6x7z.js → vue-ui-sparkline-Y-sljnbS.js} +1 -1
  120. package/dist/{vue-ui-sparkstackbar-BVuuRD10.js → vue-ui-sparkstackbar-CYZ-ADO1.js} +1 -1
  121. package/dist/{vue-ui-stackbar-CRuXn3XI.js → vue-ui-stackbar-CQLYm10x.js} +1 -1
  122. package/dist/{vue-ui-stackline-Besmr9vq.js → vue-ui-stackline-VpvF7MRx.js} +1 -1
  123. package/dist/{vue-ui-strip-plot-D-aRJkR7.js → vue-ui-strip-plot-B9Ogpw7K.js} +1 -1
  124. package/dist/{vue-ui-table-D_UdQwV3.js → vue-ui-table-Bi9C3LzP.js} +1 -1
  125. package/dist/{vue-ui-table-sparkline-BdNo8fW_.js → vue-ui-table-sparkline-DEVAL0cR.js} +1 -1
  126. package/dist/{vue-ui-thermometer-TFg1SGY7.js → vue-ui-thermometer-ClN4EO0I.js} +1 -1
  127. package/dist/{vue-ui-timer-BdPksC26.js → vue-ui-timer-nqZxt1vU.js} +1 -1
  128. package/dist/{vue-ui-tiremarks-HWuO-eyj.js → vue-ui-tiremarks-BeJBsgXo.js} +1 -1
  129. package/dist/{vue-ui-treemap-IegiAqaX.js → vue-ui-treemap-FA-yXwmv.js} +1 -1
  130. package/dist/{vue-ui-waffle-BEyGfPks.js → vue-ui-waffle-CO07S6HV.js} +1 -1
  131. package/dist/{vue-ui-wheel-k8GNPGET.js → vue-ui-wheel-BeaSWB4x.js} +1 -1
  132. package/dist/{vue-ui-word-cloud-D9_15Ve7.js → vue-ui-word-cloud-C1OWGFng.js} +1 -1
  133. package/dist/{vue-ui-world-rCp5Vb7u.js → vue-ui-world-CUS_mKgl.js} +1 -1
  134. package/dist/{vue-ui-xy-CFgFg11v.js → vue-ui-xy-6B_K-quN.js} +1 -1
  135. package/dist/{vue-ui-xy-42AXepcQ.js → vue-ui-xy-BigPHE0Q.js} +1 -1
  136. package/package.json +6 -2
  137. package/dist/package-DGRUegc-.js +0 -1
  138. package/dist/vue-data-ui-CxiWUtNw.js +0 -1
@@ -1 +1 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{D as n,Dt as r,Ft as i,Ht as ee,M as te,S as ne,X as re,Zt as a,at as o,et as s,in as c,nt as ie,pt as l,t as ae,w 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{n as pe}from"./resolveChartConfig-CIhClE5R.js";import{t as me}from"./chartImage-DPGnEuYM.js";import{t as he}from"./useChartExport-BZts4KFb.js";import{n as ge,t as _e}from"./tableIntegration-CNoJ1CIY.js";import{n as ve,t as ye}from"./annotationSlots-BRR85CqJ.js";import{n as be,t as xe}from"./userOptionsSlots-DYuo-E5m.js";import{t as Se}from"./usePrinter-sVoTzet1.js";import{t as Ce}from"./DefGrad-DKMq1REY.js";import{t as we}from"./useUserOptionState-CXlFnwPv.js";import{t as Te}from"./useChartAccessibility-DOMuYJfm.js";import{t as Ee}from"./vue_ui_molecule-Bw1UW1Na.js";import{t as De}from"./usePanZoom-BdjP5Suc.js";import{Fragment as Oe,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as ke,createTextVNode as Ae,createVNode as h,defineAsyncComponent as g,guardReactiveProps as _,mergeProps as je,nextTick as v,normalizeClass as Me,normalizeProps as y,normalizeStyle as b,onMounted as Ne,openBlock as x,ref as S,renderList as C,renderSlot as w,resolveDynamicComponent as Pe,toDisplayString as T,toRefs as Fe,unref as E,useCssVars as Ie,watch as D,withCtx as O}from"vue";var Le=/* @__PURE__ */ e({default:()=>Ke}),Re=[`id`],ze={key:1,ref:`noTitle`,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},Be={key:2,style:`width:100%;background:transparent;`},Ve=[`xmlns`,`viewBox`],He=[`width`,`height`],Ue={key:4,class:`vue-data-ui-watermark`},We={key:5,"data-dom-to-png-ignore":``,class:`reset-wrapper`},Ge={key:6,ref:`source`,dir:`auto`},Ke=/*#__PURE__*/ fe({__name:`vue-ui-molecule`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectNode`,`copyAlt`],setup(e,{expose:fe,emit:Le}){Ie(e=>({c14c796a:on.value}));let Ke=g(()=>import(`./Title-BliHuXfT.js`).then(e=>e.t)),qe=g(()=>import(`./Tooltip-C1q0Qoh7.js`)),Je=g(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),Ye=g(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),Xe=g(()=>import(`./DataTable-0Vv-aGHD.js`)),Ze=g(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Qe=g(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),$e=g(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),et=g(()=>import(`./RecursiveLinks-CZtG6uWg.js`)),tt=g(()=>import(`./RecursiveLabels-B0d04xSj.js`)),nt=g(()=>import(`./RecursiveCircles-BftI1kwF.js`)),rt=g(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_molecule:it}=t(),k=e,at=Le,ot=u(()=>!!k.dataset&&k.dataset.length);Ne(()=>{ct()});let st=u(()=>P.value.debug);function ct(){se(k.dataset)&&o({componentName:`VueUiMolecule`,type:`dataset`,debug:st.value})}let A=S(re()),lt=S(!1),j=S(``),M=S(null),ut=S(0),dt=S(0),ft=S(0),pt=S(null),N=S(null),P=S(B()),F=u(()=>P.value.style.chart.tooltip),I=u(()=>P.value.style.chart),L=u(()=>P.value.userOptions);ue({config:()=>P.value,dataset:()=>k.dataset,component:`VueUiMolecule`,rules:[de.emptyArray,{test:e=>e[0]&&e[0].nodes&&e[0].nodes.length===0,message:[`👀 There are no children nodes attached to the root node. Consider:`,``,`▶️ Adding children nodes to the root node.`]},{test:e=>e[0]&&e[0].nodes&&e[0].nodes.length>8,message:[`👀 The number of children nodes > 8, some nodes might overlap. Consider:`,``,`▶️ Grouping data into broader categories.`]}]});let R=u(()=>P.value.userOptions.useCursorPointer),mt=u(()=>c({defaultConfig:{userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,nodes:{stroke:`#6A6A6A`},links:{stroke:`#6A6A6A80`}}}},userConfig:P.value.skeletonConfig??{}})),{loading:ht,FINAL_DATASET:gt}=ce({...Fe(k),FINAL_CONFIG:P,prepareConfig:B,skeletonDataset:k.config?.skeletonDataset??[{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]}]}],skeletonConfig:c({defaultConfig:P.value,userConfig:mt.value})}),{userOptionsVisible:_t,setUserOptionsVisibility:vt,keepUserOptionState:yt}=we({config:P.value}),{svgRef:z}=Te({config:I.value.title});function B(){return pe(k.config,it,Ee)}let bt=a(k.config);D((e,t)=>k.config,e=>{let t=a(newConfig),n=t!==bt;bt=t;let r=B();n?(P.value=r,_t.value=!P.value.userOptions.showOnChartHover,ct(),dt.value+=1,ft.value+=1,U.value.showTable=P.value.table.show,U.value.showTooltip=F.value.show,U.value.showZoom=I.value.zoom.show):(P.value.style.chart.tooltip=r.style.chart.tooltip,U.value.showTooltip=P.value.style.chart.tooltip.show)},{deep:!0});let xt=S(0),St=()=>{xt.value+=1};D([()=>ht.value,()=>gt.value],async([e])=>{e||(await v(),W.value=Ot(),await v(),St(),await v(),Jt({x:0,y:0,width:400,height:400}),Kt(!1))},{flush:`post`,deep:!1});let{isPrinting:V,isImaging:H,generatePdf:Ct,generateImage:wt}=Se({elementId:`cluster_${A.value}`,fileName:I.value.title.text||`vue-ui-molecule`,options:P.value.userOptions.print}),Tt=u(()=>P.value.userOptions.show&&!I.value.title.text),Et=u(()=>oe(P.value.customPalette)),U=S({showTable:P.value.table.show,showDataLabels:!0,showTooltip:F.value.show,showZoom:I.value.zoom.show});D(P,()=>{U.value={showTable:P.value.table.show,showDataLabels:!0,showTooltip:F.value.show,showZoom:I.value.zoom.show}},{immediate:!0});function Dt(e,t=0){return Array.isArray(e)&&e.length>0&&e[0].nodes?Dt(e[0].nodes,t+1):t}function Ot(){let e=Dt(gt.value),t=100,n=t;for(let r=0;r<e;r+=1)t/=1,n+=t;return{height:n,width:n}}let W=S(Ot());function kt(e,t={x:-W.value.width/2.43,y:W.value.height/2},n=W.value.width/1.1,r=24,i=0,a=0,o=`#BBBBBB`,s=0){if(!Array.isArray(e)||e.length===0)return e;let c=te({plot:t,radius:n,sides:e.length,rotation:i});return e.forEach((e,t)=>{let te=c.coordinates[t],ie=e.color?(()=>{let t=ne(e.color);return t.startsWith(`#`)?t:`#${t}`})():null,l;ie?l=ie:s===0?l=o:s===1?(l=Et.value[a]||ee[a]||o,a+=1):l=o,e.polygonPath={coordinates:[te]},e.circleRadius=r,e.color=l,e.strokeWidth=Math.min(I.value.links.strokeWidth/(s+1),r/2),e.uid=re(),Array.isArray(e.nodes)&&e.nodes.length&&(e.nodes=kt(e.nodes,te,n/2.9,r/2.2,i+Math.PI*t/e.nodes.length,a,l,s+1))}),e}function At(e){let t=/* @__PURE__ */ new Set;function n(e){e.forEach(e=>{if(!e.color)return;let r=e.color;/^#?[0-9A-F]{6}$/i.test(r)||(r=ne(r)),r.startsWith(`#`)||(r=`#${r}`),t.add(r),Array.isArray(e.nodes)&&e.nodes.length&&n(e.nodes)})}n(e);let r={};return Array.from(t).forEach(e=>{let t=e.slice(1);r[e]=`gradient_${t}`}),r}let jt=u(()=>At(G.value)),G=u(()=>kt(s(gt.value))),K=S(null);function Mt(e){K.value={datapoint:e,seriesIndex:-1,series:G.value,config:P.value};let t=F.value.customFormat;if(r(t)&&l(()=>t({seriesIndex:-1,datapoint:e,series:G.value,config:P.value})))j.value=t({seriesIndex:-1,datapoint:e,series:G.value,config:P.value});else{let t=``;t+=`<div style="display:flex;align-items:center;gap:3px"><div style="color:${e.color}">⬤</div><div>${e.name}</div></div>`,e.details&&(t+=`<div style="width:100%;border-top:1px solid ${F.value.borderColor};margin-top: 2px">${e.details}</div>`),j.value=`<div style="font-family:inherit">${t}</div>`}}let q=S(null),J=S(null),Nt=S(null);function Pt(e){Nt.value=q.value,q.value=e,e?P.value.events.datapointEnter&&P.value.events.datapointEnter({datapoint:e,seriesIndex:-1}):P.value.events.datapointLeave&&P.value.events.datapointLeave({datapoint:Nt.value||q.value,seriesIndex:-1}),e?(lt.value=!0,Mt(e),J.value=e.uid):(lt.value=!1,j.value=``,J.value=null)}function Ft(e){let t=[];function n(e){e.forEach(e=>{let r={name:e.name,details:e.details||`-`,ancestor:e.ancestor&&e.ancestor.name||`-`,color:e.color||``};t.push(r),e.nodes&&e.nodes.length>0&&n(e.nodes,e.name)})}return n(e),t}let It=u(()=>Ft(G.value)),Y=u(()=>({head:[P.value.table.translations.nodeName,P.value.table.translations.details,P.value.table.translations.ancestor],body:It.value.map((e,t)=>[{color:e.color,name:e.name},e.details,e.ancestor||``]),config:{th:{backgroundColor:P.value.table.th.backgroundColor,color:P.value.table.th.color,outline:P.value.table.th.outline},td:{backgroundColor:P.value.table.td.backgroundColor,color:P.value.table.td.color,outline:P.value.table.td.outline},breakpoint:P.value.table.responsiveBreakpoint},colNames:[P.value.table.translations.nodeName,P.value.table.translations.details,P.value.table.translations.ancestor]}));function Lt(e=null){v(()=>{let t=Y.value.body.map((e,t)=>[[e[0].name],[e[1]],[e[2]]]),r=[[I.value.title.text],[I.value.title.subtitle.text],[[...Y.value.head]]].concat(t),i=n(r);e?e(i):ie({csvContent:i,title:I.value.title.text||`vue-ui-molecule`})})}function Rt(){return G.value}let X=S(!1);function zt(e){X.value=e,ut.value+=1}function Bt(){U.value.showTable=!U.value.showTable}function Vt(){U.value.showDataLabels=!U.value.showDataLabels}function Ht(){U.value.showTooltip=!U.value.showTooltip}function Ut(){U.value.showZoom=!U.value.showZoom}let Z=S(!1);function Wt(){Z.value=!Z.value}let Gt=u(()=>!Z.value&&U.value.showZoom),{viewBox:Q,resetZoom:Kt,isZoom:qt,setInitialViewBox:Jt}=De(z,{x:0,y:0,width:Math.max(10,W.value.width),height:Math.max(10,W.value.height)},I.value.zoom.speed,Gt);function Yt(e){P.value.events.datapointClick&&P.value.events.datapointClick({datapoint:e,seriesIndex:-1}),at(`selectNode`,e)}let Xt=me(M,()=>I.value.title.text),$=u(()=>_e({config:P,style:I,mutableConfig:U,dialog:rt,accordion:Ye,isFullscreen:X,parent:M,maxWidth:800,isCursorPointer:R}));D(()=>U.value.showTable,e=>ge(e,P,pt));function Zt(){U.value.showTable=!1,N.value&&N.value.setTableIconState(!1)}let Qt=u(()=>I.value.backgroundColor),$t=u(()=>I.value.title),{isCallbackImaging:en,isCallbackSvg:tn,generateSvg:nn,onGenerateImage:rn}=he({svg:z,title:$t,legend:null,legendItems:null,backgroundColor:Qt,getSvgCallback:()=>P.value.userOptions.callbacks.svg,generateImage:wt});async function an(){at(`copyAlt`,{config:P.value,dataset:G.value}),P.value.userOptions.callbacks.altCopy?await Promise.resolve(P.value.userOptions.callbacks.altCopy({config:P.value,dataset:G.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}let on=u(()=>I.value.color);return fe({getData:Rt,getImage:Xt,generatePdf:Ct,generateCsv:Lt,generateImage:wt,generateSvg:nn,toggleTable:Bt,toggleLabels:Vt,toggleTooltip:Ht,toggleAnnotator:Wt,toggleFullscreen:zt,toggleZoom:Ut,copyAlt:an}),(e,t)=>(x(),p(`div`,{ref_key:`moleculeChart`,ref:M,class:Me(`vue-data-ui-component vue-ui-molecule ${X.value?`vue-data-ui-wrapper-fullscreen`:``}`),style:b(`font-family:${P.value.style.fontFamily};width:100%; text-align:center;background:${I.value.backgroundColor}`),id:`cluster_${A.value}`,onMouseleave:t[2]||=e=>{q.value=null,J.value=null,E(vt)(!1)},onMouseenter:t[3]||=()=>E(vt)(!0)},[L.value.buttons.annotator&&E(z)?(x(),d(E(Ze),{key:0,svgRef:E(z),backgroundColor:I.value.backgroundColor,color:I.value.color,active:Z.value,isCursorPointer:R.value,onClose:Wt},ke({_:2},[C(E(ye),t=>({name:t,fn:O(n=>[w(e.$slots,t,y(_(E(ve)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`])):f(``,!0),Tt.value?(x(),p(`div`,ze,null,512)):f(``,!0),I.value.title.text?(x(),p(`div`,Be,[(x(),d(E(Ke),{key:`title_${dt.value}`,config:{title:{cy:`molecule-div-title`,...I.value.title},subtitle:{cy:`molecule-div-subtitle`,...I.value.title.subtitle}}},null,8,[`config`]))])):f(``,!0),L.value.show&&ot.value&&(E(yt)||E(_t))?(x(),d(E(Qe),{ref_key:`userOptionsRef`,ref:N,key:`user_options_${ut.value}`,backgroundColor:I.value.backgroundColor,color:I.value.color,isPrinting:E(V),isImaging:E(H),uid:A.value,hasTooltip:L.value.buttons.tooltip&&F.value.show,hasPdf:L.value.buttons.pdf,hasXls:L.value.buttons.csv,hasImg:L.value.buttons.img,hasSvg:L.value.buttons.svg,hasTable:L.value.buttons.table,hasLabel:L.value.buttons.labels,hasFullscreen:L.value.buttons.fullscreen,hasAltCopy:L.value.buttons.altCopy,isTooltip:U.value.showTooltip,titles:{...L.value.buttonTitles},chartElement:M.value,position:L.value.position,hasAnnotator:L.value.buttons.annotator,isAnnotation:Z.value,callbacks:L.value.callbacks,printScale:L.value.print.scale,tableDialog:P.value.table.useDialog,hasZoom:L.value.buttons.zoom,isZoom:U.value.showZoom,isCursorPointer:R.value,onToggleFullscreen:zt,onGeneratePdf:E(Ct),onGenerateCsv:Lt,onGenerateImage:E(rn),onGenerateSvg:E(nn),onToggleTable:Bt,onToggleLabels:Vt,onToggleTooltip:Ht,onToggleAnnotator:Wt,onToggleZoom:Ut,onCopyAlt:an,style:b({visibility:E(yt)?E(_t)?`visible`:`hidden`:`visible`})},ke({_:2},[C(E(be)(e.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionLabels optionFullscreen optionAnnotator optionZoom optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:O(n=>[w(e.$slots,t,y(_(E(xe)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasTooltip.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasLabel.hasFullscreen.hasAltCopy.isTooltip.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.hasZoom.isZoom.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):f(``,!0),(x(),p(`svg`,{ref_key:`svgRef`,ref:z,key:`svg_${xt.value}`,xmlns:E(ae),viewBox:`${E(Q).x} ${E(Q).y} ${E(Q).width} ${E(Q).height}`,class:Me({"vue-data-ui-fullscreen--on":X.value,"vue-data-ui-fulscreen--off":!X.value}),style:b(`overflow: hidden; background:transparent;color:${I.value.color}`)},[h(E($e)),w(e.$slots,`svg-underlayer`,{svg:{...W.value,drawingArea:{...E(Q)},isPrintingImg:E(V)||E(H)||E(en),isPrintingSvg:E(tn)}},void 0,!0),e.$slots[`chart-background`]?(x(),p(`foreignObject`,{key:0,x:0,y:0,width:W.value.width<=0?10:W.value.width,height:W.value.height<=0?10:W.value.height,style:{pointerEvents:`none`}},[w(e.$slots,`chart-background`,{},void 0,!0)],8,He)):f(``,!0),m(`defs`,null,[(x(!0),p(Oe,null,C(Object.keys(jt.value),(e,t)=>(x(),d(Ce,{t:`radial`,id:`gradient_${e}`,key:`gradient_${e}_${t}`,cx:`50%`,cy:`30%`,r:`50%`,fx:`50%`,fy:`50%`,stops:[[`0%`,E(i)(e,.5),1],[`100%`,e,1]]},null,8,[`id`,`stops`]))),128))]),h(E(et),{dataset:G.value,color:I.value.links.stroke,backgroundColor:I.value.backgroundColor,useChildColor:I.value.links.useChildColor},null,8,[`dataset`,`color`,`backgroundColor`,`useChildColor`]),h(E(nt),{dataset:G.value,hoveredUid:J.value,stroke:I.value.nodes.stroke,strokeHovered:I.value.nodes.strokeHovered,onClick:Yt,onHover:Pt},{node:O(({node:t})=>[w(e.$slots,`node`,y(_({node:t})),void 0,!0)]),"node-svg":O(({nodeSvg:t})=>[w(e.$slots,`node-svg`,y(_({nodeSvg:t})),void 0,!0)]),_:3},8,[`dataset`,`hoveredUid`,`stroke`,`strokeHovered`]),U.value.showDataLabels&&!E(ht)?(x(),d(E(tt),{key:1,dataset:G.value,color:I.value.color,hoveredUid:J.value},null,8,[`dataset`,`color`,`hoveredUid`])):f(``,!0),w(e.$slots,`svg`,{svg:{...W.value,drawingArea:{...E(Q)},isPrintingImg:E(V)||E(H)||E(en),isPrintingSvg:E(tn)}},void 0,!0)],14,Ve)),e.$slots.watermark?(x(),p(`div`,Ue,[w(e.$slots,`watermark`,y(_({isPrinting:E(V)||E(H)||E(en)||E(tn)})),void 0,!0)])):f(``,!0),E(qt)?(x(),p(`div`,We,[w(e.$slots,`reset-action`,{reset:E(Kt)},()=>[m(`button`,{"data-cy-reset":``,tabindex:`0`,role:`button`,class:`vue-data-ui-refresh-button`,style:b({background:I.value.backgroundColor,cursor:R.value?`pointer`:`default`}),onClick:t[0]||=e=>E(Kt)(!0)},[h(E(Je),{name:`refresh`,stroke:I.value.color},null,8,[`stroke`])],4)],!0)])):f(``,!0),e.$slots.source?(x(),p(`div`,Ge,[w(e.$slots,`source`,{},void 0,!0)],512)):f(``,!0),h(E(qe),{teleportTo:F.value.teleportTo,show:U.value.showTooltip&&lt.value,backgroundColor:F.value.backgroundColor,color:F.value.color,borderRadius:F.value.borderRadius,borderColor:F.value.borderColor,borderWidth:F.value.borderWidth,fontSize:F.value.fontSize,backgroundOpacity:F.value.backgroundOpacity,position:F.value.position,offsetX:F.value.offsetX,offsetY:F.value.offsetY,parent:M.value,content:j.value,isFullscreen:X.value,isCustom:F.value.customFormat&&typeof F.value.customFormat==`function`,smooth:F.value.smooth,backdropFilter:F.value.backdropFilter,smoothForce:F.value.smoothForce,smoothSnapThreshold:F.value.smoothSnapThreshold},{"tooltip-before":O(()=>[w(e.$slots,`tooltip-before`,y(_({...K.value})),void 0,!0)]),tooltip:O(()=>[w(e.$slots,`tooltip`,y(_({...K.value})),void 0,!0)]),"tooltip-after":O(()=>[w(e.$slots,`tooltip-after`,y(_({...K.value})),void 0,!0)]),_:3},8,[`teleportTo`,`show`,`backgroundColor`,`color`,`borderRadius`,`borderColor`,`borderWidth`,`fontSize`,`backgroundOpacity`,`position`,`offsetX`,`offsetY`,`parent`,`content`,`isFullscreen`,`isCustom`,`smooth`,`backdropFilter`,`smoothForce`,`smoothSnapThreshold`]),ot.value&&L.value.buttons.table?(x(),d(Pe($.value.component),je({key:7},$.value.props,{ref_key:`tableUnit`,ref:pt,onClose:Zt}),ke({content:O(()=>[(x(),d(E(Xe),{key:`table_${ft.value}`,colNames:Y.value.colNames,head:Y.value.head,body:Y.value.body,config:Y.value.config,title:P.value.table.useDialog?``:$.value.title,withCloseButton:!P.value.table.useDialog,isCursorPointer:R.value,onClose:Zt},{th:O(({th:e})=>[m(`div`,null,T(e),1)]),td:O(({td:e})=>[Ae(T(e.name||e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`]))]),_:2},[P.value.table.useDialog?{name:`title`,fn:O(()=>[Ae(T($.value.title),1)]),key:`0`}:void 0,P.value.table.useDialog?{name:`actions`,fn:O(()=>[m(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[1]||=e=>Lt(L.value.callbacks.csv),style:b({cursor:R.value?`pointer`:`default`})},[h(E(Je),{name:`fileCsv`,stroke:$.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):f(``,!0),w(e.$slots,`skeleton`,{},()=>[E(ht)?(x(),d(le,{key:0})):f(``,!0)],!0)],46,Re))}},[[`__scopeId`,`data-v-4bd1b29c`]]);export{Le as n,Ke as t};
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{D as n,Dt as r,Ft as i,Ht as ee,M as te,S as ne,X as re,Zt as a,at as o,et as s,in as c,nt as ie,pt as l,t as ae,w 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{n as pe}from"./resolveChartConfig-CIhClE5R.js";import{t as me}from"./chartImage-DPGnEuYM.js";import{t as he}from"./useChartExport-BZts4KFb.js";import{n as ge,t as _e}from"./tableIntegration-CNoJ1CIY.js";import{n as ve,t as ye}from"./annotationSlots-BRR85CqJ.js";import{n as be,t as xe}from"./userOptionsSlots-DYuo-E5m.js";import{t as Se}from"./usePrinter-sVoTzet1.js";import{t as Ce}from"./DefGrad-DKMq1REY.js";import{t as we}from"./useUserOptionState-CXlFnwPv.js";import{t as Te}from"./useChartAccessibility-DOMuYJfm.js";import{t as Ee}from"./vue_ui_molecule-Bw1UW1Na.js";import{t as De}from"./usePanZoom-BdjP5Suc.js";import{Fragment as Oe,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as ke,createTextVNode as Ae,createVNode as h,defineAsyncComponent as g,guardReactiveProps as _,mergeProps as je,nextTick as v,normalizeClass as Me,normalizeProps as y,normalizeStyle as b,onMounted as Ne,openBlock as x,ref as S,renderList as C,renderSlot as w,resolveDynamicComponent as Pe,toDisplayString as T,toRefs as Fe,unref as E,useCssVars as Ie,watch as D,withCtx as O}from"vue";var Le=/* @__PURE__ */ e({default:()=>Ke}),Re=[`id`],ze={key:1,ref:`noTitle`,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},Be={key:2,style:`width:100%;background:transparent;`},Ve=[`xmlns`,`viewBox`],He=[`width`,`height`],Ue={key:4,class:`vue-data-ui-watermark`},We={key:5,"data-dom-to-png-ignore":``,class:`reset-wrapper`},Ge={key:6,ref:`source`,dir:`auto`},Ke=/*#__PURE__*/ fe({__name:`vue-ui-molecule`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectNode`,`copyAlt`],setup(e,{expose:fe,emit:Le}){Ie(e=>({c14c796a:on.value}));let Ke=g(()=>import(`./Title-BliHuXfT.js`).then(e=>e.t)),qe=g(()=>import(`./Tooltip-C1q0Qoh7.js`)),Je=g(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),Ye=g(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),Xe=g(()=>import(`./DataTable-0Vv-aGHD.js`)),Ze=g(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Qe=g(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),$e=g(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),et=g(()=>import(`./RecursiveLinks-CZtG6uWg.js`)),tt=g(()=>import(`./RecursiveLabels-B0d04xSj.js`)),nt=g(()=>import(`./RecursiveCircles-BftI1kwF.js`)),rt=g(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_molecule:it}=t(),k=e,at=Le,ot=u(()=>!!k.dataset&&k.dataset.length);Ne(()=>{ct()});let st=u(()=>P.value.debug);function ct(){se(k.dataset)&&o({componentName:`VueUiMolecule`,type:`dataset`,debug:st.value})}let A=S(re()),lt=S(!1),j=S(``),M=S(null),ut=S(0),dt=S(0),ft=S(0),pt=S(null),N=S(null),P=S(B()),F=u(()=>P.value.style.chart.tooltip),I=u(()=>P.value.style.chart),L=u(()=>P.value.userOptions);ue({config:()=>P.value,dataset:()=>k.dataset,component:`VueUiMolecule`,rules:[de.emptyArray,{test:e=>e[0]&&e[0].nodes&&e[0].nodes.length===0,message:[`👀 There are no children nodes attached to the root node. Consider:`,``,`▶️ Adding children nodes to the root node.`]},{test:e=>e[0]&&e[0].nodes&&e[0].nodes.length>8,message:[`👀 The number of children nodes > 8, some nodes might overlap. Consider:`,``,`▶️ Grouping data into broader categories.`]}]});let R=u(()=>P.value.userOptions.useCursorPointer),mt=u(()=>c({defaultConfig:{userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,nodes:{stroke:`#6A6A6A`},links:{stroke:`#6A6A6A80`}}}},userConfig:P.value.skeletonConfig??{}})),{loading:ht,FINAL_DATASET:gt}=ce({...Fe(k),FINAL_CONFIG:P,prepareConfig:B,skeletonDataset:k.config?.skeletonDataset??[{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]},{name:`_`,color:`#CACACA`,nodes:[{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`},{name:`_`,color:`#CACACA`}]}]}],skeletonConfig:c({defaultConfig:P.value,userConfig:mt.value})}),{userOptionsVisible:_t,setUserOptionsVisibility:vt,keepUserOptionState:yt}=we({config:P.value}),{svgRef:z}=Te({config:I.value.title});function B(){return pe(k.config,it,Ee)}let bt=a(k.config);D((e,t)=>k.config,e=>{let t=a(newConfig),n=t!==bt;bt=t;let r=B();n?(P.value=r,_t.value=!P.value.userOptions.showOnChartHover,ct(),dt.value+=1,ft.value+=1,U.value.showTable=P.value.table.show,U.value.showTooltip=F.value.show,U.value.showZoom=I.value.zoom.show):(P.value.style.chart.tooltip=r.style.chart.tooltip,U.value.showTooltip=P.value.style.chart.tooltip.show)},{deep:!0});let xt=S(0),St=()=>{xt.value+=1};D([()=>ht.value,()=>gt.value],async([e])=>{e||(await v(),W.value=Ot(),await v(),St(),await v(),Jt({x:0,y:0,width:400,height:400}),Kt(!1))},{flush:`post`,deep:!1});let{isPrinting:V,isImaging:H,generatePdf:Ct,generateImage:wt}=Se({elementId:`cluster_${A.value}`,fileName:I.value.title.text||`vue-ui-molecule`,options:P.value.userOptions.print}),Tt=u(()=>P.value.userOptions.show&&!I.value.title.text),Et=u(()=>oe(P.value.customPalette)),U=S({showTable:P.value.table.show,showDataLabels:!0,showTooltip:F.value.show,showZoom:I.value.zoom.show});D(P,()=>{U.value={showTable:P.value.table.show,showDataLabels:!0,showTooltip:F.value.show,showZoom:I.value.zoom.show}},{immediate:!0});function Dt(e,t=0){return Array.isArray(e)&&e.length>0&&e[0].nodes?Dt(e[0].nodes,t+1):t}function Ot(){let e=Dt(gt.value),t=100,n=t;for(let r=0;r<e;r+=1)t/=1,n+=t;return{height:n,width:n}}let W=S(Ot());function kt(e,t={x:-W.value.width/2.43,y:W.value.height/2},n=W.value.width/1.1,r=24,i=0,a=0,o=`#BBBBBB`,s=0){if(!Array.isArray(e)||e.length===0)return e;let c=te({plot:t,radius:n,sides:e.length,rotation:i});return e.forEach((e,t)=>{let te=c.coordinates[t],ie=e.color?(()=>{let t=ne(e.color);return t.startsWith(`#`)?t:`#${t}`})():null,l;ie?l=ie:s===0?l=o:s===1?(l=Et.value[a]||ee[a]||o,a+=1):l=o,e.polygonPath={coordinates:[te]},e.circleRadius=r,e.color=l,e.strokeWidth=Math.min(I.value.links.strokeWidth/(s+1),r/2),e.uid=re(),Array.isArray(e.nodes)&&e.nodes.length&&(e.nodes=kt(e.nodes,te,n/2.9,r/2.2,i+Math.PI*t/e.nodes.length,a,l,s+1))}),e}function At(e){let t=/* @__PURE__ */ new Set;function n(e){e.forEach(e=>{if(!e.color)return;let r=e.color;/^#?[0-9A-F]{6}$/i.test(r)||(r=ne(r)),r.startsWith(`#`)||(r=`#${r}`),t.add(r),Array.isArray(e.nodes)&&e.nodes.length&&n(e.nodes)})}n(e);let r={};return Array.from(t).forEach(e=>{let t=e.slice(1);r[e]=`gradient_${t}`}),r}let jt=u(()=>At(G.value)),G=u(()=>kt(s(gt.value))),K=S(null);function Mt(e){K.value={datapoint:e,seriesIndex:-1,series:G.value,config:P.value};let t=F.value.customFormat;if(r(t)&&l(()=>t({seriesIndex:-1,datapoint:e,series:G.value,config:P.value})))j.value=t({seriesIndex:-1,datapoint:e,series:G.value,config:P.value});else{let t=``;t+=`<div style="display:flex;align-items:center;gap:3px"><div style="color:${e.color}">⬤</div><div>${e.name}</div></div>`,e.details&&(t+=`<div style="width:100%;border-top:1px solid ${F.value.borderColor};margin-top: 2px">${e.details}</div>`),j.value=`<div style="font-family:inherit">${t}</div>`}}let q=S(null),J=S(null),Nt=S(null);function Pt(e){Nt.value=q.value,q.value=e,e?P.value.events.datapointEnter&&P.value.events.datapointEnter({datapoint:e,seriesIndex:-1}):P.value.events.datapointLeave&&P.value.events.datapointLeave({datapoint:Nt.value||q.value,seriesIndex:-1}),e?(lt.value=!0,Mt(e),J.value=e.uid):(lt.value=!1,j.value=``,J.value=null)}function Ft(e){let t=[];function n(e){e.forEach(e=>{let r={name:e.name,details:e.details||`-`,ancestor:e.ancestor&&e.ancestor.name||`-`,color:e.color||``};t.push(r),e.nodes&&e.nodes.length>0&&n(e.nodes,e.name)})}return n(e),t}let It=u(()=>Ft(G.value)),Y=u(()=>({head:[P.value.table.translations.nodeName,P.value.table.translations.details,P.value.table.translations.ancestor],body:It.value.map((e,t)=>[{color:e.color,name:e.name},e.details,e.ancestor||``]),config:{th:{backgroundColor:P.value.table.th.backgroundColor,color:P.value.table.th.color,outline:P.value.table.th.outline},td:{backgroundColor:P.value.table.td.backgroundColor,color:P.value.table.td.color,outline:P.value.table.td.outline},breakpoint:P.value.table.responsiveBreakpoint},colNames:[P.value.table.translations.nodeName,P.value.table.translations.details,P.value.table.translations.ancestor]}));function Lt(e=null){v(()=>{let t=Y.value.body.map((e,t)=>[[e[0].name],[e[1]],[e[2]]]),r=[[I.value.title.text],[I.value.title.subtitle.text],[[...Y.value.head]]].concat(t),i=n(r);e?e(i):ie({csvContent:i,title:I.value.title.text||`vue-ui-molecule`})})}function Rt(){return G.value}let X=S(!1);function zt(e){X.value=e,ut.value+=1}function Bt(){U.value.showTable=!U.value.showTable}function Vt(){U.value.showDataLabels=!U.value.showDataLabels}function Ht(){U.value.showTooltip=!U.value.showTooltip}function Ut(){U.value.showZoom=!U.value.showZoom}let Z=S(!1);function Wt(){Z.value=!Z.value}let Gt=u(()=>!Z.value&&U.value.showZoom),{viewBox:Q,resetZoom:Kt,isZoom:qt,setInitialViewBox:Jt}=De(z,{x:0,y:0,width:Math.max(10,W.value.width),height:Math.max(10,W.value.height)},I.value.zoom.speed,Gt);function Yt(e){P.value.events.datapointClick&&P.value.events.datapointClick({datapoint:e,seriesIndex:-1}),at(`selectNode`,e)}let Xt=me(M,()=>I.value.title.text),$=u(()=>_e({config:P,style:I,mutableConfig:U,dialog:rt,accordion:Ye,isFullscreen:X,parent:M,maxWidth:800,isCursorPointer:R}));D(()=>U.value.showTable,e=>ge(e,P,pt));function Zt(){U.value.showTable=!1,N.value&&N.value.setTableIconState(!1)}let Qt=u(()=>I.value.backgroundColor),$t=u(()=>I.value.title),{isCallbackImaging:en,isCallbackSvg:tn,generateSvg:nn,onGenerateImage:rn}=he({svg:z,title:$t,legend:null,legendItems:null,backgroundColor:Qt,getSvgCallback:()=>P.value.userOptions.callbacks.svg,generateImage:wt});async function an(){at(`copyAlt`,{config:P.value,dataset:G.value}),P.value.userOptions.callbacks.altCopy?await Promise.resolve(P.value.userOptions.callbacks.altCopy({config:P.value,dataset:G.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}let on=u(()=>I.value.color);return fe({getData:Rt,getImage:Xt,generatePdf:Ct,generateCsv:Lt,generateImage:wt,generateSvg:nn,toggleTable:Bt,toggleLabels:Vt,toggleTooltip:Ht,toggleAnnotator:Wt,toggleFullscreen:zt,toggleZoom:Ut,copyAlt:an}),(e,t)=>(x(),p(`div`,{ref_key:`moleculeChart`,ref:M,class:Me(`vue-data-ui-component vue-ui-molecule ${X.value?`vue-data-ui-wrapper-fullscreen`:``}`),style:b(`font-family:${P.value.style.fontFamily};width:100%; text-align:center;background:${I.value.backgroundColor}`),id:`cluster_${A.value}`,onMouseleave:t[2]||=e=>{q.value=null,J.value=null,E(vt)(!1)},onMouseenter:t[3]||=()=>E(vt)(!0)},[L.value.buttons.annotator&&E(z)?(x(),d(E(Ze),{key:0,svgRef:E(z),backgroundColor:I.value.backgroundColor,color:I.value.color,active:Z.value,isCursorPointer:R.value,onClose:Wt},ke({_:2},[C(E(ye),t=>({name:t,fn:O(n=>[w(e.$slots,t,y(_(E(ve)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`])):f(``,!0),Tt.value?(x(),p(`div`,ze,null,512)):f(``,!0),I.value.title.text?(x(),p(`div`,Be,[(x(),d(E(Ke),{key:`title_${dt.value}`,config:{title:{cy:`molecule-div-title`,...I.value.title},subtitle:{cy:`molecule-div-subtitle`,...I.value.title.subtitle}}},null,8,[`config`]))])):f(``,!0),L.value.show&&ot.value&&(E(yt)||E(_t))?(x(),d(E(Qe),{ref_key:`userOptionsRef`,ref:N,key:`user_options_${ut.value}`,backgroundColor:I.value.backgroundColor,color:I.value.color,isPrinting:E(V),isImaging:E(H),uid:A.value,hasTooltip:L.value.buttons.tooltip&&F.value.show,hasPdf:L.value.buttons.pdf,hasXls:L.value.buttons.csv,hasImg:L.value.buttons.img,hasSvg:L.value.buttons.svg,hasTable:L.value.buttons.table,hasLabel:L.value.buttons.labels,hasFullscreen:L.value.buttons.fullscreen,hasAltCopy:L.value.buttons.altCopy,isTooltip:U.value.showTooltip,titles:{...L.value.buttonTitles},chartElement:M.value,position:L.value.position,hasAnnotator:L.value.buttons.annotator,isAnnotation:Z.value,callbacks:L.value.callbacks,printScale:L.value.print.scale,tableDialog:P.value.table.useDialog,hasZoom:L.value.buttons.zoom,isZoom:U.value.showZoom,isCursorPointer:R.value,onToggleFullscreen:zt,onGeneratePdf:E(Ct),onGenerateCsv:Lt,onGenerateImage:E(rn),onGenerateSvg:E(nn),onToggleTable:Bt,onToggleLabels:Vt,onToggleTooltip:Ht,onToggleAnnotator:Wt,onToggleZoom:Ut,onCopyAlt:an,style:b({visibility:E(yt)?E(_t)?`visible`:`hidden`:`visible`})},ke({_:2},[C(E(be)(e.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionLabels optionFullscreen optionAnnotator optionZoom optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:O(n=>[w(e.$slots,t,y(_(E(xe)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasTooltip.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasLabel.hasFullscreen.hasAltCopy.isTooltip.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.hasZoom.isZoom.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):f(``,!0),(x(),p(`svg`,{ref_key:`svgRef`,ref:z,key:`svg_${xt.value}`,xmlns:E(ae),viewBox:`${E(Q).x} ${E(Q).y} ${E(Q).width} ${E(Q).height}`,class:Me({"vue-data-ui-fullscreen--on":X.value,"vue-data-ui-fulscreen--off":!X.value}),style:b(`overflow: hidden; background:transparent;color:${I.value.color}`)},[h(E($e)),w(e.$slots,`svg-underlayer`,{svg:{...W.value,drawingArea:{...E(Q)},isPrintingImg:E(V)||E(H)||E(en),isPrintingSvg:E(tn)}},void 0,!0),e.$slots[`chart-background`]?(x(),p(`foreignObject`,{key:0,x:0,y:0,width:W.value.width<=0?10:W.value.width,height:W.value.height<=0?10:W.value.height,style:{pointerEvents:`none`}},[w(e.$slots,`chart-background`,{},void 0,!0)],8,He)):f(``,!0),m(`defs`,null,[(x(!0),p(Oe,null,C(Object.keys(jt.value),(e,t)=>(x(),d(Ce,{t:`radial`,id:`gradient_${e}`,key:`gradient_${e}_${t}`,cx:`50%`,cy:`30%`,r:`50%`,fx:`50%`,fy:`50%`,stops:[[`0%`,E(i)(e,.5),1],[`100%`,e,1]]},null,8,[`id`,`stops`]))),128))]),h(E(et),{dataset:G.value,color:I.value.links.stroke,backgroundColor:I.value.backgroundColor,useChildColor:I.value.links.useChildColor},null,8,[`dataset`,`color`,`backgroundColor`,`useChildColor`]),h(E(nt),{dataset:G.value,hoveredUid:J.value,stroke:I.value.nodes.stroke,strokeHovered:I.value.nodes.strokeHovered,onClick:Yt,onHover:Pt},{node:O(({node:t})=>[w(e.$slots,`node`,y(_({node:t})),void 0,!0)]),"node-svg":O(({nodeSvg:t})=>[w(e.$slots,`node-svg`,y(_({nodeSvg:t})),void 0,!0)]),_:3},8,[`dataset`,`hoveredUid`,`stroke`,`strokeHovered`]),U.value.showDataLabels&&!E(ht)?(x(),d(E(tt),{key:1,dataset:G.value,color:I.value.color,hoveredUid:J.value},null,8,[`dataset`,`color`,`hoveredUid`])):f(``,!0),w(e.$slots,`svg`,{svg:{...W.value,drawingArea:{...E(Q)},isPrintingImg:E(V)||E(H)||E(en),isPrintingSvg:E(tn)}},void 0,!0)],14,Ve)),e.$slots.watermark?(x(),p(`div`,Ue,[w(e.$slots,`watermark`,y(_({isPrinting:E(V)||E(H)||E(en)||E(tn)})),void 0,!0)])):f(``,!0),E(qt)?(x(),p(`div`,We,[w(e.$slots,`reset-action`,{reset:E(Kt)},()=>[m(`button`,{"data-cy-reset":``,tabindex:`0`,role:`button`,class:`vue-data-ui-refresh-button`,style:b({background:I.value.backgroundColor,cursor:R.value?`pointer`:`default`}),onClick:t[0]||=e=>E(Kt)(!0)},[h(E(Je),{name:`refresh`,stroke:I.value.color},null,8,[`stroke`])],4)],!0)])):f(``,!0),e.$slots.source?(x(),p(`div`,Ge,[w(e.$slots,`source`,{},void 0,!0)],512)):f(``,!0),h(E(qe),{teleportTo:F.value.teleportTo,show:U.value.showTooltip&&lt.value,backgroundColor:F.value.backgroundColor,color:F.value.color,borderRadius:F.value.borderRadius,borderColor:F.value.borderColor,borderWidth:F.value.borderWidth,fontSize:F.value.fontSize,backgroundOpacity:F.value.backgroundOpacity,position:F.value.position,offsetX:F.value.offsetX,offsetY:F.value.offsetY,parent:M.value,content:j.value,isFullscreen:X.value,isCustom:F.value.customFormat&&typeof F.value.customFormat==`function`,smooth:F.value.smooth,backdropFilter:F.value.backdropFilter,smoothForce:F.value.smoothForce,smoothSnapThreshold:F.value.smoothSnapThreshold},{"tooltip-before":O(()=>[w(e.$slots,`tooltip-before`,y(_({...K.value})),void 0,!0)]),tooltip:O(()=>[w(e.$slots,`tooltip`,y(_({...K.value})),void 0,!0)]),"tooltip-after":O(()=>[w(e.$slots,`tooltip-after`,y(_({...K.value})),void 0,!0)]),_:3},8,[`teleportTo`,`show`,`backgroundColor`,`color`,`borderRadius`,`borderColor`,`borderWidth`,`fontSize`,`backgroundOpacity`,`position`,`offsetX`,`offsetY`,`parent`,`content`,`isFullscreen`,`isCustom`,`smooth`,`backdropFilter`,`smoothForce`,`smoothSnapThreshold`]),ot.value&&L.value.buttons.table?(x(),d(Pe($.value.component),je({key:7},$.value.props,{ref_key:`tableUnit`,ref:pt,onClose:Zt}),ke({content:O(()=>[(x(),d(E(Xe),{key:`table_${ft.value}`,colNames:Y.value.colNames,head:Y.value.head,body:Y.value.body,config:Y.value.config,title:P.value.table.useDialog?``:$.value.title,withCloseButton:!P.value.table.useDialog,isCursorPointer:R.value,onClose:Zt},{th:O(({th:e})=>[m(`div`,null,T(e),1)]),td:O(({td:e})=>[Ae(T(e.name||e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`]))]),_:2},[P.value.table.useDialog?{name:`title`,fn:O(()=>[Ae(T($.value.title),1)]),key:`0`}:void 0,P.value.table.useDialog?{name:`actions`,fn:O(()=>[m(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[1]||=e=>Lt(L.value.callbacks.csv),style:b({cursor:R.value?`pointer`:`default`})},[h(E(Je),{name:`fileCsv`,stroke:$.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):f(``,!0),w(e.$slots,`skeleton`,{},()=>[E(ht)?(x(),d(le,{key:0})):f(``,!0)],!0)],46,Re))}},[[`__scopeId`,`data-v-4bd1b29c`]]);export{Le as n,Ke as t};
@@ -1 +1 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Jt as i,Lt as a,M as ee,X as te,Yt as ne,at as re,i as ie,in as ae,nt as oe,t as se,zt as ce}from"./lib-rPeBMZrn.js";import{n as le,t as ue}from"./BaseScanner-8NdoBs7B.js";import{n as de,t as fe}from"./useHints-BH9r_0Vd.js";import{t as pe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as me}from"./resolveChartConfig-CIhClE5R.js";import{t as he}from"./chartImage-DPGnEuYM.js";import{n as ge}from"./Title-BliHuXfT.js";import{t as _e}from"./useChartExport-BZts4KFb.js";import{n as ve,t as ye}from"./tableIntegration-CNoJ1CIY.js";import{n as be,t as xe}from"./annotationSlots-BRR85CqJ.js";import{n as Se,t as Ce}from"./userOptionsSlots-DYuo-E5m.js";import{t as we}from"./usePrinter-sVoTzet1.js";import{c as Te}from"./canvas-lib-22VpOI4_.js";import{t as Ee}from"./useResponsive-CENUxfEL.js";import{t as De}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"./vue_ui_mood_radar-CXaBdJnv.js";import{Fragment as Ne,Teleport as Pe,computed as o,createBlock as s,createCommentVNode as c,createElementBlock as l,createElementVNode as u,createSlots as Fe,createTextVNode as Ie,createVNode as d,defineAsyncComponent as f,guardReactiveProps as p,mergeProps as Le,nextTick as Re,normalizeClass as ze,normalizeProps as m,normalizeStyle as h,onMounted as Be,openBlock as g,ref as _,renderList as Ve,renderSlot as v,resolveDynamicComponent as He,toDisplayString as y,toRefs as Ue,unref as b,watch as We,withCtx as x}from"vue";var Ge=/* @__PURE__ */ e({default:()=>S}),Ke=[`id`],qe=[`id`],Je=[`id`],Ye={style:{position:`relative`}},Xe=[`xmlns`,`aria-describedby`,`viewBox`],Ze=[`width`,`height`],Qe=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],$e=[`d`,`stroke`,`stroke-width`],et=[`transform`],tt=[`stroke`],nt=[`aria-label`,`fill`],rt=[`transform`],it=[`stroke`],at=[`aria-label`,`fill`],ot=[`transform`],st=[`stroke`],ct=[`aria-label`,`fill`],lt=[`transform`],ut=[`stroke`],dt=[`aria-label`,`fill`],ft=[`transform`],pt=[`stroke`],mt=[`aria-label`,`fill`],ht=[`d`,`stroke`,`stroke-width`,`fill`],gt=[`x1`,`y1`,`x2`,`y2`,`stroke`],_t=[`cx`,`cy`,`fill`,`stroke`],vt=[`cx`,`cy`,`fill`,`stroke`],yt=[`x`,`y`,`fill`,`font-weight`],bt=[`x`,`y`,`fill`],xt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},St={key:5,class:`vue-data-ui-watermark`},Ct=[`id`],wt=[`onClick`,`onKeydown`],Tt={key:0},Et={key:1},S=/*#__PURE__*/ pe({__name:`vue-ui-mood-radar`,props:{config:{type:Object,default(){return{}}},dataset:{type:Object,default(){return{}}}},emits:[`copyAlt`],setup(e,{expose:pe,emit:Ge}){let S=f(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),Dt=f(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),Ot=f(()=>import(`./DataTable-0Vv-aGHD.js`)),kt=f(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),At=f(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),jt=f(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),Mt=f(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_mood_radar:Nt}=t(),C=e,Pt=Ge,w=_(te()),T=_(null),E=_(null),Ft=_(null),It=_(0),Lt=_(0),Rt=_(0),zt=_(null),Bt=_(null),D=_(null),Vt=_(null),Ht=_(null),Ut=_(!1),Wt=_(null),Gt=_(null),O=_(null),Kt=_(!1),qt=o(()=>!!C.dataset&&Object.keys(C.dataset).length),k=_(tn()),A=o(()=>k.value.userOptions),j=o(()=>k.value.style.chart.layout.smileys),M=o(()=>k.value.style.chart.layout),N=o(()=>k.value.style.chart);de({config:()=>k.value,dataset:()=>C.dataset,component:`VueUiMoodRadar`,rules:[fe.noHint]});let P=o(()=>k.value.userOptions.useCursorPointer),Jt=o(()=>ae({defaultConfig:{userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{grid:{stroke:`#6A6A6A`},outerPolygon:{stroke:`#6A6A6A`},dataPolygon:{color:`#6A6A6A`,opacity:30,stroke:`#6A6A6A`},smileys:{colors:{1:`#DBDBDB`,2:`#C4C4C4`,3:`#ADADAD`,4:`#969696`,5:`#808080`}},dataLabel:{color:`transparent`}},legend:{backgroundColor:`transparent`}}}},userConfig:k.value.skeletonConfig??{}})),{loading:Yt,FINAL_DATASET:F}=le({...Ue(C),FINAL_CONFIG:k,prepareConfig:tn,callback:()=>{Promise.resolve().then(async()=>{await Re(),R.value.showTable=k.value.table.show})},skeletonDataset:C.config?.skeletonDataset??{1:1,2:1,3:1,4:1,5:1},skeletonConfig:ae({defaultConfig:k.value,userConfig:Jt.value})});Be(()=>{Ut.value=!0,Zt()});let Xt=o(()=>k.value.debug);function Zt(){if(ce(C.dataset)&&re({componentName:`VueUiMoodRadar`,type:`dataset`,debug:Xt.value}),k.value.responsive){let e=Te(()=>{let{width:e,height:t}=Ee({chart:T.value,title:N.value.title.text?zt.value:null,legend:N.value.legend.show?Bt.value:null,noTitle:Ft.value,source:Ht.value});requestAnimationFrame(()=>{z.value.width=e,z.value.height=t-12})});D.value&&(Vt.value&&D.value.unobserve(Vt.value),D.value.disconnect()),D.value=new ResizeObserver(e),Vt.value=T.value.parentNode,D.value.observe(Vt.value)}}let{userOptionsVisible:Qt,setUserOptionsVisibility:$t,keepUserOptionState:en}=ke({config:k.value}),{svgRef:I}=Ae({config:N.value.title});function tn(){return me(C.config,Nt,Me)}We(()=>C.config,e=>{k.value=tn(),Qt.value=!k.value.userOptions.showOnChartHover,Zt(),It.value+=1,Lt.value+=1,Rt.value+=1,R.value.showTable=k.value.table.show},{deep:!0});let{isPrinting:nn,isImaging:L,generatePdf:rn,generateImage:an}=we({elementId:w.value,fileName:N.value.title.text||`vue-ui-mood-radar`,options:k.value.userOptions.print}),on=o(()=>k.value.userOptions.show&&!N.value.title.text),R=_({showTable:k.value.table.show}),z=_({height:256,width:256}),sn={5:{x:128,y:35},4:{x:218,y:98.5},3:{x:185,y:204},2:{x:70,y:204},1:{x:38.5,y:98.5}},cn=o(()=>{let e={};return pn.value.forEach(t=>{e[t.key]={x:t.x,y:t.y}}),e});function B(e){let t=sn[e],n=cn.value[e]||t;return`translate(${n.x-t.x}, ${n.y-t.y})`}let ln=o(()=>ee({plot:{x:z.value.width/2,y:z.value.height/2},radius:Math.min(z.value.height,z.value.width)*.35,sides:5,rotation:11}));function un({centerX:e,centerY:t,apexX:n,apexY:r,proportion:i,key:a,value:ee}){return{x:e+(n-e)*i,y:t+(r-t)*i,key:a,value:ee}}let dn=o(()=>Math.max(...Object.values(F.value).map(e=>isNaN(e)?0:e))),V=o(()=>Object.values(F.value).reduce((e,t)=>(isNaN(e)?0:e)+(isNaN(t)?0:t),0)),H=o(()=>Object.keys(F.value).map((e,t)=>{let n=typeof F.value[e]!=`number`||isNaN(F.value[e])?0:F.value[e];return{index:t,key:e,value:n,proportion:n/V.value,color:j.value.colors[e]}}).map(e=>({...e,onSelect:()=>U(e.key)})).sort((e,t)=>t.key-e.key)),fn=o(()=>H.value.map((e,t)=>({...e,display:`${ie(M.value.dataLabel.formatter,e.value,n({p:M.value.dataLabel.prefix,v:e.value,s:M.value.dataLabel.suffix,r:M.value.dataLabel.roundingValue}))}${Yt.value?``:` (${n({v:e.proportion*100,s:`%`,r:N.value.legend.roundingPercentage})})`}`}))),pn=o(()=>([`1`,`2`,`3`,`4`,`5`].forEach(e=>{[null,void 0].includes(F.value[e])&&re({componentName:`VueUiMoodRadar`,type:`datasetAttribute`,property:e,debug:Xt.value})}),ln.value.coordinates.map((e,t)=>{let n=un({centerX:z.value.width/2,centerY:z.value.height/2,apexX:e.x,apexY:e.y,proportion:H.value[t].value/dn.value,key:H.value[t].key,value:H.value[t].value});return{...e,plots:n,key:H.value[t].key}}))),mn=o(()=>({cy:`mood-radar-legend`,backgroundColor:N.value.legend.backgroundColor,color:N.value.legend.color,fontSize:N.value.legend.fontSize,paddingBottom:12,fontWeight:N.value.legend.bold?`bold`:``}));function U(e){e===E.value?E.value=null:(E.value=e,K(e))}function W(e){E.value=e;let t=H.value.find(t=>t.key===e);k.value.events.datapointEnter&&k.value.events.datapointEnter({datapoint:t,seriesIndex:t.index})}function G(e){E.value=null;let t=H.value.find(t=>t.key===e);k.value.events.datapointLeave&&k.value.events.datapointLeave({datapoint:t,seriesIndex:t.index})}function K(e){let t=H.value.find(t=>t.key===e);k.value.events.datapointClick&&k.value.events.datapointClick({datapoint:t,seriesIndex:t.index})}let q=o(()=>({head:H.value.map(e=>({name:e.key,color:e.color})),body:H.value.map(e=>isNaN(e.value)?0:e.value)}));function hn(e=null){Re(()=>{let t=q.value.head.map((e,t)=>[[e.name],[q.value.body[t]],[isNaN(q.value.body[t]/V.value)?`-`:q.value.body[t]/V.value*100]]),n=[[N.value.title.text],[N.value.title.subtitle.text],[[``],[`val`],[`%`]]].concat(t),i=r(n);e?e(i):oe({csvContent:i,title:N.value.title.text||`vue-ui-mood-radar`})})}let J=o(()=>({head:[`__SUM__`,Number(V.value.toFixed(k.value.table.td.roundingValue)).toLocaleString(),`100%`],body:q.value.head.map((e,t)=>[{color:e.color,name:e.name},q.value.body[t].toFixed(k.value.table.td.roundingValue),isNaN(q.value.body[t]/V.value)?`-`:(q.value.body[t]/V.value*100).toFixed(k.value.table.td.roundingPercentage)+`%`]),config:{th:{backgroundColor:k.value.table.th.backgroundColor,color:k.value.table.th.color,outline:k.value.table.th.outline},td:{backgroundColor:k.value.table.td.backgroundColor,color:k.value.table.td.color,outline:k.value.table.td.outline},breakpoint:k.value.table.responsiveBreakpoint},colNames:[k.value.table.columnNames.series,k.value.table.columnNames.value,k.value.table.columnNames.percentage]}));function gn(){return H.value}function _n(){R.value.showTable=!R.value.showTable}let Y=_(!1);function vn(e){Y.value=e}let X=_(!1);function yn(){X.value=!X.value}let bn=he(T,()=>N.value.title.text),Z=o(()=>ye({config:k,style:N,mutableConfig:R,dialog:Mt,accordion:Dt,isFullscreen:Y,parent:T,maxWidth:800,isCursorPointer:P}));We(()=>R.value.showTable,e=>ve(e,k,Wt));function xn(){R.value.showTable=!1,Gt.value&&Gt.value.setTableIconState(!1)}let Sn=o(()=>fn.value.map(e=>({...e,name:e.display,shape:`circle`}))),Cn=o(()=>N.value.backgroundColor),wn=o(()=>N.value.legend),Tn=o(()=>N.value.title),{isCallbackImaging:En,isCallbackSvg:Dn,generateSvg:On,onGenerateImage:kn}=_e({svg:I,title:Tn,legend:wn,legendItems:Sn,backgroundColor:Cn,getSvgCallback:()=>k.value.userOptions.callbacks.svg,generateImage:an});async function An(){Pt(`copyAlt`,{config:k.value,dataset:H.value}),k.value.userOptions.callbacks.altCopy?await Promise.resolve(k.value.userOptions.callbacks.altCopy({config:k.value,dataset:H.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}let Q=o(()=>H.value.map(e=>String(e.key)));function jn(){$t(!0)}function Mn(){$t(!1)}function Nn(e){return H.value.find(t=>String(t.key)===String(e))}function Pn(e,t,r){return ie(M.value.dataLabel.formatter,e,n({p:M.value.dataLabel.prefix,v:e,s:M.value.dataLabel.suffix,r:M.value.dataLabel.roundingValue}),{datapoint:r,seriesIndex:t})}function Fn(e){return n({v:V.value?e/V.value*100:0,s:`%`,r:M.value.dataLabel.roundingPercentage})}function $(e){let t=Nn(e);return t?`${e}, ${Pn(t.value,t.index,t)}, ${Fn(t.value)}`:`${e}`}function In(e){let t=Q.value[e];t&&(O.value=e,E.value=t)}function Ln(){Kt.value=!0}function Rn(){O.value=null,E.value=null,Kt.value=!1}function zn(e){if(!I.value||!Q.value.length||X.value||document.activeElement!==I.value)return;let t=[`ArrowLeft`,`ArrowUp`].includes(e.key),n=[`ArrowRight`,`ArrowDown`].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){O.value=null,E.value=null;return}if(r){if(O.value===null)return;let e=Q.value[O.value];if(!e)return;U(e);return}let a=O.value;a===null||a<0||a>=Q.value.length?a=n?0:Q.value.length-1:n?(a+=1,a>=Q.value.length&&(a=0)):t&&(--a,a<0&&(a=Q.value.length-1)),In(a)}function Bn(e,t){let n=e.key===`Enter`||e.key===` `,r=e.key===`Escape`;(n||r)&&(e.preventDefault(),e.stopPropagation(),r?(O.value=null,E.value=null):U(String(t)))}let Vn=o(()=>({headers:J.value?.colNames??[],rows:H.value.map(e=>[String(e.key),Pn(e.value,e.index,e),Fn(e.value)])}));return pe({getData:gn,getImage:bn,generatePdf:rn,generateCsv:hn,generateImage:an,generateSvg:On,toggleTable:_n,toggleAnnotator:yn,toggleFullscreen:vn,copyAlt:An}),(e,t)=>(g(),l(`div`,{class:ze(`vue-data-ui-component vue-ui-mood-radar ${Y.value?`vue-data-ui-wrapper-fullscreen`:``} ${k.value.useCssAnimation?``:`vue-ui-dna`}`),ref_key:`moodRadarChart`,ref:T,id:`${w.value}`,style:h(`font-family:${k.value.style.fontFamily};width:100%; text-align:center;background:${N.value.backgroundColor}`),onMouseenter:jn,onMouseleave:Mn},[u(`div`,{id:`chart-instructions-${w.value}`,class:`sr-only`},[u(`p`,null,y(k.value.a11y.translations.keyboardNavigation),1)],8,qe),Vn.value?.rows?.length?(g(),s(Oe,{key:0,uid:w.value,head:Vn.value.headers,body:Vn.value.rows,notice:k.value.a11y.translations.tableAvailable,caption:k.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):c(``,!0),A.value.buttons.annotator?(g(),s(b(kt),{key:1,svgRef:b(I),backgroundColor:N.value.backgroundColor,color:N.value.color,active:X.value,isCursorPointer:P.value,palette:A.value.annotatorPalette,onClose:yn},Fe({_:2},[Ve(b(xe),t=>({name:t,fn:x(n=>[v(e.$slots,t,m(p(b(be)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):c(``,!0),on.value?(g(),l(`div`,{key:2,ref_key:`noTitle`,ref:Ft,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):c(``,!0),N.value.title.text?(g(),l(`div`,{key:3,ref_key:`chartTitle`,ref:zt,style:`width:100%;background:transparent`},[d(ge,{config:{title:{cy:`mood-radar-title`,...N.value.title},subtitle:{cy:`mood-radar-subtitle`,...N.value.title.subtitle}}},null,8,[`config`])],512)):c(``,!0),u(`div`,{id:`legend-top-${w.value}`},null,8,Je),A.value.show&&qt.value&&(b(en)||b(Qt))?(g(),s(b(At),{key:4,ref_key:`userOptionsRef`,ref:Gt,backgroundColor:N.value.backgroundColor,color:N.value.color,isPrinting:b(nn),isImaging:b(L),uid:w.value,hasPdf:A.value.buttons.pdf,hasXls:A.value.buttons.csv,hasImg:A.value.buttons.img,hasSvg:A.value.buttons.svg,hasTable:A.value.buttons.table,hasFullscreen:A.value.buttons.fullscreen,hasAltCopy:A.value.buttons.altCopy,isFullscreen:Y.value,titles:{...A.value.buttonTitles},chartElement:T.value,position:A.value.position,hasAnnotator:A.value.buttons.annotator,isAnnotation:X.value,callbacks:A.value.callbacks,printScale:A.value.print.scale,tableDialog:k.value.table.useDialog,isCursorPointer:P.value,onToggleFullscreen:vn,onGeneratePdf:b(rn),onGenerateCsv:hn,onGenerateImage:b(kn),onGenerateSvg:b(On),onToggleTable:_n,onToggleAnnotator:yn,onCopyAlt:An,style:h({visibility:b(en)?b(Qt)?`visible`:`hidden`:`visible`})},Fe({_:2},[Ve(b(Se)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:x(n=>[v(e.$slots,t,m(p(b(Ce)(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(`.`))):c(``,!0),u(`div`,Ye,[(g(),l(`svg`,{ref_key:`svgRef`,ref:I,xmlns:b(se),"aria-describedby":`chart-instructions-${w.value}`,viewBox:`0 0 ${z.value.width} ${z.value.height}`,class:ze({"vue-data-ui-fullscreen--on":Y.value,"vue-data-ui-fulscreen--off":!Y.value}),style:h(`overflow:visible;background:transparent;color:${N.value.color}`),tabindex:`0`,onFocus:Ln,onBlur:Rn,onKeydown:zn},[d(b(jt)),v(e.$slots,`svg-underlayer`,{svg:{...z.value,isPrintingImg:b(nn)||b(L)||b(En),isPrintingSvg:b(Dn)}},void 0,!0),e.$slots[`chart-background`]?(g(),l(`foreignObject`,{key:0,x:0,y:0,width:z.value.width,height:z.value.height,style:{pointerEvents:`none`}},[v(e.$slots,`chart-background`,{},void 0,!0)],8,Ze)):c(``,!0),u(`defs`,null,[d(De,{t:`radial`,cx:`50%`,cy:`50%`,r:`50%`,fx:`50%`,fy:`50%`,id:`mood_radar_gradient_${w.value}`,stops:[[`0%`,b(i)(M.value.dataPolygon.color,M.value.dataPolygon.opacity),1],[`100%`,b(i)(b(ne)(M.value.dataPolygon.color,M.value.dataPolygon.gradient.intensity/100),M.value.dataPolygon.opacity),1]]},null,8,[`id`,`stops`])]),(g(!0),l(Ne,null,Ve(ln.value.coordinates,e=>(g(),l(`line`,{x1:z.value.width/2,y1:z.value.height/2,x2:e.x,y2:e.y,stroke:M.value.grid.stroke,"stroke-width":M.value.grid.strokeWidth},null,8,Qe))),256)),u(`path`,{d:ln.value.path,fill:`none`,stroke:M.value.outerPolygon.stroke,"stroke-width":M.value.outerPolygon.strokeWidth,"stroke-linejoin":`round`,"stroke-linecap":`round`},null,8,$e),u(`g`,{transform:B(`5`)},[u(`path`,{fill:`none`,stroke:j.value.colors[5],"stroke-width":`1`,"stroke-linecap":`round`,d:`M119 25A1 1 0 00137 25 1 1 0 00119 25M123 26C124 33 132 33 133 26L123 26M123 22A1 1 0 00126 22 1 1 0 00123 22M130 22A1 1 0 00133 22 1 1 0 00130 22`},null,8,tt),u(`circle`,{role:`button`,class:`vue-ui-mood-radar-trap`,cx:`128`,cy:`25`,r:`20`,"aria-label":$(`5`),fill:E.value===`5`?b(i)(j.value.colors[5],20):`transparent`,onMouseenter:t[0]||=e=>W(`5`),onMouseleave:t[1]||=e=>G(`5`),onClick:t[2]||=e=>K(`5`)},null,40,nt)],8,et),u(`g`,{transform:B(`4`)},[u(`path`,{fill:`none`,stroke:j.value.colors[4],"stroke-width":`1`,"stroke-linecap":`round`,d:`M218 95A1 1 0 00236 95 1 1 0 00218 95M222 97C225 99 229 99 232 97M222 92A1 1 0 00225 92 1 1 0 00222 92M229 92A1 1 0 00232 92 1 1 0 00229 92`},null,8,it),u(`circle`,{class:`vue-ui-mood-radar-trap`,cx:`227`,cy:`95.5`,r:`20`,"aria-label":$(`4`),fill:E.value===`4`?b(i)(j.value.colors[4],20):`transparent`,onMouseenter:t[3]||=e=>W(`4`),onMouseleave:t[4]||=e=>G(`4`),onClick:t[5]||=e=>K(`4`)},null,40,at)],8,rt),u(`g`,{transform:B(`3`)},[u(`path`,{fill:`none`,stroke:j.value.colors[3],"stroke-width":`1`,"stroke-linecap":`round`,d:`M181 213A1 1 0 00199 213 1 1 0 00181 213M185 210A1 1 0 00188 210 1 1 0 00185 210M192 210A1 1 0 00195 210 1 1 0 00192 210M185 215 195 215`},null,8,st),u(`circle`,{class:`vue-ui-mood-radar-trap`,cx:`190`,cy:`213.5`,r:`20`,"aria-label":$(`3`),fill:E.value===`3`?b(i)(j.value.colors[3],20):`transparent`,onMouseenter:t[6]||=e=>W(`3`),onMouseleave:t[7]||=e=>G(`3`),onClick:t[8]||=e=>K(`3`)},null,40,ct)],8,ot),u(`g`,{transform:B(`2`)},[u(`path`,{fill:`none`,stroke:j.value.colors[2],"stroke-width":`1`,"stroke-linecap":`round`,d:`M56 213A1 1 0 0074 213 1 1 0 0056 213M60 216C63 214 67 214 70 216M60 210A1 1 0 0063 210 1 1 0 0060 210M67 210A1 1 0 0070 210 1 1 0 0067 210`},null,8,ut),u(`circle`,{class:`vue-ui-mood-radar-trap`,cx:`65`,cy:`213.5`,r:`20`,"aria-label":$(`2`),fill:E.value===`2`?b(i)(j.value.colors[2],20):`transparent`,onMouseenter:t[9]||=e=>W(`2`),onMouseleave:t[10]||=e=>G(`2`),onClick:t[11]||=e=>K(`2`)},null,40,dt)],8,lt),u(`g`,{transform:B(`1`)},[u(`path`,{fill:`none`,stroke:j.value.colors[1],"stroke-width":`1`,"stroke-linecap":`round`,d:`M20 96A1 1 0 0038 96 1 1 0 0020 96M24 100C25 95 33 95 34 100L24 100M24 93A1 1 0 0027 93 1 1 0 0024 93M31 93A1 1 0 0034 93 1 1 0 0031 93`},null,8,pt),u(`circle`,{class:`vue-ui-mood-radar-trap`,cx:`29`,cy:`95.5`,r:`20`,"aria-label":$(`1`),fill:E.value===`1`?b(i)(j.value.colors[1],20):`transparent`,onMouseenter:t[12]||=e=>W(`1`),onMouseleave:t[13]||=e=>G(`1`),onClick:t[14]||=e=>K(`1`)},null,40,mt)],8,ft),u(`path`,{d:b(a)(pn.value.map(e=>e.plots)),stroke:M.value.dataPolygon.stroke,"stroke-width":M.value.dataPolygon.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:M.value.dataPolygon.gradient.show?`url(#mood_radar_gradient_${w.value})`:b(i)(M.value.dataPolygon.color,M.value.dataPolygon.opacity)},null,8,ht),(g(!0),l(Ne,null,Ve(pn.value.map(e=>e.plots),(e,t)=>(g(),l(`g`,{class:`vue-ui-mood-radar-trap`,style:h(`opacity:${E.value==e.key?`1`:`0`}`)},[u(`line`,{x1:e.x,y1:e.y,x2:z.value.width/2,y2:z.value.height/2,stroke:j.value.colors[e.key]},null,8,gt),u(`circle`,{cx:e.x,cy:e.y,fill:j.value.colors[e.key],r:`3`,stroke:N.value.backgroundColor,"stroke-width":.5},null,8,_t),u(`circle`,{cx:z.value.width/2,cy:z.value.height/2,fill:j.value.colors[e.key],r:`3`,stroke:N.value.backgroundColor,"stroke-width":.5},null,8,vt),u(`text`,{x:z.value.width/2,y:[`5`,5].includes(e.key)?z.value.height/2*1.13:z.value.height/2*.9375,fill:M.value.dataLabel.color,"font-size":`12`,"text-anchor":`middle`,"font-weight":M.value.dataLabel.bold?`bold`:`normal`},y(b(ie)(M.value.dataLabel.formatter,e.value,b(n)({p:M.value.dataLabel.prefix,v:e.value,s:M.value.dataLabel.suffix,r:M.value.dataLabel.roundingValue}),{datapoint:e,seriesIndex:t})),9,yt),u(`text`,{x:z.value.width/2,y:[`5`,5].includes(e.key)?z.value.height/2*1.273:z.value.height/2*.7968,fill:M.value.dataLabel.color,"font-size":`12`,"text-anchor":`middle`},` (`+y(b(n)({v:e.value/V.value*100,s:`%`,r:M.value.dataLabel.roundingPercentage}))+`) `,9,bt)],4))),256)),v(e.$slots,`svg`,{svg:{...z.value,isPrintingImg:b(nn)||b(L)||b(En),isPrintingSvg:b(Dn)}},void 0,!0)],46,Xe)),e.$slots.hint?(g(),l(`div`,xt,[v(e.$slots,`hint`,m(p({hint:k.value.a11y.translations.keyboardNavigation,isVisible:Kt.value})),void 0,!0)])):c(``,!0)]),e.$slots.watermark?(g(),l(`div`,St,[v(e.$slots,`watermark`,m(p({isPrinting:b(nn)||b(L)||b(En)||b(Dn)})),void 0,!0)])):c(``,!0),u(`div`,{id:`legend-bottom-${w.value}`},null,8,Ct),Ut.value&&(N.value.legend.show||e.$slots.legend)?(g(),s(Pe,{key:6,to:N.value.legend.position===`top`?`#legend-top-${w.value}`:`#legend-bottom-${w.value}`},[u(`div`,{ref_key:`chartLegend`,ref:Bt},[v(e.$slots,`legend`,{legend:H.value},()=>[N.value.legend.show?(g(),s(je,{legendSet:fn.value,config:mn.value,key:`legend_${Rt.value}`,isCursorPointer:P.value,style:{display:`flex`,"row-gap":`6px`},onFocusMarker:t[15]||=({legend:e})=>U(e.key)},{item:x(({legend:e,index:t})=>[u(`div`,{role:`button`,onClick:()=>U(e.key),style:{display:`flex`,"flex-direction":`row`,gap:`3px`,"align-items":`center`,margin:`3px 0`},onKeydown:t=>Bn(t,String(e.key))},[e.key==1?(g(),s(b(S),{key:0,strokeWidth:1,name:`moodSad`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),e.key==2?(g(),s(b(S),{key:1,strokeWidth:1,name:`moodFlat`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),e.key==3?(g(),s(b(S),{key:2,strokeWidth:1,name:`moodNeutral`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),e.key==4?(g(),s(b(S),{key:3,strokeWidth:1,name:`smiley`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),e.key==5?(g(),s(b(S),{key:4,strokeWidth:1,name:`moodHappy`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),b(Yt)?c(``,!0):(g(),l(`span`,{key:5,style:h({fontWeight:N.value.legend.bold?`bold`:`normal`})},y(e.display),5))],40,wt)]),_:1},8,[`legendSet`,`config`,`isCursorPointer`])):c(``,!0)],!0)],512)],8,[`to`])):c(``,!0),e.$slots.source?(g(),l(`div`,{key:7,ref_key:`source`,ref:Ht,dir:`auto`},[v(e.$slots,`source`,{},void 0,!0)],512)):c(``,!0),qt.value&&A.value.buttons.table?(g(),s(He(Z.value.component),Le({key:8},Z.value.props,{ref_key:`tableUnit`,ref:Wt,onClose:xn}),Fe({content:x(()=>[d(b(Ot),{colNames:J.value.colNames,head:J.value.head,body:J.value.body,config:J.value.config,title:k.value.table.useDialog?``:Z.value.title,withCloseButton:!k.value.table.useDialog,isCursorPointer:P.value,onClose:xn},{th:x(({th:e})=>[e===`__SUM__`?(g(),l(`div`,Tt,[d(b(S),{name:`sigma`,stroke:J.value.config.th.color,size:16},null,8,[`stroke`])])):(g(),l(`div`,Et,y(e),1))]),td:x(({td:e})=>[Ie(y(e.name||e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`])]),_:2},[k.value.table.useDialog?{name:`title`,fn:x(()=>[Ie(y(Z.value.title),1)]),key:`0`}:void 0,k.value.table.useDialog?{name:`actions`,fn:x(()=>[u(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[16]||=e=>hn(A.value.callbacks.csv),style:h({cursor:P.value?`pointer`:`default`})},[d(b(S),{name:`fileCsv`,stroke:Z.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):c(``,!0),v(e.$slots,`skeleton`,{},()=>[b(Yt)?(g(),s(ue,{key:0})):c(``,!0)],!0)],46,Ke))}},[[`__scopeId`,`data-v-c10d6f18`]]);export{Ge as n,S as t};
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Jt as i,Lt as a,M as ee,X as te,Yt as ne,at as re,i as ie,in as ae,nt as oe,t as se,zt as ce}from"./lib-rPeBMZrn.js";import{n as le,t as ue}from"./BaseScanner-8NdoBs7B.js";import{n as de,t as fe}from"./useHints-BH9r_0Vd.js";import{t as pe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as me}from"./resolveChartConfig-CIhClE5R.js";import{t as he}from"./chartImage-DPGnEuYM.js";import{n as ge}from"./Title-BliHuXfT.js";import{t as _e}from"./useChartExport-BZts4KFb.js";import{n as ve,t as ye}from"./tableIntegration-CNoJ1CIY.js";import{n as be,t as xe}from"./annotationSlots-BRR85CqJ.js";import{n as Se,t as Ce}from"./userOptionsSlots-DYuo-E5m.js";import{t as we}from"./usePrinter-sVoTzet1.js";import{c as Te}from"./canvas-lib-22VpOI4_.js";import{t as Ee}from"./useResponsive-CENUxfEL.js";import{t as De}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"./vue_ui_mood_radar-CXaBdJnv.js";import{Fragment as Ne,Teleport as Pe,computed as o,createBlock as s,createCommentVNode as c,createElementBlock as l,createElementVNode as u,createSlots as Fe,createTextVNode as Ie,createVNode as d,defineAsyncComponent as f,guardReactiveProps as p,mergeProps as Le,nextTick as Re,normalizeClass as ze,normalizeProps as m,normalizeStyle as h,onMounted as Be,openBlock as g,ref as _,renderList as Ve,renderSlot as v,resolveDynamicComponent as He,toDisplayString as y,toRefs as Ue,unref as b,watch as We,withCtx as x}from"vue";var Ge=/* @__PURE__ */ e({default:()=>S}),Ke=[`id`],qe=[`id`],Je=[`id`],Ye={style:{position:`relative`}},Xe=[`xmlns`,`aria-describedby`,`viewBox`],Ze=[`width`,`height`],Qe=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],$e=[`d`,`stroke`,`stroke-width`],et=[`transform`],tt=[`stroke`],nt=[`aria-label`,`fill`],rt=[`transform`],it=[`stroke`],at=[`aria-label`,`fill`],ot=[`transform`],st=[`stroke`],ct=[`aria-label`,`fill`],lt=[`transform`],ut=[`stroke`],dt=[`aria-label`,`fill`],ft=[`transform`],pt=[`stroke`],mt=[`aria-label`,`fill`],ht=[`d`,`stroke`,`stroke-width`,`fill`],gt=[`x1`,`y1`,`x2`,`y2`,`stroke`],_t=[`cx`,`cy`,`fill`,`stroke`],vt=[`cx`,`cy`,`fill`,`stroke`],yt=[`x`,`y`,`fill`,`font-weight`],bt=[`x`,`y`,`fill`],xt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},St={key:5,class:`vue-data-ui-watermark`},Ct=[`id`],wt=[`onClick`,`onKeydown`],Tt={key:0},Et={key:1},S=/*#__PURE__*/ pe({__name:`vue-ui-mood-radar`,props:{config:{type:Object,default(){return{}}},dataset:{type:Object,default(){return{}}}},emits:[`copyAlt`],setup(e,{expose:pe,emit:Ge}){let S=f(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),Dt=f(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),Ot=f(()=>import(`./DataTable-0Vv-aGHD.js`)),kt=f(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),At=f(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),jt=f(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),Mt=f(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_mood_radar:Nt}=t(),C=e,Pt=Ge,w=_(te()),T=_(null),E=_(null),Ft=_(null),It=_(0),Lt=_(0),Rt=_(0),zt=_(null),Bt=_(null),D=_(null),Vt=_(null),Ht=_(null),Ut=_(!1),Wt=_(null),Gt=_(null),O=_(null),Kt=_(!1),qt=o(()=>!!C.dataset&&Object.keys(C.dataset).length),k=_(tn()),A=o(()=>k.value.userOptions),j=o(()=>k.value.style.chart.layout.smileys),M=o(()=>k.value.style.chart.layout),N=o(()=>k.value.style.chart);de({config:()=>k.value,dataset:()=>C.dataset,component:`VueUiMoodRadar`,rules:[fe.noHint]});let P=o(()=>k.value.userOptions.useCursorPointer),Jt=o(()=>ae({defaultConfig:{userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{grid:{stroke:`#6A6A6A`},outerPolygon:{stroke:`#6A6A6A`},dataPolygon:{color:`#6A6A6A`,opacity:30,stroke:`#6A6A6A`},smileys:{colors:{1:`#DBDBDB`,2:`#C4C4C4`,3:`#ADADAD`,4:`#969696`,5:`#808080`}},dataLabel:{color:`transparent`}},legend:{backgroundColor:`transparent`}}}},userConfig:k.value.skeletonConfig??{}})),{loading:Yt,FINAL_DATASET:F}=le({...Ue(C),FINAL_CONFIG:k,prepareConfig:tn,callback:()=>{Promise.resolve().then(async()=>{await Re(),R.value.showTable=k.value.table.show})},skeletonDataset:C.config?.skeletonDataset??{1:1,2:1,3:1,4:1,5:1},skeletonConfig:ae({defaultConfig:k.value,userConfig:Jt.value})});Be(()=>{Ut.value=!0,Zt()});let Xt=o(()=>k.value.debug);function Zt(){if(ce(C.dataset)&&re({componentName:`VueUiMoodRadar`,type:`dataset`,debug:Xt.value}),k.value.responsive){let e=Te(()=>{let{width:e,height:t}=Ee({chart:T.value,title:N.value.title.text?zt.value:null,legend:N.value.legend.show?Bt.value:null,noTitle:Ft.value,source:Ht.value});requestAnimationFrame(()=>{z.value.width=e,z.value.height=t-12})});D.value&&(Vt.value&&D.value.unobserve(Vt.value),D.value.disconnect()),D.value=new ResizeObserver(e),Vt.value=T.value.parentNode,D.value.observe(Vt.value)}}let{userOptionsVisible:Qt,setUserOptionsVisibility:$t,keepUserOptionState:en}=ke({config:k.value}),{svgRef:I}=Ae({config:N.value.title});function tn(){return me(C.config,Nt,Me)}We(()=>C.config,e=>{k.value=tn(),Qt.value=!k.value.userOptions.showOnChartHover,Zt(),It.value+=1,Lt.value+=1,Rt.value+=1,R.value.showTable=k.value.table.show},{deep:!0});let{isPrinting:nn,isImaging:L,generatePdf:rn,generateImage:an}=we({elementId:w.value,fileName:N.value.title.text||`vue-ui-mood-radar`,options:k.value.userOptions.print}),on=o(()=>k.value.userOptions.show&&!N.value.title.text),R=_({showTable:k.value.table.show}),z=_({height:256,width:256}),sn={5:{x:128,y:35},4:{x:218,y:98.5},3:{x:185,y:204},2:{x:70,y:204},1:{x:38.5,y:98.5}},cn=o(()=>{let e={};return pn.value.forEach(t=>{e[t.key]={x:t.x,y:t.y}}),e});function B(e){let t=sn[e],n=cn.value[e]||t;return`translate(${n.x-t.x}, ${n.y-t.y})`}let ln=o(()=>ee({plot:{x:z.value.width/2,y:z.value.height/2},radius:Math.min(z.value.height,z.value.width)*.35,sides:5,rotation:11}));function un({centerX:e,centerY:t,apexX:n,apexY:r,proportion:i,key:a,value:ee}){return{x:e+(n-e)*i,y:t+(r-t)*i,key:a,value:ee}}let dn=o(()=>Math.max(...Object.values(F.value).map(e=>isNaN(e)?0:e))),V=o(()=>Object.values(F.value).reduce((e,t)=>(isNaN(e)?0:e)+(isNaN(t)?0:t),0)),H=o(()=>Object.keys(F.value).map((e,t)=>{let n=typeof F.value[e]!=`number`||isNaN(F.value[e])?0:F.value[e];return{index:t,key:e,value:n,proportion:n/V.value,color:j.value.colors[e]}}).map(e=>({...e,onSelect:()=>U(e.key)})).sort((e,t)=>t.key-e.key)),fn=o(()=>H.value.map((e,t)=>({...e,display:`${ie(M.value.dataLabel.formatter,e.value,n({p:M.value.dataLabel.prefix,v:e.value,s:M.value.dataLabel.suffix,r:M.value.dataLabel.roundingValue}))}${Yt.value?``:` (${n({v:e.proportion*100,s:`%`,r:N.value.legend.roundingPercentage})})`}`}))),pn=o(()=>([`1`,`2`,`3`,`4`,`5`].forEach(e=>{[null,void 0].includes(F.value[e])&&re({componentName:`VueUiMoodRadar`,type:`datasetAttribute`,property:e,debug:Xt.value})}),ln.value.coordinates.map((e,t)=>{let n=un({centerX:z.value.width/2,centerY:z.value.height/2,apexX:e.x,apexY:e.y,proportion:H.value[t].value/dn.value,key:H.value[t].key,value:H.value[t].value});return{...e,plots:n,key:H.value[t].key}}))),mn=o(()=>({cy:`mood-radar-legend`,backgroundColor:N.value.legend.backgroundColor,color:N.value.legend.color,fontSize:N.value.legend.fontSize,paddingBottom:12,fontWeight:N.value.legend.bold?`bold`:``}));function U(e){e===E.value?E.value=null:(E.value=e,K(e))}function W(e){E.value=e;let t=H.value.find(t=>t.key===e);k.value.events.datapointEnter&&k.value.events.datapointEnter({datapoint:t,seriesIndex:t.index})}function G(e){E.value=null;let t=H.value.find(t=>t.key===e);k.value.events.datapointLeave&&k.value.events.datapointLeave({datapoint:t,seriesIndex:t.index})}function K(e){let t=H.value.find(t=>t.key===e);k.value.events.datapointClick&&k.value.events.datapointClick({datapoint:t,seriesIndex:t.index})}let q=o(()=>({head:H.value.map(e=>({name:e.key,color:e.color})),body:H.value.map(e=>isNaN(e.value)?0:e.value)}));function hn(e=null){Re(()=>{let t=q.value.head.map((e,t)=>[[e.name],[q.value.body[t]],[isNaN(q.value.body[t]/V.value)?`-`:q.value.body[t]/V.value*100]]),n=[[N.value.title.text],[N.value.title.subtitle.text],[[``],[`val`],[`%`]]].concat(t),i=r(n);e?e(i):oe({csvContent:i,title:N.value.title.text||`vue-ui-mood-radar`})})}let J=o(()=>({head:[`__SUM__`,Number(V.value.toFixed(k.value.table.td.roundingValue)).toLocaleString(),`100%`],body:q.value.head.map((e,t)=>[{color:e.color,name:e.name},q.value.body[t].toFixed(k.value.table.td.roundingValue),isNaN(q.value.body[t]/V.value)?`-`:(q.value.body[t]/V.value*100).toFixed(k.value.table.td.roundingPercentage)+`%`]),config:{th:{backgroundColor:k.value.table.th.backgroundColor,color:k.value.table.th.color,outline:k.value.table.th.outline},td:{backgroundColor:k.value.table.td.backgroundColor,color:k.value.table.td.color,outline:k.value.table.td.outline},breakpoint:k.value.table.responsiveBreakpoint},colNames:[k.value.table.columnNames.series,k.value.table.columnNames.value,k.value.table.columnNames.percentage]}));function gn(){return H.value}function _n(){R.value.showTable=!R.value.showTable}let Y=_(!1);function vn(e){Y.value=e}let X=_(!1);function yn(){X.value=!X.value}let bn=he(T,()=>N.value.title.text),Z=o(()=>ye({config:k,style:N,mutableConfig:R,dialog:Mt,accordion:Dt,isFullscreen:Y,parent:T,maxWidth:800,isCursorPointer:P}));We(()=>R.value.showTable,e=>ve(e,k,Wt));function xn(){R.value.showTable=!1,Gt.value&&Gt.value.setTableIconState(!1)}let Sn=o(()=>fn.value.map(e=>({...e,name:e.display,shape:`circle`}))),Cn=o(()=>N.value.backgroundColor),wn=o(()=>N.value.legend),Tn=o(()=>N.value.title),{isCallbackImaging:En,isCallbackSvg:Dn,generateSvg:On,onGenerateImage:kn}=_e({svg:I,title:Tn,legend:wn,legendItems:Sn,backgroundColor:Cn,getSvgCallback:()=>k.value.userOptions.callbacks.svg,generateImage:an});async function An(){Pt(`copyAlt`,{config:k.value,dataset:H.value}),k.value.userOptions.callbacks.altCopy?await Promise.resolve(k.value.userOptions.callbacks.altCopy({config:k.value,dataset:H.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}let Q=o(()=>H.value.map(e=>String(e.key)));function jn(){$t(!0)}function Mn(){$t(!1)}function Nn(e){return H.value.find(t=>String(t.key)===String(e))}function Pn(e,t,r){return ie(M.value.dataLabel.formatter,e,n({p:M.value.dataLabel.prefix,v:e,s:M.value.dataLabel.suffix,r:M.value.dataLabel.roundingValue}),{datapoint:r,seriesIndex:t})}function Fn(e){return n({v:V.value?e/V.value*100:0,s:`%`,r:M.value.dataLabel.roundingPercentage})}function $(e){let t=Nn(e);return t?`${e}, ${Pn(t.value,t.index,t)}, ${Fn(t.value)}`:`${e}`}function In(e){let t=Q.value[e];t&&(O.value=e,E.value=t)}function Ln(){Kt.value=!0}function Rn(){O.value=null,E.value=null,Kt.value=!1}function zn(e){if(!I.value||!Q.value.length||X.value||document.activeElement!==I.value)return;let t=[`ArrowLeft`,`ArrowUp`].includes(e.key),n=[`ArrowRight`,`ArrowDown`].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){O.value=null,E.value=null;return}if(r){if(O.value===null)return;let e=Q.value[O.value];if(!e)return;U(e);return}let a=O.value;a===null||a<0||a>=Q.value.length?a=n?0:Q.value.length-1:n?(a+=1,a>=Q.value.length&&(a=0)):t&&(--a,a<0&&(a=Q.value.length-1)),In(a)}function Bn(e,t){let n=e.key===`Enter`||e.key===` `,r=e.key===`Escape`;(n||r)&&(e.preventDefault(),e.stopPropagation(),r?(O.value=null,E.value=null):U(String(t)))}let Vn=o(()=>({headers:J.value?.colNames??[],rows:H.value.map(e=>[String(e.key),Pn(e.value,e.index,e),Fn(e.value)])}));return pe({getData:gn,getImage:bn,generatePdf:rn,generateCsv:hn,generateImage:an,generateSvg:On,toggleTable:_n,toggleAnnotator:yn,toggleFullscreen:vn,copyAlt:An}),(e,t)=>(g(),l(`div`,{class:ze(`vue-data-ui-component vue-ui-mood-radar ${Y.value?`vue-data-ui-wrapper-fullscreen`:``} ${k.value.useCssAnimation?``:`vue-ui-dna`}`),ref_key:`moodRadarChart`,ref:T,id:`${w.value}`,style:h(`font-family:${k.value.style.fontFamily};width:100%; text-align:center;background:${N.value.backgroundColor}`),onMouseenter:jn,onMouseleave:Mn},[u(`div`,{id:`chart-instructions-${w.value}`,class:`sr-only`},[u(`p`,null,y(k.value.a11y.translations.keyboardNavigation),1)],8,qe),Vn.value?.rows?.length?(g(),s(Oe,{key:0,uid:w.value,head:Vn.value.headers,body:Vn.value.rows,notice:k.value.a11y.translations.tableAvailable,caption:k.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):c(``,!0),A.value.buttons.annotator?(g(),s(b(kt),{key:1,svgRef:b(I),backgroundColor:N.value.backgroundColor,color:N.value.color,active:X.value,isCursorPointer:P.value,palette:A.value.annotatorPalette,onClose:yn},Fe({_:2},[Ve(b(xe),t=>({name:t,fn:x(n=>[v(e.$slots,t,m(p(b(be)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):c(``,!0),on.value?(g(),l(`div`,{key:2,ref_key:`noTitle`,ref:Ft,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):c(``,!0),N.value.title.text?(g(),l(`div`,{key:3,ref_key:`chartTitle`,ref:zt,style:`width:100%;background:transparent`},[d(ge,{config:{title:{cy:`mood-radar-title`,...N.value.title},subtitle:{cy:`mood-radar-subtitle`,...N.value.title.subtitle}}},null,8,[`config`])],512)):c(``,!0),u(`div`,{id:`legend-top-${w.value}`},null,8,Je),A.value.show&&qt.value&&(b(en)||b(Qt))?(g(),s(b(At),{key:4,ref_key:`userOptionsRef`,ref:Gt,backgroundColor:N.value.backgroundColor,color:N.value.color,isPrinting:b(nn),isImaging:b(L),uid:w.value,hasPdf:A.value.buttons.pdf,hasXls:A.value.buttons.csv,hasImg:A.value.buttons.img,hasSvg:A.value.buttons.svg,hasTable:A.value.buttons.table,hasFullscreen:A.value.buttons.fullscreen,hasAltCopy:A.value.buttons.altCopy,isFullscreen:Y.value,titles:{...A.value.buttonTitles},chartElement:T.value,position:A.value.position,hasAnnotator:A.value.buttons.annotator,isAnnotation:X.value,callbacks:A.value.callbacks,printScale:A.value.print.scale,tableDialog:k.value.table.useDialog,isCursorPointer:P.value,onToggleFullscreen:vn,onGeneratePdf:b(rn),onGenerateCsv:hn,onGenerateImage:b(kn),onGenerateSvg:b(On),onToggleTable:_n,onToggleAnnotator:yn,onCopyAlt:An,style:h({visibility:b(en)?b(Qt)?`visible`:`hidden`:`visible`})},Fe({_:2},[Ve(b(Se)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:x(n=>[v(e.$slots,t,m(p(b(Ce)(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(`.`))):c(``,!0),u(`div`,Ye,[(g(),l(`svg`,{ref_key:`svgRef`,ref:I,xmlns:b(se),"aria-describedby":`chart-instructions-${w.value}`,viewBox:`0 0 ${z.value.width} ${z.value.height}`,class:ze({"vue-data-ui-fullscreen--on":Y.value,"vue-data-ui-fulscreen--off":!Y.value}),style:h(`overflow:visible;background:transparent;color:${N.value.color}`),tabindex:`0`,onFocus:Ln,onBlur:Rn,onKeydown:zn},[d(b(jt)),v(e.$slots,`svg-underlayer`,{svg:{...z.value,isPrintingImg:b(nn)||b(L)||b(En),isPrintingSvg:b(Dn)}},void 0,!0),e.$slots[`chart-background`]?(g(),l(`foreignObject`,{key:0,x:0,y:0,width:z.value.width,height:z.value.height,style:{pointerEvents:`none`}},[v(e.$slots,`chart-background`,{},void 0,!0)],8,Ze)):c(``,!0),u(`defs`,null,[d(De,{t:`radial`,cx:`50%`,cy:`50%`,r:`50%`,fx:`50%`,fy:`50%`,id:`mood_radar_gradient_${w.value}`,stops:[[`0%`,b(i)(M.value.dataPolygon.color,M.value.dataPolygon.opacity),1],[`100%`,b(i)(b(ne)(M.value.dataPolygon.color,M.value.dataPolygon.gradient.intensity/100),M.value.dataPolygon.opacity),1]]},null,8,[`id`,`stops`])]),(g(!0),l(Ne,null,Ve(ln.value.coordinates,e=>(g(),l(`line`,{x1:z.value.width/2,y1:z.value.height/2,x2:e.x,y2:e.y,stroke:M.value.grid.stroke,"stroke-width":M.value.grid.strokeWidth},null,8,Qe))),256)),u(`path`,{d:ln.value.path,fill:`none`,stroke:M.value.outerPolygon.stroke,"stroke-width":M.value.outerPolygon.strokeWidth,"stroke-linejoin":`round`,"stroke-linecap":`round`},null,8,$e),u(`g`,{transform:B(`5`)},[u(`path`,{fill:`none`,stroke:j.value.colors[5],"stroke-width":`1`,"stroke-linecap":`round`,d:`M119 25A1 1 0 00137 25 1 1 0 00119 25M123 26C124 33 132 33 133 26L123 26M123 22A1 1 0 00126 22 1 1 0 00123 22M130 22A1 1 0 00133 22 1 1 0 00130 22`},null,8,tt),u(`circle`,{role:`button`,class:`vue-ui-mood-radar-trap`,cx:`128`,cy:`25`,r:`20`,"aria-label":$(`5`),fill:E.value===`5`?b(i)(j.value.colors[5],20):`transparent`,onMouseenter:t[0]||=e=>W(`5`),onMouseleave:t[1]||=e=>G(`5`),onClick:t[2]||=e=>K(`5`)},null,40,nt)],8,et),u(`g`,{transform:B(`4`)},[u(`path`,{fill:`none`,stroke:j.value.colors[4],"stroke-width":`1`,"stroke-linecap":`round`,d:`M218 95A1 1 0 00236 95 1 1 0 00218 95M222 97C225 99 229 99 232 97M222 92A1 1 0 00225 92 1 1 0 00222 92M229 92A1 1 0 00232 92 1 1 0 00229 92`},null,8,it),u(`circle`,{class:`vue-ui-mood-radar-trap`,cx:`227`,cy:`95.5`,r:`20`,"aria-label":$(`4`),fill:E.value===`4`?b(i)(j.value.colors[4],20):`transparent`,onMouseenter:t[3]||=e=>W(`4`),onMouseleave:t[4]||=e=>G(`4`),onClick:t[5]||=e=>K(`4`)},null,40,at)],8,rt),u(`g`,{transform:B(`3`)},[u(`path`,{fill:`none`,stroke:j.value.colors[3],"stroke-width":`1`,"stroke-linecap":`round`,d:`M181 213A1 1 0 00199 213 1 1 0 00181 213M185 210A1 1 0 00188 210 1 1 0 00185 210M192 210A1 1 0 00195 210 1 1 0 00192 210M185 215 195 215`},null,8,st),u(`circle`,{class:`vue-ui-mood-radar-trap`,cx:`190`,cy:`213.5`,r:`20`,"aria-label":$(`3`),fill:E.value===`3`?b(i)(j.value.colors[3],20):`transparent`,onMouseenter:t[6]||=e=>W(`3`),onMouseleave:t[7]||=e=>G(`3`),onClick:t[8]||=e=>K(`3`)},null,40,ct)],8,ot),u(`g`,{transform:B(`2`)},[u(`path`,{fill:`none`,stroke:j.value.colors[2],"stroke-width":`1`,"stroke-linecap":`round`,d:`M56 213A1 1 0 0074 213 1 1 0 0056 213M60 216C63 214 67 214 70 216M60 210A1 1 0 0063 210 1 1 0 0060 210M67 210A1 1 0 0070 210 1 1 0 0067 210`},null,8,ut),u(`circle`,{class:`vue-ui-mood-radar-trap`,cx:`65`,cy:`213.5`,r:`20`,"aria-label":$(`2`),fill:E.value===`2`?b(i)(j.value.colors[2],20):`transparent`,onMouseenter:t[9]||=e=>W(`2`),onMouseleave:t[10]||=e=>G(`2`),onClick:t[11]||=e=>K(`2`)},null,40,dt)],8,lt),u(`g`,{transform:B(`1`)},[u(`path`,{fill:`none`,stroke:j.value.colors[1],"stroke-width":`1`,"stroke-linecap":`round`,d:`M20 96A1 1 0 0038 96 1 1 0 0020 96M24 100C25 95 33 95 34 100L24 100M24 93A1 1 0 0027 93 1 1 0 0024 93M31 93A1 1 0 0034 93 1 1 0 0031 93`},null,8,pt),u(`circle`,{class:`vue-ui-mood-radar-trap`,cx:`29`,cy:`95.5`,r:`20`,"aria-label":$(`1`),fill:E.value===`1`?b(i)(j.value.colors[1],20):`transparent`,onMouseenter:t[12]||=e=>W(`1`),onMouseleave:t[13]||=e=>G(`1`),onClick:t[14]||=e=>K(`1`)},null,40,mt)],8,ft),u(`path`,{d:b(a)(pn.value.map(e=>e.plots)),stroke:M.value.dataPolygon.stroke,"stroke-width":M.value.dataPolygon.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:M.value.dataPolygon.gradient.show?`url(#mood_radar_gradient_${w.value})`:b(i)(M.value.dataPolygon.color,M.value.dataPolygon.opacity)},null,8,ht),(g(!0),l(Ne,null,Ve(pn.value.map(e=>e.plots),(e,t)=>(g(),l(`g`,{class:`vue-ui-mood-radar-trap`,style:h(`opacity:${E.value==e.key?`1`:`0`}`)},[u(`line`,{x1:e.x,y1:e.y,x2:z.value.width/2,y2:z.value.height/2,stroke:j.value.colors[e.key]},null,8,gt),u(`circle`,{cx:e.x,cy:e.y,fill:j.value.colors[e.key],r:`3`,stroke:N.value.backgroundColor,"stroke-width":.5},null,8,_t),u(`circle`,{cx:z.value.width/2,cy:z.value.height/2,fill:j.value.colors[e.key],r:`3`,stroke:N.value.backgroundColor,"stroke-width":.5},null,8,vt),u(`text`,{x:z.value.width/2,y:[`5`,5].includes(e.key)?z.value.height/2*1.13:z.value.height/2*.9375,fill:M.value.dataLabel.color,"font-size":`12`,"text-anchor":`middle`,"font-weight":M.value.dataLabel.bold?`bold`:`normal`},y(b(ie)(M.value.dataLabel.formatter,e.value,b(n)({p:M.value.dataLabel.prefix,v:e.value,s:M.value.dataLabel.suffix,r:M.value.dataLabel.roundingValue}),{datapoint:e,seriesIndex:t})),9,yt),u(`text`,{x:z.value.width/2,y:[`5`,5].includes(e.key)?z.value.height/2*1.273:z.value.height/2*.7968,fill:M.value.dataLabel.color,"font-size":`12`,"text-anchor":`middle`},` (`+y(b(n)({v:e.value/V.value*100,s:`%`,r:M.value.dataLabel.roundingPercentage}))+`) `,9,bt)],4))),256)),v(e.$slots,`svg`,{svg:{...z.value,isPrintingImg:b(nn)||b(L)||b(En),isPrintingSvg:b(Dn)}},void 0,!0)],46,Xe)),e.$slots.hint?(g(),l(`div`,xt,[v(e.$slots,`hint`,m(p({hint:k.value.a11y.translations.keyboardNavigation,isVisible:Kt.value})),void 0,!0)])):c(``,!0)]),e.$slots.watermark?(g(),l(`div`,St,[v(e.$slots,`watermark`,m(p({isPrinting:b(nn)||b(L)||b(En)||b(Dn)})),void 0,!0)])):c(``,!0),u(`div`,{id:`legend-bottom-${w.value}`},null,8,Ct),Ut.value&&(N.value.legend.show||e.$slots.legend)?(g(),s(Pe,{key:6,to:N.value.legend.position===`top`?`#legend-top-${w.value}`:`#legend-bottom-${w.value}`},[u(`div`,{ref_key:`chartLegend`,ref:Bt},[v(e.$slots,`legend`,{legend:H.value},()=>[N.value.legend.show?(g(),s(je,{legendSet:fn.value,config:mn.value,key:`legend_${Rt.value}`,isCursorPointer:P.value,style:{display:`flex`,"row-gap":`6px`},onFocusMarker:t[15]||=({legend:e})=>U(e.key)},{item:x(({legend:e,index:t})=>[u(`div`,{role:`button`,onClick:()=>U(e.key),style:{display:`flex`,"flex-direction":`row`,gap:`3px`,"align-items":`center`,margin:`3px 0`},onKeydown:t=>Bn(t,String(e.key))},[e.key==1?(g(),s(b(S),{key:0,strokeWidth:1,name:`moodSad`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),e.key==2?(g(),s(b(S),{key:1,strokeWidth:1,name:`moodFlat`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),e.key==3?(g(),s(b(S),{key:2,strokeWidth:1,name:`moodNeutral`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),e.key==4?(g(),s(b(S),{key:3,strokeWidth:1,name:`smiley`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),e.key==5?(g(),s(b(S),{key:4,strokeWidth:1,name:`moodHappy`,stroke:j.value.colors[e.key]},null,8,[`stroke`])):c(``,!0),b(Yt)?c(``,!0):(g(),l(`span`,{key:5,style:h({fontWeight:N.value.legend.bold?`bold`:`normal`})},y(e.display),5))],40,wt)]),_:1},8,[`legendSet`,`config`,`isCursorPointer`])):c(``,!0)],!0)],512)],8,[`to`])):c(``,!0),e.$slots.source?(g(),l(`div`,{key:7,ref_key:`source`,ref:Ht,dir:`auto`},[v(e.$slots,`source`,{},void 0,!0)],512)):c(``,!0),qt.value&&A.value.buttons.table?(g(),s(He(Z.value.component),Le({key:8},Z.value.props,{ref_key:`tableUnit`,ref:Wt,onClose:xn}),Fe({content:x(()=>[d(b(Ot),{colNames:J.value.colNames,head:J.value.head,body:J.value.body,config:J.value.config,title:k.value.table.useDialog?``:Z.value.title,withCloseButton:!k.value.table.useDialog,isCursorPointer:P.value,onClose:xn},{th:x(({th:e})=>[e===`__SUM__`?(g(),l(`div`,Tt,[d(b(S),{name:`sigma`,stroke:J.value.config.th.color,size:16},null,8,[`stroke`])])):(g(),l(`div`,Et,y(e),1))]),td:x(({td:e})=>[Ie(y(e.name||e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`])]),_:2},[k.value.table.useDialog?{name:`title`,fn:x(()=>[Ie(y(Z.value.title),1)]),key:`0`}:void 0,k.value.table.useDialog?{name:`actions`,fn:x(()=>[u(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[16]||=e=>hn(A.value.callbacks.csv),style:h({cursor:P.value?`pointer`:`default`})},[d(b(S),{name:`fileCsv`,stroke:Z.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):c(``,!0),v(e.$slots,`skeleton`,{},()=>[b(Yt)?(g(),s(ue,{key:0})):c(``,!0)],!0)],46,Ke))}},[[`__scopeId`,`data-v-c10d6f18`]]);export{Ge as n,S 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,Dt as i,Ht as a,It as o,Jt as s,Kt as c,S as l,Ut as ee,X as te,Zt as ne,at as u,b as re,f as ie,i as ae,in as oe,it as se,n as ce,nn as le,nt as ue,p as de,pt as fe,t as pe,w 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{c as Ne}from"./canvas-lib-22VpOI4_.js";import{t as Pe}from"./useResponsive-CENUxfEL.js";import{t as Fe}from"./DefGrad-DKMq1REY.js";import{t as Ie}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Le}from"./A11yDataTable-DWNlWXzs.js";import{t as Re}from"./useUserOptionState-CXlFnwPv.js";import{t as ze}from"./useChartAccessibility-DOMuYJfm.js";import{t as Be}from"./labelUtils-CdtU-yB_.js";import{t as Ve}from"./Legend-DM0ClX3D.js";import{t as He}from"./vue_ui_nested_donuts-CRtGsJcz.js";import{Fragment as d,Teleport as Ue,computed as f,createBlock as p,createCommentVNode as m,createElementBlock as h,createElementVNode as g,createSlots as We,createTextVNode as Ge,createVNode as Ke,defineAsyncComponent as _,guardReactiveProps as v,mergeProps as qe,nextTick as Je,normalizeClass as Ye,normalizeProps as y,normalizeStyle as Xe,onBeforeUnmount as Ze,onMounted as Qe,openBlock as b,ref as x,renderList as S,renderSlot as C,resolveDynamicComponent as $e,shallowRef as et,toDisplayString as w,toRefs as tt,unref as T,vShow as nt,watch as rt,withCtx as E,withDirectives as it}from"vue";var at=/* @__PURE__ */ e({default:()=>It}),ot=[`id`],st=[`id`],ct=[`id`],lt={style:{position:`relative`}},ut=[`xmlns`,`aria-describedby`,`viewBox`],dt=[`width`,`height`],ft=[`id`],pt=[`id`],mt=[`id`],ht=[`flood-color`],gt=[`id`,`d`],_t=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],vt=[`d`,`fill`,`stroke`,`stroke-width`],yt={key:1},bt=[`d`,`fill`],xt={key:2},St=[`font-size`,`font-weight`,`fill`,`dy`],Ct=[`href`],wt=[`x`,`y`,`font-size`,`font-weight`,`fill`],Tt={key:3},Et=[`filter`],Dt=[`opacity`,`text-anchor`,`x`,`y`,`fill`,`font-size`,`font-weight`],Ot=[`opacity`,`text-anchor`,`x`,`y`,`fill`,`font-size`,`font-weight`],kt=[`d`,`fill`,`onMouseenter`,`onClick`,`onMouseleave`],At={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},jt={key:5,class:`vue-data-ui-watermark`},Mt=[`id`],Nt={key:0,class:`vue-ui-nested-donuts-legend-title`},Pt=[`onClick`],Ft={style:{display:`flex`,"align-items":`center`}},It=/*#__PURE__*/ be({__name:`vue-ui-nested-donuts`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`selectDatapoint`,`copyAlt`],setup(e,{expose:be,emit:at}){let It=_(()=>import(`./Tooltip-C1q0Qoh7.js`)),Lt=_(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),Rt=_(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),zt=_(()=>import(`./DataTable-0Vv-aGHD.js`)),Bt=_(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Vt=_(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Ht=_(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),Ut=_(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_nested_donuts:Wt}=t(),{isThemeValid:Gt,warnInvalidTheme:Kt}=Se(),D=e,qt=f({get(){return!!D.dataset&&D.dataset.length},set(e){return e}}),O=x(te()),Jt=x(!1),Yt=x(``),Xt=x(null),Zt=x(0),k=x(null),Qt=x(null),$t=x(null),en=x(null),tn=x(null),nn=x(0),rn=x(0),an=x(0),A=x(!0),on=x([]),sn=x([]),cn=x(!1),ln=x(null),un=x(null),j=x(null),dn=x({x:0,y:0}),fn=x(`pointer`),pn=x(!1),M=x(!1);function mn(e){M.value=e,Zt.value+=1}let N=x(Cn()),P=f(()=>N.value.style.chart.layout.labels),F=f(()=>N.value.style.chart.tooltip),I=f(()=>N.value.userOptions),L=f(()=>N.value.style.chart.layout),R=f(()=>N.value.style.chart);ve({config:()=>N.value,dataset:()=>D.dataset,component:`VueUiNestedDonuts`,rules:[ye.emptyArray,{test:e=>e.some(e=>e.series.length>6),message:[`👀 Some series have > 6 data points. Consider:`,``,`▶️ Grouping small values dynamically into a single "Other" data point.`,``,`▶️ Using filters to let users choose a maximum number of data points to display.`,``,`▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read.`]},{test:e=>e.length===1,message:[`👀 There is only one series in your dataset. Consider:`,``,`▶️ Using VueUiDonut instead.`]},{test:e=>e.length>6,message:[`👀 The number of series in your dataset > 6. Consider:`,``,`▶️ 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 z=f(()=>N.value.userOptions.useCursorPointer),hn={name:``,series:[{name:``,values:[3],color:`#BABABA`},{name:``,values:[2],color:`#AAAAAA`},{name:``,values:[1],color:`#CACACA`}]},gn=f(()=>oe({defaultConfig:{useCssAnimation:!1,table:{show:!1},startAnimation:{show:!1},userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{labels:{dataLabels:{show:!1}}},legend:{backgroundColor:`transparent`,showValue:!1,showPercentage:!1},title:{color:`#1A1A1A`,subtitle:{color:`#5A5A5A`}}}}},userConfig:N.value.skeletonConfig??{}})),{loading:_n,FINAL_DATASET:vn,manualLoading:yn}=ge({...tt(D),FINAL_CONFIG:N,prepareConfig:Cn,callback:()=>{Promise.resolve().then(async()=>{await Dn()})},skeletonDataset:D.config?.skeletonDataset??[hn,hn],skeletonConfig:oe({defaultConfig:N.value,userConfig:gn.value})}),{userOptionsVisible:bn,setUserOptionsVisibility:xn,keepUserOptionState:Sn}=Re({config:N.value}),{svgRef:B}=ze({config:R.value.title});function Cn(){let e=xe({userConfig:D.config,defaultConfig:Wt}),t={},n=e.theme;if(n){if(!Gt.value(e))Kt(e),t=e;else{let r=xe({userConfig:He[n]||D.config,defaultConfig:e});t={...xe({userConfig:D.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:le[n]||a}}}else t=e;return t}let wn=ne(D.config);rt(()=>D.config,(e,t)=>{let n=ne(e),r=n!==wn;wn=n;let i=Cn();r?(_n.value||(N.value=i),bn.value=!N.value.userOptions.showOnChartHover,kn(),nn.value+=1,rn.value+=1,an.value+=1,U.value.dataLabels.show=P.value.dataLabels.show,U.value.showTable=N.value.table.show,U.value.showTooltip=F.value.show,W.value.width=R.value.width,W.value.height=R.value.height):(N.value.style.chart.tooltip=i.style.chart.tooltip,U.value.showTooltip=N.value.style.chart.tooltip.show)},{deep:!0});let Tn=f(()=>{let{top:e,right:t,bottom:n,left:r}=R.value.padding;return{css:`padding:${e}px ${t}px ${n}px ${r}px`,top:e,right:t,bottom:n,left:r}});function En(e,t=1e3,n=50){return new Promise(r=>{let i=e.length;on.value=Array(i).fill(0),sn.value=[];let a=0;e.forEach((e,o)=>{setTimeout(()=>{let n=performance.now();function s(l){let ee=Math.min((l-n)/t,1),te=e*se(ee);on.value[o]=te,on.value=[...on.value];let ne=[],u=0;D.dataset.forEach((e,t)=>{let n=re(e.series.reduce((e,t)=>e+re(c(t.values).reduce((e,t)=>e+t,0)),0))-re(on.value.slice(u,u+e.series.length).reduce((e,t)=>e+t,0));n>Number.MIN_VALUE&&ne.push({name:`__ghost__`,arcOf:e.name,arcOfId:`${O.value}_${t}`,id:`ghost_${O.value}_${t}`,seriesIndex:-1,datasetIndex:t,color:`transparent`,value:n,fullValue:n,absoluteValues:[],ghost:!0}),u+=e.series.length}),sn.value=ne,ee<1?requestAnimationFrame(s):(a+=1,a===i&&r())}requestAnimationFrame(s)},o*n)})})}async function Dn(){if(N.value.startAnimation?.show){let e=vn.value.flatMap(e=>e.series).map(e=>c(e.values).reduce((e,t)=>e+t,0));on.value=e.map(()=>0),A.value=!0,sn.value=vn.value.map((e,t)=>{let n=e.series.reduce((e,t)=>e+c(t.values).reduce((e,t)=>e+t,0),0);return{name:`__ghost__`,arcOf:e.name,arcOfId:`${O.value}_${t}`,id:`ghost_${O.value}_${t}`,seriesIndex:-1,datasetIndex:t,color:`transparent`,value:n,fullValue:n,absoluteValues:[],ghost:!0}}),await Je(),En(e,N.value.startAnimation.durationMs,N.value.startAnimation.staggerMs).then(()=>{A.value=!1,sn.value=[]})}else A.value=!1}Qe(async()=>{cn.value=!0,kn(),await Dn()});let V=et(null),On=et(null),H=f(()=>N.value.debug);function kn(){if(he(D.dataset)?(u({componentName:`VueUiNestedDonuts`,type:`dataset`,debug:H.value}),qt.value=!1,yn.value=!0):yn.value=N.value.loading,N.value.responsive){let e=Ne(()=>{let{width:e,height:t}=Pe({chart:k.value,title:R.value.title.text?Qt.value:null,legend:R.value.legend.show?$t.value:null,source:en.value,noTitle:tn.value,padding:Tn.value});requestAnimationFrame(()=>{W.value.width=e,W.value.height=t})});V.value&&(On.value&&V.value.unobserve(On.value),V.value.disconnect()),V.value=new ResizeObserver(e),On.value=k.value.parentNode,V.value.observe(On.value)}}Ze(()=>{V.value&&(On.value&&V.value.unobserve(On.value),V.value.disconnect())});let{isPrinting:An,isImaging:jn,generatePdf:Mn,generateImage:Nn}=Me({elementId:`nested_donuts_${O.value}`,fileName:R.value.title.text||`vue-ui-nested-donuts`,options:N.value.userOptions.print}),Pn=f(()=>N.value.userOptions.show&&!R.value.title.text),Fn=f(()=>me(N.value.customPalette)),U=x({dataLabels:{show:P.value.dataLabels.show},showTable:N.value.table.show,showTooltip:F.value.show});rt(N,()=>{U.value={dataLabels:{show:P.value.dataLabels.show},showTable:N.value.table.show,showTooltip:F.value.show}},{immediate:!0});let W=x({width:R.value.width,height:R.value.height}),G=at;function In({datapoint:e,index:t,seriesIndex:n}){N.value.events.datapointClick&&N.value.events.datapointClick({datapoint:e,seriesIndex:n}),G(`selectDatapoint`,{datapoint:e,index:t})}function Ln({from:e,to:t,duration:n,onUpdate:r,onDone:i,easing:a=se}){let o=performance.now();function s(c){let l=Math.min((c-o)/n,1),ee=a(l);r(e+(t-e)*ee,l),l<1?requestAnimationFrame(s):(r(t,1),i&&i())}requestAnimationFrame(s)}let K=x([]),q=f(()=>{_n.value,vn.value.forEach((e,t)=>{[null,void 0].includes(e.name)&&u({componentName:`VueUiNestedDonuts`,type:`datasetSerieAttribute`,property:`name`,index:t,debug:H.value}),[null,void 0].includes(e.series)?u({componentName:`VueUiNestedDonuts`,type:`datasetSerieAttribute`,property:`series`,index:t,debug:H.value}):e.series.length===0?u({componentName:`VueUiNestedDonuts`,type:`datasetAttributeEmpty`,property:`series at index ${t}`,debug:H.value}):e.series.forEach((e,t)=>{[null,void 0].includes(e.name)&&u({componentName:`VueUiNestedDonuts`,type:`datasetSerieAttribute`,property:`name`,index:t,key:`serie`,debug:H.value}),[null,void 0].includes(e.values)&&u({componentName:`VueUiNestedDonuts`,type:`datasetSerieAttribute`,property:`values`,index:t,key:`serie`,debug:H.value})})});let e=0;return vn.value.map((t,n)=>({...t,total:t.series.filter(e=>!K.value.includes(e.id)).map(e=>c(e.values).reduce((e,t)=>e+t,0)).reduce((e,t)=>e+t,0),datasetIndex:n,id:`${O.value}_${n}`,series:t.series.map((r,i)=>{let o=c(r.values).reduce((e,t)=>e+t,0);return{name:r.name,arcOf:t.name,arcOfId:`${O.value}_${n}`,id:`${O.value}_${n}_${i}`,seriesIndex:i,datasetIndex:n,color:l(r.color)||Fn.value[i]||a[i%a.length],value:A.value?on.value[e++]??0:o,absoluteValues:r.values||[]}})}))});rt(()=>D.dataset,e=>{Array.isArray(e)&&e.length>0&&(yn.value=!1)},{immediate:!0});let J=f(()=>Math.min(W.value.height,W.value.width)*(L.value.donut.strokeWidth/512)),Y=f(()=>[...q.value].map((e,t)=>{let n=e.series.filter(e=>!K.value.includes(e.id)).map(e=>e.value).reduce((e,t)=>e+t,0);return{...e,total:n,series:e.series.filter(e=>!K.value.includes(e.id)).map(e=>({...e,proportion:e.value/n}))}}));function Rn(e,t,n){let r=0;for(let t=0;t<e.length;t+=1)n.includes(e[t])&&(r+=1);return r<t}let X=x(Y.value);rt(()=>Y.value,e=>X.value=e);function zn(e){let t=e.map(e=>e.id);if(e.some(e=>K.value.includes(e.id))){let e=new Set(t);K.value=K.value.filter(t=>!e.has(t))}else K.value.push(...t);G(`selectLegend`,Y.value)}function Z(e){let t=D.dataset.flatMap((e,t)=>e.series.map((e,n)=>({value:c(e.values).reduce((e,t)=>e+t,0),id:`${O.value}_${t}_${n}`,arcOfId:`${O.value}_${t}`}))).find(t=>t.id===e.id);if(!t)return;let n=q.value.flatMap(e=>e.series).find(t=>t.id===e.id)?.value??0,r=X.value.flatMap(e=>e.series).find(t=>t.id===e.id),i=r?r.value:0,a=q.value.find(e=>e.id===t.arcOfId);if(!a)return;let o=a.series.map(e=>e.id),s=Rn(o,o.length-1,K.value);K.value.includes(e.id)?(K.value=K.value.filter(t=>t!==e.id),N.value.serieToggleAnimation.show?Ln({from:i,to:n,duration:N.value.serieToggleAnimation.durationMs,onUpdate:t=>{X.value=X.value.map(n=>({...n,series:n.series.map(n=>n.id===e.id?{...n,value:t}:n)}))},onDone:()=>{G(`selectLegend`,Y.value)}}):(X.value=X.value.map(t=>({...t,series:t.series.map(t=>t.id===e.id?{...t,value:n}:t)})),G(`selectLegend`,Y.value))):s&&(N.value.serieToggleAnimation.show?Ln({from:i,to:0,duration:N.value.serieToggleAnimation.durationMs,onUpdate:t=>{X.value=X.value.map(n=>({...n,series:n.series.map(n=>n.id===e.id?{...n,value:t}:n)}))},onDone:()=>{K.value.push(e.id),G(`selectLegend`,Y.value)}}):(X.value=X.value.map(t=>({...t,series:t.series.map(t=>t.id===e.id?{...t,value:0}:t)})),K.value.push(e.id),G(`selectLegend`,Y.value)))}function Bn(e){return q.value.length?q.value.flatMap(e=>e.series).filter(t=>t.name===e)||(H.value&&console.warn(`VueUiNestedDonuts - Series name not found "${e}"`),null):(H.value&&console.warn(`VueUiNestedDonuts - There are no series to show.`),null)}function Vn(e){let t=Bn(e);t!==null&&(Array.isArray(t)?t.forEach(e=>{K.value.includes(e.id)&&Z({id:e.id})}):K.value.includes(t.id)&&Z({id:t.id}))}function Hn(e){let t=Bn(e);t!==null&&(Array.isArray(t)?t.forEach(e=>{K.value.includes(e.id)||Z({id:e.id})}):K.value.includes(t.id)||Z({id:t.id}))}let Un=f(()=>J.value/q.value.length*L.value.donut.spacingRatio),Wn=f(()=>X.value.map((e,t)=>J.value-t*J.value/q.value.length)),Gn=f(()=>X.value.map((e,t)=>{let n=Math.abs(e.series.map(e=>e.value).reduce((e,t)=>e+t,0))>0,r=J.value-t*J.value/X.value.length,i=A.value?sn.value.find(e=>e.datasetIndex===t):null,a=[...e.series,...i?[i]:[]].map(e=>({...e,value:e.value<1e-11?Number.MIN_VALUE:e.value})),s=o({series:[{name:`_`,color:L.value.donut.emptyFill,value:1}]},W.value.width/2,W.value.height/2,r,r,1.99999,2,1,360,105.25,Un.value),c=`M ${W.value.width/2},${W.value.height/2+r}
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Dt as i,Ht as a,It as o,Jt as s,Kt as c,S as l,Ut as ee,X as te,Zt as ne,at as u,b as re,f as ie,i as ae,in as oe,it as se,n as ce,nn as le,nt as ue,p as de,pt as fe,t as pe,w 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{c as Ne}from"./canvas-lib-22VpOI4_.js";import{t as Pe}from"./useResponsive-CENUxfEL.js";import{t as Fe}from"./DefGrad-DKMq1REY.js";import{t as Ie}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Le}from"./A11yDataTable-DWNlWXzs.js";import{t as Re}from"./useUserOptionState-CXlFnwPv.js";import{t as ze}from"./useChartAccessibility-DOMuYJfm.js";import{t as Be}from"./labelUtils-CdtU-yB_.js";import{t as Ve}from"./Legend-DM0ClX3D.js";import{t as He}from"./vue_ui_nested_donuts-CRtGsJcz.js";import{Fragment as d,Teleport as Ue,computed as f,createBlock as p,createCommentVNode as m,createElementBlock as h,createElementVNode as g,createSlots as We,createTextVNode as Ge,createVNode as Ke,defineAsyncComponent as _,guardReactiveProps as v,mergeProps as qe,nextTick as Je,normalizeClass as Ye,normalizeProps as y,normalizeStyle as Xe,onBeforeUnmount as Ze,onMounted as Qe,openBlock as b,ref as x,renderList as S,renderSlot as C,resolveDynamicComponent as $e,shallowRef as et,toDisplayString as w,toRefs as tt,unref as T,vShow as nt,watch as rt,withCtx as E,withDirectives as it}from"vue";var at=/* @__PURE__ */ e({default:()=>It}),ot=[`id`],st=[`id`],ct=[`id`],lt={style:{position:`relative`}},ut=[`xmlns`,`aria-describedby`,`viewBox`],dt=[`width`,`height`],ft=[`id`],pt=[`id`],mt=[`id`],ht=[`flood-color`],gt=[`id`,`d`],_t=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],vt=[`d`,`fill`,`stroke`,`stroke-width`],yt={key:1},bt=[`d`,`fill`],xt={key:2},St=[`font-size`,`font-weight`,`fill`,`dy`],Ct=[`href`],wt=[`x`,`y`,`font-size`,`font-weight`,`fill`],Tt={key:3},Et=[`filter`],Dt=[`opacity`,`text-anchor`,`x`,`y`,`fill`,`font-size`,`font-weight`],Ot=[`opacity`,`text-anchor`,`x`,`y`,`fill`,`font-size`,`font-weight`],kt=[`d`,`fill`,`onMouseenter`,`onClick`,`onMouseleave`],At={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},jt={key:5,class:`vue-data-ui-watermark`},Mt=[`id`],Nt={key:0,class:`vue-ui-nested-donuts-legend-title`},Pt=[`onClick`],Ft={style:{display:`flex`,"align-items":`center`}},It=/*#__PURE__*/ be({__name:`vue-ui-nested-donuts`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`selectDatapoint`,`copyAlt`],setup(e,{expose:be,emit:at}){let It=_(()=>import(`./Tooltip-C1q0Qoh7.js`)),Lt=_(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),Rt=_(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),zt=_(()=>import(`./DataTable-0Vv-aGHD.js`)),Bt=_(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Vt=_(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Ht=_(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),Ut=_(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_nested_donuts:Wt}=t(),{isThemeValid:Gt,warnInvalidTheme:Kt}=Se(),D=e,qt=f({get(){return!!D.dataset&&D.dataset.length},set(e){return e}}),O=x(te()),Jt=x(!1),Yt=x(``),Xt=x(null),Zt=x(0),k=x(null),Qt=x(null),$t=x(null),en=x(null),tn=x(null),nn=x(0),rn=x(0),an=x(0),A=x(!0),on=x([]),sn=x([]),cn=x(!1),ln=x(null),un=x(null),j=x(null),dn=x({x:0,y:0}),fn=x(`pointer`),pn=x(!1),M=x(!1);function mn(e){M.value=e,Zt.value+=1}let N=x(Cn()),P=f(()=>N.value.style.chart.layout.labels),F=f(()=>N.value.style.chart.tooltip),I=f(()=>N.value.userOptions),L=f(()=>N.value.style.chart.layout),R=f(()=>N.value.style.chart);ve({config:()=>N.value,dataset:()=>D.dataset,component:`VueUiNestedDonuts`,rules:[ye.emptyArray,{test:e=>e.some(e=>e.series.length>6),message:[`👀 Some series have > 6 data points. Consider:`,``,`▶️ Grouping small values dynamically into a single "Other" data point.`,``,`▶️ Using filters to let users choose a maximum number of data points to display.`,``,`▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read.`]},{test:e=>e.length===1,message:[`👀 There is only one series in your dataset. Consider:`,``,`▶️ Using VueUiDonut instead.`]},{test:e=>e.length>6,message:[`👀 The number of series in your dataset > 6. Consider:`,``,`▶️ 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 z=f(()=>N.value.userOptions.useCursorPointer),hn={name:``,series:[{name:``,values:[3],color:`#BABABA`},{name:``,values:[2],color:`#AAAAAA`},{name:``,values:[1],color:`#CACACA`}]},gn=f(()=>oe({defaultConfig:{useCssAnimation:!1,table:{show:!1},startAnimation:{show:!1},userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{labels:{dataLabels:{show:!1}}},legend:{backgroundColor:`transparent`,showValue:!1,showPercentage:!1},title:{color:`#1A1A1A`,subtitle:{color:`#5A5A5A`}}}}},userConfig:N.value.skeletonConfig??{}})),{loading:_n,FINAL_DATASET:vn,manualLoading:yn}=ge({...tt(D),FINAL_CONFIG:N,prepareConfig:Cn,callback:()=>{Promise.resolve().then(async()=>{await Dn()})},skeletonDataset:D.config?.skeletonDataset??[hn,hn],skeletonConfig:oe({defaultConfig:N.value,userConfig:gn.value})}),{userOptionsVisible:bn,setUserOptionsVisibility:xn,keepUserOptionState:Sn}=Re({config:N.value}),{svgRef:B}=ze({config:R.value.title});function Cn(){let e=xe({userConfig:D.config,defaultConfig:Wt}),t={},n=e.theme;if(n){if(!Gt.value(e))Kt(e),t=e;else{let r=xe({userConfig:He[n]||D.config,defaultConfig:e});t={...xe({userConfig:D.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:le[n]||a}}}else t=e;return t}let wn=ne(D.config);rt(()=>D.config,(e,t)=>{let n=ne(e),r=n!==wn;wn=n;let i=Cn();r?(_n.value||(N.value=i),bn.value=!N.value.userOptions.showOnChartHover,kn(),nn.value+=1,rn.value+=1,an.value+=1,U.value.dataLabels.show=P.value.dataLabels.show,U.value.showTable=N.value.table.show,U.value.showTooltip=F.value.show,W.value.width=R.value.width,W.value.height=R.value.height):(N.value.style.chart.tooltip=i.style.chart.tooltip,U.value.showTooltip=N.value.style.chart.tooltip.show)},{deep:!0});let Tn=f(()=>{let{top:e,right:t,bottom:n,left:r}=R.value.padding;return{css:`padding:${e}px ${t}px ${n}px ${r}px`,top:e,right:t,bottom:n,left:r}});function En(e,t=1e3,n=50){return new Promise(r=>{let i=e.length;on.value=Array(i).fill(0),sn.value=[];let a=0;e.forEach((e,o)=>{setTimeout(()=>{let n=performance.now();function s(l){let ee=Math.min((l-n)/t,1),te=e*se(ee);on.value[o]=te,on.value=[...on.value];let ne=[],u=0;D.dataset.forEach((e,t)=>{let n=re(e.series.reduce((e,t)=>e+re(c(t.values).reduce((e,t)=>e+t,0)),0))-re(on.value.slice(u,u+e.series.length).reduce((e,t)=>e+t,0));n>Number.MIN_VALUE&&ne.push({name:`__ghost__`,arcOf:e.name,arcOfId:`${O.value}_${t}`,id:`ghost_${O.value}_${t}`,seriesIndex:-1,datasetIndex:t,color:`transparent`,value:n,fullValue:n,absoluteValues:[],ghost:!0}),u+=e.series.length}),sn.value=ne,ee<1?requestAnimationFrame(s):(a+=1,a===i&&r())}requestAnimationFrame(s)},o*n)})})}async function Dn(){if(N.value.startAnimation?.show){let e=vn.value.flatMap(e=>e.series).map(e=>c(e.values).reduce((e,t)=>e+t,0));on.value=e.map(()=>0),A.value=!0,sn.value=vn.value.map((e,t)=>{let n=e.series.reduce((e,t)=>e+c(t.values).reduce((e,t)=>e+t,0),0);return{name:`__ghost__`,arcOf:e.name,arcOfId:`${O.value}_${t}`,id:`ghost_${O.value}_${t}`,seriesIndex:-1,datasetIndex:t,color:`transparent`,value:n,fullValue:n,absoluteValues:[],ghost:!0}}),await Je(),En(e,N.value.startAnimation.durationMs,N.value.startAnimation.staggerMs).then(()=>{A.value=!1,sn.value=[]})}else A.value=!1}Qe(async()=>{cn.value=!0,kn(),await Dn()});let V=et(null),On=et(null),H=f(()=>N.value.debug);function kn(){if(he(D.dataset)?(u({componentName:`VueUiNestedDonuts`,type:`dataset`,debug:H.value}),qt.value=!1,yn.value=!0):yn.value=N.value.loading,N.value.responsive){let e=Ne(()=>{let{width:e,height:t}=Pe({chart:k.value,title:R.value.title.text?Qt.value:null,legend:R.value.legend.show?$t.value:null,source:en.value,noTitle:tn.value,padding:Tn.value});requestAnimationFrame(()=>{W.value.width=e,W.value.height=t})});V.value&&(On.value&&V.value.unobserve(On.value),V.value.disconnect()),V.value=new ResizeObserver(e),On.value=k.value.parentNode,V.value.observe(On.value)}}Ze(()=>{V.value&&(On.value&&V.value.unobserve(On.value),V.value.disconnect())});let{isPrinting:An,isImaging:jn,generatePdf:Mn,generateImage:Nn}=Me({elementId:`nested_donuts_${O.value}`,fileName:R.value.title.text||`vue-ui-nested-donuts`,options:N.value.userOptions.print}),Pn=f(()=>N.value.userOptions.show&&!R.value.title.text),Fn=f(()=>me(N.value.customPalette)),U=x({dataLabels:{show:P.value.dataLabels.show},showTable:N.value.table.show,showTooltip:F.value.show});rt(N,()=>{U.value={dataLabels:{show:P.value.dataLabels.show},showTable:N.value.table.show,showTooltip:F.value.show}},{immediate:!0});let W=x({width:R.value.width,height:R.value.height}),G=at;function In({datapoint:e,index:t,seriesIndex:n}){N.value.events.datapointClick&&N.value.events.datapointClick({datapoint:e,seriesIndex:n}),G(`selectDatapoint`,{datapoint:e,index:t})}function Ln({from:e,to:t,duration:n,onUpdate:r,onDone:i,easing:a=se}){let o=performance.now();function s(c){let l=Math.min((c-o)/n,1),ee=a(l);r(e+(t-e)*ee,l),l<1?requestAnimationFrame(s):(r(t,1),i&&i())}requestAnimationFrame(s)}let K=x([]),q=f(()=>{_n.value,vn.value.forEach((e,t)=>{[null,void 0].includes(e.name)&&u({componentName:`VueUiNestedDonuts`,type:`datasetSerieAttribute`,property:`name`,index:t,debug:H.value}),[null,void 0].includes(e.series)?u({componentName:`VueUiNestedDonuts`,type:`datasetSerieAttribute`,property:`series`,index:t,debug:H.value}):e.series.length===0?u({componentName:`VueUiNestedDonuts`,type:`datasetAttributeEmpty`,property:`series at index ${t}`,debug:H.value}):e.series.forEach((e,t)=>{[null,void 0].includes(e.name)&&u({componentName:`VueUiNestedDonuts`,type:`datasetSerieAttribute`,property:`name`,index:t,key:`serie`,debug:H.value}),[null,void 0].includes(e.values)&&u({componentName:`VueUiNestedDonuts`,type:`datasetSerieAttribute`,property:`values`,index:t,key:`serie`,debug:H.value})})});let e=0;return vn.value.map((t,n)=>({...t,total:t.series.filter(e=>!K.value.includes(e.id)).map(e=>c(e.values).reduce((e,t)=>e+t,0)).reduce((e,t)=>e+t,0),datasetIndex:n,id:`${O.value}_${n}`,series:t.series.map((r,i)=>{let o=c(r.values).reduce((e,t)=>e+t,0);return{name:r.name,arcOf:t.name,arcOfId:`${O.value}_${n}`,id:`${O.value}_${n}_${i}`,seriesIndex:i,datasetIndex:n,color:l(r.color)||Fn.value[i]||a[i%a.length],value:A.value?on.value[e++]??0:o,absoluteValues:r.values||[]}})}))});rt(()=>D.dataset,e=>{Array.isArray(e)&&e.length>0&&(yn.value=!1)},{immediate:!0});let J=f(()=>Math.min(W.value.height,W.value.width)*(L.value.donut.strokeWidth/512)),Y=f(()=>[...q.value].map((e,t)=>{let n=e.series.filter(e=>!K.value.includes(e.id)).map(e=>e.value).reduce((e,t)=>e+t,0);return{...e,total:n,series:e.series.filter(e=>!K.value.includes(e.id)).map(e=>({...e,proportion:e.value/n}))}}));function Rn(e,t,n){let r=0;for(let t=0;t<e.length;t+=1)n.includes(e[t])&&(r+=1);return r<t}let X=x(Y.value);rt(()=>Y.value,e=>X.value=e);function zn(e){let t=e.map(e=>e.id);if(e.some(e=>K.value.includes(e.id))){let e=new Set(t);K.value=K.value.filter(t=>!e.has(t))}else K.value.push(...t);G(`selectLegend`,Y.value)}function Z(e){let t=D.dataset.flatMap((e,t)=>e.series.map((e,n)=>({value:c(e.values).reduce((e,t)=>e+t,0),id:`${O.value}_${t}_${n}`,arcOfId:`${O.value}_${t}`}))).find(t=>t.id===e.id);if(!t)return;let n=q.value.flatMap(e=>e.series).find(t=>t.id===e.id)?.value??0,r=X.value.flatMap(e=>e.series).find(t=>t.id===e.id),i=r?r.value:0,a=q.value.find(e=>e.id===t.arcOfId);if(!a)return;let o=a.series.map(e=>e.id),s=Rn(o,o.length-1,K.value);K.value.includes(e.id)?(K.value=K.value.filter(t=>t!==e.id),N.value.serieToggleAnimation.show?Ln({from:i,to:n,duration:N.value.serieToggleAnimation.durationMs,onUpdate:t=>{X.value=X.value.map(n=>({...n,series:n.series.map(n=>n.id===e.id?{...n,value:t}:n)}))},onDone:()=>{G(`selectLegend`,Y.value)}}):(X.value=X.value.map(t=>({...t,series:t.series.map(t=>t.id===e.id?{...t,value:n}:t)})),G(`selectLegend`,Y.value))):s&&(N.value.serieToggleAnimation.show?Ln({from:i,to:0,duration:N.value.serieToggleAnimation.durationMs,onUpdate:t=>{X.value=X.value.map(n=>({...n,series:n.series.map(n=>n.id===e.id?{...n,value:t}:n)}))},onDone:()=>{K.value.push(e.id),G(`selectLegend`,Y.value)}}):(X.value=X.value.map(t=>({...t,series:t.series.map(t=>t.id===e.id?{...t,value:0}:t)})),K.value.push(e.id),G(`selectLegend`,Y.value)))}function Bn(e){return q.value.length?q.value.flatMap(e=>e.series).filter(t=>t.name===e)||(H.value&&console.warn(`VueUiNestedDonuts - Series name not found "${e}"`),null):(H.value&&console.warn(`VueUiNestedDonuts - There are no series to show.`),null)}function Vn(e){let t=Bn(e);t!==null&&(Array.isArray(t)?t.forEach(e=>{K.value.includes(e.id)&&Z({id:e.id})}):K.value.includes(t.id)&&Z({id:t.id}))}function Hn(e){let t=Bn(e);t!==null&&(Array.isArray(t)?t.forEach(e=>{K.value.includes(e.id)||Z({id:e.id})}):K.value.includes(t.id)||Z({id:t.id}))}let Un=f(()=>J.value/q.value.length*L.value.donut.spacingRatio),Wn=f(()=>X.value.map((e,t)=>J.value-t*J.value/q.value.length)),Gn=f(()=>X.value.map((e,t)=>{let n=Math.abs(e.series.map(e=>e.value).reduce((e,t)=>e+t,0))>0,r=J.value-t*J.value/X.value.length,i=A.value?sn.value.find(e=>e.datasetIndex===t):null,a=[...e.series,...i?[i]:[]].map(e=>({...e,value:e.value<1e-11?Number.MIN_VALUE:e.value})),s=o({series:[{name:`_`,color:L.value.donut.emptyFill,value:1}]},W.value.width/2,W.value.height/2,r,r,1.99999,2,1,360,105.25,Un.value),c=`M ${W.value.width/2},${W.value.height/2+r}
2
2
  a ${r},${r} 0 1,1 0,${-2*r}
3
3
  a ${r},${r} 0 1,1 0,${2*r}`;return{...e,hasData:n,radius:r,skeleton:s,fullCirclePath:c,donut:o({series:a},W.value.width/2,W.value.height/2,r,r,1.99999,2,1,360,105.25,Un.value)}})),Kn=f(()=>[...q.value].map((e,t)=>{let n=t*J.value/q.value.length;return{sizeRatio:n,donut:o({series:[{value:1}]},W.value.width/2,W.value.height/2,J.value-n,J.value-n,1.99999,2,1,360,105.25,J.value/q.value.length*L.value.donut.spacingRatio)[0]}})),qn=x(null),Jn=x(null),Yn=x(null),Xn=x(null);function Zn({datapoint:e,seriesIndex:t}){N.value.events.datapointLeave&&N.value.events.datapointLeave({datapoint:e,seriesIndex:t}),Jt.value=!1,qn.value=null,Xt.value=null,Jn.value=null,Yn.value=null,j.value=null,fn.value=`pointer`}function Qn({val:e,percentage:t,showVal:n,showPercentage:r,config:i}){return Be({config:i,val:e,percentage:t,showVal:n,showPercentage:r})}function $n({datapoint:e,_relativeIndex:t,seriesIndex:r,triggerMode:a=`pointer`}){N.value.events.datapointEnter&&N.value.events.datapointEnter({datapoint:e,seriesIndex:r}),fn.value=a,j.value=r,qn.value=e.arcOfId,Jn.value=e.id,Yn.value=r,Xt.value=e.id,Xn.value={datapoint:e,seriesIndex:r,series:X.value,config:N.value};let o=F.value.customFormat;if(i(o)&&fe(()=>o({seriesIndex:r,datapoint:e,series:X.value,config:N.value})))Yt.value=o({seriesIndex:r,datapoint:e,series:X.value,config:N.value});else{let t=``;if(F.value.showAllItemsAtIndex&&K.value.length===0){let i=X.value.map(e=>e.series.find(e=>e.seriesIndex===r));i.forEach((a,o)=>{if(!a)return``;t+=`
4
4
  <div style="display:flex; flex-direction: column; justify-content:flex-start; align-items:flex-start;padding:6px 0; ${o<i.length-1?`border-bottom:1px solid ${F.value.borderColor}`:``}">
@@ -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,Dt as i,Ht as a,S as o,X as s,Zt as ee,at as te,i as ne,in as re,nt as ie,pt as ae,t as oe,w as se,zt as ce}from"./lib-rPeBMZrn.js";import{n as le,t as ue}from"./BaseScanner-8NdoBs7B.js";import{n as de,t as fe}from"./useHints-BH9r_0Vd.js";import{t as pe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as me}from"./resolveChartConfig-CIhClE5R.js";import{t as he}from"./chartImage-DPGnEuYM.js";import{n as ge}from"./Title-BliHuXfT.js";import{t as _e}from"./useChartExport-BZts4KFb.js";import{n as ve,t as ye}from"./tableIntegration-CNoJ1CIY.js";import{n as be,t as xe}from"./annotationSlots-BRR85CqJ.js";import{n as Se,t as Ce}from"./userOptionsSlots-DYuo-E5m.js";import{t as we}from"./usePrinter-sVoTzet1.js";import{t as Te}from"./useTransitions-ChGGrtrv.js";import{c as Ee}from"./canvas-lib-22VpOI4_.js";import{t as De}from"./useResponsive-CENUxfEL.js";import{t as Oe}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as ke}from"./A11yDataTable-DWNlWXzs.js";import{t as Ae}from"./useUserOptionState-CXlFnwPv.js";import{t as je}from"./useChartAccessibility-DOMuYJfm.js";import{t as Me}from"./labelUtils-CdtU-yB_.js";import{t as Ne}from"./Legend-DM0ClX3D.js";import{t as Pe}from"./useAutoSizeLabelsInsideViewbox-AIRF0PlD.js";import{t as Fe}from"./vue_ui_onion-C9BedU_-.js";import{Fragment as Ie,Teleport as Le,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createSlots as Re,createTextVNode as ze,createVNode as Be,defineAsyncComponent as p,guardReactiveProps as m,mergeProps as Ve,nextTick as He,normalizeClass as h,normalizeProps as g,normalizeStyle as _,onBeforeUnmount as Ue,onMounted as We,openBlock as v,ref as y,renderList as b,renderSlot as x,resolveDynamicComponent as Ge,shallowRef as Ke,toDisplayString as qe,toRefs as Je,unref as S,watch as Ye,withCtx as C}from"vue";var Xe=/* @__PURE__ */ e({default:()=>vt}),Ze=[`id`],Qe=[`id`],$e=[`id`],et={style:{position:`relative`}},tt=[`xmlns`,`aria-describedby`,`viewBox`],nt=[`width`,`height`],rt=[`cx`,`cy`,`r`,`stroke`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`],it=[`cx`,`cy`,`r`,`stroke`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`],at=[`id`],ot=[`stdDeviation`],st=[`filter`],ct=[`cx`,`cy`,`r`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`],lt=[`cx`,`cy`,`r`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`,`onMouseenter`,`onMouseleave`,`onClick`],ut={key:2},dt=[`onMouseenter`,`onMouseleave`,`onClick`],ft=[`transform`,`font-size`,`fill`,`font-weight`],pt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},mt={key:5,class:`vue-data-ui-watermark`},ht=[`id`],gt=[`onClick`],_t=[`innerHTML`],vt=/*#__PURE__*/ pe({__name:`vue-ui-onion`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`copyAlt`],setup(e,{expose:pe,emit:Xe}){let vt=p(()=>import(`./Tooltip-C1q0Qoh7.js`)),yt=p(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),bt=p(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),xt=p(()=>import(`./DataTable-0Vv-aGHD.js`)),St=p(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Ct=p(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),wt=p(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),Tt=p(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_onion:Et}=t(),w=e,Dt=c(()=>!!w.dataset&&w.dataset.length),T=y(s()),Ot=y(null),kt=y(0),At=y(!1),jt=y(``),E=y([]),D=y(null),Mt=y(null),Nt=y(null),Pt=y(null),Ft=y(null),It=y(0),Lt=y(0),Rt=y(0),zt=y(!1),Bt=y(!1),Vt=y(null),O=y(null),Ht=y({x:0,y:0}),k=y(`pointer`),Ut=y(!1),A=y(Xt()),j=c(()=>A.value.userOptions),M=c(()=>A.value.style.chart.layout.labels),N=c(()=>A.value.style.chart.layout),P=c(()=>A.value.style.chart.tooltip),F=c(()=>A.value.style.chart);de({config:()=>A.value,dataset:()=>w.dataset,component:`VueUiOnion`,rules:[fe.emptyArray,{test:e=>e.length>8,message:[`👀 The number of series is > 8. 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{transitionEnabled:I}=Te({config:()=>A.value.transitions,dataset:()=>w.dataset}),L=c(()=>A.value.userOptions.useCursorPointer),Wt=c(()=>re({defaultConfig:{userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{gutter:{color:`#99999950`},labels:{show:!1}},legend:{backgroundColor:`transparent`}}}},userConfig:A.value.skeletonConfig??{}})),{loading:R,FINAL_DATASET:Gt,manualLoading:Kt}=le({...Je(w),FINAL_CONFIG:A,prepareConfig:Xt,callback:()=>{Promise.resolve().then(async()=>{await He(),bn()})},skeletonDataset:w.config?.skeletonDataset??[{name:`_`,percentage:50,value:1,color:`#DBDBDB`},{name:`_`,percentage:50,value:1,color:`#C4C4C4`},{name:`_`,percentage:50,value:1,color:`#ADADAD`},{name:`_`,percentage:50,value:1,color:`#969696`}],skeletonConfig:re({defaultConfig:A.value,userConfig:Wt.value})}),{userOptionsVisible:qt,setUserOptionsVisibility:Jt,keepUserOptionState:Yt}=Ae({config:A.value}),{svgRef:z}=je({config:F.value.title});function Xt(){return me(w.config,Et,Fe)}let Zt=ee(w.config);Ye(()=>w.config,(e,t)=>{let n=ee(e),r=n!==Zt;Zt=n;let i=Xt();r?(R.value||(A.value=i),qt.value=!A.value.userOptions.showOnChartHover,pn(),It.value+=1,Lt.value+=1,Rt.value+=1,B.value.showTable=A.value.table.show,B.value.showTooltip=P.value.show):(A.value.style.chart.tooltip=i.style.chart.tooltip,B.value.showTooltip=A.value.style.chart.tooltip.show)},{deep:!0});let{isPrinting:Qt,isImaging:$t,generatePdf:en,generateImage:tn}=we({elementId:`vue-ui-onion_${T.value}`,fileName:F.value.title.text||`vue-ui-onion`,options:A.value.userOptions.print}),nn=c(()=>A.value.userOptions.show&&!F.value.title.text),rn=c(()=>se(A.value.customPalette)),B=y({showTable:A.value.table.show,showTooltip:P.value.show});Ye(A,()=>{B.value={showTable:A.value.table.show,showTooltip:P.value.show}},{immediate:!0});let V=y({height:512,width:512,padding:{top:64,left:64,right:64,bottom:64},minRadius:64}),H=Ke(null),U=Ke(null);We(()=>{Bt.value=!0,pn()});let{autoSizeLabels:an}=Pe({svgRef:z,fontSize:()=>M.value.fontSize,minFontSize:()=>M.value.minFontSize,labelClass:`.vue-ui-onion-label`}),W=null,G=null,K=0;function on(){W!==null&&(cancelAnimationFrame(W),W=null),G!==null&&(clearTimeout(G),G=null)}function sn(e){return String(e).split(`,`).map(e=>{let t=e.trim(),n=Number.parseFloat(t);return Number.isFinite(n)?t.endsWith(`ms`)?n:n*1e3:0})}function cn(){return typeof window>`u`||!I.value||zt.value||R.value||!z.value?0:Array.from(z.value.querySelectorAll(`.vue-ui-onion-label.vue-data-ui-transition`)).reduce((e,t)=>{let n=window.getComputedStyle(t);if(n.transitionProperty===`none`)return e;let r=sn(n.transitionDuration),i=sn(n.transitionDelay),a=Math.max(r.length,i.length),o=Array.from({length:a},(e,t)=>(r[t%r.length]??0)+(i[t%i.length]??0)).reduce((e,t)=>Math.max(e,t),0);return Math.max(e,o)},0)}function ln(){typeof window<`u`&&(W=requestAnimationFrame(()=>{W=null,an()}))}function un(){if(typeof window>`u`)return;let e=++K;on(),He(()=>{e===K&&(W=requestAnimationFrame(()=>{if(W=null,e!==K)return;let t=cn();t<=0?ln():G=setTimeout(()=>{G=null,e===K&&ln()},t+34)}))})}let dn=c(()=>A.value.debug),fn=null;function pn(){if(ce(w.dataset)&&(te({componentName:`VueUiOnion`,type:`dataset`,debug:dn.value}),Kt.value=!0),ce(w.dataset)||(Kt.value=A.value.loading),A.value.responsive){let e=64/512,t=Ee(()=>{fn&&clearTimeout(fn),zt.value=!0;let{width:t,height:n}=De({chart:D.value,title:F.value.title.text?Mt.value:null,legend:F.value.legend.show?Nt.value:null,source:Pt.value,noTitle:Ft.value});n-=12,requestAnimationFrame(async()=>{V.value.width=t,V.value.height=n,V.value.padding.top=Math.max(t,n)*e,V.value.padding.right=Math.max(t,n)*e,V.value.padding.bottom=Math.max(t,n)*e,V.value.padding.left=Math.max(t,n)*e,V.value.minRadius=Math.min(t,n)*e,fn=setTimeout(()=>{zt.value=!1,un()},0)})});H.value&&(U.value&&H.value.unobserve(U.value),H.value.disconnect()),H.value=new ResizeObserver(t),U.value=D.value.parentNode,H.value.observe(U.value)}un()}Ue(()=>{K+=1,on(),H.value&&(U.value&&H.value.unobserve(U.value),H.value.disconnect())});let q=c(()=>({top:V.value.padding.top,left:V.value.padding.left,right:V.value.width-V.value.padding.right,bottom:V.value.height-V.value.padding.bottom,centerX:V.value.width/2,centerY:V.value.height/2,width:V.value.width-V.value.padding.right-V.value.padding.left,height:V.value.height-V.value.padding.bottom-V.value.padding.top,minRadius:V.value.minRadius,maxRadius:Math.min(V.value.width,V.value.height)-V.value.padding.top*2})),J=c(()=>(dn.value&&Gt.value.forEach((e,t)=>{[null,void 0].includes(e.name)&&te({componentName:`VueUiOnion`,type:`datasetSerieAttribute`,property:`name`,index:t}),[void 0].includes(e.percentage)&&te({componentName:`VueUiOnion`,type:`datasetSerieAttribute`,property:`percentage`,index:t})}),Gt.value.map((e,t)=>{let n=`onion_serie_${t}_${T.value}`;return{...e,percentage:e.percentage||0,targetPercentage:e.percentage||0,color:o(e.color)||rn.value[t]||a[t],id:n,shape:`circle`,opacity:E.value.includes(n)?.5:1,absoluteIndex:t,segregate:()=>En(n),isSegregated:E.value.includes(n)}}))),mn=c(()=>J.value.map((e,t)=>{let r=F.value.legend.showValue,i=F.value.legend.showPercentage,a=In({showVal:r,showPercentage:i,val:ne(M.value.value.formatter,e.value,n({p:e.prefix||``,v:e.value,s:e.suffix||``,r:F.value.legend.roundingValue})),percentage:n({v:e.percentage??0,s:`%`,r:F.value.legend.roundingPercentage}),config:F.value.legend});return{...e,display:`${e.name}${r||i?`: `:``}${a}`}})),hn=y(J.value),gn=c(()=>A.value.useStartAnimation),_n=y(null),vn=c(()=>Math.max(...J.value.map(e=>e.percentage))),yn=y(!1);Ye(()=>J.value,bn,{immediate:!0,deep:!0}),Ye(()=>w.dataset,e=>{Array.isArray(e)&&e.length>0&&(Kt.value=!1),un()},{deep:!0,flush:`post`});function bn(){if(gn.value&&!yn.value&&!R.value){hn.value=J.value.map(e=>({...e,percentage:0}));let e=0;function t(){e>=vn.value?(cancelAnimationFrame(_n.value),hn.value=J.value,yn.value=!0):(hn.value=J.value.map(t=>({...t,percentage:e<t.targetPercentage?e:t.targetPercentage})),e+=1,requestAnimationFrame(t),yn.value=!0)}t()}else hn.value=J.value}let xn=c(()=>({cy:`onion-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`:``})),Sn=c(()=>J.value.filter(e=>!E.value.includes(e.id)).length),Y=c(()=>{let e=Math.min(q.value.width,q.value.height)/2/J.value.length;return{gutter:(e>N.value.maxThickness?N.value.maxThickness:e)*N.value.gutter.width,track:(e>N.value.maxThickness?N.value.maxThickness:e)*N.value.track.width}}),X=c(()=>hn.value.filter(e=>!E.value.includes(e.id)).map((e,t)=>{let n=(q.value.maxRadius-Y.value.track)/Sn.value/2*(1+t),r=q.value.centerY-n;return{percentage:e.percentage||0,...e,labelY:r,radius:n,path:Cn(n,e.percentage||0)}}));function Cn(e,t){let n=2*Math.PI*e,r=n*.75,i=`${r} ${n}`,a=r*(1-t/100);return{bgDashArray:`${r} ${n}`,bgDashOffset:0,dashArray:i,dashOffset:a,fullOffset:0,active:`
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Dt as i,Ht as a,S as o,X as s,Zt as ee,at as te,i as ne,in as re,nt as ie,pt as ae,t as oe,w as se,zt as ce}from"./lib-rPeBMZrn.js";import{n as le,t as ue}from"./BaseScanner-8NdoBs7B.js";import{n as de,t as fe}from"./useHints-BH9r_0Vd.js";import{t as pe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as me}from"./resolveChartConfig-CIhClE5R.js";import{t as he}from"./chartImage-DPGnEuYM.js";import{n as ge}from"./Title-BliHuXfT.js";import{t as _e}from"./useChartExport-BZts4KFb.js";import{n as ve,t as ye}from"./tableIntegration-CNoJ1CIY.js";import{n as be,t as xe}from"./annotationSlots-BRR85CqJ.js";import{n as Se,t as Ce}from"./userOptionsSlots-DYuo-E5m.js";import{t as we}from"./usePrinter-sVoTzet1.js";import{t as Te}from"./useTransitions-ChGGrtrv.js";import{c as Ee}from"./canvas-lib-22VpOI4_.js";import{t as De}from"./useResponsive-CENUxfEL.js";import{t as Oe}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as ke}from"./A11yDataTable-DWNlWXzs.js";import{t as Ae}from"./useUserOptionState-CXlFnwPv.js";import{t as je}from"./useChartAccessibility-DOMuYJfm.js";import{t as Me}from"./labelUtils-CdtU-yB_.js";import{t as Ne}from"./Legend-DM0ClX3D.js";import{t as Pe}from"./useAutoSizeLabelsInsideViewbox-AIRF0PlD.js";import{t as Fe}from"./vue_ui_onion-C9BedU_-.js";import{Fragment as Ie,Teleport as Le,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createSlots as Re,createTextVNode as ze,createVNode as Be,defineAsyncComponent as p,guardReactiveProps as m,mergeProps as Ve,nextTick as He,normalizeClass as h,normalizeProps as g,normalizeStyle as _,onBeforeUnmount as Ue,onMounted as We,openBlock as v,ref as y,renderList as b,renderSlot as x,resolveDynamicComponent as Ge,shallowRef as Ke,toDisplayString as qe,toRefs as Je,unref as S,watch as Ye,withCtx as C}from"vue";var Xe=/* @__PURE__ */ e({default:()=>vt}),Ze=[`id`],Qe=[`id`],$e=[`id`],et={style:{position:`relative`}},tt=[`xmlns`,`aria-describedby`,`viewBox`],nt=[`width`,`height`],rt=[`cx`,`cy`,`r`,`stroke`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`],it=[`cx`,`cy`,`r`,`stroke`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`],at=[`id`],ot=[`stdDeviation`],st=[`filter`],ct=[`cx`,`cy`,`r`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`],lt=[`cx`,`cy`,`r`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`,`onMouseenter`,`onMouseleave`,`onClick`],ut={key:2},dt=[`onMouseenter`,`onMouseleave`,`onClick`],ft=[`transform`,`font-size`,`fill`,`font-weight`],pt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},mt={key:5,class:`vue-data-ui-watermark`},ht=[`id`],gt=[`onClick`],_t=[`innerHTML`],vt=/*#__PURE__*/ pe({__name:`vue-ui-onion`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`copyAlt`],setup(e,{expose:pe,emit:Xe}){let vt=p(()=>import(`./Tooltip-C1q0Qoh7.js`)),yt=p(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),bt=p(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),xt=p(()=>import(`./DataTable-0Vv-aGHD.js`)),St=p(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Ct=p(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),wt=p(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),Tt=p(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_onion:Et}=t(),w=e,Dt=c(()=>!!w.dataset&&w.dataset.length),T=y(s()),Ot=y(null),kt=y(0),At=y(!1),jt=y(``),E=y([]),D=y(null),Mt=y(null),Nt=y(null),Pt=y(null),Ft=y(null),It=y(0),Lt=y(0),Rt=y(0),zt=y(!1),Bt=y(!1),Vt=y(null),O=y(null),Ht=y({x:0,y:0}),k=y(`pointer`),Ut=y(!1),A=y(Xt()),j=c(()=>A.value.userOptions),M=c(()=>A.value.style.chart.layout.labels),N=c(()=>A.value.style.chart.layout),P=c(()=>A.value.style.chart.tooltip),F=c(()=>A.value.style.chart);de({config:()=>A.value,dataset:()=>w.dataset,component:`VueUiOnion`,rules:[fe.emptyArray,{test:e=>e.length>8,message:[`👀 The number of series is > 8. 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{transitionEnabled:I}=Te({config:()=>A.value.transitions,dataset:()=>w.dataset}),L=c(()=>A.value.userOptions.useCursorPointer),Wt=c(()=>re({defaultConfig:{userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{gutter:{color:`#99999950`},labels:{show:!1}},legend:{backgroundColor:`transparent`}}}},userConfig:A.value.skeletonConfig??{}})),{loading:R,FINAL_DATASET:Gt,manualLoading:Kt}=le({...Je(w),FINAL_CONFIG:A,prepareConfig:Xt,callback:()=>{Promise.resolve().then(async()=>{await He(),bn()})},skeletonDataset:w.config?.skeletonDataset??[{name:`_`,percentage:50,value:1,color:`#DBDBDB`},{name:`_`,percentage:50,value:1,color:`#C4C4C4`},{name:`_`,percentage:50,value:1,color:`#ADADAD`},{name:`_`,percentage:50,value:1,color:`#969696`}],skeletonConfig:re({defaultConfig:A.value,userConfig:Wt.value})}),{userOptionsVisible:qt,setUserOptionsVisibility:Jt,keepUserOptionState:Yt}=Ae({config:A.value}),{svgRef:z}=je({config:F.value.title});function Xt(){return me(w.config,Et,Fe)}let Zt=ee(w.config);Ye(()=>w.config,(e,t)=>{let n=ee(e),r=n!==Zt;Zt=n;let i=Xt();r?(R.value||(A.value=i),qt.value=!A.value.userOptions.showOnChartHover,pn(),It.value+=1,Lt.value+=1,Rt.value+=1,B.value.showTable=A.value.table.show,B.value.showTooltip=P.value.show):(A.value.style.chart.tooltip=i.style.chart.tooltip,B.value.showTooltip=A.value.style.chart.tooltip.show)},{deep:!0});let{isPrinting:Qt,isImaging:$t,generatePdf:en,generateImage:tn}=we({elementId:`vue-ui-onion_${T.value}`,fileName:F.value.title.text||`vue-ui-onion`,options:A.value.userOptions.print}),nn=c(()=>A.value.userOptions.show&&!F.value.title.text),rn=c(()=>se(A.value.customPalette)),B=y({showTable:A.value.table.show,showTooltip:P.value.show});Ye(A,()=>{B.value={showTable:A.value.table.show,showTooltip:P.value.show}},{immediate:!0});let V=y({height:512,width:512,padding:{top:64,left:64,right:64,bottom:64},minRadius:64}),H=Ke(null),U=Ke(null);We(()=>{Bt.value=!0,pn()});let{autoSizeLabels:an}=Pe({svgRef:z,fontSize:()=>M.value.fontSize,minFontSize:()=>M.value.minFontSize,labelClass:`.vue-ui-onion-label`}),W=null,G=null,K=0;function on(){W!==null&&(cancelAnimationFrame(W),W=null),G!==null&&(clearTimeout(G),G=null)}function sn(e){return String(e).split(`,`).map(e=>{let t=e.trim(),n=Number.parseFloat(t);return Number.isFinite(n)?t.endsWith(`ms`)?n:n*1e3:0})}function cn(){return typeof window>`u`||!I.value||zt.value||R.value||!z.value?0:Array.from(z.value.querySelectorAll(`.vue-ui-onion-label.vue-data-ui-transition`)).reduce((e,t)=>{let n=window.getComputedStyle(t);if(n.transitionProperty===`none`)return e;let r=sn(n.transitionDuration),i=sn(n.transitionDelay),a=Math.max(r.length,i.length),o=Array.from({length:a},(e,t)=>(r[t%r.length]??0)+(i[t%i.length]??0)).reduce((e,t)=>Math.max(e,t),0);return Math.max(e,o)},0)}function ln(){typeof window<`u`&&(W=requestAnimationFrame(()=>{W=null,an()}))}function un(){if(typeof window>`u`)return;let e=++K;on(),He(()=>{e===K&&(W=requestAnimationFrame(()=>{if(W=null,e!==K)return;let t=cn();t<=0?ln():G=setTimeout(()=>{G=null,e===K&&ln()},t+34)}))})}let dn=c(()=>A.value.debug),fn=null;function pn(){if(ce(w.dataset)&&(te({componentName:`VueUiOnion`,type:`dataset`,debug:dn.value}),Kt.value=!0),ce(w.dataset)||(Kt.value=A.value.loading),A.value.responsive){let e=64/512,t=Ee(()=>{fn&&clearTimeout(fn),zt.value=!0;let{width:t,height:n}=De({chart:D.value,title:F.value.title.text?Mt.value:null,legend:F.value.legend.show?Nt.value:null,source:Pt.value,noTitle:Ft.value});n-=12,requestAnimationFrame(async()=>{V.value.width=t,V.value.height=n,V.value.padding.top=Math.max(t,n)*e,V.value.padding.right=Math.max(t,n)*e,V.value.padding.bottom=Math.max(t,n)*e,V.value.padding.left=Math.max(t,n)*e,V.value.minRadius=Math.min(t,n)*e,fn=setTimeout(()=>{zt.value=!1,un()},0)})});H.value&&(U.value&&H.value.unobserve(U.value),H.value.disconnect()),H.value=new ResizeObserver(t),U.value=D.value.parentNode,H.value.observe(U.value)}un()}Ue(()=>{K+=1,on(),H.value&&(U.value&&H.value.unobserve(U.value),H.value.disconnect())});let q=c(()=>({top:V.value.padding.top,left:V.value.padding.left,right:V.value.width-V.value.padding.right,bottom:V.value.height-V.value.padding.bottom,centerX:V.value.width/2,centerY:V.value.height/2,width:V.value.width-V.value.padding.right-V.value.padding.left,height:V.value.height-V.value.padding.bottom-V.value.padding.top,minRadius:V.value.minRadius,maxRadius:Math.min(V.value.width,V.value.height)-V.value.padding.top*2})),J=c(()=>(dn.value&&Gt.value.forEach((e,t)=>{[null,void 0].includes(e.name)&&te({componentName:`VueUiOnion`,type:`datasetSerieAttribute`,property:`name`,index:t}),[void 0].includes(e.percentage)&&te({componentName:`VueUiOnion`,type:`datasetSerieAttribute`,property:`percentage`,index:t})}),Gt.value.map((e,t)=>{let n=`onion_serie_${t}_${T.value}`;return{...e,percentage:e.percentage||0,targetPercentage:e.percentage||0,color:o(e.color)||rn.value[t]||a[t],id:n,shape:`circle`,opacity:E.value.includes(n)?.5:1,absoluteIndex:t,segregate:()=>En(n),isSegregated:E.value.includes(n)}}))),mn=c(()=>J.value.map((e,t)=>{let r=F.value.legend.showValue,i=F.value.legend.showPercentage,a=In({showVal:r,showPercentage:i,val:ne(M.value.value.formatter,e.value,n({p:e.prefix||``,v:e.value,s:e.suffix||``,r:F.value.legend.roundingValue})),percentage:n({v:e.percentage??0,s:`%`,r:F.value.legend.roundingPercentage}),config:F.value.legend});return{...e,display:`${e.name}${r||i?`: `:``}${a}`}})),hn=y(J.value),gn=c(()=>A.value.useStartAnimation),_n=y(null),vn=c(()=>Math.max(...J.value.map(e=>e.percentage))),yn=y(!1);Ye(()=>J.value,bn,{immediate:!0,deep:!0}),Ye(()=>w.dataset,e=>{Array.isArray(e)&&e.length>0&&(Kt.value=!1),un()},{deep:!0,flush:`post`});function bn(){if(gn.value&&!yn.value&&!R.value){hn.value=J.value.map(e=>({...e,percentage:0}));let e=0;function t(){e>=vn.value?(cancelAnimationFrame(_n.value),hn.value=J.value,yn.value=!0):(hn.value=J.value.map(t=>({...t,percentage:e<t.targetPercentage?e:t.targetPercentage})),e+=1,requestAnimationFrame(t),yn.value=!0)}t()}else hn.value=J.value}let xn=c(()=>({cy:`onion-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`:``})),Sn=c(()=>J.value.filter(e=>!E.value.includes(e.id)).length),Y=c(()=>{let e=Math.min(q.value.width,q.value.height)/2/J.value.length;return{gutter:(e>N.value.maxThickness?N.value.maxThickness:e)*N.value.gutter.width,track:(e>N.value.maxThickness?N.value.maxThickness:e)*N.value.track.width}}),X=c(()=>hn.value.filter(e=>!E.value.includes(e.id)).map((e,t)=>{let n=(q.value.maxRadius-Y.value.track)/Sn.value/2*(1+t),r=q.value.centerY-n;return{percentage:e.percentage||0,...e,labelY:r,radius:n,path:Cn(n,e.percentage||0)}}));function Cn(e,t){let n=2*Math.PI*e,r=n*.75,i=`${r} ${n}`,a=r*(1-t/100);return{bgDashArray:`${r} ${n}`,bgDashOffset:0,dashArray:i,dashOffset:a,fullOffset:0,active:`
2
2
  M ${q.value.centerX},${q.value.centerY-e}
3
3
  A ${e},${e} 0 1 1
4
4
  ${q.value.centerX+e*Math.cos(Math.PI*3/4)},${q.value.centerY+e*Math.sin(Math.PI*3/4)}
@@ -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,Dt as i,Ht as a,J as o,Jt as ee,P as te,S as ne,U as s,X as c,Zt as re,_ as ie,at as ae,i as oe,in as se,nt as ce,pt as le,rn as ue,t as de,tn as fe,w as pe,xt as me,yt as he,zt as ge}from"./lib-rPeBMZrn.js";import{n as _e,t as ve}from"./BaseScanner-8NdoBs7B.js";import{n as ye,t as be}from"./useHints-BH9r_0Vd.js";import{t as xe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as Se}from"./resolveChartConfig-CIhClE5R.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"./useTransitions-ChGGrtrv.js";import{t as Pe}from"./useSvgLabelLayout-D1I8sQUi.js";import{t as Fe}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Ie}from"./Shape-CRe8woTu.js";import{t as Le}from"./useResponsive-CENUxfEL.js";import{t as Re}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as ze}from"./A11yDataTable-DWNlWXzs.js";import{t as Be}from"./useUserOptionState-CXlFnwPv.js";import{t as Ve}from"./useChartAccessibility-DOMuYJfm.js";import{t as He}from"./Legend-DM0ClX3D.js";import{t as Ue}from"./vue_ui_parallel_coordinate_plot-Cs_xXAG5.js";import{Fragment as l,Teleport as We,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as Ge,createTextVNode as Ke,createVNode as qe,defineAsyncComponent as h,guardReactiveProps as g,mergeProps as Je,nextTick as Ye,normalizeClass as _,normalizeProps as v,normalizeStyle as y,onBeforeUnmount as Xe,onMounted as Ze,openBlock as b,ref as x,renderList as S,renderSlot as C,resolveDynamicComponent as Qe,shallowRef as $e,toDisplayString as w,toRefs as et,unref as T,watch as tt,withCtx as E}from"vue";var nt=/* @__PURE__ */ e({default:()=>Dt}),rt=[`id`],it=[`id`],at=[`id`],ot={style:{position:`relative`}},st=[`xmlns`,`aria-describedby`,`viewBox`],ct=[`x`,`y`,`width`,`height`],lt={style:{"pointer-events":`none`}},ut=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],dt=[`d`,`stroke`,`stroke-width`],ft={key:0},pt=[`transform`,`fill`,`font-size`,`font-weight`],mt=[`fill`,`font-size`,`font-weight`,`text-anchor`,`transform`],ht=[`fill`,`font-size`,`font-weight`,`text-anchor`,`transform`,`innerHTML`],gt={key:0},_t=[`x`,`y`,`font-size`,`fill`],vt=[`width`,`x`,`y`],yt={style:{width:`100%`}},bt=[`d`,`stroke`,`stroke-width`,`onMouseenter`,`onMouseleave`,`onClick`],xt=[`d`,`onMouseenter`,`onMouseleave`,`onClick`],St=[`transform`,`fill`,`font-weight`,`font-size`,`stroke`,`onMouseenter`,`onMouseleave`,`onClick`],Ct={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},wt={key:5,class:`vue-data-ui-watermark`},Tt=[`id`],Et=[`onClick`],Dt=/*#__PURE__*/ xe({__name:`vue-ui-parallel-coordinate-plot`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`selectDatapoint`,`copyAlt`],setup(e,{expose:xe,emit:nt}){let Dt=h(()=>import(`./Tooltip-C1q0Qoh7.js`)),Ot=h(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),kt=h(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),At=h(()=>import(`./DataTable-0Vv-aGHD.js`)),jt=h(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Mt=h(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Nt=h(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),Pt=h(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_parallel_coordinate_plot:Ft}=t(),D=e,It=u({get(){return!!D.dataset&&D.dataset.length},set(e){return e}}),Lt=x(0),O=x(null),Rt=x(null),zt=x(null),Bt=x(null),Vt=x(null),Ht=x(0),Ut=x(0),Wt=x(0),Gt=x(!1),Kt=x(null),qt=x(null),Jt=x(null),k=x(null),Yt=x({x:0,y:0}),Xt=x(`pointer`),Zt=x(!1),A=x(c()),j=x(!1);function Qt(e){j.value=e,Lt.value+=1}let M=x(sn()),N=u(()=>M.value.userOptions),P=u(()=>M.value.style.chart.yAxis.labels),F=u(()=>M.value.style.chart.tooltip),I=u(()=>M.value.style.chart),{transitionEnabled:L}=Ne({config:()=>M.value.transitions,dataset:()=>D.dataset});ye({config:()=>M.value,dataset:()=>D.dataset,component:`VueUiParallelCoordinatePlot`,rules:[be.emptyArray,{test:e=>e.length>10,message:[`👀 There are > 10 series. Consider:`,``,`▶️ Using filters, to show less series at the same time and make the chart more readable.`]},{test:e=>e.some(e=>(e?.series??[]).some(e=>(e?.values??[]).length>15)),message:[`👀 There are > 15 axes, which can make the chart hard to read. Consider:`,``,`▶️ Using filters, to allow users to select a maximum set of metrics.`]},{test:e=>e.some(e=>e?.series?.length>5),message:[`👀 Some series have > 5 datapoints. Consider:`,``,`▶️ Using filters, to allow users to select a maximum set of metrics.`]}]});let R=u(()=>M.value.userOptions.useCursorPointer),$t=u(()=>se({defaultConfig:{useCssAnimation:!1,userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,legend:{show:!0,backgroundColor:`transparent`},yAxis:{stroke:`#6A6A6A`,labels:{showAxisNames:!1,axisNames:[],ticks:{color:`#6A6A6A`}}}}}},userConfig:M.value.skeletonConfig??{}})),{loading:en,FINAL_DATASET:tn,manualLoading:nn}=_e({...et(D),FINAL_CONFIG:M,prepareConfig:sn,callback:()=>{Promise.resolve().then(async()=>{await Ye(),G.value.showTable=M.value.table.show})},skeletonDataset:D.config?.skeletonDataset??[{name:``,shape:`circle`,color:`transparent`,series:[{name:``,values:[1,10,100,1e3]}]},{name:``,shape:`circle`,color:`#CACACA`,series:[{name:``,values:[.2,3,50,800]}]},{name:``,shape:`circle`,color:`transparent`,series:[{name:``,values:[0,0,0,0]}]}],skeletonConfig:se({defaultConfig:M.value,userConfig:$t.value})}),{userOptionsVisible:rn,setUserOptionsVisibility:an,keepUserOptionState:on}=Be({config:M.value}),{svgRef:z}=Ve({config:I.value.title});function sn(){return Se(D.config,Ft,Ue)}let cn=re(D.config);tt(()=>D.config,(e,t)=>{let n=re(e),r=n!==cn;cn=n;let i=sn();r?(en.value||(M.value=i),rn.value=!M.value.userOptions.showOnChartHover,fn(),Ht.value+=1,Wt.value+=1,Ut.value+=1,G.value.dataLabels.show=P.value.datapoints.show,G.value.showTable=M.value.table.show,G.value.showTooltip=F.value.show):(M.value.style.chart.tooltip=i.style.chart.tooltip,G.value.showTooltip=M.value.style.chart.tooltip.show)},{deep:!0}),tt(()=>D.dataset,e=>{Array.isArray(e)&&e.length>0&&(nn.value=!1)},{deep:!0});let B=$e(null),V=$e(null),ln=x(!1),un=0;Ze(()=>{Gt.value=!0,fn()});let dn=u(()=>M.value.debug);function fn(){ge(D.dataset)?(ae({componentName:`VueUiParallelCoordinatePlot`,type:`dataset`,debug:dn.value}),nn.value=!0):D.dataset.forEach((e,t)=>{he({datasetObject:e,requiredAttributes:[`name`,`series`]}).forEach(e=>{It.value=!1,ae({componentName:`VueUiParallelCoordinatePlot`,type:`datasetSerieAttribute`,property:e,index:t,debug:dn.value})})}),ge(D.dataset)||(nn.value=M.value.loading),M.value.responsive&&(B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect()),B.value=new ResizeObserver(()=>{let{width:e,height:t}=Le({chart:O.value,title:I.value.title.text?Rt.value:null,legend:I.value.legend.show?zt.value:null,source:Bt.value,noTitle:Vt.value});cancelAnimationFrame(un),un=requestAnimationFrame(()=>{H.value.width=e,H.value.height=t-12,ln.value=!0,M.value.responsiveProportionalSizing?(H.value.plotSize=ue({relator:Math.min(e,t),adjuster:600,source:I.value.plots.radius,threshold:2,fallback:2}),H.value.ticksFontSize=ue({relator:Math.min(e,t),adjuster:600,source:P.value.ticks.fontSize,threshold:10,fallback:10}),H.value.datapointFontSize=ue({relator:Math.min(e,t),adjuster:600,source:P.value.datapoints.fontSize,threshold:10,fallback:10}),H.value.axisNameFontSize=ue({relator:Math.min(e,t),adjuster:600,source:P.value.axisNamesFontSize,threshold:12,fallback:12})):(H.value.plotSize=I.value.plots.radius,H.value.ticksFontSize=P.value.ticks.fontSize,H.value.datapointFontSize=P.value.datapoints.fontSize,H.value.axisNameFontSize=P.value.axisNamesFontSize)})}),V.value=O.value.parentNode,B.value.observe(V.value))}Xe(()=>{cancelAnimationFrame(un),B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect())});let{isPrinting:pn,isImaging:mn,generatePdf:hn,generateImage:gn}=Me({elementId:`pcp_${A.value}`,fileName:I.value.title.text||`vue-ui-parallel-coordinate-plot`,options:M.value.userOptions.print}),_n=u(()=>M.value.userOptions.show&&!I.value.title.text),H=x({height:I.value.height,width:I.value.width,plotSize:I.value.plots.radius,ticksFontSize:P.value.ticks.fontSize,datapointFontSize:P.value.datapoints.fontSize,axisNameFontSize:P.value.axisNamesFontSize}),vn=u(()=>H.value.width),yn=u(()=>H.value.height),{metrics:bn,ready:xn,settling:U,update:Sn}=Pe({svgRef:z,canMeasure:()=>!M.value.responsive||ln.value,initialMetrics:{top:0},measure:e=>({top:e(Jt.value).height})}),Cn=u(()=>bn.value.top),W=u(()=>{let{top:e,right:t,bottom:n,left:r}=I.value.padding,i=yn.value,a=vn.value;return{chartHeight:Math.max(.001,i),chartWidth:Math.max(.001,a),height:Math.max(.001,i-e-n-Cn.value-H.value.datapointFontSize*2),width:Math.max(.001,a-r-t),top:e+Cn.value+H.value.datapointFontSize,left:r,right:a-t,bottom:i-n-H.value.datapointFontSize}}),wn=u(()=>pe(M.value.customPalette)),G=x({dataLabels:{show:P.value.datapoints.show},showTable:M.value.table.show,showTooltip:F.value.show});tt(M,()=>{G.value={dataLabels:{show:P.value.datapoints.show},showTable:M.value.table.show,showTooltip:F.value.show}},{immediate:!0});let K=x([]);function Tn(){K.value.length?K.value=[]:An.value.forEach(e=>{K.value.push(e.id)}),Wn(`selectLegend`,Nn.value)}function En(e){K.value.includes(e)?K.value=K.value.filter(t=>t!==e):K.value.push(e),Wn(`selectLegend`,Nn.value)}let q=u(()=>tn.value.map((e,t)=>{let n=ne(e.color)||wn.value[t]||a[t]||a[t%a.length];return{...e,series:e.series.map(e=>({...e,id:c(),color:n})),seriesIndex:t,color:n,id:c(),shape:e.shape||`circle`}}));function Dn(e){return q.value.length?q.value.find(t=>t.name===e)||(dn.value&&console.warn(`VueUiParallelCoordinatePlot - Series name not found "${e}"`),null):(dn.value&&console.warn(`VueUiParallelCoordinatePlot - There are no series to show.`),null)}function On(e){let t=Dn(e);t!==null&&K.value.includes(t.id)&&En(t.id)}function kn(e){let t=Dn(e);t!==null&&(K.value.includes(t.id)||En(t.id))}let An=u(()=>q.value.map(e=>({...e,opacity:K.value.includes(e.id)?.5:1,segregate:()=>En(e.id),isSegregated:K.value.includes(e.id),shape:e.shape||`circle`}))),jn=u(()=>({cy:`pcp-div-legend`,backgroundColor:I.value.legend.backgroundColor,color:I.value.legend.color,fontSize:I.value.legend.fontSize,paddingBottom:12,fontWeight:I.value.legend.bold?`bold`:``})),Mn=u(()=>Math.max(...q.value.filter(e=>!K.value.includes(e.id)).map(e=>Math.max(...e.series.flatMap(e=>e.values.length))))),J=u(()=>W.value.width/Mn.value),Nn=u(()=>q.value.filter(e=>!K.value.includes(e.id))),Y=u(()=>{let e=[];for(let t=0;t<Mn.value;t+=1){let n=Math.min(...Nn.value.flatMap(e=>e.series.map(e=>e.values[t]||0)||0)),r=Math.max(...Nn.value.flatMap(e=>e.series.map(e=>e.values[t]||0)||0)),i=r===n?n/4:n,a=r===n?r*2:r,o=ie(i,a,I.value.yAxis.scaleTicks),ee=o.ticks.map((e,n)=>{let r=o.min<0?e+Math.abs(o.min):e-Math.abs(o.min),i=o.min<0?o.max+Math.abs(o.min):o.max-Math.abs(o.min);return{y:W.value.bottom-W.value.height*(r/i),x:W.value.left+J.value*t+J.value/2,value:e}});e.push({scale:o,ticks:ee,name:P.value.axisNames[t]||`Y-${t+1}`})}return e}),X=u(()=>Nn.value.map((e,t)=>({...e,series:e.series.map((n,r)=>({...n,datapoints:n.values.map((i,a)=>{let o=Y.value[a].scale.min<0?(i||0)+Math.abs(Y.value[a].scale.min):(i||0)-Math.abs(Y.value[a].scale.min),ee=Y.value[a].scale.min<0?Y.value[a].scale.max+Math.abs(Y.value[a].scale.min):Y.value[a].scale.max-Math.abs(Y.value[a].scale.min);return{name:n.name,seriesName:e.name,axisIndex:a,datapointIndex:r,seriesIndex:t,value:i||0,x:W.value.left+J.value*a+J.value/2,y:W.value.bottom-W.value.height*(o/ee),comment:n.comments&&n.comments[a]||``}})}))})).map(e=>({...e,series:e.series.map(e=>{let t=s(e.datapoints),n=te(e.datapoints,.12),r=me(I.value.lines.smooth?`M ${n}`:`M ${t}`);return{...e,smoothPath:n,straightPath:t,pathLength:r}})}))),Z=u(()=>X.value.flatMap((e,t)=>e.series.map((n,r)=>({shape:e.shape,serieName:e.name,serie:n,relativeIndex:r,seriesIndex:n.seriesIndex,S:t,key:`${t}_${r}`}))));function Pn({value:e,index:t,datapoint:r}){return oe(P.value.formatters[t]||null,e,n({p:P.value.prefixes[t]||``,v:e,s:P.value.suffixes[t]||``,r:P.value.roundings[t]||0}),{datapoint:r,seriesIndex:t})}let Q=x(null),Fn=x(null),In=x(!1),Ln=x(``);function Rn({shape:e,serie:t,S:n}){M.value.events.datapointLeave&&M.value.events.datapointLeave({datapoint:{...t,shape:e},seriesIndex:n});let r=k.value===null?null:Z.value[k.value];Xt.value===`keyboard`&&r&&r.serie.id===t.id||(Q.value=null,In.value=!1)}function zn(e){if(!z.value||!e?.datapoints?.length)return;let t=e.datapoints[Math.floor(e.datapoints.length/2)];if(!t)return;let n=fe(t.x,t.y,z.value);n&&(Yt.value=n)}function Bn({shape:e,serieName:t,serie:r,relativeIndex:a,seriesIndex:o,S:te,triggerMode:ne=`pointer`}){M.value.events.datapointEnter&&M.value.events.datapointEnter({datapoint:{...r,shape:e},seriesIndex:te}),Xt.value=ne,Fn.value={config:M.value,datapoint:r,serie:r,relativeIndex:a,seriesIndex:o,series:q.value,scales:Y.value},In.value=!0,Q.value=r.id;let s=``,c=F.value.customFormat;i(c)&&le(()=>c({serie:r,seriesIndex:r.seriesIndex,series:q.value,config:M.value,scales:Y.value}))?Ln.value=c({serie:r,seriesIndex:r.seriesIndex,series:q.value,config:M.value,scales:Y.value}):(s+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${F.value.borderColor};padding-bottom:6px;margin-bottom:3px;">${t?t+` - `:``}${r.name}</div>`,Y.value.map(e=>e.name).forEach((e,t)=>{s+=`
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Dt as i,Ht as a,J as o,Jt as ee,P as te,S as ne,U as s,X as c,Zt as re,_ as ie,at as ae,i as oe,in as se,nt as ce,pt as le,rn as ue,t as de,tn as fe,w as pe,xt as me,yt as he,zt as ge}from"./lib-rPeBMZrn.js";import{n as _e,t as ve}from"./BaseScanner-8NdoBs7B.js";import{n as ye,t as be}from"./useHints-BH9r_0Vd.js";import{t as xe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as Se}from"./resolveChartConfig-CIhClE5R.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"./useTransitions-ChGGrtrv.js";import{t as Pe}from"./useSvgLabelLayout-D1I8sQUi.js";import{t as Fe}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Ie}from"./Shape-CRe8woTu.js";import{t as Le}from"./useResponsive-CENUxfEL.js";import{t as Re}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as ze}from"./A11yDataTable-DWNlWXzs.js";import{t as Be}from"./useUserOptionState-CXlFnwPv.js";import{t as Ve}from"./useChartAccessibility-DOMuYJfm.js";import{t as He}from"./Legend-DM0ClX3D.js";import{t as Ue}from"./vue_ui_parallel_coordinate_plot-Cs_xXAG5.js";import{Fragment as l,Teleport as We,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as Ge,createTextVNode as Ke,createVNode as qe,defineAsyncComponent as h,guardReactiveProps as g,mergeProps as Je,nextTick as Ye,normalizeClass as _,normalizeProps as v,normalizeStyle as y,onBeforeUnmount as Xe,onMounted as Ze,openBlock as b,ref as x,renderList as S,renderSlot as C,resolveDynamicComponent as Qe,shallowRef as $e,toDisplayString as w,toRefs as et,unref as T,watch as tt,withCtx as E}from"vue";var nt=/* @__PURE__ */ e({default:()=>Dt}),rt=[`id`],it=[`id`],at=[`id`],ot={style:{position:`relative`}},st=[`xmlns`,`aria-describedby`,`viewBox`],ct=[`x`,`y`,`width`,`height`],lt={style:{"pointer-events":`none`}},ut=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],dt=[`d`,`stroke`,`stroke-width`],ft={key:0},pt=[`transform`,`fill`,`font-size`,`font-weight`],mt=[`fill`,`font-size`,`font-weight`,`text-anchor`,`transform`],ht=[`fill`,`font-size`,`font-weight`,`text-anchor`,`transform`,`innerHTML`],gt={key:0},_t=[`x`,`y`,`font-size`,`fill`],vt=[`width`,`x`,`y`],yt={style:{width:`100%`}},bt=[`d`,`stroke`,`stroke-width`,`onMouseenter`,`onMouseleave`,`onClick`],xt=[`d`,`onMouseenter`,`onMouseleave`,`onClick`],St=[`transform`,`fill`,`font-weight`,`font-size`,`stroke`,`onMouseenter`,`onMouseleave`,`onClick`],Ct={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},wt={key:5,class:`vue-data-ui-watermark`},Tt=[`id`],Et=[`onClick`],Dt=/*#__PURE__*/ xe({__name:`vue-ui-parallel-coordinate-plot`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`selectDatapoint`,`copyAlt`],setup(e,{expose:xe,emit:nt}){let Dt=h(()=>import(`./Tooltip-C1q0Qoh7.js`)),Ot=h(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),kt=h(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),At=h(()=>import(`./DataTable-0Vv-aGHD.js`)),jt=h(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Mt=h(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Nt=h(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),Pt=h(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_parallel_coordinate_plot:Ft}=t(),D=e,It=u({get(){return!!D.dataset&&D.dataset.length},set(e){return e}}),Lt=x(0),O=x(null),Rt=x(null),zt=x(null),Bt=x(null),Vt=x(null),Ht=x(0),Ut=x(0),Wt=x(0),Gt=x(!1),Kt=x(null),qt=x(null),Jt=x(null),k=x(null),Yt=x({x:0,y:0}),Xt=x(`pointer`),Zt=x(!1),A=x(c()),j=x(!1);function Qt(e){j.value=e,Lt.value+=1}let M=x(sn()),N=u(()=>M.value.userOptions),P=u(()=>M.value.style.chart.yAxis.labels),F=u(()=>M.value.style.chart.tooltip),I=u(()=>M.value.style.chart),{transitionEnabled:L}=Ne({config:()=>M.value.transitions,dataset:()=>D.dataset});ye({config:()=>M.value,dataset:()=>D.dataset,component:`VueUiParallelCoordinatePlot`,rules:[be.emptyArray,{test:e=>e.length>10,message:[`👀 There are > 10 series. Consider:`,``,`▶️ Using filters, to show less series at the same time and make the chart more readable.`]},{test:e=>e.some(e=>(e?.series??[]).some(e=>(e?.values??[]).length>15)),message:[`👀 There are > 15 axes, which can make the chart hard to read. Consider:`,``,`▶️ Using filters, to allow users to select a maximum set of metrics.`]},{test:e=>e.some(e=>e?.series?.length>5),message:[`👀 Some series have > 5 datapoints. Consider:`,``,`▶️ Using filters, to allow users to select a maximum set of metrics.`]}]});let R=u(()=>M.value.userOptions.useCursorPointer),$t=u(()=>se({defaultConfig:{useCssAnimation:!1,userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,legend:{show:!0,backgroundColor:`transparent`},yAxis:{stroke:`#6A6A6A`,labels:{showAxisNames:!1,axisNames:[],ticks:{color:`#6A6A6A`}}}}}},userConfig:M.value.skeletonConfig??{}})),{loading:en,FINAL_DATASET:tn,manualLoading:nn}=_e({...et(D),FINAL_CONFIG:M,prepareConfig:sn,callback:()=>{Promise.resolve().then(async()=>{await Ye(),G.value.showTable=M.value.table.show})},skeletonDataset:D.config?.skeletonDataset??[{name:``,shape:`circle`,color:`transparent`,series:[{name:``,values:[1,10,100,1e3]}]},{name:``,shape:`circle`,color:`#CACACA`,series:[{name:``,values:[.2,3,50,800]}]},{name:``,shape:`circle`,color:`transparent`,series:[{name:``,values:[0,0,0,0]}]}],skeletonConfig:se({defaultConfig:M.value,userConfig:$t.value})}),{userOptionsVisible:rn,setUserOptionsVisibility:an,keepUserOptionState:on}=Be({config:M.value}),{svgRef:z}=Ve({config:I.value.title});function sn(){return Se(D.config,Ft,Ue)}let cn=re(D.config);tt(()=>D.config,(e,t)=>{let n=re(e),r=n!==cn;cn=n;let i=sn();r?(en.value||(M.value=i),rn.value=!M.value.userOptions.showOnChartHover,fn(),Ht.value+=1,Wt.value+=1,Ut.value+=1,G.value.dataLabels.show=P.value.datapoints.show,G.value.showTable=M.value.table.show,G.value.showTooltip=F.value.show):(M.value.style.chart.tooltip=i.style.chart.tooltip,G.value.showTooltip=M.value.style.chart.tooltip.show)},{deep:!0}),tt(()=>D.dataset,e=>{Array.isArray(e)&&e.length>0&&(nn.value=!1)},{deep:!0});let B=$e(null),V=$e(null),ln=x(!1),un=0;Ze(()=>{Gt.value=!0,fn()});let dn=u(()=>M.value.debug);function fn(){ge(D.dataset)?(ae({componentName:`VueUiParallelCoordinatePlot`,type:`dataset`,debug:dn.value}),nn.value=!0):D.dataset.forEach((e,t)=>{he({datasetObject:e,requiredAttributes:[`name`,`series`]}).forEach(e=>{It.value=!1,ae({componentName:`VueUiParallelCoordinatePlot`,type:`datasetSerieAttribute`,property:e,index:t,debug:dn.value})})}),ge(D.dataset)||(nn.value=M.value.loading),M.value.responsive&&(B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect()),B.value=new ResizeObserver(()=>{let{width:e,height:t}=Le({chart:O.value,title:I.value.title.text?Rt.value:null,legend:I.value.legend.show?zt.value:null,source:Bt.value,noTitle:Vt.value});cancelAnimationFrame(un),un=requestAnimationFrame(()=>{H.value.width=e,H.value.height=t-12,ln.value=!0,M.value.responsiveProportionalSizing?(H.value.plotSize=ue({relator:Math.min(e,t),adjuster:600,source:I.value.plots.radius,threshold:2,fallback:2}),H.value.ticksFontSize=ue({relator:Math.min(e,t),adjuster:600,source:P.value.ticks.fontSize,threshold:10,fallback:10}),H.value.datapointFontSize=ue({relator:Math.min(e,t),adjuster:600,source:P.value.datapoints.fontSize,threshold:10,fallback:10}),H.value.axisNameFontSize=ue({relator:Math.min(e,t),adjuster:600,source:P.value.axisNamesFontSize,threshold:12,fallback:12})):(H.value.plotSize=I.value.plots.radius,H.value.ticksFontSize=P.value.ticks.fontSize,H.value.datapointFontSize=P.value.datapoints.fontSize,H.value.axisNameFontSize=P.value.axisNamesFontSize)})}),V.value=O.value.parentNode,B.value.observe(V.value))}Xe(()=>{cancelAnimationFrame(un),B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect())});let{isPrinting:pn,isImaging:mn,generatePdf:hn,generateImage:gn}=Me({elementId:`pcp_${A.value}`,fileName:I.value.title.text||`vue-ui-parallel-coordinate-plot`,options:M.value.userOptions.print}),_n=u(()=>M.value.userOptions.show&&!I.value.title.text),H=x({height:I.value.height,width:I.value.width,plotSize:I.value.plots.radius,ticksFontSize:P.value.ticks.fontSize,datapointFontSize:P.value.datapoints.fontSize,axisNameFontSize:P.value.axisNamesFontSize}),vn=u(()=>H.value.width),yn=u(()=>H.value.height),{metrics:bn,ready:xn,settling:U,update:Sn}=Pe({svgRef:z,canMeasure:()=>!M.value.responsive||ln.value,initialMetrics:{top:0},measure:e=>({top:e(Jt.value).height})}),Cn=u(()=>bn.value.top),W=u(()=>{let{top:e,right:t,bottom:n,left:r}=I.value.padding,i=yn.value,a=vn.value;return{chartHeight:Math.max(.001,i),chartWidth:Math.max(.001,a),height:Math.max(.001,i-e-n-Cn.value-H.value.datapointFontSize*2),width:Math.max(.001,a-r-t),top:e+Cn.value+H.value.datapointFontSize,left:r,right:a-t,bottom:i-n-H.value.datapointFontSize}}),wn=u(()=>pe(M.value.customPalette)),G=x({dataLabels:{show:P.value.datapoints.show},showTable:M.value.table.show,showTooltip:F.value.show});tt(M,()=>{G.value={dataLabels:{show:P.value.datapoints.show},showTable:M.value.table.show,showTooltip:F.value.show}},{immediate:!0});let K=x([]);function Tn(){K.value.length?K.value=[]:An.value.forEach(e=>{K.value.push(e.id)}),Wn(`selectLegend`,Nn.value)}function En(e){K.value.includes(e)?K.value=K.value.filter(t=>t!==e):K.value.push(e),Wn(`selectLegend`,Nn.value)}let q=u(()=>tn.value.map((e,t)=>{let n=ne(e.color)||wn.value[t]||a[t]||a[t%a.length];return{...e,series:e.series.map(e=>({...e,id:c(),color:n})),seriesIndex:t,color:n,id:c(),shape:e.shape||`circle`}}));function Dn(e){return q.value.length?q.value.find(t=>t.name===e)||(dn.value&&console.warn(`VueUiParallelCoordinatePlot - Series name not found "${e}"`),null):(dn.value&&console.warn(`VueUiParallelCoordinatePlot - There are no series to show.`),null)}function On(e){let t=Dn(e);t!==null&&K.value.includes(t.id)&&En(t.id)}function kn(e){let t=Dn(e);t!==null&&(K.value.includes(t.id)||En(t.id))}let An=u(()=>q.value.map(e=>({...e,opacity:K.value.includes(e.id)?.5:1,segregate:()=>En(e.id),isSegregated:K.value.includes(e.id),shape:e.shape||`circle`}))),jn=u(()=>({cy:`pcp-div-legend`,backgroundColor:I.value.legend.backgroundColor,color:I.value.legend.color,fontSize:I.value.legend.fontSize,paddingBottom:12,fontWeight:I.value.legend.bold?`bold`:``})),Mn=u(()=>Math.max(...q.value.filter(e=>!K.value.includes(e.id)).map(e=>Math.max(...e.series.flatMap(e=>e.values.length))))),J=u(()=>W.value.width/Mn.value),Nn=u(()=>q.value.filter(e=>!K.value.includes(e.id))),Y=u(()=>{let e=[];for(let t=0;t<Mn.value;t+=1){let n=Math.min(...Nn.value.flatMap(e=>e.series.map(e=>e.values[t]||0)||0)),r=Math.max(...Nn.value.flatMap(e=>e.series.map(e=>e.values[t]||0)||0)),i=r===n?n/4:n,a=r===n?r*2:r,o=ie(i,a,I.value.yAxis.scaleTicks),ee=o.ticks.map((e,n)=>{let r=o.min<0?e+Math.abs(o.min):e-Math.abs(o.min),i=o.min<0?o.max+Math.abs(o.min):o.max-Math.abs(o.min);return{y:W.value.bottom-W.value.height*(r/i),x:W.value.left+J.value*t+J.value/2,value:e}});e.push({scale:o,ticks:ee,name:P.value.axisNames[t]||`Y-${t+1}`})}return e}),X=u(()=>Nn.value.map((e,t)=>({...e,series:e.series.map((n,r)=>({...n,datapoints:n.values.map((i,a)=>{let o=Y.value[a].scale.min<0?(i||0)+Math.abs(Y.value[a].scale.min):(i||0)-Math.abs(Y.value[a].scale.min),ee=Y.value[a].scale.min<0?Y.value[a].scale.max+Math.abs(Y.value[a].scale.min):Y.value[a].scale.max-Math.abs(Y.value[a].scale.min);return{name:n.name,seriesName:e.name,axisIndex:a,datapointIndex:r,seriesIndex:t,value:i||0,x:W.value.left+J.value*a+J.value/2,y:W.value.bottom-W.value.height*(o/ee),comment:n.comments&&n.comments[a]||``}})}))})).map(e=>({...e,series:e.series.map(e=>{let t=s(e.datapoints),n=te(e.datapoints,.12),r=me(I.value.lines.smooth?`M ${n}`:`M ${t}`);return{...e,smoothPath:n,straightPath:t,pathLength:r}})}))),Z=u(()=>X.value.flatMap((e,t)=>e.series.map((n,r)=>({shape:e.shape,serieName:e.name,serie:n,relativeIndex:r,seriesIndex:n.seriesIndex,S:t,key:`${t}_${r}`}))));function Pn({value:e,index:t,datapoint:r}){return oe(P.value.formatters[t]||null,e,n({p:P.value.prefixes[t]||``,v:e,s:P.value.suffixes[t]||``,r:P.value.roundings[t]||0}),{datapoint:r,seriesIndex:t})}let Q=x(null),Fn=x(null),In=x(!1),Ln=x(``);function Rn({shape:e,serie:t,S:n}){M.value.events.datapointLeave&&M.value.events.datapointLeave({datapoint:{...t,shape:e},seriesIndex:n});let r=k.value===null?null:Z.value[k.value];Xt.value===`keyboard`&&r&&r.serie.id===t.id||(Q.value=null,In.value=!1)}function zn(e){if(!z.value||!e?.datapoints?.length)return;let t=e.datapoints[Math.floor(e.datapoints.length/2)];if(!t)return;let n=fe(t.x,t.y,z.value);n&&(Yt.value=n)}function Bn({shape:e,serieName:t,serie:r,relativeIndex:a,seriesIndex:o,S:te,triggerMode:ne=`pointer`}){M.value.events.datapointEnter&&M.value.events.datapointEnter({datapoint:{...r,shape:e},seriesIndex:te}),Xt.value=ne,Fn.value={config:M.value,datapoint:r,serie:r,relativeIndex:a,seriesIndex:o,series:q.value,scales:Y.value},In.value=!0,Q.value=r.id;let s=``,c=F.value.customFormat;i(c)&&le(()=>c({serie:r,seriesIndex:r.seriesIndex,series:q.value,config:M.value,scales:Y.value}))?Ln.value=c({serie:r,seriesIndex:r.seriesIndex,series:q.value,config:M.value,scales:Y.value}):(s+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${F.value.borderColor};padding-bottom:6px;margin-bottom:3px;">${t?t+` - `:``}${r.name}</div>`,Y.value.map(e=>e.name).forEach((e,t)=>{s+=`
2
2
  <div class="vue-ui-tooltip-item" style="text-align:left">
3
3
  <span>${e}: </span>
4
4
  <span>