vue-data-ui 3.28.1 → 3.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PackageVersion-C4ZM3Vf7.js → PackageVersion-BIhjLNBU.js} +1 -1
- package/dist/components/vue-ui-3d-bar.js +1 -1
- package/dist/components/vue-ui-age-pyramid.js +1 -1
- package/dist/components/vue-ui-bullet.js +1 -1
- package/dist/components/vue-ui-bump.js +1 -1
- package/dist/components/vue-ui-candlestick.js +1 -1
- package/dist/components/vue-ui-carousel-table.js +1 -1
- package/dist/components/vue-ui-chestnut.js +1 -1
- package/dist/components/vue-ui-chord.js +1 -1
- package/dist/components/vue-ui-circle-pack.js +1 -1
- package/dist/components/vue-ui-cursor.js +1 -1
- package/dist/components/vue-ui-dag.js +1 -1
- package/dist/components/vue-ui-dashboard.js +1 -1
- package/dist/components/vue-ui-digits.js +1 -1
- package/dist/components/vue-ui-donut-evolution.js +1 -1
- package/dist/components/vue-ui-donut.js +1 -1
- package/dist/components/vue-ui-dumbbell.js +1 -1
- package/dist/components/vue-ui-flow.js +1 -1
- package/dist/components/vue-ui-funnel.js +1 -1
- package/dist/components/vue-ui-galaxy.js +1 -1
- package/dist/components/vue-ui-gauge.js +1 -1
- package/dist/components/vue-ui-geo.js +1 -1
- package/dist/components/vue-ui-gizmo.js +1 -1
- package/dist/components/vue-ui-graph.js +1 -1
- package/dist/components/vue-ui-heatmap.js +1 -1
- package/dist/components/vue-ui-hill.js +1 -1
- package/dist/components/vue-ui-history-plot.js +1 -1
- package/dist/components/vue-ui-horizontal-bar.js +1 -1
- package/dist/components/vue-ui-kpi.js +1 -1
- package/dist/components/vue-ui-molecule.js +1 -1
- package/dist/components/vue-ui-mood-radar.js +1 -1
- package/dist/components/vue-ui-nested-donuts.js +1 -1
- package/dist/components/vue-ui-onion.js +1 -1
- package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
- package/dist/components/vue-ui-quadrant.js +1 -1
- package/dist/components/vue-ui-quick-chart.js +1 -1
- package/dist/components/vue-ui-radar.js +1 -1
- package/dist/components/vue-ui-relation-circle.js +1 -1
- package/dist/components/vue-ui-ridgeline.js +1 -1
- package/dist/components/vue-ui-rings.js +1 -1
- package/dist/components/vue-ui-scatter.js +1 -1
- package/dist/components/vue-ui-skeleton.js +1 -1
- package/dist/components/vue-ui-spark-trend.js +1 -1
- package/dist/components/vue-ui-sparkbar.js +1 -1
- package/dist/components/vue-ui-sparkgauge.js +1 -1
- package/dist/components/vue-ui-sparkhistogram.js +1 -1
- package/dist/components/vue-ui-sparkline.js +1 -1
- package/dist/components/vue-ui-sparkstackbar.js +1 -1
- package/dist/components/vue-ui-stackbar.js +1 -1
- package/dist/components/vue-ui-stackline.js +1 -1
- package/dist/components/vue-ui-strip-plot.js +1 -1
- package/dist/components/vue-ui-table-sparkline.js +1 -1
- package/dist/components/vue-ui-table.js +1 -1
- package/dist/components/vue-ui-thermometer.js +1 -1
- package/dist/components/vue-ui-timer.js +1 -1
- package/dist/components/vue-ui-tiremarks.js +1 -1
- package/dist/components/vue-ui-treemap.js +1 -1
- package/dist/components/vue-ui-vertical-bar.js +1 -1
- package/dist/components/vue-ui-waffle.js +1 -1
- package/dist/components/vue-ui-wheel.js +1 -1
- package/dist/components/vue-ui-word-cloud.js +1 -1
- package/dist/components/vue-ui-world.js +1 -1
- package/dist/components/vue-ui-xy.js +1 -1
- package/dist/package-DwcKiXuI.js +1 -0
- package/dist/{render-common-CJz0wn0I.js → render-common-B-s2XJ_I.js} +1 -1
- package/dist/ssr/vue-ui-donut.js +1 -1
- package/dist/ssr/vue-ui-xy.js +1 -1
- package/dist/ssr.js +1 -1
- package/dist/style.css.d.ts +2 -0
- package/dist/style.d.css.ts +2 -0
- package/dist/vue-data-ui-BvHCscNE.js +1 -0
- package/dist/vue-data-ui.js +1 -1
- package/dist/{vue-ui-3d-bar-CW8ahywt.js → vue-ui-3d-bar-CkHFiFp4.js} +1 -1
- package/dist/{vue-ui-age-pyramid-CxMwKICA.js → vue-ui-age-pyramid-vpIjdLg5.js} +1 -1
- package/dist/{vue-ui-bullet-ClnewIWQ.js → vue-ui-bullet-rgxGRR1p.js} +1 -1
- package/dist/{vue-ui-bump-C6FuNDUg.js → vue-ui-bump-CeDsunDi.js} +1 -1
- package/dist/{vue-ui-candlestick-CyewIjJk.js → vue-ui-candlestick-KJHOS5F7.js} +1 -1
- package/dist/{vue-ui-carousel-table-D0dD4kai.js → vue-ui-carousel-table-CeI5SIxH.js} +1 -1
- package/dist/{vue-ui-chestnut-nS1vjCqH.js → vue-ui-chestnut-CiY-2e77.js} +1 -1
- package/dist/{vue-ui-chord-B963Q_26.js → vue-ui-chord-8rk7304-.js} +1 -1
- package/dist/{vue-ui-circle-pack-DEY9X3jA.js → vue-ui-circle-pack-BsH09EPG.js} +1 -1
- package/dist/{vue-ui-cursor-CNv12HQG.js → vue-ui-cursor-Cpov2m58.js} +1 -1
- package/dist/{vue-ui-dag-s3-TMmid.js → vue-ui-dag-BHFL2cUA.js} +1 -1
- package/dist/{vue-ui-dashboard-B5zrGAvS.js → vue-ui-dashboard-BxXdhdNJ.js} +1 -1
- package/dist/{vue-ui-digits-DXQwmTUx.js → vue-ui-digits-xHOLjA2_.js} +1 -1
- package/dist/{vue-ui-donut-DHfOfLBF.js → vue-ui-donut-CR3klUbX.js} +1 -1
- package/dist/{vue-ui-donut-CDryub1L.js → vue-ui-donut-Vbp5Xs2-.js} +1 -1
- package/dist/{vue-ui-donut-evolution-C5pHSrza.js → vue-ui-donut-evolution-BTmztL3Y.js} +1 -1
- package/dist/{vue-ui-dumbbell-CQbGR7yM.js → vue-ui-dumbbell-CDcgKS2A.js} +1 -1
- package/dist/{vue-ui-flow-B16Mj6MW.js → vue-ui-flow-kVocPE27.js} +1 -1
- package/dist/{vue-ui-funnel-Dh-xi_Qi.js → vue-ui-funnel-CZAdPYqK.js} +1 -1
- package/dist/{vue-ui-galaxy-U_ZIP5vm.js → vue-ui-galaxy-hP-9mVlB.js} +1 -1
- package/dist/{vue-ui-gauge-Dr4zsf6D.js → vue-ui-gauge-BRabsLkh.js} +1 -1
- package/dist/{vue-ui-geo-DFebja0s.js → vue-ui-geo-Dacnp6iw.js} +1 -1
- package/dist/{vue-ui-gizmo-CssVcz-O.js → vue-ui-gizmo-Dp3hpHIX.js} +1 -1
- package/dist/{vue-ui-graph-BB_97Qz7.js → vue-ui-graph-DHU9hUry.js} +1 -1
- package/dist/{vue-ui-heatmap-DEBbVnrg.js → vue-ui-heatmap-kPnmZgWi.js} +1 -1
- package/dist/{vue-ui-hill-C1sHz3TI.js → vue-ui-hill-Ddbup7-b.js} +1 -1
- package/dist/{vue-ui-history-plot-CsBTJXR3.js → vue-ui-history-plot-CwO2o-2s.js} +1 -1
- package/dist/{vue-ui-horizontal-bar-D0kfcpEW.js → vue-ui-horizontal-bar-CvX77vE4.js} +1 -1
- package/dist/{vue-ui-kpi-CltKSYUI.js → vue-ui-kpi-CCOOwX_Q.js} +1 -1
- package/dist/{vue-ui-molecule-DtoyWWTf.js → vue-ui-molecule-BPGs9Dom.js} +1 -1
- package/dist/{vue-ui-mood-radar-ClOxfeH8.js → vue-ui-mood-radar-GJ-lhgI0.js} +1 -1
- package/dist/{vue-ui-nested-donuts-CULAXTg1.js → vue-ui-nested-donuts-CrlPwpg8.js} +1 -1
- package/dist/{vue-ui-onion-D7zu861i.js → vue-ui-onion-CKmyy-Y_.js} +1 -1
- package/dist/{vue-ui-parallel-coordinate-plot-Cjbc-WUG.js → vue-ui-parallel-coordinate-plot-C0UqWt0M.js} +1 -1
- package/dist/{vue-ui-quadrant-DWAb_t6r.js → vue-ui-quadrant-CTGFBNo9.js} +1 -1
- package/dist/{vue-ui-quick-chart-oDZwgVo8.js → vue-ui-quick-chart-ZBOPZhxA.js} +1 -1
- package/dist/{vue-ui-radar-BWG_N0xO.js → vue-ui-radar-B1z3Ux3E.js} +1 -1
- package/dist/{vue-ui-relation-circle-BCRiS2n6.js → vue-ui-relation-circle-DqN5N08e.js} +1 -1
- package/dist/{vue-ui-ridgeline-VYcGUP_p.js → vue-ui-ridgeline-DcSB5Qef.js} +1 -1
- package/dist/{vue-ui-rings-Dl0AjrRj.js → vue-ui-rings-CJqAnf-l.js} +1 -1
- package/dist/{vue-ui-scatter-DTa48HvG.js → vue-ui-scatter-THQAeoWs.js} +1 -1
- package/dist/{vue-ui-skeleton-C5mGG8hR.js → vue-ui-skeleton-DqmhigQ0.js} +1 -1
- package/dist/{vue-ui-spark-trend--frxeJ8f.js → vue-ui-spark-trend-B2Nf1raK.js} +1 -1
- package/dist/{vue-ui-sparkbar-BS5v3HMo.js → vue-ui-sparkbar-CamZ_49V.js} +1 -1
- package/dist/{vue-ui-sparkgauge-B1TGfXvR.js → vue-ui-sparkgauge-Ffrp_7VV.js} +1 -1
- package/dist/{vue-ui-sparkhistogram-Cs97AL6h.js → vue-ui-sparkhistogram-CLfzi3PO.js} +1 -1
- package/dist/{vue-ui-sparkline-Bp9J6x7z.js → vue-ui-sparkline-Y-sljnbS.js} +1 -1
- package/dist/{vue-ui-sparkstackbar-BVuuRD10.js → vue-ui-sparkstackbar-CYZ-ADO1.js} +1 -1
- package/dist/{vue-ui-stackbar-CRuXn3XI.js → vue-ui-stackbar-CQLYm10x.js} +1 -1
- package/dist/{vue-ui-stackline-Besmr9vq.js → vue-ui-stackline-VpvF7MRx.js} +1 -1
- package/dist/{vue-ui-strip-plot-D-aRJkR7.js → vue-ui-strip-plot-B9Ogpw7K.js} +1 -1
- package/dist/{vue-ui-table-D_UdQwV3.js → vue-ui-table-Bi9C3LzP.js} +1 -1
- package/dist/{vue-ui-table-sparkline-BdNo8fW_.js → vue-ui-table-sparkline-DEVAL0cR.js} +1 -1
- package/dist/{vue-ui-thermometer-TFg1SGY7.js → vue-ui-thermometer-ClN4EO0I.js} +1 -1
- package/dist/{vue-ui-timer-BdPksC26.js → vue-ui-timer-nqZxt1vU.js} +1 -1
- package/dist/{vue-ui-tiremarks-HWuO-eyj.js → vue-ui-tiremarks-BeJBsgXo.js} +1 -1
- package/dist/{vue-ui-treemap-IegiAqaX.js → vue-ui-treemap-FA-yXwmv.js} +1 -1
- package/dist/{vue-ui-waffle-BEyGfPks.js → vue-ui-waffle-CO07S6HV.js} +1 -1
- package/dist/{vue-ui-wheel-k8GNPGET.js → vue-ui-wheel-BeaSWB4x.js} +1 -1
- package/dist/{vue-ui-word-cloud-D9_15Ve7.js → vue-ui-word-cloud-C1OWGFng.js} +1 -1
- package/dist/{vue-ui-world-rCp5Vb7u.js → vue-ui-world-CUS_mKgl.js} +1 -1
- package/dist/{vue-ui-xy-CFgFg11v.js → vue-ui-xy-6B_K-quN.js} +1 -1
- package/dist/{vue-ui-xy-42AXepcQ.js → vue-ui-xy-BigPHE0Q.js} +1 -1
- package/package.json +6 -2
- package/dist/package-DGRUegc-.js +0 -1
- package/dist/vue-data-ui-CxiWUtNw.js +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
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 c,at as l,b as u,i as d,in as f,n as ee,nn as p,nt as m,r as h,t as g,w as te,zt as _}from"./lib-rPeBMZrn.js";import{n as v,t as ne}from"./BaseScanner-8NdoBs7B.js";import{n as y,t as b}from"./useHints-BH9r_0Vd.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as re}from"./useNestedProp-DnGoh-XS.js";import{t as ie}from"./useThemeCheck-BKNRbGeC.js";import{t as ae}from"./chartImage-DPGnEuYM.js";import{n as oe}from"./Title-BliHuXfT.js";import{t as se}from"./useChartExport-BZts4KFb.js";import{n as ce,t as le}from"./tableIntegration-CNoJ1CIY.js";import{n as ue,t as de}from"./annotationSlots-BRR85CqJ.js";import{n as fe,t as pe}from"./userOptionsSlots-DYuo-E5m.js";import{t as me}from"./usePrinter-sVoTzet1.js";import{c as he}from"./canvas-lib-22VpOI4_.js";import{t as ge}from"./useResponsive-CENUxfEL.js";import{t as _e}from"./A11yDataTable-DWNlWXzs.js";import{t as ve}from"./useUserOptionState-CXlFnwPv.js";import{t as ye}from"./useChartAccessibility-DOMuYJfm.js";import{t as be}from"./Legend-DM0ClX3D.js";import{t as xe}from"./vue_ui_flow-kvV56Es9.js";import{Fragment as Se,Teleport as Ce,computed as S,createBlock as C,createCommentVNode as w,createElementBlock as T,createElementVNode as E,createSlots as we,createTextVNode as Te,createVNode as Ee,defineAsyncComponent as D,guardReactiveProps as O,mergeProps as De,nextTick as Oe,normalizeClass as ke,normalizeProps as k,normalizeStyle as A,onMounted as Ae,openBlock as j,ref as M,renderList as N,renderSlot as P,resolveDynamicComponent as je,toDisplayString as F,toRefs as Me,unref as I,watch as Ne,withCtx as L}from"vue";var Pe=/* @__PURE__ */ e({default:()=>tt}),Fe=[`id`],Ie=[`id`],Le={key:2,ref:`noTitle`,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},Re=[`id`],ze={style:{position:`relative`}},Be=[`xmlns`,`aria-describedby`,`viewBox`],Ve=[`width`,`height`],He=[`id`],Ue=[`stop-color`],We=[`stop-color`],Ge=[`d`,`fill`,`stroke`,`stroke-width`],Ke=[`data-a11y-node-id`,`x`,`y`,`height`,`width`,`fill`,`stroke`,`stroke-width`,`rx`,`aria-label`,`onMouseenter`,`onMouseleave`,`onClick`],qe={key:1},Je=[`x`,`y`,`font-size`,`fill`],Ye=[`x`,`y`,`font-size`,`fill`],Xe={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},Ze={key:5,class:`vue-data-ui-watermark`},Qe=[`id`],$e=[`onClick`],et={style:{display:`flex`,"align-items":`center`}},tt=/*#__PURE__*/ x({__name:`vue-ui-flow`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`copyAlt`],setup(e,{expose:x,emit:Pe}){let tt=D(()=>import(`./Tooltip-C1q0Qoh7.js`)),nt=D(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),rt=D(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),it=D(()=>import(`./DataTable-0Vv-aGHD.js`)),at=D(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),ot=D(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),st=D(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),ct=D(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_flow:lt}=t(),{isThemeValid:ut,warnInvalidTheme:dt}=ie(),R=e,ft=Pe,z=M(s()),B=M(null),pt=M(0),mt=M(0),ht=M(!1),gt=M(``),_t=M(null),vt=M(null),yt=M(null),bt=M(null),xt=M(null),St=M(!1),Ct=M(null),wt=M(null),Tt=M(null),Et=M(null),V=M(null),Dt=M({x:0,y:0}),Ot=M(`pointer`),kt=M(!1),At=S(()=>!!R.dataset&&R.dataset.length);Ae(()=>{St.value=!0,zt()});let H=M(!1);function jt(e){H.value=e,pt.value+=1}let U=M(Ut()),W=S(()=>U.value.style.chart.nodes.labels),G=S(()=>U.value.style.chart.nodes),Mt=S(()=>U.value.style.chart.links),K=S(()=>U.value.style.chart);y({config:()=>U.value,dataset:()=>R.dataset,component:`VueUiFlow`,rules:[b.emptyArray,b.noHint]});let Nt=S(()=>U.value.userOptions.useCursorPointer),Pt=S(()=>f({defaultConfig:{userOptions:{show:!1},nodeCategories:{B:`A`,C:`B`},nodeCategoryColors:{A:`#CACACA`,B:`#AAAAAA`},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,legend:{backgroundColor:`transparent`},nodes:{labels:{show:!1},stroke:`#666666`},links:{stroke:`#666666`}}}},userConfig:U.value.skeletonConfig??{}})),{loading:Ft,FINAL_DATASET:It,manualLoading:Lt}=v({...Me(R),FINAL_CONFIG:U,prepareConfig:Ut,skeletonDataset:R.config?.skeletonDataset??[[`A`,`B`,2,`#CACACA`],[`B`,`C`,1,`#CACACA`],[`C`,`D`,.5,`#CACACA`],[`E`,`F`,1,`#AAAAAA`],[`F`,`G`,.5,`#AAAAAA`],[`G`,`H`,.25,`#AAAAAA`]],skeletonConfig:f({defaultConfig:U.value,userConfig:Pt.value})}),Rt=S(()=>U.value.debug);function zt(){if(_(R.dataset)&&(l({componentName:`VueUiFlow`,type:`dataset`,debug:Rt.value}),Lt.value=!0),_(R.dataset)||(Lt.value=U.value.loading),U.value.responsive){let e=he(()=>{let{width:e,height:t}=ge({chart:B.value,title:K.value.title.text?vt.value:null,legend:K.value.legend.show?_t.value:null,source:yt.value});requestAnimationFrame(()=>{Wt.value=e,Gt.value=t})});bt.value&&(xt.value&&bt.value.unobserve(xt.value),bt.value.disconnect()),bt.value=new ResizeObserver(e),xt.value=B.value.parentNode,bt.value.observe(xt.value)}}let{userOptionsVisible:Bt,setUserOptionsVisibility:Vt,keepUserOptionState:Ht}=ve({config:U.value}),{svgRef:q}=ye({config:K.value.title});function Ut(){let e=re({userConfig:R.config,defaultConfig:lt}),t=e,n=e.theme;if(n){if(!ut.value(e))dt(e),t=e;else{let r=re({userConfig:xe[n]||R.config,defaultConfig:e});t={...re({userConfig:R.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:p[n]||a}}}else t=e;return t.nodeCategories=R.config.nodeCategories||{},t.nodeCategoryColors=R.config.nodeCategoryColors||{},t}let Wt=M(K.value.width),Gt=M(K.value.height),Kt=c(R.config);Ne(()=>R.config,(e,t)=>{let n=c(e),r=n!==Kt;Kt=n;let i=Ut();r?(Ft.value||(U.value=i),Bt.value=!U.value.userOptions.showOnChartHover,zt(),mt.value+=1,J.value.showTable=U.value.table.show):(U.value.style.chart.tooltip=i.style.chart.tooltip,J.value.showTooltip=U.value.style.chart.tooltip.show)},{deep:!0}),Ne(()=>R.dataset,e=>{Array.isArray(e)&&e.length>0&&(Lt.value=!1)},{deep:!0});let{isPrinting:qt,isImaging:Jt,generatePdf:Yt,generateImage:Xt}=me({elementId:`flow_${z.value}`,fileName:K.value.title.text||`vue-ui-flow`,options:U.value.userOptions.print}),Zt=S(()=>U.value.userOptions.show&&!K.value.title.text),Qt=S(()=>te(U.value.customPalette)),$t=S(()=>G.value.width),J=M({showTable:U.value.table.show,showTooltip:K.value.tooltip.show});Ne(U,()=>{J.value={showTable:U.value.table.show,showTooltip:K.value.tooltip.show}},{immediate:!0});let en=S(()=>!It.value||!It.value.length?[]:It.value.map((e,t)=>[e[0],e[1],u(e[2]),e[3]?o(e[3]):Qt.value[t]||Qt.value[t%Qt.value.length]||a[t]||a[t%a.length]]));function tn(e){let t={},n={};function r(e,r){t[e]||(t[e]={level:null,inflow:0,outflow:0,children:[],color:null,uid:s()}),t[e].level===null&&(t[e].level=r),n[r]||(n[r]=[]),n[r].includes(e)||n[r].push(e)}e.forEach(([e,n,i])=>{let a=t[e]?.level??0,o=a+1;r(e,a),r(n,o),t[e].children.push({target:n,value:i}),t[e].outflow+=i,t[n].inflow+=i});let i=new Set(e.map(([e])=>e)),o=new Set(e.map(([,e])=>e)),c=Array.from(i).filter(e=>!o.has(e)),l={};c.forEach((e,t)=>{l[e]=Qt.value[t]||a[t%a.length]});let d={};e.forEach(([e,t,n,r])=>{r&&(d[e]=r,d[t]=r)}),Object.keys(t).forEach((e,n)=>{let r=U.value.nodeCategories?.[e],i=r?U.value.nodeCategoryColors?.[r]:null;t[e].color=d[e]||i||(c.includes(e)?l[e]:null)||a[n%a.length]}),Object.keys(t).forEach(e=>{t[e].value=Math.max(t[e].inflow,t[e].outflow)});let f=an.value,ee=on.value.width,p=on.value.height,m=Object.keys(n).map(Number).sort((e,t)=>e-t),h=m.length||1,g=h>1?ee/(h-1):0,te=Number($t.value),_=Number(G.value.gapPx??G.value.gap??8),v=Number(G.value.minHeight||0);function ne(e){let r=n[e],i=r.length;if(!i)return 1/0;let a=Math.max(0,(i-1)*_),o=Math.max(0,p-a),s=Math.min(v,i?o/i:0),c=0,l=r.map(e=>t[e].value||0),u=l.reduce((e,t)=>e+t,0);for(let e=0;e<12;e+=1){let e=u>0?(o-c)/u:0,t=[];for(let n=0;n<l.length;n+=1){let r=l[n];r<0||r*e<s&&t.push(n)}if(!t.length)return Math.max(0,e);for(let e of t)c+=s,u-=l[e],l[e]=-1;if(u<=0)return 0}return u>0?Math.max(0,(o-c)/u):0}let y=m.map(ne),b=y.length?Math.min(...y):0,x={};m.forEach(e=>{let r=n[e],i=r.length,a=Math.max(0,(i-1)*_),o=Math.max(0,p-a),c=Math.min(v,i?o/i:0),l=r.map(e=>Math.max(c,(t[e].value||0)*b)),u=l.reduce((e,t)=>e+t,0)+a,d=Math.max(0,(p-u)/2);r.forEach((n,r)=>{let a=l[r],o=f.left+e*g,c=d;x[n]={x:o,y:c,absoluteY:c,height:a,i:r,color:t[n].color,value:t[n].value,id:s()},d+=a,r<i-1&&(d+=_)})});let re=[],ie=f.top,ae={},oe={};Object.keys(t).forEach(e=>{ae[e]=x[e]?.y??0,oe[e]=0});let se=!!Mt.value.smooth,ce=.5;return m.forEach(e=>{n[e].forEach(e=>{let n=t[e],r=x[e];if(!n.children||!n.children.length)return;let i=r.y;n.children.forEach(({target:a,value:o})=>{let c=x[a],l=t[a],d=n.outflow>0?o/n.outflow:0,f=l.inflow>0?o/l.inflow:0,ee=u(i+ie),p=u(i+d*r.height+ie),m=ae[a],h=m+f*c.height;oe[a]+=o;let g=l.inflow>0&&oe[a]>=l.inflow-1e-6,_=c.y+c.height;(g||h>_-.25)&&(h=_);let v=u(m+ie),ne=u(h+ie),y=u(r.x+te),b=u(c.x),le;if(!se||b<=y)le=`M ${y} ${ee} L ${y} ${p} L ${b} ${ne} L ${b} ${v} Z`;else{let e=b-y,t=u(y+e*ce),n=u(b-e*ce),r=ee,i=v,a=p,o=ne;le=`M ${y} ${r} C ${t} ${r}, ${n} ${i}, ${b} ${i} L ${b} ${o} C ${n} ${o}, ${t} ${a}, ${y} ${a} Z`}re.push({id:s(),source:e,target:a,path:le,value:o,sourceColor:n.color,targetColor:t[a].color}),i=p-ie,ae[a]=h})})}),{nodeCoordinates:x,links:re}}let Y=S(()=>{let e=tn(It.value);return{nodes:Object.keys(e.nodeCoordinates).map((t,n)=>({...e.nodeCoordinates[t],name:t})),links:e.links}}),nn=S(()=>Wt.value),rn=S(()=>Gt.value),an=S(()=>K.value.padding),on=S(()=>({width:Math.max(0,nn.value-40-an.value.right-an.value.left),height:Math.max(0,rn.value-an.value.top-an.value.bottom)})),sn=S(()=>({width:nn.value,height:rn.value}));function cn(e){let t={},n={},r=/* @__PURE__ */ new Set;return en.value.forEach(([e,r,i])=>{t[e]||(t[e]=[]),n[r]||(n[r]=[]),t[e].push(r),n[r].push(e)}),t[e]&&t[e].forEach(e=>r.add(e)),n[e]&&n[e].forEach(e=>r.add(e)),Array.from(r).concat(e)}let X=M(null),Z=M(null),ln=M(null),un=M(!1),dn=M(null);function fn(){dn.value=null,X.value=null,Z.value=null,ht.value=!1,Et.value=null,V.value=null}function pn(e){if(!q.value||!e)return;let t=q.value.querySelector(`[data-a11y-node-id="${e}"]`);if(!t)return;let n=t.getBoundingClientRect();Dt.value={x:n.left+n.width/2,y:n.top+n.height/2}}function mn(e,t,r=`pointer`,a=null){$.value=[],X.value=cn(e.name),Z.value=e.name,dn.value=e.id,Ot.value=r,Et.value=a,V.value=e.id;let o=e.name,s=en.value,c=0,l=0,u=[],f=[],ee=new Set(s.map(([e])=>e)),p=new Set(s.map(([,e])=>e)),m=Array.from(ee).filter(e=>!p.has(e)),h=s.filter(([e])=>m.includes(e)).reduce((e,[t,n,r])=>e+r,0),g={};Y.value.nodes.forEach(e=>{g[e.name]=e.color}),s.forEach(([e,t,n])=>{t===o&&(c+=n,u.push({source:e,value:n,color:g[e]})),e===o&&(l+=n,f.push({target:t,value:n,color:g[t]}))});let te=h>0?Math.max(c,l)/h*100:0,_={name:o,inflow:c,outflow:l,from:u,to:f,percentOfTotal:te,color:g[o]||`#000000`};U.value.events.datapointEnter&&U.value.events.datapointEnter({datapoint:_,seriesIndex:t}),ln.value={datapoint:_,config:U.value,seriesIndex:t,series:Y.value},ht.value=!0;let v=``,ne=K.value.tooltip.customFormat;if(un.value=!1,i(ne))try{let e=ne({datapoint:_,series:Y.value,config:U.value});typeof e==`string`&&(gt.value=e,un.value=!0)}catch{console.warn(`Custom format cannot be applied.`)}if(!un.value){let e=K.value.tooltip.showPercentage?`<div>${n({p:K.value.tooltip.translations.percentOfTotal,v:_.percentOfTotal,s:`%`,r:K.value.tooltip.roundingPercentage})}</div>`:``;v+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${K.value.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;"><span style="margin-right:4px; color:${_.color}">⏹</span>${_.name}${e}</div>`,_.from.length&&(v+=`<div>${K.value.tooltip.translations.from}</div>`,_.from.forEach(e=>{v+=`<div><span style="color:${e.color}">⏹←</span> ${e.source}: ${d(W.value.formatter,e.value,n({p:W.value.prefix,v:e.value,s:W.value.suffix,r:W.value.rounding}))}</div>`})),_.to.length&&(v+=`<div style="margin-top:6px;">${K.value.tooltip.translations.to}</div>`,_.to.forEach(e=>{v+=`<div><span style="color:${e.color}">⏹→</span> ${e.target}: ${d(W.value.formatter,e.value,n({p:W.value.prefix,v:e.value,s:W.value.suffix,r:W.value.rounding}))}</div>`})),gt.value=v}r===`keyboard`&&Oe(()=>{pn(e.id)})}function hn(e){let t=ln.value;U.value.events.datapointLeave&&U.value.events.datapointLeave({datapoint:t,seriesIndex:e}),!(Ot.value===`keyboard`&&V.value)&&(dn.value=null,X.value=null,Z.value=null,ht.value=!1)}function gn(e){let t=ln.value;U.value.events.datapointClick&&U.value.events.datapointClick({datapoint:t,seriesIndex:e})}let _n=S(()=>Y.value.links.map(({source:e,target:t,sourceColor:n,targetColor:r,value:i})=>({source:e,target:t,sourceColor:n,targetColor:r,value:i})));function vn(e=null){Oe(()=>{let t=_n.value.map((e,t)=>[[e.source],[e.target],[e.value]]),n=[[K.value.title.text],[K.value.title.subtitle.text],[[U.value.table.columnNames.source],[U.value.table.columnNames.target],[U.value.table.columnNames.value]]].concat(t),i=r(n);e?e(i):m({csvContent:i,title:K.value.title.text||`vue-ui-flow`})})}let yn=S(()=>{let e=[U.value.table.columnNames.source,U.value.table.columnNames.target,U.value.table.columnNames.value],t=_n.value.map((e,t)=>[{color:e.sourceColor,name:e.source,shape:`square`},{color:e.targetColor,name:e.target,shape:`square`},n({p:W.value.prefix,v:e.value,s:W.value.suffix,r:W.value.rounding})]),r={th:{backgroundColor:U.value.table.th.backgroundColor,color:U.value.table.th.color,outline:U.value.table.th.outline},td:{backgroundColor:U.value.table.td.backgroundColor,color:U.value.table.td.color,outline:U.value.table.td.outline},breakpoint:U.value.table.responsiveBreakpoint};return{colNames:[U.value.table.columnNames.source,U.value.table.columnNames.target,U.value.table.columnNames.value],head:e,body:t,config:r}}),bn=S(()=>({headers:yn.value?.colNames??[],rows:yn.value?.body??[]})),xn=S(()=>[...Y.value.nodes].map((e,t)=>({...e,index:t,centerX:e.x+$t.value/2,centerY:u(e.absoluteY)+K.value.padding.top+e.height/2})).sort((e,t)=>e.x===t.x?e.absoluteY-t.absoluteY:e.x-t.x)),Q=S(()=>{let e=[];return xn.value.forEach(t=>{let n=e.find(e=>Math.abs(e.x-t.x)<=1);n?n.nodes.push(t):e.push({x:t.x,nodes:[t]})}),e.forEach(e=>{e.nodes.sort((e,t)=>e.absoluteY-t.absoluteY)}),e.sort((e,t)=>e.x-t.x)}),Sn=S(()=>{let e=/* @__PURE__ */ new Map;return xn.value.forEach((t,n)=>{e.set(t.id,n)}),e});function Cn(){return Y.value}function wn(){J.value.showTable=!J.value.showTable}let Tn=M(!1);function En(){Tn.value=!Tn.value}function Dn(){J.value.showTooltip=!J.value.showTooltip}let On=S(()=>{let e=new Set(Y.value.nodes.map(e=>U.value.nodeCategories[e.name]||`__uncategorized__`));return Array.from(e).map(e=>({name:e,color:U.value.nodeCategoryColors[e]||a[0],shape:`square`,count:Y.value.nodes.filter(t=>(U.value.nodeCategories[t.name]||`__uncategorized__`)===e).length})).map((e,t)=>{let n=$.value.includes(t);return{...e,segregate:()=>An({legend:e,i:t}),isSegregated:n,opacity:$.value.length?n?1:.5:1,display:`${e.name} (${e.count})`}})}),kn=S(()=>On.value.filter(e=>e.name!==`__uncategorized__`)),$=M([]);function An({legend:e,i:t}){let n=e.name;X.value?.every(e=>U.value.nodeCategories[e]===n)?(X.value=null,Z.value=null,$.value=[]):($.value=[t],X.value=Y.value.nodes.filter(e=>U.value.nodeCategories[e.name]===n).map(e=>e.name),Z.value=null)}let jn=S(()=>({cy:`flow-legend`,backgroundColor:K.value.legend.backgroundColor,color:K.value.legend.color,fontSize:K.value.legend.fontSize,paddingBottom:K.value.legend.paddingBottom,fontWeight:K.value.legend.bold?`bold`:`normal`})),Mn=ae(B,()=>K.value.title.text),Nn=S(()=>le({config:U,style:K,mutableConfig:J,dialog:ct,accordion:rt,isFullscreen:H,parent:B,maxWidth:800,isCursorPointer:Nt}));Ne(()=>J.value.showTable,e=>ce(e,U,Ct));function Pn(){J.value.showTable=!1,wt.value&&wt.value.setTableIconState(!1)}let Fn=S(()=>kn.value.map(e=>({...e,name:e.display}))),In=S(()=>K.value.backgroundColor),Ln=S(()=>K.value.legend),Rn=S(()=>K.value.title),{isCallbackImaging:zn,isCallbackSvg:Bn,generateSvg:Vn,onGenerateImage:Hn}=se({svg:q,title:Rn,legend:Ln,legendItems:Fn,backgroundColor:In,getSvgCallback:()=>U.value.userOptions.callbacks.svg,generateImage:Xt});async function Un(){ft(`copyAlt`,{config:U.value,dataset:Y.value}),U.value.userOptions.callbacks.altCopy?await Promise.resolve(U.value.userOptions.callbacks.altCopy({config:U.value,dataset:Y.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function Wn(e){return Q.value.findIndex(t=>t.nodes.some(t=>t.id===e))}function Gn(e,t){let n=Q.value[e];return n?n.nodes.findIndex(e=>e.id===t):-1}function Kn(e,t){let n=Q.value[e];if(!n||!n.nodes.length)return null;let r=n.nodes[0],i=Math.abs(r.centerY-t);for(let e=1;e<n.nodes.length;e+=1){let a=n.nodes[e],o=Math.abs(a.centerY-t);o<i&&(r=a,i=o)}return r}function qn(){Et.value=null,V.value=null,kt.value=!0}function Jn(){fn(),kt.value=!1}function Yn(e){if(!q.value||Tn.value||document.activeElement!==q.value||!xn.value.length)return;let t=e.key===`ArrowLeft`,n=e.key===`ArrowRight`,r=e.key===`ArrowUp`,i=e.key===`ArrowDown`,a=e.key===`Enter`||e.key===` `,o=e.key===`Escape`;if(!t&&!n&&!r&&!i&&!a&&!o)return;if(e.preventDefault(),e.stopPropagation(),o){fn();return}if(a){if(Et.value===null)return;gn(Et.value);return}if(V.value===null){let e=Q.value[0]?.nodes?.[0];if(!e)return;let t=Sn.value.get(e.id)??0;mn(e,t,`keyboard`,t);return}let s=Sn.value.get(V.value);if(s===void 0)return;let c=xn.value[s];if(!c)return;let l=Wn(c.id);if(l<0)return;let u=null;if(r||i){let e=Gn(l,c.id);if(e<0)return;let t=Q.value[l];if(!t?.nodes?.length)return;let n=e+(i?1:-1);n<0&&(n=t.nodes.length-1),n>=t.nodes.length&&(n=0),u=t.nodes[n]}if(t||n){let e=l+(n?1:-1);e<0&&(e=Q.value.length-1),e>=Q.value.length&&(e=0),u=Kn(e,c.centerY)}if(!u)return;let d=Sn.value.get(u.id);d!==void 0&&mn(u,d,`keyboard`,d)}return x({getData:Cn,getImage:Mn,generateCsv:vn,generateImage:Xt,generateSvg:Vn,generatePdf:Yt,toggleTable:wn,toggleAnnotator:En,toggleTooltip:Dn,drillCategory:An,unselectNode:hn,toggleFullscreen:jt,copyAlt:Un}),(e,t)=>(j(),T(`div`,{ref_key:`flowChart`,ref:B,class:ke(`vue-data-ui-component vue-ui-flow ${H.value?`vue-data-ui-wrapper-fullscreen`:``}`),style:A(`font-family:${U.value.style.fontFamily};width:100%; text-align:center;background:${K.value.backgroundColor}`),id:`flow_${z.value}`,onMouseenter:t[2]||=()=>I(Vt)(!0),onMouseleave:t[3]||=()=>{I(Vt)(!1),kt.value||fn()}},[E(`div`,{id:`chart-instructions-${z.value}`,class:`sr-only`},[E(`p`,null,F(U.value.a11y.translations.keyboardNavigation),1)],8,Ie),bn.value?.rows?.length?(j(),C(_e,{key:0,uid:z.value,head:bn.value.headers,body:bn.value.rows,notice:U.value.a11y.translations.tableAvailable,caption:U.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):w(``,!0),U.value.userOptions.buttons.annotator?(j(),C(I(at),{key:1,svgRef:I(q),backgroundColor:K.value.backgroundColor,color:K.value.color,active:Tn.value,palette:U.value.userOptions.annotatorPalette,isCursorPointer:Nt.value,onClose:En},we({_:2},[N(I(de),t=>({name:t,fn:L(n=>[P(e.$slots,t,k(O(I(ue)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`palette`,`isCursorPointer`])):w(``,!0),Zt.value?(j(),T(`div`,Le,null,512)):w(``,!0),K.value.title.text?(j(),T(`div`,{key:3,ref_key:`chartTitle`,ref:vt,style:`width:100%;background:transparent;padding-bottom:24px`},[(j(),C(oe,{key:`title_${mt.value}`,config:{title:{cy:`flow-title`,...K.value.title},subtitle:{cy:`flow-subtitle`,...K.value.title.subtitle}}},null,8,[`config`]))],512)):w(``,!0),E(`div`,{id:`legend-top-${z.value}`},null,8,Re),U.value.userOptions.show&&At.value&&(I(Ht)||I(Bt))?(j(),C(I(ot),{ref_key:`userOptionsRef`,ref:wt,key:`user_option_${pt.value}`,backgroundColor:K.value.backgroundColor,color:K.value.color,isPrinting:I(qt),isImaging:I(Jt),uid:z.value,hasPdf:U.value.userOptions.buttons.pdf,hasXls:U.value.userOptions.buttons.csv,hasImg:U.value.userOptions.buttons.img,hasSvg:U.value.userOptions.buttons.svg,hasTable:U.value.userOptions.buttons.table,callbacks:U.value.userOptions.callbacks,hasFullscreen:U.value.userOptions.buttons.fullscreen,hasAltCopy:U.value.userOptions.buttons.altCopy,isFullscreen:H.value,titles:{...U.value.userOptions.buttonTitles},chartElement:B.value,position:U.value.userOptions.position,hasAnnotator:U.value.userOptions.buttons.annotator,printScale:U.value.userOptions.print.scale,isAnnotation:Tn.value,hasTooltip:K.value.tooltip.show&&U.value.userOptions.buttons.tooltip,isTooltip:J.value.showTooltip,tableDialog:U.value.table.useDialog,isCursorPointer:Nt.value,onToggleTooltip:Dn,onToggleFullscreen:jt,onGeneratePdf:I(Yt),onGenerateCsv:vn,onGenerateImage:I(Hn),onGenerateSvg:I(Vn),onToggleTable:wn,onToggleAnnotator:En,onCopyAlt:Un,style:A({visibility:I(Ht)?I(Bt)?`visible`:`hidden`:`visible`})},we({_:2},[N(I(fe)(e.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:L(n=>[P(e.$slots,t,k(O(I(pe)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasXls.hasImg.hasSvg.hasTable.callbacks.hasFullscreen.hasAltCopy.isFullscreen.titles.chartElement.position.hasAnnotator.printScale.isAnnotation.hasTooltip.isTooltip.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):w(``,!0),E(`div`,ze,[(j(),T(`svg`,{ref_key:`svgRef`,ref:q,xmlns:I(g),"aria-describedby":`chart-instructions-${z.value}`,viewBox:`0 0 ${sn.value.width} ${sn.value.height}`,class:ke({"vue-data-ui-fullscreen--on":H.value,"vue-data-ui-fulscreen--off":!H.value}),style:A({maxWidth:`100%`,overflow:`visible`,background:`transparent`,color:K.value.color}),tabindex:`0`,onFocus:qn,onBlur:Jn,onKeydown:Yn},[Ee(I(st)),P(e.$slots,`svg-underlayer`,{svg:{...sn.value,isPrintingImg:I(qt)||I(Jt)||I(zn),isPrintingSvg:I(Bn)}},void 0,!0),e.$slots[`chart-background`]?(j(),T(`foreignObject`,{key:0,x:0,y:0,width:sn.value.width,height:sn.value.height,style:{pointerEvents:`none`}},[P(e.$slots,`chart-background`,{},void 0,!0)],8,Ve)):w(``,!0),E(`defs`,null,[(j(!0),T(Se,null,N(Y.value.links,(e,t)=>(j(),T(`linearGradient`,{id:e.id,x1:`0%`,y1:`0%`,x2:`100%`,y2:`0%`},[E(`stop`,{offset:`0%`,"stop-color":e.sourceColor},null,8,Ue),E(`stop`,{offset:`100%`,"stop-color":e.targetColor},null,8,We)],8,He))),256))]),(j(!0),T(Se,null,N(Y.value.links,e=>(j(),T(`path`,{class:`vue-ui-flow-link`,d:e.path,"stroke-linejoin":`round`,"stroke-miterlimit":`1`,fill:`url(#${e.id})`,stroke:Mt.value.stroke,"stroke-width":Mt.value.strokeWidth,style:A(`
|
|
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 c,at as l,b as u,i as d,in as f,n as ee,nn as p,nt as m,r as h,t as g,w as te,zt as _}from"./lib-rPeBMZrn.js";import{n as v,t as ne}from"./BaseScanner-8NdoBs7B.js";import{n as y,t as b}from"./useHints-BH9r_0Vd.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as re}from"./useNestedProp-DnGoh-XS.js";import{t as ie}from"./useThemeCheck-BKNRbGeC.js";import{t as ae}from"./chartImage-DPGnEuYM.js";import{n as oe}from"./Title-BliHuXfT.js";import{t as se}from"./useChartExport-BZts4KFb.js";import{n as ce,t as le}from"./tableIntegration-CNoJ1CIY.js";import{n as ue,t as de}from"./annotationSlots-BRR85CqJ.js";import{n as fe,t as pe}from"./userOptionsSlots-DYuo-E5m.js";import{t as me}from"./usePrinter-sVoTzet1.js";import{c as he}from"./canvas-lib-22VpOI4_.js";import{t as ge}from"./useResponsive-CENUxfEL.js";import{t as _e}from"./A11yDataTable-DWNlWXzs.js";import{t as ve}from"./useUserOptionState-CXlFnwPv.js";import{t as ye}from"./useChartAccessibility-DOMuYJfm.js";import{t as be}from"./Legend-DM0ClX3D.js";import{t as xe}from"./vue_ui_flow-kvV56Es9.js";import{Fragment as Se,Teleport as Ce,computed as S,createBlock as C,createCommentVNode as w,createElementBlock as T,createElementVNode as E,createSlots as we,createTextVNode as Te,createVNode as Ee,defineAsyncComponent as D,guardReactiveProps as O,mergeProps as De,nextTick as Oe,normalizeClass as ke,normalizeProps as k,normalizeStyle as A,onMounted as Ae,openBlock as j,ref as M,renderList as N,renderSlot as P,resolveDynamicComponent as je,toDisplayString as F,toRefs as Me,unref as I,watch as Ne,withCtx as L}from"vue";var Pe=/* @__PURE__ */ e({default:()=>tt}),Fe=[`id`],Ie=[`id`],Le={key:2,ref:`noTitle`,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},Re=[`id`],ze={style:{position:`relative`}},Be=[`xmlns`,`aria-describedby`,`viewBox`],Ve=[`width`,`height`],He=[`id`],Ue=[`stop-color`],We=[`stop-color`],Ge=[`d`,`fill`,`stroke`,`stroke-width`],Ke=[`data-a11y-node-id`,`x`,`y`,`height`,`width`,`fill`,`stroke`,`stroke-width`,`rx`,`aria-label`,`onMouseenter`,`onMouseleave`,`onClick`],qe={key:1},Je=[`x`,`y`,`font-size`,`fill`],Ye=[`x`,`y`,`font-size`,`fill`],Xe={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},Ze={key:5,class:`vue-data-ui-watermark`},Qe=[`id`],$e=[`onClick`],et={style:{display:`flex`,"align-items":`center`}},tt=/*#__PURE__*/ x({__name:`vue-ui-flow`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`copyAlt`],setup(e,{expose:x,emit:Pe}){let tt=D(()=>import(`./Tooltip-C1q0Qoh7.js`)),nt=D(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),rt=D(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),it=D(()=>import(`./DataTable-0Vv-aGHD.js`)),at=D(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),ot=D(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),st=D(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),ct=D(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_flow:lt}=t(),{isThemeValid:ut,warnInvalidTheme:dt}=ie(),R=e,ft=Pe,z=M(s()),B=M(null),pt=M(0),mt=M(0),ht=M(!1),gt=M(``),_t=M(null),vt=M(null),yt=M(null),bt=M(null),xt=M(null),St=M(!1),Ct=M(null),wt=M(null),Tt=M(null),Et=M(null),V=M(null),Dt=M({x:0,y:0}),Ot=M(`pointer`),kt=M(!1),At=S(()=>!!R.dataset&&R.dataset.length);Ae(()=>{St.value=!0,zt()});let H=M(!1);function jt(e){H.value=e,pt.value+=1}let U=M(Ut()),W=S(()=>U.value.style.chart.nodes.labels),G=S(()=>U.value.style.chart.nodes),Mt=S(()=>U.value.style.chart.links),K=S(()=>U.value.style.chart);y({config:()=>U.value,dataset:()=>R.dataset,component:`VueUiFlow`,rules:[b.emptyArray,b.noHint]});let Nt=S(()=>U.value.userOptions.useCursorPointer),Pt=S(()=>f({defaultConfig:{userOptions:{show:!1},nodeCategories:{B:`A`,C:`B`},nodeCategoryColors:{A:`#CACACA`,B:`#AAAAAA`},table:{show:!1},style:{chart:{backgroundColor:`#99999930`,legend:{backgroundColor:`transparent`},nodes:{labels:{show:!1},stroke:`#666666`},links:{stroke:`#666666`}}}},userConfig:U.value.skeletonConfig??{}})),{loading:Ft,FINAL_DATASET:It,manualLoading:Lt}=v({...Me(R),FINAL_CONFIG:U,prepareConfig:Ut,skeletonDataset:R.config?.skeletonDataset??[[`A`,`B`,2,`#CACACA`],[`B`,`C`,1,`#CACACA`],[`C`,`D`,.5,`#CACACA`],[`E`,`F`,1,`#AAAAAA`],[`F`,`G`,.5,`#AAAAAA`],[`G`,`H`,.25,`#AAAAAA`]],skeletonConfig:f({defaultConfig:U.value,userConfig:Pt.value})}),Rt=S(()=>U.value.debug);function zt(){if(_(R.dataset)&&(l({componentName:`VueUiFlow`,type:`dataset`,debug:Rt.value}),Lt.value=!0),_(R.dataset)||(Lt.value=U.value.loading),U.value.responsive){let e=he(()=>{let{width:e,height:t}=ge({chart:B.value,title:K.value.title.text?vt.value:null,legend:K.value.legend.show?_t.value:null,source:yt.value});requestAnimationFrame(()=>{Wt.value=e,Gt.value=t})});bt.value&&(xt.value&&bt.value.unobserve(xt.value),bt.value.disconnect()),bt.value=new ResizeObserver(e),xt.value=B.value.parentNode,bt.value.observe(xt.value)}}let{userOptionsVisible:Bt,setUserOptionsVisibility:Vt,keepUserOptionState:Ht}=ve({config:U.value}),{svgRef:q}=ye({config:K.value.title});function Ut(){let e=re({userConfig:R.config,defaultConfig:lt}),t=e,n=e.theme;if(n){if(!ut.value(e))dt(e),t=e;else{let r=re({userConfig:xe[n]||R.config,defaultConfig:e});t={...re({userConfig:R.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:p[n]||a}}}else t=e;return t.nodeCategories=R.config.nodeCategories||{},t.nodeCategoryColors=R.config.nodeCategoryColors||{},t}let Wt=M(K.value.width),Gt=M(K.value.height),Kt=c(R.config);Ne(()=>R.config,(e,t)=>{let n=c(e),r=n!==Kt;Kt=n;let i=Ut();r?(Ft.value||(U.value=i),Bt.value=!U.value.userOptions.showOnChartHover,zt(),mt.value+=1,J.value.showTable=U.value.table.show):(U.value.style.chart.tooltip=i.style.chart.tooltip,J.value.showTooltip=U.value.style.chart.tooltip.show)},{deep:!0}),Ne(()=>R.dataset,e=>{Array.isArray(e)&&e.length>0&&(Lt.value=!1)},{deep:!0});let{isPrinting:qt,isImaging:Jt,generatePdf:Yt,generateImage:Xt}=me({elementId:`flow_${z.value}`,fileName:K.value.title.text||`vue-ui-flow`,options:U.value.userOptions.print}),Zt=S(()=>U.value.userOptions.show&&!K.value.title.text),Qt=S(()=>te(U.value.customPalette)),$t=S(()=>G.value.width),J=M({showTable:U.value.table.show,showTooltip:K.value.tooltip.show});Ne(U,()=>{J.value={showTable:U.value.table.show,showTooltip:K.value.tooltip.show}},{immediate:!0});let en=S(()=>!It.value||!It.value.length?[]:It.value.map((e,t)=>[e[0],e[1],u(e[2]),e[3]?o(e[3]):Qt.value[t]||Qt.value[t%Qt.value.length]||a[t]||a[t%a.length]]));function tn(e){let t={},n={};function r(e,r){t[e]||(t[e]={level:null,inflow:0,outflow:0,children:[],color:null,uid:s()}),t[e].level===null&&(t[e].level=r),n[r]||(n[r]=[]),n[r].includes(e)||n[r].push(e)}e.forEach(([e,n,i])=>{let a=t[e]?.level??0,o=a+1;r(e,a),r(n,o),t[e].children.push({target:n,value:i}),t[e].outflow+=i,t[n].inflow+=i});let i=new Set(e.map(([e])=>e)),o=new Set(e.map(([,e])=>e)),c=Array.from(i).filter(e=>!o.has(e)),l={};c.forEach((e,t)=>{l[e]=Qt.value[t]||a[t%a.length]});let d={};e.forEach(([e,t,n,r])=>{r&&(d[e]=r,d[t]=r)}),Object.keys(t).forEach((e,n)=>{let r=U.value.nodeCategories?.[e],i=r?U.value.nodeCategoryColors?.[r]:null;t[e].color=d[e]||i||(c.includes(e)?l[e]:null)||a[n%a.length]}),Object.keys(t).forEach(e=>{t[e].value=Math.max(t[e].inflow,t[e].outflow)});let f=an.value,ee=on.value.width,p=on.value.height,m=Object.keys(n).map(Number).sort((e,t)=>e-t),h=m.length||1,g=h>1?ee/(h-1):0,te=Number($t.value),_=Number(G.value.gapPx??G.value.gap??8),v=Number(G.value.minHeight||0);function ne(e){let r=n[e],i=r.length;if(!i)return 1/0;let a=Math.max(0,(i-1)*_),o=Math.max(0,p-a),s=Math.min(v,i?o/i:0),c=0,l=r.map(e=>t[e].value||0),u=l.reduce((e,t)=>e+t,0);for(let e=0;e<12;e+=1){let e=u>0?(o-c)/u:0,t=[];for(let n=0;n<l.length;n+=1){let r=l[n];r<0||r*e<s&&t.push(n)}if(!t.length)return Math.max(0,e);for(let e of t)c+=s,u-=l[e],l[e]=-1;if(u<=0)return 0}return u>0?Math.max(0,(o-c)/u):0}let y=m.map(ne),b=y.length?Math.min(...y):0,x={};m.forEach(e=>{let r=n[e],i=r.length,a=Math.max(0,(i-1)*_),o=Math.max(0,p-a),c=Math.min(v,i?o/i:0),l=r.map(e=>Math.max(c,(t[e].value||0)*b)),u=l.reduce((e,t)=>e+t,0)+a,d=Math.max(0,(p-u)/2);r.forEach((n,r)=>{let a=l[r],o=f.left+e*g,c=d;x[n]={x:o,y:c,absoluteY:c,height:a,i:r,color:t[n].color,value:t[n].value,id:s()},d+=a,r<i-1&&(d+=_)})});let re=[],ie=f.top,ae={},oe={};Object.keys(t).forEach(e=>{ae[e]=x[e]?.y??0,oe[e]=0});let se=!!Mt.value.smooth,ce=.5;return m.forEach(e=>{n[e].forEach(e=>{let n=t[e],r=x[e];if(!n.children||!n.children.length)return;let i=r.y;n.children.forEach(({target:a,value:o})=>{let c=x[a],l=t[a],d=n.outflow>0?o/n.outflow:0,f=l.inflow>0?o/l.inflow:0,ee=u(i+ie),p=u(i+d*r.height+ie),m=ae[a],h=m+f*c.height;oe[a]+=o;let g=l.inflow>0&&oe[a]>=l.inflow-1e-6,_=c.y+c.height;(g||h>_-.25)&&(h=_);let v=u(m+ie),ne=u(h+ie),y=u(r.x+te),b=u(c.x),le;if(!se||b<=y)le=`M ${y} ${ee} L ${y} ${p} L ${b} ${ne} L ${b} ${v} Z`;else{let e=b-y,t=u(y+e*ce),n=u(b-e*ce),r=ee,i=v,a=p,o=ne;le=`M ${y} ${r} C ${t} ${r}, ${n} ${i}, ${b} ${i} L ${b} ${o} C ${n} ${o}, ${t} ${a}, ${y} ${a} Z`}re.push({id:s(),source:e,target:a,path:le,value:o,sourceColor:n.color,targetColor:t[a].color}),i=p-ie,ae[a]=h})})}),{nodeCoordinates:x,links:re}}let Y=S(()=>{let e=tn(It.value);return{nodes:Object.keys(e.nodeCoordinates).map((t,n)=>({...e.nodeCoordinates[t],name:t})),links:e.links}}),nn=S(()=>Wt.value),rn=S(()=>Gt.value),an=S(()=>K.value.padding),on=S(()=>({width:Math.max(0,nn.value-40-an.value.right-an.value.left),height:Math.max(0,rn.value-an.value.top-an.value.bottom)})),sn=S(()=>({width:nn.value,height:rn.value}));function cn(e){let t={},n={},r=/* @__PURE__ */ new Set;return en.value.forEach(([e,r,i])=>{t[e]||(t[e]=[]),n[r]||(n[r]=[]),t[e].push(r),n[r].push(e)}),t[e]&&t[e].forEach(e=>r.add(e)),n[e]&&n[e].forEach(e=>r.add(e)),Array.from(r).concat(e)}let X=M(null),Z=M(null),ln=M(null),un=M(!1),dn=M(null);function fn(){dn.value=null,X.value=null,Z.value=null,ht.value=!1,Et.value=null,V.value=null}function pn(e){if(!q.value||!e)return;let t=q.value.querySelector(`[data-a11y-node-id="${e}"]`);if(!t)return;let n=t.getBoundingClientRect();Dt.value={x:n.left+n.width/2,y:n.top+n.height/2}}function mn(e,t,r=`pointer`,a=null){$.value=[],X.value=cn(e.name),Z.value=e.name,dn.value=e.id,Ot.value=r,Et.value=a,V.value=e.id;let o=e.name,s=en.value,c=0,l=0,u=[],f=[],ee=new Set(s.map(([e])=>e)),p=new Set(s.map(([,e])=>e)),m=Array.from(ee).filter(e=>!p.has(e)),h=s.filter(([e])=>m.includes(e)).reduce((e,[t,n,r])=>e+r,0),g={};Y.value.nodes.forEach(e=>{g[e.name]=e.color}),s.forEach(([e,t,n])=>{t===o&&(c+=n,u.push({source:e,value:n,color:g[e]})),e===o&&(l+=n,f.push({target:t,value:n,color:g[t]}))});let te=h>0?Math.max(c,l)/h*100:0,_={name:o,inflow:c,outflow:l,from:u,to:f,percentOfTotal:te,color:g[o]||`#000000`};U.value.events.datapointEnter&&U.value.events.datapointEnter({datapoint:_,seriesIndex:t}),ln.value={datapoint:_,config:U.value,seriesIndex:t,series:Y.value},ht.value=!0;let v=``,ne=K.value.tooltip.customFormat;if(un.value=!1,i(ne))try{let e=ne({datapoint:_,series:Y.value,config:U.value});typeof e==`string`&&(gt.value=e,un.value=!0)}catch{console.warn(`Custom format cannot be applied.`)}if(!un.value){let e=K.value.tooltip.showPercentage?`<div>${n({p:K.value.tooltip.translations.percentOfTotal,v:_.percentOfTotal,s:`%`,r:K.value.tooltip.roundingPercentage})}</div>`:``;v+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${K.value.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;"><span style="margin-right:4px; color:${_.color}">⏹</span>${_.name}${e}</div>`,_.from.length&&(v+=`<div>${K.value.tooltip.translations.from}</div>`,_.from.forEach(e=>{v+=`<div><span style="color:${e.color}">⏹←</span> ${e.source}: ${d(W.value.formatter,e.value,n({p:W.value.prefix,v:e.value,s:W.value.suffix,r:W.value.rounding}))}</div>`})),_.to.length&&(v+=`<div style="margin-top:6px;">${K.value.tooltip.translations.to}</div>`,_.to.forEach(e=>{v+=`<div><span style="color:${e.color}">⏹→</span> ${e.target}: ${d(W.value.formatter,e.value,n({p:W.value.prefix,v:e.value,s:W.value.suffix,r:W.value.rounding}))}</div>`})),gt.value=v}r===`keyboard`&&Oe(()=>{pn(e.id)})}function hn(e){let t=ln.value;U.value.events.datapointLeave&&U.value.events.datapointLeave({datapoint:t,seriesIndex:e}),!(Ot.value===`keyboard`&&V.value)&&(dn.value=null,X.value=null,Z.value=null,ht.value=!1)}function gn(e){let t=ln.value;U.value.events.datapointClick&&U.value.events.datapointClick({datapoint:t,seriesIndex:e})}let _n=S(()=>Y.value.links.map(({source:e,target:t,sourceColor:n,targetColor:r,value:i})=>({source:e,target:t,sourceColor:n,targetColor:r,value:i})));function vn(e=null){Oe(()=>{let t=_n.value.map((e,t)=>[[e.source],[e.target],[e.value]]),n=[[K.value.title.text],[K.value.title.subtitle.text],[[U.value.table.columnNames.source],[U.value.table.columnNames.target],[U.value.table.columnNames.value]]].concat(t),i=r(n);e?e(i):m({csvContent:i,title:K.value.title.text||`vue-ui-flow`})})}let yn=S(()=>{let e=[U.value.table.columnNames.source,U.value.table.columnNames.target,U.value.table.columnNames.value],t=_n.value.map((e,t)=>[{color:e.sourceColor,name:e.source,shape:`square`},{color:e.targetColor,name:e.target,shape:`square`},n({p:W.value.prefix,v:e.value,s:W.value.suffix,r:W.value.rounding})]),r={th:{backgroundColor:U.value.table.th.backgroundColor,color:U.value.table.th.color,outline:U.value.table.th.outline},td:{backgroundColor:U.value.table.td.backgroundColor,color:U.value.table.td.color,outline:U.value.table.td.outline},breakpoint:U.value.table.responsiveBreakpoint};return{colNames:[U.value.table.columnNames.source,U.value.table.columnNames.target,U.value.table.columnNames.value],head:e,body:t,config:r}}),bn=S(()=>({headers:yn.value?.colNames??[],rows:yn.value?.body??[]})),xn=S(()=>[...Y.value.nodes].map((e,t)=>({...e,index:t,centerX:e.x+$t.value/2,centerY:u(e.absoluteY)+K.value.padding.top+e.height/2})).sort((e,t)=>e.x===t.x?e.absoluteY-t.absoluteY:e.x-t.x)),Q=S(()=>{let e=[];return xn.value.forEach(t=>{let n=e.find(e=>Math.abs(e.x-t.x)<=1);n?n.nodes.push(t):e.push({x:t.x,nodes:[t]})}),e.forEach(e=>{e.nodes.sort((e,t)=>e.absoluteY-t.absoluteY)}),e.sort((e,t)=>e.x-t.x)}),Sn=S(()=>{let e=/* @__PURE__ */ new Map;return xn.value.forEach((t,n)=>{e.set(t.id,n)}),e});function Cn(){return Y.value}function wn(){J.value.showTable=!J.value.showTable}let Tn=M(!1);function En(){Tn.value=!Tn.value}function Dn(){J.value.showTooltip=!J.value.showTooltip}let On=S(()=>{let e=new Set(Y.value.nodes.map(e=>U.value.nodeCategories[e.name]||`__uncategorized__`));return Array.from(e).map(e=>({name:e,color:U.value.nodeCategoryColors[e]||a[0],shape:`square`,count:Y.value.nodes.filter(t=>(U.value.nodeCategories[t.name]||`__uncategorized__`)===e).length})).map((e,t)=>{let n=$.value.includes(t);return{...e,segregate:()=>An({legend:e,i:t}),isSegregated:n,opacity:$.value.length?n?1:.5:1,display:`${e.name} (${e.count})`}})}),kn=S(()=>On.value.filter(e=>e.name!==`__uncategorized__`)),$=M([]);function An({legend:e,i:t}){let n=e.name;X.value?.every(e=>U.value.nodeCategories[e]===n)?(X.value=null,Z.value=null,$.value=[]):($.value=[t],X.value=Y.value.nodes.filter(e=>U.value.nodeCategories[e.name]===n).map(e=>e.name),Z.value=null)}let jn=S(()=>({cy:`flow-legend`,backgroundColor:K.value.legend.backgroundColor,color:K.value.legend.color,fontSize:K.value.legend.fontSize,paddingBottom:K.value.legend.paddingBottom,fontWeight:K.value.legend.bold?`bold`:`normal`})),Mn=ae(B,()=>K.value.title.text),Nn=S(()=>le({config:U,style:K,mutableConfig:J,dialog:ct,accordion:rt,isFullscreen:H,parent:B,maxWidth:800,isCursorPointer:Nt}));Ne(()=>J.value.showTable,e=>ce(e,U,Ct));function Pn(){J.value.showTable=!1,wt.value&&wt.value.setTableIconState(!1)}let Fn=S(()=>kn.value.map(e=>({...e,name:e.display}))),In=S(()=>K.value.backgroundColor),Ln=S(()=>K.value.legend),Rn=S(()=>K.value.title),{isCallbackImaging:zn,isCallbackSvg:Bn,generateSvg:Vn,onGenerateImage:Hn}=se({svg:q,title:Rn,legend:Ln,legendItems:Fn,backgroundColor:In,getSvgCallback:()=>U.value.userOptions.callbacks.svg,generateImage:Xt});async function Un(){ft(`copyAlt`,{config:U.value,dataset:Y.value}),U.value.userOptions.callbacks.altCopy?await Promise.resolve(U.value.userOptions.callbacks.altCopy({config:U.value,dataset:Y.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function Wn(e){return Q.value.findIndex(t=>t.nodes.some(t=>t.id===e))}function Gn(e,t){let n=Q.value[e];return n?n.nodes.findIndex(e=>e.id===t):-1}function Kn(e,t){let n=Q.value[e];if(!n||!n.nodes.length)return null;let r=n.nodes[0],i=Math.abs(r.centerY-t);for(let e=1;e<n.nodes.length;e+=1){let a=n.nodes[e],o=Math.abs(a.centerY-t);o<i&&(r=a,i=o)}return r}function qn(){Et.value=null,V.value=null,kt.value=!0}function Jn(){fn(),kt.value=!1}function Yn(e){if(!q.value||Tn.value||document.activeElement!==q.value||!xn.value.length)return;let t=e.key===`ArrowLeft`,n=e.key===`ArrowRight`,r=e.key===`ArrowUp`,i=e.key===`ArrowDown`,a=e.key===`Enter`||e.key===` `,o=e.key===`Escape`;if(!t&&!n&&!r&&!i&&!a&&!o)return;if(e.preventDefault(),e.stopPropagation(),o){fn();return}if(a){if(Et.value===null)return;gn(Et.value);return}if(V.value===null){let e=Q.value[0]?.nodes?.[0];if(!e)return;let t=Sn.value.get(e.id)??0;mn(e,t,`keyboard`,t);return}let s=Sn.value.get(V.value);if(s===void 0)return;let c=xn.value[s];if(!c)return;let l=Wn(c.id);if(l<0)return;let u=null;if(r||i){let e=Gn(l,c.id);if(e<0)return;let t=Q.value[l];if(!t?.nodes?.length)return;let n=e+(i?1:-1);n<0&&(n=t.nodes.length-1),n>=t.nodes.length&&(n=0),u=t.nodes[n]}if(t||n){let e=l+(n?1:-1);e<0&&(e=Q.value.length-1),e>=Q.value.length&&(e=0),u=Kn(e,c.centerY)}if(!u)return;let d=Sn.value.get(u.id);d!==void 0&&mn(u,d,`keyboard`,d)}return x({getData:Cn,getImage:Mn,generateCsv:vn,generateImage:Xt,generateSvg:Vn,generatePdf:Yt,toggleTable:wn,toggleAnnotator:En,toggleTooltip:Dn,drillCategory:An,unselectNode:hn,toggleFullscreen:jt,copyAlt:Un}),(e,t)=>(j(),T(`div`,{ref_key:`flowChart`,ref:B,class:ke(`vue-data-ui-component vue-ui-flow ${H.value?`vue-data-ui-wrapper-fullscreen`:``}`),style:A(`font-family:${U.value.style.fontFamily};width:100%; text-align:center;background:${K.value.backgroundColor}`),id:`flow_${z.value}`,onMouseenter:t[2]||=()=>I(Vt)(!0),onMouseleave:t[3]||=()=>{I(Vt)(!1),kt.value||fn()}},[E(`div`,{id:`chart-instructions-${z.value}`,class:`sr-only`},[E(`p`,null,F(U.value.a11y.translations.keyboardNavigation),1)],8,Ie),bn.value?.rows?.length?(j(),C(_e,{key:0,uid:z.value,head:bn.value.headers,body:bn.value.rows,notice:U.value.a11y.translations.tableAvailable,caption:U.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):w(``,!0),U.value.userOptions.buttons.annotator?(j(),C(I(at),{key:1,svgRef:I(q),backgroundColor:K.value.backgroundColor,color:K.value.color,active:Tn.value,palette:U.value.userOptions.annotatorPalette,isCursorPointer:Nt.value,onClose:En},we({_:2},[N(I(de),t=>({name:t,fn:L(n=>[P(e.$slots,t,k(O(I(ue)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`palette`,`isCursorPointer`])):w(``,!0),Zt.value?(j(),T(`div`,Le,null,512)):w(``,!0),K.value.title.text?(j(),T(`div`,{key:3,ref_key:`chartTitle`,ref:vt,style:`width:100%;background:transparent;padding-bottom:24px`},[(j(),C(oe,{key:`title_${mt.value}`,config:{title:{cy:`flow-title`,...K.value.title},subtitle:{cy:`flow-subtitle`,...K.value.title.subtitle}}},null,8,[`config`]))],512)):w(``,!0),E(`div`,{id:`legend-top-${z.value}`},null,8,Re),U.value.userOptions.show&&At.value&&(I(Ht)||I(Bt))?(j(),C(I(ot),{ref_key:`userOptionsRef`,ref:wt,key:`user_option_${pt.value}`,backgroundColor:K.value.backgroundColor,color:K.value.color,isPrinting:I(qt),isImaging:I(Jt),uid:z.value,hasPdf:U.value.userOptions.buttons.pdf,hasXls:U.value.userOptions.buttons.csv,hasImg:U.value.userOptions.buttons.img,hasSvg:U.value.userOptions.buttons.svg,hasTable:U.value.userOptions.buttons.table,callbacks:U.value.userOptions.callbacks,hasFullscreen:U.value.userOptions.buttons.fullscreen,hasAltCopy:U.value.userOptions.buttons.altCopy,isFullscreen:H.value,titles:{...U.value.userOptions.buttonTitles},chartElement:B.value,position:U.value.userOptions.position,hasAnnotator:U.value.userOptions.buttons.annotator,printScale:U.value.userOptions.print.scale,isAnnotation:Tn.value,hasTooltip:K.value.tooltip.show&&U.value.userOptions.buttons.tooltip,isTooltip:J.value.showTooltip,tableDialog:U.value.table.useDialog,isCursorPointer:Nt.value,onToggleTooltip:Dn,onToggleFullscreen:jt,onGeneratePdf:I(Yt),onGenerateCsv:vn,onGenerateImage:I(Hn),onGenerateSvg:I(Vn),onToggleTable:wn,onToggleAnnotator:En,onCopyAlt:Un,style:A({visibility:I(Ht)?I(Bt)?`visible`:`hidden`:`visible`})},we({_:2},[N(I(fe)(e.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:L(n=>[P(e.$slots,t,k(O(I(pe)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasXls.hasImg.hasSvg.hasTable.callbacks.hasFullscreen.hasAltCopy.isFullscreen.titles.chartElement.position.hasAnnotator.printScale.isAnnotation.hasTooltip.isTooltip.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):w(``,!0),E(`div`,ze,[(j(),T(`svg`,{ref_key:`svgRef`,ref:q,xmlns:I(g),"aria-describedby":`chart-instructions-${z.value}`,viewBox:`0 0 ${sn.value.width} ${sn.value.height}`,class:ke({"vue-data-ui-fullscreen--on":H.value,"vue-data-ui-fulscreen--off":!H.value}),style:A({maxWidth:`100%`,overflow:`visible`,background:`transparent`,color:K.value.color}),tabindex:`0`,onFocus:qn,onBlur:Jn,onKeydown:Yn},[Ee(I(st)),P(e.$slots,`svg-underlayer`,{svg:{...sn.value,isPrintingImg:I(qt)||I(Jt)||I(zn),isPrintingSvg:I(Bn)}},void 0,!0),e.$slots[`chart-background`]?(j(),T(`foreignObject`,{key:0,x:0,y:0,width:sn.value.width,height:sn.value.height,style:{pointerEvents:`none`}},[P(e.$slots,`chart-background`,{},void 0,!0)],8,Ve)):w(``,!0),E(`defs`,null,[(j(!0),T(Se,null,N(Y.value.links,(e,t)=>(j(),T(`linearGradient`,{id:e.id,x1:`0%`,y1:`0%`,x2:`100%`,y2:`0%`},[E(`stop`,{offset:`0%`,"stop-color":e.sourceColor},null,8,Ue),E(`stop`,{offset:`100%`,"stop-color":e.targetColor},null,8,We)],8,He))),256))]),(j(!0),T(Se,null,N(Y.value.links,e=>(j(),T(`path`,{class:`vue-ui-flow-link`,d:e.path,"stroke-linejoin":`round`,"stroke-miterlimit":`1`,fill:`url(#${e.id})`,stroke:Mt.value.stroke,"stroke-width":Mt.value.strokeWidth,style:A(`
|
|
2
2
|
opacity:${X.value?X.value.includes(e.source)&&X.value.includes(e.target)?1:.3:Z.value?[e.target,e.source].includes(Z.value)?1:.3:Mt.value.opacity}
|
|
3
3
|
`)},null,12,Ge))),256)),(j(!0),T(Se,null,N(Y.value.nodes,(e,t)=>(j(),T(`rect`,{"data-a11y-node-id":e.id,class:`vue-ui-flow-node`,x:e.x,y:I(u)(e.absoluteY)+K.value.padding.top,height:I(u)(e.height),width:$t.value,fill:e.color,stroke:G.value.stroke,"stroke-width":G.value.strokeWidth,rx:G.value.borderRadius,style:A({opacity:X.value?X.value.includes(e.name)?1:.3:1,outline:dn.value!==null&&dn.value===e.id?`2px solid currentColor`:void 0}),"aria-label":`${e.name}: ${I(d)(W.value.formatter,e.value,I(n)({p:W.value.prefix,v:e.value,s:W.value.suffix,r:W.value.rounding}))}`,onMouseenter:n=>mn(e,t,`pointer`,Sn.value.get(e.id)),onMouseleave:e=>hn(t),onClick:e=>gn(t)},null,44,Ke))),256)),W.value.show?(j(),T(`g`,qe,[(j(!0),T(Se,null,N(Y.value.nodes,(e,t)=>(j(),T(`text`,{x:e.x+$t.value/2,y:(W.value.showValue?I(u)(e.absoluteY+e.height/2-W.value.fontSize/4):e.absoluteY+e.height/2+W.value.fontSize/3)+K.value.padding.top,"font-size":W.value.fontSize,fill:I(h)(e.color),"text-anchor":`middle`,style:A(`pointer-events: none; opacity:${X.value?+!!X.value.includes(e.name):1}`)},F(W.value.abbreviation.use?I(ee)({source:e.name,length:G.value.labels.abbreviation.length}):e.name),13,Je))),256)),W.value.showValue?(j(!0),T(Se,{key:0},N(Y.value.nodes,(e,t)=>(j(),T(`text`,{x:e.x+$t.value/2,y:I(u)(e.absoluteY+e.height/2+W.value.fontSize/1.3)+K.value.padding.top,"font-size":W.value.fontSize,fill:I(h)(e.color),"text-anchor":`middle`,style:A(`pointer-events: none; opacity:${X.value?+!!X.value.includes(e.name):1}`)},F(I(d)(W.value.formatter,e.value,I(n)({p:W.value.prefix,v:e.value,s:W.value.suffix,r:W.value.rounding}),{datapoint:e,seriesIndex:t})),13,Ye))),256)):w(``,!0)])):w(``,!0),P(e.$slots,`svg`,{svg:{...sn.value,isPrintingImg:I(qt)||I(Jt)||I(zn),isPrintingSvg:I(Bn)}},void 0,!0)],46,Be)),e.$slots.hint?(j(),T(`div`,Xe,[P(e.$slots,`hint`,k(O({hint:U.value.a11y.translations.keyboardNavigation,isVisible:kt.value})),void 0,!0)])):w(``,!0)]),e.$slots.watermark?(j(),T(`div`,Ze,[P(e.$slots,`watermark`,k(O({isPrinting:I(qt)||I(Jt)||I(zn)||I(Bn)})),void 0,!0)])):w(``,!0),E(`div`,{id:`legend-bottom-${z.value}`},null,8,Qe),St.value&&(K.value.legend.show||e.$slots.legend)?(j(),C(Ce,{key:6,to:K.value.legend.position===`top`?`#legend-top-${z.value}`:`#legend-bottom-${z.value}`},[E(`div`,{ref_key:`chartLegend`,ref:_t},[P(e.$slots,`legend`,{legend:On.value},()=>[K.value.legend.show&&kn.value.length?(j(),C(be,{key:0,legendSet:kn.value,config:jn.value,isCursorPointer:Nt.value,onClickMarker:t[0]||=e=>An(e)},{item:L(({legend:e,index:t})=>[I(Ft)?w(``,!0):(j(),T(`div`,{key:0,onClick:t=>e.segregate(),style:A(`opacity:${$.value.length?$.value.includes(t)?1:.5:1}`)},F(e.display),13,$e))]),_:1},8,[`legendSet`,`config`,`isCursorPointer`])):w(``,!0)],!0)],512)],8,[`to`])):w(``,!0),e.$slots.source?(j(),T(`div`,{key:7,ref_key:`source`,ref:yt,dir:`auto`},[P(e.$slots,`source`,{},void 0,!0)],512)):w(``,!0),Ee(I(tt),{ref_key:`tooltip`,ref:Tt,teleportTo:K.value.tooltip.teleportTo,show:J.value.showTooltip&&ht.value,backgroundColor:K.value.tooltip.backgroundColor,color:K.value.tooltip.color,fontSize:K.value.tooltip.fontSize,borderRadius:K.value.tooltip.borderRadius,borderColor:K.value.tooltip.borderColor,borderWidth:K.value.tooltip.borderWidth,backgroundOpacity:K.value.tooltip.backgroundOpacity,position:K.value.tooltip.position,offsetX:K.value.tooltip.offsetX,offsetY:K.value.tooltip.offsetY,parent:B.value,content:gt.value,isCustom:un.value,isFullscreen:H.value,smooth:K.value.tooltip.smooth,backdropFilter:K.value.tooltip.backdropFilter,smoothForce:K.value.tooltip.smoothForce,smoothSnapThreshold:K.value.tooltip.smoothSnapThreshold,isA11yMode:Ot.value===`keyboard`,a11yPosition:Dt.value},{"tooltip-before":L(()=>[P(e.$slots,`tooltip-before`,k(O({...ln.value})),void 0,!0)]),tooltip:L(()=>[P(e.$slots,`tooltip`,k(O({...ln.value})),void 0,!0)]),"tooltip-after":L(()=>[P(e.$slots,`tooltip-after`,k(O({...ln.value})),void 0,!0)]),_:3},8,[`teleportTo`,`show`,`backgroundColor`,`color`,`fontSize`,`borderRadius`,`borderColor`,`borderWidth`,`backgroundOpacity`,`position`,`offsetX`,`offsetY`,`parent`,`content`,`isCustom`,`isFullscreen`,`smooth`,`backdropFilter`,`smoothForce`,`smoothSnapThreshold`,`isA11yMode`,`a11yPosition`]),At.value&&U.value.userOptions.buttons.table?(j(),C(je(Nn.value.component),De({key:8},Nn.value.props,{ref_key:`tableUnit`,ref:Ct,onClose:Pn}),we({content:L(()=>[Ee(I(it),{colNames:yn.value.colNames,head:yn.value.head,body:yn.value.body,config:yn.value.config,title:U.value.table.useDialog?``:Nn.value.title,withCloseButton:!U.value.table.useDialog,isCursorPointer:Nt.value,onClose:Pn},{th:L(({th:e})=>[E(`div`,et,F(e),1)]),td:L(({td:e})=>[Te(F(e.name||e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`])]),_:2},[U.value.table.useDialog?{name:`title`,fn:L(()=>[Te(F(Nn.value.title),1)]),key:`0`}:void 0,U.value.table.useDialog?{name:`actions`,fn:L(()=>[E(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[1]||=e=>vn(U.value.userOptions.callbacks.csv),style:A({cursor:Nt.value?`pointer`:`default`})},[Ee(I(nt),{name:`fileCsv`,stroke:Nn.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):w(``,!0),P(e.$slots,`skeleton`,{},()=>[I(Ft)?(j(),C(ne,{key:0})):w(``,!0)],!0)],46,Fe))}},[[`__scopeId`,`data-v-b9e1d11c`]]);export{Pe as n,tt as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Ft as i,S as ee,X as te,at as ne,i as a,nt as re,r as ie,rn as ae,t as oe,yt as se,zt as ce}from"./lib-rPeBMZrn.js";import{n as le,t as ue}from"./useHints-BH9r_0Vd.js";import{t as de}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as fe}from"./resolveChartConfig-CIhClE5R.js";import{t as pe}from"./chartImage-DPGnEuYM.js";import{n as me}from"./Title-BliHuXfT.js";import{t as he}from"./useChartExport-BZts4KFb.js";import{n as ge,t as _e}from"./tableIntegration-CNoJ1CIY.js";import{n as ve,t as ye}from"./annotationSlots-BRR85CqJ.js";import{n as be,t as xe}from"./userOptionsSlots-DYuo-E5m.js";import{t as Se}from"./usePrinter-sVoTzet1.js";import{c as Ce}from"./canvas-lib-22VpOI4_.js";import{t as we}from"./useResponsive-CENUxfEL.js";import{t as Te}from"./DefGrad-DKMq1REY.js";import{t as Ee}from"./useUserOptionState-CXlFnwPv.js";import{t as De}from"./useChartAccessibility-DOMuYJfm.js";import{t as Oe}from"./usePrefersMotion-XLHwega2.js";import{t as ke}from"./vue_ui_funnel-CaEV5hG7.js";import{Fragment as o,computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,createElementVNode as d,createSlots as Ae,createTextVNode as je,createVNode as Me,defineAsyncComponent as f,guardReactiveProps as Ne,mergeProps as p,nextTick as Pe,normalizeClass as m,normalizeProps as Fe,normalizeStyle as h,onBeforeUnmount as Ie,onMounted as Le,openBlock as g,ref as _,renderList as v,renderSlot as y,resolveDynamicComponent as Re,shallowRef as ze,toDisplayString as b,unref as x,useCssVars as Be,watch as Ve,withCtx as S}from"vue";var He=/* @__PURE__ */ e({default:()=>C}),Ue=[`id`],We=[`xmlns`,`viewBox`],Ge=[`width`,`height`],Ke=[`stroke`,`stroke-width`],qe=[`stroke`,`stroke-width`],Je=[`x`,`y`,`font-size`,`fill`,`font-weight`],Ye=[`points`,`fill`],Xe=[`stroke`,`stroke-width`,`rx`],Ze=[`x`,`y`,`font-size`,`fill`,`font-weight`],Qe=[`x`,`y`,`font-size`,`fill`,`font-weight`],$e={key:5,class:`vue-data-ui-watermark`},et={style:{display:`flex`,"align-items":`center`}},C=/*#__PURE__*/ de({__name:`vue-ui-funnel`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`copyAlt`],setup(e,{expose:de,emit:He}){Be(e=>({db8e9076:Nt.value}));let C=f(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),tt=f(()=>import(`./vue-ui-skeleton-C5mGG8hR.js`).then(e=>e.n)),nt=f(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),rt=f(()=>import(`./DataTable-0Vv-aGHD.js`)),it=f(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),at=f(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),ot=f(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),st=f(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_funnel:ct}=t(),w=Oe(),T=e,lt=He,E=_(null),D=_(te()),ut=_(0),dt=_(0),ft=_(0),pt=_(null),mt=_(null),ht=_(null),O=ze(null),k=ze(null),A=_(!1),gt=_(null),j=_(null),M=s(()=>!!T.dataset&&T.dataset.length);Le(yt),Ie(()=>{O.value&&(k.value&&O.value.unobserve(k.value),O.value.disconnect())});function _t(){return fe(T.config,ct,ke)}let N=s({get:()=>_t(),set:e=>e}),vt=s(()=>N.value.debug),P=s(()=>N.value.style.chart.bars),F=s(()=>N.value.style.chart.circles),I=s(()=>N.value.style.chart);function yt(){if(ce(T.dataset)?ne({componentName:`VueUiFunnel`,type:`dataset`,debug:vt.value}):T.dataset.forEach((e,t)=>{se({datasetObject:e,requiredAttributes:[`name`,`value`]}).forEach(e=>{M.value=!1,ne({componentName:`VueUiFunnel`,type:`datasetSerieAttribute`,property:e,index:t,debug:vt.value})})}),N.value.responsive){let e=Ce(()=>{let{width:e,height:t}=we({chart:E.value,title:I.value.title.text?ht.value:null,source:mt.value,noTitle:pt.value});requestAnimationFrame(()=>{V.value.height=t,V.value.width=e,U.value=Ot(),N.value.responsiveProportionalSizing?(B.value.circles=ae({relator:Math.min(e,t),adjuster:600,source:F.value.dataLabels.fontSize,threshold:10,fallback:10}),B.value.names=ae({relator:Math.min(e,t),adjuster:600,source:P.value.dataLabels.name.fontSize,threshold:10,fallback:10}),B.value.values=ae({relator:Math.min(e,t),adjuster:600,source:P.value.dataLabels.value.fontSize,threshold:10,fallback:10})):(B.value.circles=F.value.dataLabels.fontSize,B.value.names=P.value.dataLabels.name.fontSize,B.value.values=P.value.dataLabels.value.fontSize)})});O.value&&(k.value&&O.value.unobserve(k.value),O.value.disconnect()),O.value=new ResizeObserver(e),k.value=E.value.parentNode,O.value.observe(k.value)}}le({config:()=>N.value,dataset:()=>T.dataset,component:`VueUiFunnel`,rules:[ue.emptyArray,{test:e=>e.length>10,message:[`👀 The dataset has a length > 10. Consider:`,``,`▶️ Aggregating some datapoints into broader categories`]}]});let bt=s(()=>N.value.userOptions.useCursorPointer),{userOptionsVisible:xt,setUserOptionsVisibility:St,keepUserOptionState:Ct}=Ee({config:N.value}),{svgRef:wt}=De({config:I.value.title});Ve(()=>T.config,e=>{N.value=_t(),xt.value=!N.value.userOptions.showOnChartHover,yt(),dt.value+=1,ft.value+=1,B.value.circles=F.value.dataLabels.fontSize,B.value.names=P.value.dataLabels.name.fontSize,B.value.values=P.value.dataLabels.value.fontSize,z.value.showTable=N.value.table.show},{deep:!0});let{isPrinting:L,isImaging:R,generatePdf:Tt,generateImage:Et}=Se({elementId:`funnel_${D.value}`,fileName:I.value.title.text||`vue-ui-funnel`,options:N.value.userOptions.print}),Dt=s(()=>N.value.userOptions.show&&!I.value.title.text),z=_({showTable:N.value.table.show}),B=_({circles:F.value.dataLabels.fontSize,names:P.value.dataLabels.name.fontSize,values:P.value.dataLabels.value.fontSize}),V=s({get:()=>({height:I.value.height,width:I.value.width}),set:e=>e}),H=s(()=>M.value?T.dataset.map((e,t)=>({...e,color:e.color?ee(e.color):i(P.value.defaultColor,t/T.dataset.length)})):[]);setTimeout(()=>{A.value=!0},H.value.length*150);function Ot(){let e=I.value.padding.left,t=I.value.padding.top;return{left:e,top:t,right:V.value.width-I.value.padding.right,bottom:V.value.height-I.value.padding.bottom,width:V.value.width-e-I.value.padding.right,height:V.value.height-t-I.value.padding.bottom}}let U=_(Ot()),W=s(()=>U.value.height/T.dataset.length),G=s(()=>W.value*P.value.gapRatio),kt=s(()=>U.value.width*I.value.barCircleSpacingRatio),K=s(()=>H.value.map((e,t)=>{let n=W.value-G.value,r=U.value.top+G.value/2*t+(W.value-G.value/2)*t+G.value/2,i=e.value/H.value[0].value,ee=(U.value.width-n-kt.value)*(e.value/H.value[0].value);return{...e,cx:U.value.left+n/2,cy:r+n/2,datapointIndex:t,fill:e.color,height:Math.max(n,0),proportion:i,r:Math.max(n/2,0),width:Math.max(ee,0),x:U.value.left+n+kt.value,y:r}})),At=s(()=>{let e=K.value.map(e=>`${e.x+e.width},${e.y+(W.value-G.value)/2}`);return`${K.value[0].x},${K.value[0].y+(W.value-G.value)/2} ${e.toString()} ${K.value.at(-1).x},${K.value.at(-1).y+(W.value-G.value)/2}`}),jt=s(()=>({x1:K.value[0].cx,y1:K.value[0].cy,x2:K.value.at(-1).cx,y2:K.value.at(-1).cy})),q=_(!1);function Mt(e){q.value=e,ut.value+=1}let Nt=s(()=>`${H.value.length*150}ms`),J=_(!1);function Pt(){J.value=!J.value}function Ft(){z.value.showTable=!z.value.showTable}let Y=s(()=>({head:H.value.map(e=>({name:e.name,color:e.color})),body:H.value.map(e=>e.value)})),X=s(()=>{let e=[N.value.table.columnNames.series,N.value.table.columnNames.value,N.value.table.columnNames.percentage],t=Y.value.head.map((e,t)=>{let r=a(P.value.dataLabels.value.formatter,Y.value.body[t],n({p:P.value.dataLabels.value.prefix,v:Y.value.body[t],s:P.value.dataLabels.value.suffix,r:N.value.table.td.roundingValue}),{datapoint:K.value[t]}),i=a(F.value.dataLabels.formatter,K.value[t].proportion*100,n({v:K.value[t].proportion*100,s:`%`,r:N.value.table.td.roundingPercentage}),{datapoint:K.value[t]});return[{color:e.color,name:e.name},r,i]}),r={th:{backgroundColor:N.value.table.th.backgroundColor,color:N.value.table.th.color,outline:N.value.table.th.outline},td:{backgroundColor:N.value.table.td.backgroundColor,color:N.value.table.td.color,outline:N.value.table.td.outline},breakpoint:N.value.table.responsiveBreakpoint};return{colNames:[N.value.table.columnNames.series,N.value.table.columnNames.value,N.value.table.columnNames.percentage],head:e,body:t,config:r}});function Z(e=null){Pe(()=>{let t=Y.value.head.map((e,t)=>[[e.name],[Y.value.body[t]],[K.value[t].proportion*100]]),n=[[I.value.title.text],[I.value.title.subtitle.text],[[N.value.table.columnNames.series],[N.value.table.columnNames.value],[`%`]]].concat(t),i=r(n);e?e(i):re({csvContent:i,title:I.value.title.text||`vue-ui-funnel`})})}function It(){return H.value}let Lt=pe(E,()=>I.value.title.text),Q=s(()=>_e({config:N,style:I,mutableConfig:z,dialog:st,accordion:nt,isFullscreen:q,parent:E,maxWidth:800}));Ve(()=>z.value.showTable,e=>ge(e,N,gt));function Rt(){z.value.showTable=!1,j.value&&j.value.setTableIconState(!1)}let zt=s(()=>I.value.backgroundColor),Bt=s(()=>I.value.title),{isCallbackImaging:Vt,isCallbackSvg:$,generateSvg:Ht,onGenerateImage:Ut}=he({svg:wt,title:Bt,legend:null,legendItems:null,backgroundColor:zt,getSvgCallback:()=>N.value.userOptions.callbacks.svg,generateImage:Et});async function Wt(){lt(`copyAlt`,{config:N.value,dataset:H.value}),N.value.userOptions.callbacks.altCopy?await Promise.resolve(N.value.userOptions.callbacks.altCopy({config:N.value,dataset:H.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}return de({getData:It,getImage:Lt,generatePdf:Tt,generateCsv:Z,generateImage:Et,generateSvg:Ht,toggleTable:Ft,toggleAnnotator:Pt,toggleFullscreen:Mt,copyAlt:Wt}),(e,t)=>(g(),u(`div`,{ref_key:`funnelChart`,ref:E,class:m(`vue-data-ui-component vue-ui-funnel ${q.value?`vue-data-ui-wrapper-fullscreen`:``} ${N.value.useCssAnimation?``:`vue-ui-dna`}`),style:h(`font-family:${N.value.style.fontFamily};width:100%; ${N.value.responsive?`height:100%;`:``} text-align:center;background:${I.value.backgroundColor}`),id:`funnel_${D.value}`,onMouseenter:t[1]||=()=>x(St)(!0),onMouseleave:t[2]||=()=>x(St)(!1)},[N.value.userOptions.buttons.annotator?(g(),c(x(at),{key:0,svgRef:x(wt),backgroundColor:I.value.backgroundColor,color:I.value.color,active:J.value,isCursorPointer:bt.value,palette:N.value.userOptions.annotatorPalette,onClose:Pt},Ae({_:2},[v(x(ye),t=>({name:t,fn:S(n=>[y(e.$slots,t,Fe(Ne(x(ve)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):l(``,!0),Dt.value?(g(),u(`div`,{key:1,ref_key:`noTitle`,ref:pt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):l(``,!0),I.value.title.text?(g(),u(`div`,{key:2,ref_key:`chartTitle`,ref:ht,style:`width:100%;background:transparent;padding-bottom:24px`},[(g(),c(me,{key:`title_${dt.value}`,config:{title:{cy:`funnel-div-title`,...I.value.title},subtitle:{cy:`funnel-div-subtitle`,...I.value.title.subtitle}}},null,8,[`config`]))],512)):l(``,!0),N.value.userOptions.show&&M.value&&(x(Ct)||x(xt))?(g(),c(x(it),{ref_key:`userOptionsRef`,ref:j,key:`user_option_${ut.value}`,backgroundColor:I.value.backgroundColor,color:I.value.color,isPrinting:x(L),isImaging:x(R),uid:D.value,hasTooltip:!1,hasPdf:N.value.userOptions.buttons.pdf,hasImg:N.value.userOptions.buttons.img,hasSvg:N.value.userOptions.buttons.svg,hasXls:N.value.userOptions.buttons.csv,hasTable:N.value.userOptions.buttons.table,hasLabel:!1,hasFullscreen:N.value.userOptions.buttons.fullscreen,hasAltCopy:N.value.userOptions.buttons.altCopy,isFullscreen:q.value,chartElement:E.value,position:N.value.userOptions.position,titles:{...N.value.userOptions.buttonTitles},hasAnnotator:N.value.userOptions.buttons.annotator,isAnnotation:J.value,callbacks:N.value.userOptions.callbacks,printScale:N.value.userOptions.print.scale,tableDialog:N.value.table.useDialog,isCursorPointer:bt.value,onToggleAnnotator:Pt,onToggleFullscreen:Mt,onGeneratePdf:x(Tt),onGenerateImage:x(Ut),onGenerateSvg:x(Ht),onToggleTable:Ft,onGenerateCsv:Z,onCopyAlt:Wt,style:h({visibility:x(Ct)?x(xt)?`visible`:`hidden`:`visible`})},Ae({_:2},[v(x(be)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:S(n=>[y(e.$slots,t,Fe(Ne(x(xe)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasFullscreen.hasAltCopy.isFullscreen.chartElement.position.titles.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):l(``,!0),M.value?(g(),u(`svg`,{key:4,ref_key:`svgRef`,ref:wt,xmlns:x(oe),class:m({"vue-data-ui-fullscreen--on":q.value,"vue-data-ui-fulscreen--off":!q.value}),viewBox:`0 0 ${V.value.width<=0?10:V.value.width} ${V.value.height<=0?10:V.value.height}`,style:h(`max-width:100%; overflow: visible; background:transparent;color:${I.value.color}`)},[Me(x(ot)),y(e.$slots,`svg-underlayer`,{svg:{...V.value,isPrintingImg:x(L)||x(R)||x(Vt),isPrintingSvg:x($)}},void 0,!0),e.$slots[`chart-background`]?(g(),u(`foreignObject`,{key:0,x:0,y:0,width:V.value.width<=0?10:V.value.width,height:V.value.height<=0?10:V.value.height,style:{pointerEvents:`none`}},[y(e.$slots,`chart-background`,{},void 0,!0)],8,Ge)):l(``,!0),d(`defs`,null,[Me(Te,{t:`linear`,id:`funnel_area_${D.value}`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`,stops:[[`0%`,I.value.backgroundColor,0],[`20%`,I.value.area.color,1],[`100%`,I.value.area.color,1]]},null,8,[`id`,`stops`])]),I.value.circleLinks.show?(g(),u(`line`,p({key:1},jt.value,{stroke:I.value.circleLinks.color,"stroke-width":12*I.value.circleLinks.widthRatio,"stroke-linecap":`round`,class:{animated:N.value.useCssAnimation&&!x(w)},style:{strokeDasharray:N.value.useCssAnimation&&!x(w)?U.value.height:0,strokeDashoffset:N.value.useCssAnimation&&!x(w)?U.value.height:0}}),null,16,Ke)):l(``,!0),(g(!0),u(o,null,v(K.value,({cx:e,cy:t,r:n,fill:r},i)=>(g(),u(`circle`,p({ref_for:!0},{cx:e,cy:t,r:n,fill:r},{stroke:F.value.stroke,"stroke-width":F.value.strokeWidth,class:{animated:N.value.useCssAnimation&&!A.value&&!x(w)},style:{animationDelay:`${150*i}ms`}}),null,16,qe))),256)),(g(!0),u(o,null,v(K.value,(e,t)=>(g(),u(`text`,{x:e.cx,y:e.cy+B.value.circles/3+F.value.dataLabels.offsetY,"text-anchor":`middle`,"font-size":B.value.circles,fill:F.value.dataLabels.adaptColorToBackground?x(ie)(e.color):F.value.dataLabels.color,"font-weight":F.value.dataLabels.bold?`bold`:`normal`,class:m({animated:N.value.useCssAnimation&&!A.value&&!x(w)}),style:h({animationDelay:`${150*t}ms`})},b(x(a)(F.value.dataLabels.formatter,e.proportion*100,x(n)({v:e.proportion*100,s:`%`,r:F.value.dataLabels.rounding}),{datapoint:e})),15,Je))),256)),I.value.area.show?(g(),u(`polygon`,{key:2,points:At.value,fill:`url(#funnel_area_${D.value})`,class:m({animated:N.value.useCssAnimation&&!A.value&&!x(w)}),style:h({transition:N.value.useCssAnimation?`all ${150*H.value.length}ms ease-in`:`none`})},null,14,Ye)):l(``,!0),(g(!0),u(o,null,v(K.value,({x:e,y:t,height:n,width:r,fill:i},ee)=>(g(),u(`rect`,p({ref_for:!0},{x:e,y:t,height:n,width:r,fill:i},{stroke:P.value.stroke,"stroke-width":P.value.strokeWidth,rx:P.value.borderRadius,class:{animated:N.value.useCssAnimation&&!A.value&&!x(w)},style:{animationDelay:`${150*ee}ms`}}),null,16,Xe))),256)),(g(!0),u(o,null,v(K.value,(e,t)=>(g(),u(`g`,null,[d(`text`,{x:e.x+e.width+P.value.dataLabels.name.offsetX+12,y:e.cy-B.value.names/2+P.value.dataLabels.name.offsetY,"text-anchor":`start`,"font-size":B.value.names,fill:P.value.dataLabels.name.color,"font-weight":P.value.dataLabels.name.bold?`bold`:`normal`,class:m({animated:N.value.useCssAnimation&&!A.value&&!x(w)}),style:h({animationDelay:`${150*t}ms`})},b(e.name),15,Ze),d(`text`,{x:e.x+e.width+P.value.dataLabels.value.offsetX+12,y:e.cy+B.value.values+P.value.dataLabels.value.offsetY,"text-anchor":`start`,"font-size":B.value.values,fill:P.value.dataLabels.value.color,"font-weight":P.value.dataLabels.value.bold?`bold`:`normal`,class:m({animated:N.value.useCssAnimation&&!A.value&&!x(w)}),style:h({animationDelay:`${150*t}ms`})},b(x(a)(P.value.dataLabels.value.formatter,e.value,x(n)({p:P.value.dataLabels.value.prefix,v:e.value,s:P.value.dataLabels.value.suffix,r:P.value.dataLabels.value.rounding}),{datapoint:e})),15,Qe)]))),256)),y(e.$slots,`svg`,{svg:{...V.value,isPrintingImg:x(L)||x(R)||x(Vt),isPrintingSvg:x($)}},void 0,!0)],14,We)):l(``,!0),e.$slots.watermark?(g(),u(`div`,$e,[y(e.$slots,`watermark`,Fe(Ne({isPrinting:x(L)||x(R)||x(Vt)||x($)})),void 0,!0)])):l(``,!0),M.value?l(``,!0):(g(),c(x(tt),{key:6,config:{type:`verticalBar`,style:{backgroundColor:I.value.backgroundColor,verticalBar:{axis:{color:`#CCCCCC`},color:`#CCCCCC`}}}},null,8,[`config`])),e.$slots.source?(g(),u(`div`,{key:7,ref_key:`source`,ref:mt,dir:`auto`},[y(e.$slots,`source`,{},void 0,!0)],512)):l(``,!0),M.value&&N.value.userOptions.buttons.table?(g(),c(Re(Q.value.component),p({key:8},Q.value.props,{ref_key:`tableUnit`,ref:gt,onClose:Rt}),Ae({content:S(()=>[(g(),c(x(rt),{key:`table_${ft.value}`,colNames:X.value.colNames,head:X.value.head,body:X.value.body,config:X.value.config,title:N.value.table.useDialog?``:Q.value.title,withCloseButton:!N.value.table.useDialog,onClose:Rt},{th:S(({th:e})=>[d(`div`,et,b(e),1)]),td:S(({td:e})=>[je(b(e.name?e.name:e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`]))]),_:2},[N.value.table.useDialog?{name:`title`,fn:S(()=>[je(b(Q.value.title),1)]),key:`0`}:void 0,N.value.table.useDialog?{name:`actions`,fn:S(()=>[d(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[0]||=e=>Z(N.value.userOptions.callbacks.csv)},[Me(x(C),{name:`fileCsv`,stroke:Q.value.props.color},null,8,[`stroke`])])]),key:`1`}:void 0]),1040)):l(``,!0)],46,Ue))}},[[`__scopeId`,`data-v-f4cee15a`]]);export{He as n,C as t};
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Ft as i,S as ee,X as te,at as ne,i as a,nt as re,r as ie,rn as ae,t as oe,yt as se,zt as ce}from"./lib-rPeBMZrn.js";import{n as le,t as ue}from"./useHints-BH9r_0Vd.js";import{t as de}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as fe}from"./resolveChartConfig-CIhClE5R.js";import{t as pe}from"./chartImage-DPGnEuYM.js";import{n as me}from"./Title-BliHuXfT.js";import{t as he}from"./useChartExport-BZts4KFb.js";import{n as ge,t as _e}from"./tableIntegration-CNoJ1CIY.js";import{n as ve,t as ye}from"./annotationSlots-BRR85CqJ.js";import{n as be,t as xe}from"./userOptionsSlots-DYuo-E5m.js";import{t as Se}from"./usePrinter-sVoTzet1.js";import{c as Ce}from"./canvas-lib-22VpOI4_.js";import{t as we}from"./useResponsive-CENUxfEL.js";import{t as Te}from"./DefGrad-DKMq1REY.js";import{t as Ee}from"./useUserOptionState-CXlFnwPv.js";import{t as De}from"./useChartAccessibility-DOMuYJfm.js";import{t as Oe}from"./usePrefersMotion-XLHwega2.js";import{t as ke}from"./vue_ui_funnel-CaEV5hG7.js";import{Fragment as o,computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,createElementVNode as d,createSlots as Ae,createTextVNode as je,createVNode as Me,defineAsyncComponent as f,guardReactiveProps as Ne,mergeProps as p,nextTick as Pe,normalizeClass as m,normalizeProps as Fe,normalizeStyle as h,onBeforeUnmount as Ie,onMounted as Le,openBlock as g,ref as _,renderList as v,renderSlot as y,resolveDynamicComponent as Re,shallowRef as ze,toDisplayString as b,unref as x,useCssVars as Be,watch as Ve,withCtx as S}from"vue";var He=/* @__PURE__ */ e({default:()=>C}),Ue=[`id`],We=[`xmlns`,`viewBox`],Ge=[`width`,`height`],Ke=[`stroke`,`stroke-width`],qe=[`stroke`,`stroke-width`],Je=[`x`,`y`,`font-size`,`fill`,`font-weight`],Ye=[`points`,`fill`],Xe=[`stroke`,`stroke-width`,`rx`],Ze=[`x`,`y`,`font-size`,`fill`,`font-weight`],Qe=[`x`,`y`,`font-size`,`fill`,`font-weight`],$e={key:5,class:`vue-data-ui-watermark`},et={style:{display:`flex`,"align-items":`center`}},C=/*#__PURE__*/ de({__name:`vue-ui-funnel`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`copyAlt`],setup(e,{expose:de,emit:He}){Be(e=>({db8e9076:Nt.value}));let C=f(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),tt=f(()=>import(`./vue-ui-skeleton-DqmhigQ0.js`).then(e=>e.n)),nt=f(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),rt=f(()=>import(`./DataTable-0Vv-aGHD.js`)),it=f(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),at=f(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),ot=f(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),st=f(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_funnel:ct}=t(),w=Oe(),T=e,lt=He,E=_(null),D=_(te()),ut=_(0),dt=_(0),ft=_(0),pt=_(null),mt=_(null),ht=_(null),O=ze(null),k=ze(null),A=_(!1),gt=_(null),j=_(null),M=s(()=>!!T.dataset&&T.dataset.length);Le(yt),Ie(()=>{O.value&&(k.value&&O.value.unobserve(k.value),O.value.disconnect())});function _t(){return fe(T.config,ct,ke)}let N=s({get:()=>_t(),set:e=>e}),vt=s(()=>N.value.debug),P=s(()=>N.value.style.chart.bars),F=s(()=>N.value.style.chart.circles),I=s(()=>N.value.style.chart);function yt(){if(ce(T.dataset)?ne({componentName:`VueUiFunnel`,type:`dataset`,debug:vt.value}):T.dataset.forEach((e,t)=>{se({datasetObject:e,requiredAttributes:[`name`,`value`]}).forEach(e=>{M.value=!1,ne({componentName:`VueUiFunnel`,type:`datasetSerieAttribute`,property:e,index:t,debug:vt.value})})}),N.value.responsive){let e=Ce(()=>{let{width:e,height:t}=we({chart:E.value,title:I.value.title.text?ht.value:null,source:mt.value,noTitle:pt.value});requestAnimationFrame(()=>{V.value.height=t,V.value.width=e,U.value=Ot(),N.value.responsiveProportionalSizing?(B.value.circles=ae({relator:Math.min(e,t),adjuster:600,source:F.value.dataLabels.fontSize,threshold:10,fallback:10}),B.value.names=ae({relator:Math.min(e,t),adjuster:600,source:P.value.dataLabels.name.fontSize,threshold:10,fallback:10}),B.value.values=ae({relator:Math.min(e,t),adjuster:600,source:P.value.dataLabels.value.fontSize,threshold:10,fallback:10})):(B.value.circles=F.value.dataLabels.fontSize,B.value.names=P.value.dataLabels.name.fontSize,B.value.values=P.value.dataLabels.value.fontSize)})});O.value&&(k.value&&O.value.unobserve(k.value),O.value.disconnect()),O.value=new ResizeObserver(e),k.value=E.value.parentNode,O.value.observe(k.value)}}le({config:()=>N.value,dataset:()=>T.dataset,component:`VueUiFunnel`,rules:[ue.emptyArray,{test:e=>e.length>10,message:[`👀 The dataset has a length > 10. Consider:`,``,`▶️ Aggregating some datapoints into broader categories`]}]});let bt=s(()=>N.value.userOptions.useCursorPointer),{userOptionsVisible:xt,setUserOptionsVisibility:St,keepUserOptionState:Ct}=Ee({config:N.value}),{svgRef:wt}=De({config:I.value.title});Ve(()=>T.config,e=>{N.value=_t(),xt.value=!N.value.userOptions.showOnChartHover,yt(),dt.value+=1,ft.value+=1,B.value.circles=F.value.dataLabels.fontSize,B.value.names=P.value.dataLabels.name.fontSize,B.value.values=P.value.dataLabels.value.fontSize,z.value.showTable=N.value.table.show},{deep:!0});let{isPrinting:L,isImaging:R,generatePdf:Tt,generateImage:Et}=Se({elementId:`funnel_${D.value}`,fileName:I.value.title.text||`vue-ui-funnel`,options:N.value.userOptions.print}),Dt=s(()=>N.value.userOptions.show&&!I.value.title.text),z=_({showTable:N.value.table.show}),B=_({circles:F.value.dataLabels.fontSize,names:P.value.dataLabels.name.fontSize,values:P.value.dataLabels.value.fontSize}),V=s({get:()=>({height:I.value.height,width:I.value.width}),set:e=>e}),H=s(()=>M.value?T.dataset.map((e,t)=>({...e,color:e.color?ee(e.color):i(P.value.defaultColor,t/T.dataset.length)})):[]);setTimeout(()=>{A.value=!0},H.value.length*150);function Ot(){let e=I.value.padding.left,t=I.value.padding.top;return{left:e,top:t,right:V.value.width-I.value.padding.right,bottom:V.value.height-I.value.padding.bottom,width:V.value.width-e-I.value.padding.right,height:V.value.height-t-I.value.padding.bottom}}let U=_(Ot()),W=s(()=>U.value.height/T.dataset.length),G=s(()=>W.value*P.value.gapRatio),kt=s(()=>U.value.width*I.value.barCircleSpacingRatio),K=s(()=>H.value.map((e,t)=>{let n=W.value-G.value,r=U.value.top+G.value/2*t+(W.value-G.value/2)*t+G.value/2,i=e.value/H.value[0].value,ee=(U.value.width-n-kt.value)*(e.value/H.value[0].value);return{...e,cx:U.value.left+n/2,cy:r+n/2,datapointIndex:t,fill:e.color,height:Math.max(n,0),proportion:i,r:Math.max(n/2,0),width:Math.max(ee,0),x:U.value.left+n+kt.value,y:r}})),At=s(()=>{let e=K.value.map(e=>`${e.x+e.width},${e.y+(W.value-G.value)/2}`);return`${K.value[0].x},${K.value[0].y+(W.value-G.value)/2} ${e.toString()} ${K.value.at(-1).x},${K.value.at(-1).y+(W.value-G.value)/2}`}),jt=s(()=>({x1:K.value[0].cx,y1:K.value[0].cy,x2:K.value.at(-1).cx,y2:K.value.at(-1).cy})),q=_(!1);function Mt(e){q.value=e,ut.value+=1}let Nt=s(()=>`${H.value.length*150}ms`),J=_(!1);function Pt(){J.value=!J.value}function Ft(){z.value.showTable=!z.value.showTable}let Y=s(()=>({head:H.value.map(e=>({name:e.name,color:e.color})),body:H.value.map(e=>e.value)})),X=s(()=>{let e=[N.value.table.columnNames.series,N.value.table.columnNames.value,N.value.table.columnNames.percentage],t=Y.value.head.map((e,t)=>{let r=a(P.value.dataLabels.value.formatter,Y.value.body[t],n({p:P.value.dataLabels.value.prefix,v:Y.value.body[t],s:P.value.dataLabels.value.suffix,r:N.value.table.td.roundingValue}),{datapoint:K.value[t]}),i=a(F.value.dataLabels.formatter,K.value[t].proportion*100,n({v:K.value[t].proportion*100,s:`%`,r:N.value.table.td.roundingPercentage}),{datapoint:K.value[t]});return[{color:e.color,name:e.name},r,i]}),r={th:{backgroundColor:N.value.table.th.backgroundColor,color:N.value.table.th.color,outline:N.value.table.th.outline},td:{backgroundColor:N.value.table.td.backgroundColor,color:N.value.table.td.color,outline:N.value.table.td.outline},breakpoint:N.value.table.responsiveBreakpoint};return{colNames:[N.value.table.columnNames.series,N.value.table.columnNames.value,N.value.table.columnNames.percentage],head:e,body:t,config:r}});function Z(e=null){Pe(()=>{let t=Y.value.head.map((e,t)=>[[e.name],[Y.value.body[t]],[K.value[t].proportion*100]]),n=[[I.value.title.text],[I.value.title.subtitle.text],[[N.value.table.columnNames.series],[N.value.table.columnNames.value],[`%`]]].concat(t),i=r(n);e?e(i):re({csvContent:i,title:I.value.title.text||`vue-ui-funnel`})})}function It(){return H.value}let Lt=pe(E,()=>I.value.title.text),Q=s(()=>_e({config:N,style:I,mutableConfig:z,dialog:st,accordion:nt,isFullscreen:q,parent:E,maxWidth:800}));Ve(()=>z.value.showTable,e=>ge(e,N,gt));function Rt(){z.value.showTable=!1,j.value&&j.value.setTableIconState(!1)}let zt=s(()=>I.value.backgroundColor),Bt=s(()=>I.value.title),{isCallbackImaging:Vt,isCallbackSvg:$,generateSvg:Ht,onGenerateImage:Ut}=he({svg:wt,title:Bt,legend:null,legendItems:null,backgroundColor:zt,getSvgCallback:()=>N.value.userOptions.callbacks.svg,generateImage:Et});async function Wt(){lt(`copyAlt`,{config:N.value,dataset:H.value}),N.value.userOptions.callbacks.altCopy?await Promise.resolve(N.value.userOptions.callbacks.altCopy({config:N.value,dataset:H.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}return de({getData:It,getImage:Lt,generatePdf:Tt,generateCsv:Z,generateImage:Et,generateSvg:Ht,toggleTable:Ft,toggleAnnotator:Pt,toggleFullscreen:Mt,copyAlt:Wt}),(e,t)=>(g(),u(`div`,{ref_key:`funnelChart`,ref:E,class:m(`vue-data-ui-component vue-ui-funnel ${q.value?`vue-data-ui-wrapper-fullscreen`:``} ${N.value.useCssAnimation?``:`vue-ui-dna`}`),style:h(`font-family:${N.value.style.fontFamily};width:100%; ${N.value.responsive?`height:100%;`:``} text-align:center;background:${I.value.backgroundColor}`),id:`funnel_${D.value}`,onMouseenter:t[1]||=()=>x(St)(!0),onMouseleave:t[2]||=()=>x(St)(!1)},[N.value.userOptions.buttons.annotator?(g(),c(x(at),{key:0,svgRef:x(wt),backgroundColor:I.value.backgroundColor,color:I.value.color,active:J.value,isCursorPointer:bt.value,palette:N.value.userOptions.annotatorPalette,onClose:Pt},Ae({_:2},[v(x(ye),t=>({name:t,fn:S(n=>[y(e.$slots,t,Fe(Ne(x(ve)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):l(``,!0),Dt.value?(g(),u(`div`,{key:1,ref_key:`noTitle`,ref:pt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):l(``,!0),I.value.title.text?(g(),u(`div`,{key:2,ref_key:`chartTitle`,ref:ht,style:`width:100%;background:transparent;padding-bottom:24px`},[(g(),c(me,{key:`title_${dt.value}`,config:{title:{cy:`funnel-div-title`,...I.value.title},subtitle:{cy:`funnel-div-subtitle`,...I.value.title.subtitle}}},null,8,[`config`]))],512)):l(``,!0),N.value.userOptions.show&&M.value&&(x(Ct)||x(xt))?(g(),c(x(it),{ref_key:`userOptionsRef`,ref:j,key:`user_option_${ut.value}`,backgroundColor:I.value.backgroundColor,color:I.value.color,isPrinting:x(L),isImaging:x(R),uid:D.value,hasTooltip:!1,hasPdf:N.value.userOptions.buttons.pdf,hasImg:N.value.userOptions.buttons.img,hasSvg:N.value.userOptions.buttons.svg,hasXls:N.value.userOptions.buttons.csv,hasTable:N.value.userOptions.buttons.table,hasLabel:!1,hasFullscreen:N.value.userOptions.buttons.fullscreen,hasAltCopy:N.value.userOptions.buttons.altCopy,isFullscreen:q.value,chartElement:E.value,position:N.value.userOptions.position,titles:{...N.value.userOptions.buttonTitles},hasAnnotator:N.value.userOptions.buttons.annotator,isAnnotation:J.value,callbacks:N.value.userOptions.callbacks,printScale:N.value.userOptions.print.scale,tableDialog:N.value.table.useDialog,isCursorPointer:bt.value,onToggleAnnotator:Pt,onToggleFullscreen:Mt,onGeneratePdf:x(Tt),onGenerateImage:x(Ut),onGenerateSvg:x(Ht),onToggleTable:Ft,onGenerateCsv:Z,onCopyAlt:Wt,style:h({visibility:x(Ct)?x(xt)?`visible`:`hidden`:`visible`})},Ae({_:2},[v(x(be)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:S(n=>[y(e.$slots,t,Fe(Ne(x(xe)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasFullscreen.hasAltCopy.isFullscreen.chartElement.position.titles.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):l(``,!0),M.value?(g(),u(`svg`,{key:4,ref_key:`svgRef`,ref:wt,xmlns:x(oe),class:m({"vue-data-ui-fullscreen--on":q.value,"vue-data-ui-fulscreen--off":!q.value}),viewBox:`0 0 ${V.value.width<=0?10:V.value.width} ${V.value.height<=0?10:V.value.height}`,style:h(`max-width:100%; overflow: visible; background:transparent;color:${I.value.color}`)},[Me(x(ot)),y(e.$slots,`svg-underlayer`,{svg:{...V.value,isPrintingImg:x(L)||x(R)||x(Vt),isPrintingSvg:x($)}},void 0,!0),e.$slots[`chart-background`]?(g(),u(`foreignObject`,{key:0,x:0,y:0,width:V.value.width<=0?10:V.value.width,height:V.value.height<=0?10:V.value.height,style:{pointerEvents:`none`}},[y(e.$slots,`chart-background`,{},void 0,!0)],8,Ge)):l(``,!0),d(`defs`,null,[Me(Te,{t:`linear`,id:`funnel_area_${D.value}`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`,stops:[[`0%`,I.value.backgroundColor,0],[`20%`,I.value.area.color,1],[`100%`,I.value.area.color,1]]},null,8,[`id`,`stops`])]),I.value.circleLinks.show?(g(),u(`line`,p({key:1},jt.value,{stroke:I.value.circleLinks.color,"stroke-width":12*I.value.circleLinks.widthRatio,"stroke-linecap":`round`,class:{animated:N.value.useCssAnimation&&!x(w)},style:{strokeDasharray:N.value.useCssAnimation&&!x(w)?U.value.height:0,strokeDashoffset:N.value.useCssAnimation&&!x(w)?U.value.height:0}}),null,16,Ke)):l(``,!0),(g(!0),u(o,null,v(K.value,({cx:e,cy:t,r:n,fill:r},i)=>(g(),u(`circle`,p({ref_for:!0},{cx:e,cy:t,r:n,fill:r},{stroke:F.value.stroke,"stroke-width":F.value.strokeWidth,class:{animated:N.value.useCssAnimation&&!A.value&&!x(w)},style:{animationDelay:`${150*i}ms`}}),null,16,qe))),256)),(g(!0),u(o,null,v(K.value,(e,t)=>(g(),u(`text`,{x:e.cx,y:e.cy+B.value.circles/3+F.value.dataLabels.offsetY,"text-anchor":`middle`,"font-size":B.value.circles,fill:F.value.dataLabels.adaptColorToBackground?x(ie)(e.color):F.value.dataLabels.color,"font-weight":F.value.dataLabels.bold?`bold`:`normal`,class:m({animated:N.value.useCssAnimation&&!A.value&&!x(w)}),style:h({animationDelay:`${150*t}ms`})},b(x(a)(F.value.dataLabels.formatter,e.proportion*100,x(n)({v:e.proportion*100,s:`%`,r:F.value.dataLabels.rounding}),{datapoint:e})),15,Je))),256)),I.value.area.show?(g(),u(`polygon`,{key:2,points:At.value,fill:`url(#funnel_area_${D.value})`,class:m({animated:N.value.useCssAnimation&&!A.value&&!x(w)}),style:h({transition:N.value.useCssAnimation?`all ${150*H.value.length}ms ease-in`:`none`})},null,14,Ye)):l(``,!0),(g(!0),u(o,null,v(K.value,({x:e,y:t,height:n,width:r,fill:i},ee)=>(g(),u(`rect`,p({ref_for:!0},{x:e,y:t,height:n,width:r,fill:i},{stroke:P.value.stroke,"stroke-width":P.value.strokeWidth,rx:P.value.borderRadius,class:{animated:N.value.useCssAnimation&&!A.value&&!x(w)},style:{animationDelay:`${150*ee}ms`}}),null,16,Xe))),256)),(g(!0),u(o,null,v(K.value,(e,t)=>(g(),u(`g`,null,[d(`text`,{x:e.x+e.width+P.value.dataLabels.name.offsetX+12,y:e.cy-B.value.names/2+P.value.dataLabels.name.offsetY,"text-anchor":`start`,"font-size":B.value.names,fill:P.value.dataLabels.name.color,"font-weight":P.value.dataLabels.name.bold?`bold`:`normal`,class:m({animated:N.value.useCssAnimation&&!A.value&&!x(w)}),style:h({animationDelay:`${150*t}ms`})},b(e.name),15,Ze),d(`text`,{x:e.x+e.width+P.value.dataLabels.value.offsetX+12,y:e.cy+B.value.values+P.value.dataLabels.value.offsetY,"text-anchor":`start`,"font-size":B.value.values,fill:P.value.dataLabels.value.color,"font-weight":P.value.dataLabels.value.bold?`bold`:`normal`,class:m({animated:N.value.useCssAnimation&&!A.value&&!x(w)}),style:h({animationDelay:`${150*t}ms`})},b(x(a)(P.value.dataLabels.value.formatter,e.value,x(n)({p:P.value.dataLabels.value.prefix,v:e.value,s:P.value.dataLabels.value.suffix,r:P.value.dataLabels.value.rounding}),{datapoint:e})),15,Qe)]))),256)),y(e.$slots,`svg`,{svg:{...V.value,isPrintingImg:x(L)||x(R)||x(Vt),isPrintingSvg:x($)}},void 0,!0)],14,We)):l(``,!0),e.$slots.watermark?(g(),u(`div`,$e,[y(e.$slots,`watermark`,Fe(Ne({isPrinting:x(L)||x(R)||x(Vt)||x($)})),void 0,!0)])):l(``,!0),M.value?l(``,!0):(g(),c(x(tt),{key:6,config:{type:`verticalBar`,style:{backgroundColor:I.value.backgroundColor,verticalBar:{axis:{color:`#CCCCCC`},color:`#CCCCCC`}}}},null,8,[`config`])),e.$slots.source?(g(),u(`div`,{key:7,ref_key:`source`,ref:mt,dir:`auto`},[y(e.$slots,`source`,{},void 0,!0)],512)):l(``,!0),M.value&&N.value.userOptions.buttons.table?(g(),c(Re(Q.value.component),p({key:8},Q.value.props,{ref_key:`tableUnit`,ref:gt,onClose:Rt}),Ae({content:S(()=>[(g(),c(x(rt),{key:`table_${ft.value}`,colNames:X.value.colNames,head:X.value.head,body:X.value.body,config:X.value.config,title:N.value.table.useDialog?``:Q.value.title,withCloseButton:!N.value.table.useDialog,onClose:Rt},{th:S(({th:e})=>[d(`div`,et,b(e),1)]),td:S(({td:e})=>[je(b(e.name?e.name:e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`]))]),_:2},[N.value.table.useDialog?{name:`title`,fn:S(()=>[je(b(Q.value.title),1)]),key:`0`}:void 0,N.value.table.useDialog?{name:`actions`,fn:S(()=>[d(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[0]||=e=>Z(N.value.userOptions.callbacks.csv)},[Me(x(C),{name:`fileCsv`,stroke:Q.value.props.color},null,8,[`stroke`])])]),key:`1`}:void 0]),1040)):l(``,!0)],46,Ue))}},[[`__scopeId`,`data-v-f4cee15a`]]);export{He as n,C as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Dt as i,Ht as a,Kt as o,S as ee,X as s,Zt as c,at as te,i as ne,in as re,nt as ie,pt as ae,t as oe,w as se,yt as ce,z 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-BH9r_0Vd.js";import{t as he}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as ge}from"./resolveChartConfig-CIhClE5R.js";import{t as _e}from"./chartImage-DPGnEuYM.js";import{n as ve}from"./Title-BliHuXfT.js";import{t as ye}from"./useChartExport-BZts4KFb.js";import{n as be,t as xe}from"./tableIntegration-CNoJ1CIY.js";import{n as Se,t as Ce}from"./annotationSlots-BRR85CqJ.js";import{n as we,t as Te}from"./userOptionsSlots-DYuo-E5m.js";import{t as Ee}from"./usePrinter-sVoTzet1.js";import{t as De}from"./useTransitions-ChGGrtrv.js";import{c as Oe}from"./canvas-lib-22VpOI4_.js";import{t as ke}from"./useResponsive-CENUxfEL.js";import{t as Ae}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as je}from"./A11yDataTable-DWNlWXzs.js";import{t as Me}from"./useUserOptionState-CXlFnwPv.js";import{t as Ne}from"./useChartAccessibility-DOMuYJfm.js";import{t as Pe}from"./labelUtils-CdtU-yB_.js";import{t as Fe}from"./Legend-DM0ClX3D.js";import{t as Ie}from"./vue_ui_galaxy-B94QInxc.js";import{Fragment as Le,Teleport as Re,computed as l,createBlock as u,createCommentVNode as d,createElementBlock as f,createElementVNode as p,createSlots as ze,createTextVNode as Be,createVNode as Ve,defineAsyncComponent as m,guardReactiveProps as h,mergeProps as He,nextTick as Ue,normalizeClass as g,normalizeProps as _,normalizeStyle as v,onMounted as We,openBlock as y,ref as b,renderList as Ge,renderSlot as x,resolveDynamicComponent as Ke,toDisplayString as S,toRefs as qe,unref as C,watch as Je,withCtx as w}from"vue";var Ye=/* @__PURE__ */ e({default:()=>ht}),Xe=[`id`],Ze=[`id`],Qe=[`id`],$e={style:{position:`relative`}},et=[`xmlns`,`aria-describedby`,`viewBox`],tt=[`width`,`height`],nt=[`id`],rt=[`stdDeviation`],it=[`d`,`stroke`,`stroke-width`],at=[`d`,`stroke`,`stroke-width`],ot=[`filter`],st=[`d`,`stroke`,`stroke-width`],ct=[`data-a11y-serie-id`,`d`,`stroke-width`,`aria-label`,`onMouseenter`,`onMouseleave`,`onClick`],lt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},ut={key:5,class:`vue-data-ui-watermark`},dt=[`id`],ft=[`onClick`],pt={key:0},mt={key:1},ht=/*#__PURE__*/ he({__name:`vue-ui-galaxy`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`selectDatapoint`,`copyAlt`],setup(e,{expose:he,emit:Ye}){let ht=m(()=>import(`./Tooltip-C1q0Qoh7.js`)),gt=m(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),_t=m(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),vt=m(()=>import(`./DataTable-0Vv-aGHD.js`)),yt=m(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),bt=m(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),xt=m(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),St=m(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_galaxy:Ct}=t(),T=e,E=b(s()),D=b(null),O=b(!1),wt=b(``),k=b(null),Tt=b(0),Et=b(0),Dt=b(0),Ot=b(0),kt=b(null),At=b(null),jt=b(null),Mt=b(null),A=b(null),Nt=b(null),Pt=b(!1),Ft=b(null),It=b(null),j=b(null),Lt=b(null),Rt=b({x:0,y:0}),zt=b(`pointer`),Bt=b(!1),Vt=l(()=>!!T.dataset&&T.dataset.length),M=b(Zt()),N=l(()=>M.value.style.chart.layout.arcs),P=l(()=>M.value.style.chart.layout),F=l(()=>M.value.style.chart);pe({config:()=>M.value,dataset:()=>T.dataset,component:`VueUiGalaxy`,rules:[me.singleSeries,me.emptyArray,{test:e=>e.length>6,message:[`👀 The number of series is > 6. Consider:`,``,`▶️ Grouping small values dynamically into a single "Other" series.`,``,`▶️ Using filters to let users choose a maximum number of series to display.`,``,`▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read.`]}]});let{transitionEnabled:Ht}=De({config:()=>M.value.transitions,dataset:()=>T.dataset}),I=l(()=>M.value.userOptions.useCursorPointer),Ut=l(()=>re({defaultConfig:{userOptions:{show:!1},table:{show:!1},useCssAnimation:!1,style:{chart:{backgroundColor:`#99999930`,legend:{backgroundColor:`transparent`}}}},userConfig:M.value.skeletonConfig??{}})),{loading:Wt,FINAL_DATASET:Gt}=de({...qe(T),FINAL_CONFIG:M,prepareConfig:Zt,callback:()=>{Promise.resolve().then(async()=>{await Ue(),B.value.showTable=M.value.table.show})},skeletonDataset:T.config?.skeletonDataset??[{name:`_`,values:[21],color:`#DBDBDB`},{name:`_`,values:[13],color:`#C4C4C4`},{name:`_`,values:[8],color:`#ADADAD`}],skeletonConfig:re({defaultConfig:M.value,userConfig:Ut.value})});We(()=>{Pt.value=!0,qt()});let Kt=l(()=>M.value.debug);function qt(){if(ue(T.dataset)?te({componentName:`VueUiGalaxy`,type:`dataset`,debug:Kt.value}):Kt.value&&T.dataset.forEach((e,t)=>{ce({datasetObject:e,requiredAttributes:[`name`,`values`]}).forEach(e=>{te({componentName:`VueUiGalaxy`,type:`datasetSerieAttribute`,property:e,index:t})})}),M.value.responsive){let e=Oe(()=>{let{width:e,height:t}=ke({chart:D.value,title:F.value.title.text?kt.value:null,legend:F.value.legend.show?At.value:null,noTitle:Mt.value,source:jt.value});requestAnimationFrame(()=>{rn.value=Math.max(.1,e),an.value=Math.max(.1,t-12)})});A.value&&(Nt.value&&A.value.unobserve(Nt.value),A.value.disconnect()),A.value=new ResizeObserver(e),Nt.value=D.value.parentNode,A.value.observe(Nt.value)}}let{userOptionsVisible:Jt,setUserOptionsVisibility:Yt,keepUserOptionState:Xt}=Me({config:M.value}),{svgRef:L}=Ne({config:F.value.title});function Zt(){return ge(T.config,Ct,Ie)}let Qt=c(T.config);Je(()=>T.config,(e,t)=>{let n=c(e),r=n!==Qt;Qt=n;let i=Zt();r?(M.value=i,Jt.value=!M.value.userOptions.showOnChartHover,qt(),Et.value+=1,Dt.value+=1,Ot.value+=1,B.value.dataLabels.show=P.value.labels.dataLabels.show,B.value.showTable=M.value.table.show,B.value.showTooltip=F.value.tooltip.show):(M.value.style.chart.tooltip=i.style.chart.tooltip,B.value.showTooltip=M.value.style.chart.tooltip.show)},{deep:!0});let{isPrinting:R,isImaging:z,generatePdf:$t,generateImage:en}=Ee({elementId:`galaxy_${E.value}`,fileName:F.value.title.text||`vue-ui-galaxy`,options:M.value.userOptions.print}),tn=l(()=>M.value.userOptions.show&&!F.value.title.text),nn=l(()=>se(M.value.customPalette)),B=b({dataLabels:{show:P.value.labels.dataLabels.show},showTable:M.value.table.show,showTooltip:F.value.tooltip.show}),rn=b(250),an=b(180),on=b(0),sn=b(0),V=l(()=>({width:rn.value,height:an.value,viewBox:`${on.value} ${sn.value} ${rn.value} ${an.value}`})),cn=Ye,H=b([]);function ln(){cn(`selectLegend`,K.value.map(e=>({name:e.name,color:e.color,value:e.value})))}function un(){H.value.length?H.value=[]:J.value.forEach(e=>{H.value.push(e.id)}),ln()}function U(e){H.value.includes(e.id)?H.value=H.value.filter(t=>t!==e.id):H.value.push(e.id),ln()}function dn(e){return W.value.length?W.value.find(t=>t.name===e)||(Kt.value&&console.warn(`VueUiGalaxy - Series name not found "${e}"`),null):(Kt.value&&console.warn(`VueUiGalaxy - There are no series to show.`),null)}function fn(e){let t=dn(e);t!==null&&H.value.includes(t.id)&&U({id:t.id})}function pn(e){let t=dn(e);t!==null&&(H.value.includes(t.id)||U({id:t.id}))}let W=l(()=>Gt.value.map((e,t)=>({name:e.name,color:ee(e.color)||nn.value[t]||a[t]||a[t%a.length],value:e.values?o(e.values).reduce((e,t)=>e+t,0):0,absoluteValues:o(e.values),id:s()})).sort((e,t)=>t.value-e.value).map((e,t)=>({...e,absoluteIndex:t})));function mn(){return W.value.map(e=>({name:e.name,color:e.color,value:e.value}))}let G=l(()=>W.value.filter(e=>!H.value.includes(e.id)).map(e=>e.value).reduce((e,t)=>e+t,0)),hn=b(190),gn=l(()=>W.value.filter(e=>!H.value.includes(e.id))),_n=l(()=>(N.value.strokeWidth+N.value.borderWidth)/2+(P.value.padding??12)),vn=l(()=>le({maxPoints:hn.value,a:N.value.a??6,b:N.value.b??6,angleStep:N.value.angleStep??.07,startX:V.value.width/2+N.value.offsetX,startY:V.value.height/2+N.value.offsetY,boxWidth:V.value.width,boxHeight:V.value.height,padding:_n.value})),K=l(()=>{let e=[];for(let t=0;t<gn.value.length;t+=1){let n=gn.value[t],r=n.value/G.value*hn.value+(t>0&&e.length?e[t-1].points:0);e.push({points:r,...n,seriesIndex:t,proportion:n.value/G.value,path:vn.value(r)})}return e.filter(e=>!H.value.includes(e.id)).toSorted((e,t)=>t.points-e.points)});function yn(e){let t=Math.min(rn.value,an.value),n=k.value===e.id&&N.value.hoverEffect.show?N.value.hoverEffect.multiplicator:1,r=(N.value.strokeWidth+N.value.borderWidth)*n,i=N.value.strokeWidth*n,a=N.value.strokeWidth/2*n;return{border:r/180*t,path:i/180*t,blur:a/180*t}}let q=b(!1);function bn(e){q.value=e,Tt.value+=1}let xn=b(null);function Sn(){O.value=!1,k.value=null,j.value=null,Lt.value=null}function Cn(e){if(!L.value||!e)return;let t=L.value.querySelector(`[data-a11y-serie-id="${e}"]`);if(!t)return;let n=t.getBoundingClientRect();Rt.value={x:n.left+n.width/2,y:n.top+n.height/2}}function wn(e){M.value.events.datapointLeave&&M.value.events.datapointLeave({datapoint:e,seriesIndex:e.absoluteIndex}),(Lt.value!==e.id||zt.value!==`keyboard`)&&(O.value=!1,k.value=null)}function Tn(e){cn(`selectDatapoint`,e),M.value.events.datapointClick&&M.value.events.datapointClick({datapoint:e,seriesIndex:e.absoluteIndex})}function En({val:e,percentage:t,showVal:n,showPercentage:r}){let i=P.value.labels.dataLabels;return Pe({config:i,val:e,percentage:t,showVal:n,showPercentage:r})}function Dn({datapoint:e,_relativeIndex:t,seriesIndex:r,show:a=!1,triggerMode:o=`pointer`,flatIndex:ee=null}){if(M.value.events.datapointEnter&&M.value.events.datapointEnter({datapoint:e,seriesIndex:e.absoluteIndex}),!B.value.showTooltip)return;zt.value=o,j.value=ee,Lt.value=e.id,xn.value={datapoint:e,seriesIndex:r,series:W.value,config:M.value},O.value=a,k.value=e.id;let s=``,c=F.value.tooltip.customFormat;i(c)&&ae(()=>c({seriesIndex:r,datapoint:e,series:W.value,config:M.value}))?wt.value=c({seriesIndex:r,datapoint:e,series:W.value,config:M.value}):(s+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${F.value.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;">${e.name}</div>`,s+=`<div style="display:flex;flex-direction:row;gap:6px;align-items:center;"><svg viewBox="0 0 12 12" height="14" width="14"><circle cx="6" cy="6" r="6" stroke="none" fill="${e.color}"/></svg>`,s+=`<b>${En({showVal:F.value.tooltip.showValue,showPercentage:F.value.tooltip.showPercentage,val:ne(P.value.labels.dataLabels.formatter,e.value,n({p:P.value.labels.dataLabels.prefix,v:e.value,s:P.value.labels.dataLabels.suffix,r:F.value.tooltip.roundingValue}),{datapoint:e,seriesIndex:r}),percentage:n({v:e.proportion*100,s:`%`,r:F.value.tooltip.roundingPercentage})})}</b></div>`,wt.value=`<div>${s}</div>`),o===`keyboard`&&Ue(()=>{Cn(e.id)})}let J=l(()=>W.value.map((e,t)=>{let r=ne(P.value.labels.dataLabels.formatter,e.value,n({p:P.value.labels.dataLabels.prefix,v:e.value,s:P.value.labels.dataLabels.suffix,r:F.value.legend.roundingValue}),{datapoint:e,index:t}),i=isNaN(e.value/G.value)||H.value.includes(e.id)?`-`:n({v:e.value/G.value*100,s:`%`,r:F.value.legend.roundingPercentage}),a=En({showVal:F.value.legend.showValue,showPercentage:F.value.legend.showPercentage,val:r,percentage:i});return{...e,proportion:(e.value||0)/Gt.value.map(e=>(e.values||[]).reduce((e,t)=>e+t,0)).reduce((e,t)=>e+t,0),opacity:H.value.includes(e.id)?.5:1,shape:e.shape||`circle`,segregate:()=>U(e),isSegregated:H.value.includes(e.id),display:`${e.name}${F.value.legend.showPercentage||F.value.legend.showValue?`: `:``}${a}`}})),On=l(()=>({cy:`galaxy-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`:``})),Y=l(()=>({head:K.value.map(e=>({name:e.name,color:e.color})),body:K.value.map(e=>e.value)}));function kn(e=null){Ue(()=>{let t=Y.value.head.map((e,t)=>[[e.name],[Y.value.body[t]],[isNaN(Y.value.body[t]/G.value)?`-`:Y.value.body[t]/G.value*100]]),n=[[F.value.title.text],[F.value.title.subtitle.text],[[``],[`val`],[`%`]]].concat(t),i=r(n);e?e(i):ie({csvContent:i,title:F.value.title.text||`vue-ui-galaxy`})})}let X=l(()=>{let e=[`__SUM__`,n({p:P.value.labels.dataLabels.prefix,v:G.value,s:P.value.labels.dataLabels.suffix,r:M.value.table.td.roundingValue}),`100%`],t=Y.value.head.map((e,t)=>{let r=n({p:P.value.labels.dataLabels.prefix,v:Y.value.body[t],s:P.value.labels.dataLabels.suffix,r:M.value.table.td.roundingValue});return[{color:e.color,name:e.name},r,isNaN(Y.value.body[t]/G.value)?`-`:n({v:Y.value.body[t]/G.value*100,s:`%`,r:M.value.table.td.roundingPercentage})]}),r={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};return{colNames:[M.value.table.columnNames.series,M.value.table.columnNames.value,M.value.table.columnNames.percentage],head:e,body:t,config:r}});function An(){B.value.showTable=!B.value.showTable}function jn(){B.value.showTooltip=!B.value.showTooltip}let Z=b(!1);function Mn(){Z.value=!Z.value}let Nn=_e(D,()=>F.value.title.text),Q=l(()=>xe({config:M,style:F,mutableConfig:B,dialog:St,accordion:_t,isFullscreen:q,parent:D,maxWidth:500,isCursorPointer:I}));Je(()=>B.value.showTable,e=>be(e,M,Ft));function Pn(){B.value.showTable=!1,It.value&&It.value.setTableIconState(!1)}let Fn=l(()=>J.value.map(e=>({...e,name:e.display}))),In=l(()=>F.value.backgroundColor),Ln=l(()=>F.value.legend),Rn=l(()=>F.value.title),{isCallbackImaging:zn,isCallbackSvg:Bn,generateSvg:Vn,onGenerateImage:Hn}=ye({svg:L,title:Rn,legend:Ln,legendItems:Fn,backgroundColor:In,getSvgCallback:()=>M.value.userOptions.callbacks.svg,generateImage:en});async function Un(){cn(`copyAlt`,{config:M.value,dataset:W.value}),M.value.userOptions.callbacks.altCopy?await Promise.resolve(M.value.userOptions.callbacks.altCopy({config:M.value,dataset:W.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function Wn(){j.value=null,Lt.value=null,Bt.value=!0}function Gn(){Sn(),Bt.value=!1}function Kn(e){if(!L.value||Z.value||document.activeElement!==L.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){Sn();return}if(r){if(j.value===null)return;let e=$.value[j.value];if(!e)return;Tn(e.datapoint);return}let a=j.value;a===null||a<0||a>=$.value.length?a=n?0:$.value.length-1:(a+=n?1:-1,a<0&&(a=$.value.length-1),a>=$.value.length&&(a=0));let o=$.value[a];o&&Dn({datapoint:o.datapoint,seriesIndex:o.datapoint.seriesIndex,show:!0,triggerMode:`keyboard`,flatIndex:a})}let qn=l(()=>({headers:X.value?.colNames??[],rows:X.value?.body??[]})),$=l(()=>K.value.map((e,t)=>({datapoint:e,index:t})));return he({getData:mn,getImage:Nn,generatePdf:$t,generateCsv:kn,generateImage:en,generateSvg:Vn,hideSeries:pn,showSeries:fn,toggleTable:An,toggleTooltip:jn,toggleAnnotator:Mn,toggleFullscreen:bn,copyAlt:Un}),(e,t)=>(y(),f(`div`,{ref_key:`galaxyChart`,ref:D,class:g(`vue-data-ui-component vue-ui-galaxy ${q.value?`vue-data-ui-wrapper-fullscreen`:``} ${M.value.useCssAnimation?``:`vue-ui-dna`} ${C(Wt)?`loading`:``}`),style:v(`font-family:${M.value.style.fontFamily};width:100%; text-align:center;${F.value.title.text?``:`padding-top:36px`};background:${F.value.backgroundColor}`),id:`galaxy_${E.value}`,onMouseenter:t[2]||=()=>C(Yt)(!0),onMouseleave:t[3]||=()=>{C(Yt)(!1),Bt.value||Sn()}},[p(`div`,{id:`chart-instructions-${E.value}`,class:`sr-only`},[p(`p`,null,S(M.value.a11y.translations.keyboardNavigation),1)],8,Ze),qn.value?.rows?.length?(y(),u(je,{key:0,uid:E.value,head:qn.value.headers,body:qn.value.rows,notice:M.value.a11y.translations.tableAvailable,caption:M.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):d(``,!0),M.value.userOptions.buttons.annotator?(y(),u(C(yt),{key:1,svgRef:C(L),backgroundColor:F.value.backgroundColor,color:F.value.color,active:Z.value,isCursorPointer:I.value,palette:M.value.userOptions.annotatorPalette,onClose:Mn},ze({_:2},[Ge(C(Ce),t=>({name:t,fn:w(n=>[x(e.$slots,t,_(h(C(Se)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):d(``,!0),tn.value?(y(),f(`div`,{key:2,ref_key:`noTitle`,ref:Mt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):d(``,!0),F.value.title.text?(y(),f(`div`,{key:3,ref_key:`chartTitle`,ref:kt,style:`width:100%;background:transparent;padding-bottom:24px`},[(y(),u(ve,{key:`title_${Et.value}`,config:{title:{cy:`galaxy-div-title`,...F.value.title},subtitle:{cy:`galaxy-div-subtitle`,...F.value.title.subtitle}}},null,8,[`config`]))],512)):d(``,!0),p(`div`,{id:`legend-top-${E.value}`},null,8,Qe),M.value.userOptions.show&&Vt.value&&(C(Xt)||C(Jt))?(y(),u(C(bt),{ref_key:`userOptionsRef`,ref:It,key:`user_option_${Tt.value}`,backgroundColor:F.value.backgroundColor,color:F.value.color,isPrinting:C(R),isImaging:C(z),uid:E.value,hasTooltip:M.value.userOptions.buttons.tooltip&&F.value.tooltip.show,hasPdf:M.value.userOptions.buttons.pdf,hasXls:M.value.userOptions.buttons.csv,hasImg:M.value.userOptions.buttons.img,hasSvg:M.value.userOptions.buttons.svg,hasTable:M.value.userOptions.buttons.table,hasFullscreen:M.value.userOptions.buttons.fullscreen,hasAltCopy:M.value.userOptions.buttons.altCopy,isTooltip:B.value.showTooltip,isFullscreen:q.value,titles:{...M.value.userOptions.buttonTitles},chartElement:D.value,position:M.value.userOptions.position,hasAnnotator:M.value.userOptions.buttons.annotator,isAnnotation:Z.value,callbacks:M.value.userOptions.callbacks,printScale:M.value.userOptions.print.scale,tableDialog:M.value.table.useDialog,isCursorPointer:I.value,onToggleFullscreen:bn,onGeneratePdf:C($t),onGenerateCsv:kn,onGenerateImage:C(Hn),onGenerateSvg:C(Vn),onToggleTable:An,onToggleTooltip:jn,onToggleAnnotator:Mn,onCopyAlt:Un,style:v({visibility:C(Xt)?C(Jt)?`visible`:`hidden`:`visible`})},ze({_:2},[Ge(C(we)(e.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:w(n=>[x(e.$slots,t,_(h(C(Te)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasTooltip.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasFullscreen.hasAltCopy.isTooltip.isFullscreen.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):d(``,!0),p(`div`,$e,[(y(),f(`svg`,{ref_key:`svgRef`,ref:L,xmlns:C(oe),"aria-describedby":`chart-instructions-${E.value}`,class:g({"vue-data-ui-fullscreen--on":q.value,"vue-data-ui-fulscreen--off":!q.value}),viewBox:V.value.viewBox,style:v(`max-width:100%; overflow: visible; background:transparent;color:${F.value.color}`),tabindex:`0`,onFocus:Wn,onBlur:Gn,onKeydown:Kn},[Ve(C(xt)),x(e.$slots,`svg-underlayer`,{svg:{...V.value,isPrintingImg:C(R)||C(z)||C(zn),isPrintingSvg:C(Bn)}},void 0,!0),e.$slots[`chart-background`]?(y(),f(`foreignObject`,{key:0,x:0,y:0,width:V.value.width,height:V.value.height,style:{pointerEvents:`none`}},[x(e.$slots,`chart-background`,{},void 0,!0)],8,tt)):d(``,!0),p(`defs`,null,[p(`filter`,{id:`blur_${E.value}`,x:`-50%`,y:`-50%`,width:`200%`,height:`200%`},[p(`feGaussianBlur`,{in:`SourceGraphic`,stdDeviation:100/N.value.gradient.intensity},null,8,rt)],8,nt)]),(y(!0),f(Le,null,Ge(K.value,e=>(y(),f(`g`,{key:`dp_${e.id}`},[e.value?(y(),f(`path`,{key:0,d:e.path,fill:`none`,stroke:F.value.backgroundColor,"stroke-width":yn(e).border,class:g({"vue-data-ui-transition":C(Ht)}),"stroke-linecap":`round`},null,10,it)):d(``,!0),e.value?(y(),f(`path`,{key:1,d:e.path,fill:`none`,stroke:e.color,"stroke-width":yn(e).path,"stroke-linecap":`round`,class:g({"vue-data-ui-transition":C(Ht),"vue-ui-galaxy-blur":k.value&&k.value!==e.id&&M.value.useBlurOnHover})},null,10,at)):d(``,!0),e.value&&N.value.gradient.show?(y(),f(`g`,{key:2,filter:`url(#blur_${E.value})`},[p(`path`,{d:e.path,fill:`none`,stroke:N.value.gradient.color,"stroke-width":yn(e).blur,"stroke-linecap":`round`,class:g({"vue-ui-galaxy-gradient":!0,"vue-data-ui-transition":C(Ht),"vue-ui-galaxy-blur":k.value&&k.value!==e.id&&M.value.useBlurOnHover})},null,10,st)],8,ot)):d(``,!0)]))),128)),(y(!0),f(Le,null,Ge(K.value,(e,t)=>(y(),f(`g`,null,[e.value?(y(),f(`path`,{key:0,"data-a11y-serie-id":e.id,d:e.path,fill:`none`,stroke:`transparent`,"stroke-width":N.value.strokeWidth+N.value.borderWidth,"stroke-linecap":`round`,"aria-label":`${e.name}: ${C(n)({p:P.value.labels.dataLabels.prefix,v:e.value,s:P.value.labels.dataLabels.suffix,r:F.value.tooltip.roundingValue})}`,onMouseenter:n=>Dn({datapoint:e,relativeIndex:t,seriesIndex:e.seriesIndex,show:!0,triggerMode:`pointer`,flatIndex:t}),onMouseleave:t=>wn(e),onClick:t=>Tn(e)},null,40,ct)):d(``,!0)]))),256)),x(e.$slots,`svg`,{svg:{...V.value,isPrintingImg:C(R)||C(z)||C(zn),isPrintingSvg:C(Bn)}},void 0,!0)],46,et)),e.$slots.hint?(y(),f(`div`,lt,[x(e.$slots,`hint`,_(h({hint:M.value.a11y.translations.keyboardNavigation,isVisible:Bt.value})),void 0,!0)])):d(``,!0)]),e.$slots.watermark?(y(),f(`div`,ut,[x(e.$slots,`watermark`,_(h({isPrinting:C(R)||C(z)||C(zn)||C(Bn)})),void 0,!0)])):d(``,!0),p(`div`,{id:`legend-bottom-${E.value}`},null,8,dt),Pt.value&&(F.value.legend.show||e.$slots.legend)?(y(),u(Re,{key:6,to:F.value.legend.position===`top`?`#legend-top-${E.value}`:`#legend-bottom-${E.value}`},[p(`div`,{ref_key:`chartLegend`,ref:At},[x(e.$slots,`legend`,{legend:J.value},()=>[F.value.legend.show?(y(),u(Fe,{key:`legend_${Ot.value}`,legendSet:J.value,config:On.value,onClickMarker:t[0]||=({legend:e})=>U(e)},{item:w(({legend:e,index:t})=>[C(Wt)?d(``,!0):(y(),f(`div`,{key:0,onClick:t=>U(e),style:v(`opacity:${H.value.includes(e.id)?.5:1}`)},S(e.display),13,ft))]),legendToggle:w(()=>[J.value.length>2&&F.value.legend.selectAllToggle.show&&!C(Wt)?(y(),u(Ae,{key:0,backgroundColor:F.value.legend.selectAllToggle.backgroundColor,color:F.value.legend.selectAllToggle.color,fontSize:F.value.legend.fontSize,checked:H.value.length>0,onToggle:un},null,8,[`backgroundColor`,`color`,`fontSize`,`checked`])):d(``,!0)]),_:1},8,[`legendSet`,`config`])):d(``,!0)],!0)],512)],8,[`to`])):d(``,!0),e.$slots.source?(y(),f(`div`,{key:7,ref_key:`source`,ref:jt,dir:`auto`},[x(e.$slots,`source`,{},void 0,!0)],512)):d(``,!0),Ve(C(ht),{teleportTo:F.value.tooltip.teleportTo,show:B.value.showTooltip&&O.value,backgroundColor:F.value.tooltip.backgroundColor,color:F.value.tooltip.color,borderRadius:F.value.tooltip.borderRadius,borderColor:F.value.tooltip.borderColor,borderWidth:F.value.tooltip.borderWidth,fontSize:F.value.tooltip.fontSize,backgroundOpacity:F.value.tooltip.backgroundOpacity,position:F.value.tooltip.position,offsetX:F.value.tooltip.offsetX,offsetY:F.value.tooltip.offsetY,parent:D.value,content:wt.value,isFullscreen:q.value,isCustom:C(i)(F.value.tooltip.customFormat),smooth:F.value.tooltip.smooth,backdropFilter:F.value.tooltip.backdropFilter,smoothForce:F.value.tooltip.smoothForce,smoothSnapThreshold:F.value.tooltip.smoothSnapThreshold,isA11yMode:zt.value===`keyboard`,a11yPosition:Rt.value},{"tooltip-before":w(()=>[x(e.$slots,`tooltip-before`,_(h({...xn.value})),void 0,!0)]),tooltip:w(()=>[x(e.$slots,`tooltip`,_(h({...xn.value})),void 0,!0)]),"tooltip-after":w(()=>[x(e.$slots,`tooltip-after`,_(h({...xn.value})),void 0,!0)]),_:3},8,[`teleportTo`,`show`,`backgroundColor`,`color`,`borderRadius`,`borderColor`,`borderWidth`,`fontSize`,`backgroundOpacity`,`position`,`offsetX`,`offsetY`,`parent`,`content`,`isFullscreen`,`isCustom`,`smooth`,`backdropFilter`,`smoothForce`,`smoothSnapThreshold`,`isA11yMode`,`a11yPosition`]),Vt.value&&M.value.userOptions.buttons.table?(y(),u(Ke(Q.value.component),He({key:8},Q.value.props,{ref_key:`tableUnit`,ref:Ft,onClose:Pn}),ze({content:w(()=>[(y(),u(C(vt),{key:`table_${Dt.value}`,colNames:X.value.colNames,head:X.value.head,body:X.value.body,config:X.value.config,title:M.value.table.useDialog?``:Q.value.title,withCloseButton:!M.value.table.useDialog,isCursorPointer:I.value,onClose:Pn},{th:w(({th:e})=>[e===`__SUM__`?(y(),f(`div`,pt,[Ve(C(gt),{name:`sigma`,stroke:X.value.config.th.color,size:16},null,8,[`stroke`])])):(y(),f(`div`,mt,S(e),1))]),td:w(({td:e})=>[Be(S(e.name||e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`]))]),_:2},[M.value.table.useDialog?{name:`title`,fn:w(()=>[Be(S(Q.value.title),1)]),key:`0`}:void 0,M.value.table.useDialog?{name:`actions`,fn:w(()=>[p(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[1]||=e=>kn(M.value.userOptions.callbacks.csv),style:v({cursor:I.value?`pointer`:`default`})},[Ve(C(gt),{name:`fileCsv`,stroke:Q.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):d(``,!0),x(e.$slots,`skeleton`,{},()=>[C(Wt)?(y(),u(fe,{key:0})):d(``,!0)],!0)],46,Xe))}},[[`__scopeId`,`data-v-c1f406f4`]]);export{Ye as n,ht as t};
|
|
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,Kt as o,S as ee,X as s,Zt as c,at as te,i as ne,in as re,nt as ie,pt as ae,t as oe,w as se,yt as ce,z 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-BH9r_0Vd.js";import{t as he}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as ge}from"./resolveChartConfig-CIhClE5R.js";import{t as _e}from"./chartImage-DPGnEuYM.js";import{n as ve}from"./Title-BliHuXfT.js";import{t as ye}from"./useChartExport-BZts4KFb.js";import{n as be,t as xe}from"./tableIntegration-CNoJ1CIY.js";import{n as Se,t as Ce}from"./annotationSlots-BRR85CqJ.js";import{n as we,t as Te}from"./userOptionsSlots-DYuo-E5m.js";import{t as Ee}from"./usePrinter-sVoTzet1.js";import{t as De}from"./useTransitions-ChGGrtrv.js";import{c as Oe}from"./canvas-lib-22VpOI4_.js";import{t as ke}from"./useResponsive-CENUxfEL.js";import{t as Ae}from"./BaseLegendToggle-Q3TiW9u1.js";import{t as je}from"./A11yDataTable-DWNlWXzs.js";import{t as Me}from"./useUserOptionState-CXlFnwPv.js";import{t as Ne}from"./useChartAccessibility-DOMuYJfm.js";import{t as Pe}from"./labelUtils-CdtU-yB_.js";import{t as Fe}from"./Legend-DM0ClX3D.js";import{t as Ie}from"./vue_ui_galaxy-B94QInxc.js";import{Fragment as Le,Teleport as Re,computed as l,createBlock as u,createCommentVNode as d,createElementBlock as f,createElementVNode as p,createSlots as ze,createTextVNode as Be,createVNode as Ve,defineAsyncComponent as m,guardReactiveProps as h,mergeProps as He,nextTick as Ue,normalizeClass as g,normalizeProps as _,normalizeStyle as v,onMounted as We,openBlock as y,ref as b,renderList as Ge,renderSlot as x,resolveDynamicComponent as Ke,toDisplayString as S,toRefs as qe,unref as C,watch as Je,withCtx as w}from"vue";var Ye=/* @__PURE__ */ e({default:()=>ht}),Xe=[`id`],Ze=[`id`],Qe=[`id`],$e={style:{position:`relative`}},et=[`xmlns`,`aria-describedby`,`viewBox`],tt=[`width`,`height`],nt=[`id`],rt=[`stdDeviation`],it=[`d`,`stroke`,`stroke-width`],at=[`d`,`stroke`,`stroke-width`],ot=[`filter`],st=[`d`,`stroke`,`stroke-width`],ct=[`data-a11y-serie-id`,`d`,`stroke-width`,`aria-label`,`onMouseenter`,`onMouseleave`,`onClick`],lt={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},ut={key:5,class:`vue-data-ui-watermark`},dt=[`id`],ft=[`onClick`],pt={key:0},mt={key:1},ht=/*#__PURE__*/ he({__name:`vue-ui-galaxy`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`selectLegend`,`selectDatapoint`,`copyAlt`],setup(e,{expose:he,emit:Ye}){let ht=m(()=>import(`./Tooltip-C1q0Qoh7.js`)),gt=m(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),_t=m(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),vt=m(()=>import(`./DataTable-0Vv-aGHD.js`)),yt=m(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),bt=m(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),xt=m(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),St=m(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_galaxy:Ct}=t(),T=e,E=b(s()),D=b(null),O=b(!1),wt=b(``),k=b(null),Tt=b(0),Et=b(0),Dt=b(0),Ot=b(0),kt=b(null),At=b(null),jt=b(null),Mt=b(null),A=b(null),Nt=b(null),Pt=b(!1),Ft=b(null),It=b(null),j=b(null),Lt=b(null),Rt=b({x:0,y:0}),zt=b(`pointer`),Bt=b(!1),Vt=l(()=>!!T.dataset&&T.dataset.length),M=b(Zt()),N=l(()=>M.value.style.chart.layout.arcs),P=l(()=>M.value.style.chart.layout),F=l(()=>M.value.style.chart);pe({config:()=>M.value,dataset:()=>T.dataset,component:`VueUiGalaxy`,rules:[me.singleSeries,me.emptyArray,{test:e=>e.length>6,message:[`👀 The number of series is > 6. Consider:`,``,`▶️ Grouping small values dynamically into a single "Other" series.`,``,`▶️ Using filters to let users choose a maximum number of series to display.`,``,`▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read.`]}]});let{transitionEnabled:Ht}=De({config:()=>M.value.transitions,dataset:()=>T.dataset}),I=l(()=>M.value.userOptions.useCursorPointer),Ut=l(()=>re({defaultConfig:{userOptions:{show:!1},table:{show:!1},useCssAnimation:!1,style:{chart:{backgroundColor:`#99999930`,legend:{backgroundColor:`transparent`}}}},userConfig:M.value.skeletonConfig??{}})),{loading:Wt,FINAL_DATASET:Gt}=de({...qe(T),FINAL_CONFIG:M,prepareConfig:Zt,callback:()=>{Promise.resolve().then(async()=>{await Ue(),B.value.showTable=M.value.table.show})},skeletonDataset:T.config?.skeletonDataset??[{name:`_`,values:[21],color:`#DBDBDB`},{name:`_`,values:[13],color:`#C4C4C4`},{name:`_`,values:[8],color:`#ADADAD`}],skeletonConfig:re({defaultConfig:M.value,userConfig:Ut.value})});We(()=>{Pt.value=!0,qt()});let Kt=l(()=>M.value.debug);function qt(){if(ue(T.dataset)?te({componentName:`VueUiGalaxy`,type:`dataset`,debug:Kt.value}):Kt.value&&T.dataset.forEach((e,t)=>{ce({datasetObject:e,requiredAttributes:[`name`,`values`]}).forEach(e=>{te({componentName:`VueUiGalaxy`,type:`datasetSerieAttribute`,property:e,index:t})})}),M.value.responsive){let e=Oe(()=>{let{width:e,height:t}=ke({chart:D.value,title:F.value.title.text?kt.value:null,legend:F.value.legend.show?At.value:null,noTitle:Mt.value,source:jt.value});requestAnimationFrame(()=>{rn.value=Math.max(.1,e),an.value=Math.max(.1,t-12)})});A.value&&(Nt.value&&A.value.unobserve(Nt.value),A.value.disconnect()),A.value=new ResizeObserver(e),Nt.value=D.value.parentNode,A.value.observe(Nt.value)}}let{userOptionsVisible:Jt,setUserOptionsVisibility:Yt,keepUserOptionState:Xt}=Me({config:M.value}),{svgRef:L}=Ne({config:F.value.title});function Zt(){return ge(T.config,Ct,Ie)}let Qt=c(T.config);Je(()=>T.config,(e,t)=>{let n=c(e),r=n!==Qt;Qt=n;let i=Zt();r?(M.value=i,Jt.value=!M.value.userOptions.showOnChartHover,qt(),Et.value+=1,Dt.value+=1,Ot.value+=1,B.value.dataLabels.show=P.value.labels.dataLabels.show,B.value.showTable=M.value.table.show,B.value.showTooltip=F.value.tooltip.show):(M.value.style.chart.tooltip=i.style.chart.tooltip,B.value.showTooltip=M.value.style.chart.tooltip.show)},{deep:!0});let{isPrinting:R,isImaging:z,generatePdf:$t,generateImage:en}=Ee({elementId:`galaxy_${E.value}`,fileName:F.value.title.text||`vue-ui-galaxy`,options:M.value.userOptions.print}),tn=l(()=>M.value.userOptions.show&&!F.value.title.text),nn=l(()=>se(M.value.customPalette)),B=b({dataLabels:{show:P.value.labels.dataLabels.show},showTable:M.value.table.show,showTooltip:F.value.tooltip.show}),rn=b(250),an=b(180),on=b(0),sn=b(0),V=l(()=>({width:rn.value,height:an.value,viewBox:`${on.value} ${sn.value} ${rn.value} ${an.value}`})),cn=Ye,H=b([]);function ln(){cn(`selectLegend`,K.value.map(e=>({name:e.name,color:e.color,value:e.value})))}function un(){H.value.length?H.value=[]:J.value.forEach(e=>{H.value.push(e.id)}),ln()}function U(e){H.value.includes(e.id)?H.value=H.value.filter(t=>t!==e.id):H.value.push(e.id),ln()}function dn(e){return W.value.length?W.value.find(t=>t.name===e)||(Kt.value&&console.warn(`VueUiGalaxy - Series name not found "${e}"`),null):(Kt.value&&console.warn(`VueUiGalaxy - There are no series to show.`),null)}function fn(e){let t=dn(e);t!==null&&H.value.includes(t.id)&&U({id:t.id})}function pn(e){let t=dn(e);t!==null&&(H.value.includes(t.id)||U({id:t.id}))}let W=l(()=>Gt.value.map((e,t)=>({name:e.name,color:ee(e.color)||nn.value[t]||a[t]||a[t%a.length],value:e.values?o(e.values).reduce((e,t)=>e+t,0):0,absoluteValues:o(e.values),id:s()})).sort((e,t)=>t.value-e.value).map((e,t)=>({...e,absoluteIndex:t})));function mn(){return W.value.map(e=>({name:e.name,color:e.color,value:e.value}))}let G=l(()=>W.value.filter(e=>!H.value.includes(e.id)).map(e=>e.value).reduce((e,t)=>e+t,0)),hn=b(190),gn=l(()=>W.value.filter(e=>!H.value.includes(e.id))),_n=l(()=>(N.value.strokeWidth+N.value.borderWidth)/2+(P.value.padding??12)),vn=l(()=>le({maxPoints:hn.value,a:N.value.a??6,b:N.value.b??6,angleStep:N.value.angleStep??.07,startX:V.value.width/2+N.value.offsetX,startY:V.value.height/2+N.value.offsetY,boxWidth:V.value.width,boxHeight:V.value.height,padding:_n.value})),K=l(()=>{let e=[];for(let t=0;t<gn.value.length;t+=1){let n=gn.value[t],r=n.value/G.value*hn.value+(t>0&&e.length?e[t-1].points:0);e.push({points:r,...n,seriesIndex:t,proportion:n.value/G.value,path:vn.value(r)})}return e.filter(e=>!H.value.includes(e.id)).toSorted((e,t)=>t.points-e.points)});function yn(e){let t=Math.min(rn.value,an.value),n=k.value===e.id&&N.value.hoverEffect.show?N.value.hoverEffect.multiplicator:1,r=(N.value.strokeWidth+N.value.borderWidth)*n,i=N.value.strokeWidth*n,a=N.value.strokeWidth/2*n;return{border:r/180*t,path:i/180*t,blur:a/180*t}}let q=b(!1);function bn(e){q.value=e,Tt.value+=1}let xn=b(null);function Sn(){O.value=!1,k.value=null,j.value=null,Lt.value=null}function Cn(e){if(!L.value||!e)return;let t=L.value.querySelector(`[data-a11y-serie-id="${e}"]`);if(!t)return;let n=t.getBoundingClientRect();Rt.value={x:n.left+n.width/2,y:n.top+n.height/2}}function wn(e){M.value.events.datapointLeave&&M.value.events.datapointLeave({datapoint:e,seriesIndex:e.absoluteIndex}),(Lt.value!==e.id||zt.value!==`keyboard`)&&(O.value=!1,k.value=null)}function Tn(e){cn(`selectDatapoint`,e),M.value.events.datapointClick&&M.value.events.datapointClick({datapoint:e,seriesIndex:e.absoluteIndex})}function En({val:e,percentage:t,showVal:n,showPercentage:r}){let i=P.value.labels.dataLabels;return Pe({config:i,val:e,percentage:t,showVal:n,showPercentage:r})}function Dn({datapoint:e,_relativeIndex:t,seriesIndex:r,show:a=!1,triggerMode:o=`pointer`,flatIndex:ee=null}){if(M.value.events.datapointEnter&&M.value.events.datapointEnter({datapoint:e,seriesIndex:e.absoluteIndex}),!B.value.showTooltip)return;zt.value=o,j.value=ee,Lt.value=e.id,xn.value={datapoint:e,seriesIndex:r,series:W.value,config:M.value},O.value=a,k.value=e.id;let s=``,c=F.value.tooltip.customFormat;i(c)&&ae(()=>c({seriesIndex:r,datapoint:e,series:W.value,config:M.value}))?wt.value=c({seriesIndex:r,datapoint:e,series:W.value,config:M.value}):(s+=`<div style="width:100%;text-align:center;border-bottom:1px solid ${F.value.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;">${e.name}</div>`,s+=`<div style="display:flex;flex-direction:row;gap:6px;align-items:center;"><svg viewBox="0 0 12 12" height="14" width="14"><circle cx="6" cy="6" r="6" stroke="none" fill="${e.color}"/></svg>`,s+=`<b>${En({showVal:F.value.tooltip.showValue,showPercentage:F.value.tooltip.showPercentage,val:ne(P.value.labels.dataLabels.formatter,e.value,n({p:P.value.labels.dataLabels.prefix,v:e.value,s:P.value.labels.dataLabels.suffix,r:F.value.tooltip.roundingValue}),{datapoint:e,seriesIndex:r}),percentage:n({v:e.proportion*100,s:`%`,r:F.value.tooltip.roundingPercentage})})}</b></div>`,wt.value=`<div>${s}</div>`),o===`keyboard`&&Ue(()=>{Cn(e.id)})}let J=l(()=>W.value.map((e,t)=>{let r=ne(P.value.labels.dataLabels.formatter,e.value,n({p:P.value.labels.dataLabels.prefix,v:e.value,s:P.value.labels.dataLabels.suffix,r:F.value.legend.roundingValue}),{datapoint:e,index:t}),i=isNaN(e.value/G.value)||H.value.includes(e.id)?`-`:n({v:e.value/G.value*100,s:`%`,r:F.value.legend.roundingPercentage}),a=En({showVal:F.value.legend.showValue,showPercentage:F.value.legend.showPercentage,val:r,percentage:i});return{...e,proportion:(e.value||0)/Gt.value.map(e=>(e.values||[]).reduce((e,t)=>e+t,0)).reduce((e,t)=>e+t,0),opacity:H.value.includes(e.id)?.5:1,shape:e.shape||`circle`,segregate:()=>U(e),isSegregated:H.value.includes(e.id),display:`${e.name}${F.value.legend.showPercentage||F.value.legend.showValue?`: `:``}${a}`}})),On=l(()=>({cy:`galaxy-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`:``})),Y=l(()=>({head:K.value.map(e=>({name:e.name,color:e.color})),body:K.value.map(e=>e.value)}));function kn(e=null){Ue(()=>{let t=Y.value.head.map((e,t)=>[[e.name],[Y.value.body[t]],[isNaN(Y.value.body[t]/G.value)?`-`:Y.value.body[t]/G.value*100]]),n=[[F.value.title.text],[F.value.title.subtitle.text],[[``],[`val`],[`%`]]].concat(t),i=r(n);e?e(i):ie({csvContent:i,title:F.value.title.text||`vue-ui-galaxy`})})}let X=l(()=>{let e=[`__SUM__`,n({p:P.value.labels.dataLabels.prefix,v:G.value,s:P.value.labels.dataLabels.suffix,r:M.value.table.td.roundingValue}),`100%`],t=Y.value.head.map((e,t)=>{let r=n({p:P.value.labels.dataLabels.prefix,v:Y.value.body[t],s:P.value.labels.dataLabels.suffix,r:M.value.table.td.roundingValue});return[{color:e.color,name:e.name},r,isNaN(Y.value.body[t]/G.value)?`-`:n({v:Y.value.body[t]/G.value*100,s:`%`,r:M.value.table.td.roundingPercentage})]}),r={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};return{colNames:[M.value.table.columnNames.series,M.value.table.columnNames.value,M.value.table.columnNames.percentage],head:e,body:t,config:r}});function An(){B.value.showTable=!B.value.showTable}function jn(){B.value.showTooltip=!B.value.showTooltip}let Z=b(!1);function Mn(){Z.value=!Z.value}let Nn=_e(D,()=>F.value.title.text),Q=l(()=>xe({config:M,style:F,mutableConfig:B,dialog:St,accordion:_t,isFullscreen:q,parent:D,maxWidth:500,isCursorPointer:I}));Je(()=>B.value.showTable,e=>be(e,M,Ft));function Pn(){B.value.showTable=!1,It.value&&It.value.setTableIconState(!1)}let Fn=l(()=>J.value.map(e=>({...e,name:e.display}))),In=l(()=>F.value.backgroundColor),Ln=l(()=>F.value.legend),Rn=l(()=>F.value.title),{isCallbackImaging:zn,isCallbackSvg:Bn,generateSvg:Vn,onGenerateImage:Hn}=ye({svg:L,title:Rn,legend:Ln,legendItems:Fn,backgroundColor:In,getSvgCallback:()=>M.value.userOptions.callbacks.svg,generateImage:en});async function Un(){cn(`copyAlt`,{config:M.value,dataset:W.value}),M.value.userOptions.callbacks.altCopy?await Promise.resolve(M.value.userOptions.callbacks.altCopy({config:M.value,dataset:W.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function Wn(){j.value=null,Lt.value=null,Bt.value=!0}function Gn(){Sn(),Bt.value=!1}function Kn(e){if(!L.value||Z.value||document.activeElement!==L.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){Sn();return}if(r){if(j.value===null)return;let e=$.value[j.value];if(!e)return;Tn(e.datapoint);return}let a=j.value;a===null||a<0||a>=$.value.length?a=n?0:$.value.length-1:(a+=n?1:-1,a<0&&(a=$.value.length-1),a>=$.value.length&&(a=0));let o=$.value[a];o&&Dn({datapoint:o.datapoint,seriesIndex:o.datapoint.seriesIndex,show:!0,triggerMode:`keyboard`,flatIndex:a})}let qn=l(()=>({headers:X.value?.colNames??[],rows:X.value?.body??[]})),$=l(()=>K.value.map((e,t)=>({datapoint:e,index:t})));return he({getData:mn,getImage:Nn,generatePdf:$t,generateCsv:kn,generateImage:en,generateSvg:Vn,hideSeries:pn,showSeries:fn,toggleTable:An,toggleTooltip:jn,toggleAnnotator:Mn,toggleFullscreen:bn,copyAlt:Un}),(e,t)=>(y(),f(`div`,{ref_key:`galaxyChart`,ref:D,class:g(`vue-data-ui-component vue-ui-galaxy ${q.value?`vue-data-ui-wrapper-fullscreen`:``} ${M.value.useCssAnimation?``:`vue-ui-dna`} ${C(Wt)?`loading`:``}`),style:v(`font-family:${M.value.style.fontFamily};width:100%; text-align:center;${F.value.title.text?``:`padding-top:36px`};background:${F.value.backgroundColor}`),id:`galaxy_${E.value}`,onMouseenter:t[2]||=()=>C(Yt)(!0),onMouseleave:t[3]||=()=>{C(Yt)(!1),Bt.value||Sn()}},[p(`div`,{id:`chart-instructions-${E.value}`,class:`sr-only`},[p(`p`,null,S(M.value.a11y.translations.keyboardNavigation),1)],8,Ze),qn.value?.rows?.length?(y(),u(je,{key:0,uid:E.value,head:qn.value.headers,body:qn.value.rows,notice:M.value.a11y.translations.tableAvailable,caption:M.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):d(``,!0),M.value.userOptions.buttons.annotator?(y(),u(C(yt),{key:1,svgRef:C(L),backgroundColor:F.value.backgroundColor,color:F.value.color,active:Z.value,isCursorPointer:I.value,palette:M.value.userOptions.annotatorPalette,onClose:Mn},ze({_:2},[Ge(C(Ce),t=>({name:t,fn:w(n=>[x(e.$slots,t,_(h(C(Se)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):d(``,!0),tn.value?(y(),f(`div`,{key:2,ref_key:`noTitle`,ref:Mt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):d(``,!0),F.value.title.text?(y(),f(`div`,{key:3,ref_key:`chartTitle`,ref:kt,style:`width:100%;background:transparent;padding-bottom:24px`},[(y(),u(ve,{key:`title_${Et.value}`,config:{title:{cy:`galaxy-div-title`,...F.value.title},subtitle:{cy:`galaxy-div-subtitle`,...F.value.title.subtitle}}},null,8,[`config`]))],512)):d(``,!0),p(`div`,{id:`legend-top-${E.value}`},null,8,Qe),M.value.userOptions.show&&Vt.value&&(C(Xt)||C(Jt))?(y(),u(C(bt),{ref_key:`userOptionsRef`,ref:It,key:`user_option_${Tt.value}`,backgroundColor:F.value.backgroundColor,color:F.value.color,isPrinting:C(R),isImaging:C(z),uid:E.value,hasTooltip:M.value.userOptions.buttons.tooltip&&F.value.tooltip.show,hasPdf:M.value.userOptions.buttons.pdf,hasXls:M.value.userOptions.buttons.csv,hasImg:M.value.userOptions.buttons.img,hasSvg:M.value.userOptions.buttons.svg,hasTable:M.value.userOptions.buttons.table,hasFullscreen:M.value.userOptions.buttons.fullscreen,hasAltCopy:M.value.userOptions.buttons.altCopy,isTooltip:B.value.showTooltip,isFullscreen:q.value,titles:{...M.value.userOptions.buttonTitles},chartElement:D.value,position:M.value.userOptions.position,hasAnnotator:M.value.userOptions.buttons.annotator,isAnnotation:Z.value,callbacks:M.value.userOptions.callbacks,printScale:M.value.userOptions.print.scale,tableDialog:M.value.table.useDialog,isCursorPointer:I.value,onToggleFullscreen:bn,onGeneratePdf:C($t),onGenerateCsv:kn,onGenerateImage:C(Hn),onGenerateSvg:C(Vn),onToggleTable:An,onToggleTooltip:jn,onToggleAnnotator:Mn,onCopyAlt:Un,style:v({visibility:C(Xt)?C(Jt)?`visible`:`hidden`:`visible`})},ze({_:2},[Ge(C(we)(e.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:w(n=>[x(e.$slots,t,_(h(C(Te)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasTooltip.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasFullscreen.hasAltCopy.isTooltip.isFullscreen.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):d(``,!0),p(`div`,$e,[(y(),f(`svg`,{ref_key:`svgRef`,ref:L,xmlns:C(oe),"aria-describedby":`chart-instructions-${E.value}`,class:g({"vue-data-ui-fullscreen--on":q.value,"vue-data-ui-fulscreen--off":!q.value}),viewBox:V.value.viewBox,style:v(`max-width:100%; overflow: visible; background:transparent;color:${F.value.color}`),tabindex:`0`,onFocus:Wn,onBlur:Gn,onKeydown:Kn},[Ve(C(xt)),x(e.$slots,`svg-underlayer`,{svg:{...V.value,isPrintingImg:C(R)||C(z)||C(zn),isPrintingSvg:C(Bn)}},void 0,!0),e.$slots[`chart-background`]?(y(),f(`foreignObject`,{key:0,x:0,y:0,width:V.value.width,height:V.value.height,style:{pointerEvents:`none`}},[x(e.$slots,`chart-background`,{},void 0,!0)],8,tt)):d(``,!0),p(`defs`,null,[p(`filter`,{id:`blur_${E.value}`,x:`-50%`,y:`-50%`,width:`200%`,height:`200%`},[p(`feGaussianBlur`,{in:`SourceGraphic`,stdDeviation:100/N.value.gradient.intensity},null,8,rt)],8,nt)]),(y(!0),f(Le,null,Ge(K.value,e=>(y(),f(`g`,{key:`dp_${e.id}`},[e.value?(y(),f(`path`,{key:0,d:e.path,fill:`none`,stroke:F.value.backgroundColor,"stroke-width":yn(e).border,class:g({"vue-data-ui-transition":C(Ht)}),"stroke-linecap":`round`},null,10,it)):d(``,!0),e.value?(y(),f(`path`,{key:1,d:e.path,fill:`none`,stroke:e.color,"stroke-width":yn(e).path,"stroke-linecap":`round`,class:g({"vue-data-ui-transition":C(Ht),"vue-ui-galaxy-blur":k.value&&k.value!==e.id&&M.value.useBlurOnHover})},null,10,at)):d(``,!0),e.value&&N.value.gradient.show?(y(),f(`g`,{key:2,filter:`url(#blur_${E.value})`},[p(`path`,{d:e.path,fill:`none`,stroke:N.value.gradient.color,"stroke-width":yn(e).blur,"stroke-linecap":`round`,class:g({"vue-ui-galaxy-gradient":!0,"vue-data-ui-transition":C(Ht),"vue-ui-galaxy-blur":k.value&&k.value!==e.id&&M.value.useBlurOnHover})},null,10,st)],8,ot)):d(``,!0)]))),128)),(y(!0),f(Le,null,Ge(K.value,(e,t)=>(y(),f(`g`,null,[e.value?(y(),f(`path`,{key:0,"data-a11y-serie-id":e.id,d:e.path,fill:`none`,stroke:`transparent`,"stroke-width":N.value.strokeWidth+N.value.borderWidth,"stroke-linecap":`round`,"aria-label":`${e.name}: ${C(n)({p:P.value.labels.dataLabels.prefix,v:e.value,s:P.value.labels.dataLabels.suffix,r:F.value.tooltip.roundingValue})}`,onMouseenter:n=>Dn({datapoint:e,relativeIndex:t,seriesIndex:e.seriesIndex,show:!0,triggerMode:`pointer`,flatIndex:t}),onMouseleave:t=>wn(e),onClick:t=>Tn(e)},null,40,ct)):d(``,!0)]))),256)),x(e.$slots,`svg`,{svg:{...V.value,isPrintingImg:C(R)||C(z)||C(zn),isPrintingSvg:C(Bn)}},void 0,!0)],46,et)),e.$slots.hint?(y(),f(`div`,lt,[x(e.$slots,`hint`,_(h({hint:M.value.a11y.translations.keyboardNavigation,isVisible:Bt.value})),void 0,!0)])):d(``,!0)]),e.$slots.watermark?(y(),f(`div`,ut,[x(e.$slots,`watermark`,_(h({isPrinting:C(R)||C(z)||C(zn)||C(Bn)})),void 0,!0)])):d(``,!0),p(`div`,{id:`legend-bottom-${E.value}`},null,8,dt),Pt.value&&(F.value.legend.show||e.$slots.legend)?(y(),u(Re,{key:6,to:F.value.legend.position===`top`?`#legend-top-${E.value}`:`#legend-bottom-${E.value}`},[p(`div`,{ref_key:`chartLegend`,ref:At},[x(e.$slots,`legend`,{legend:J.value},()=>[F.value.legend.show?(y(),u(Fe,{key:`legend_${Ot.value}`,legendSet:J.value,config:On.value,onClickMarker:t[0]||=({legend:e})=>U(e)},{item:w(({legend:e,index:t})=>[C(Wt)?d(``,!0):(y(),f(`div`,{key:0,onClick:t=>U(e),style:v(`opacity:${H.value.includes(e.id)?.5:1}`)},S(e.display),13,ft))]),legendToggle:w(()=>[J.value.length>2&&F.value.legend.selectAllToggle.show&&!C(Wt)?(y(),u(Ae,{key:0,backgroundColor:F.value.legend.selectAllToggle.backgroundColor,color:F.value.legend.selectAllToggle.color,fontSize:F.value.legend.fontSize,checked:H.value.length>0,onToggle:un},null,8,[`backgroundColor`,`color`,`fontSize`,`checked`])):d(``,!0)]),_:1},8,[`legendSet`,`config`])):d(``,!0)],!0)],512)],8,[`to`])):d(``,!0),e.$slots.source?(y(),f(`div`,{key:7,ref_key:`source`,ref:jt,dir:`auto`},[x(e.$slots,`source`,{},void 0,!0)],512)):d(``,!0),Ve(C(ht),{teleportTo:F.value.tooltip.teleportTo,show:B.value.showTooltip&&O.value,backgroundColor:F.value.tooltip.backgroundColor,color:F.value.tooltip.color,borderRadius:F.value.tooltip.borderRadius,borderColor:F.value.tooltip.borderColor,borderWidth:F.value.tooltip.borderWidth,fontSize:F.value.tooltip.fontSize,backgroundOpacity:F.value.tooltip.backgroundOpacity,position:F.value.tooltip.position,offsetX:F.value.tooltip.offsetX,offsetY:F.value.tooltip.offsetY,parent:D.value,content:wt.value,isFullscreen:q.value,isCustom:C(i)(F.value.tooltip.customFormat),smooth:F.value.tooltip.smooth,backdropFilter:F.value.tooltip.backdropFilter,smoothForce:F.value.tooltip.smoothForce,smoothSnapThreshold:F.value.tooltip.smoothSnapThreshold,isA11yMode:zt.value===`keyboard`,a11yPosition:Rt.value},{"tooltip-before":w(()=>[x(e.$slots,`tooltip-before`,_(h({...xn.value})),void 0,!0)]),tooltip:w(()=>[x(e.$slots,`tooltip`,_(h({...xn.value})),void 0,!0)]),"tooltip-after":w(()=>[x(e.$slots,`tooltip-after`,_(h({...xn.value})),void 0,!0)]),_:3},8,[`teleportTo`,`show`,`backgroundColor`,`color`,`borderRadius`,`borderColor`,`borderWidth`,`fontSize`,`backgroundOpacity`,`position`,`offsetX`,`offsetY`,`parent`,`content`,`isFullscreen`,`isCustom`,`smooth`,`backdropFilter`,`smoothForce`,`smoothSnapThreshold`,`isA11yMode`,`a11yPosition`]),Vt.value&&M.value.userOptions.buttons.table?(y(),u(Ke(Q.value.component),He({key:8},Q.value.props,{ref_key:`tableUnit`,ref:Ft,onClose:Pn}),ze({content:w(()=>[(y(),u(C(vt),{key:`table_${Dt.value}`,colNames:X.value.colNames,head:X.value.head,body:X.value.body,config:X.value.config,title:M.value.table.useDialog?``:Q.value.title,withCloseButton:!M.value.table.useDialog,isCursorPointer:I.value,onClose:Pn},{th:w(({th:e})=>[e===`__SUM__`?(y(),f(`div`,pt,[Ve(C(gt),{name:`sigma`,stroke:X.value.config.th.color,size:16},null,8,[`stroke`])])):(y(),f(`div`,mt,S(e),1))]),td:w(({td:e})=>[Be(S(e.name||e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`]))]),_:2},[M.value.table.useDialog?{name:`title`,fn:w(()=>[Be(S(Q.value.title),1)]),key:`0`}:void 0,M.value.table.useDialog?{name:`actions`,fn:w(()=>[p(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:t[1]||=e=>kn(M.value.userOptions.callbacks.csv),style:v({cursor:I.value?`pointer`:`default`})},[Ve(C(gt),{name:`fileCsv`,stroke:Q.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):d(``,!0),x(e.$slots,`skeleton`,{},()=>[C(Wt)?(y(),u(fe,{key:0})):d(``,!0)],!0)],46,Xe))}},[[`__scopeId`,`data-v-c1f406f4`]]);export{Ye as n,ht as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Bt as r,Ht as i,It as a,J as ee,Jt as o,O as te,S as ne,X as re,at as s,b as ie,f as ae,i as oe,in as se,rn as ce,t as le,w as ue,yt as de,zt as fe}from"./lib-rPeBMZrn.js";import{n as pe,t as me}from"./BaseScanner-8NdoBs7B.js";import{n as he}from"./useHints-BH9r_0Vd.js";import{t as ge}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as _e}from"./resolveChartConfig-CIhClE5R.js";import{t as ve}from"./chartImage-DPGnEuYM.js";import{n as ye}from"./Title-BliHuXfT.js";import{t as be}from"./useChartExport-BZts4KFb.js";import{n as xe,t as Se}from"./annotationSlots-BRR85CqJ.js";import{n as Ce,t as we}from"./userOptionsSlots-DYuo-E5m.js";import{t as Te}from"./usePrinter-sVoTzet1.js";import{c as Ee}from"./canvas-lib-22VpOI4_.js";import{t as De}from"./useResponsive-CENUxfEL.js";import{t as Oe}from"./DefGrad-DKMq1REY.js";import{t as ke}from"./useUserOptionState-CXlFnwPv.js";import{t as Ae}from"./useChartAccessibility-DOMuYJfm.js";import{t as je}from"./usePrefersMotion-XLHwega2.js";import{t as Me}from"./useAutoSizeLabelsInsideViewbox-AIRF0PlD.js";import{t as Ne}from"./vue_ui_gauge-BJhb6yqE.js";import{Fragment as c,computed as l,createBlock as u,createCommentVNode as d,createElementBlock as f,createElementVNode as p,createSlots as Pe,createVNode as Fe,defineAsyncComponent as Ie,guardReactiveProps as Le,mergeProps as m,nextTick as Re,normalizeClass as ze,normalizeProps as Be,normalizeStyle as Ve,onBeforeUnmount as He,onMounted as Ue,openBlock as h,ref as g,renderList as _,renderSlot as v,shallowRef as We,toDisplayString as y,toRefs as Ge,unref as b,watch as x,withCtx as Ke}from"vue";var qe=/* @__PURE__ */ e({default:()=>Tt}),Je=[`id`],Ye={key:0},Xe=[`xmlns`,`viewBox`],Ze=[`width`,`height`],Qe=[`id`],$e=[`stdDeviation`],et={key:1},tt=[`d`,`fill`,`stroke`],nt=[`d`,`fill`,`stroke`],rt=[`d`,`fill`],it=[`id`,`d`],at=[`fill`,`font-size`,`font-weight`],ot=[`href`,`startOffset`],st=[`text-anchor`,`fill`,`font-size`,`font-weight`,`innerHTML`],ct=[`d`,`filter`],lt=[`stroke`,`stroke-width`],ut=[`stroke`,`stroke-width`],dt=[`stroke`,`stroke-width`],ft=[`stroke`,`stroke-width`],pt={key:8},mt=[`x`,`y`,`text-anchor`,`font-size`,`font-weight`,`fill`],ht=[`x`,`y`,`font-size`,`font-weight`,`fill`],gt={key:0},_t=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],vt=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],yt=[`x1`,`y1`,`x2`,`y2`,`stroke-width`,`filter`],bt={key:1},xt=[`d`,`fill`,`stroke`,`stroke-width`],St=[`cx`,`cy`,`fill`,`r`,`stroke-width`,`stroke`],Ct=[`x`,`y`,`font-size`,`fill`],wt={key:4,class:`vue-data-ui-watermark`},Tt=/*#__PURE__*/ ge({__name:`vue-ui-gauge`,props:{config:{type:Object,default(){return{}}},dataset:{type:Object,default(){return{}}}},emits:[`copyAlt`],setup(e,{expose:ge,emit:qe}){let Tt=Ie(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Et=Ie(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Dt=Ie(()=>import(`./PackageVersion-C4ZM3Vf7.js`).then(e=>e.t)),{vue_ui_gauge:Ot}=t(),kt=je(),S=e,At=qe,jt=l(()=>!!S.dataset&&Object.keys(S.dataset).length>0&&S.dataset.series&&S.dataset.series.length),C=g(re()),Mt=g(null),Nt=g(0),w=g(null),Pt=g(null),Ft=g(null),It=g(null),Lt=g(null),Rt=g(0),T=g(Gt()),E=l(()=>T.value.style.chart.layout.segmentSeparators),D=l(()=>T.value.style.chart.layout.segmentNames),O=l(()=>T.value.style.chart.layout.markers),k=l(()=>T.value.style.chart.layout.pointer),A=l(()=>T.value.style.chart.layout),j=l(()=>T.value.style.chart);he({config:()=>T.value,dataset:()=>S.dataset,component:`VueUiGauge`,rules:[{test:e=>e?.series&&e.series?.length>6,message:[`👀 The number of steps is > 6, which can make the chart hard to read and labels overlap. Consider:`,``,`▶️ Using broader steps.`]}]});let zt=l(()=>T.value.userOptions.useCursorPointer),Bt=l(()=>se({defaultConfig:{userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,animation:{use:!1},layout:{markers:{show:!1},segmentSeparators:{stroke:`#6A6A6A`},segmentNames:{show:!1},indicatorArc:{fill:`#6A6A6A50`},pointer:{stroke:`#6A6A6A`,useRatingColor:!0,circle:{stroke:`#6A6A6A`,color:`#6A6A6A`}}},legend:{show:!1}}}},userConfig:T.value.skeletonConfig??{}})),{loading:Vt,FINAL_DATASET:M,manualLoading:N}=pe({...Ge(S),FINAL_CONFIG:T,prepareConfig:Gt,callback:()=>{Promise.resolve().then(async()=>{await Re()})},skeletonDataset:S.config?.skeletonDataset??{value:0,series:[{from:-1,to:0,name:`_`,color:`#A1A1A1`},{from:0,to:1,name:`__`,color:`#CACACA`}]},skeletonConfig:se({defaultConfig:T.value,userConfig:Bt.value})}),{userOptionsVisible:Ht,setUserOptionsVisibility:Ut,keepUserOptionState:Wt}=ke({config:T.value}),{svgRef:P}=Ae({config:j.value.title});x(()=>S.config,e=>{Vt.value||(T.value=Gt()),Ht.value=!T.value.userOptions.showOnChartHover,en(),Rt.value+=1},{deep:!0}),x(()=>S.dataset,e=>{en(),e&&Object.keys(e).length>0&&(N.value=T.value?.loading??!1)},{deep:!0,immediate:!1});function Gt(){return _e(S.config,Ot,Ne)}let{isPrinting:F,isImaging:I,generatePdf:Kt,generateImage:qt}=Te({elementId:`vue-ui-gauge_${C.value}`,fileName:j.value.title.text||`vue-ui-gauge`,options:T.value.userOptions.print}),Jt=l(()=>T.value.userOptions.show&&!j.value.title.text),Yt=l(()=>ue(T.value.customPalette)),L=l(()=>{if(fe(M.value.series||{}))return{value:0,series:[{from:0,to:0}]};let e=[];(M.value.series||[]).forEach(t=>{e.push(t.from||1e-7),e.push(t.to||1e-7)});let t=Math.max(...e);return{...M.value,series:(M.value.series||[]).map((e,n)=>({...e,color:ne(e.color)||Yt.value[n]||i[n],value:((e.to||0)-(e.from||0))/t*100}))}}),R=g(512),z=g({height:358.4,width:R.value,top:0,bottom:358.4,centerX:179.2,centerY:R.value/2,labelFontSize:18,legendFontSize:j.value.legend.fontSize,pointerRadius:k.value.circle.radius,trackSize:A.value.track.size,pointerSize:k.value.size,pointerStrokeWidth:k.value.strokeWidth,markerOffset:O.value.offsetY+3,segmentFontSize:D.value.fontSize}),B=g(0),V=g(0),H=l(()=>j.value.animation.use&&!kt.value),U=g(H.value?Math.min(...M.value.series.map(e=>e.from)):M.value.value),W=null;function Xt(){W!==null&&(cancelAnimationFrame(W),W=null)}x(H,e=>{e||(Xt(),U.value=M.value.value)}),x(()=>M.value.value,()=>{tn(M.value.value)});let G=l(()=>{let e=z.value.width/2,t=X.value.base,n=Math.PI*((U.value+0-V.value)/(B.value-V.value))+Math.PI;return{x1:e,y1:t,x2:e+X.value.pointerSize*z.value.pointerSize*.9*Math.cos(n),y2:t+X.value.pointerSize*z.value.pointerSize*.9*Math.sin(n)}}),Zt=l(()=>{let e=z.value.width/2,t=X.value.base,n=Math.PI*((U.value+0-V.value)/(B.value-V.value))+Math.PI,r=e+X.value.pointerSize*z.value.pointerSize*.9*Math.cos(n),i=t+X.value.pointerSize*z.value.pointerSize*.9*Math.sin(n),a=z.value.pointerRadius,ee=e+a*Math.cos(n+Math.PI/2),o=t+a*Math.sin(n+Math.PI/2),te=e+a*Math.cos(n-Math.PI/2),ne=t+a*Math.sin(n-Math.PI/2);return isNaN(r)?null:`M ${r},${i} ${ee},${o} ${te},${ne} Z`}),Qt=l(()=>{for(let e=0;e<L.value.series.length;e+=1){let{color:t,from:n,to:r}=L.value.series[e];if(U.value>=n&&U.value<=r)return t}return`#2D353C`}),K=We(null),q=We(null),J=l({get:()=>z.value.segmentFontSize,set:e=>e}),{autoSizeLabels:$t}=Me({svgRef:P,fontSize:z.value.segmentFontSize,minFontSize:D.value.minFontSize,sizeRef:J,labelClass:`.vue-ui-gauge-label-flat`}),Y=l(()=>T.value.debug);function en(){let e=!1;if(fe(S.dataset)?(s({componentName:`VueUiGauge`,type:`dataset`,debug:Y.value}),N.value=!0,e=!0):(de({datasetObject:S.dataset,requiredAttributes:[`value`,`series`]}).forEach(t=>{s({componentName:`VueUiGauge`,type:`datasetAttribute`,property:t,debug:Y.value}),N.value=!0,e=!0}),Object.hasOwn(S.dataset,`series`)&&(S.dataset.series.length?S.dataset.series.forEach((t,n)=>{de({datasetObject:t,requiredAttributes:[`from`,`to`]}).forEach(t=>{s({componentName:`VueUiGauge`,type:`datasetSerieAttribute`,property:t,index:n,debug:Y.value}),N.value=!0,e=!0})}):(s({componentName:`VueUiGauge`,type:`datasetAttributeEmpty`,property:`series`,debug:Y.value}),N.value=!0,e=!0))),N.value=e,tn(M.value.value||0),T.value.responsive){let e=Ee(()=>{let{width:e,height:t}=De({chart:w.value,title:j.value.title.text?Pt.value:null,legend:Ft.value,source:It.value,noTitle:Lt.value});t-=12,requestAnimationFrame(()=>{z.value.width=e,z.value.height=t,z.value.centerX=e/2,z.value.centerY=R.value/2/358.4*t,z.value.bottom=t,z.value.labelFontSize=18/R.value*Math.min(t,e)<10?10:18/R.value*Math.min(t,e),z.value.legendFontSize=j.value.legend.fontSize/R.value*Math.min(t,e)<14?14:j.value.legend.fontSize/R.value*Math.min(t,e),z.value.pointerRadius=k.value.circle.radius/R.value*Math.min(t,e),z.value.trackSize=A.value.track.size/R.value*Math.min(t,e),z.value.pointerStrokeWidth=ce({relator:Math.min(e,t),adjuster:R.value,source:k.value.strokeWidth,threshold:2,fallback:2}),z.value.markerOffset=ce({relator:Math.max(e,t),adjuster:R.value,source:O.value.offsetY+3,threshold:2,fallback:2}),z.value.segmentFontSize=ce({relator:Math.min(e,t),adjuster:R.value,source:D.value.fontSize,threshold:8,fallback:8})}),$t()});K.value&&(q.value&&K.value.unobserve(q.value),K.value.disconnect()),K.value=new ResizeObserver(e),q.value=w.value.parentNode,K.value.observe(q.value)}$t()}Ue(()=>{en()}),He(()=>{Xt(),K.value&&(q.value&&K.value.unobserve(q.value),K.value.disconnect())});function tn(e){let t=[];if((L.value.series||[]).forEach(e=>{t.push(e.from||0),t.push(e.to||0)}),B.value=Math.max(...t),V.value=Math.min(...t),Xt(),!H.value){U.value=e;return}let n=j.value.animation.speed,r=Math.abs(e-U.value)/(n*60);function i(){H.value?(U.value<e?U.value=Math.min(U.value+r,e):U.value>e&&(U.value=Math.max(U.value-r,e)),W=U.value===e?null:requestAnimationFrame(i)):(U.value=e,W=null)}i()}let X=l(()=>{let e=T.value.responsive?Math.min(z.value.width,z.value.height):z.value.width,t=2.5/A.value.radiusRatio;return{arcs:e/t,gradients:e/(t*1.1),base:T.value.responsive?z.value.height/1.618:z.value.height*.7,ratingBase:T.value.responsive?z.value.height/2+z.value.height/4:z.value.height*.9,pointerSize:T.value.responsive?Math.min(z.value.width,z.value.height)/3:z.value.width/3.2}}),Z=l(()=>a({series:L.value.series},z.value.width/2,X.value.base,X.value.arcs,X.value.arcs,1,1,1,180,109.9495,40*z.value.trackSize)),nn=l(()=>a({series:L.value.series},z.value.width/2,X.value.base,X.value.arcs*D.value.offsetRatio,X.value.arcs*D.value.offsetRatio,1,1,1,180,109.9495,40*z.value.trackSize)),Q=l(()=>Z.value.map(e=>X.value.arcs*D.value.offsetRatio*(e.nameOffsetRatio||1))),rn=l(()=>{let{x:e,y:t}=r({initX:Z.value[0].firstSeparator.x,initY:Z.value[0].firstSeparator.y,centerX:G.value.x1,centerY:G.value.y1,offset:-E.value.offsetIn}),{x:n,y:i}=r({initX:Z.value[0].startX,initY:Z.value[0].startY,centerX:G.value.x1,centerY:G.value.y1,offset:E.value.offsetOut});return{x1:e,y1:t,x2:n,y2:i}}),an=l(()=>Z.value.map(e=>{let{x:t,y:n}=r({initX:e.separator.x,initY:e.separator.y,centerX:G.value.x1,centerY:G.value.y1,offset:-E.value.offsetIn}),{x:i,y:a}=r({initX:e.endX,initY:e.endY,centerX:G.value.x1,centerY:G.value.y1,offset:E.value.offsetOut});return{x1:t,y1:n,x2:i,y2:a}}));function on(e){if(e.reduce((e,t)=>e+t,0)>100)throw Error(`Total % must not exceed 100`);let t=0;return e.map(e=>(t+=e,`${t/100*50-e/4}%`))}let sn=l(()=>on(Z.value.map(e=>e.proportion*100))),cn=l(()=>a({series:L.value.series},z.value.width/2,X.value.base,X.value.gradients,X.value.gradients,.95,1,1,180,110.02,2*z.value.trackSize)),ln=l(()=>{let e=V.value>=0?-V.value:Math.abs(V.value);return te({radius:A.value.indicatorArc.radius*z.value.trackSize,centerX:z.value.width/2,centerY:X.value.base,percentage:ie((U.value+e)/(B.value+e))})}),$=g(!1);function un(e){$.value=e,Nt.value+=1}let dn=g(!1);function fn(){dn.value=!dn.value}let pn=ve(w,()=>j.value.title.text),mn=l(()=>j.value.backgroundColor),hn=l(()=>j.value.title),{isCallbackImaging:gn,isCallbackSvg:_n,generateSvg:vn,onGenerateImage:yn}=be({svg:P,title:hn,legend:null,legendItems:null,backgroundColor:mn,getSvgCallback:()=>T.value.userOptions.callbacks.svg,generateImage:qt});async function bn(){At(`copyAlt`,{config:T.value,dataset:L.value}),T.value.userOptions.callbacks.altCopy?await Promise.resolve(T.value.userOptions.callbacks.altCopy({config:T.value,dataset:L.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}return ge({getImage:pn,generatePdf:Kt,generateImage:qt,generateSvg:vn,toggleAnnotator:fn,toggleFullscreen:un,copyAlt:bn}),(e,t)=>(h(),f(`div`,{class:ze(`vue-data-ui-component vue-ui-gauge ${$.value?`vue-data-ui-wrapper-fullscreen`:``}`),ref_key:`gaugeChart`,ref:w,id:`vue-ui-gauge_${C.value}`,style:Ve(`font-family:${T.value.style.fontFamily};width:100%; text-align:center;background:${j.value.backgroundColor};${T.value.responsive?`height: 100%`:``}`),onMouseenter:t[0]||=()=>b(Ut)(!0),onMouseleave:t[1]||=()=>b(Ut)(!1)},[T.value.userOptions.buttons.annotator?(h(),u(b(Tt),{key:0,svgRef:b(P),backgroundColor:j.value.backgroundColor,color:j.value.color,active:dn.value,isCursorPointer:zt.value,palette:T.value.userOptions.annotatorPalette,onClose:fn},Pe({_:2},[_(b(Se),t=>({name:t,fn:Ke(n=>[v(e.$slots,t,Be(Le(b(xe)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):d(``,!0),Jt.value?(h(),f(`div`,{key:1,ref_key:`noTitle`,ref:Lt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):d(``,!0),j.value.title.text?(h(),f(`div`,{key:2,ref_key:`chartTitle`,ref:Pt,style:`width:100%;background:transparent;padding-bottom:12px`},[(h(),u(ye,{key:`title_${Rt.value}`,config:{title:{cy:`gauge-div-title`,...j.value.title},subtitle:{cy:`gauge-div-subtitle`,...j.value.title.subtitle}}},{default:Ke(()=>[T.value.translations.base&&b(M).base?(h(),f(`span`,Ye,y(T.value.translations.base)+`: `+y(b(M).base),1)):d(``,!0)]),_:1},8,[`config`]))],512)):d(``,!0),T.value.userOptions.show&&jt.value&&(b(Wt)||b(Ht))?(h(),u(b(Et),{ref_key:`details`,ref:Mt,key:`user_options_${Nt.value}`,backgroundColor:j.value.backgroundColor,color:j.value.color,isImaging:b(I),isPrinting:b(F),uid:C.value,hasXls:!1,hasPdf:T.value.userOptions.buttons.pdf,hasImg:T.value.userOptions.buttons.img,hasSvg:T.value.userOptions.buttons.svg,hasFullscreen:T.value.userOptions.buttons.fullscreen,hasAltCopy:T.value.userOptions.buttons.altCopy,isFullscreen:$.value,titles:{...T.value.userOptions.buttonTitles},chartElement:w.value,callbacks:T.value.userOptions.callbacks,printScale:T.value.userOptions.print.scale,position:T.value.userOptions.position,hasAnnotator:T.value.userOptions.buttons.annotator,isAnnotation:dn.value,isCursorPointer:zt.value,onToggleFullscreen:un,onGeneratePdf:b(Kt),onGenerateImage:b(yn),onGenerateSvg:b(vn),onToggleAnnotator:fn,onCopyAlt:bn,style:Ve({visibility:b(Wt)?b(Ht)?`visible`:`hidden`:`visible`})},Pe({_:2},[_(b(Ce)(e.$slots,`menuIcon optionPdf optionImg optionSvg optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:Ke(n=>[v(e.$slots,t,Be(Le(b(we)(t,n))),void 0,!0)])}))]),1032,[`backgroundColor`,`color`,`isImaging`,`isPrinting`,`uid`,`hasPdf`,`hasImg`,`hasSvg`,`hasFullscreen`,`hasAltCopy`,`isFullscreen`,`titles`,`chartElement`,`callbacks`,`printScale`,`position`,`hasAnnotator`,`isAnnotation`,`isCursorPointer`,`onGeneratePdf`,`onGenerateImage`,`onGenerateSvg`,`style`])):d(``,!0),(h(),f(`svg`,{ref_key:`svgRef`,ref:P,xmlns:b(le),class:ze({"vue-data-ui-fullscreen--on":$.value,"vue-data-ui-fulscreen--off":!$.value}),viewBox:`0 0 ${z.value.width<=0?10:z.value.width} ${z.value.height<=0?10:z.value.height}`,style:Ve(`max-width:100%;overflow:hidden !important;background:transparent;color:${j.value.color}`)},[Fe(b(Dt)),v(e.$slots,`svg-underlayer`,{svg:{...z.value,isPrintingImg:b(F)||b(I)||b(gn),isPrintingSvg:b(_n)}},void 0,!0),e.$slots[`chart-background`]?(h(),f(`foreignObject`,{key:0,x:0,y:0,width:z.value.width<=0?10:z.value.width,height:z.value.height<=0?10:z.value.height,style:{pointerEvents:`none`}},[v(e.$slots,`chart-background`,{},void 0,!0)],8,Ze)):d(``,!0),p(`defs`,null,[Fe(Oe,{t:`radial`,id:`gradient_${C.value}`,cx:`50%`,cy:`50%`,r:`50%`,fx:`50%`,fy:`50%`,stops:[[`0%`,b(o)(`#FFFFFF`,1),1],[`80%`,b(o)(`#FFFFFF`,A.value.track.gradientIntensity),1],[`100%`,b(o)(`#FFFFFF`,1),1]]},null,8,[`id`,`stops`])]),p(`defs`,null,[p(`filter`,{id:`blur_${C.value}`,x:`-50%`,y:`-50%`,width:`200%`,height:`200%`},[p(`feGaussianBlur`,{in:`SourceGraphic`,stdDeviation:100/A.value.track.gradientIntensity},null,8,$e)],8,Qe)]),e.$slots.pattern?(h(),f(`g`,et,[(h(!0),f(c,null,_(Z.value,(t,n)=>(h(),f(`defs`,null,[v(e.$slots,`pattern`,m({ref_for:!0},{seriesIndex:n,patternId:`pattern_${C.value}_${n}`}),void 0,!0)]))),256))])):d(``,!0),(h(!0),f(c,null,_(Z.value,(e,t)=>(h(),f(`path`,{key:`arc_${t}`,d:e.arcSlice,fill:e.color,stroke:j.value.backgroundColor,"stroke-linecap":`round`},null,8,tt))),128)),e.$slots.pattern?(h(!0),f(c,{key:2},_(Z.value,(e,t)=>(h(),f(`path`,{key:`arc_${t}`,d:e.arcSlice,fill:`url(#pattern_${C.value}_${t})`,stroke:j.value.backgroundColor,"stroke-linecap":`round`},null,8,nt))),128)):d(``,!0),A.value.indicatorArc.show?(h(),f(`path`,{key:3,d:ln.value,fill:A.value.indicatorArc.fill},null,8,rt)):d(``,!0),D.value.show&&D.value.curved?(h(),f(c,{key:4},[(h(!0),f(c,null,_(Z.value,(e,t)=>(h(),f(`path`,{id:`curve_${C.value}_${t}`,d:`M ${G.value.x1},${G.value.y1} m -${Q.value[t]},0 a ${Q.value[t]},${Q.value[t]} 0 1,1 ${2*Q.value[t]},0 a ${Q.value[t]},${Q.value[t]} 0 1,1 -${2*Q.value[t]},0`,fill:`transparent`},null,8,it))),256)),(h(!0),f(c,null,_(Z.value,(e,t)=>(h(),f(`text`,{fill:D.value.useSerieColor?e.color:D.value.color,"font-size":J.value,"font-weight":D.value.bold?`bold`:`normal`,"text-anchor":`middle`},[p(`textPath`,{href:`#curve_${C.value}_${t}`,startOffset:sn.value[t]},y(e.name||``),9,ot)],8,at))),256))],64)):d(``,!0),D.value.show&&!D.value.curved?(h(!0),f(c,{key:5},_(nn.value,(e,t)=>(h(),f(`text`,{class:`vue-ui-gauge-label-flat`,"text-anchor":b(ae)(e,!1,12).anchor,fill:D.value.useSerieColor?e.color:D.value.color,"font-size":J.value,"font-weight":D.value.bold?`bold`:`normal`,innerHTML:b(ee)({content:String(e.name??``),fontSize:J.value,fill:D.value.useSerieColor?e.color:D.value.color,x:e.center.endX,y:e.center.endY})},null,8,st))),256)):d(``,!0),A.value.track.useGradient?(h(!0),f(c,{key:6},_(cn.value,(e,t)=>(h(),f(`path`,{key:`arc_${t}`,d:e.arcSlice,fill:`#FFFFFF`,stroke:`none`,"stroke-linecap":`round`,filter:`url(#blur_${C.value})`},null,8,ct))),128)):d(``,!0),E.value.show?(h(),f(c,{key:7},[p(`line`,m(rn.value,{stroke:j.value.backgroundColor,"stroke-width":E.value.strokeWidth+2,"stroke-linecap":`round`}),null,16,lt),p(`line`,m(rn.value,{stroke:E.value.stroke,"stroke-width":E.value.strokeWidth,"stroke-linecap":`round`}),null,16,ut),(h(!0),f(c,null,_(an.value,e=>(h(),f(`line`,m({ref_for:!0},e,{stroke:j.value.backgroundColor,"stroke-width":E.value.strokeWidth+2,"stroke-linecap":`round`}),null,16,dt))),256)),(h(!0),f(c,null,_(an.value,e=>(h(),f(`line`,m({ref_for:!0},e,{stroke:E.value.stroke,"stroke-width":E.value.strokeWidth,"stroke-linecap":`round`}),null,16,ft))),256))],64)):d(``,!0),O.value.show?(h(),f(`g`,pt,[(h(!0),f(c,null,_(Z.value,(e,t)=>(h(),f(`text`,{x:b(r)({centerX:G.value.x1,centerY:X.value.base,initX:e.center.startX,initY:e.center.startY,offset:z.value.markerOffset}).x,y:b(r)({centerX:G.value.x1,centerY:X.value.base,initX:e.center.startX,initY:e.center.startY,offset:z.value.markerOffset}).y,"text-anchor":e.center.startX<G.value.x1-5?`end`:e.center.startX>G.value.x1+5?`start`:`middle`,"font-size":z.value.labelFontSize*O.value.fontSizeRatio,"font-weight":`${O.value.bold?`bold`:`normal`}`,fill:O.value.color},y(b(oe)(O.value.formatter,e.from,b(n)({p:O.value.prefix,v:e.from,s:O.value.suffix,r:O.value.roundingValue}))),9,mt))),256))])):d(``,!0),O.value.show?(h(),f(`text`,{key:9,x:b(r)({centerX:z.value.width/2,centerY:X.value.base,initX:Z.value.at(-1).endX,initY:Z.value.at(-1).endY,offset:z.value.markerOffset}).x,y:b(r)({centerX:z.value.width/2,centerY:X.value.base,initX:Z.value.at(-1).endX,initY:Z.value.at(-1).endY,offset:z.value.markerOffset}).y,"text-anchor":`start`,"font-size":z.value.labelFontSize*O.value.fontSizeRatio,"font-weight":`${O.value.bold?`bold`:`normal`}`,fill:O.value.color},y(b(oe)(O.value.formatter,B.value,b(n)({p:O.value.prefix,v:B.value,s:O.value.suffix,r:O.value.roundingValue}))),9,ht)):d(``,!0),k.value.show?(h(),f(c,{key:10},[k.value.type===`rounded`?(h(),f(`g`,gt,[isNaN(G.value.x2)?d(``,!0):(h(),f(`line`,{key:0,x1:G.value.x1,y1:G.value.y1,x2:G.value.x2,y2:G.value.y2,stroke:k.value.stroke,"stroke-width":z.value.pointerStrokeWidth,"stroke-linecap":`round`},null,8,_t)),isNaN(G.value.x2)?d(``,!0):(h(),f(`line`,{key:1,x1:G.value.x1,y1:G.value.y1,x2:G.value.x2,y2:G.value.y2,stroke:k.value.useRatingColor?Qt.value:k.value.color,"stroke-linecap":`round`,"stroke-width":z.value.pointerStrokeWidth*.7},null,8,vt)),!isNaN(G.value.x2)&&A.value.track.useGradient?(h(),f(`line`,{key:2,x1:G.value.x1,y1:G.value.y1,x2:G.value.x2,y2:G.value.y2,stroke:`white`,"stroke-linecap":`round`,"stroke-width":z.value.pointerStrokeWidth*.3,filter:`url(#blur_${C.value})`},null,8,yt)):d(``,!0)])):(h(),f(`g`,bt,[Zt.value?(h(),f(`path`,{key:0,d:Zt.value,fill:k.value.useRatingColor?Qt.value:k.value.color,stroke:k.value.stroke,"stroke-width":k.value.circle.strokeWidth,"stroke-linejoin":`round`},null,8,xt)):d(``,!0)])),p(`circle`,{cx:z.value.width/2,cy:X.value.base,fill:k.value.circle.color,r:z.value.pointerRadius<=0?1e-4:z.value.pointerRadius,"stroke-width":k.value.circle.strokeWidth,stroke:k.value.circle.stroke},null,8,St)],64)):d(``,!0),j.value.legend.show?(h(),f(`text`,{key:11,x:z.value.width/2,y:X.value.ratingBase,"text-anchor":`middle`,"font-size":z.value.legendFontSize,"font-weight":`bold`,fill:j.value.legend.useRatingColor?Qt.value:j.value.legend.color},y(b(oe)(j.value.legend.formatter,U.value,b(n)({p:j.value.legend.prefix+(j.value.legend.showPlusSymbol&&U.value>0?`+`:``),v:U.value,s:j.value.legend.suffix,r:j.value.legend.roundingValue}))),9,Ct)):d(``,!0),v(e.$slots,`svg`,{svg:{...z.value,isPrintingImg:b(F)||b(I)||b(gn),isPrintingSvg:b(_n)}},void 0,!0)],14,Xe)),e.$slots.watermark?(h(),f(`div`,wt,[v(e.$slots,`watermark`,Be(Le({isPrinting:b(F)||b(I)||b(gn)||b(_n)})),void 0,!0)])):d(``,!0),p(`div`,{ref_key:`chartLegend`,ref:Ft},[v(e.$slots,`legend`,{legend:L.value},void 0,!0)],512),e.$slots.source?(h(),f(`div`,{key:5,ref_key:`source`,ref:It,dir:`auto`},[v(e.$slots,`source`,{},void 0,!0)],512)):d(``,!0),v(e.$slots,`skeleton`,{},()=>[b(Vt)?(h(),u(me,{key:0})):d(``,!0)],!0)],46,Je))}},[[`__scopeId`,`data-v-f504fb15`]]);export{qe as n,Tt as t};
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Bt as r,Ht as i,It as a,J as ee,Jt as o,O as te,S as ne,X as re,at as s,b as ie,f as ae,i as oe,in as se,rn as ce,t as le,w as ue,yt as de,zt as fe}from"./lib-rPeBMZrn.js";import{n as pe,t as me}from"./BaseScanner-8NdoBs7B.js";import{n as he}from"./useHints-BH9r_0Vd.js";import{t as ge}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as _e}from"./resolveChartConfig-CIhClE5R.js";import{t as ve}from"./chartImage-DPGnEuYM.js";import{n as ye}from"./Title-BliHuXfT.js";import{t as be}from"./useChartExport-BZts4KFb.js";import{n as xe,t as Se}from"./annotationSlots-BRR85CqJ.js";import{n as Ce,t as we}from"./userOptionsSlots-DYuo-E5m.js";import{t as Te}from"./usePrinter-sVoTzet1.js";import{c as Ee}from"./canvas-lib-22VpOI4_.js";import{t as De}from"./useResponsive-CENUxfEL.js";import{t as Oe}from"./DefGrad-DKMq1REY.js";import{t as ke}from"./useUserOptionState-CXlFnwPv.js";import{t as Ae}from"./useChartAccessibility-DOMuYJfm.js";import{t as je}from"./usePrefersMotion-XLHwega2.js";import{t as Me}from"./useAutoSizeLabelsInsideViewbox-AIRF0PlD.js";import{t as Ne}from"./vue_ui_gauge-BJhb6yqE.js";import{Fragment as c,computed as l,createBlock as u,createCommentVNode as d,createElementBlock as f,createElementVNode as p,createSlots as Pe,createVNode as Fe,defineAsyncComponent as Ie,guardReactiveProps as Le,mergeProps as m,nextTick as Re,normalizeClass as ze,normalizeProps as Be,normalizeStyle as Ve,onBeforeUnmount as He,onMounted as Ue,openBlock as h,ref as g,renderList as _,renderSlot as v,shallowRef as We,toDisplayString as y,toRefs as Ge,unref as b,watch as x,withCtx as Ke}from"vue";var qe=/* @__PURE__ */ e({default:()=>Tt}),Je=[`id`],Ye={key:0},Xe=[`xmlns`,`viewBox`],Ze=[`width`,`height`],Qe=[`id`],$e=[`stdDeviation`],et={key:1},tt=[`d`,`fill`,`stroke`],nt=[`d`,`fill`,`stroke`],rt=[`d`,`fill`],it=[`id`,`d`],at=[`fill`,`font-size`,`font-weight`],ot=[`href`,`startOffset`],st=[`text-anchor`,`fill`,`font-size`,`font-weight`,`innerHTML`],ct=[`d`,`filter`],lt=[`stroke`,`stroke-width`],ut=[`stroke`,`stroke-width`],dt=[`stroke`,`stroke-width`],ft=[`stroke`,`stroke-width`],pt={key:8},mt=[`x`,`y`,`text-anchor`,`font-size`,`font-weight`,`fill`],ht=[`x`,`y`,`font-size`,`font-weight`,`fill`],gt={key:0},_t=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],vt=[`x1`,`y1`,`x2`,`y2`,`stroke`,`stroke-width`],yt=[`x1`,`y1`,`x2`,`y2`,`stroke-width`,`filter`],bt={key:1},xt=[`d`,`fill`,`stroke`,`stroke-width`],St=[`cx`,`cy`,`fill`,`r`,`stroke-width`,`stroke`],Ct=[`x`,`y`,`font-size`,`fill`],wt={key:4,class:`vue-data-ui-watermark`},Tt=/*#__PURE__*/ ge({__name:`vue-ui-gauge`,props:{config:{type:Object,default(){return{}}},dataset:{type:Object,default(){return{}}}},emits:[`copyAlt`],setup(e,{expose:ge,emit:qe}){let Tt=Ie(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Et=Ie(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Dt=Ie(()=>import(`./PackageVersion-BIhjLNBU.js`).then(e=>e.t)),{vue_ui_gauge:Ot}=t(),kt=je(),S=e,At=qe,jt=l(()=>!!S.dataset&&Object.keys(S.dataset).length>0&&S.dataset.series&&S.dataset.series.length),C=g(re()),Mt=g(null),Nt=g(0),w=g(null),Pt=g(null),Ft=g(null),It=g(null),Lt=g(null),Rt=g(0),T=g(Gt()),E=l(()=>T.value.style.chart.layout.segmentSeparators),D=l(()=>T.value.style.chart.layout.segmentNames),O=l(()=>T.value.style.chart.layout.markers),k=l(()=>T.value.style.chart.layout.pointer),A=l(()=>T.value.style.chart.layout),j=l(()=>T.value.style.chart);he({config:()=>T.value,dataset:()=>S.dataset,component:`VueUiGauge`,rules:[{test:e=>e?.series&&e.series?.length>6,message:[`👀 The number of steps is > 6, which can make the chart hard to read and labels overlap. Consider:`,``,`▶️ Using broader steps.`]}]});let zt=l(()=>T.value.userOptions.useCursorPointer),Bt=l(()=>se({defaultConfig:{userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,animation:{use:!1},layout:{markers:{show:!1},segmentSeparators:{stroke:`#6A6A6A`},segmentNames:{show:!1},indicatorArc:{fill:`#6A6A6A50`},pointer:{stroke:`#6A6A6A`,useRatingColor:!0,circle:{stroke:`#6A6A6A`,color:`#6A6A6A`}}},legend:{show:!1}}}},userConfig:T.value.skeletonConfig??{}})),{loading:Vt,FINAL_DATASET:M,manualLoading:N}=pe({...Ge(S),FINAL_CONFIG:T,prepareConfig:Gt,callback:()=>{Promise.resolve().then(async()=>{await Re()})},skeletonDataset:S.config?.skeletonDataset??{value:0,series:[{from:-1,to:0,name:`_`,color:`#A1A1A1`},{from:0,to:1,name:`__`,color:`#CACACA`}]},skeletonConfig:se({defaultConfig:T.value,userConfig:Bt.value})}),{userOptionsVisible:Ht,setUserOptionsVisibility:Ut,keepUserOptionState:Wt}=ke({config:T.value}),{svgRef:P}=Ae({config:j.value.title});x(()=>S.config,e=>{Vt.value||(T.value=Gt()),Ht.value=!T.value.userOptions.showOnChartHover,en(),Rt.value+=1},{deep:!0}),x(()=>S.dataset,e=>{en(),e&&Object.keys(e).length>0&&(N.value=T.value?.loading??!1)},{deep:!0,immediate:!1});function Gt(){return _e(S.config,Ot,Ne)}let{isPrinting:F,isImaging:I,generatePdf:Kt,generateImage:qt}=Te({elementId:`vue-ui-gauge_${C.value}`,fileName:j.value.title.text||`vue-ui-gauge`,options:T.value.userOptions.print}),Jt=l(()=>T.value.userOptions.show&&!j.value.title.text),Yt=l(()=>ue(T.value.customPalette)),L=l(()=>{if(fe(M.value.series||{}))return{value:0,series:[{from:0,to:0}]};let e=[];(M.value.series||[]).forEach(t=>{e.push(t.from||1e-7),e.push(t.to||1e-7)});let t=Math.max(...e);return{...M.value,series:(M.value.series||[]).map((e,n)=>({...e,color:ne(e.color)||Yt.value[n]||i[n],value:((e.to||0)-(e.from||0))/t*100}))}}),R=g(512),z=g({height:358.4,width:R.value,top:0,bottom:358.4,centerX:179.2,centerY:R.value/2,labelFontSize:18,legendFontSize:j.value.legend.fontSize,pointerRadius:k.value.circle.radius,trackSize:A.value.track.size,pointerSize:k.value.size,pointerStrokeWidth:k.value.strokeWidth,markerOffset:O.value.offsetY+3,segmentFontSize:D.value.fontSize}),B=g(0),V=g(0),H=l(()=>j.value.animation.use&&!kt.value),U=g(H.value?Math.min(...M.value.series.map(e=>e.from)):M.value.value),W=null;function Xt(){W!==null&&(cancelAnimationFrame(W),W=null)}x(H,e=>{e||(Xt(),U.value=M.value.value)}),x(()=>M.value.value,()=>{tn(M.value.value)});let G=l(()=>{let e=z.value.width/2,t=X.value.base,n=Math.PI*((U.value+0-V.value)/(B.value-V.value))+Math.PI;return{x1:e,y1:t,x2:e+X.value.pointerSize*z.value.pointerSize*.9*Math.cos(n),y2:t+X.value.pointerSize*z.value.pointerSize*.9*Math.sin(n)}}),Zt=l(()=>{let e=z.value.width/2,t=X.value.base,n=Math.PI*((U.value+0-V.value)/(B.value-V.value))+Math.PI,r=e+X.value.pointerSize*z.value.pointerSize*.9*Math.cos(n),i=t+X.value.pointerSize*z.value.pointerSize*.9*Math.sin(n),a=z.value.pointerRadius,ee=e+a*Math.cos(n+Math.PI/2),o=t+a*Math.sin(n+Math.PI/2),te=e+a*Math.cos(n-Math.PI/2),ne=t+a*Math.sin(n-Math.PI/2);return isNaN(r)?null:`M ${r},${i} ${ee},${o} ${te},${ne} Z`}),Qt=l(()=>{for(let e=0;e<L.value.series.length;e+=1){let{color:t,from:n,to:r}=L.value.series[e];if(U.value>=n&&U.value<=r)return t}return`#2D353C`}),K=We(null),q=We(null),J=l({get:()=>z.value.segmentFontSize,set:e=>e}),{autoSizeLabels:$t}=Me({svgRef:P,fontSize:z.value.segmentFontSize,minFontSize:D.value.minFontSize,sizeRef:J,labelClass:`.vue-ui-gauge-label-flat`}),Y=l(()=>T.value.debug);function en(){let e=!1;if(fe(S.dataset)?(s({componentName:`VueUiGauge`,type:`dataset`,debug:Y.value}),N.value=!0,e=!0):(de({datasetObject:S.dataset,requiredAttributes:[`value`,`series`]}).forEach(t=>{s({componentName:`VueUiGauge`,type:`datasetAttribute`,property:t,debug:Y.value}),N.value=!0,e=!0}),Object.hasOwn(S.dataset,`series`)&&(S.dataset.series.length?S.dataset.series.forEach((t,n)=>{de({datasetObject:t,requiredAttributes:[`from`,`to`]}).forEach(t=>{s({componentName:`VueUiGauge`,type:`datasetSerieAttribute`,property:t,index:n,debug:Y.value}),N.value=!0,e=!0})}):(s({componentName:`VueUiGauge`,type:`datasetAttributeEmpty`,property:`series`,debug:Y.value}),N.value=!0,e=!0))),N.value=e,tn(M.value.value||0),T.value.responsive){let e=Ee(()=>{let{width:e,height:t}=De({chart:w.value,title:j.value.title.text?Pt.value:null,legend:Ft.value,source:It.value,noTitle:Lt.value});t-=12,requestAnimationFrame(()=>{z.value.width=e,z.value.height=t,z.value.centerX=e/2,z.value.centerY=R.value/2/358.4*t,z.value.bottom=t,z.value.labelFontSize=18/R.value*Math.min(t,e)<10?10:18/R.value*Math.min(t,e),z.value.legendFontSize=j.value.legend.fontSize/R.value*Math.min(t,e)<14?14:j.value.legend.fontSize/R.value*Math.min(t,e),z.value.pointerRadius=k.value.circle.radius/R.value*Math.min(t,e),z.value.trackSize=A.value.track.size/R.value*Math.min(t,e),z.value.pointerStrokeWidth=ce({relator:Math.min(e,t),adjuster:R.value,source:k.value.strokeWidth,threshold:2,fallback:2}),z.value.markerOffset=ce({relator:Math.max(e,t),adjuster:R.value,source:O.value.offsetY+3,threshold:2,fallback:2}),z.value.segmentFontSize=ce({relator:Math.min(e,t),adjuster:R.value,source:D.value.fontSize,threshold:8,fallback:8})}),$t()});K.value&&(q.value&&K.value.unobserve(q.value),K.value.disconnect()),K.value=new ResizeObserver(e),q.value=w.value.parentNode,K.value.observe(q.value)}$t()}Ue(()=>{en()}),He(()=>{Xt(),K.value&&(q.value&&K.value.unobserve(q.value),K.value.disconnect())});function tn(e){let t=[];if((L.value.series||[]).forEach(e=>{t.push(e.from||0),t.push(e.to||0)}),B.value=Math.max(...t),V.value=Math.min(...t),Xt(),!H.value){U.value=e;return}let n=j.value.animation.speed,r=Math.abs(e-U.value)/(n*60);function i(){H.value?(U.value<e?U.value=Math.min(U.value+r,e):U.value>e&&(U.value=Math.max(U.value-r,e)),W=U.value===e?null:requestAnimationFrame(i)):(U.value=e,W=null)}i()}let X=l(()=>{let e=T.value.responsive?Math.min(z.value.width,z.value.height):z.value.width,t=2.5/A.value.radiusRatio;return{arcs:e/t,gradients:e/(t*1.1),base:T.value.responsive?z.value.height/1.618:z.value.height*.7,ratingBase:T.value.responsive?z.value.height/2+z.value.height/4:z.value.height*.9,pointerSize:T.value.responsive?Math.min(z.value.width,z.value.height)/3:z.value.width/3.2}}),Z=l(()=>a({series:L.value.series},z.value.width/2,X.value.base,X.value.arcs,X.value.arcs,1,1,1,180,109.9495,40*z.value.trackSize)),nn=l(()=>a({series:L.value.series},z.value.width/2,X.value.base,X.value.arcs*D.value.offsetRatio,X.value.arcs*D.value.offsetRatio,1,1,1,180,109.9495,40*z.value.trackSize)),Q=l(()=>Z.value.map(e=>X.value.arcs*D.value.offsetRatio*(e.nameOffsetRatio||1))),rn=l(()=>{let{x:e,y:t}=r({initX:Z.value[0].firstSeparator.x,initY:Z.value[0].firstSeparator.y,centerX:G.value.x1,centerY:G.value.y1,offset:-E.value.offsetIn}),{x:n,y:i}=r({initX:Z.value[0].startX,initY:Z.value[0].startY,centerX:G.value.x1,centerY:G.value.y1,offset:E.value.offsetOut});return{x1:e,y1:t,x2:n,y2:i}}),an=l(()=>Z.value.map(e=>{let{x:t,y:n}=r({initX:e.separator.x,initY:e.separator.y,centerX:G.value.x1,centerY:G.value.y1,offset:-E.value.offsetIn}),{x:i,y:a}=r({initX:e.endX,initY:e.endY,centerX:G.value.x1,centerY:G.value.y1,offset:E.value.offsetOut});return{x1:t,y1:n,x2:i,y2:a}}));function on(e){if(e.reduce((e,t)=>e+t,0)>100)throw Error(`Total % must not exceed 100`);let t=0;return e.map(e=>(t+=e,`${t/100*50-e/4}%`))}let sn=l(()=>on(Z.value.map(e=>e.proportion*100))),cn=l(()=>a({series:L.value.series},z.value.width/2,X.value.base,X.value.gradients,X.value.gradients,.95,1,1,180,110.02,2*z.value.trackSize)),ln=l(()=>{let e=V.value>=0?-V.value:Math.abs(V.value);return te({radius:A.value.indicatorArc.radius*z.value.trackSize,centerX:z.value.width/2,centerY:X.value.base,percentage:ie((U.value+e)/(B.value+e))})}),$=g(!1);function un(e){$.value=e,Nt.value+=1}let dn=g(!1);function fn(){dn.value=!dn.value}let pn=ve(w,()=>j.value.title.text),mn=l(()=>j.value.backgroundColor),hn=l(()=>j.value.title),{isCallbackImaging:gn,isCallbackSvg:_n,generateSvg:vn,onGenerateImage:yn}=be({svg:P,title:hn,legend:null,legendItems:null,backgroundColor:mn,getSvgCallback:()=>T.value.userOptions.callbacks.svg,generateImage:qt});async function bn(){At(`copyAlt`,{config:T.value,dataset:L.value}),T.value.userOptions.callbacks.altCopy?await Promise.resolve(T.value.userOptions.callbacks.altCopy({config:T.value,dataset:L.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}return ge({getImage:pn,generatePdf:Kt,generateImage:qt,generateSvg:vn,toggleAnnotator:fn,toggleFullscreen:un,copyAlt:bn}),(e,t)=>(h(),f(`div`,{class:ze(`vue-data-ui-component vue-ui-gauge ${$.value?`vue-data-ui-wrapper-fullscreen`:``}`),ref_key:`gaugeChart`,ref:w,id:`vue-ui-gauge_${C.value}`,style:Ve(`font-family:${T.value.style.fontFamily};width:100%; text-align:center;background:${j.value.backgroundColor};${T.value.responsive?`height: 100%`:``}`),onMouseenter:t[0]||=()=>b(Ut)(!0),onMouseleave:t[1]||=()=>b(Ut)(!1)},[T.value.userOptions.buttons.annotator?(h(),u(b(Tt),{key:0,svgRef:b(P),backgroundColor:j.value.backgroundColor,color:j.value.color,active:dn.value,isCursorPointer:zt.value,palette:T.value.userOptions.annotatorPalette,onClose:fn},Pe({_:2},[_(b(Se),t=>({name:t,fn:Ke(n=>[v(e.$slots,t,Be(Le(b(xe)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):d(``,!0),Jt.value?(h(),f(`div`,{key:1,ref_key:`noTitle`,ref:Lt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):d(``,!0),j.value.title.text?(h(),f(`div`,{key:2,ref_key:`chartTitle`,ref:Pt,style:`width:100%;background:transparent;padding-bottom:12px`},[(h(),u(ye,{key:`title_${Rt.value}`,config:{title:{cy:`gauge-div-title`,...j.value.title},subtitle:{cy:`gauge-div-subtitle`,...j.value.title.subtitle}}},{default:Ke(()=>[T.value.translations.base&&b(M).base?(h(),f(`span`,Ye,y(T.value.translations.base)+`: `+y(b(M).base),1)):d(``,!0)]),_:1},8,[`config`]))],512)):d(``,!0),T.value.userOptions.show&&jt.value&&(b(Wt)||b(Ht))?(h(),u(b(Et),{ref_key:`details`,ref:Mt,key:`user_options_${Nt.value}`,backgroundColor:j.value.backgroundColor,color:j.value.color,isImaging:b(I),isPrinting:b(F),uid:C.value,hasXls:!1,hasPdf:T.value.userOptions.buttons.pdf,hasImg:T.value.userOptions.buttons.img,hasSvg:T.value.userOptions.buttons.svg,hasFullscreen:T.value.userOptions.buttons.fullscreen,hasAltCopy:T.value.userOptions.buttons.altCopy,isFullscreen:$.value,titles:{...T.value.userOptions.buttonTitles},chartElement:w.value,callbacks:T.value.userOptions.callbacks,printScale:T.value.userOptions.print.scale,position:T.value.userOptions.position,hasAnnotator:T.value.userOptions.buttons.annotator,isAnnotation:dn.value,isCursorPointer:zt.value,onToggleFullscreen:un,onGeneratePdf:b(Kt),onGenerateImage:b(yn),onGenerateSvg:b(vn),onToggleAnnotator:fn,onCopyAlt:bn,style:Ve({visibility:b(Wt)?b(Ht)?`visible`:`hidden`:`visible`})},Pe({_:2},[_(b(Ce)(e.$slots,`menuIcon optionPdf optionImg optionSvg optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:Ke(n=>[v(e.$slots,t,Be(Le(b(we)(t,n))),void 0,!0)])}))]),1032,[`backgroundColor`,`color`,`isImaging`,`isPrinting`,`uid`,`hasPdf`,`hasImg`,`hasSvg`,`hasFullscreen`,`hasAltCopy`,`isFullscreen`,`titles`,`chartElement`,`callbacks`,`printScale`,`position`,`hasAnnotator`,`isAnnotation`,`isCursorPointer`,`onGeneratePdf`,`onGenerateImage`,`onGenerateSvg`,`style`])):d(``,!0),(h(),f(`svg`,{ref_key:`svgRef`,ref:P,xmlns:b(le),class:ze({"vue-data-ui-fullscreen--on":$.value,"vue-data-ui-fulscreen--off":!$.value}),viewBox:`0 0 ${z.value.width<=0?10:z.value.width} ${z.value.height<=0?10:z.value.height}`,style:Ve(`max-width:100%;overflow:hidden !important;background:transparent;color:${j.value.color}`)},[Fe(b(Dt)),v(e.$slots,`svg-underlayer`,{svg:{...z.value,isPrintingImg:b(F)||b(I)||b(gn),isPrintingSvg:b(_n)}},void 0,!0),e.$slots[`chart-background`]?(h(),f(`foreignObject`,{key:0,x:0,y:0,width:z.value.width<=0?10:z.value.width,height:z.value.height<=0?10:z.value.height,style:{pointerEvents:`none`}},[v(e.$slots,`chart-background`,{},void 0,!0)],8,Ze)):d(``,!0),p(`defs`,null,[Fe(Oe,{t:`radial`,id:`gradient_${C.value}`,cx:`50%`,cy:`50%`,r:`50%`,fx:`50%`,fy:`50%`,stops:[[`0%`,b(o)(`#FFFFFF`,1),1],[`80%`,b(o)(`#FFFFFF`,A.value.track.gradientIntensity),1],[`100%`,b(o)(`#FFFFFF`,1),1]]},null,8,[`id`,`stops`])]),p(`defs`,null,[p(`filter`,{id:`blur_${C.value}`,x:`-50%`,y:`-50%`,width:`200%`,height:`200%`},[p(`feGaussianBlur`,{in:`SourceGraphic`,stdDeviation:100/A.value.track.gradientIntensity},null,8,$e)],8,Qe)]),e.$slots.pattern?(h(),f(`g`,et,[(h(!0),f(c,null,_(Z.value,(t,n)=>(h(),f(`defs`,null,[v(e.$slots,`pattern`,m({ref_for:!0},{seriesIndex:n,patternId:`pattern_${C.value}_${n}`}),void 0,!0)]))),256))])):d(``,!0),(h(!0),f(c,null,_(Z.value,(e,t)=>(h(),f(`path`,{key:`arc_${t}`,d:e.arcSlice,fill:e.color,stroke:j.value.backgroundColor,"stroke-linecap":`round`},null,8,tt))),128)),e.$slots.pattern?(h(!0),f(c,{key:2},_(Z.value,(e,t)=>(h(),f(`path`,{key:`arc_${t}`,d:e.arcSlice,fill:`url(#pattern_${C.value}_${t})`,stroke:j.value.backgroundColor,"stroke-linecap":`round`},null,8,nt))),128)):d(``,!0),A.value.indicatorArc.show?(h(),f(`path`,{key:3,d:ln.value,fill:A.value.indicatorArc.fill},null,8,rt)):d(``,!0),D.value.show&&D.value.curved?(h(),f(c,{key:4},[(h(!0),f(c,null,_(Z.value,(e,t)=>(h(),f(`path`,{id:`curve_${C.value}_${t}`,d:`M ${G.value.x1},${G.value.y1} m -${Q.value[t]},0 a ${Q.value[t]},${Q.value[t]} 0 1,1 ${2*Q.value[t]},0 a ${Q.value[t]},${Q.value[t]} 0 1,1 -${2*Q.value[t]},0`,fill:`transparent`},null,8,it))),256)),(h(!0),f(c,null,_(Z.value,(e,t)=>(h(),f(`text`,{fill:D.value.useSerieColor?e.color:D.value.color,"font-size":J.value,"font-weight":D.value.bold?`bold`:`normal`,"text-anchor":`middle`},[p(`textPath`,{href:`#curve_${C.value}_${t}`,startOffset:sn.value[t]},y(e.name||``),9,ot)],8,at))),256))],64)):d(``,!0),D.value.show&&!D.value.curved?(h(!0),f(c,{key:5},_(nn.value,(e,t)=>(h(),f(`text`,{class:`vue-ui-gauge-label-flat`,"text-anchor":b(ae)(e,!1,12).anchor,fill:D.value.useSerieColor?e.color:D.value.color,"font-size":J.value,"font-weight":D.value.bold?`bold`:`normal`,innerHTML:b(ee)({content:String(e.name??``),fontSize:J.value,fill:D.value.useSerieColor?e.color:D.value.color,x:e.center.endX,y:e.center.endY})},null,8,st))),256)):d(``,!0),A.value.track.useGradient?(h(!0),f(c,{key:6},_(cn.value,(e,t)=>(h(),f(`path`,{key:`arc_${t}`,d:e.arcSlice,fill:`#FFFFFF`,stroke:`none`,"stroke-linecap":`round`,filter:`url(#blur_${C.value})`},null,8,ct))),128)):d(``,!0),E.value.show?(h(),f(c,{key:7},[p(`line`,m(rn.value,{stroke:j.value.backgroundColor,"stroke-width":E.value.strokeWidth+2,"stroke-linecap":`round`}),null,16,lt),p(`line`,m(rn.value,{stroke:E.value.stroke,"stroke-width":E.value.strokeWidth,"stroke-linecap":`round`}),null,16,ut),(h(!0),f(c,null,_(an.value,e=>(h(),f(`line`,m({ref_for:!0},e,{stroke:j.value.backgroundColor,"stroke-width":E.value.strokeWidth+2,"stroke-linecap":`round`}),null,16,dt))),256)),(h(!0),f(c,null,_(an.value,e=>(h(),f(`line`,m({ref_for:!0},e,{stroke:E.value.stroke,"stroke-width":E.value.strokeWidth,"stroke-linecap":`round`}),null,16,ft))),256))],64)):d(``,!0),O.value.show?(h(),f(`g`,pt,[(h(!0),f(c,null,_(Z.value,(e,t)=>(h(),f(`text`,{x:b(r)({centerX:G.value.x1,centerY:X.value.base,initX:e.center.startX,initY:e.center.startY,offset:z.value.markerOffset}).x,y:b(r)({centerX:G.value.x1,centerY:X.value.base,initX:e.center.startX,initY:e.center.startY,offset:z.value.markerOffset}).y,"text-anchor":e.center.startX<G.value.x1-5?`end`:e.center.startX>G.value.x1+5?`start`:`middle`,"font-size":z.value.labelFontSize*O.value.fontSizeRatio,"font-weight":`${O.value.bold?`bold`:`normal`}`,fill:O.value.color},y(b(oe)(O.value.formatter,e.from,b(n)({p:O.value.prefix,v:e.from,s:O.value.suffix,r:O.value.roundingValue}))),9,mt))),256))])):d(``,!0),O.value.show?(h(),f(`text`,{key:9,x:b(r)({centerX:z.value.width/2,centerY:X.value.base,initX:Z.value.at(-1).endX,initY:Z.value.at(-1).endY,offset:z.value.markerOffset}).x,y:b(r)({centerX:z.value.width/2,centerY:X.value.base,initX:Z.value.at(-1).endX,initY:Z.value.at(-1).endY,offset:z.value.markerOffset}).y,"text-anchor":`start`,"font-size":z.value.labelFontSize*O.value.fontSizeRatio,"font-weight":`${O.value.bold?`bold`:`normal`}`,fill:O.value.color},y(b(oe)(O.value.formatter,B.value,b(n)({p:O.value.prefix,v:B.value,s:O.value.suffix,r:O.value.roundingValue}))),9,ht)):d(``,!0),k.value.show?(h(),f(c,{key:10},[k.value.type===`rounded`?(h(),f(`g`,gt,[isNaN(G.value.x2)?d(``,!0):(h(),f(`line`,{key:0,x1:G.value.x1,y1:G.value.y1,x2:G.value.x2,y2:G.value.y2,stroke:k.value.stroke,"stroke-width":z.value.pointerStrokeWidth,"stroke-linecap":`round`},null,8,_t)),isNaN(G.value.x2)?d(``,!0):(h(),f(`line`,{key:1,x1:G.value.x1,y1:G.value.y1,x2:G.value.x2,y2:G.value.y2,stroke:k.value.useRatingColor?Qt.value:k.value.color,"stroke-linecap":`round`,"stroke-width":z.value.pointerStrokeWidth*.7},null,8,vt)),!isNaN(G.value.x2)&&A.value.track.useGradient?(h(),f(`line`,{key:2,x1:G.value.x1,y1:G.value.y1,x2:G.value.x2,y2:G.value.y2,stroke:`white`,"stroke-linecap":`round`,"stroke-width":z.value.pointerStrokeWidth*.3,filter:`url(#blur_${C.value})`},null,8,yt)):d(``,!0)])):(h(),f(`g`,bt,[Zt.value?(h(),f(`path`,{key:0,d:Zt.value,fill:k.value.useRatingColor?Qt.value:k.value.color,stroke:k.value.stroke,"stroke-width":k.value.circle.strokeWidth,"stroke-linejoin":`round`},null,8,xt)):d(``,!0)])),p(`circle`,{cx:z.value.width/2,cy:X.value.base,fill:k.value.circle.color,r:z.value.pointerRadius<=0?1e-4:z.value.pointerRadius,"stroke-width":k.value.circle.strokeWidth,stroke:k.value.circle.stroke},null,8,St)],64)):d(``,!0),j.value.legend.show?(h(),f(`text`,{key:11,x:z.value.width/2,y:X.value.ratingBase,"text-anchor":`middle`,"font-size":z.value.legendFontSize,"font-weight":`bold`,fill:j.value.legend.useRatingColor?Qt.value:j.value.legend.color},y(b(oe)(j.value.legend.formatter,U.value,b(n)({p:j.value.legend.prefix+(j.value.legend.showPlusSymbol&&U.value>0?`+`:``),v:U.value,s:j.value.legend.suffix,r:j.value.legend.roundingValue}))),9,Ct)):d(``,!0),v(e.$slots,`svg`,{svg:{...z.value,isPrintingImg:b(F)||b(I)||b(gn),isPrintingSvg:b(_n)}},void 0,!0)],14,Xe)),e.$slots.watermark?(h(),f(`div`,wt,[v(e.$slots,`watermark`,Be(Le({isPrinting:b(F)||b(I)||b(gn)||b(_n)})),void 0,!0)])):d(``,!0),p(`div`,{ref_key:`chartLegend`,ref:Ft},[v(e.$slots,`legend`,{legend:L.value},void 0,!0)],512),e.$slots.source?(h(),f(`div`,{key:5,ref_key:`source`,ref:It,dir:`auto`},[v(e.$slots,`source`,{},void 0,!0)],512)):d(``,!0),v(e.$slots,`skeleton`,{},()=>[b(Vt)?(h(),u(me,{key:0})):d(``,!0)],!0)],46,Je))}},[[`__scopeId`,`data-v-f504fb15`]]);export{qe as n,Tt as t};
|