vue-data-ui 3.28.3 → 3.28.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PackageVersion-CXT-eAuk.js → PackageVersion-DhptF5oD.js} +1 -1
- package/dist/components/vue-ui-3d-bar.js +1 -1
- package/dist/components/vue-ui-age-pyramid.js +1 -1
- package/dist/components/vue-ui-bullet.js +1 -1
- package/dist/components/vue-ui-bump.js +1 -1
- package/dist/components/vue-ui-candlestick.js +1 -1
- package/dist/components/vue-ui-carousel-table.js +1 -1
- package/dist/components/vue-ui-chestnut.js +1 -1
- package/dist/components/vue-ui-chord.js +1 -1
- package/dist/components/vue-ui-circle-pack.js +1 -1
- package/dist/components/vue-ui-cursor.js +1 -1
- package/dist/components/vue-ui-dag.js +1 -1
- package/dist/components/vue-ui-dashboard.js +1 -1
- package/dist/components/vue-ui-digits.js +1 -1
- package/dist/components/vue-ui-donut-evolution.js +1 -1
- package/dist/components/vue-ui-donut.js +1 -1
- package/dist/components/vue-ui-dumbbell.js +1 -1
- package/dist/components/vue-ui-flow.js +1 -1
- package/dist/components/vue-ui-funnel.js +1 -1
- package/dist/components/vue-ui-galaxy.js +1 -1
- package/dist/components/vue-ui-gauge.js +1 -1
- package/dist/components/vue-ui-geo.js +1 -1
- package/dist/components/vue-ui-gizmo.js +1 -1
- package/dist/components/vue-ui-graph.js +1 -1
- package/dist/components/vue-ui-heatmap.js +1 -1
- package/dist/components/vue-ui-hill.js +1 -1
- package/dist/components/vue-ui-history-plot.js +1 -1
- package/dist/components/vue-ui-horizontal-bar.js +1 -1
- package/dist/components/vue-ui-kpi.js +1 -1
- package/dist/components/vue-ui-molecule.js +1 -1
- package/dist/components/vue-ui-mood-radar.js +1 -1
- package/dist/components/vue-ui-nested-donuts.js +1 -1
- package/dist/components/vue-ui-onion.js +1 -1
- package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
- package/dist/components/vue-ui-quadrant.js +1 -1
- package/dist/components/vue-ui-quick-chart.js +1 -1
- package/dist/components/vue-ui-radar.js +1 -1
- package/dist/components/vue-ui-relation-circle.js +1 -1
- package/dist/components/vue-ui-ridgeline.js +1 -1
- package/dist/components/vue-ui-rings.js +1 -1
- package/dist/components/vue-ui-scatter.js +1 -1
- package/dist/components/vue-ui-skeleton.js +1 -1
- package/dist/components/vue-ui-spark-trend.js +1 -1
- package/dist/components/vue-ui-sparkbar.js +1 -1
- package/dist/components/vue-ui-sparkgauge.js +1 -1
- package/dist/components/vue-ui-sparkhistogram.js +1 -1
- package/dist/components/vue-ui-sparkline.js +1 -1
- package/dist/components/vue-ui-sparkstackbar.js +1 -1
- package/dist/components/vue-ui-stackbar.js +1 -1
- package/dist/components/vue-ui-stackline.js +1 -1
- package/dist/components/vue-ui-strip-plot.js +1 -1
- package/dist/components/vue-ui-table-sparkline.js +1 -1
- package/dist/components/vue-ui-table.js +1 -1
- package/dist/components/vue-ui-thermometer.js +1 -1
- package/dist/components/vue-ui-timer.js +1 -1
- package/dist/components/vue-ui-tiremarks.js +1 -1
- package/dist/components/vue-ui-treemap.js +1 -1
- package/dist/components/vue-ui-vertical-bar.js +1 -1
- package/dist/components/vue-ui-waffle.js +1 -1
- package/dist/components/vue-ui-wheel.js +1 -1
- package/dist/components/vue-ui-word-cloud.js +1 -1
- package/dist/components/vue-ui-world.js +1 -1
- package/dist/components/vue-ui-xy.js +1 -1
- package/dist/package-CX7pZToh.js +1 -0
- package/dist/{render-common-C70bnUVe.js → render-common-DwEiRIJ0.js} +1 -1
- package/dist/ssr/vue-ui-donut.js +1 -1
- package/dist/ssr/vue-ui-xy.js +1 -1
- package/dist/ssr.js +1 -1
- package/dist/vue-data-ui-CORn0LF6.js +1 -0
- package/dist/vue-data-ui.js +1 -1
- package/dist/{vue-ui-3d-bar-ljsy2rX6.js → vue-ui-3d-bar-CJTKyv3A.js} +1 -1
- package/dist/{vue-ui-age-pyramid-a6CK7z3a.js → vue-ui-age-pyramid-6uZzf1w6.js} +1 -1
- package/dist/{vue-ui-bullet-DX4A2Qwo.js → vue-ui-bullet-CsJcLhmV.js} +1 -1
- package/dist/{vue-ui-bump-IvRdB6MD.js → vue-ui-bump-DXpxBWp_.js} +1 -1
- package/dist/{vue-ui-candlestick-BgyUo13S.js → vue-ui-candlestick-Bn_RSZ0k.js} +1 -1
- package/dist/{vue-ui-carousel-table-D01DGfA0.js → vue-ui-carousel-table-ChNykS-r.js} +1 -1
- package/dist/{vue-ui-chestnut-DYrMSzmQ.js → vue-ui-chestnut-DMYQTkxM.js} +1 -1
- package/dist/{vue-ui-chord-CwzQ7QbP.js → vue-ui-chord-Pp0U0-zV.js} +1 -1
- package/dist/{vue-ui-circle-pack-DQHNM9sC.js → vue-ui-circle-pack-We23fOaF.js} +1 -1
- package/dist/{vue-ui-cursor-CTFfbDX8.js → vue-ui-cursor-3-RTIIl-.js} +1 -1
- package/dist/{vue-ui-dag-DF29_9Gg.js → vue-ui-dag-5fVnwEXd.js} +1 -1
- package/dist/{vue-ui-dashboard-D98rMHjI.js → vue-ui-dashboard-Dlwnintv.js} +1 -1
- package/dist/{vue-ui-digits-AoPCgSfP.js → vue-ui-digits-ZMK0aBxE.js} +1 -1
- package/dist/{vue-ui-donut-BYUkblpv.js → vue-ui-donut-CmLo1r4-.js} +1 -1
- package/dist/{vue-ui-donut-evolution-wxHDTKlg.js → vue-ui-donut-evolution-CYvo7Cww.js} +1 -1
- package/dist/vue-ui-donut-j1bv0KyD.js +22 -0
- package/dist/{vue-ui-dumbbell-DR7rjMt0.js → vue-ui-dumbbell-DigrSGwq.js} +1 -1
- package/dist/{vue-ui-flow-DtQlRSK_.js → vue-ui-flow-D9cc9yXD.js} +1 -1
- package/dist/{vue-ui-funnel-BP3chlZy.js → vue-ui-funnel-U88Hs0nL.js} +1 -1
- package/dist/{vue-ui-galaxy-B7ogrJ6f.js → vue-ui-galaxy-B1Vuz8CA.js} +1 -1
- package/dist/{vue-ui-gauge-CrmzNkjT.js → vue-ui-gauge-1MgZSPXt.js} +1 -1
- package/dist/{vue-ui-geo-BbTvWbfX.js → vue-ui-geo-BV8ARcaX.js} +1 -1
- package/dist/{vue-ui-gizmo-C3wgMKwb.js → vue-ui-gizmo-DtsERB-E.js} +1 -1
- package/dist/{vue-ui-graph-CzUVEiO-.js → vue-ui-graph-BVTPTDl5.js} +1 -1
- package/dist/{vue-ui-heatmap-BxR2ccwd.js → vue-ui-heatmap-6YwaVr3F.js} +1 -1
- package/dist/{vue-ui-hill-BDOd7LrC.js → vue-ui-hill-BvrNT8KZ.js} +1 -1
- package/dist/{vue-ui-history-plot-0-vs_CVn.js → vue-ui-history-plot-CJIILQPt.js} +1 -1
- package/dist/{vue-ui-horizontal-bar-C5pNTRKB.js → vue-ui-horizontal-bar-Dfo-kTqg.js} +1 -1
- package/dist/{vue-ui-kpi-Dfhsk0U1.js → vue-ui-kpi-DHfExr9d.js} +1 -1
- package/dist/{vue-ui-molecule-DUX1NUIY.js → vue-ui-molecule-C8e5IeHG.js} +1 -1
- package/dist/{vue-ui-mood-radar-B1N5AwX_.js → vue-ui-mood-radar-DsnT2U65.js} +1 -1
- package/dist/{vue-ui-nested-donuts-CfHH-cU6.js → vue-ui-nested-donuts-JkpqMhuL.js} +1 -1
- package/dist/{vue-ui-onion-DRN-jIvq.js → vue-ui-onion-CIA2tlff.js} +1 -1
- package/dist/{vue-ui-parallel-coordinate-plot-UUPjQABF.js → vue-ui-parallel-coordinate-plot-Bcr3B3NI.js} +1 -1
- package/dist/{vue-ui-quadrant-zmtzn0lM.js → vue-ui-quadrant-DKVFawhC.js} +1 -1
- package/dist/{vue-ui-quick-chart-DgU_IhKY.js → vue-ui-quick-chart-Bk2N8Hmd.js} +1 -1
- package/dist/{vue-ui-radar-BGSoxRaK.js → vue-ui-radar-CdH-BFKA.js} +1 -1
- package/dist/{vue-ui-relation-circle-XUw5UMrt.js → vue-ui-relation-circle-COZpOybS.js} +1 -1
- package/dist/{vue-ui-ridgeline-B5RJcFyA.js → vue-ui-ridgeline-MLknaTUO.js} +1 -1
- package/dist/{vue-ui-rings-BJaCLH2Q.js → vue-ui-rings-ARqLCM_P.js} +1 -1
- package/dist/{vue-ui-scatter-BA0hk_Tf.js → vue-ui-scatter-CX2wsXdE.js} +1 -1
- package/dist/{vue-ui-skeleton-DpzaXPO3.js → vue-ui-skeleton-wyvAru88.js} +1 -1
- package/dist/{vue-ui-spark-trend-DJ63XtgQ.js → vue-ui-spark-trend-C02PmIq_.js} +1 -1
- package/dist/{vue-ui-sparkbar-C5wP9R67.js → vue-ui-sparkbar-CjD57-Xi.js} +1 -1
- package/dist/{vue-ui-sparkgauge-DQcAOGuG.js → vue-ui-sparkgauge-8Eia8T2W.js} +1 -1
- package/dist/{vue-ui-sparkhistogram-BBiCxX6W.js → vue-ui-sparkhistogram-C-0f7XCl.js} +1 -1
- package/dist/{vue-ui-sparkline-B_GkB9V_.js → vue-ui-sparkline-BMMrpUPR.js} +1 -1
- package/dist/{vue-ui-sparkstackbar-DSRXhqhJ.js → vue-ui-sparkstackbar-BmgCVCKG.js} +1 -1
- package/dist/{vue-ui-stackbar-QjOQHbld.js → vue-ui-stackbar-G_zZRAa9.js} +1 -1
- package/dist/{vue-ui-stackline-CoII13bc.js → vue-ui-stackline-DchZoEAg.js} +1 -1
- package/dist/{vue-ui-strip-plot-d3UoFFrf.js → vue-ui-strip-plot-DVyPa3sp.js} +1 -1
- package/dist/{vue-ui-table-CHFjZzW7.js → vue-ui-table-qTF_q-Qu.js} +1 -1
- package/dist/{vue-ui-table-sparkline-BkZ7sn4X.js → vue-ui-table-sparkline-B2Q-7-GQ.js} +1 -1
- package/dist/{vue-ui-thermometer-B--g_Lkt.js → vue-ui-thermometer-CxNoxslq.js} +1 -1
- package/dist/{vue-ui-timer-DmwEWrDh.js → vue-ui-timer-DRjoRidI.js} +1 -1
- package/dist/{vue-ui-tiremarks-160Gx7-3.js → vue-ui-tiremarks-BC_YGp3T.js} +1 -1
- package/dist/{vue-ui-treemap-B-Yjtob0.js → vue-ui-treemap-CNM5ohoO.js} +1 -1
- package/dist/{vue-ui-waffle-BhzLg5ip.js → vue-ui-waffle-BiJshI4O.js} +1 -1
- package/dist/{vue-ui-wheel-DHb4G42X.js → vue-ui-wheel-BxR0_iNZ.js} +1 -1
- package/dist/{vue-ui-word-cloud-BcpreM7A.js → vue-ui-word-cloud-CZzC3R1K.js} +1 -1
- package/dist/{vue-ui-world-BD9acchj.js → vue-ui-world-CJgt0ESz.js} +1 -1
- package/dist/{vue-ui-xy-C-2Phexw.js → vue-ui-xy-B6XNUCzQ.js} +1 -1
- package/dist/{vue-ui-xy-CB3lQs2m.js → vue-ui-xy-DrKVPSg7.js} +1 -1
- package/package.json +1 -1
- package/dist/package-CgIKu3rP.js +0 -1
- package/dist/vue-data-ui-CrOhFey9.js +0 -1
- package/dist/vue-ui-donut-BQGnUso2.js +0 -22
|
@@ -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-C-TwxM0Y.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-DVf3YcG5.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-CXT-eAuk.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-C-TwxM0Y.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-DVf3YcG5.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-DhptF5oD.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-C-TwxM0Y.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-DVf3YcG5.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-CXT-eAuk.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-C-TwxM0Y.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-DVf3YcG5.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-DhptF5oD.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-C-TwxM0Y.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-DVf3YcG5.js";import{t as Ne}from"./useTransitions-ChGGrtrv.js";import{t as Pe}from"./useSvgLabelLayout-42Kats14.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-CXT-eAuk.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-C-TwxM0Y.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-DVf3YcG5.js";import{t as Ne}from"./useTransitions-ChGGrtrv.js";import{t as Pe}from"./useSvgLabelLayout-42Kats14.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-DhptF5oD.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>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Ct as r,D as i,Dt as a,Ht as o,J as s,Jt as c,S as ee,X as te,Yt as ne,Zt as re,at as ie,i as l,in as ae,jt as oe,nt as se,pt as ce,r as le,t as ue,w as de,zt as fe}from"./lib-rPeBMZrn.js";import{n as pe,t as me}from"./BaseScanner-8NdoBs7B.js";import{n as he,t as ge}from"./useHints-C-TwxM0Y.js";import{t as _e}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as ve}from"./resolveChartConfig-CIhClE5R.js";import{t as ye}from"./chartImage-DPGnEuYM.js";import{n as be}from"./Title-BliHuXfT.js";import{t as xe}from"./useChartExport-BZts4KFb.js";import{n as Se,t as Ce}from"./tableIntegration-CNoJ1CIY.js";import{n as we,t as Te}from"./annotationSlots-BRR85CqJ.js";import{n as Ee,t as De}from"./userOptionsSlots-DYuo-E5m.js";import{t as Oe}from"./usePrinter-DVf3YcG5.js";import{t as ke}from"./Shape-CRe8woTu.js";import{c as Ae}from"./canvas-lib-22VpOI4_.js";import{t as je}from"./useResponsive-CENUxfEL.js";import{t as Me}from"./DefGrad-DKMq1REY.js";import{t as Ne}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Pe}from"./A11yDataTable-DWNlWXzs.js";import{t as Fe}from"./useUserOptionState-CXlFnwPv.js";import{t as Ie}from"./useChartAccessibility-DOMuYJfm.js";import{t as Le}from"./Legend-DM0ClX3D.js";import{t as Re}from"./vue_ui_quadrant-BUv-SqzP.js";import{Fragment as u,Teleport as ze,computed as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createSlots as Be,createTextVNode as Ve,createVNode as He,defineAsyncComponent as g,guardReactiveProps as _,mergeProps as Ue,nextTick as We,normalizeClass as v,normalizeProps as y,normalizeStyle as b,onBeforeUnmount as Ge,onMounted as Ke,openBlock as x,ref as S,renderList as C,renderSlot as w,resolveDynamicComponent as qe,shallowRef as Je,toDisplayString as T,toRefs as Ye,unref as E,watch as Xe,withCtx as D}from"vue";var Ze=/* @__PURE__ */ e({default:()=>on}),Qe=[`id`],$e=[`id`],et=[`id`],tt={style:{position:`relative`}},nt=[`xmlns`,`aria-describedby`,`viewBox`,`id`],rt=[`x`,`y`,`width`,`height`],it={key:1},at=[`fill`,`x`,`y`,`height`,`width`,`stroke-width`,`stroke`,`rx`],ot=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],st=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],ct={key:2},lt=[`points`,`fill`],ut=[`points`,`fill`],dt=[`points`,`fill`],ft=[`points`,`fill`],pt={key:3},mt=[`y`,`fill`,`font-size`],ht=[`x`,`y`,`fill`,`font-size`],gt=[`x`,`y`,`fill`,`font-size`],_t=[`y`,`fill`,`font-size`],vt={key:4},yt=[`x`,`y`,`font-size`,`fill`],bt=[`x`,`y`,`font-size`,`fill`],xt=[`x`,`y`,`font-size`,`fill`],St=[`id`,`font-size`,`transform`,`fill`],Ct=[`id`,`font-size`,`transform`,`fill`],wt=[`id`,`font-size`,`transform`,`fill`],Tt={key:5},Et=[`fill`,`points`],Dt=[`x`,`y`,`width`,`height`],Ot=[`x`,`y`,`width`,`height`],kt=[`x`,`y`,`width`,`height`],At=[`x`,`y`,`width`,`height`],jt=[`x`,`y`,`onMouseenter`,`onMouseleave`,`onClick`],Mt=[`data-a11y-plot-id`,`cx`,`cy`,`r`],Nt=[`data-a11y-plot-id`,`cx`,`cy`,`r`],Pt={key:0,style:{"pointer-events":`none`}},Ft=[`x`,`y`,`font-size`,`fill`],It=[`x`,`y`,`font-size`,`fill`,`innerHTML`],Lt={key:0},Rt=[`x`,`y`,`onMouseover`,`onMouseleave`,`onClick`],zt={key:8,class:`vue-ui-dna`},Bt=[`points`,`fill`],Vt=[`points`,`fill`],Ht=[`points`,`fill`],Ut=[`points`,`fill`],Wt={key:9},Gt=[`x`,`y`,`font-size`,`fill`,`font-weight`],Kt={key:10},qt=[`x`,`y`,`fill`],Jt=[`x`,`y`,`fill`],Yt=[`x`,`y`,`fill`],Xt=[`x`,`y`,`fill`],Zt=[`stroke`,`d`],Qt=[`stroke`,`d`],$t={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},en={key:5,class:`vue-data-ui-watermark`},tn=[`id`],nn=[`onClick`],rn={key:0,height:`14`,width:`14`,viewBox:`0 0 20 20`},an=[`innerHTML`],on=/*#__PURE__*/ _e({__name:`vue-ui-quadrant`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectPlot`,`selectSide`,`selectLegend`,`copyAlt`],setup(e,{expose:_e,emit:Ze}){let on=g(()=>import(`./Tooltip-C1q0Qoh7.js`)),sn=g(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),cn=g(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),ln=g(()=>import(`./DataTable-0Vv-aGHD.js`)),un=g(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),dn=g(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),fn=g(()=>import(`./PackageVersion-CXT-eAuk.js`).then(e=>e.t)),pn=g(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_quadrant:mn}=t(),O=e,hn=d(()=>!!O.dataset&&O.dataset.length),k=S(te()),gn=Ze,_n=S(!1),vn=S(``),yn=S(0),A=S(!1),j=S(null),bn=S(null),xn=S(null),Sn=S(null),Cn=S(null),wn=S(0),Tn=S(0),En=S(0),Dn=S(!1),On=S(null),kn=S(null),An=S(null),jn=S(null),Mn=S({x:0,y:0}),Nn=S(`pointer`),Pn=S(!1),M=S(Vn()),N=d(()=>M.value.userOptions),P=d(()=>M.value.style.chart.layout.grid),F=d(()=>M.value.style.chart.layout.labels),I=d(()=>M.value.style.chart.tooltip),L=d(()=>M.value.style.chart);he({config:()=>M.value,dataset:()=>O.dataset,component:`VueUiQuadrant`,rules:[ge.emptyArray,ge.noHint]});let R=d(()=>M.value.userOptions.useCursorPointer),Fn=d(()=>({defaultConfig:{userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{grid:{stroke:`#6A6A6A`,graduations:{stroke:`#6A6A6A`,color:`#6A6A6A90`},xAxis:{auto:!0},yAxis:{auto:!0}},labels:{quadrantLabels:{show:!1},plotLabels:{show:!1},axisLabels:{show:!1}},plots:{outlineColor:`#6A6A6A`}},legend:{backgroundColor:`transparent`}}}},userConfig:M.value.skeletonConfig??{}})),{loading:In,FINAL_DATASET:Ln}=pe({...Ye(O),FINAL_CONFIG:M,prepareConfig:Vn,callback:()=>{Promise.resolve().then(async()=>{await We(),V.value.showTable=M.value.table.show})},skeletonDataset:O.config?.skeletonDataset??[{name:`_`,shape:`circle`,color:`#CACACA`,series:[{name:`_`,x:-6,y:-4},{name:`_`,x:-5,y:-2},{name:`_`,x:-4,y:-1},{name:`_`,x:-3,y:-.5},{name:`_`,x:-2,y:-.25},{name:`_`,x:-1,y:-.135},{name:`_`,x:0,y:0},{name:`_`,x:1,y:.135},{name:`_`,x:2,y:.25},{name:`_`,x:3,y:.5},{name:`_`,x:4,y:1},{name:`_`,x:5,y:2},{name:`_`,x:6,y:4}]}],skeletonConfig:ae({defaultConfig:M.value,userConfig:Fn.value})}),{userOptionsVisible:Rn,setUserOptionsVisibility:zn,keepUserOptionState:Bn}=Fe({config:M.value}),{svgRef:z}=Ie({config:L.value.title});function Vn(){return ve(O.config,mn,Re)}let Hn=re(O.config);Xe(()=>O.config,(e,t)=>{let n=re(e),r=n!==Hn;Hn=n;let i=Vn();r?(M.value=i,Rn.value=!M.value.userOptions.showOnChartHover,Gn(),wn.value+=1,Tn.value+=1,En.value+=1,V.value.plotLabels.show=F.value.plotLabels.show,V.value.showTable=M.value.table.show,V.value.showTooltip=I.value.show):(M.value.style.chart.tooltip=i.style.chart.tooltip,V.value.showTooltip=M.value.style.chart.tooltip.show)},{deep:!0});let B=Je(null),Un=Je(null),Wn=d(()=>M.value.debug);function Gn(){if(fe(O.dataset)?ie({componentName:`VueUiQuadrant`,type:`dataset`,debug:Wn.value}):Wn.value&&O.dataset.forEach((e,t)=>{[null,void 0].includes(e.name)&&ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`name`,index:t}),[null,void 0].includes(e.series)?ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`series`,index:t}):e.series.forEach((e,t)=>{[null,void 0].includes(e.name)&&ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`name`,key:`series`,index:t})})}),M.value.responsive){let e=Ae(()=>{let{width:e,height:t}=je({chart:j.value,title:L.value.title.text?bn.value:null,legend:L.value.legend.show?xn.value:null,source:Sn.value,noTitle:Cn.value});H.value=48,requestAnimationFrame(()=>{U.value.height=t,U.value.usableHeight=t-H.value*2,U.value.width=e,U.value.usableWidth=e-H.value*2,U.value.top=H.value,U.value.left=H.value,U.value.right=e-H.value,U.value.bottom=t-H.value,U.value.centerX=e/2,U.value.centerY=t-t/2,U.value.padding=H.value})});B.value&&(Un.value&&B.value.unobserve(Un.value),B.value.disconnect()),B.value=new ResizeObserver(e),Un.value=j.value.parentNode,B.value.observe(Un.value)}}Ke(()=>{Dn.value=!0,Gn()}),Ge(()=>{B.value&&(Un.value&&B.value.unobserve(Un.value),B.value.disconnect())});let{isPrinting:Kn,isImaging:qn,generatePdf:Jn,generateImage:Yn}=Oe({elementId:`vue-ui-quadrant_${k.value}`,fileName:L.value.title.text||`vue-ui-quadrant`,options:M.value.userOptions.print}),Xn=d(()=>M.value.userOptions.show&&!L.value.title.text),Zn=d(()=>de(M.value.customPalette)),V=S({plotLabels:{show:F.value.plotLabels.show},showTable:M.value.table.show,showTooltip:I.value.show}),H=S(48),U=S({height:L.value.height,usableHeight:L.value.height-H.value*2,width:L.value.width,usableWidth:L.value.width-H.value*2,top:H.value,left:H.value,right:L.value.width-H.value,bottom:L.value.height-H.value,centerX:L.value.width/2,centerY:L.value.height-L.value.height/2,padding:H.value}),W=S({...JSON.parse(JSON.stringify(U.value)),startX:0,startY:0});Xe(()=>U.value,e=>{e&&(W.value={...JSON.parse(JSON.stringify(U.value)),startX:0,startY:0})},{deep:!0});let G=S(null),Qn=d(()=>{switch(G.value){case`TL`:return{x:W.value.startX+W.value.width/2,y:W.value.height,text:F.value.quadrantLabels.tl.text||`Top Left`,fontSize:F.value.quadrantLabels.tl.fontSize,fill:F.value.quadrantLabels.tl.color,bold:F.value.quadrantLabels.tl.bold};case`TR`:return{x:W.value.startX+W.value.width/2,y:W.value.height,text:F.value.quadrantLabels.tr.text||`Top Right`,fontSize:F.value.quadrantLabels.tr.fontSize,fill:F.value.quadrantLabels.tr.color,bold:F.value.quadrantLabels.tr.bold};case`BR`:return{x:W.value.startX+W.value.width/2,y:W.value.height*1.678,text:F.value.quadrantLabels.br.text||`Bottom Right`,fontSize:F.value.quadrantLabels.br.fontSize,fill:F.value.quadrantLabels.br.color,bold:F.value.quadrantLabels.br.bold};case`BL`:return{x:W.value.startX+W.value.width/2,y:W.value.height*1.678,text:F.value.quadrantLabels.bl.text||`Bottom Left`,fontSize:F.value.quadrantLabels.bl.fontSize,fill:F.value.quadrantLabels.bl.color,bold:F.value.quadrantLabels.bl.bold};default:return{x:0,y:0,text:``,fontSize:0,fill:`none`,bold:!1}}}),$n=S(null),er=S(!1);function tr({targetX:e,targetY:t,targetW:n,targetH:r,side:i}){G.value&&Tr(i);let a={x:e-W.value.startX,y:t-W.value.startY,w:n-W.value.width,h:r-W.value.height},o=M.value.zoomAnimationFrames,s=0;function c(){er.value=!0,W.value.startX+=a.x/o,W.value.startY+=a.y/o,W.value.width+=a.w/o,W.value.height+=a.h/o,s+=1,s<o?$n.value=requestAnimationFrame(c):er.value=!1}c()}let K=d(()=>M.value.zoomEnabled);function q(e){if(K.value&&!er.value){if(A.value&&G.value===e)tr({targetX:0,targetY:0,targetW:U.value.width,targetH:U.value.height}),G.value=null,A.value=!1;else{switch(G.value=e,e){case`TL`:tr({targetX:0,targetY:0,targetW:U.value.width/2+U.value.left,targetH:U.value.height/2+U.value.top,side:`tl`});break;case`TR`:tr({targetX:U.value.width/2-U.value.left,targetY:0,targetW:U.value.width/2+U.value.left,targetH:U.value.height/2+U.value.top,side:`tr`});break;case`BR`:tr({targetX:U.value.width/2-U.value.left,targetY:U.value.height/2-U.value.top,targetW:U.value.width/2+U.value.left,targetH:U.value.height/2+U.value.top,side:`br`});break;case`BL`:tr({targetX:0,targetY:U.value.height/2-U.value.top,targetW:U.value.width/2+U.value.left,targetH:U.value.height/2+U.value.top,side:`bl`});break;default:W.value.startX=0,W.value.startY=0,W.value.width=U.value.width,W.value.height=U.value.height}A.value=!0}}}let nr=d(()=>{let e=P.value.graduations.steps,t=U.value.usableWidth/(e*2),n=U.value.top,r=[];for(let i=0;i<e;i+=1)r.push({x:U.value.padding+t*i,y:n+U.value.usableHeight*(i/e/2),height:U.value.usableHeight*(1-i/e),width:U.value.usableWidth*(1-i/e),opacity:Math.round((i+1)/e*20)});return r}),J=d(()=>{let e=P.value.xAxis.max,t=P.value.xAxis.min,n=P.value.yAxis.max,r=P.value.yAxis.min;return P.value.xAxis.auto&&(e=Math.max(...rr.value.flatMap(e=>e.series.map(e=>e.x))),t=Math.min(...rr.value.flatMap(e=>e.series.map(e=>e.x)))),P.value.yAxis.auto&&(n=Math.max(...rr.value.flatMap(e=>e.series.map(e=>e.y))),r=Math.min(...rr.value.flatMap(e=>e.series.map(e=>e.y)))),{x:{max:e,min:t},y:{max:n,min:r}}}),Y=S([]),rr=d(()=>Ln.value.map((e,t)=>({...e,series:oe({data:e.series,threshold:M.value.downsample.threshold}),id:`cat_${t}_${k.value}`,color:ee(e.color)||Zn.value[t]||o[t]}))),ir=d(()=>rr.value.filter(e=>!Y.value.includes(e.id))),ar=d(()=>rr.value.map((e,t)=>({...e,shape:e.shape||`circle`,series:e.series.map(t=>({...t,x:or(t.x),y:sr(t.y),xValue:t.x,yValue:t.y,quadrantSide:_r({x:t.x,y:t.y}),categoryName:e.name,category:e,shape:e.shape,color:e.color}))}))),X=d(()=>(Wn.value&&Ln.value.forEach((e,t)=>{e.series.forEach((e,t)=>{[null,void 0].includes(e.x)&&ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`x`,key:`series`,index:t}),[null,void 0].includes(e.y)&&ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`y`,key:`series`,index:t})})}),ir.value.map((e,t)=>({...e,shape:e.shape||`circle`,color:e.color||Zn.value[t]||o[t],series:e.series.map(t=>({...t,category:e,x:or(t.x),y:sr(t.y),xValue:t.x,yValue:t.y,quadrantSide:_r({x:t.x,y:t.y}),categoryName:e.name,shape:e.shape,color:e.color,uid:te()}))}))));function or(e){if(e>=0){let t=e/J.value.x.max;return U.value.centerX+U.value.usableWidth/2*t}{let t=Math.abs(e)/Math.abs(J.value.x.min);return U.value.centerX-U.value.usableWidth/2*t}}function sr(e){if(e>=0){let t=e/J.value.y.max;return U.value.centerY+(1-U.value.usableHeight/2*t)}{let t=Math.abs(e)/Math.abs(J.value.y.min);return U.value.centerY-(1-U.value.usableHeight/2*t)}}let cr=d(()=>{let e=X.value.flatMap(e=>e.series.map(t=>({x:t.xValue,y:t.yValue,name:t.name,category:t.categoryName,quadrantSide:t.quadrantSide,sideName:F.value.quadrantLabels[t.quadrantSide].text,color:e.color,shape:e.shape}))),t=P.value.xAxis.name||`x`,n=P.value.yAxis.name||`y`;return{head:[M.value.translations.category,M.value.translations.item,t,n,M.value.translations.side],body:e.map(e=>[e.category,e.name,e.x,e.y,e.sideName||e.quadrantSide]),itsShapes:e.map(e=>({shape:e.shape,color:e.color})),tableData:e}}),lr=d(()=>{let e=cr.value.head,t=cr.value.tableData.map(e=>[{shape:e.shape,color:e.color,name:e.category},e.name,l(F.value.plotLabels.x.formatter,e.x,n({v:e.x,r:F.value.plotLabels.rounding})),l(F.value.plotLabels.y.formatter,e.y,n({v:e.y,r:F.value.plotLabels.rounding})),e.sideName||e.quadrantSide]);return{head:e,body:t,a11yBody:t.map(e=>e.map((e,t)=>t===0?e.name??``:e)),config:{th:{backgroundColor:M.value.table.th.backgroundColor,color:M.value.table.th.color,outline:M.value.table.th.outline},td:{backgroundColor:M.value.table.td.backgroundColor,color:M.value.table.td.color,outline:M.value.table.td.outline},breakpoint:M.value.table.responsiveBreakpoint},colNames:e}});function ur(){Y.value.length?Y.value=[]:fr.value.forEach(e=>{Y.value.push(e.id)}),gn(`selectLegend`,Er())}function dr(e){Y.value.includes(e)?Y.value=Y.value.filter(t=>t!==e):Y.value.push(e),gn(`selectLegend`,Er())}let fr=d(()=>ar.value.map(e=>({name:e.name,shape:e.shape,color:e.color,id:e.id,opacity:Y.value.includes(e.id)?.5:1,segregate:()=>dr(e.id),isSegregated:Y.value.includes(e.id)})));function pr(e){return fr.value.length?fr.value.find(t=>t.name===e)||(Wn.value&&console.warn(`VueUiQuadrant - Series name not found "${e}"`),null):(Wn.value&&console.warn(`VueUiQuadrant - There are no series to show.`),null)}function mr(e){let t=pr(e);t!==null&&Y.value.includes(t.id)&&dr(t.id)}function hr(e){let t=pr(e);t!==null&&(Y.value.includes(t.id)||dr(t.id))}let gr=d(()=>({cy:`quadrant-div-legend`,backgroundColor:L.value.legend.backgroundColor,color:L.value.legend.color,fontSize:L.value.legend.fontSize,paddingBottom:12,fontWeight:L.value.legend.bold?`bold`:``}));function _r(e){switch(!0){case e.x>=0&&e.y>=0:return`tr`;case e.x>=0&&e.y<0:return`br`;case e.x<0&&e.y<0:return`bl`;case e.x<0&&e.y>=0:return`tl`;default:return``}}let Z=S(null),vr=S(null),yr=S(null);function br(){Z.value=null,vr.value=null,An.value=null,jn.value=null,_n.value=!1}function xr(e){if(!z.value||!e)return;let t=`[data-a11y-plot-id="${e}"]`,n=z.value.querySelector(t);if(!n)return;let r=n.getBoundingClientRect();Mn.value={x:r.left+r.width/2,y:r.top+r.height/2}}function Sr(e,t,r,i=`pointer`,o=null){M.value.events.datapointEnter&&M.value.events.datapointEnter({datapoint:t,seriesIndex:r}),Z.value=t.uid,vr.value={color:e.color,shape:e.shape},Nn.value=i,An.value=o,jn.value=t.uid,yr.value={datapoint:t,seriesIndex:r,series:X.value,config:M.value};let s=I.value.customFormat;if(a(s)&&ce(()=>s({seriesIndex:r,datapoint:t,series:X.value,config:M.value})))vn.value=s({seriesIndex:r,datapoint:t,series:X.value,config:M.value});else{let i=``;t.quadrantSide&&(i+=`<div style="color:${F.value.quadrantLabels[t.quadrantSide].color};font-weight:${F.value.quadrantLabels[t.quadrantSide].bold?`bold`:`400`}">${F.value.quadrantLabels[t.quadrantSide].text}</div>`),i+=`<div>${e.name}</div>`,i+=`<div style="padding-bottom:6px;border-bottom:1px solid ${I.value.borderColor};margin-bottom:3px">${t.name}</div>`,i+=`<div>${P.value.xAxis.name?P.value.xAxis.name:`x`}: <b>${l(F.value.plotLabels.x.formatter,t.xValue,n({v:t.xValue,r:I.value.roundingValue}),{datapoint:t,category:e,categoryIndex:r})}</b></div>`,i+=`<div>${P.value.yAxis.name?P.value.yAxis.name:`y`}: <b>${l(F.value.plotLabels.y.formatter,t.yValue,n({v:t.yValue,r:I.value.roundingValue}),{datapoint:t,category:e,categoryIndex:r})}</b></div>`,vn.value=`<div style="text-align:left;font-size:${I.value.fontSize}px">${i}</div>`}i===`keyboard`&&We(()=>{xr(t.uid)}),_n.value=!0}function Cr(e,t){M.value.events.datapointLeave&&M.value.events.datapointLeave({datapoint:e,seriesIndex:t}),(jn.value!==e.uid||Nn.value!==`keyboard`)&&(_n.value=!1,Z.value=null,vr.value=null)}function wr(e,t,n){M.value.events.datapointClick&&M.value.events.datapointClick({datapoint:t,seriesIndex:n});let r={category:e.name,shape:e.shape,itemName:t.name,x:t.xValue,y:t.yValue,quadrantSide:t.quadrantSide,sideName:F.value.quadrantLabels[t.quadrantSide].text};gn(`selectPlot`,r)}function Tr(e){if(!e)return;let t=X.value.flatMap(t=>t.series.filter(t=>t.quadrantSide===e).map(e=>({category:e.categoryName,itemName:e.name,x:e.xValue,y:e.yValue}))),n={quadrantSide:e,sideName:F.value.quadrantLabels[e].text,items:[...t]};gn(`selectSide`,n)}let Q=d(()=>({TL:{tl:{x:U.value.left+U.value.usableWidth/4-20,y:0,fill:F.value.quadrantLabels.tl.color},tr:{x:U.value.left+U.value.usableWidth/4,y:0,fill:F.value.quadrantLabels.tr.color},br:{x:U.value.left+U.value.usableWidth/4,y:20,fill:F.value.quadrantLabels.br.color},bl:{x:U.value.left+U.value.usableWidth/4-20,y:20,fill:F.value.quadrantLabels.bl.color},crosshairs:{horizontal:`M ${U.value.left+U.value.usableWidth/4-20},20 ${U.value.left+U.value.usableWidth/4+20},20`,vertical:`M ${U.value.left+U.value.usableWidth/4},0 ${U.value.left+U.value.usableWidth/4},40`}},TR:{tl:{x:U.value.centerX+U.value.usableWidth/4-20,y:0,fill:F.value.quadrantLabels.tl.color},tr:{x:U.value.centerX+U.value.usableWidth/4,y:0,fill:F.value.quadrantLabels.tr.color},br:{x:U.value.centerX+U.value.usableWidth/4,y:20,fill:F.value.quadrantLabels.br.color},bl:{x:U.value.centerX+U.value.usableWidth/4-20,y:20,fill:F.value.quadrantLabels.bl.color},crosshairs:{horizontal:`M ${U.value.centerX+U.value.usableWidth/4-20},20 ${U.value.centerX+U.value.usableWidth/4+20},20`,vertical:`M ${U.value.centerX+U.value.usableWidth/4},0 ${U.value.centerX+U.value.usableWidth/4},40`}},BR:{tl:{x:U.value.centerX+U.value.usableWidth/4-20,y:U.value.centerY-48,fill:F.value.quadrantLabels.tl.color},tr:{x:U.value.centerX+U.value.usableWidth/4,y:U.value.centerY-48,fill:F.value.quadrantLabels.tr.color},br:{x:U.value.centerX+U.value.usableWidth/4,y:U.value.centerY-28,fill:F.value.quadrantLabels.br.color},bl:{x:U.value.centerX+U.value.usableWidth/4-20,y:U.value.centerY-28,fill:F.value.quadrantLabels.bl.color},crosshairs:{horizontal:`M ${U.value.centerX+U.value.usableWidth/4-20},${U.value.centerY-28} ${U.value.centerX+U.value.usableWidth/4+20},${U.value.centerY-28}`,vertical:`M ${U.value.centerX+U.value.usableWidth/4},${U.value.centerY-48} ${U.value.centerX+U.value.usableWidth/4},${U.value.centerY-8}`}},BL:{tl:{x:U.value.left+U.value.usableWidth/4-20,y:U.value.centerY-48,fill:F.value.quadrantLabels.tl.color},tr:{x:U.value.left+U.value.usableWidth/4,y:U.value.centerY-48,fill:F.value.quadrantLabels.tr.color},br:{x:U.value.left+U.value.usableWidth/4,y:U.value.centerY-28,fill:F.value.quadrantLabels.br.color},bl:{x:U.value.left+U.value.usableWidth/4-20,y:U.value.centerY-28,fill:F.value.quadrantLabels.bl.color},crosshairs:{horizontal:`M ${U.value.left+U.value.usableWidth/4-20},${U.value.centerY-28} ${U.value.left+U.value.usableWidth/4+20},${U.value.centerY-28}`,vertical:`M ${U.value.left+U.value.usableWidth/4},${U.value.centerY-48} ${U.value.left+U.value.usableWidth/4},${U.value.centerY-8}`}}}));function Er(){return X.value.map(e=>({color:e.color,name:e.name,shape:e.shape,series:e.series.map(e=>({name:e.name,x:e.xValue,y:e.yValue,quadrantSide:e.quadrantSide,sideName:F.value.quadrantLabels[e.quadrantSide].text}))}))}function Dr(e=null){We(()=>{let t=[[L.value.title.text],[L.value.title.subtitle.text],[``]],n=cr.value.head,r=cr.value.body,a=t.concat([n]).concat(r),o=i(a);e?e(o):se({csvContent:o,title:L.value.title.text||`vue-ui-quadrant`})})}let Or=S(!1);function kr(e){Or.value=e,yn.value+=1}function Ar(){V.value.showTable=!V.value.showTable}function jr(){V.value.plotLabels.show=!V.value.plotLabels.show}function Mr(){V.value.showTooltip=!V.value.showTooltip}let Nr=S(!1);function Pr(){Nr.value=!Nr.value}let Fr=ye(j,()=>L.value.title.text),Ir=d(()=>Ce({config:M,style:L,mutableConfig:V,dialog:pn,accordion:cn,isFullscreen:Or,parent:j,maxWidth:800,isCursorPointer:R}));Xe(()=>V.value.showTable,e=>Se(e,M,On));function Lr(){V.value.showTable=!1,kn.value&&kn.value.setTableIconState(!1)}let Rr=d(()=>L.value.backgroundColor),zr=d(()=>L.value.legend),Br=d(()=>L.value.title),{isCallbackImaging:Vr,isCallbackSvg:Hr,generateSvg:Ur,onGenerateImage:Wr}=xe({svg:z,title:Br,legend:zr,legendItems:fr,backgroundColor:Rr,getSvgCallback:()=>M.value.userOptions.callbacks.svg,generateImage:Yn});async function Gr(){gn(`copyAlt`,{config:M.value,dataset:ir.value}),M.value.userOptions.callbacks.altCopy?await Promise.resolve(M.value.userOptions.callbacks.altCopy({config:M.value,dataset:ir.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function Kr(){An.value=null,jn.value=null,Pn.value=!0}function qr(){br(),Pn.value=!1}function Jr(e){if(!z.value||Nr.value||document.activeElement!==z.value||!$.value.length)return;let t=e.key===`ArrowLeft`||e.key===`ArrowUp`,n=e.key===`ArrowRight`||e.key===`ArrowDown`,r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){br();return}if(r){if(An.value===null)return;let e=$.value[An.value];if(!e)return;wr(e.category,e.plot,e.categoryIndex);return}let a=An.value,o=Z.value?$.value.findIndex(e=>e.plot.uid===Z.value):null,s=a!==null&&a>=0&&a<$.value.length,c=o!==null&&o>=0&&o<$.value.length;s?(a+=n?1:-1,a<0&&(a=$.value.length-1),a>=$.value.length&&(a=0)):c?(a=n?o+1:o-1,a>=$.value.length&&(a=0),a<0&&(a=$.value.length-1)):a=n?0:$.value.length-1;let ee=$.value[a];ee&&Sr(ee.category,ee.plot,ee.categoryIndex,`keyboard`,a)}let Yr=d(()=>({headers:lr.value?.colNames??[],rows:lr.value?.a11yBody??[]})),$=d(()=>X.value.flatMap((e,t)=>e.series.map(n=>({category:e,plot:n,categoryIndex:t}))));return _e({getData:Er,getImage:Fr,generatePdf:Jn,generateCsv:Dr,generateImage:Yn,generateSvg:Ur,hideSeries:hr,showSeries:mr,toggleTable:Ar,toggleLabels:jr,toggleTooltip:Mr,toggleAnnotator:Pr,toggleFullscreen:kr,copyAlt:Gr}),(e,t)=>(x(),m(`div`,{class:v(`vue-data-ui-component vue-ui-quadrant ${Or.value?`vue-data-ui-wrapper-fullscreen`:``} ${M.value.useCssAnimation?``:`vue-ui-dna`}`),ref_key:`quadrantChart`,ref:j,id:`vue-ui-quadrant_${k.value}`,style:b(`font-family:${M.value.style.fontFamily};width:100%; text-align:center;background:${L.value.backgroundColor};${M.value.responsive?`height: 100%`:``}`),onMouseenter:t[14]||=()=>E(zn)(!0),onMouseleave:t[15]||=()=>{E(zn)(!1),Pn.value||br()}},[h(`div`,{id:`chart-instructions-${k.value}`,class:`sr-only`},[h(`p`,null,T(M.value.a11y.translations.keyboardNavigation),1)],8,$e),Yr.value?.rows?.length?(x(),f(Pe,{key:0,uid:k.value,head:Yr.value.headers,body:Yr.value.rows,notice:M.value.a11y.translations.tableAvailable,caption:M.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):p(``,!0),N.value.buttons.annotator?(x(),f(E(un),{key:1,svgRef:E(z),backgroundColor:L.value.backgroundColor,color:L.value.color,active:Nr.value,isCursorPointer:R.value,palette:N.value.annotatorPalette,onClose:Pr},Be({_:2},[C(E(Te),t=>({name:t,fn:D(n=>[w(e.$slots,t,y(_(E(we)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):p(``,!0),Xn.value?(x(),m(`div`,{key:2,ref_key:`noTitle`,ref:Cn,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):p(``,!0),L.value.title.text?(x(),m(`div`,{key:3,ref_key:`chartTitle`,ref:bn,style:`width:100%;background:transparent;padding-bottom:12px`},[(x(),f(be,{key:`table_${wn.value}`,config:{title:{cy:`quadrant-title`,...L.value.title},subtitle:{cy:`quadrant-subtitle`,...L.value.title.subtitle}}},null,8,[`config`]))],512)):p(``,!0),h(`div`,{id:`legend-top-${k.value}`},null,8,et),N.value.show&&hn.value&&(E(Bn)||E(Rn))?(x(),f(E(dn),{ref_key:`userOptionsRef`,ref:kn,key:`user_options_${yn.value}`,backgroundColor:L.value.backgroundColor,color:L.value.color,isImaging:E(qn),isPrinting:E(Kn),uid:k.value,hasTooltip:N.value.buttons.tooltip&&I.value.show,hasPdf:N.value.buttons.pdf,hasImg:N.value.buttons.img,hasSvg:N.value.buttons.svg,hasXls:N.value.buttons.csv,hasTable:N.value.buttons.table,hasLabel:N.value.buttons.labels,hasFullscreen:N.value.buttons.fullscreen,hasAltCopy:N.value.buttons.altCopy,isFullscreen:Or.value,isTooltip:V.value.showTooltip,titles:{...N.value.buttonTitles},chartElement:j.value,position:N.value.position,hasAnnotator:N.value.buttons.annotator,isAnnotation:Nr.value,callbacks:N.value.callbacks,printScale:N.value.print.scale,tableDialog:M.value.table.useDialog,isCursorPointer:R.value,onToggleFullscreen:kr,onGeneratePdf:E(Jn),onGenerateCsv:Dr,onGenerateImage:E(Wr),onGenerateSvg:E(Ur),onToggleTable:Ar,onToggleLabels:jr,onToggleTooltip:Mr,onToggleAnnotator:Pr,onCopyAlt:Gr,style:b({visibility:E(Bn)?E(Rn)?`visible`:`hidden`:`visible`})},Be({_:2},[C(E(Ee)(e.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionLabels optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:D(n=>[w(e.$slots,t,y(_(E(De)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isImaging.isPrinting.uid.hasTooltip.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasLabel.hasFullscreen.hasAltCopy.isFullscreen.isTooltip.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):p(``,!0),h(`div`,tt,[(x(),m(`svg`,{ref_key:`svgRef`,ref:z,xmlns:E(ue),"aria-describedby":`chart-instructions-${k.value}`,class:v({"vue-data-ui-fullscreen--on":Or.value,"vue-data-ui-fulscreen--off":!Or.value}),viewBox:`${W.value.startX} ${W.value.startY} ${W.value.width} ${W.value.height}`,style:b(`max-width:100%;overflow:hidden;background:transparent;color:${L.value.color}`),id:`svg_${k.value}`,tabindex:`0`,onFocus:Kr,onBlur:qr,onKeydown:Jr},[He(E(fn)),w(e.$slots,`svg-underlayer`,{svg:{...U.value,isPrintingImg:E(Kn)||E(qn)||E(Vr),isPrintingSvg:E(Hr)}},void 0,!0),e.$slots[`chart-background`]?(x(),m(`foreignObject`,{key:0,x:W.value.startX,y:W.value.startY,width:W.value.width,height:W.value.height,style:{pointerEvents:`none`}},[w(e.$slots,`chart-background`,{},void 0,!0)],8,rt)):p(``,!0),h(`defs`,null,[(x(!0),m(u,null,C(X.value,(e,t)=>(x(),f(Me,{t:`radial`,cx:`50%`,cy:`50%`,r:`50%`,fx:`50%`,fy:`50%`,id:`quadrant_gradient_${k.value}_${t}`,key:`quadrant_gradient_${k.value}_${t}`,stops:[[`0%`,E(c)(E(ne)(e.color,.05),L.value.layout.areas.opacity),1],[`100%`,E(c)(e.color,L.value.layout.areas.opacity),1]]},null,8,[`id`,`stops`]))),128))]),P.value.graduations.show?(x(),m(`g`,it,[(x(!0),m(u,null,C(nr.value,e=>(x(),m(`rect`,{fill:P.value.graduations.fill?E(c)(P.value.graduations.color,e.opacity):`none`,x:e.x,y:e.y,height:e.height<=0?.001:e.height,width:e.width<=0?.001:e.width,"stroke-width":P.value.graduations.strokeWidth,stroke:P.value.graduations.stroke,rx:P.value.graduations.roundingForce},null,8,at))),256))])):p(``,!0),h(`line`,{x1:U.value.left,y1:U.value.centerY,x2:U.value.right,y2:U.value.centerY,stroke:P.value.stroke,"stroke-width":P.value.strokeWidth},null,8,ot),h(`line`,{x1:U.value.centerX,y1:U.value.top,x2:U.value.centerX,y2:U.value.bottom,stroke:P.value.stroke,"stroke-width":P.value.strokeWidth},null,8,st),P.value.showArrows?(x(),m(`g`,ct,[h(`polygon`,{points:`${U.value.right-8},${U.value.centerY-6} ${U.value.right},${U.value.centerY} ${U.value.right-8},${U.value.centerY+6}`,fill:P.value.stroke,stroke:`none`},null,8,lt),h(`polygon`,{points:`${U.value.left+8},${U.value.centerY-6} ${U.value.left},${U.value.centerY} ${U.value.left+8},${U.value.centerY+6}`,fill:P.value.stroke,stroke:`none`},null,8,ut),h(`polygon`,{points:`${U.value.centerX-6},${U.value.top+8} ${U.value.centerX},${U.value.top} ${U.value.centerX+6},${U.value.top+8}`,fill:P.value.stroke,stroke:`none`},null,8,dt),h(`polygon`,{points:`${U.value.centerX-6},${U.value.bottom-8} ${U.value.centerX},${U.value.bottom} ${U.value.centerX+6},${U.value.bottom-8}`,fill:P.value.stroke,stroke:`none`},null,8,ft)])):p(``,!0),F.value.quadrantLabels.show&&!A.value?(x(),m(`g`,pt,[F.value.quadrantLabels.tl.text?(x(),m(`text`,{key:0,x:0,y:U.value.top-U.value.padding/2,"text-anchor":`start`,fill:F.value.quadrantLabels.tl.color,"font-size":F.value.quadrantLabels.tl.fontSize,style:b(`font-weight:${F.value.quadrantLabels.tl.bold?`bold`:``}`),onClick:t[0]||=e=>Tr(`tl`)},T(F.value.quadrantLabels.tl.text),13,mt)):p(``,!0),F.value.quadrantLabels.tr.text?(x(),m(`text`,{key:1,x:U.value.width,y:U.value.top-U.value.padding/2,"text-anchor":`end`,fill:F.value.quadrantLabels.tr.color,"font-size":F.value.quadrantLabels.tr.fontSize,style:b(`font-weight:${F.value.quadrantLabels.tr.bold?`bold`:``}`),onClick:t[1]||=e=>Tr(`tr`)},T(F.value.quadrantLabels.tr.text),13,ht)):p(``,!0),F.value.quadrantLabels.br.text?(x(),m(`text`,{key:2,x:U.value.width,y:U.value.bottom+U.value.padding*.7,"text-anchor":`end`,fill:F.value.quadrantLabels.br.color,"font-size":F.value.quadrantLabels.br.fontSize,style:b(`font-weight:${F.value.quadrantLabels.br.bold?`bold`:``}`),onClick:t[2]||=e=>Tr(`br`)},T(F.value.quadrantLabels.br.text),13,gt)):p(``,!0),F.value.quadrantLabels.bl.text?(x(),m(`text`,{key:3,x:0,y:U.value.bottom+U.value.padding*.7,"text-anchor":`start`,fill:F.value.quadrantLabels.bl.color,"font-size":F.value.quadrantLabels.bl.fontSize,style:b(`font-weight:${F.value.quadrantLabels.bl.bold?`bold`:``}`),onClick:t[3]||=e=>Tr(`bl`)},T(F.value.quadrantLabels.bl.text),13,_t)):p(``,!0)])):p(``,!0),F.value.axisLabels.show?(x(),m(`g`,vt,[P.value.yAxis.show?(x(),m(`text`,{key:0,x:U.value.centerX,y:U.value.top-U.value.padding/6,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,fill:F.value.axisLabels.color.positive},T(E(l)(F.value.plotLabels.y.formatter,J.value.y.max,E(n)({v:J.value.y.max,r:F.value.plotLabels.rounding}))),9,yt)):p(``,!0),h(`text`,{x:U.value.centerX,y:U.value.top-U.value.padding/2,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,fill:F.value.axisLabels.color.positive},T(P.value.yAxis.name),9,bt),P.value.yAxis.show?(x(),m(`text`,{key:1,x:U.value.centerX,y:U.value.bottom+U.value.padding*.35,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,fill:F.value.axisLabels.color.negative},T(E(l)(F.value.plotLabels.y.formatter,J.value.y.min,E(n)({v:J.value.y.min,r:F.value.plotLabels.rounding}))),9,xt)):p(``,!0),P.value.xAxis.show?(x(),m(`text`,{key:2,id:`xLabelMin_${k.value}`,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,transform:`translate(${U.value.padding-F.value.axisLabels.fontSize}, ${U.value.height/2}), rotate(-90)`,fill:F.value.axisLabels.color.negative},T(E(l)(F.value.plotLabels.x.formatter,J.value.x.min,E(n)({v:J.value.x.min,r:F.value.plotLabels.rounding}))),9,St)):p(``,!0),P.value.xAxis.show?(x(),m(`text`,{key:3,id:`xLabelMax_${k.value}`,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,transform:`translate(${U.value.width-U.value.padding+F.value.axisLabels.fontSize}, ${U.value.height/2}), rotate(90)`,fill:F.value.axisLabels.color.positive},T(E(l)(F.value.plotLabels.x.formatter,J.value.x.max,E(n)({v:J.value.x.max,r:F.value.plotLabels.rounding}))),9,Ct)):p(``,!0),h(`text`,{id:`xLabelMaxName_${k.value}`,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,transform:`translate(${U.value.width-F.value.axisLabels.fontSize}, ${U.value.height/2}), rotate(90)`,fill:F.value.axisLabels.color.positive},T(P.value.xAxis.name),9,wt)])):p(``,!0),L.value.layout.areas.show?(x(),m(`g`,Tt,[(x(!0),m(u,null,C(X.value,(e,t)=>(x(),m(`g`,null,[e.series.length>2?(x(),m(`polygon`,{key:0,"data-cy-quadrant-area":``,fill:L.value.layout.areas.useGradient?`url(#quadrant_gradient_${k.value}_${t})`:E(c)(e.color,L.value.layout.areas.opacity),points:E(r)(e)},null,8,Et)):p(``,!0)]))),256))])):p(``,!0),h(`g`,null,[h(`rect`,{onClick:t[4]||=e=>q(`TL`),x:U.value.left,y:U.value.top,width:U.value.usableWidth/2<=0?.001:U.value.usableWidth/2,height:U.value.usableHeight/2<=0?.001:U.value.usableHeight/2,fill:`transparent`,class:v({"vue-data-ui-zoom-plus":!A.value&&K.value,"vue-data-ui-zoom-minus":A.value&&K.value})},null,10,Dt),h(`rect`,{onClick:t[5]||=e=>q(`TR`),x:U.value.centerX,y:U.value.top,width:U.value.usableWidth/2<=0?.001:U.value.usableWidth/2,height:U.value.usableHeight/2<=0?.001:U.value.usableHeight/2,fill:`transparent`,class:v({"vue-data-ui-zoom-plus":!A.value&&K.value,"vue-data-ui-zoom-minus":A.value&&K.value})},null,10,Ot),h(`rect`,{onClick:t[6]||=e=>q(`BR`),x:U.value.centerX,y:U.value.centerY,width:U.value.usableWidth/2<=0?.001:U.value.usableWidth/2,height:U.value.usableHeight/2<=0?.001:U.value.usableHeight/2,fill:`transparent`,class:v({"vue-data-ui-zoom-plus":!A.value&&K.value,"vue-data-ui-zoom-minus":A.value&&K.value})},null,10,kt),h(`rect`,{onClick:t[7]||=e=>q(`BL`),x:U.value.left,y:U.value.centerY,width:U.value.usableWidth/2<=0?.001:U.value.usableWidth/2,height:U.value.usableHeight/2<=0?.001:U.value.usableHeight/2,fill:`transparent`,class:v({"vue-data-ui-zoom-plus":!A.value&&K.value,"vue-data-ui-zoom-minus":A.value&&K.value})},null,10,At)]),F.value.plotLabels.showAsTag?(x(),m(u,{key:7},[V.value.plotLabels.show?(x(),m(`g`,Lt,[(x(!0),m(u,null,C(X.value,(e,t)=>(x(),m(u,null,[(x(!0),m(u,null,C(e.series,n=>(x(),m(`foreignObject`,{style:{overflow:`visible`},height:`10`,width:`100`,x:n.x-50,y:n.y-F.value.plotLabels.fontSize,onMouseover:r=>Sr(e,n,t),onMouseleave:e=>Cr(n,t),onClick:r=>wr(e,n,t)},[h(`div`,{style:b(`color:${E(le)(e.color)};margin: 0 auto; font-size:${F.value.plotLabels.fontSize}px; text-align:center;background:${e.color}; padding: 2px 4px; border-radius: 12px; height: fit-content;`)},T(n.name),5)],40,Rt))),256))],64))),256))])):p(``,!0)],64)):(x(),m(u,{key:6},[(x(!0),m(u,null,C(X.value,(t,n)=>(x(),m(`g`,null,[e.$slots.datapoint&&!E(In)?(x(!0),m(u,{key:0},C(t.series,r=>(x(),m(`g`,{key:r.uid},[(x(),m(`foreignObject`,{x:r.x-1,y:r.y-1,width:`2`,height:`2`,style:{overflow:`visible`,"pointer-events":`none`},onMouseenter:e=>Sr(t,r,n),onMouseleave:e=>Cr(r,n),onClick:e=>wr(t,r,n)},[w(e.$slots,`datapoint`,Ue({ref_for:!0},{datapoint:{...r,onEnter:()=>Sr(t,r,n),onLeave:()=>Cr(r,n),onClick:()=>wr(t,r,n),isSelected:Z.value&&r.uid===Z.value}}),void 0,!0)],40,jt)),h(`circle`,{"data-a11y-plot-id":r.uid,cx:r.x,cy:r.y,r:Math.max(L.value.layout.plots.radius/(A.value?1.5:1),10),fill:`transparent`,style:{"pointer-events":`none`}},null,8,Mt)]))),128)):e.$slots.datapointSvg&&!E(In)?(x(!0),m(u,{key:1},C(t.series,r=>(x(),m(`g`,{key:r.uid},[w(e.$slots,`datapointSvg`,Ue({ref_for:!0},{datapoint:{...r,onEnter:()=>Sr(t,r,n),onLeave:()=>Cr(r,n),onClick:()=>wr(t,r,n),isSelected:Z.value&&r.uid===Z.value}}),void 0,!0)]))),128)):(x(!0),m(u,{key:2},C(t.series,(e,r)=>(x(),m(`g`,{key:e.uid},[He(ke,{color:t.color,isSelected:Z.value&&e.uid===Z.value,plot:e,radius:L.value.layout.plots.radius/(A.value?1.5:1),shape:t.shape,stroke:L.value.layout.plots.outline?L.value.layout.plots.outlineColor:`none`,strokeWidth:L.value.layout.plots.outlineWidth,onMouseenter:r=>Sr(t,e,n,`pointer`),onMouseleave:t=>Cr(e,n),onClick:r=>wr(t,e,n)},null,8,[`color`,`isSelected`,`plot`,`radius`,`shape`,`stroke`,`strokeWidth`,`onMouseenter`,`onMouseleave`,`onClick`]),h(`circle`,{"data-dom-to-png-ignore":``,"data-a11y-plot-id":e.uid,cx:e.x,cy:e.y,r:Math.max(L.value.layout.plots.radius/(A.value?1.5:1),10),fill:`transparent`,style:{"pointer-events":`none`}},null,8,Nt)]))),128))]))),256)),V.value.plotLabels.show?(x(),m(`g`,Pt,[(x(!0),m(u,null,C(X.value,e=>(x(),m(`g`,null,[(x(!0),m(u,null,C(e.series,e=>(x(),m(`g`,null,[String(e.name).includes(`
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Ct as r,D as i,Dt as a,Ht as o,J as s,Jt as c,S as ee,X as te,Yt as ne,Zt as re,at as ie,i as l,in as ae,jt as oe,nt as se,pt as ce,r as le,t as ue,w as de,zt as fe}from"./lib-rPeBMZrn.js";import{n as pe,t as me}from"./BaseScanner-8NdoBs7B.js";import{n as he,t as ge}from"./useHints-C-TwxM0Y.js";import{t as _e}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as ve}from"./resolveChartConfig-CIhClE5R.js";import{t as ye}from"./chartImage-DPGnEuYM.js";import{n as be}from"./Title-BliHuXfT.js";import{t as xe}from"./useChartExport-BZts4KFb.js";import{n as Se,t as Ce}from"./tableIntegration-CNoJ1CIY.js";import{n as we,t as Te}from"./annotationSlots-BRR85CqJ.js";import{n as Ee,t as De}from"./userOptionsSlots-DYuo-E5m.js";import{t as Oe}from"./usePrinter-DVf3YcG5.js";import{t as ke}from"./Shape-CRe8woTu.js";import{c as Ae}from"./canvas-lib-22VpOI4_.js";import{t as je}from"./useResponsive-CENUxfEL.js";import{t as Me}from"./DefGrad-DKMq1REY.js";import{t as Ne}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Pe}from"./A11yDataTable-DWNlWXzs.js";import{t as Fe}from"./useUserOptionState-CXlFnwPv.js";import{t as Ie}from"./useChartAccessibility-DOMuYJfm.js";import{t as Le}from"./Legend-DM0ClX3D.js";import{t as Re}from"./vue_ui_quadrant-BUv-SqzP.js";import{Fragment as u,Teleport as ze,computed as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createSlots as Be,createTextVNode as Ve,createVNode as He,defineAsyncComponent as g,guardReactiveProps as _,mergeProps as Ue,nextTick as We,normalizeClass as v,normalizeProps as y,normalizeStyle as b,onBeforeUnmount as Ge,onMounted as Ke,openBlock as x,ref as S,renderList as C,renderSlot as w,resolveDynamicComponent as qe,shallowRef as Je,toDisplayString as T,toRefs as Ye,unref as E,watch as Xe,withCtx as D}from"vue";var Ze=/* @__PURE__ */ e({default:()=>on}),Qe=[`id`],$e=[`id`],et=[`id`],tt={style:{position:`relative`}},nt=[`xmlns`,`aria-describedby`,`viewBox`,`id`],rt=[`x`,`y`,`width`,`height`],it={key:1},at=[`fill`,`x`,`y`,`height`,`width`,`stroke-width`,`stroke`,`rx`],ot=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],st=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],ct={key:2},lt=[`points`,`fill`],ut=[`points`,`fill`],dt=[`points`,`fill`],ft=[`points`,`fill`],pt={key:3},mt=[`y`,`fill`,`font-size`],ht=[`x`,`y`,`fill`,`font-size`],gt=[`x`,`y`,`fill`,`font-size`],_t=[`y`,`fill`,`font-size`],vt={key:4},yt=[`x`,`y`,`font-size`,`fill`],bt=[`x`,`y`,`font-size`,`fill`],xt=[`x`,`y`,`font-size`,`fill`],St=[`id`,`font-size`,`transform`,`fill`],Ct=[`id`,`font-size`,`transform`,`fill`],wt=[`id`,`font-size`,`transform`,`fill`],Tt={key:5},Et=[`fill`,`points`],Dt=[`x`,`y`,`width`,`height`],Ot=[`x`,`y`,`width`,`height`],kt=[`x`,`y`,`width`,`height`],At=[`x`,`y`,`width`,`height`],jt=[`x`,`y`,`onMouseenter`,`onMouseleave`,`onClick`],Mt=[`data-a11y-plot-id`,`cx`,`cy`,`r`],Nt=[`data-a11y-plot-id`,`cx`,`cy`,`r`],Pt={key:0,style:{"pointer-events":`none`}},Ft=[`x`,`y`,`font-size`,`fill`],It=[`x`,`y`,`font-size`,`fill`,`innerHTML`],Lt={key:0},Rt=[`x`,`y`,`onMouseover`,`onMouseleave`,`onClick`],zt={key:8,class:`vue-ui-dna`},Bt=[`points`,`fill`],Vt=[`points`,`fill`],Ht=[`points`,`fill`],Ut=[`points`,`fill`],Wt={key:9},Gt=[`x`,`y`,`font-size`,`fill`,`font-weight`],Kt={key:10},qt=[`x`,`y`,`fill`],Jt=[`x`,`y`,`fill`],Yt=[`x`,`y`,`fill`],Xt=[`x`,`y`,`fill`],Zt=[`stroke`,`d`],Qt=[`stroke`,`d`],$t={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},en={key:5,class:`vue-data-ui-watermark`},tn=[`id`],nn=[`onClick`],rn={key:0,height:`14`,width:`14`,viewBox:`0 0 20 20`},an=[`innerHTML`],on=/*#__PURE__*/ _e({__name:`vue-ui-quadrant`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectPlot`,`selectSide`,`selectLegend`,`copyAlt`],setup(e,{expose:_e,emit:Ze}){let on=g(()=>import(`./Tooltip-C1q0Qoh7.js`)),sn=g(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),cn=g(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),ln=g(()=>import(`./DataTable-0Vv-aGHD.js`)),un=g(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),dn=g(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),fn=g(()=>import(`./PackageVersion-DhptF5oD.js`).then(e=>e.t)),pn=g(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_quadrant:mn}=t(),O=e,hn=d(()=>!!O.dataset&&O.dataset.length),k=S(te()),gn=Ze,_n=S(!1),vn=S(``),yn=S(0),A=S(!1),j=S(null),bn=S(null),xn=S(null),Sn=S(null),Cn=S(null),wn=S(0),Tn=S(0),En=S(0),Dn=S(!1),On=S(null),kn=S(null),An=S(null),jn=S(null),Mn=S({x:0,y:0}),Nn=S(`pointer`),Pn=S(!1),M=S(Vn()),N=d(()=>M.value.userOptions),P=d(()=>M.value.style.chart.layout.grid),F=d(()=>M.value.style.chart.layout.labels),I=d(()=>M.value.style.chart.tooltip),L=d(()=>M.value.style.chart);he({config:()=>M.value,dataset:()=>O.dataset,component:`VueUiQuadrant`,rules:[ge.emptyArray,ge.noHint]});let R=d(()=>M.value.userOptions.useCursorPointer),Fn=d(()=>({defaultConfig:{userOptions:{show:!1},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{grid:{stroke:`#6A6A6A`,graduations:{stroke:`#6A6A6A`,color:`#6A6A6A90`},xAxis:{auto:!0},yAxis:{auto:!0}},labels:{quadrantLabels:{show:!1},plotLabels:{show:!1},axisLabels:{show:!1}},plots:{outlineColor:`#6A6A6A`}},legend:{backgroundColor:`transparent`}}}},userConfig:M.value.skeletonConfig??{}})),{loading:In,FINAL_DATASET:Ln}=pe({...Ye(O),FINAL_CONFIG:M,prepareConfig:Vn,callback:()=>{Promise.resolve().then(async()=>{await We(),V.value.showTable=M.value.table.show})},skeletonDataset:O.config?.skeletonDataset??[{name:`_`,shape:`circle`,color:`#CACACA`,series:[{name:`_`,x:-6,y:-4},{name:`_`,x:-5,y:-2},{name:`_`,x:-4,y:-1},{name:`_`,x:-3,y:-.5},{name:`_`,x:-2,y:-.25},{name:`_`,x:-1,y:-.135},{name:`_`,x:0,y:0},{name:`_`,x:1,y:.135},{name:`_`,x:2,y:.25},{name:`_`,x:3,y:.5},{name:`_`,x:4,y:1},{name:`_`,x:5,y:2},{name:`_`,x:6,y:4}]}],skeletonConfig:ae({defaultConfig:M.value,userConfig:Fn.value})}),{userOptionsVisible:Rn,setUserOptionsVisibility:zn,keepUserOptionState:Bn}=Fe({config:M.value}),{svgRef:z}=Ie({config:L.value.title});function Vn(){return ve(O.config,mn,Re)}let Hn=re(O.config);Xe(()=>O.config,(e,t)=>{let n=re(e),r=n!==Hn;Hn=n;let i=Vn();r?(M.value=i,Rn.value=!M.value.userOptions.showOnChartHover,Gn(),wn.value+=1,Tn.value+=1,En.value+=1,V.value.plotLabels.show=F.value.plotLabels.show,V.value.showTable=M.value.table.show,V.value.showTooltip=I.value.show):(M.value.style.chart.tooltip=i.style.chart.tooltip,V.value.showTooltip=M.value.style.chart.tooltip.show)},{deep:!0});let B=Je(null),Un=Je(null),Wn=d(()=>M.value.debug);function Gn(){if(fe(O.dataset)?ie({componentName:`VueUiQuadrant`,type:`dataset`,debug:Wn.value}):Wn.value&&O.dataset.forEach((e,t)=>{[null,void 0].includes(e.name)&&ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`name`,index:t}),[null,void 0].includes(e.series)?ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`series`,index:t}):e.series.forEach((e,t)=>{[null,void 0].includes(e.name)&&ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`name`,key:`series`,index:t})})}),M.value.responsive){let e=Ae(()=>{let{width:e,height:t}=je({chart:j.value,title:L.value.title.text?bn.value:null,legend:L.value.legend.show?xn.value:null,source:Sn.value,noTitle:Cn.value});H.value=48,requestAnimationFrame(()=>{U.value.height=t,U.value.usableHeight=t-H.value*2,U.value.width=e,U.value.usableWidth=e-H.value*2,U.value.top=H.value,U.value.left=H.value,U.value.right=e-H.value,U.value.bottom=t-H.value,U.value.centerX=e/2,U.value.centerY=t-t/2,U.value.padding=H.value})});B.value&&(Un.value&&B.value.unobserve(Un.value),B.value.disconnect()),B.value=new ResizeObserver(e),Un.value=j.value.parentNode,B.value.observe(Un.value)}}Ke(()=>{Dn.value=!0,Gn()}),Ge(()=>{B.value&&(Un.value&&B.value.unobserve(Un.value),B.value.disconnect())});let{isPrinting:Kn,isImaging:qn,generatePdf:Jn,generateImage:Yn}=Oe({elementId:`vue-ui-quadrant_${k.value}`,fileName:L.value.title.text||`vue-ui-quadrant`,options:M.value.userOptions.print}),Xn=d(()=>M.value.userOptions.show&&!L.value.title.text),Zn=d(()=>de(M.value.customPalette)),V=S({plotLabels:{show:F.value.plotLabels.show},showTable:M.value.table.show,showTooltip:I.value.show}),H=S(48),U=S({height:L.value.height,usableHeight:L.value.height-H.value*2,width:L.value.width,usableWidth:L.value.width-H.value*2,top:H.value,left:H.value,right:L.value.width-H.value,bottom:L.value.height-H.value,centerX:L.value.width/2,centerY:L.value.height-L.value.height/2,padding:H.value}),W=S({...JSON.parse(JSON.stringify(U.value)),startX:0,startY:0});Xe(()=>U.value,e=>{e&&(W.value={...JSON.parse(JSON.stringify(U.value)),startX:0,startY:0})},{deep:!0});let G=S(null),Qn=d(()=>{switch(G.value){case`TL`:return{x:W.value.startX+W.value.width/2,y:W.value.height,text:F.value.quadrantLabels.tl.text||`Top Left`,fontSize:F.value.quadrantLabels.tl.fontSize,fill:F.value.quadrantLabels.tl.color,bold:F.value.quadrantLabels.tl.bold};case`TR`:return{x:W.value.startX+W.value.width/2,y:W.value.height,text:F.value.quadrantLabels.tr.text||`Top Right`,fontSize:F.value.quadrantLabels.tr.fontSize,fill:F.value.quadrantLabels.tr.color,bold:F.value.quadrantLabels.tr.bold};case`BR`:return{x:W.value.startX+W.value.width/2,y:W.value.height*1.678,text:F.value.quadrantLabels.br.text||`Bottom Right`,fontSize:F.value.quadrantLabels.br.fontSize,fill:F.value.quadrantLabels.br.color,bold:F.value.quadrantLabels.br.bold};case`BL`:return{x:W.value.startX+W.value.width/2,y:W.value.height*1.678,text:F.value.quadrantLabels.bl.text||`Bottom Left`,fontSize:F.value.quadrantLabels.bl.fontSize,fill:F.value.quadrantLabels.bl.color,bold:F.value.quadrantLabels.bl.bold};default:return{x:0,y:0,text:``,fontSize:0,fill:`none`,bold:!1}}}),$n=S(null),er=S(!1);function tr({targetX:e,targetY:t,targetW:n,targetH:r,side:i}){G.value&&Tr(i);let a={x:e-W.value.startX,y:t-W.value.startY,w:n-W.value.width,h:r-W.value.height},o=M.value.zoomAnimationFrames,s=0;function c(){er.value=!0,W.value.startX+=a.x/o,W.value.startY+=a.y/o,W.value.width+=a.w/o,W.value.height+=a.h/o,s+=1,s<o?$n.value=requestAnimationFrame(c):er.value=!1}c()}let K=d(()=>M.value.zoomEnabled);function q(e){if(K.value&&!er.value){if(A.value&&G.value===e)tr({targetX:0,targetY:0,targetW:U.value.width,targetH:U.value.height}),G.value=null,A.value=!1;else{switch(G.value=e,e){case`TL`:tr({targetX:0,targetY:0,targetW:U.value.width/2+U.value.left,targetH:U.value.height/2+U.value.top,side:`tl`});break;case`TR`:tr({targetX:U.value.width/2-U.value.left,targetY:0,targetW:U.value.width/2+U.value.left,targetH:U.value.height/2+U.value.top,side:`tr`});break;case`BR`:tr({targetX:U.value.width/2-U.value.left,targetY:U.value.height/2-U.value.top,targetW:U.value.width/2+U.value.left,targetH:U.value.height/2+U.value.top,side:`br`});break;case`BL`:tr({targetX:0,targetY:U.value.height/2-U.value.top,targetW:U.value.width/2+U.value.left,targetH:U.value.height/2+U.value.top,side:`bl`});break;default:W.value.startX=0,W.value.startY=0,W.value.width=U.value.width,W.value.height=U.value.height}A.value=!0}}}let nr=d(()=>{let e=P.value.graduations.steps,t=U.value.usableWidth/(e*2),n=U.value.top,r=[];for(let i=0;i<e;i+=1)r.push({x:U.value.padding+t*i,y:n+U.value.usableHeight*(i/e/2),height:U.value.usableHeight*(1-i/e),width:U.value.usableWidth*(1-i/e),opacity:Math.round((i+1)/e*20)});return r}),J=d(()=>{let e=P.value.xAxis.max,t=P.value.xAxis.min,n=P.value.yAxis.max,r=P.value.yAxis.min;return P.value.xAxis.auto&&(e=Math.max(...rr.value.flatMap(e=>e.series.map(e=>e.x))),t=Math.min(...rr.value.flatMap(e=>e.series.map(e=>e.x)))),P.value.yAxis.auto&&(n=Math.max(...rr.value.flatMap(e=>e.series.map(e=>e.y))),r=Math.min(...rr.value.flatMap(e=>e.series.map(e=>e.y)))),{x:{max:e,min:t},y:{max:n,min:r}}}),Y=S([]),rr=d(()=>Ln.value.map((e,t)=>({...e,series:oe({data:e.series,threshold:M.value.downsample.threshold}),id:`cat_${t}_${k.value}`,color:ee(e.color)||Zn.value[t]||o[t]}))),ir=d(()=>rr.value.filter(e=>!Y.value.includes(e.id))),ar=d(()=>rr.value.map((e,t)=>({...e,shape:e.shape||`circle`,series:e.series.map(t=>({...t,x:or(t.x),y:sr(t.y),xValue:t.x,yValue:t.y,quadrantSide:_r({x:t.x,y:t.y}),categoryName:e.name,category:e,shape:e.shape,color:e.color}))}))),X=d(()=>(Wn.value&&Ln.value.forEach((e,t)=>{e.series.forEach((e,t)=>{[null,void 0].includes(e.x)&&ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`x`,key:`series`,index:t}),[null,void 0].includes(e.y)&&ie({componentName:`VueUiQuadrant`,type:`datasetSerieAttribute`,property:`y`,key:`series`,index:t})})}),ir.value.map((e,t)=>({...e,shape:e.shape||`circle`,color:e.color||Zn.value[t]||o[t],series:e.series.map(t=>({...t,category:e,x:or(t.x),y:sr(t.y),xValue:t.x,yValue:t.y,quadrantSide:_r({x:t.x,y:t.y}),categoryName:e.name,shape:e.shape,color:e.color,uid:te()}))}))));function or(e){if(e>=0){let t=e/J.value.x.max;return U.value.centerX+U.value.usableWidth/2*t}{let t=Math.abs(e)/Math.abs(J.value.x.min);return U.value.centerX-U.value.usableWidth/2*t}}function sr(e){if(e>=0){let t=e/J.value.y.max;return U.value.centerY+(1-U.value.usableHeight/2*t)}{let t=Math.abs(e)/Math.abs(J.value.y.min);return U.value.centerY-(1-U.value.usableHeight/2*t)}}let cr=d(()=>{let e=X.value.flatMap(e=>e.series.map(t=>({x:t.xValue,y:t.yValue,name:t.name,category:t.categoryName,quadrantSide:t.quadrantSide,sideName:F.value.quadrantLabels[t.quadrantSide].text,color:e.color,shape:e.shape}))),t=P.value.xAxis.name||`x`,n=P.value.yAxis.name||`y`;return{head:[M.value.translations.category,M.value.translations.item,t,n,M.value.translations.side],body:e.map(e=>[e.category,e.name,e.x,e.y,e.sideName||e.quadrantSide]),itsShapes:e.map(e=>({shape:e.shape,color:e.color})),tableData:e}}),lr=d(()=>{let e=cr.value.head,t=cr.value.tableData.map(e=>[{shape:e.shape,color:e.color,name:e.category},e.name,l(F.value.plotLabels.x.formatter,e.x,n({v:e.x,r:F.value.plotLabels.rounding})),l(F.value.plotLabels.y.formatter,e.y,n({v:e.y,r:F.value.plotLabels.rounding})),e.sideName||e.quadrantSide]);return{head:e,body:t,a11yBody:t.map(e=>e.map((e,t)=>t===0?e.name??``:e)),config:{th:{backgroundColor:M.value.table.th.backgroundColor,color:M.value.table.th.color,outline:M.value.table.th.outline},td:{backgroundColor:M.value.table.td.backgroundColor,color:M.value.table.td.color,outline:M.value.table.td.outline},breakpoint:M.value.table.responsiveBreakpoint},colNames:e}});function ur(){Y.value.length?Y.value=[]:fr.value.forEach(e=>{Y.value.push(e.id)}),gn(`selectLegend`,Er())}function dr(e){Y.value.includes(e)?Y.value=Y.value.filter(t=>t!==e):Y.value.push(e),gn(`selectLegend`,Er())}let fr=d(()=>ar.value.map(e=>({name:e.name,shape:e.shape,color:e.color,id:e.id,opacity:Y.value.includes(e.id)?.5:1,segregate:()=>dr(e.id),isSegregated:Y.value.includes(e.id)})));function pr(e){return fr.value.length?fr.value.find(t=>t.name===e)||(Wn.value&&console.warn(`VueUiQuadrant - Series name not found "${e}"`),null):(Wn.value&&console.warn(`VueUiQuadrant - There are no series to show.`),null)}function mr(e){let t=pr(e);t!==null&&Y.value.includes(t.id)&&dr(t.id)}function hr(e){let t=pr(e);t!==null&&(Y.value.includes(t.id)||dr(t.id))}let gr=d(()=>({cy:`quadrant-div-legend`,backgroundColor:L.value.legend.backgroundColor,color:L.value.legend.color,fontSize:L.value.legend.fontSize,paddingBottom:12,fontWeight:L.value.legend.bold?`bold`:``}));function _r(e){switch(!0){case e.x>=0&&e.y>=0:return`tr`;case e.x>=0&&e.y<0:return`br`;case e.x<0&&e.y<0:return`bl`;case e.x<0&&e.y>=0:return`tl`;default:return``}}let Z=S(null),vr=S(null),yr=S(null);function br(){Z.value=null,vr.value=null,An.value=null,jn.value=null,_n.value=!1}function xr(e){if(!z.value||!e)return;let t=`[data-a11y-plot-id="${e}"]`,n=z.value.querySelector(t);if(!n)return;let r=n.getBoundingClientRect();Mn.value={x:r.left+r.width/2,y:r.top+r.height/2}}function Sr(e,t,r,i=`pointer`,o=null){M.value.events.datapointEnter&&M.value.events.datapointEnter({datapoint:t,seriesIndex:r}),Z.value=t.uid,vr.value={color:e.color,shape:e.shape},Nn.value=i,An.value=o,jn.value=t.uid,yr.value={datapoint:t,seriesIndex:r,series:X.value,config:M.value};let s=I.value.customFormat;if(a(s)&&ce(()=>s({seriesIndex:r,datapoint:t,series:X.value,config:M.value})))vn.value=s({seriesIndex:r,datapoint:t,series:X.value,config:M.value});else{let i=``;t.quadrantSide&&(i+=`<div style="color:${F.value.quadrantLabels[t.quadrantSide].color};font-weight:${F.value.quadrantLabels[t.quadrantSide].bold?`bold`:`400`}">${F.value.quadrantLabels[t.quadrantSide].text}</div>`),i+=`<div>${e.name}</div>`,i+=`<div style="padding-bottom:6px;border-bottom:1px solid ${I.value.borderColor};margin-bottom:3px">${t.name}</div>`,i+=`<div>${P.value.xAxis.name?P.value.xAxis.name:`x`}: <b>${l(F.value.plotLabels.x.formatter,t.xValue,n({v:t.xValue,r:I.value.roundingValue}),{datapoint:t,category:e,categoryIndex:r})}</b></div>`,i+=`<div>${P.value.yAxis.name?P.value.yAxis.name:`y`}: <b>${l(F.value.plotLabels.y.formatter,t.yValue,n({v:t.yValue,r:I.value.roundingValue}),{datapoint:t,category:e,categoryIndex:r})}</b></div>`,vn.value=`<div style="text-align:left;font-size:${I.value.fontSize}px">${i}</div>`}i===`keyboard`&&We(()=>{xr(t.uid)}),_n.value=!0}function Cr(e,t){M.value.events.datapointLeave&&M.value.events.datapointLeave({datapoint:e,seriesIndex:t}),(jn.value!==e.uid||Nn.value!==`keyboard`)&&(_n.value=!1,Z.value=null,vr.value=null)}function wr(e,t,n){M.value.events.datapointClick&&M.value.events.datapointClick({datapoint:t,seriesIndex:n});let r={category:e.name,shape:e.shape,itemName:t.name,x:t.xValue,y:t.yValue,quadrantSide:t.quadrantSide,sideName:F.value.quadrantLabels[t.quadrantSide].text};gn(`selectPlot`,r)}function Tr(e){if(!e)return;let t=X.value.flatMap(t=>t.series.filter(t=>t.quadrantSide===e).map(e=>({category:e.categoryName,itemName:e.name,x:e.xValue,y:e.yValue}))),n={quadrantSide:e,sideName:F.value.quadrantLabels[e].text,items:[...t]};gn(`selectSide`,n)}let Q=d(()=>({TL:{tl:{x:U.value.left+U.value.usableWidth/4-20,y:0,fill:F.value.quadrantLabels.tl.color},tr:{x:U.value.left+U.value.usableWidth/4,y:0,fill:F.value.quadrantLabels.tr.color},br:{x:U.value.left+U.value.usableWidth/4,y:20,fill:F.value.quadrantLabels.br.color},bl:{x:U.value.left+U.value.usableWidth/4-20,y:20,fill:F.value.quadrantLabels.bl.color},crosshairs:{horizontal:`M ${U.value.left+U.value.usableWidth/4-20},20 ${U.value.left+U.value.usableWidth/4+20},20`,vertical:`M ${U.value.left+U.value.usableWidth/4},0 ${U.value.left+U.value.usableWidth/4},40`}},TR:{tl:{x:U.value.centerX+U.value.usableWidth/4-20,y:0,fill:F.value.quadrantLabels.tl.color},tr:{x:U.value.centerX+U.value.usableWidth/4,y:0,fill:F.value.quadrantLabels.tr.color},br:{x:U.value.centerX+U.value.usableWidth/4,y:20,fill:F.value.quadrantLabels.br.color},bl:{x:U.value.centerX+U.value.usableWidth/4-20,y:20,fill:F.value.quadrantLabels.bl.color},crosshairs:{horizontal:`M ${U.value.centerX+U.value.usableWidth/4-20},20 ${U.value.centerX+U.value.usableWidth/4+20},20`,vertical:`M ${U.value.centerX+U.value.usableWidth/4},0 ${U.value.centerX+U.value.usableWidth/4},40`}},BR:{tl:{x:U.value.centerX+U.value.usableWidth/4-20,y:U.value.centerY-48,fill:F.value.quadrantLabels.tl.color},tr:{x:U.value.centerX+U.value.usableWidth/4,y:U.value.centerY-48,fill:F.value.quadrantLabels.tr.color},br:{x:U.value.centerX+U.value.usableWidth/4,y:U.value.centerY-28,fill:F.value.quadrantLabels.br.color},bl:{x:U.value.centerX+U.value.usableWidth/4-20,y:U.value.centerY-28,fill:F.value.quadrantLabels.bl.color},crosshairs:{horizontal:`M ${U.value.centerX+U.value.usableWidth/4-20},${U.value.centerY-28} ${U.value.centerX+U.value.usableWidth/4+20},${U.value.centerY-28}`,vertical:`M ${U.value.centerX+U.value.usableWidth/4},${U.value.centerY-48} ${U.value.centerX+U.value.usableWidth/4},${U.value.centerY-8}`}},BL:{tl:{x:U.value.left+U.value.usableWidth/4-20,y:U.value.centerY-48,fill:F.value.quadrantLabels.tl.color},tr:{x:U.value.left+U.value.usableWidth/4,y:U.value.centerY-48,fill:F.value.quadrantLabels.tr.color},br:{x:U.value.left+U.value.usableWidth/4,y:U.value.centerY-28,fill:F.value.quadrantLabels.br.color},bl:{x:U.value.left+U.value.usableWidth/4-20,y:U.value.centerY-28,fill:F.value.quadrantLabels.bl.color},crosshairs:{horizontal:`M ${U.value.left+U.value.usableWidth/4-20},${U.value.centerY-28} ${U.value.left+U.value.usableWidth/4+20},${U.value.centerY-28}`,vertical:`M ${U.value.left+U.value.usableWidth/4},${U.value.centerY-48} ${U.value.left+U.value.usableWidth/4},${U.value.centerY-8}`}}}));function Er(){return X.value.map(e=>({color:e.color,name:e.name,shape:e.shape,series:e.series.map(e=>({name:e.name,x:e.xValue,y:e.yValue,quadrantSide:e.quadrantSide,sideName:F.value.quadrantLabels[e.quadrantSide].text}))}))}function Dr(e=null){We(()=>{let t=[[L.value.title.text],[L.value.title.subtitle.text],[``]],n=cr.value.head,r=cr.value.body,a=t.concat([n]).concat(r),o=i(a);e?e(o):se({csvContent:o,title:L.value.title.text||`vue-ui-quadrant`})})}let Or=S(!1);function kr(e){Or.value=e,yn.value+=1}function Ar(){V.value.showTable=!V.value.showTable}function jr(){V.value.plotLabels.show=!V.value.plotLabels.show}function Mr(){V.value.showTooltip=!V.value.showTooltip}let Nr=S(!1);function Pr(){Nr.value=!Nr.value}let Fr=ye(j,()=>L.value.title.text),Ir=d(()=>Ce({config:M,style:L,mutableConfig:V,dialog:pn,accordion:cn,isFullscreen:Or,parent:j,maxWidth:800,isCursorPointer:R}));Xe(()=>V.value.showTable,e=>Se(e,M,On));function Lr(){V.value.showTable=!1,kn.value&&kn.value.setTableIconState(!1)}let Rr=d(()=>L.value.backgroundColor),zr=d(()=>L.value.legend),Br=d(()=>L.value.title),{isCallbackImaging:Vr,isCallbackSvg:Hr,generateSvg:Ur,onGenerateImage:Wr}=xe({svg:z,title:Br,legend:zr,legendItems:fr,backgroundColor:Rr,getSvgCallback:()=>M.value.userOptions.callbacks.svg,generateImage:Yn});async function Gr(){gn(`copyAlt`,{config:M.value,dataset:ir.value}),M.value.userOptions.callbacks.altCopy?await Promise.resolve(M.value.userOptions.callbacks.altCopy({config:M.value,dataset:ir.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function Kr(){An.value=null,jn.value=null,Pn.value=!0}function qr(){br(),Pn.value=!1}function Jr(e){if(!z.value||Nr.value||document.activeElement!==z.value||!$.value.length)return;let t=e.key===`ArrowLeft`||e.key===`ArrowUp`,n=e.key===`ArrowRight`||e.key===`ArrowDown`,r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){br();return}if(r){if(An.value===null)return;let e=$.value[An.value];if(!e)return;wr(e.category,e.plot,e.categoryIndex);return}let a=An.value,o=Z.value?$.value.findIndex(e=>e.plot.uid===Z.value):null,s=a!==null&&a>=0&&a<$.value.length,c=o!==null&&o>=0&&o<$.value.length;s?(a+=n?1:-1,a<0&&(a=$.value.length-1),a>=$.value.length&&(a=0)):c?(a=n?o+1:o-1,a>=$.value.length&&(a=0),a<0&&(a=$.value.length-1)):a=n?0:$.value.length-1;let ee=$.value[a];ee&&Sr(ee.category,ee.plot,ee.categoryIndex,`keyboard`,a)}let Yr=d(()=>({headers:lr.value?.colNames??[],rows:lr.value?.a11yBody??[]})),$=d(()=>X.value.flatMap((e,t)=>e.series.map(n=>({category:e,plot:n,categoryIndex:t}))));return _e({getData:Er,getImage:Fr,generatePdf:Jn,generateCsv:Dr,generateImage:Yn,generateSvg:Ur,hideSeries:hr,showSeries:mr,toggleTable:Ar,toggleLabels:jr,toggleTooltip:Mr,toggleAnnotator:Pr,toggleFullscreen:kr,copyAlt:Gr}),(e,t)=>(x(),m(`div`,{class:v(`vue-data-ui-component vue-ui-quadrant ${Or.value?`vue-data-ui-wrapper-fullscreen`:``} ${M.value.useCssAnimation?``:`vue-ui-dna`}`),ref_key:`quadrantChart`,ref:j,id:`vue-ui-quadrant_${k.value}`,style:b(`font-family:${M.value.style.fontFamily};width:100%; text-align:center;background:${L.value.backgroundColor};${M.value.responsive?`height: 100%`:``}`),onMouseenter:t[14]||=()=>E(zn)(!0),onMouseleave:t[15]||=()=>{E(zn)(!1),Pn.value||br()}},[h(`div`,{id:`chart-instructions-${k.value}`,class:`sr-only`},[h(`p`,null,T(M.value.a11y.translations.keyboardNavigation),1)],8,$e),Yr.value?.rows?.length?(x(),f(Pe,{key:0,uid:k.value,head:Yr.value.headers,body:Yr.value.rows,notice:M.value.a11y.translations.tableAvailable,caption:M.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):p(``,!0),N.value.buttons.annotator?(x(),f(E(un),{key:1,svgRef:E(z),backgroundColor:L.value.backgroundColor,color:L.value.color,active:Nr.value,isCursorPointer:R.value,palette:N.value.annotatorPalette,onClose:Pr},Be({_:2},[C(E(Te),t=>({name:t,fn:D(n=>[w(e.$slots,t,y(_(E(we)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):p(``,!0),Xn.value?(x(),m(`div`,{key:2,ref_key:`noTitle`,ref:Cn,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):p(``,!0),L.value.title.text?(x(),m(`div`,{key:3,ref_key:`chartTitle`,ref:bn,style:`width:100%;background:transparent;padding-bottom:12px`},[(x(),f(be,{key:`table_${wn.value}`,config:{title:{cy:`quadrant-title`,...L.value.title},subtitle:{cy:`quadrant-subtitle`,...L.value.title.subtitle}}},null,8,[`config`]))],512)):p(``,!0),h(`div`,{id:`legend-top-${k.value}`},null,8,et),N.value.show&&hn.value&&(E(Bn)||E(Rn))?(x(),f(E(dn),{ref_key:`userOptionsRef`,ref:kn,key:`user_options_${yn.value}`,backgroundColor:L.value.backgroundColor,color:L.value.color,isImaging:E(qn),isPrinting:E(Kn),uid:k.value,hasTooltip:N.value.buttons.tooltip&&I.value.show,hasPdf:N.value.buttons.pdf,hasImg:N.value.buttons.img,hasSvg:N.value.buttons.svg,hasXls:N.value.buttons.csv,hasTable:N.value.buttons.table,hasLabel:N.value.buttons.labels,hasFullscreen:N.value.buttons.fullscreen,hasAltCopy:N.value.buttons.altCopy,isFullscreen:Or.value,isTooltip:V.value.showTooltip,titles:{...N.value.buttonTitles},chartElement:j.value,position:N.value.position,hasAnnotator:N.value.buttons.annotator,isAnnotation:Nr.value,callbacks:N.value.callbacks,printScale:N.value.print.scale,tableDialog:M.value.table.useDialog,isCursorPointer:R.value,onToggleFullscreen:kr,onGeneratePdf:E(Jn),onGenerateCsv:Dr,onGenerateImage:E(Wr),onGenerateSvg:E(Ur),onToggleTable:Ar,onToggleLabels:jr,onToggleTooltip:Mr,onToggleAnnotator:Pr,onCopyAlt:Gr,style:b({visibility:E(Bn)?E(Rn)?`visible`:`hidden`:`visible`})},Be({_:2},[C(E(Ee)(e.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionLabels optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:D(n=>[w(e.$slots,t,y(_(E(De)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isImaging.isPrinting.uid.hasTooltip.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasLabel.hasFullscreen.hasAltCopy.isFullscreen.isTooltip.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):p(``,!0),h(`div`,tt,[(x(),m(`svg`,{ref_key:`svgRef`,ref:z,xmlns:E(ue),"aria-describedby":`chart-instructions-${k.value}`,class:v({"vue-data-ui-fullscreen--on":Or.value,"vue-data-ui-fulscreen--off":!Or.value}),viewBox:`${W.value.startX} ${W.value.startY} ${W.value.width} ${W.value.height}`,style:b(`max-width:100%;overflow:hidden;background:transparent;color:${L.value.color}`),id:`svg_${k.value}`,tabindex:`0`,onFocus:Kr,onBlur:qr,onKeydown:Jr},[He(E(fn)),w(e.$slots,`svg-underlayer`,{svg:{...U.value,isPrintingImg:E(Kn)||E(qn)||E(Vr),isPrintingSvg:E(Hr)}},void 0,!0),e.$slots[`chart-background`]?(x(),m(`foreignObject`,{key:0,x:W.value.startX,y:W.value.startY,width:W.value.width,height:W.value.height,style:{pointerEvents:`none`}},[w(e.$slots,`chart-background`,{},void 0,!0)],8,rt)):p(``,!0),h(`defs`,null,[(x(!0),m(u,null,C(X.value,(e,t)=>(x(),f(Me,{t:`radial`,cx:`50%`,cy:`50%`,r:`50%`,fx:`50%`,fy:`50%`,id:`quadrant_gradient_${k.value}_${t}`,key:`quadrant_gradient_${k.value}_${t}`,stops:[[`0%`,E(c)(E(ne)(e.color,.05),L.value.layout.areas.opacity),1],[`100%`,E(c)(e.color,L.value.layout.areas.opacity),1]]},null,8,[`id`,`stops`]))),128))]),P.value.graduations.show?(x(),m(`g`,it,[(x(!0),m(u,null,C(nr.value,e=>(x(),m(`rect`,{fill:P.value.graduations.fill?E(c)(P.value.graduations.color,e.opacity):`none`,x:e.x,y:e.y,height:e.height<=0?.001:e.height,width:e.width<=0?.001:e.width,"stroke-width":P.value.graduations.strokeWidth,stroke:P.value.graduations.stroke,rx:P.value.graduations.roundingForce},null,8,at))),256))])):p(``,!0),h(`line`,{x1:U.value.left,y1:U.value.centerY,x2:U.value.right,y2:U.value.centerY,stroke:P.value.stroke,"stroke-width":P.value.strokeWidth},null,8,ot),h(`line`,{x1:U.value.centerX,y1:U.value.top,x2:U.value.centerX,y2:U.value.bottom,stroke:P.value.stroke,"stroke-width":P.value.strokeWidth},null,8,st),P.value.showArrows?(x(),m(`g`,ct,[h(`polygon`,{points:`${U.value.right-8},${U.value.centerY-6} ${U.value.right},${U.value.centerY} ${U.value.right-8},${U.value.centerY+6}`,fill:P.value.stroke,stroke:`none`},null,8,lt),h(`polygon`,{points:`${U.value.left+8},${U.value.centerY-6} ${U.value.left},${U.value.centerY} ${U.value.left+8},${U.value.centerY+6}`,fill:P.value.stroke,stroke:`none`},null,8,ut),h(`polygon`,{points:`${U.value.centerX-6},${U.value.top+8} ${U.value.centerX},${U.value.top} ${U.value.centerX+6},${U.value.top+8}`,fill:P.value.stroke,stroke:`none`},null,8,dt),h(`polygon`,{points:`${U.value.centerX-6},${U.value.bottom-8} ${U.value.centerX},${U.value.bottom} ${U.value.centerX+6},${U.value.bottom-8}`,fill:P.value.stroke,stroke:`none`},null,8,ft)])):p(``,!0),F.value.quadrantLabels.show&&!A.value?(x(),m(`g`,pt,[F.value.quadrantLabels.tl.text?(x(),m(`text`,{key:0,x:0,y:U.value.top-U.value.padding/2,"text-anchor":`start`,fill:F.value.quadrantLabels.tl.color,"font-size":F.value.quadrantLabels.tl.fontSize,style:b(`font-weight:${F.value.quadrantLabels.tl.bold?`bold`:``}`),onClick:t[0]||=e=>Tr(`tl`)},T(F.value.quadrantLabels.tl.text),13,mt)):p(``,!0),F.value.quadrantLabels.tr.text?(x(),m(`text`,{key:1,x:U.value.width,y:U.value.top-U.value.padding/2,"text-anchor":`end`,fill:F.value.quadrantLabels.tr.color,"font-size":F.value.quadrantLabels.tr.fontSize,style:b(`font-weight:${F.value.quadrantLabels.tr.bold?`bold`:``}`),onClick:t[1]||=e=>Tr(`tr`)},T(F.value.quadrantLabels.tr.text),13,ht)):p(``,!0),F.value.quadrantLabels.br.text?(x(),m(`text`,{key:2,x:U.value.width,y:U.value.bottom+U.value.padding*.7,"text-anchor":`end`,fill:F.value.quadrantLabels.br.color,"font-size":F.value.quadrantLabels.br.fontSize,style:b(`font-weight:${F.value.quadrantLabels.br.bold?`bold`:``}`),onClick:t[2]||=e=>Tr(`br`)},T(F.value.quadrantLabels.br.text),13,gt)):p(``,!0),F.value.quadrantLabels.bl.text?(x(),m(`text`,{key:3,x:0,y:U.value.bottom+U.value.padding*.7,"text-anchor":`start`,fill:F.value.quadrantLabels.bl.color,"font-size":F.value.quadrantLabels.bl.fontSize,style:b(`font-weight:${F.value.quadrantLabels.bl.bold?`bold`:``}`),onClick:t[3]||=e=>Tr(`bl`)},T(F.value.quadrantLabels.bl.text),13,_t)):p(``,!0)])):p(``,!0),F.value.axisLabels.show?(x(),m(`g`,vt,[P.value.yAxis.show?(x(),m(`text`,{key:0,x:U.value.centerX,y:U.value.top-U.value.padding/6,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,fill:F.value.axisLabels.color.positive},T(E(l)(F.value.plotLabels.y.formatter,J.value.y.max,E(n)({v:J.value.y.max,r:F.value.plotLabels.rounding}))),9,yt)):p(``,!0),h(`text`,{x:U.value.centerX,y:U.value.top-U.value.padding/2,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,fill:F.value.axisLabels.color.positive},T(P.value.yAxis.name),9,bt),P.value.yAxis.show?(x(),m(`text`,{key:1,x:U.value.centerX,y:U.value.bottom+U.value.padding*.35,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,fill:F.value.axisLabels.color.negative},T(E(l)(F.value.plotLabels.y.formatter,J.value.y.min,E(n)({v:J.value.y.min,r:F.value.plotLabels.rounding}))),9,xt)):p(``,!0),P.value.xAxis.show?(x(),m(`text`,{key:2,id:`xLabelMin_${k.value}`,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,transform:`translate(${U.value.padding-F.value.axisLabels.fontSize}, ${U.value.height/2}), rotate(-90)`,fill:F.value.axisLabels.color.negative},T(E(l)(F.value.plotLabels.x.formatter,J.value.x.min,E(n)({v:J.value.x.min,r:F.value.plotLabels.rounding}))),9,St)):p(``,!0),P.value.xAxis.show?(x(),m(`text`,{key:3,id:`xLabelMax_${k.value}`,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,transform:`translate(${U.value.width-U.value.padding+F.value.axisLabels.fontSize}, ${U.value.height/2}), rotate(90)`,fill:F.value.axisLabels.color.positive},T(E(l)(F.value.plotLabels.x.formatter,J.value.x.max,E(n)({v:J.value.x.max,r:F.value.plotLabels.rounding}))),9,Ct)):p(``,!0),h(`text`,{id:`xLabelMaxName_${k.value}`,"text-anchor":`middle`,"font-size":F.value.axisLabels.fontSize,transform:`translate(${U.value.width-F.value.axisLabels.fontSize}, ${U.value.height/2}), rotate(90)`,fill:F.value.axisLabels.color.positive},T(P.value.xAxis.name),9,wt)])):p(``,!0),L.value.layout.areas.show?(x(),m(`g`,Tt,[(x(!0),m(u,null,C(X.value,(e,t)=>(x(),m(`g`,null,[e.series.length>2?(x(),m(`polygon`,{key:0,"data-cy-quadrant-area":``,fill:L.value.layout.areas.useGradient?`url(#quadrant_gradient_${k.value}_${t})`:E(c)(e.color,L.value.layout.areas.opacity),points:E(r)(e)},null,8,Et)):p(``,!0)]))),256))])):p(``,!0),h(`g`,null,[h(`rect`,{onClick:t[4]||=e=>q(`TL`),x:U.value.left,y:U.value.top,width:U.value.usableWidth/2<=0?.001:U.value.usableWidth/2,height:U.value.usableHeight/2<=0?.001:U.value.usableHeight/2,fill:`transparent`,class:v({"vue-data-ui-zoom-plus":!A.value&&K.value,"vue-data-ui-zoom-minus":A.value&&K.value})},null,10,Dt),h(`rect`,{onClick:t[5]||=e=>q(`TR`),x:U.value.centerX,y:U.value.top,width:U.value.usableWidth/2<=0?.001:U.value.usableWidth/2,height:U.value.usableHeight/2<=0?.001:U.value.usableHeight/2,fill:`transparent`,class:v({"vue-data-ui-zoom-plus":!A.value&&K.value,"vue-data-ui-zoom-minus":A.value&&K.value})},null,10,Ot),h(`rect`,{onClick:t[6]||=e=>q(`BR`),x:U.value.centerX,y:U.value.centerY,width:U.value.usableWidth/2<=0?.001:U.value.usableWidth/2,height:U.value.usableHeight/2<=0?.001:U.value.usableHeight/2,fill:`transparent`,class:v({"vue-data-ui-zoom-plus":!A.value&&K.value,"vue-data-ui-zoom-minus":A.value&&K.value})},null,10,kt),h(`rect`,{onClick:t[7]||=e=>q(`BL`),x:U.value.left,y:U.value.centerY,width:U.value.usableWidth/2<=0?.001:U.value.usableWidth/2,height:U.value.usableHeight/2<=0?.001:U.value.usableHeight/2,fill:`transparent`,class:v({"vue-data-ui-zoom-plus":!A.value&&K.value,"vue-data-ui-zoom-minus":A.value&&K.value})},null,10,At)]),F.value.plotLabels.showAsTag?(x(),m(u,{key:7},[V.value.plotLabels.show?(x(),m(`g`,Lt,[(x(!0),m(u,null,C(X.value,(e,t)=>(x(),m(u,null,[(x(!0),m(u,null,C(e.series,n=>(x(),m(`foreignObject`,{style:{overflow:`visible`},height:`10`,width:`100`,x:n.x-50,y:n.y-F.value.plotLabels.fontSize,onMouseover:r=>Sr(e,n,t),onMouseleave:e=>Cr(n,t),onClick:r=>wr(e,n,t)},[h(`div`,{style:b(`color:${E(le)(e.color)};margin: 0 auto; font-size:${F.value.plotLabels.fontSize}px; text-align:center;background:${e.color}; padding: 2px 4px; border-radius: 12px; height: fit-content;`)},T(n.name),5)],40,Rt))),256))],64))),256))])):p(``,!0)],64)):(x(),m(u,{key:6},[(x(!0),m(u,null,C(X.value,(t,n)=>(x(),m(`g`,null,[e.$slots.datapoint&&!E(In)?(x(!0),m(u,{key:0},C(t.series,r=>(x(),m(`g`,{key:r.uid},[(x(),m(`foreignObject`,{x:r.x-1,y:r.y-1,width:`2`,height:`2`,style:{overflow:`visible`,"pointer-events":`none`},onMouseenter:e=>Sr(t,r,n),onMouseleave:e=>Cr(r,n),onClick:e=>wr(t,r,n)},[w(e.$slots,`datapoint`,Ue({ref_for:!0},{datapoint:{...r,onEnter:()=>Sr(t,r,n),onLeave:()=>Cr(r,n),onClick:()=>wr(t,r,n),isSelected:Z.value&&r.uid===Z.value}}),void 0,!0)],40,jt)),h(`circle`,{"data-a11y-plot-id":r.uid,cx:r.x,cy:r.y,r:Math.max(L.value.layout.plots.radius/(A.value?1.5:1),10),fill:`transparent`,style:{"pointer-events":`none`}},null,8,Mt)]))),128)):e.$slots.datapointSvg&&!E(In)?(x(!0),m(u,{key:1},C(t.series,r=>(x(),m(`g`,{key:r.uid},[w(e.$slots,`datapointSvg`,Ue({ref_for:!0},{datapoint:{...r,onEnter:()=>Sr(t,r,n),onLeave:()=>Cr(r,n),onClick:()=>wr(t,r,n),isSelected:Z.value&&r.uid===Z.value}}),void 0,!0)]))),128)):(x(!0),m(u,{key:2},C(t.series,(e,r)=>(x(),m(`g`,{key:e.uid},[He(ke,{color:t.color,isSelected:Z.value&&e.uid===Z.value,plot:e,radius:L.value.layout.plots.radius/(A.value?1.5:1),shape:t.shape,stroke:L.value.layout.plots.outline?L.value.layout.plots.outlineColor:`none`,strokeWidth:L.value.layout.plots.outlineWidth,onMouseenter:r=>Sr(t,e,n,`pointer`),onMouseleave:t=>Cr(e,n),onClick:r=>wr(t,e,n)},null,8,[`color`,`isSelected`,`plot`,`radius`,`shape`,`stroke`,`strokeWidth`,`onMouseenter`,`onMouseleave`,`onClick`]),h(`circle`,{"data-dom-to-png-ignore":``,"data-a11y-plot-id":e.uid,cx:e.x,cy:e.y,r:Math.max(L.value.layout.plots.radius/(A.value?1.5:1),10),fill:`transparent`,style:{"pointer-events":`none`}},null,8,Nt)]))),128))]))),256)),V.value.plotLabels.show?(x(),m(`g`,Pt,[(x(!0),m(u,null,C(X.value,e=>(x(),m(`g`,null,[(x(!0),m(u,null,C(e.series,e=>(x(),m(`g`,null,[String(e.name).includes(`
|
|
2
2
|
`)?(x(),m(`text`,{key:1,x:e.x,y:e.y+F.value.plotLabels.offsetY+L.value.layout.plots.radius,"text-anchor":`middle`,"font-size":F.value.plotLabels.fontSize/(A.value?1.5:1),fill:F.value.plotLabels.color,innerHTML:E(s)({content:String(e.name),fontSize:L.value.layout.labels.plotLabels.fontSize/(A.value?1.5:1),fill:L.value.layout.labels.plotLabels.color,x:e.x,y:e.y+L.value.layout.labels.plotLabels.offsetY+L.value.layout.plots.radius})},null,8,It)):(x(),m(`text`,{key:0,x:e.x,y:e.y+F.value.plotLabels.offsetY+L.value.layout.plots.radius,"text-anchor":`middle`,"font-size":F.value.plotLabels.fontSize/(A.value?1.5:1),fill:F.value.plotLabels.color},T(e.name),9,Ft))]))),256))]))),256))])):p(``,!0)],64)),A.value?(x(),m(`g`,zt,[G.value===`TL`?(x(),m(`polygon`,{key:0,points:`${U.value.left-1},${U.value.centerY} ${U.value.centerX},${U.value.centerY} ${U.value.centerX},${U.value.top-1} ${U.value.right},${U.value.top-1} ${U.value.right},${U.value.bottom} ${U.value.left-1},${U.value.bottom} ${U.value.left-1},${U.value.centerY}`,fill:L.value.backgroundColor,style:{opacity:`1`}},null,8,Bt)):p(``,!0),G.value===`TR`?(x(),m(`polygon`,{key:1,points:`${U.value.left},${U.value.top-1} ${U.value.centerX},${U.value.top-1} ${U.value.centerX},${U.value.centerY} ${U.value.right+1},${U.value.centerY} ${U.value.right+1},${U.value.bottom} ${U.value.left},${U.value.bottom} ${U.value.left},${U.value.top-1}`,fill:L.value.backgroundColor,style:{opacity:`1`}},null,8,Vt)):p(``,!0),G.value===`BR`?(x(),m(`polygon`,{key:2,points:`${U.value.left},${U.value.top} ${U.value.right+1},${U.value.top} ${U.value.right+1},${U.value.centerY} ${U.value.centerX},${U.value.centerY} ${U.value.centerX},${U.value.bottom+1} ${U.value.left},${U.value.bottom+1} ${U.value.left},${U.value.top}`,fill:L.value.backgroundColor,style:{opacity:`1`}},null,8,Ht)):p(``,!0),G.value===`BL`?(x(),m(`polygon`,{key:3,points:`${U.value.left-1},${U.value.top} ${U.value.right},${U.value.top} ${U.value.right},${U.value.bottom+1} ${U.value.centerX},${U.value.bottom+1} ${U.value.centerX},${U.value.centerY} ${U.value.left-1},${U.value.centerY} ${U.value.left-1},${U.value.top}`,fill:L.value.backgroundColor,style:{opacity:`1`}},null,8,Ut)):p(``,!0)])):p(``,!0),G.value&&!er.value?(x(),m(`g`,Wt,[h(`text`,{x:Qn.value.x,y:Qn.value.y-Qn.value.fontSize/1.5,"font-size":Qn.value.fontSize/1.5,fill:Qn.value.fill,"text-anchor":`middle`,"font-weight":Qn.value.bold?`bold`:`normal`},T(Qn.value.text),9,Gt)])):p(``,!0),A.value&&G.value?(x(),m(`g`,Kt,[h(`rect`,{x:Q.value[G.value].tl.x,y:Q.value[G.value].tl.y,height:`20`,width:`20`,fill:Q.value[G.value].tl.fill,style:b(`cursor: ${R.value?`pointer`:`default`}; opacity: ${G.value===`TL`?1:.2}`),onClick:t[8]||=e=>q(`TL`),class:v({"vue-ui-quadrant-mini-map-cell":!0,"vue-ui-quadrant-mini-map-cell-selectable":G.value!==`TL`})},null,14,qt),h(`rect`,{x:Q.value[G.value].tr.x,y:Q.value[G.value].tr.y,height:`20`,width:`20`,fill:Q.value[G.value].tr.fill,style:b(`cursor: ${R.value?`pointer`:`default`}; opacity: ${G.value===`TR`?1:.2}`),onClick:t[9]||=e=>q(`TR`),class:v({"vue-ui-quadrant-mini-map-cell":!0,"vue-ui-quadrant-mini-map-cell-selectable":G.value!==`TR`})},null,14,Jt),h(`rect`,{x:Q.value[G.value].br.x,y:Q.value[G.value].br.y,height:`20`,width:`20`,fill:Q.value[G.value].br.fill,style:b(`cursor: ${R.value?`pointer`:`default`}; opacity: ${G.value===`BR`?1:.2}`),onClick:t[10]||=e=>q(`BR`),class:v({"vue-ui-quadrant-mini-map-cell":!0,"vue-ui-quadrant-mini-map-cell-selectable":G.value!==`BR`})},null,14,Yt),h(`rect`,{x:Q.value[G.value].bl.x,y:Q.value[G.value].bl.y,height:`20`,width:`20`,fill:Q.value[G.value].bl.fill,style:b(`cursor: ${R.value?`pointer`:`default`}; opacity: ${G.value===`BL`?1:.2}`),onClick:t[11]||=e=>q(`BL`),class:v({"vue-ui-quadrant-mini-map-cell":!0,"vue-ui-quadrant-mini-map-cell-selectable":G.value!==`BL`})},null,14,Xt),h(`path`,{class:`vue-ui-quadrant-minimap-crosshairs`,stroke:L.value.backgroundColor,"stroke-width":1,d:Q.value[G.value].crosshairs.horizontal},null,8,Zt),h(`path`,{class:`vue-ui-quadrant-minimap-crosshairs`,stroke:L.value.backgroundColor,"stroke-width":1,d:Q.value[G.value].crosshairs.vertical},null,8,Qt)])):p(``,!0),w(e.$slots,`svg`,{svg:{...U.value,isPrintingImg:E(Kn)||E(qn)||E(Vr),isPrintingSvg:E(Hr)}},void 0,!0)],46,nt)),e.$slots.hint?(x(),m(`div`,$t,[w(e.$slots,`hint`,y(_({hint:M.value.a11y.translations.keyboardNavigation,isVisible:Pn.value})),void 0,!0)])):p(``,!0)]),e.$slots.watermark?(x(),m(`div`,en,[w(e.$slots,`watermark`,y(_({isPrinting:E(Kn)||E(qn)||E(Vr)||E(Hr)})),void 0,!0)])):p(``,!0),h(`div`,{id:`legend-bottom-${k.value}`},null,8,tn),Dn.value&&(L.value.legend.show||e.$slots.legend)?(x(),f(ze,{key:6,to:L.value.legend.position===`top`?`#legend-top-${k.value}`:`#legend-bottom-${k.value}`},[h(`div`,{ref_key:`chartLegend`,ref:xn},[w(e.$slots,`legend`,{legend:fr.value},()=>[L.value.legend.show?(x(),f(Le,{key:`legend_${En.value}`,legendSet:fr.value,config:gr.value,isCursorPointer:R.value,onClickMarker:t[12]||=({legend:e})=>dr(e.id)},{item:D(({legend:e})=>[E(In)?p(``,!0):(x(),m(`div`,{key:0,onClick:t=>dr(e.id),style:b(`opacity:${Y.value.includes(e.id)?.5:1}`)},T(e.name),13,nn))]),legendToggle:D(()=>[fr.value.length>2&&L.value.legend.selectAllToggle.show&&!E(In)?(x(),f(Ne,{key:0,backgroundColor:L.value.legend.selectAllToggle.backgroundColor,color:L.value.legend.selectAllToggle.color,fontSize:L.value.legend.fontSize,checked:Y.value.length>0,isCursorPointer:R.value,onToggle:ur},null,8,[`backgroundColor`,`color`,`fontSize`,`checked`,`isCursorPointer`])):p(``,!0)]),_:1},8,[`legendSet`,`config`,`isCursorPointer`])):p(``,!0)],!0)],512)],8,[`to`])):p(``,!0),e.$slots.source?(x(),m(`div`,{key:7,ref_key:`source`,ref:Sn,dir:`auto`},[w(e.$slots,`source`,{},void 0,!0)],512)):p(``,!0),He(E(on),{teleportTo:I.value.teleportTo,show:V.value.showTooltip&&_n.value,backgroundColor:I.value.backgroundColor,color:I.value.color,borderRadius:I.value.borderRadius,borderColor:I.value.borderColor,borderWidth:I.value.borderWidth,fontSize:I.value.fontSize,backgroundOpacity:I.value.backgroundOpacity,position:I.value.position,offsetX:I.value.offsetX,offsetY:I.value.offsetY,parent:j.value,content:vn.value,isFullscreen:Or.value,isCustom:I.value.customFormat&&typeof I.value.customFormat==`function`,smooth:I.value.smooth,backdropFilter:I.value.backdropFilter,smoothForce:I.value.smoothForce,smoothSnapThreshold:I.value.smoothSnapThreshold,isA11yMode:Nn.value===`keyboard`,a11yPosition:Mn.value},{"tooltip-before":D(()=>[w(e.$slots,`tooltip-before`,y(_({...yr.value})),void 0,!0)]),tooltip:D(()=>[w(e.$slots,`tooltip`,y(_({...yr.value})),void 0,!0)]),"tooltip-after":D(()=>[w(e.$slots,`tooltip-after`,y(_({...yr.value})),void 0,!0)]),default:D(()=>[I.value.showShape?(x(),m(`svg`,rn,[He(ke,{plot:{x:10,y:10},shape:vr.value.shape,color:vr.value.color,radius:8,stroke:L.value.layout.plots.outline?L.value.layout.plots.outlineColor:`none`,"stroke-width":L.value.layout.plots.outlineWidth},null,8,[`shape`,`color`,`stroke`,`stroke-width`])])):p(``,!0)]),_:3},8,[`teleportTo`,`show`,`backgroundColor`,`color`,`borderRadius`,`borderColor`,`borderWidth`,`fontSize`,`backgroundOpacity`,`position`,`offsetX`,`offsetY`,`parent`,`content`,`isFullscreen`,`isCustom`,`smooth`,`backdropFilter`,`smoothForce`,`smoothSnapThreshold`,`isA11yMode`,`a11yPosition`]),hn.value&&N.value.buttons.table?(x(),f(qe(Ir.value.component),Ue({key:8},Ir.value.props,{ref_key:`tableUnit`,ref:On,onClose:Lr}),Be({content:D(()=>[(x(),f(E(ln),{key:`table_${Tn.value}`,colNames:lr.value.colNames,head:lr.value.head,body:lr.value.body,config:lr.value.config,title:M.value.table.useDialog?``:Ir.value.title,withCloseButton:!M.value.table.useDialog,isCursorPointer:R.value,onClose:Lr},{th:D(({th:e})=>[Ve(T(e),1)]),td:D(({td:e})=>[h(`div`,{innerHTML:e.name||e},null,8,an)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`]))]),_:2},[M.value.table.useDialog?{name:`title`,fn:D(()=>[Ve(T(Ir.value.title),1)]),key:`0`}:void 0,M.value.table.useDialog?{name:`actions`,fn:D(()=>[h(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[13]||=e=>Dr(N.value.callbacks.csv),style:b({cursor:R.value?`pointer`:`default`})},[He(E(sn),{name:`fileCsv`,stroke:Ir.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):p(``,!0),w(e.$slots,`skeleton`,{},()=>[E(In)?(x(),f(me,{key:0})):p(``,!0)],!0)],46,Qe))}},[[`__scopeId`,`data-v-ab4d690d`]]);export{Ze as n,on 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,Dt as r,Ht as i,It as a,J as o,Kt as s,P as c,S as ee,X as l,_ as te,at as ne,b as u,et as re,f as d,h as ie,i as f,in as p,nn as ae,p as oe,pt as se,t as ce,w as le,zt as ue}from"./lib-rPeBMZrn.js";import{n as de,t as fe}from"./BaseScanner-8NdoBs7B.js";import{n as pe,t as me}from"./useHints-C-TwxM0Y.js";import{t as he}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ge}from"./useNestedProp-DnGoh-XS.js";import{t as _e}from"./useThemeCheck-BKNRbGeC.js";import{t as ve}from"./img-D4RQwASc.js";import{t as ye}from"./useChartExport-BZts4KFb.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"./useTimeLabels-Das5O74F.js";import{t as Te}from"./usePrinter-DVf3YcG5.js";import{t as Ee}from"./useTransitions-ChGGrtrv.js";import{t as De}from"./useStableElementSize-CegFbRlF.js";import{t as Oe}from"./useSvgLabelLayout-42Kats14.js";import{t as ke}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Ae}from"./useResponsive-CENUxfEL.js";import{t as je}from"./SlicerPreview-CFFUOlQr.js";import{t as Me}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Ne}from"./A11yDataTable-DWNlWXzs.js";import{t as Pe}from"./useChartAccessibility-DOMuYJfm.js";import{t as Fe}from"./vue_ui_quick_chart-BRfcRW6Z.js";import{Fragment as m,Teleport as Ie,computed as h,createBlock as Le,createCommentVNode as g,createElementBlock as _,createElementVNode as v,createSlots as Re,createVNode as ze,defineAsyncComponent as Be,guardReactiveProps as Ve,mergeProps as He,nextTick as Ue,normalizeClass as y,normalizeProps as We,normalizeStyle as b,onBeforeUnmount as Ge,onMounted as Ke,openBlock as x,ref as S,renderList as C,renderSlot as w,shallowRef as qe,toDisplayString as T,toRefs as Je,unref as E,watch as Ye,watchEffect as Xe,withCtx as Ze}from"vue";var D={LINE:`LINE`,BAR:`BAR`,DONUT:`DONUT`},Qe=[`SERIE`,`SERIES`,`DATA`,`VALUE`,`VALUES`,`NUM`];function $e({dataset:e,barLineSwitch:t=6,debug:n=!0}){let r=null,i=null,a=0;if((typeof e==`number`||typeof e==`string`)&&n&&console.warn(`The provided dataset (${e}) is not sufficient to build a chart`),tt(e)&&(O(e)&&(r=e.length<t?D.BAR:D.LINE,i=e,a=e.length),nt(e))){if(!it(e))return n&&console.warn(`The objects in the dataset array have a different data structure. Either keys or value types are different.`),!1;let o=Object.keys(e[0]),s=Object.values(e[0]);if(!o.some(e=>at(e)))return n&&console.warn(`The data type of the dataset objects in the array must contain one of the following keys: DATA, SERIES, VALUE, VALUES, NUM. Casing is not important.`),!1;ot(s,e=>typeof e==`number`)&&(r=D.DONUT,i=e),ot(s,e=>Array.isArray(e)&&O(e))&&(r=st(e)>t?D.LINE:D.BAR,a=st(e),i=e.map(e=>({...e,data:ct(e,e=>O(e))}))),e=e.map(e=>k(e)),i=i.map(e=>k(e))}return{dataset:e,type:r,usableDataset:i,maxSeriesLength:a}}function et(e){return!e||tt(e)&&!e.length}function tt(e){return Array.isArray(e)}function O(e){if(!tt(e)||et(e))return!1;let t=e.map(e=>Number(e));return![...new Set(t.flatMap(e=>typeof e==`number`&&!isNaN(e)))].includes(!1)}function nt(e){return!tt(e)||et(e)||[...new Set(e.flatMap(e=>typeof e==`object`&&!Array.isArray(e)))].includes(!1)?!1:!e.map(e=>Object.keys(e).length>0).includes(!1)}function rt(e,t){let n=Object.keys(e).sort(),r=Object.keys(t).sort();if(n.length!==r.length)return!1;for(let i=0;i<n.length;i+=1){let a=n[i],o=r[i];if(a!==o||typeof e[a]!=typeof t[o])return!1}return!0}function it(e){if(e.length<=1)return!0;for(let t=0;t<e.length;t+=1)for(let n=t+1;n<e.length;n+=1)if(!rt(e[t],e[n]))return!1;return!0}function at(e){return Qe.includes(e.toUpperCase())}function ot(e,t){let n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n.includes(!0)}function st(e){return Math.max(...[...e].flatMap(e=>Object.values(e).filter(e=>O(e)).map(e=>e.length)))}function ct(e,t){return Object.values(e).filter(e=>t(e))[0]}function k(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toUpperCase()]=e[n]);return t}var A=/* @__PURE__ */ e({default:()=>In}),lt=[`id`],ut=[`id`],dt=[`id`],ft={style:{position:`relative`}},pt=[`xmlns`,`aria-describedby`,`viewBox`],mt=[`x`,`y`,`width`,`height`],ht=[`x`,`y`,`width`,`height`],gt=[`width`,`height`],_t=[`id`],vt=[`id`],yt=[`id`],bt=[`flood-color`],xt={key:0,class:`donut-label-connectors`},St=[`d`,`stroke`,`stroke-width`,`filter`],Ct=[`cx`,`cy`,`r`,`fill`,`filter`],wt={class:`donut`},Tt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Et=[`d`,`onMouseenter`,`onMouseout`,`onClick`],Dt={key:1,class:`donut-labels`},Ot=[`cx`,`cy`,`fill`,`stroke`,`filter`],kt=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`filter`],At=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`filter`],jt={key:2,class:`donut-hollow`},Mt=[`x`,`y`,`font-size`,`fill`],Nt=[`x`,`y`,`font-size`,`fill`],Pt={key:0,class:`line-grid`},Ft=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],It=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Lt={key:1,class:`line-axis`},Rt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],zt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Bt=[`d`,`stroke`,`stroke-width`],Vt=[`transform`,`font-size`,`fill`],Ht={key:3,class:`periodLabels`},Ut=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Wt={key:0},Gt=[`font-size`,`text-anchor`,`fill`,`transform`],Kt=[`font-size`,`text-anchor`,`fill`,`transform`,`innerHTML`],qt={class:`plots`},Jt=[`d`,`stroke`,`stroke-width`],Yt=[`d`,`stroke`,`stroke-width`],Xt=[`d`,`stroke`,`stroke-width`],Zt=[`d`,`stroke`,`stroke-width`],Qt=[`cx`,`cy`,`fill`,`stroke`],$t={key:4,class:`dataLabels`},en=[`font-size`,`fill`,`transform`],tn={key:5,class:`tooltip-traps`},nn=[`x`,`y`,`height`,`width`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],rn={key:0,class:`line-grid`},an=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],on=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],sn={key:1,class:`line-axis`},cn=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],ln=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],un=[`d`,`stroke`,`stroke-width`],dn=[`transform`,`font-size`,`fill`],fn={key:3,class:`periodLabels`},pn=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],mn={key:0},hn=[`font-size`,`text-anchor`,`fill`,`transform`],gn=[`font-size`,`text-anchor`,`fill`,`transform`,`innerHTML`],_n={class:`plots`},vn=[`x`,`width`,`height`,`y`,`fill`,`stroke`,`stroke-width`],yn={key:4,class:`dataLabels`},bn=[`transform`,`font-size`,`fill`],xn={key:5,class:`tooltip-traps`},Sn=[`x`,`y`,`height`,`width`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],Cn={key:6,class:`axis-labels`},wn=[`font-size`,`fill`,`x`,`y`],Tn=[`font-size`,`fill`,`x`,`y`],En=[`font-size`,`fill`,`transform`],Dn=[`font-size`,`fill`,`transform`],On=[`x`,`y`,`width`,`height`,`fill`,`fill-opacity`,`stroke`,`stroke-opacity`,`stroke-width`,`stroke-dasharray`],kn={key:1,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},An={key:5,class:`vue-data-ui-watermark`},jn=[`id`],Mn=[`onClick`,`onKeydown`],Nn=[`onClick`,`onKeydown`],Pn=[`onClick`,`onKeydown`],Fn={key:1,class:`vue-ui-quick-chart-not-processable`},In=/*#__PURE__*/ he({__name:`vue-ui-quick-chart`,props:{config:{type:Object,default(){return{}}},dataset:{type:[Array,Object,String,Number],default(){return null}},zoomState:{type:Object,default:null}},emits:[`selectDatapoint`,`selectLegend`,`zoomStart`,`zoomEnd`,`zoomReset`,`update:zoomState`,`copyAlt`],setup(e,{expose:he,emit:Qe}){let et=Be(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),tt=Be(()=>import(`./PackageVersion-CXT-eAuk.js`).then(e=>e.t)),rt=Be(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),it=Be(()=>import(`./Tooltip-C1q0Qoh7.js`)),at=Be(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),{vue_ui_quick_chart:ot}=t(),{isThemeValid:st,warnInvalidTheme:ct}=_e(),k=e,A=S(null),In=S(null),Ln=S(null),Rn=S(null),j=S(l()),M=S(!1),zn=S(null),Bn=S(``),N=S(null),Vn=S(null),Hn=S(null),P=S([]),Un=S(0),Wn=S(0),Gn=S(!1),Kn=S(null),qn=S(null),Jn=S(null),Yn=S(null),Xn=S(null),Zn=S(null),Qn=qe(null),$n=S(!1),er=S(0),tr=S(0),nr=S(!1);function rr(){Qn.value=A.value?.parentNode??null}function ir(){return new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(e)})})}async function ar(){let e=++tr.value;$n.value=!1,await Ue(),await ir(),await ir(),e===tr.value&&(er.value+=1,$n.value=!0)}function or(){nr.value||(nr.value=!0,Ue(()=>{nr.value=!1,rr(),ar()}))}let sr=De({elementRef:Qn,minimumWidth:2,minimumHeight:2,stableFramesRequired:2,once:!1,onSizeAccepted:()=>{ar()}});S(`#FFFFFF`);let F=S(xr());pe({config:()=>F.value,dataset:()=>k.dataset,component:`VueUiQuickChart`,rules:[me.emptyArray,{test:()=>!0,message:[`👀 This is a swiss-knife component. If you need more control, consider using dedicated components:`,``,`▶️ VueUiXy for time series line and/or bars`,``,`▶️ VueUiDonut, VueUiWaffle, VueUiRings for proportions`]}]});let{transitionEnabled:I}=Ee({config:()=>F.value.transitions,dataset:()=>k.dataset}),cr=h(()=>F.value.debug),lr=h(()=>F.value.useCursorPointer),L=S(null),ur=S({x:0,y:0}),R=S(`pointer`),dr=S(!1),fr=h(()=>p({dafaultConfig:{backgroundColor:`#99999930`,customPalette:[`#BABABA`],showDataLabels:!1,paletteStartIndex:0,showUserOptions:!1,showTooltip:!1,xAxisLabel:``,yAxisLabel:``,xyAxisStroke:`#999999`,xyGridStroke:`#99999950`,xyPeriods:[],xyShowScale:!1,xyPaddingLeft:6,xyPaddingBottom:12,zoomXy:!1,zoomStartIndex:null,zoomEndIndex:null},userConfig:F.value.skeletonConfig??{}})),{loading:pr,FINAL_DATASET:mr,manualLoading:hr}=de({...Je(k),FINAL_CONFIG:F,prepareConfig:xr,skeletonDataset:k.config?.skeletonDataset??[1,2,3,5,8,13,21,34,55,89],skeletonConfig:p({defaultConfig:F.value,userConfig:fr.value})}),{svgRef:z}=Pe({config:{text:F.value.title}}),gr=h(()=>F.value.showUserOptionsOnChartHover),_r=h(()=>F.value.keepUserOptionsStateOnChartLeave),vr=S(!F.value.showUserOptionsOnChartHover),yr=S(!1);function br(e=!1){yr.value=e,gr.value&&(vr.value=e)}function xr(){let e=ge({userConfig:k.config,defaultConfig:ot}),t={},n=e.theme;if(n){if(!st.value(e))ct(e),t=e;else{let r=ge({userConfig:Fe[n]||k.config,defaultConfig:e});t={...ge({userConfig:k.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:ae[n]||i}}}else t=e;return t}function Sr(e){let t=re(e);return t?.tooltipPosition&&delete t.tooltipPosition,JSON.stringify(t)}let Cr=Sr(k.config);Ye(()=>k.config,(e,t)=>{let n=Sr(e),r=n!==Cr;Cr=n;let i=xr();r?(pr.value||(F.value=i),F.value.responsive||(U.value.width=F.value.width,U.value.height=F.value.height),vr.value=!F.value.showUserOptionsOnChartHover,Rr(),Pr.value.showTooltip=F.value.showTooltip):(F.value.tooltipPosition=i.tooltipPosition,Pr.value.showTooltip=F.value.showTooltip)},{deep:!0}),Ye(()=>k.dataset,e=>{Array.isArray(e)&&e.length>0&&(hr.value=!1)},{immediate:!0});let wr=h(()=>le(F.value.customPalette)),B=Qe,Tr=h(()=>{let e=$e({debug:cr.value,dataset:s(mr.value,[`serie`,`series`,`data`,`value`,`values`,`num`]),barLineSwitch:F.value.chartIsBarUnderDatasetLength});return!e&&cr.value&&console.error(`VueUiQuickChart : Dataset is not processable`),e}),V=S(Tr.value),Er=h(()=>!!V.value),H=h(()=>V.value?V.value.type:null),Dr=h(()=>[D.BAR,D.LINE].includes(H.value)),Or=h(()=>Dr.value&&F.value.zoomXy&&Number(V.value?.maxSeriesLength??0)>1);Ye(()=>H.value,e=>{e||ne({componentName:`VueUiQuickChart`,type:`dataset`,debug:cr.value})},{immediate:!0});let{isPrinting:kr,isImaging:Ar,generatePdf:jr,generateImage:Mr}=Te({elementId:`${H.value}_${j.value}`,fileName:F.value.title||H.value,options:F.value.userOptionsPrint}),Nr=h(()=>F.value.showUserOptions&&!F.value.title),U=S({width:F.value.width,height:F.value.height}),Pr=S({showTooltip:F.value.showTooltip});Ye(F,()=>{Pr.value={showTooltip:F.value.showTooltip}},{immediate:!0});let W=qe(null),Fr=qe(null),Ir=S(!1),Lr=0;Ke(()=>{Gn.value=!0,rr(),sr.start(),Rr(),ar()});function Rr(){ue(k.dataset)||(hr.value=F.value.loading),F.value.responsive&&(W.value&&(Fr.value&&W.value.unobserve(Fr.value),W.value.disconnect()),W.value=new ResizeObserver(()=>{let{width:e,height:t}=Ae({chart:A.value,title:F.value.title?In.value:null,legend:F.value.showLegend?Ln.value:null,slicer:Or.value?Rn.value:null,source:Vn.value,noTitle:Hn.value});cancelAnimationFrame(Lr),Lr=requestAnimationFrame(()=>{U.value.width=e,U.value.height=t,Ir.value=!0,or()})}),Fr.value=A.value.parentNode,W.value.observe(Fr.value)),yi(),or()}Ge(()=>{cancelAnimationFrame(Lr),sr.stop(),pi(),Ri(),W.value&&(Fr.value&&W.value.unobserve(Fr.value),W.value.disconnect(),W.value=null,Fr.value=null)});let zr=h(()=>{switch(H.value){case D.LINE:return`0 0 ${U.value.width<=0?10:U.value.width} ${U.value.height<=0?10:U.value.height}`;case D.BAR:return`0 0 ${U.value.width<=0?10:U.value.width} ${U.value.height<=0?10:U.value.height}`;case D.DONUT:return`0 0 ${U.value.width<=0?10:U.value.width} ${U.value.height<=0?10:U.value.height}`;default:return`0 0 ${U.value.width<=0?10:U.value.width} ${U.value.height<=0?10:U.value.height}`}});function Br(e){return[...e].map(e=>e.value).reduce((e,t)=>e+t,0)}function Vr(e){return F.value.blurOnHover&&![null,void 0].includes(N.value)&&N.value!==e?`url(#blur_${j.value})`:``}function Hr(){P.value.length?P.value=[]:H.value===D.DONUT?K.value.legend.forEach(e=>{P.value.push(e.id)}):H.value===D.LINE?Z.value.legend.forEach(e=>{P.value.push(e.id)}):H.value===D.BAR&&Q.value.legend.forEach(e=>{P.value.push(e.id)}),H.value===D.DONUT?B(`selectLegend`,K.value.dataset):H.value===D.LINE?B(`selectLegend`,Z.value.dataset):H.value===D.BAR&&B(`selectLegend`,Q.value.dataset)}function Ur(e,t){P.value.includes(e)?P.value=P.value.filter(t=>t!==e):P.value.length<t&&P.value.push(e)}let Wr=S(null),Gr=S(null),Kr=S(!1);function qr(e,t){Kr.value=!0;let n=e.value,r=Tr.value.dataset.find((t,n)=>e.id===`donut_${n}`).VALUE;if(P.value.includes(e.id)){P.value=P.value.filter(t=>t!==e.id);function t(){n>r?(Kr.value=!1,cancelAnimationFrame(Gr.value),V.value={...V.value,dataset:V.value.dataset.map((t,n)=>e.id===`donut_${n}`?{...t,value:r,VALUE:r}:t)},B(`selectLegend`,K.value.dataset)):(n+=r*.025,V.value={...V.value,dataset:V.value.dataset.map((t,r)=>e.id===`donut_${r}`?{...t,value:n,VALUE:n}:t)},Gr.value=requestAnimationFrame(t))}t()}else if(t.length>1){function t(){n<r/100?(Kr.value=!1,cancelAnimationFrame(Wr.value),P.value.push(e.id),V.value={...V.value,dataset:V.value.dataset.map((t,n)=>e.id===`donut_${n}`?{...t,value:0,VALUE:0}:t)},B(`selectLegend`,K.value.dataset)):(n/=1.1,V.value={...V.value,dataset:V.value.dataset.map((t,r)=>e.id===`donut_${r}`?{...t,value:n,VALUE:n}:t)},Wr.value=requestAnimationFrame(t))}t()}else B(`selectLegend`,K.value.dataset)}let G=S(null);function Jr(e){G.value=e}let Yr=h(()=>F.value.donutThicknessRatio<.01?.01:F.value.donutThicknessRatio>.4?.4:F.value.donutThicknessRatio),K=h(()=>{if(H.value!==D.DONUT)return null;let e=V.value.dataset.map((e,t)=>({...e,value:e.VALUE||e.DATA||e.SERIE||e.VALUES||e.NUM||0,name:e.NAME||e.DESCRIPTION||e.TITLE||e.LABEL||`Serie ${t}`,id:`donut_${t}`})).map((e,t)=>({...e,color:e.COLOR?ee(e.COLOR):wr.value[t+F.value.paletteStartIndex]||i[t+F.value.paletteStartIndex]||i[(t+F.value.paletteStartIndex)%i.length],immutableValue:e.value}));function t(e,t){return n({v:isNaN(e.value/Br(t))?0:e.value/Br(t)*100,s:`%`,r:F.value.dataLabelRoundingPercentage})}function o(e){return e.proportion*100>F.value.donutHideLabelUnderPercentage}function s(e,t){let n=Tr.value.dataset.find((t,n)=>`donut_${n}`===e).VALUE;return Math.abs(String(Number(n.toFixed(0))).length-String(Number(t.toFixed(0))).length)}function c({datapoint:t,seriesIndex:i,triggerMode:a=`pointer`}){zn.value={datapoint:t,seriesIndex:i,config:F.value,dataset:e},N.value=t.id,L.value=i,R.value=a;let o=F.value.tooltipCustomFormat;if(F.value.events.datapointEnter&&F.value.events.datapointEnter({datapoint:t,seriesIndex:i}),r(o)&&se(()=>o({datapoint:t,seriesIndex:i,series:e,config:F.value})))Bn.value=o({datapoint:t,seriesIndex:i,series:e,config:F.value});else{let e=``;e+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${F.value.tooltipBorderColor};padding-bottom:6px;margin-bottom:3px;">${t.name}</div>`,e+=`<div style="display:flex;flex-direction:row;gap:6px;align-items:center;"><svg viewBox="0 0 12 12" height="14" width="14"><circle cx="6" cy="6" r="6" stroke="none" fill="${t.color}"/></svg>`,e+=`<b>${f(F.value.formatter,t.value,n({p:F.value.valuePrefix,v:t.value,s:F.value.valueSuffix,r:F.value.dataLabelRoundingValue}),{datapoint:t,seriesIndex:i})}</b>`,e+=`<span>(${n({v:t.proportion*100,s:`%`,r:F.value.dataLabelRoundingPercentage})})</span></div>`,Bn.value=`<div>${e}</div>`}M.value=!0}function l({datapoint:e,seriesIndex:t}){F.value.events.datapointLeave&&F.value.events.datapointLeave({datapoint:e,seriesIndex:t}),M.value=!1,N.value=null,G.value=null,L.value=null,R.value=`pointer`}function te({datapoint:e,seriesIndex:t}){F.value.events.datapointClick&&F.value.events.datapointClick({datapoint:e,seriesIndex:t}),B(`selectDatapoint`,e)}let ne={centerX:U.value.width/2,centerY:U.value.height/2},u=e.filter(e=>!P.value.includes(e.id)).map(e=>e.value||0).reduce((e,t)=>e+t,0),re=e.map((e,t)=>({...e,proportion:(e.value||0)/u,value:e.value||0,absoluteValue:Tr.value.dataset.find((t,n)=>`donut_${n}`===e.id).VALUE,shape:`circle`})),d=U.value.width/2,ie=U.value.height/2,p=U.value.height*F.value.donutRadiusRatio;return{dataset:re.filter(e=>!P.value.includes(e.id)),legend:re,drawingArea:ne,displayArcPercentage:t,isArcBigEnough:o,useTooltip:c,killTooltip:l,selectDatapoint:te,getSpaces:s,total:u,cx:d,cy:ie,radius:p,chart:a({series:e.filter(e=>!P.value.includes(e.id))},d,ie,p,p,1.99999,2,1,360,105.25,U.value.height*Yr.value)}}),q=S({start:0,end:V.value.maxSeriesLength}),Xr=S({...q.value}),Zr=S(null),J=S(!1),Qr=S(!1),$r=S(!1),Y=S(!1),ei=S(!1),ti=S(null),ni=S(null),ri=S(null),ii=S(!1),ai=S({time:0,x:0,y:0,pointerType:null}),oi={show:!1,selection:{fill:`#2D353C`,stroke:`transparent`,fillOpacity:.1,strokeOpacity:.5,strokeWidth:1,strokeDasharray:0}},si=h(()=>{let e=F.value.dragToZoom??{};return{...oi,...e,selection:{...oi.selection,...e.selection??{}}}}),ci=h(()=>Dr.value&&si.value.show&&J.value&&mi()>1&&!pr.value),li=null,ui={};function di(e,t=q.value){if(!e||typeof e!=`object`)return null;let n=e.start!==void 0&&e.start!==null,r=e.end!==void 0&&e.end!==null;if(!n&&!r)return null;let i=Number(n?e.start:t.start),a=Number(r?e.end:t.end);return!Number.isFinite(i)||!Number.isFinite(a)?null:{start:i,end:a}}function fi(e){let t=di(e);t&&B(`update:zoomState`,t)}function pi(){li&&=(cancelAnimationFrame(li),null),ui={}}function mi(){let e=Number(V.value?.maxSeriesLength);return Number.isFinite(e)?Math.max(0,e):0}function hi(e,t=q.value.start){let n=mi();if(n<=0)return 0;let r=Math.max(0,Math.min(Number(t)||0,n-1)),i=Number(e);return Number.isFinite(i)?i>n?n:i<=r?Math.min(r+1,n):Math.max(0,i):Math.min(r+1,n)}function gi(){let e=mi();if(e<=0){q.value={start:0,end:0},Xr.value={...q.value},Zr.value&&Zr.value.setRangeValues(0,0);return}let t=Number(q.value.start),n=Number(q.value.end);Number.isFinite(t)||(t=0),Number.isFinite(n)||(n=e),t=Math.max(0,Math.min(t,e-1)),n=Math.max(t+1,Math.min(n,e)),q.value={start:t,end:n},Xr.value={start:t,end:n},Zr.value&&Zr.value.setRangeValues(t,n)}function _i(e){if(!Dr.value)return null;let t=di(e);return t?((t.start!==Number(q.value.start)||t.end!==Number(q.value.end))&&(pi(),q.value={start:t.start,end:t.end},Xr.value={...q.value},gi(),or()),{start:Number(q.value.start),end:Number(q.value.end)}):null}function vi(e){let t=_i(e);return t?(fi(t),t):null}async function yi({applyControlledZoom:e=!0}={}){if(!Qr.value){if(!Dr.value)J.value=!1;else{Qr.value=!0;try{await Ue(),await Ue();let{zoomStartIndex:t,zoomEndIndex:n}=F.value,r=mi();if(r<=0){q.value={start:0,end:0},Xr.value={...q.value},J.value=!1;return}let i=t==null?0:Number(t),a=n==null?r:hi(Number(n)+1,i);if(e&&di(k.zoomState)){let e=di(k.zoomState);i=e.start,a=e.end}$r.value=!0,q.value={start:i,end:a},Xr.value={start:i,end:a},gi(),J.value=!0,await Ue(),Zr.value&&Zr.value.setRangeValues(q.value.start,q.value.end)}finally{queueMicrotask(()=>{$r.value=!1}),Qr.value=!1,or()}}}}async function bi({applyControlledZoom:e=!1,publish:t=!1}={}){pi(),await yi({applyControlledZoom:e}),t&&(fi({start:Number(q.value.start),end:Number(q.value.end)}),B(`zoomReset`))}function xi(e){ui={...ui,...e},li&&cancelAnimationFrame(li),li=requestAnimationFrame(()=>{let e={...q.value,...ui};ui={},li=null,q.value=e,Xr.value={...e},gi(),fi({start:Number(q.value.start),end:Number(q.value.end)}),or()})}function Si(e){if(Qr.value||$r.value)return;let t=Number(e);Number.isFinite(t)&&(B(`zoomStart`,{index:t,isZoom:t!==0}),(t!==q.value.start||ui.end!==void 0)&&xi({start:t}))}function Ci(e){if(Qr.value||$r.value)return;let t=ui.start===void 0?q.value.start:ui.start,n=hi(Number(e),t);B(`zoomEnd`,{index:n,isZoom:n!==mi()}),(n!==q.value.end||ui.start!==void 0)&&xi({end:n})}Ye([()=>k.zoomState,Dr,()=>Number(V.value?.maxSeriesLength??0)],async([e,t,n])=>{!t||n<=0||!e||(J.value?_i(e):await yi({applyControlledZoom:!0}))},{deep:!0,immediate:!0}),Ye(Tr,async e=>{if(!e){J.value=!1;return}let t=V.value?.type,n=Number(V.value?.maxSeriesLength??0);V.value=e;let r=e.type,i=Number(e.maxSeriesLength??0);[D.BAR,D.LINE].includes(r)?(t!==r||n!==i?(pi(),J.value=!1,q.value={start:0,end:i},Xr.value={...q.value},Wn.value+=1,await Ue(),await yi({applyControlledZoom:!0})):k.zoomState&&_i(k.zoomState),or()):(pi(),J.value=!1,or())},{deep:!0});let wi=h(()=>{if(!F.value.zoomMinimap.show||H.value===D.DONUT)return[];let e=[];O(V.value.dataset)&&(e=V.value.dataset),nt(V.value.dataset)&&(e=V.value.dataset.map((e,t)=>({values:e.VALUE||e.DATA||e.SERIE||e.SERIES||e.VALUES||e.NUM||0,id:H.value===D.LINE?`line_${t}`:`bar_${t}`})).filter(e=>!P.value.includes(e.id)));let t=O(e)?e.length:Math.max(...e.map(e=>e.values.length)),n=[];if(O(e))n=e;else for(let r=0;r<t;r+=1)n.push(e.map(e=>e.values[r]||0).reduce((e,t)=>(e||0)+(t||0),0));let r=Math.min(...n);return n.map(e=>e+(r<0?Math.abs(r):0))}),{metrics:Ti,ready:Ei,settling:X,update:Di}=Oe({svgRef:z,canMeasure:()=>(!F.value.responsive||Ir.value)&&(![D.LINE,D.BAR].includes(H.value)||Zi.value),initialMetrics:{scale:0,bottom:0,leftOverhang:0},measure:e=>({scale:e(Yn.value).textWidth,bottom:e(Jn.value).height,leftOverhang:e(Jn.value).leftOverhang})});function Oi(){return Math.max(Ti.value.scale+4,Ti.value.leftOverhang-F.value.xyPaddingLeft)}let ki=h(()=>Ti.value.bottom),Z=h(()=>{if(H.value!==D.LINE)return null;let e={height:U.value.height,width:U.value.width},t=Oi(),a={left:t+F.value.xyPaddingLeft,top:F.value.xyPaddingTop,right:e.width-F.value.xyPaddingRight,bottom:e.height-F.value.xyPaddingBottom-ki.value,width:Math.max(10,e.width-F.value.xyPaddingLeft-F.value.xyPaddingRight-t),height:Math.max(10,e.height-F.value.xyPaddingTop-F.value.xyPaddingBottom-ki.value)},o=[];O(V.value.dataset)&&(o=[{values:V.value.dataset.slice(q.value.start,q.value.end),absoluteValues:V.value.dataset,absoluteIndices:V.value.dataset.map((e,t)=>t).slice(q.value.start,q.value.end),name:F.value.title,color:wr.value[F.value.paletteStartIndex]||i[F.value.paletteStartIndex],id:`line_0`}]),nt(V.value.dataset)&&(o=V.value.dataset.map((e,t)=>({...e,values:e.VALUE||e.DATA||e.SERIE||e.SERIES||e.VALUES||e.NUM||0,name:e.NAME||e.DESCRIPTION||e.TITLE||e.LABEL||`Serie ${t}`,id:`line_${t}`})).map((e,t)=>({...e,color:e.COLOR?ee(e.COLOR):wr.value[t+F.value.paletteStartIndex]||i[t+F.value.paletteStartIndex]||i[(t+F.value.paletteStartIndex)%i.length],values:e.values.slice(q.value.start,q.value.end),absoluteValues:e.values,absoluteIndices:e.values.map((e,t)=>t).slice(q.value.start,q.value.end)})));let s={max:Math.max(...o.filter(e=>!P.value.includes(e.id)).flatMap(e=>e.values)),min:Math.min(...o.filter(e=>!P.value.includes(e.id)).flatMap(e=>e.values)),maxSeries:Math.max(...o.map(e=>e.values.length))},c=s.max===s.min?te(Math.min(s.min,0),s.min===0?1:Math.max(s.min,0),F.value.xyScaleSegments):te(s.min<0?s.min:0,s.max<0?0:s.max,F.value.xyScaleSegments),l=s.min<0?Math.abs(s.min):0,ne=s.max<0?a.top:a.bottom-l/(c.max+l)*a.height,u=a.width/s.maxSeries,re=c.ticks.map(e=>({y:a.bottom-a.height*((e+l)/(c.max+l)),x:a.left-8,value:e})),d=o.map((e,t)=>({...e,shape:`circle`,coordinates:e.values.map((e,t)=>({x:a.left+u*(t+1)-u/2,y:a.bottom-(e+l)/(c.max+l)*a.height,value:e}))})).map(e=>{let t=[];return e.coordinates.forEach(e=>{t.push(`${e.x},${e.y} `)}),{...e,linePath:t.join(` `)}});function ie(e){return o.map(t=>({...t,value:t.values[e],absoluteIndex:t.absoluteIndices[e]})).filter(e=>!P.value.includes(e.id))}function p(e,t=`pointer`){if(Y.value&&t===`pointer`)return;N.value=e,G.value=e,L.value=e,R.value=t;let i=ie(e);zn.value={datapoint:i,seriesIndex:e,config:F.value,dataset:o};let a=F.value.tooltipCustomFormat;if(F.value.events.datapointEnter&&F.value.events.datapointEnter({datapoint:i,seriesIndex:e+q.value.start}),r(a)&&se(()=>a({datapoint:i,seriesIndex:e,series:o,config:F.value})))Bn.value=a({datapoint:i,seriesIndex:e,series:o,config:F.value});else{let e=``;$.value[i[0].absoluteIndex]&&(e+=`<div style="border-bottom:1px solid ${F.value.tooltipBorderColor};padding-bottom:6px;margin-bottom:3px;">${$.value[i[0].absoluteIndex].text}</div>`),i.forEach((t,r)=>{e+=`
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Dt as r,Ht as i,It as a,J as o,Kt as s,P as c,S as ee,X as l,_ as te,at as ne,b as u,et as re,f as d,h as ie,i as f,in as p,nn as ae,p as oe,pt as se,t as ce,w as le,zt as ue}from"./lib-rPeBMZrn.js";import{n as de,t as fe}from"./BaseScanner-8NdoBs7B.js";import{n as pe,t as me}from"./useHints-C-TwxM0Y.js";import{t as he}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ge}from"./useNestedProp-DnGoh-XS.js";import{t as _e}from"./useThemeCheck-BKNRbGeC.js";import{t as ve}from"./img-D4RQwASc.js";import{t as ye}from"./useChartExport-BZts4KFb.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"./useTimeLabels-Das5O74F.js";import{t as Te}from"./usePrinter-DVf3YcG5.js";import{t as Ee}from"./useTransitions-ChGGrtrv.js";import{t as De}from"./useStableElementSize-CegFbRlF.js";import{t as Oe}from"./useSvgLabelLayout-42Kats14.js";import{t as ke}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Ae}from"./useResponsive-CENUxfEL.js";import{t as je}from"./SlicerPreview-CFFUOlQr.js";import{t as Me}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as Ne}from"./A11yDataTable-DWNlWXzs.js";import{t as Pe}from"./useChartAccessibility-DOMuYJfm.js";import{t as Fe}from"./vue_ui_quick_chart-BRfcRW6Z.js";import{Fragment as m,Teleport as Ie,computed as h,createBlock as Le,createCommentVNode as g,createElementBlock as _,createElementVNode as v,createSlots as Re,createVNode as ze,defineAsyncComponent as Be,guardReactiveProps as Ve,mergeProps as He,nextTick as Ue,normalizeClass as y,normalizeProps as We,normalizeStyle as b,onBeforeUnmount as Ge,onMounted as Ke,openBlock as x,ref as S,renderList as C,renderSlot as w,shallowRef as qe,toDisplayString as T,toRefs as Je,unref as E,watch as Ye,watchEffect as Xe,withCtx as Ze}from"vue";var D={LINE:`LINE`,BAR:`BAR`,DONUT:`DONUT`},Qe=[`SERIE`,`SERIES`,`DATA`,`VALUE`,`VALUES`,`NUM`];function $e({dataset:e,barLineSwitch:t=6,debug:n=!0}){let r=null,i=null,a=0;if((typeof e==`number`||typeof e==`string`)&&n&&console.warn(`The provided dataset (${e}) is not sufficient to build a chart`),tt(e)&&(O(e)&&(r=e.length<t?D.BAR:D.LINE,i=e,a=e.length),nt(e))){if(!it(e))return n&&console.warn(`The objects in the dataset array have a different data structure. Either keys or value types are different.`),!1;let o=Object.keys(e[0]),s=Object.values(e[0]);if(!o.some(e=>at(e)))return n&&console.warn(`The data type of the dataset objects in the array must contain one of the following keys: DATA, SERIES, VALUE, VALUES, NUM. Casing is not important.`),!1;ot(s,e=>typeof e==`number`)&&(r=D.DONUT,i=e),ot(s,e=>Array.isArray(e)&&O(e))&&(r=st(e)>t?D.LINE:D.BAR,a=st(e),i=e.map(e=>({...e,data:ct(e,e=>O(e))}))),e=e.map(e=>k(e)),i=i.map(e=>k(e))}return{dataset:e,type:r,usableDataset:i,maxSeriesLength:a}}function et(e){return!e||tt(e)&&!e.length}function tt(e){return Array.isArray(e)}function O(e){if(!tt(e)||et(e))return!1;let t=e.map(e=>Number(e));return![...new Set(t.flatMap(e=>typeof e==`number`&&!isNaN(e)))].includes(!1)}function nt(e){return!tt(e)||et(e)||[...new Set(e.flatMap(e=>typeof e==`object`&&!Array.isArray(e)))].includes(!1)?!1:!e.map(e=>Object.keys(e).length>0).includes(!1)}function rt(e,t){let n=Object.keys(e).sort(),r=Object.keys(t).sort();if(n.length!==r.length)return!1;for(let i=0;i<n.length;i+=1){let a=n[i],o=r[i];if(a!==o||typeof e[a]!=typeof t[o])return!1}return!0}function it(e){if(e.length<=1)return!0;for(let t=0;t<e.length;t+=1)for(let n=t+1;n<e.length;n+=1)if(!rt(e[t],e[n]))return!1;return!0}function at(e){return Qe.includes(e.toUpperCase())}function ot(e,t){let n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n.includes(!0)}function st(e){return Math.max(...[...e].flatMap(e=>Object.values(e).filter(e=>O(e)).map(e=>e.length)))}function ct(e,t){return Object.values(e).filter(e=>t(e))[0]}function k(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toUpperCase()]=e[n]);return t}var A=/* @__PURE__ */ e({default:()=>In}),lt=[`id`],ut=[`id`],dt=[`id`],ft={style:{position:`relative`}},pt=[`xmlns`,`aria-describedby`,`viewBox`],mt=[`x`,`y`,`width`,`height`],ht=[`x`,`y`,`width`,`height`],gt=[`width`,`height`],_t=[`id`],vt=[`id`],yt=[`id`],bt=[`flood-color`],xt={key:0,class:`donut-label-connectors`},St=[`d`,`stroke`,`stroke-width`,`filter`],Ct=[`cx`,`cy`,`r`,`fill`,`filter`],wt={class:`donut`},Tt=[`d`,`fill`,`stroke`,`stroke-width`,`filter`],Et=[`d`,`onMouseenter`,`onMouseout`,`onClick`],Dt={key:1,class:`donut-labels`},Ot=[`cx`,`cy`,`fill`,`stroke`,`filter`],kt=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`filter`],At=[`text-anchor`,`x`,`y`,`fill`,`font-size`,`filter`],jt={key:2,class:`donut-hollow`},Mt=[`x`,`y`,`font-size`,`fill`],Nt=[`x`,`y`,`font-size`,`fill`],Pt={key:0,class:`line-grid`},Ft=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],It=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Lt={key:1,class:`line-axis`},Rt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],zt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Bt=[`d`,`stroke`,`stroke-width`],Vt=[`transform`,`font-size`,`fill`],Ht={key:3,class:`periodLabels`},Ut=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],Wt={key:0},Gt=[`font-size`,`text-anchor`,`fill`,`transform`],Kt=[`font-size`,`text-anchor`,`fill`,`transform`,`innerHTML`],qt={class:`plots`},Jt=[`d`,`stroke`,`stroke-width`],Yt=[`d`,`stroke`,`stroke-width`],Xt=[`d`,`stroke`,`stroke-width`],Zt=[`d`,`stroke`,`stroke-width`],Qt=[`cx`,`cy`,`fill`,`stroke`],$t={key:4,class:`dataLabels`},en=[`font-size`,`fill`,`transform`],tn={key:5,class:`tooltip-traps`},nn=[`x`,`y`,`height`,`width`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],rn={key:0,class:`line-grid`},an=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],on=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],sn={key:1,class:`line-axis`},cn=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],ln=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],un=[`d`,`stroke`,`stroke-width`],dn=[`transform`,`font-size`,`fill`],fn={key:3,class:`periodLabels`},pn=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],mn={key:0},hn=[`font-size`,`text-anchor`,`fill`,`transform`],gn=[`font-size`,`text-anchor`,`fill`,`transform`,`innerHTML`],_n={class:`plots`},vn=[`x`,`width`,`height`,`y`,`fill`,`stroke`,`stroke-width`],yn={key:4,class:`dataLabels`},bn=[`transform`,`font-size`,`fill`],xn={key:5,class:`tooltip-traps`},Sn=[`x`,`y`,`height`,`width`,`fill`,`onMouseenter`,`onMouseleave`,`onClick`],Cn={key:6,class:`axis-labels`},wn=[`font-size`,`fill`,`x`,`y`],Tn=[`font-size`,`fill`,`x`,`y`],En=[`font-size`,`fill`,`transform`],Dn=[`font-size`,`fill`,`transform`],On=[`x`,`y`,`width`,`height`,`fill`,`fill-opacity`,`stroke`,`stroke-opacity`,`stroke-width`,`stroke-dasharray`],kn={key:1,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},An={key:5,class:`vue-data-ui-watermark`},jn=[`id`],Mn=[`onClick`,`onKeydown`],Nn=[`onClick`,`onKeydown`],Pn=[`onClick`,`onKeydown`],Fn={key:1,class:`vue-ui-quick-chart-not-processable`},In=/*#__PURE__*/ he({__name:`vue-ui-quick-chart`,props:{config:{type:Object,default(){return{}}},dataset:{type:[Array,Object,String,Number],default(){return null}},zoomState:{type:Object,default:null}},emits:[`selectDatapoint`,`selectLegend`,`zoomStart`,`zoomEnd`,`zoomReset`,`update:zoomState`,`copyAlt`],setup(e,{expose:he,emit:Qe}){let et=Be(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),tt=Be(()=>import(`./PackageVersion-DhptF5oD.js`).then(e=>e.t)),rt=Be(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),it=Be(()=>import(`./Tooltip-C1q0Qoh7.js`)),at=Be(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),{vue_ui_quick_chart:ot}=t(),{isThemeValid:st,warnInvalidTheme:ct}=_e(),k=e,A=S(null),In=S(null),Ln=S(null),Rn=S(null),j=S(l()),M=S(!1),zn=S(null),Bn=S(``),N=S(null),Vn=S(null),Hn=S(null),P=S([]),Un=S(0),Wn=S(0),Gn=S(!1),Kn=S(null),qn=S(null),Jn=S(null),Yn=S(null),Xn=S(null),Zn=S(null),Qn=qe(null),$n=S(!1),er=S(0),tr=S(0),nr=S(!1);function rr(){Qn.value=A.value?.parentNode??null}function ir(){return new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(e)})})}async function ar(){let e=++tr.value;$n.value=!1,await Ue(),await ir(),await ir(),e===tr.value&&(er.value+=1,$n.value=!0)}function or(){nr.value||(nr.value=!0,Ue(()=>{nr.value=!1,rr(),ar()}))}let sr=De({elementRef:Qn,minimumWidth:2,minimumHeight:2,stableFramesRequired:2,once:!1,onSizeAccepted:()=>{ar()}});S(`#FFFFFF`);let F=S(xr());pe({config:()=>F.value,dataset:()=>k.dataset,component:`VueUiQuickChart`,rules:[me.emptyArray,{test:()=>!0,message:[`👀 This is a swiss-knife component. If you need more control, consider using dedicated components:`,``,`▶️ VueUiXy for time series line and/or bars`,``,`▶️ VueUiDonut, VueUiWaffle, VueUiRings for proportions`]}]});let{transitionEnabled:I}=Ee({config:()=>F.value.transitions,dataset:()=>k.dataset}),cr=h(()=>F.value.debug),lr=h(()=>F.value.useCursorPointer),L=S(null),ur=S({x:0,y:0}),R=S(`pointer`),dr=S(!1),fr=h(()=>p({dafaultConfig:{backgroundColor:`#99999930`,customPalette:[`#BABABA`],showDataLabels:!1,paletteStartIndex:0,showUserOptions:!1,showTooltip:!1,xAxisLabel:``,yAxisLabel:``,xyAxisStroke:`#999999`,xyGridStroke:`#99999950`,xyPeriods:[],xyShowScale:!1,xyPaddingLeft:6,xyPaddingBottom:12,zoomXy:!1,zoomStartIndex:null,zoomEndIndex:null},userConfig:F.value.skeletonConfig??{}})),{loading:pr,FINAL_DATASET:mr,manualLoading:hr}=de({...Je(k),FINAL_CONFIG:F,prepareConfig:xr,skeletonDataset:k.config?.skeletonDataset??[1,2,3,5,8,13,21,34,55,89],skeletonConfig:p({defaultConfig:F.value,userConfig:fr.value})}),{svgRef:z}=Pe({config:{text:F.value.title}}),gr=h(()=>F.value.showUserOptionsOnChartHover),_r=h(()=>F.value.keepUserOptionsStateOnChartLeave),vr=S(!F.value.showUserOptionsOnChartHover),yr=S(!1);function br(e=!1){yr.value=e,gr.value&&(vr.value=e)}function xr(){let e=ge({userConfig:k.config,defaultConfig:ot}),t={},n=e.theme;if(n){if(!st.value(e))ct(e),t=e;else{let r=ge({userConfig:Fe[n]||k.config,defaultConfig:e});t={...ge({userConfig:k.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:ae[n]||i}}}else t=e;return t}function Sr(e){let t=re(e);return t?.tooltipPosition&&delete t.tooltipPosition,JSON.stringify(t)}let Cr=Sr(k.config);Ye(()=>k.config,(e,t)=>{let n=Sr(e),r=n!==Cr;Cr=n;let i=xr();r?(pr.value||(F.value=i),F.value.responsive||(U.value.width=F.value.width,U.value.height=F.value.height),vr.value=!F.value.showUserOptionsOnChartHover,Rr(),Pr.value.showTooltip=F.value.showTooltip):(F.value.tooltipPosition=i.tooltipPosition,Pr.value.showTooltip=F.value.showTooltip)},{deep:!0}),Ye(()=>k.dataset,e=>{Array.isArray(e)&&e.length>0&&(hr.value=!1)},{immediate:!0});let wr=h(()=>le(F.value.customPalette)),B=Qe,Tr=h(()=>{let e=$e({debug:cr.value,dataset:s(mr.value,[`serie`,`series`,`data`,`value`,`values`,`num`]),barLineSwitch:F.value.chartIsBarUnderDatasetLength});return!e&&cr.value&&console.error(`VueUiQuickChart : Dataset is not processable`),e}),V=S(Tr.value),Er=h(()=>!!V.value),H=h(()=>V.value?V.value.type:null),Dr=h(()=>[D.BAR,D.LINE].includes(H.value)),Or=h(()=>Dr.value&&F.value.zoomXy&&Number(V.value?.maxSeriesLength??0)>1);Ye(()=>H.value,e=>{e||ne({componentName:`VueUiQuickChart`,type:`dataset`,debug:cr.value})},{immediate:!0});let{isPrinting:kr,isImaging:Ar,generatePdf:jr,generateImage:Mr}=Te({elementId:`${H.value}_${j.value}`,fileName:F.value.title||H.value,options:F.value.userOptionsPrint}),Nr=h(()=>F.value.showUserOptions&&!F.value.title),U=S({width:F.value.width,height:F.value.height}),Pr=S({showTooltip:F.value.showTooltip});Ye(F,()=>{Pr.value={showTooltip:F.value.showTooltip}},{immediate:!0});let W=qe(null),Fr=qe(null),Ir=S(!1),Lr=0;Ke(()=>{Gn.value=!0,rr(),sr.start(),Rr(),ar()});function Rr(){ue(k.dataset)||(hr.value=F.value.loading),F.value.responsive&&(W.value&&(Fr.value&&W.value.unobserve(Fr.value),W.value.disconnect()),W.value=new ResizeObserver(()=>{let{width:e,height:t}=Ae({chart:A.value,title:F.value.title?In.value:null,legend:F.value.showLegend?Ln.value:null,slicer:Or.value?Rn.value:null,source:Vn.value,noTitle:Hn.value});cancelAnimationFrame(Lr),Lr=requestAnimationFrame(()=>{U.value.width=e,U.value.height=t,Ir.value=!0,or()})}),Fr.value=A.value.parentNode,W.value.observe(Fr.value)),yi(),or()}Ge(()=>{cancelAnimationFrame(Lr),sr.stop(),pi(),Ri(),W.value&&(Fr.value&&W.value.unobserve(Fr.value),W.value.disconnect(),W.value=null,Fr.value=null)});let zr=h(()=>{switch(H.value){case D.LINE:return`0 0 ${U.value.width<=0?10:U.value.width} ${U.value.height<=0?10:U.value.height}`;case D.BAR:return`0 0 ${U.value.width<=0?10:U.value.width} ${U.value.height<=0?10:U.value.height}`;case D.DONUT:return`0 0 ${U.value.width<=0?10:U.value.width} ${U.value.height<=0?10:U.value.height}`;default:return`0 0 ${U.value.width<=0?10:U.value.width} ${U.value.height<=0?10:U.value.height}`}});function Br(e){return[...e].map(e=>e.value).reduce((e,t)=>e+t,0)}function Vr(e){return F.value.blurOnHover&&![null,void 0].includes(N.value)&&N.value!==e?`url(#blur_${j.value})`:``}function Hr(){P.value.length?P.value=[]:H.value===D.DONUT?K.value.legend.forEach(e=>{P.value.push(e.id)}):H.value===D.LINE?Z.value.legend.forEach(e=>{P.value.push(e.id)}):H.value===D.BAR&&Q.value.legend.forEach(e=>{P.value.push(e.id)}),H.value===D.DONUT?B(`selectLegend`,K.value.dataset):H.value===D.LINE?B(`selectLegend`,Z.value.dataset):H.value===D.BAR&&B(`selectLegend`,Q.value.dataset)}function Ur(e,t){P.value.includes(e)?P.value=P.value.filter(t=>t!==e):P.value.length<t&&P.value.push(e)}let Wr=S(null),Gr=S(null),Kr=S(!1);function qr(e,t){Kr.value=!0;let n=e.value,r=Tr.value.dataset.find((t,n)=>e.id===`donut_${n}`).VALUE;if(P.value.includes(e.id)){P.value=P.value.filter(t=>t!==e.id);function t(){n>r?(Kr.value=!1,cancelAnimationFrame(Gr.value),V.value={...V.value,dataset:V.value.dataset.map((t,n)=>e.id===`donut_${n}`?{...t,value:r,VALUE:r}:t)},B(`selectLegend`,K.value.dataset)):(n+=r*.025,V.value={...V.value,dataset:V.value.dataset.map((t,r)=>e.id===`donut_${r}`?{...t,value:n,VALUE:n}:t)},Gr.value=requestAnimationFrame(t))}t()}else if(t.length>1){function t(){n<r/100?(Kr.value=!1,cancelAnimationFrame(Wr.value),P.value.push(e.id),V.value={...V.value,dataset:V.value.dataset.map((t,n)=>e.id===`donut_${n}`?{...t,value:0,VALUE:0}:t)},B(`selectLegend`,K.value.dataset)):(n/=1.1,V.value={...V.value,dataset:V.value.dataset.map((t,r)=>e.id===`donut_${r}`?{...t,value:n,VALUE:n}:t)},Wr.value=requestAnimationFrame(t))}t()}else B(`selectLegend`,K.value.dataset)}let G=S(null);function Jr(e){G.value=e}let Yr=h(()=>F.value.donutThicknessRatio<.01?.01:F.value.donutThicknessRatio>.4?.4:F.value.donutThicknessRatio),K=h(()=>{if(H.value!==D.DONUT)return null;let e=V.value.dataset.map((e,t)=>({...e,value:e.VALUE||e.DATA||e.SERIE||e.VALUES||e.NUM||0,name:e.NAME||e.DESCRIPTION||e.TITLE||e.LABEL||`Serie ${t}`,id:`donut_${t}`})).map((e,t)=>({...e,color:e.COLOR?ee(e.COLOR):wr.value[t+F.value.paletteStartIndex]||i[t+F.value.paletteStartIndex]||i[(t+F.value.paletteStartIndex)%i.length],immutableValue:e.value}));function t(e,t){return n({v:isNaN(e.value/Br(t))?0:e.value/Br(t)*100,s:`%`,r:F.value.dataLabelRoundingPercentage})}function o(e){return e.proportion*100>F.value.donutHideLabelUnderPercentage}function s(e,t){let n=Tr.value.dataset.find((t,n)=>`donut_${n}`===e).VALUE;return Math.abs(String(Number(n.toFixed(0))).length-String(Number(t.toFixed(0))).length)}function c({datapoint:t,seriesIndex:i,triggerMode:a=`pointer`}){zn.value={datapoint:t,seriesIndex:i,config:F.value,dataset:e},N.value=t.id,L.value=i,R.value=a;let o=F.value.tooltipCustomFormat;if(F.value.events.datapointEnter&&F.value.events.datapointEnter({datapoint:t,seriesIndex:i}),r(o)&&se(()=>o({datapoint:t,seriesIndex:i,series:e,config:F.value})))Bn.value=o({datapoint:t,seriesIndex:i,series:e,config:F.value});else{let e=``;e+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${F.value.tooltipBorderColor};padding-bottom:6px;margin-bottom:3px;">${t.name}</div>`,e+=`<div style="display:flex;flex-direction:row;gap:6px;align-items:center;"><svg viewBox="0 0 12 12" height="14" width="14"><circle cx="6" cy="6" r="6" stroke="none" fill="${t.color}"/></svg>`,e+=`<b>${f(F.value.formatter,t.value,n({p:F.value.valuePrefix,v:t.value,s:F.value.valueSuffix,r:F.value.dataLabelRoundingValue}),{datapoint:t,seriesIndex:i})}</b>`,e+=`<span>(${n({v:t.proportion*100,s:`%`,r:F.value.dataLabelRoundingPercentage})})</span></div>`,Bn.value=`<div>${e}</div>`}M.value=!0}function l({datapoint:e,seriesIndex:t}){F.value.events.datapointLeave&&F.value.events.datapointLeave({datapoint:e,seriesIndex:t}),M.value=!1,N.value=null,G.value=null,L.value=null,R.value=`pointer`}function te({datapoint:e,seriesIndex:t}){F.value.events.datapointClick&&F.value.events.datapointClick({datapoint:e,seriesIndex:t}),B(`selectDatapoint`,e)}let ne={centerX:U.value.width/2,centerY:U.value.height/2},u=e.filter(e=>!P.value.includes(e.id)).map(e=>e.value||0).reduce((e,t)=>e+t,0),re=e.map((e,t)=>({...e,proportion:(e.value||0)/u,value:e.value||0,absoluteValue:Tr.value.dataset.find((t,n)=>`donut_${n}`===e.id).VALUE,shape:`circle`})),d=U.value.width/2,ie=U.value.height/2,p=U.value.height*F.value.donutRadiusRatio;return{dataset:re.filter(e=>!P.value.includes(e.id)),legend:re,drawingArea:ne,displayArcPercentage:t,isArcBigEnough:o,useTooltip:c,killTooltip:l,selectDatapoint:te,getSpaces:s,total:u,cx:d,cy:ie,radius:p,chart:a({series:e.filter(e=>!P.value.includes(e.id))},d,ie,p,p,1.99999,2,1,360,105.25,U.value.height*Yr.value)}}),q=S({start:0,end:V.value.maxSeriesLength}),Xr=S({...q.value}),Zr=S(null),J=S(!1),Qr=S(!1),$r=S(!1),Y=S(!1),ei=S(!1),ti=S(null),ni=S(null),ri=S(null),ii=S(!1),ai=S({time:0,x:0,y:0,pointerType:null}),oi={show:!1,selection:{fill:`#2D353C`,stroke:`transparent`,fillOpacity:.1,strokeOpacity:.5,strokeWidth:1,strokeDasharray:0}},si=h(()=>{let e=F.value.dragToZoom??{};return{...oi,...e,selection:{...oi.selection,...e.selection??{}}}}),ci=h(()=>Dr.value&&si.value.show&&J.value&&mi()>1&&!pr.value),li=null,ui={};function di(e,t=q.value){if(!e||typeof e!=`object`)return null;let n=e.start!==void 0&&e.start!==null,r=e.end!==void 0&&e.end!==null;if(!n&&!r)return null;let i=Number(n?e.start:t.start),a=Number(r?e.end:t.end);return!Number.isFinite(i)||!Number.isFinite(a)?null:{start:i,end:a}}function fi(e){let t=di(e);t&&B(`update:zoomState`,t)}function pi(){li&&=(cancelAnimationFrame(li),null),ui={}}function mi(){let e=Number(V.value?.maxSeriesLength);return Number.isFinite(e)?Math.max(0,e):0}function hi(e,t=q.value.start){let n=mi();if(n<=0)return 0;let r=Math.max(0,Math.min(Number(t)||0,n-1)),i=Number(e);return Number.isFinite(i)?i>n?n:i<=r?Math.min(r+1,n):Math.max(0,i):Math.min(r+1,n)}function gi(){let e=mi();if(e<=0){q.value={start:0,end:0},Xr.value={...q.value},Zr.value&&Zr.value.setRangeValues(0,0);return}let t=Number(q.value.start),n=Number(q.value.end);Number.isFinite(t)||(t=0),Number.isFinite(n)||(n=e),t=Math.max(0,Math.min(t,e-1)),n=Math.max(t+1,Math.min(n,e)),q.value={start:t,end:n},Xr.value={start:t,end:n},Zr.value&&Zr.value.setRangeValues(t,n)}function _i(e){if(!Dr.value)return null;let t=di(e);return t?((t.start!==Number(q.value.start)||t.end!==Number(q.value.end))&&(pi(),q.value={start:t.start,end:t.end},Xr.value={...q.value},gi(),or()),{start:Number(q.value.start),end:Number(q.value.end)}):null}function vi(e){let t=_i(e);return t?(fi(t),t):null}async function yi({applyControlledZoom:e=!0}={}){if(!Qr.value){if(!Dr.value)J.value=!1;else{Qr.value=!0;try{await Ue(),await Ue();let{zoomStartIndex:t,zoomEndIndex:n}=F.value,r=mi();if(r<=0){q.value={start:0,end:0},Xr.value={...q.value},J.value=!1;return}let i=t==null?0:Number(t),a=n==null?r:hi(Number(n)+1,i);if(e&&di(k.zoomState)){let e=di(k.zoomState);i=e.start,a=e.end}$r.value=!0,q.value={start:i,end:a},Xr.value={start:i,end:a},gi(),J.value=!0,await Ue(),Zr.value&&Zr.value.setRangeValues(q.value.start,q.value.end)}finally{queueMicrotask(()=>{$r.value=!1}),Qr.value=!1,or()}}}}async function bi({applyControlledZoom:e=!1,publish:t=!1}={}){pi(),await yi({applyControlledZoom:e}),t&&(fi({start:Number(q.value.start),end:Number(q.value.end)}),B(`zoomReset`))}function xi(e){ui={...ui,...e},li&&cancelAnimationFrame(li),li=requestAnimationFrame(()=>{let e={...q.value,...ui};ui={},li=null,q.value=e,Xr.value={...e},gi(),fi({start:Number(q.value.start),end:Number(q.value.end)}),or()})}function Si(e){if(Qr.value||$r.value)return;let t=Number(e);Number.isFinite(t)&&(B(`zoomStart`,{index:t,isZoom:t!==0}),(t!==q.value.start||ui.end!==void 0)&&xi({start:t}))}function Ci(e){if(Qr.value||$r.value)return;let t=ui.start===void 0?q.value.start:ui.start,n=hi(Number(e),t);B(`zoomEnd`,{index:n,isZoom:n!==mi()}),(n!==q.value.end||ui.start!==void 0)&&xi({end:n})}Ye([()=>k.zoomState,Dr,()=>Number(V.value?.maxSeriesLength??0)],async([e,t,n])=>{!t||n<=0||!e||(J.value?_i(e):await yi({applyControlledZoom:!0}))},{deep:!0,immediate:!0}),Ye(Tr,async e=>{if(!e){J.value=!1;return}let t=V.value?.type,n=Number(V.value?.maxSeriesLength??0);V.value=e;let r=e.type,i=Number(e.maxSeriesLength??0);[D.BAR,D.LINE].includes(r)?(t!==r||n!==i?(pi(),J.value=!1,q.value={start:0,end:i},Xr.value={...q.value},Wn.value+=1,await Ue(),await yi({applyControlledZoom:!0})):k.zoomState&&_i(k.zoomState),or()):(pi(),J.value=!1,or())},{deep:!0});let wi=h(()=>{if(!F.value.zoomMinimap.show||H.value===D.DONUT)return[];let e=[];O(V.value.dataset)&&(e=V.value.dataset),nt(V.value.dataset)&&(e=V.value.dataset.map((e,t)=>({values:e.VALUE||e.DATA||e.SERIE||e.SERIES||e.VALUES||e.NUM||0,id:H.value===D.LINE?`line_${t}`:`bar_${t}`})).filter(e=>!P.value.includes(e.id)));let t=O(e)?e.length:Math.max(...e.map(e=>e.values.length)),n=[];if(O(e))n=e;else for(let r=0;r<t;r+=1)n.push(e.map(e=>e.values[r]||0).reduce((e,t)=>(e||0)+(t||0),0));let r=Math.min(...n);return n.map(e=>e+(r<0?Math.abs(r):0))}),{metrics:Ti,ready:Ei,settling:X,update:Di}=Oe({svgRef:z,canMeasure:()=>(!F.value.responsive||Ir.value)&&(![D.LINE,D.BAR].includes(H.value)||Zi.value),initialMetrics:{scale:0,bottom:0,leftOverhang:0},measure:e=>({scale:e(Yn.value).textWidth,bottom:e(Jn.value).height,leftOverhang:e(Jn.value).leftOverhang})});function Oi(){return Math.max(Ti.value.scale+4,Ti.value.leftOverhang-F.value.xyPaddingLeft)}let ki=h(()=>Ti.value.bottom),Z=h(()=>{if(H.value!==D.LINE)return null;let e={height:U.value.height,width:U.value.width},t=Oi(),a={left:t+F.value.xyPaddingLeft,top:F.value.xyPaddingTop,right:e.width-F.value.xyPaddingRight,bottom:e.height-F.value.xyPaddingBottom-ki.value,width:Math.max(10,e.width-F.value.xyPaddingLeft-F.value.xyPaddingRight-t),height:Math.max(10,e.height-F.value.xyPaddingTop-F.value.xyPaddingBottom-ki.value)},o=[];O(V.value.dataset)&&(o=[{values:V.value.dataset.slice(q.value.start,q.value.end),absoluteValues:V.value.dataset,absoluteIndices:V.value.dataset.map((e,t)=>t).slice(q.value.start,q.value.end),name:F.value.title,color:wr.value[F.value.paletteStartIndex]||i[F.value.paletteStartIndex],id:`line_0`}]),nt(V.value.dataset)&&(o=V.value.dataset.map((e,t)=>({...e,values:e.VALUE||e.DATA||e.SERIE||e.SERIES||e.VALUES||e.NUM||0,name:e.NAME||e.DESCRIPTION||e.TITLE||e.LABEL||`Serie ${t}`,id:`line_${t}`})).map((e,t)=>({...e,color:e.COLOR?ee(e.COLOR):wr.value[t+F.value.paletteStartIndex]||i[t+F.value.paletteStartIndex]||i[(t+F.value.paletteStartIndex)%i.length],values:e.values.slice(q.value.start,q.value.end),absoluteValues:e.values,absoluteIndices:e.values.map((e,t)=>t).slice(q.value.start,q.value.end)})));let s={max:Math.max(...o.filter(e=>!P.value.includes(e.id)).flatMap(e=>e.values)),min:Math.min(...o.filter(e=>!P.value.includes(e.id)).flatMap(e=>e.values)),maxSeries:Math.max(...o.map(e=>e.values.length))},c=s.max===s.min?te(Math.min(s.min,0),s.min===0?1:Math.max(s.min,0),F.value.xyScaleSegments):te(s.min<0?s.min:0,s.max<0?0:s.max,F.value.xyScaleSegments),l=s.min<0?Math.abs(s.min):0,ne=s.max<0?a.top:a.bottom-l/(c.max+l)*a.height,u=a.width/s.maxSeries,re=c.ticks.map(e=>({y:a.bottom-a.height*((e+l)/(c.max+l)),x:a.left-8,value:e})),d=o.map((e,t)=>({...e,shape:`circle`,coordinates:e.values.map((e,t)=>({x:a.left+u*(t+1)-u/2,y:a.bottom-(e+l)/(c.max+l)*a.height,value:e}))})).map(e=>{let t=[];return e.coordinates.forEach(e=>{t.push(`${e.x},${e.y} `)}),{...e,linePath:t.join(` `)}});function ie(e){return o.map(t=>({...t,value:t.values[e],absoluteIndex:t.absoluteIndices[e]})).filter(e=>!P.value.includes(e.id))}function p(e,t=`pointer`){if(Y.value&&t===`pointer`)return;N.value=e,G.value=e,L.value=e,R.value=t;let i=ie(e);zn.value={datapoint:i,seriesIndex:e,config:F.value,dataset:o};let a=F.value.tooltipCustomFormat;if(F.value.events.datapointEnter&&F.value.events.datapointEnter({datapoint:i,seriesIndex:e+q.value.start}),r(a)&&se(()=>a({datapoint:i,seriesIndex:e,series:o,config:F.value})))Bn.value=a({datapoint:i,seriesIndex:e,series:o,config:F.value});else{let e=``;$.value[i[0].absoluteIndex]&&(e+=`<div style="border-bottom:1px solid ${F.value.tooltipBorderColor};padding-bottom:6px;margin-bottom:3px;">${$.value[i[0].absoluteIndex].text}</div>`),i.forEach((t,r)=>{e+=`
|
|
2
2
|
<div style="display:flex; flex-wrap: wrap; align-items:center; gap:3px;">
|
|
3
3
|
<svg viewBox="0 0 12 12" height="14" width="12"><circle cx="6" cy="6" r="6" stroke="none" fill="${t.color}"/></svg>
|
|
4
4
|
<span>${t.name}:</span>
|