vue-data-ui 3.28.3 → 3.28.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PackageVersion-CXT-eAuk.js → PackageVersion-DhptF5oD.js} +1 -1
- package/dist/components/vue-ui-3d-bar.js +1 -1
- package/dist/components/vue-ui-age-pyramid.js +1 -1
- package/dist/components/vue-ui-bullet.js +1 -1
- package/dist/components/vue-ui-bump.js +1 -1
- package/dist/components/vue-ui-candlestick.js +1 -1
- package/dist/components/vue-ui-carousel-table.js +1 -1
- package/dist/components/vue-ui-chestnut.js +1 -1
- package/dist/components/vue-ui-chord.js +1 -1
- package/dist/components/vue-ui-circle-pack.js +1 -1
- package/dist/components/vue-ui-cursor.js +1 -1
- package/dist/components/vue-ui-dag.js +1 -1
- package/dist/components/vue-ui-dashboard.js +1 -1
- package/dist/components/vue-ui-digits.js +1 -1
- package/dist/components/vue-ui-donut-evolution.js +1 -1
- package/dist/components/vue-ui-donut.js +1 -1
- package/dist/components/vue-ui-dumbbell.js +1 -1
- package/dist/components/vue-ui-flow.js +1 -1
- package/dist/components/vue-ui-funnel.js +1 -1
- package/dist/components/vue-ui-galaxy.js +1 -1
- package/dist/components/vue-ui-gauge.js +1 -1
- package/dist/components/vue-ui-geo.js +1 -1
- package/dist/components/vue-ui-gizmo.js +1 -1
- package/dist/components/vue-ui-graph.js +1 -1
- package/dist/components/vue-ui-heatmap.js +1 -1
- package/dist/components/vue-ui-hill.js +1 -1
- package/dist/components/vue-ui-history-plot.js +1 -1
- package/dist/components/vue-ui-horizontal-bar.js +1 -1
- package/dist/components/vue-ui-kpi.js +1 -1
- package/dist/components/vue-ui-molecule.js +1 -1
- package/dist/components/vue-ui-mood-radar.js +1 -1
- package/dist/components/vue-ui-nested-donuts.js +1 -1
- package/dist/components/vue-ui-onion.js +1 -1
- package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
- package/dist/components/vue-ui-quadrant.js +1 -1
- package/dist/components/vue-ui-quick-chart.js +1 -1
- package/dist/components/vue-ui-radar.js +1 -1
- package/dist/components/vue-ui-relation-circle.js +1 -1
- package/dist/components/vue-ui-ridgeline.js +1 -1
- package/dist/components/vue-ui-rings.js +1 -1
- package/dist/components/vue-ui-scatter.js +1 -1
- package/dist/components/vue-ui-skeleton.js +1 -1
- package/dist/components/vue-ui-spark-trend.js +1 -1
- package/dist/components/vue-ui-sparkbar.js +1 -1
- package/dist/components/vue-ui-sparkgauge.js +1 -1
- package/dist/components/vue-ui-sparkhistogram.js +1 -1
- package/dist/components/vue-ui-sparkline.js +1 -1
- package/dist/components/vue-ui-sparkstackbar.js +1 -1
- package/dist/components/vue-ui-stackbar.js +1 -1
- package/dist/components/vue-ui-stackline.js +1 -1
- package/dist/components/vue-ui-strip-plot.js +1 -1
- package/dist/components/vue-ui-table-sparkline.js +1 -1
- package/dist/components/vue-ui-table.js +1 -1
- package/dist/components/vue-ui-thermometer.js +1 -1
- package/dist/components/vue-ui-timer.js +1 -1
- package/dist/components/vue-ui-tiremarks.js +1 -1
- package/dist/components/vue-ui-treemap.js +1 -1
- package/dist/components/vue-ui-vertical-bar.js +1 -1
- package/dist/components/vue-ui-waffle.js +1 -1
- package/dist/components/vue-ui-wheel.js +1 -1
- package/dist/components/vue-ui-word-cloud.js +1 -1
- package/dist/components/vue-ui-world.js +1 -1
- package/dist/components/vue-ui-xy.js +1 -1
- package/dist/package-CX7pZToh.js +1 -0
- package/dist/{render-common-C70bnUVe.js → render-common-DwEiRIJ0.js} +1 -1
- package/dist/ssr/vue-ui-donut.js +1 -1
- package/dist/ssr/vue-ui-xy.js +1 -1
- package/dist/ssr.js +1 -1
- package/dist/vue-data-ui-CORn0LF6.js +1 -0
- package/dist/vue-data-ui.js +1 -1
- package/dist/{vue-ui-3d-bar-ljsy2rX6.js → vue-ui-3d-bar-CJTKyv3A.js} +1 -1
- package/dist/{vue-ui-age-pyramid-a6CK7z3a.js → vue-ui-age-pyramid-6uZzf1w6.js} +1 -1
- package/dist/{vue-ui-bullet-DX4A2Qwo.js → vue-ui-bullet-CsJcLhmV.js} +1 -1
- package/dist/{vue-ui-bump-IvRdB6MD.js → vue-ui-bump-DXpxBWp_.js} +1 -1
- package/dist/{vue-ui-candlestick-BgyUo13S.js → vue-ui-candlestick-Bn_RSZ0k.js} +1 -1
- package/dist/{vue-ui-carousel-table-D01DGfA0.js → vue-ui-carousel-table-ChNykS-r.js} +1 -1
- package/dist/{vue-ui-chestnut-DYrMSzmQ.js → vue-ui-chestnut-DMYQTkxM.js} +1 -1
- package/dist/{vue-ui-chord-CwzQ7QbP.js → vue-ui-chord-Pp0U0-zV.js} +1 -1
- package/dist/{vue-ui-circle-pack-DQHNM9sC.js → vue-ui-circle-pack-We23fOaF.js} +1 -1
- package/dist/{vue-ui-cursor-CTFfbDX8.js → vue-ui-cursor-3-RTIIl-.js} +1 -1
- package/dist/{vue-ui-dag-DF29_9Gg.js → vue-ui-dag-5fVnwEXd.js} +1 -1
- package/dist/{vue-ui-dashboard-D98rMHjI.js → vue-ui-dashboard-Dlwnintv.js} +1 -1
- package/dist/{vue-ui-digits-AoPCgSfP.js → vue-ui-digits-ZMK0aBxE.js} +1 -1
- package/dist/{vue-ui-donut-BYUkblpv.js → vue-ui-donut-CmLo1r4-.js} +1 -1
- package/dist/{vue-ui-donut-evolution-wxHDTKlg.js → vue-ui-donut-evolution-CYvo7Cww.js} +1 -1
- package/dist/vue-ui-donut-j1bv0KyD.js +22 -0
- package/dist/{vue-ui-dumbbell-DR7rjMt0.js → vue-ui-dumbbell-DigrSGwq.js} +1 -1
- package/dist/{vue-ui-flow-DtQlRSK_.js → vue-ui-flow-D9cc9yXD.js} +1 -1
- package/dist/{vue-ui-funnel-BP3chlZy.js → vue-ui-funnel-U88Hs0nL.js} +1 -1
- package/dist/{vue-ui-galaxy-B7ogrJ6f.js → vue-ui-galaxy-B1Vuz8CA.js} +1 -1
- package/dist/{vue-ui-gauge-CrmzNkjT.js → vue-ui-gauge-1MgZSPXt.js} +1 -1
- package/dist/{vue-ui-geo-BbTvWbfX.js → vue-ui-geo-BV8ARcaX.js} +1 -1
- package/dist/{vue-ui-gizmo-C3wgMKwb.js → vue-ui-gizmo-DtsERB-E.js} +1 -1
- package/dist/{vue-ui-graph-CzUVEiO-.js → vue-ui-graph-BVTPTDl5.js} +1 -1
- package/dist/{vue-ui-heatmap-BxR2ccwd.js → vue-ui-heatmap-6YwaVr3F.js} +1 -1
- package/dist/{vue-ui-hill-BDOd7LrC.js → vue-ui-hill-BvrNT8KZ.js} +1 -1
- package/dist/{vue-ui-history-plot-0-vs_CVn.js → vue-ui-history-plot-CJIILQPt.js} +1 -1
- package/dist/{vue-ui-horizontal-bar-C5pNTRKB.js → vue-ui-horizontal-bar-Dfo-kTqg.js} +1 -1
- package/dist/{vue-ui-kpi-Dfhsk0U1.js → vue-ui-kpi-DHfExr9d.js} +1 -1
- package/dist/{vue-ui-molecule-DUX1NUIY.js → vue-ui-molecule-C8e5IeHG.js} +1 -1
- package/dist/{vue-ui-mood-radar-B1N5AwX_.js → vue-ui-mood-radar-DsnT2U65.js} +1 -1
- package/dist/{vue-ui-nested-donuts-CfHH-cU6.js → vue-ui-nested-donuts-JkpqMhuL.js} +1 -1
- package/dist/{vue-ui-onion-DRN-jIvq.js → vue-ui-onion-CIA2tlff.js} +1 -1
- package/dist/{vue-ui-parallel-coordinate-plot-UUPjQABF.js → vue-ui-parallel-coordinate-plot-Bcr3B3NI.js} +1 -1
- package/dist/{vue-ui-quadrant-zmtzn0lM.js → vue-ui-quadrant-DKVFawhC.js} +1 -1
- package/dist/{vue-ui-quick-chart-DgU_IhKY.js → vue-ui-quick-chart-Bk2N8Hmd.js} +1 -1
- package/dist/{vue-ui-radar-BGSoxRaK.js → vue-ui-radar-CdH-BFKA.js} +1 -1
- package/dist/{vue-ui-relation-circle-XUw5UMrt.js → vue-ui-relation-circle-COZpOybS.js} +1 -1
- package/dist/{vue-ui-ridgeline-B5RJcFyA.js → vue-ui-ridgeline-MLknaTUO.js} +1 -1
- package/dist/{vue-ui-rings-BJaCLH2Q.js → vue-ui-rings-ARqLCM_P.js} +1 -1
- package/dist/{vue-ui-scatter-BA0hk_Tf.js → vue-ui-scatter-CX2wsXdE.js} +1 -1
- package/dist/{vue-ui-skeleton-DpzaXPO3.js → vue-ui-skeleton-wyvAru88.js} +1 -1
- package/dist/{vue-ui-spark-trend-DJ63XtgQ.js → vue-ui-spark-trend-C02PmIq_.js} +1 -1
- package/dist/{vue-ui-sparkbar-C5wP9R67.js → vue-ui-sparkbar-CjD57-Xi.js} +1 -1
- package/dist/{vue-ui-sparkgauge-DQcAOGuG.js → vue-ui-sparkgauge-8Eia8T2W.js} +1 -1
- package/dist/{vue-ui-sparkhistogram-BBiCxX6W.js → vue-ui-sparkhistogram-C-0f7XCl.js} +1 -1
- package/dist/{vue-ui-sparkline-B_GkB9V_.js → vue-ui-sparkline-BMMrpUPR.js} +1 -1
- package/dist/{vue-ui-sparkstackbar-DSRXhqhJ.js → vue-ui-sparkstackbar-BmgCVCKG.js} +1 -1
- package/dist/{vue-ui-stackbar-QjOQHbld.js → vue-ui-stackbar-G_zZRAa9.js} +1 -1
- package/dist/{vue-ui-stackline-CoII13bc.js → vue-ui-stackline-DchZoEAg.js} +1 -1
- package/dist/{vue-ui-strip-plot-d3UoFFrf.js → vue-ui-strip-plot-DVyPa3sp.js} +1 -1
- package/dist/{vue-ui-table-CHFjZzW7.js → vue-ui-table-qTF_q-Qu.js} +1 -1
- package/dist/{vue-ui-table-sparkline-BkZ7sn4X.js → vue-ui-table-sparkline-B2Q-7-GQ.js} +1 -1
- package/dist/{vue-ui-thermometer-B--g_Lkt.js → vue-ui-thermometer-CxNoxslq.js} +1 -1
- package/dist/{vue-ui-timer-DmwEWrDh.js → vue-ui-timer-DRjoRidI.js} +1 -1
- package/dist/{vue-ui-tiremarks-160Gx7-3.js → vue-ui-tiremarks-BC_YGp3T.js} +1 -1
- package/dist/{vue-ui-treemap-B-Yjtob0.js → vue-ui-treemap-CNM5ohoO.js} +1 -1
- package/dist/{vue-ui-waffle-BhzLg5ip.js → vue-ui-waffle-BiJshI4O.js} +1 -1
- package/dist/{vue-ui-wheel-DHb4G42X.js → vue-ui-wheel-BxR0_iNZ.js} +1 -1
- package/dist/{vue-ui-word-cloud-BcpreM7A.js → vue-ui-word-cloud-CZzC3R1K.js} +1 -1
- package/dist/{vue-ui-world-BD9acchj.js → vue-ui-world-CJgt0ESz.js} +1 -1
- package/dist/{vue-ui-xy-C-2Phexw.js → vue-ui-xy-B6XNUCzQ.js} +1 -1
- package/dist/{vue-ui-xy-CB3lQs2m.js → vue-ui-xy-DrKVPSg7.js} +1 -1
- package/package.json +1 -1
- package/dist/package-CgIKu3rP.js +0 -1
- package/dist/vue-data-ui-CrOhFey9.js +0 -1
- package/dist/vue-ui-donut-BQGnUso2.js +0 -22
|
@@ -1 +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,Jt as a,X as o,Yt as ee,at as te,b as s,et as ne,i as c,in as re,nt as ie,pt as ae,t as oe,tn as se,zt as ce}from"./lib-rPeBMZrn.js";import{n as le,t as ue}from"./BaseScanner-8NdoBs7B.js";import{n as de,t as fe}from"./useHints-C-TwxM0Y.js";import{t as pe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as me}from"./resolveChartConfig-CIhClE5R.js";import{t as he}from"./img-D4RQwASc.js";import{n as ge}from"./Title-BliHuXfT.js";import{t as _e}from"./useChartExport-BZts4KFb.js";import{n as ve,t as ye}from"./tableIntegration-CNoJ1CIY.js";import{n as be,t as xe}from"./annotationSlots-BRR85CqJ.js";import{n as Se,t as Ce}from"./userOptionsSlots-DYuo-E5m.js";import{t as we}from"./usePrinter-DVf3YcG5.js";import{t as Te}from"./useSvgLabelLayout-42Kats14.js";import{t as Ee}from"./useTimeLabelCollider-BTybMUFi.js";import{t as De}from"./useResponsive-CENUxfEL.js";import{t as Oe}from"./DefGrad-DKMq1REY.js";import{t as ke}from"./A11yDataTable-DWNlWXzs.js";import{t as Ae}from"./useUserOptionState-CXlFnwPv.js";import{t as je}from"./useChartAccessibility-DOMuYJfm.js";import{t as Me}from"./vue_ui_age_pyramid-CL0Ef8Ov.js";import{Fragment as l,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as Ne,createTextVNode as Pe,createVNode as h,defineAsyncComponent as g,guardReactiveProps as _,mergeProps as Fe,nextTick as Ie,normalizeClass as Le,normalizeProps as v,normalizeStyle as Re,onBeforeUnmount as ze,onMounted as Be,openBlock as y,ref as b,renderList as x,renderSlot as S,resolveDynamicComponent as Ve,shallowRef as He,toDisplayString as C,toRefs as Ue,unref as w,watch as T,withCtx as E}from"vue";var We=/* @__PURE__ */ e({default:()=>yt}),Ge=[`id`],Ke=[`id`],qe={style:{position:`relative`}},Je=[`xmlns`,`viewBox`,`aria-describedby`],Ye=[`x`,`y`,`width`,`height`],Xe=[`x`,`y`,`width`,`height`,`fill`,`rx`],Ze=[`x`,`y`,`width`,`height`,`fill`,`rx`],Qe=[`x`,`y`,`width`,`height`,`fill`,`rx`],$e=[`x`,`y`,`width`,`height`,`fill`,`rx`],et=[`x`,`y`,`font-size`,`font-weight`,`fill`,`stroke`],tt=[`x`,`y`,`font-size`,`font-weight`,`fill`,`stroke`],nt={key:0},rt=[`x`,`y`,`fill`,`font-size`,`font-weight`],it=[`x`,`y`,`fill`,`font-size`,`font-weight`],at={key:1},ot=[`x`,`y`,`font-size`,`fill`,`font-weight`],st={key:2},ct={key:0},lt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],ut=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],dt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],ft=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],pt=[`font-size`,`fill`,`text-anchor`,`font-weight`,`transform`],mt=[`font-size`,`fill`,`text-anchor`,`font-weight`,`transform`],ht=[`x`,`y`,`font-size`,`fill`,`font-weight`],gt=[`x`,`y`,`width`,`height`,`fill`,`onMouseover`,`onMouseleave`,`onClick`],_t={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},vt={key:5,class:`vue-data-ui-watermark`},yt=/*#__PURE__*/ pe({__name:`vue-ui-age-pyramid`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`copyAlt`],setup(e,{expose:pe,emit:We}){let yt=g(()=>import(`./Tooltip-C1q0Qoh7.js`)),bt=g(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),xt=g(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),St=g(()=>import(`./DataTable-0Vv-aGHD.js`)),Ct=g(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),wt=g(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Tt=g(()=>import(`./PackageVersion-CXT-eAuk.js`).then(e=>e.t)),Et=g(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_age_pyramid:Dt}=t(),D=e,Ot=We,kt=u(()=>!!D.dataset&&D.dataset.length),O=b(o()),k=b(!1),At=b(``),A=b(null),jt=b(0),j=b(null),Mt=b(null),Nt=b(null),Pt=b(null),Ft=b(0),It=b(0),Lt=b(null),Rt=b(null),zt=b(null),M=b(null),Bt=b({x:0,y:0}),N=b(`pointer`),Vt=b(!1),P=b(Yt()),F=u(()=>P.value.style),I=u(()=>P.value.style.layout.dataLabels),L=u(()=>P.value.style.layout.bars),R=u(()=>P.value.style.layout.bars.labels);de({config:()=>P.value,dataset:()=>D.dataset,component:`VueUiAgePyramid`,rules:[fe.emptyArray,{test:e=>e.length>130,message:[`👀 Dataset has > 130 points. Consider:`,``,`▶️ Grouping small values into aggregated categories.`,``,`▶️ Using VueUiStackline to display data in a more compact way.`]}]});let z=u(()=>P.value.userOptions.useCursorPointer),Ht=u(()=>re({defaultConfig:{userOptions:{show:!1},table:{show:!1},translations:{male:``,female:``},style:{backgroundColor:`#99999930`,layout:{bars:{left:{color:`#CACACA`},right:{color:`#999999`}},dataLabels:{xAxis:{fontSize:0,scale:1e3,translation:``},yAxis:{show:!1}},grid:{stroke:`#6A6A6A`}}}},userConfig:P.value.skeletonConfig??{}})),{loading:Ut,FINAL_DATASET:Wt,manualLoading:Gt}=le({...Ue(D),FINAL_CONFIG:P,prepareConfig:Yt,skeletonDataset:D.config?.skeletonDataset??[[`_`,9,2,2],[`_`,8,3,3],[`_`,7,5,5],[`_`,6,8,8],[`_`,5,13,13],[`_`,4,21,21],[`_`,3,34,34],[`_`,2,55,55],[`_`,1,89,89],[`_`,0,144,144]],skeletonConfig:re({defaultConfig:P.value,userConfig:Ht.value})}),{userOptionsVisible:Kt,setUserOptionsVisibility:qt,keepUserOptionState:Jt}=Ae({config:P.value}),{svgRef:B}=je({config:P.value.style.title});function Yt(){return me(D.config,Dt,Me)}function Xt(e){let t=ne(e);return t?.style?.chart&&delete t.style.tooltip,JSON.stringify(t)}let Zt=Xt(D.config);T(()=>D.config,(e,t)=>{let n=Xt(e),r=n!==Zt;Zt=n;let i=Yt();r?(Ut.value||(P.value=i),Kt.value=!P.value.userOptions.showOnChartHover,tn(),Ft.value+=1,It.value+=1,U.value.showTable=P.value.table.show,U.value.showTooltip=P.value.style.tooltip.show):(P.value.style.tooltip=i.style.tooltip,U.value.showTooltip=P.value.style.tooltip.show)},{deep:!0}),T(()=>D.dataset,e=>{Array.isArray(e)&&e.length>0&&(Gt.value=!1)},{deep:!0});let V=He(null),H=He(null),Qt=b(!1),$t=0;Be(()=>{tn()});let en=u(()=>P.value.debug);function tn(){ce(D.dataset)&&(te({componentName:`VueUiAgePyramid`,type:`dataset`,debug:en.value}),Gt.value=!0),ce(D.dataset)||(Gt.value=P.value.loading),P.value.responsive&&(V.value&&(H.value&&V.value.unobserve(H.value),V.value.disconnect()),V.value=new ResizeObserver(()=>{let{width:e,height:t}=De({chart:j.value,title:F.value.title.text?Mt.value:null,source:Nt.value,noTitle:Pt.value});cancelAnimationFrame($t),$t=requestAnimationFrame(()=>{W.value.width=e,W.value.height=t,Qt.value=!0})}),H.value=j.value.parentNode,V.value.observe(H.value))}ze(()=>{cancelAnimationFrame($t),V.value&&(H.value&&V.value.unobserve(H.value),V.value.disconnect())});let{isPrinting:nn,isImaging:rn,generatePdf:an,generateImage:on}=we({elementId:`vue-ui-age-pyramid_${O.value}`,fileName:F.value.title.text||`vue-ui-age-pyramid`,options:P.value.userOptions.print}),sn=u(()=>P.value.userOptions.show&&!F.value.title.text),U=b({showTable:P.value.table.show,showTooltip:F.value.tooltip.show});T(P,()=>{U.value={showTable:P.value.table.show,showTooltip:F.value.tooltip.show}},{immediate:!0});let W=b({height:F.value.height,width:F.value.width}),cn=u(()=>W.value.width),ln=u(()=>W.value.height),{metrics:un,ready:dn,settling:fn,update:pn}=Te({svgRef:B,canMeasure:()=>!P.value.responsive||Qt.value,initialMetrics:{bottom:0},measure:e=>({bottom:e(Lt.value).height})}),mn=u(()=>un.value.bottom),G=u(()=>{let e=W.value.width-F.value.layout.padding.right-F.value.layout.padding.left,t=F.value.layout.padding.left,n=W.value.width-F.value.layout.padding.right;return{top:F.value.layout.padding.top+I.value.sideTitles.fontSize+I.value.sideTitles.offsetY+12,left:t,right:n,bottom:W.value.height-F.value.layout.padding.bottom-mn.value,width:e,height:W.value.height-F.value.layout.padding.top-F.value.layout.padding.bottom-mn.value-I.value.sideTitles.fontSize-I.value.sideTitles.offsetY-12,centerX:F.value.layout.padding.left+e/2,leftChart:{width:e/2-F.value.layout.centerSlit.width,right:t+e/2-F.value.layout.centerSlit.width},rightChart:{width:e/2-F.value.layout.centerSlit.width,left:t+e/2+F.value.layout.centerSlit.width}}}),hn=u(()=>Wt.value.map(e=>I.value.yAxis.display===`age`?e[1]:e[0])),K=u(()=>{let e=gn(q.value/5),t=[],n=[];for(let r=0;r<=5;r+=1){let i=e*r,a=e*(r-5);t.push({value:i,x:G.value.left+G.value.width/2+F.value.layout.centerSlit.width+i/q.value*G.value.leftChart.width}),n.push({value:Math.abs(a),x:G.value.left+G.value.width/2+a/q.value*G.value.leftChart.width-F.value.layout.centerSlit.width})}return{right:t,left:n}});function gn(e){if(e===0)return 0;let t=10**Math.floor(Math.log10(Math.abs(e))),n;return n=Math.round(e/t)*t,n}let q=u(()=>Math.max(...Wt.value.flatMap(e=>e.slice(-2).map(e=>s(e))))),J=u(()=>Wt.value.length),_n=u(()=>Wt.value.map(e=>({segment:e[0],age:e[1],left:{value:e[2],proportionToMax:e[2]/q.value},right:{value:e[3],proportionToMax:e[3]/q.value}}))),Y=u(()=>_n.value.map((e,t)=>{let n=G.value.top+G.value.height/J.value*t,r=G.value.height/J.value-L.value.gap;return{segment:e.segment,age:e.age,left:{...e.left,y:n,color:L.value.left.color,x:G.value.leftChart.right-e.left.proportionToMax*G.value.leftChart.width,width:s(e.left.proportionToMax*G.value.leftChart.width),height:r},right:{...e.right,y:n,color:L.value.right.color,x:G.value.rightChart.left,width:s(e.right.proportionToMax*G.value.rightChart.width),height:r}}})),vn=b(null);function yn(e){let[t,n,r,i]=e;return{segment:t,index:n,left:r,right:i}}function bn(e,t){P.value.events.datapointClick&&P.value.events.datapointClick({datapoint:yn(t),seriesIndex:e})}function xn(e,t){P.value.events.datapointLeave&&P.value.events.datapointLeave({datapoint:yn(t),seriesIndex:e}),(N.value!==`keyboard`||M.value!==e)&&(A.value=null,k.value=!1)}function Sn(e){if(!B.value)return;let t=Y.value[e];if(!t)return;let n=se(G.value.left+G.value.width/2,t.left.y+t.left.height/2,B.value);n&&(Bt.value=n)}function Cn(e,t,r=`pointer`){P.value.events.datapointEnter&&P.value.events.datapointEnter({datapoint:yn(t),seriesIndex:e}),A.value=e,M.value=e,N.value=r,vn.value={datapoint:t,seriesIndex:e,series:Y.value,config:P.value};let a=F.value.tooltip.customFormat;if(i(a)&&ae(()=>a({seriesIndex:e,datapoint:{segment:t[0],index:t[1],left:t[2],right:t[3]},series:Y.value,config:P.value})))At.value=a({seriesIndex:e,datapoint:{segment:t[0],index:t[1],left:t[2],right:t[3]},series:Y.value,config:P.value});else{let r=``,i=Y.value[e];r+=`<div><b>${i.segment}</b></div>`,r+=`<div>${P.value.translations.age}: ${c(I.value.yAxis.formatter,s(i.age),n({v:s(i.age)}),{datapoint:t,seriesIndex:e})}</div>`,r+=`<div style="margin-top:6px;padding-top:6px;border-top:1px solid ${F.value.tooltip.borderColor}">`,r+=`<div style="display:flex; flex-direction:row;gap:12px">`,r+=`<div style="display:flex;flex-direction:column;align-items:center;justify-content:center"><svg viewBox="0 0 12 12" height="12" width="12"><rect stroke="none" x="0" y="0" height="12" width="12" rx="2" fill="${L.value.gradient.underlayer}"/><rect stroke="none" x="0" y="0" height="12" width="12" rx="2" fill="${L.value.gradient.show?`url(#age_pyramid_left_${O.value})`:L.value.left.color}"/></svg><div>${P.value.translations.female}</div><div><b>${c(I.value.xAxis.formatter,s(i.left.value),n({v:s(i.left.value)}),{datapoint:t,seriesIndex:e})}</b></div></div>`,r+=`<div style="display:flex;flex-direction:column;align-items:center;justify-content:center"><svg viewBox="0 0 12 12" height="12" width="12"><rect stroke="none" x="0" y="0" height="12" width="12" rx="2" fill="${L.value.gradient.underlayer}"/><rect stroke="none" x="0" y="0" height="12" width="12" rx="2" fill="${L.value.gradient.show?`url(#age_pyramid_right_${O.value})`:L.value.right.color}"/></svg><div>${P.value.translations.male}</div><div><b>${c(I.value.xAxis.formatter,s(i.right.value),n({v:s(i.right.value)}),{datapoint:t,seriesIndex:e})}</b></div></div>`,r+=`</div>`,r+=`<div style="margin-top:6px;padding-top:6px;border-top:1px solid ${F.value.tooltip.borderColor}"><div>${P.value.translations.total}</div><div><b>${c(I.value.xAxis.formatter,s(i.right.value)+s(i.left.value),n({v:s(i.right.value)+s(i.left.value)}),{datapoint:t,seriesIndex:e})}</b></div></div>`,r+=`</div>`,At.value=`<div>${r}</div>`}k.value=!0,r===`keyboard`&&Ie(()=>{Sn(e)})}function wn(e=null){Ie(()=>{let t=[P.value.translations.year,P.value.translations.age,P.value.translations.female,P.value.translations.male,P.value.translations.total],n=D.dataset.map(e=>[e[0],e[1],e[2],e[3],e[2]??0+e[3]??0]),i=[[F.value.title.text],[F.value.title.subtitle.text],[[``],[``],[``]],t].concat(n),a=r(i);e?e(a):ie({csvContent:a,title:F.value.title.text||`vue-ui-heatmap`})})}let X=u(()=>{let e=[P.value.translations.year,P.value.translations.age,P.value.translations.female,P.value.translations.male,P.value.translations.total];return{head:e,body:D.dataset.map(e=>[e[0],e[1],e[2]==null?``:e[2].toLocaleString(),e[3]==null?``:e[3].toLocaleString(),(e[2]??0+e[3]??0).toLocaleString()]),config:{th:{backgroundColor:P.value.table.th.backgroundColor,color:P.value.table.th.color,outline:P.value.table.th.outline},td:{backgroundColor:P.value.table.td.backgroundColor,color:P.value.table.td.color,outline:P.value.table.td.outline},breakpoint:P.value.table.responsiveBreakpoint},colNames:e}}),Z=b(!1);function Tn(e){Z.value=e,jt.value+=1}function En(){U.value.showTable=!U.value.showTable}function Dn(){U.value.showTooltip=!U.value.showTooltip}let Q=b(!1);function On(){Q.value=!Q.value}async function kn({scale:e=2}={}){if(!j.value)return;let{width:t,height:n}=j.value.getBoundingClientRect(),r=t/n,{imageUri:i,base64:a}=await he({domElement:j.value,base64:!0,img:!0,scale:e});return{imageUri:i,base64:a,title:F.value.title.text,width:t,height:n,aspectRatio:r}}let An=b([]),jn=b({start:0,end:Y.value.length});Ee({timeLabelsEls:Lt,timeLabels:An,slicer:jn,configRef:P,rotationPath:[`style`,`layout`,`dataLabels`,`xAxis`,`rotation`],autoRotatePath:[`style`,`layout`,`dataLabels`,`xAxis`,`autoRotate`,`enable`],isAutoSize:!1,width:cn,height:ln,targetClass:`.vue-ui-age-pyramid-x-axis-label`,rotation:F.value.layout.dataLabels.xAxis.autoRotate.angle});let $=u(()=>ye({config:P,style:F,mutableConfig:U,dialog:Et,accordion:xt,isFullscreen:Z,parent:j,maxWidth:800,isCursorPointer:z}));T(()=>U.value.showTable,e=>ve(e,P,Rt));function Mn(){U.value.showTable=!1,zt.value&&zt.value.setTableIconState(!1)}let Nn=u(()=>P.value.style.backgroundColor),Pn=u(()=>P.value.style.title),{isCallbackImaging:Fn,isCallbackSvg:In,generateSvg:Ln,onGenerateImage:Rn}=_e({svg:B,title:Pn,legend:null,legendItems:null,backgroundColor:Nn,getSvgCallback:()=>P.value.userOptions.callbacks.svg,generateImage:on});async function zn(){Ot(`copyAlt`,{config:P.value,dataset:Y.value}),P.value.userOptions.callbacks.altCopy?await Promise.resolve(P.value.userOptions.callbacks.altCopy({config:P.value,dataset:Y.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function Bn(){Vt.value=!0}function Vn(){A.value=null,M.value=null,N.value=`pointer`,k.value=!1,Vt.value=!1}function Hn(e){if(!B.value||Q.value||document.activeElement!==B.value||!Y.value.length)return;let t=[`ArrowUp`,`ArrowLeft`].includes(e.key),n=[`ArrowDown`,`ArrowRight`].includes(e.key),r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){A.value=null,M.value=null,N.value=`pointer`,k.value=!1;return}if(r){if(M.value===null)return;let e=D.dataset[M.value];if(!e)return;bn(M.value,e);return}let a=M.value,o=A.value,ee=a!==null&&a>=0&&a<Y.value.length,te=o!==null&&o>=0&&o<Y.value.length;ee?t?a=a-1<0?Y.value.length-1:a-1:n&&(a=a+1>Y.value.length-1?0:a+1):te?(a=n?o+1:o-1,a>=Y.value.length&&(a=0),a<0&&(a=Y.value.length-1)):a=n?0:Y.value.length-1;let s=D.dataset[a];s&&Cn(a,s,`keyboard`)}return pe({getImage:kn,generatePdf:an,generateCsv:wn,generateImage:on,generateSvg:Ln,toggleTable:En,toggleTooltip:Dn,toggleAnnotator:On,toggleFullscreen:Tn,copyAlt:zn}),T(()=>[W.value,I.value,Lt.value,D.dataset,Qt.value,P.value.style.fontFamily],pn,{flush:`post`,deep:!0}),(t,r)=>(y(),p(`div`,{class:Le(`vue-data-ui-component vue-ui-age-pyramid ${Z.value?`vue-data-ui-wrapper-fullscreen`:``}`),ref_key:`agePyramid`,ref:j,id:`vue-ui-age-pyramid_${O.value}`,style:Re(`font-family:${F.value.fontFamily};width:100%; text-align:center;background:${F.value.backgroundColor};${P.value.responsive?`height:100%`:``}`),onMouseenter:r[1]||=()=>w(qt)(!0),onMouseleave:r[2]||=()=>w(qt)(!1)},[m(`div`,{id:`chart-instructions-${O.value}`,class:`sr-only`},[m(`p`,null,C(P.value.a11y.translations.keyboardNavigation),1)],8,Ke),X.value?.body?.length?(y(),d(ke,{key:0,uid:O.value,head:X.value.head,body:X.value.body,notice:P.value.a11y.translations.tableAvailable,caption:P.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):f(``,!0),P.value.userOptions.buttons.annotator?(y(),d(w(Ct),{key:1,svgRef:w(B),backgroundColor:F.value.backgroundColor,color:F.value.color,active:Q.value,isCursorPointer:z.value,palette:P.value.userOptions.annotatorPalette,onClose:On},Ne({_:2},[x(w(xe),e=>({name:e,fn:E(n=>[S(t.$slots,e,v(_(w(be)(e,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):f(``,!0),sn.value?(y(),p(`div`,{key:2,ref_key:`noTitle`,ref:Pt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):f(``,!0),F.value.title.text?(y(),p(`div`,{key:3,ref_key:`chartTitle`,ref:Mt,style:`width:100%;background:transparent`},[(y(),d(ge,{key:`title_${Ft.value}`,config:{title:{cy:`pyramid-div-title`,...F.value.title},subtitle:{cy:`pyramid-div-subtitle`,...F.value.title.subtitle}}},null,8,[`config`]))],512)):f(``,!0),P.value.userOptions.show&&kt.value&&(w(Jt)||w(Kt))?(y(),d(w(wt),{ref_key:`userOptionsRef`,ref:zt,key:`user_options_${jt.value}`,backgroundColor:F.value.backgroundColor,color:F.value.color,isImaging:w(rn),isPrinting:w(nn),uid:O.value,hasTooltip:P.value.userOptions.buttons.tooltip&&F.value.tooltip.show,hasPdf:P.value.userOptions.buttons.pdf,hasXls:P.value.userOptions.buttons.csv,hasImg:P.value.userOptions.buttons.img,hasSvg:P.value.userOptions.buttons.svg,hasTable:P.value.userOptions.buttons.table,hasFullscreen:P.value.userOptions.buttons.fullscreen,hasAltCopy:P.value.userOptions.buttons.altCopy,isFullscreen:Z.value,isTooltip:U.value.showTooltip,titles:{...P.value.userOptions.buttonTitles},chartElement:j.value,position:P.value.userOptions.position,hasAnnotator:P.value.userOptions.buttons.annotator,isAnnotation:Q.value,callbacks:P.value.userOptions.callbacks,printScale:P.value.userOptions.print.scale,tableDialog:P.value.table.useDialog,isCursorPointer:z.value,onToggleFullscreen:Tn,onGeneratePdf:w(an),onGenerateCsv:wn,onGenerateImage:w(Rn),onGenerateSvg:w(Ln),onToggleTable:En,onToggleTooltip:Dn,onToggleAnnotator:On,onCopyAlt:zn,style:Re({visibility:w(Jt)?w(Kt)?`visible`:`hidden`:`visible`})},Ne({_:2},[x(w(Se)(t.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),e=>({name:e,fn:E(n=>[S(t.$slots,e,v(_(w(Ce)(e,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isImaging.isPrinting.uid.hasTooltip.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasFullscreen.hasAltCopy.isFullscreen.isTooltip.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):f(``,!0),m(`div`,qe,[(y(),p(`svg`,{ref_key:`svgRef`,ref:B,xmlns:w(oe),class:Le({"vue-data-ui-fullscreen--on":Z.value,"vue-data-ui-fulscreen--off":!Z.value}),viewBox:`0 0 ${W.value.width<=0?10:W.value.width} ${W.value.height<=0?10:W.value.height}`,style:Re(`max-width:100%;overflow:visible;background:transparent;color:${F.value.color};visibility:${w(dn)?`visible`:`hidden`}`),tabindex:`0`,"aria-describedby":`chart-instructions-${O.value}`,onFocus:Bn,onBlur:Vn,onKeydown:Hn},[h(w(Tt)),S(t.$slots,`svg-underlayer`,{svg:{...W.value,drawingArea:G.value,isPrintingImg:w(nn)||w(rn)||w(Fn),isPrintingSvg:w(In)}},void 0,!0),t.$slots[`chart-background`]?(y(),p(`foreignObject`,{key:0,x:G.value.left,y:G.value.top,width:Math.max(.1,G.value.width),height:Math.max(.1,G.value.height),style:{pointerEvents:`none`}},[S(t.$slots,`chart-background`,{},void 0,!0)],8,Ye)):f(``,!0),m(`defs`,null,[h(Oe,{t:`linear`,id:`age_pyramid_left_${O.value}`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`0%`,stops:[[`0%`,L.value.left.color,1],[`100%`,w(a)(w(ee)(L.value.left.color,L.value.gradient.shiftHue),100-L.value.gradient.intensity),1]]},null,8,[`id`,`stops`]),h(Oe,{t:`linear`,id:`age_pyramid_right_${O.value}`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`0%`,stops:[[`0%`,w(a)(w(ee)(L.value.right.color,L.value.gradient.shiftHue),100-L.value.gradient.intensity),1],[`100%`,L.value.right.color,1]]},null,8,[`id`,`stops`])]),(y(!0),p(l,null,x(Y.value,(e,t)=>(y(),p(`g`,null,[m(`rect`,{x:e.left.x,y:e.left.y,width:w(s)(e.left.width<=0?1e-4:e.left.width),height:e.left.height<=0?1e-4:e.left.height,fill:L.value.gradient.underlayer,rx:L.value.borderRadius},null,8,Xe),m(`rect`,{x:e.left.x,y:e.left.y,width:e.left.width<=0?1e-4:e.left.width,height:e.left.height<=0?1e-4:e.left.height,fill:L.value.gradient.show?`url(#age_pyramid_left_${O.value})`:e.left.color,rx:L.value.borderRadius},null,8,Ze),m(`rect`,{x:e.right.x,y:e.right.y,width:e.right.width<=0?1e-4:e.right.width,height:e.right.height<=0?1e-4:e.right.height,fill:L.value.gradient.underlayer,rx:L.value.borderRadius},null,8,Qe),m(`rect`,{x:e.right.x,y:e.right.y,width:e.right.width<=0?1e-4:e.right.width,height:e.right.height<=0?1e-4:e.right.height,fill:L.value.gradient.show?`url(#age_pyramid_right_${O.value})`:e.right.color,rx:L.value.borderRadius},null,8,$e)]))),256)),(y(!0),p(l,null,x(Y.value,(e,t)=>(y(),p(`g`,null,[R.value.show?(y(),p(l,{key:0},[!R.value.showOnHover||R.value.showOnHover&&A.value===t?(y(),p(`text`,{key:0,x:e.left.x+Math.max(1e-4,e.left.width)-R.value.offsetX-6,y:e.left.y+Math.max(1e-4,e.left.height/2)+L.value.gap/2,"text-anchor":`end`,"dominant-baseline":`middle`,"font-size":R.value.fontSize,"font-weight":R.value.bold?`bold`:`normal`,fill:R.value.color,stroke:F.value.backgroundColor,"paint-order":`stroke fill`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`3`},C(w(c)(R.value.formatter,e.left.value,w(n)({v:e.left.value}),{datapoint:e.left,seriesIndex:t})),9,et)):f(``,!0)],64)):f(``,!0),R.value.show?(y(),p(l,{key:1},[!R.value.showOnHover||R.value.showOnHover&&A.value===t?(y(),p(`text`,{key:0,x:e.right.x+R.value.offsetX+6,y:e.right.y+Math.max(1e-4,e.right.height/2)+L.value.gap/2,"text-anchor":`start`,"dominant-baseline":`middle`,"font-size":R.value.fontSize,"font-weight":R.value.bold?`bold`:`normal`,fill:R.value.color,stroke:F.value.backgroundColor,"paint-order":`stroke fill`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`3`},C(w(c)(R.value.formatter,e.right.value,w(n)({v:e.right.value}),{datapoint:e.right,seriesIndex:t})),9,tt)):f(``,!0)],64)):f(``,!0)]))),256)),m(`g`,null,[I.value.sideTitles.show?(y(),p(`g`,nt,[m(`text`,{x:G.value.left,y:I.value.sideTitles.fontSize,fill:I.value.sideTitles.useSideColor?L.value.left.color:I.value.sideTitles.color,"font-size":I.value.sideTitles.fontSize,"text-anchor":`start`,"font-weight":I.value.sideTitles.bold?`bold`:`normal`},C(P.value.translations.female),9,rt),m(`text`,{x:G.value.right,y:I.value.sideTitles.fontSize,fill:I.value.sideTitles.useSideColor?L.value.right.color:I.value.sideTitles.color,"font-size":I.value.sideTitles.fontSize,"text-anchor":`end`,"font-weight":I.value.sideTitles.bold?`bold`:`normal`},C(P.value.translations.male),9,it)])):f(``,!0),I.value.yAxis.show?(y(),p(`g`,at,[(y(!0),p(l,null,x(hn.value,(e,t)=>(y(),p(l,null,[t%I.value.yAxis.showEvery===0&&(!R.value.show||R.value.showOnHover&&A.value===t||A.value===null)||(R.value.show||R.value.showOnHover)&&A.value===t?(y(),p(`text`,{key:0,x:G.value.centerX,y:G.value.top+G.value.height/J.value/2+G.value.height/J.value*t,"dominant-baseline":`middle`,"text-anchor":`middle`,"font-size":I.value.yAxis.fontSize,fill:I.value.yAxis.color,"font-weight":I.value.yAxis.bold?`bold`:`normal`},C(w(c)(I.value.yAxis.formatter,e,w(n)({v:e}),{datapoint:e,seriesIndex:t})),9,ot)):f(``,!0)],64))),256))])):f(``,!0),I.value.xAxis.show?(y(),p(`g`,st,[F.value.layout.grid.show?(y(),p(`g`,ct,[m(`line`,{x1:K.value.right[0].x,x2:K.value.right.at(-1).x,y1:G.value.bottom+I.value.xAxis.fontSize/2,y2:G.value.bottom+I.value.xAxis.fontSize/2,stroke:F.value.layout.grid.stroke,"stroke-width":F.value.layout.grid.strokeWidth,"stroke-linecap":`round`},null,8,lt),m(`line`,{x1:K.value.left[0].x,x2:K.value.left.at(-1).x,y1:G.value.bottom+I.value.xAxis.fontSize/2,y2:G.value.bottom+I.value.xAxis.fontSize/2,stroke:F.value.layout.grid.stroke,"stroke-width":F.value.layout.grid.strokeWidth,"stroke-linecap":`round`},null,8,ut)])):f(``,!0),(y(!0),p(l,null,x(K.value.right,(e,t)=>(y(),p(`g`,null,[F.value.layout.grid.show?(y(),p(`line`,{key:0,x1:e.x,x2:e.x,y1:G.value.bottom+I.value.xAxis.fontSize/2,y2:G.value.bottom+I.value.xAxis.fontSize/2+4,stroke:F.value.layout.grid.stroke,"stroke-width":F.value.layout.grid.strokeWidth,"stroke-linecap":`round`},null,8,dt)):f(``,!0)]))),256)),(y(!0),p(l,null,x(K.value.left,(e,t)=>(y(),p(`g`,null,[F.value.layout.grid.show?(y(),p(`line`,{key:0,x1:e.x,x2:e.x,y1:G.value.bottom+I.value.xAxis.fontSize/2,y2:G.value.bottom+I.value.xAxis.fontSize/2+4,stroke:F.value.layout.grid.stroke,"stroke-width":F.value.layout.grid.strokeWidth,"stroke-linecap":`round`},null,8,ft)):f(``,!0)]))),256)),m(`g`,{ref_key:`xAxisLabels`,ref:Lt},[(y(!0),p(l,null,x(K.value.right,(e,t)=>(y(),p(`text`,{class:`vue-ui-age-pyramid-x-axis-label`,"font-size":I.value.xAxis.fontSize,fill:I.value.xAxis.color,"text-anchor":I.value.xAxis.rotation>0?`start`:I.value.xAxis.rotation<0?`end`:`middle`,"font-weight":I.value.xAxis.bold?`bold`:`normal`,transform:`translate(${e.x}, ${G.value.bottom+I.value.xAxis.fontSize*2}) rotate(${I.value.xAxis.rotation})`},C(w(c)(I.value.xAxis.formatter,e.value/I.value.xAxis.scale,w(n)({v:e.value/F.value.layout.dataLabels.xAxis.scale}),{datapoint:e,seriesIndex:t})),9,pt))),256)),(y(!0),p(l,null,x(K.value.left,(e,t)=>(y(),p(`text`,{class:`vue-ui-age-pyramid-x-axis-label`,"font-size":I.value.xAxis.fontSize,fill:I.value.xAxis.color,"text-anchor":I.value.xAxis.rotation>0?`start`:I.value.xAxis.rotation<0?`end`:`middle`,"font-weight":I.value.xAxis.bold?`bold`:`normal`,transform:`translate(${e.x}, ${G.value.bottom+I.value.xAxis.fontSize*2}) rotate(${I.value.xAxis.rotation})`},C(w(c)(I.value.xAxis.formatter,e.value/I.value.xAxis.scale,w(n)({v:e.value/F.value.layout.dataLabels.xAxis.scale}),{datapoint:e,seriesIndex:t})),9,mt))),256))],512),m(`text`,{x:G.value.right,y:W.value.height,"text-anchor":`end`,"font-size":I.value.xAxis.fontSize,fill:I.value.xAxis.color,"font-weight":I.value.xAxis.bold?`bold`:`normal`},C(I.value.xAxis.translation),9,ht)])):f(``,!0)]),(y(!0),p(l,null,x(e.dataset,(e,t)=>(y(),p(`g`,null,[m(`rect`,{x:G.value.left,y:G.value.top+G.value.height/J.value*t-L.value.gap/2,width:G.value.width<=0?1e-4:G.value.width,height:G.value.height/J.value<=0?1e-4:G.value.height/J.value,fill:A.value!==null&&A.value===t?w(a)(F.value.highlighter.color,F.value.highlighter.opacity):`transparent`,onMouseover:n=>Cn(t,e,`pointer`),onMouseleave:n=>xn(t,e),onClick:n=>bn(t,e)},null,40,gt)]))),256)),S(t.$slots,`svg`,{svg:{...W.value,drawingArea:G.value,isPrintingImg:w(nn)||w(rn)||w(Fn),isPrintingSvg:w(In)}},void 0,!0)],46,Je)),t.$slots.hint?(y(),p(`div`,_t,[S(t.$slots,`hint`,v(_({hint:P.value.a11y.translations.keyboardNavigation,isVisible:Vt.value})),void 0,!0)])):f(``,!0)]),t.$slots.watermark?(y(),p(`div`,vt,[S(t.$slots,`watermark`,v(_({isPrinting:w(nn)||w(rn)||w(Fn)||w(In)})),void 0,!0)])):f(``,!0),S(t.$slots,`legend`,{legend:Y.value},void 0,!0),t.$slots.source?(y(),p(`div`,{key:6,ref_key:`source`,ref:Nt,dir:`auto`},[S(t.$slots,`source`,{},void 0,!0)],512)):f(``,!0),h(w(yt),{teleportTo:F.value.tooltip.teleportTo,show:U.value.showTooltip&&k.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:j.value,content:At.value,isFullscreen:Z.value,isCustom:F.value.tooltip.customFormat&&typeof F.value.tooltip.customFormat==`function`,smooth:F.value.tooltip.smooth,backdropFilter:F.value.tooltip.backdropFilter,smoothForce:F.value.tooltip.smoothForce,smoothSnapThreshold:F.value.tooltip.smoothSnapThreshold,isA11yMode:N.value===`keyboard`,a11yPosition:Bt.value},{"tooltip-before":E(()=>[S(t.$slots,`tooltip-before`,v(_({...vn.value})),void 0,!0)]),tooltip:E(()=>[S(t.$slots,`tooltip`,v(_({...vn.value})),void 0,!0)]),"tooltip-after":E(()=>[S(t.$slots,`tooltip-after`,v(_({...vn.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`]),kt.value&&P.value.userOptions.buttons.table?(y(),d(Ve($.value.component),Fe({key:7},$.value.props,{ref_key:`tableUnit`,ref:Rt,onClose:Mn}),Ne({content:E(()=>[(y(),d(w(St),{key:`table_${It.value}`,colNames:X.value.colNames,head:X.value.head,body:X.value.body,config:X.value.config,title:P.value.table.useDialog?``:$.value.title,withCloseButton:!P.value.table.useDialog,isCursorPointer:z.value,onClose:Mn},{th:E(({th:e})=>[Pe(C(e),1)]),td:E(({td:e})=>[Pe(C(e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`]))]),_:2},[P.value.table.useDialog?{name:`title`,fn:E(()=>[Pe(C($.value.title),1)]),key:`0`}:void 0,P.value.table.useDialog?{name:`actions`,fn:E(()=>[m(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:r[0]||=e=>wn(P.value.userOptions.callbacks.csv),style:Re({cursor:z.value?`pointer`:`default`})},[h(w(bt),{name:`fileCsv`,stroke:$.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):f(``,!0),S(t.$slots,`skeleton`,{},()=>[w(Ut)?(y(),d(ue,{key:0})):f(``,!0)],!0)],46,Ge))}},[[`__scopeId`,`data-v-e4eda545`]]);export{We as n,yt 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,Jt as a,X as o,Yt as ee,at as te,b as s,et as ne,i as c,in as re,nt as ie,pt as ae,t as oe,tn as se,zt as ce}from"./lib-rPeBMZrn.js";import{n as le,t as ue}from"./BaseScanner-8NdoBs7B.js";import{n as de,t as fe}from"./useHints-C-TwxM0Y.js";import{t as pe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as me}from"./resolveChartConfig-CIhClE5R.js";import{t as he}from"./img-D4RQwASc.js";import{n as ge}from"./Title-BliHuXfT.js";import{t as _e}from"./useChartExport-BZts4KFb.js";import{n as ve,t as ye}from"./tableIntegration-CNoJ1CIY.js";import{n as be,t as xe}from"./annotationSlots-BRR85CqJ.js";import{n as Se,t as Ce}from"./userOptionsSlots-DYuo-E5m.js";import{t as we}from"./usePrinter-DVf3YcG5.js";import{t as Te}from"./useSvgLabelLayout-42Kats14.js";import{t as Ee}from"./useTimeLabelCollider-BTybMUFi.js";import{t as De}from"./useResponsive-CENUxfEL.js";import{t as Oe}from"./DefGrad-DKMq1REY.js";import{t as ke}from"./A11yDataTable-DWNlWXzs.js";import{t as Ae}from"./useUserOptionState-CXlFnwPv.js";import{t as je}from"./useChartAccessibility-DOMuYJfm.js";import{t as Me}from"./vue_ui_age_pyramid-CL0Ef8Ov.js";import{Fragment as l,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as Ne,createTextVNode as Pe,createVNode as h,defineAsyncComponent as g,guardReactiveProps as _,mergeProps as Fe,nextTick as Ie,normalizeClass as Le,normalizeProps as v,normalizeStyle as Re,onBeforeUnmount as ze,onMounted as Be,openBlock as y,ref as b,renderList as x,renderSlot as S,resolveDynamicComponent as Ve,shallowRef as He,toDisplayString as C,toRefs as Ue,unref as w,watch as T,withCtx as E}from"vue";var We=/* @__PURE__ */ e({default:()=>yt}),Ge=[`id`],Ke=[`id`],qe={style:{position:`relative`}},Je=[`xmlns`,`viewBox`,`aria-describedby`],Ye=[`x`,`y`,`width`,`height`],Xe=[`x`,`y`,`width`,`height`,`fill`,`rx`],Ze=[`x`,`y`,`width`,`height`,`fill`,`rx`],Qe=[`x`,`y`,`width`,`height`,`fill`,`rx`],$e=[`x`,`y`,`width`,`height`,`fill`,`rx`],et=[`x`,`y`,`font-size`,`font-weight`,`fill`,`stroke`],tt=[`x`,`y`,`font-size`,`font-weight`,`fill`,`stroke`],nt={key:0},rt=[`x`,`y`,`fill`,`font-size`,`font-weight`],it=[`x`,`y`,`fill`,`font-size`,`font-weight`],at={key:1},ot=[`x`,`y`,`font-size`,`fill`,`font-weight`],st={key:2},ct={key:0},lt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],ut=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],dt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],ft=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],pt=[`font-size`,`fill`,`text-anchor`,`font-weight`,`transform`],mt=[`font-size`,`fill`,`text-anchor`,`font-weight`,`transform`],ht=[`x`,`y`,`font-size`,`fill`,`font-weight`],gt=[`x`,`y`,`width`,`height`,`fill`,`onMouseover`,`onMouseleave`,`onClick`],_t={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},vt={key:5,class:`vue-data-ui-watermark`},yt=/*#__PURE__*/ pe({__name:`vue-ui-age-pyramid`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`copyAlt`],setup(e,{expose:pe,emit:We}){let yt=g(()=>import(`./Tooltip-C1q0Qoh7.js`)),bt=g(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),xt=g(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),St=g(()=>import(`./DataTable-0Vv-aGHD.js`)),Ct=g(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),wt=g(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Tt=g(()=>import(`./PackageVersion-DhptF5oD.js`).then(e=>e.t)),Et=g(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_age_pyramid:Dt}=t(),D=e,Ot=We,kt=u(()=>!!D.dataset&&D.dataset.length),O=b(o()),k=b(!1),At=b(``),A=b(null),jt=b(0),j=b(null),Mt=b(null),Nt=b(null),Pt=b(null),Ft=b(0),It=b(0),Lt=b(null),Rt=b(null),zt=b(null),M=b(null),Bt=b({x:0,y:0}),N=b(`pointer`),Vt=b(!1),P=b(Yt()),F=u(()=>P.value.style),I=u(()=>P.value.style.layout.dataLabels),L=u(()=>P.value.style.layout.bars),R=u(()=>P.value.style.layout.bars.labels);de({config:()=>P.value,dataset:()=>D.dataset,component:`VueUiAgePyramid`,rules:[fe.emptyArray,{test:e=>e.length>130,message:[`👀 Dataset has > 130 points. Consider:`,``,`▶️ Grouping small values into aggregated categories.`,``,`▶️ Using VueUiStackline to display data in a more compact way.`]}]});let z=u(()=>P.value.userOptions.useCursorPointer),Ht=u(()=>re({defaultConfig:{userOptions:{show:!1},table:{show:!1},translations:{male:``,female:``},style:{backgroundColor:`#99999930`,layout:{bars:{left:{color:`#CACACA`},right:{color:`#999999`}},dataLabels:{xAxis:{fontSize:0,scale:1e3,translation:``},yAxis:{show:!1}},grid:{stroke:`#6A6A6A`}}}},userConfig:P.value.skeletonConfig??{}})),{loading:Ut,FINAL_DATASET:Wt,manualLoading:Gt}=le({...Ue(D),FINAL_CONFIG:P,prepareConfig:Yt,skeletonDataset:D.config?.skeletonDataset??[[`_`,9,2,2],[`_`,8,3,3],[`_`,7,5,5],[`_`,6,8,8],[`_`,5,13,13],[`_`,4,21,21],[`_`,3,34,34],[`_`,2,55,55],[`_`,1,89,89],[`_`,0,144,144]],skeletonConfig:re({defaultConfig:P.value,userConfig:Ht.value})}),{userOptionsVisible:Kt,setUserOptionsVisibility:qt,keepUserOptionState:Jt}=Ae({config:P.value}),{svgRef:B}=je({config:P.value.style.title});function Yt(){return me(D.config,Dt,Me)}function Xt(e){let t=ne(e);return t?.style?.chart&&delete t.style.tooltip,JSON.stringify(t)}let Zt=Xt(D.config);T(()=>D.config,(e,t)=>{let n=Xt(e),r=n!==Zt;Zt=n;let i=Yt();r?(Ut.value||(P.value=i),Kt.value=!P.value.userOptions.showOnChartHover,tn(),Ft.value+=1,It.value+=1,U.value.showTable=P.value.table.show,U.value.showTooltip=P.value.style.tooltip.show):(P.value.style.tooltip=i.style.tooltip,U.value.showTooltip=P.value.style.tooltip.show)},{deep:!0}),T(()=>D.dataset,e=>{Array.isArray(e)&&e.length>0&&(Gt.value=!1)},{deep:!0});let V=He(null),H=He(null),Qt=b(!1),$t=0;Be(()=>{tn()});let en=u(()=>P.value.debug);function tn(){ce(D.dataset)&&(te({componentName:`VueUiAgePyramid`,type:`dataset`,debug:en.value}),Gt.value=!0),ce(D.dataset)||(Gt.value=P.value.loading),P.value.responsive&&(V.value&&(H.value&&V.value.unobserve(H.value),V.value.disconnect()),V.value=new ResizeObserver(()=>{let{width:e,height:t}=De({chart:j.value,title:F.value.title.text?Mt.value:null,source:Nt.value,noTitle:Pt.value});cancelAnimationFrame($t),$t=requestAnimationFrame(()=>{W.value.width=e,W.value.height=t,Qt.value=!0})}),H.value=j.value.parentNode,V.value.observe(H.value))}ze(()=>{cancelAnimationFrame($t),V.value&&(H.value&&V.value.unobserve(H.value),V.value.disconnect())});let{isPrinting:nn,isImaging:rn,generatePdf:an,generateImage:on}=we({elementId:`vue-ui-age-pyramid_${O.value}`,fileName:F.value.title.text||`vue-ui-age-pyramid`,options:P.value.userOptions.print}),sn=u(()=>P.value.userOptions.show&&!F.value.title.text),U=b({showTable:P.value.table.show,showTooltip:F.value.tooltip.show});T(P,()=>{U.value={showTable:P.value.table.show,showTooltip:F.value.tooltip.show}},{immediate:!0});let W=b({height:F.value.height,width:F.value.width}),cn=u(()=>W.value.width),ln=u(()=>W.value.height),{metrics:un,ready:dn,settling:fn,update:pn}=Te({svgRef:B,canMeasure:()=>!P.value.responsive||Qt.value,initialMetrics:{bottom:0},measure:e=>({bottom:e(Lt.value).height})}),mn=u(()=>un.value.bottom),G=u(()=>{let e=W.value.width-F.value.layout.padding.right-F.value.layout.padding.left,t=F.value.layout.padding.left,n=W.value.width-F.value.layout.padding.right;return{top:F.value.layout.padding.top+I.value.sideTitles.fontSize+I.value.sideTitles.offsetY+12,left:t,right:n,bottom:W.value.height-F.value.layout.padding.bottom-mn.value,width:e,height:W.value.height-F.value.layout.padding.top-F.value.layout.padding.bottom-mn.value-I.value.sideTitles.fontSize-I.value.sideTitles.offsetY-12,centerX:F.value.layout.padding.left+e/2,leftChart:{width:e/2-F.value.layout.centerSlit.width,right:t+e/2-F.value.layout.centerSlit.width},rightChart:{width:e/2-F.value.layout.centerSlit.width,left:t+e/2+F.value.layout.centerSlit.width}}}),hn=u(()=>Wt.value.map(e=>I.value.yAxis.display===`age`?e[1]:e[0])),K=u(()=>{let e=gn(q.value/5),t=[],n=[];for(let r=0;r<=5;r+=1){let i=e*r,a=e*(r-5);t.push({value:i,x:G.value.left+G.value.width/2+F.value.layout.centerSlit.width+i/q.value*G.value.leftChart.width}),n.push({value:Math.abs(a),x:G.value.left+G.value.width/2+a/q.value*G.value.leftChart.width-F.value.layout.centerSlit.width})}return{right:t,left:n}});function gn(e){if(e===0)return 0;let t=10**Math.floor(Math.log10(Math.abs(e))),n;return n=Math.round(e/t)*t,n}let q=u(()=>Math.max(...Wt.value.flatMap(e=>e.slice(-2).map(e=>s(e))))),J=u(()=>Wt.value.length),_n=u(()=>Wt.value.map(e=>({segment:e[0],age:e[1],left:{value:e[2],proportionToMax:e[2]/q.value},right:{value:e[3],proportionToMax:e[3]/q.value}}))),Y=u(()=>_n.value.map((e,t)=>{let n=G.value.top+G.value.height/J.value*t,r=G.value.height/J.value-L.value.gap;return{segment:e.segment,age:e.age,left:{...e.left,y:n,color:L.value.left.color,x:G.value.leftChart.right-e.left.proportionToMax*G.value.leftChart.width,width:s(e.left.proportionToMax*G.value.leftChart.width),height:r},right:{...e.right,y:n,color:L.value.right.color,x:G.value.rightChart.left,width:s(e.right.proportionToMax*G.value.rightChart.width),height:r}}})),vn=b(null);function yn(e){let[t,n,r,i]=e;return{segment:t,index:n,left:r,right:i}}function bn(e,t){P.value.events.datapointClick&&P.value.events.datapointClick({datapoint:yn(t),seriesIndex:e})}function xn(e,t){P.value.events.datapointLeave&&P.value.events.datapointLeave({datapoint:yn(t),seriesIndex:e}),(N.value!==`keyboard`||M.value!==e)&&(A.value=null,k.value=!1)}function Sn(e){if(!B.value)return;let t=Y.value[e];if(!t)return;let n=se(G.value.left+G.value.width/2,t.left.y+t.left.height/2,B.value);n&&(Bt.value=n)}function Cn(e,t,r=`pointer`){P.value.events.datapointEnter&&P.value.events.datapointEnter({datapoint:yn(t),seriesIndex:e}),A.value=e,M.value=e,N.value=r,vn.value={datapoint:t,seriesIndex:e,series:Y.value,config:P.value};let a=F.value.tooltip.customFormat;if(i(a)&&ae(()=>a({seriesIndex:e,datapoint:{segment:t[0],index:t[1],left:t[2],right:t[3]},series:Y.value,config:P.value})))At.value=a({seriesIndex:e,datapoint:{segment:t[0],index:t[1],left:t[2],right:t[3]},series:Y.value,config:P.value});else{let r=``,i=Y.value[e];r+=`<div><b>${i.segment}</b></div>`,r+=`<div>${P.value.translations.age}: ${c(I.value.yAxis.formatter,s(i.age),n({v:s(i.age)}),{datapoint:t,seriesIndex:e})}</div>`,r+=`<div style="margin-top:6px;padding-top:6px;border-top:1px solid ${F.value.tooltip.borderColor}">`,r+=`<div style="display:flex; flex-direction:row;gap:12px">`,r+=`<div style="display:flex;flex-direction:column;align-items:center;justify-content:center"><svg viewBox="0 0 12 12" height="12" width="12"><rect stroke="none" x="0" y="0" height="12" width="12" rx="2" fill="${L.value.gradient.underlayer}"/><rect stroke="none" x="0" y="0" height="12" width="12" rx="2" fill="${L.value.gradient.show?`url(#age_pyramid_left_${O.value})`:L.value.left.color}"/></svg><div>${P.value.translations.female}</div><div><b>${c(I.value.xAxis.formatter,s(i.left.value),n({v:s(i.left.value)}),{datapoint:t,seriesIndex:e})}</b></div></div>`,r+=`<div style="display:flex;flex-direction:column;align-items:center;justify-content:center"><svg viewBox="0 0 12 12" height="12" width="12"><rect stroke="none" x="0" y="0" height="12" width="12" rx="2" fill="${L.value.gradient.underlayer}"/><rect stroke="none" x="0" y="0" height="12" width="12" rx="2" fill="${L.value.gradient.show?`url(#age_pyramid_right_${O.value})`:L.value.right.color}"/></svg><div>${P.value.translations.male}</div><div><b>${c(I.value.xAxis.formatter,s(i.right.value),n({v:s(i.right.value)}),{datapoint:t,seriesIndex:e})}</b></div></div>`,r+=`</div>`,r+=`<div style="margin-top:6px;padding-top:6px;border-top:1px solid ${F.value.tooltip.borderColor}"><div>${P.value.translations.total}</div><div><b>${c(I.value.xAxis.formatter,s(i.right.value)+s(i.left.value),n({v:s(i.right.value)+s(i.left.value)}),{datapoint:t,seriesIndex:e})}</b></div></div>`,r+=`</div>`,At.value=`<div>${r}</div>`}k.value=!0,r===`keyboard`&&Ie(()=>{Sn(e)})}function wn(e=null){Ie(()=>{let t=[P.value.translations.year,P.value.translations.age,P.value.translations.female,P.value.translations.male,P.value.translations.total],n=D.dataset.map(e=>[e[0],e[1],e[2],e[3],e[2]??0+e[3]??0]),i=[[F.value.title.text],[F.value.title.subtitle.text],[[``],[``],[``]],t].concat(n),a=r(i);e?e(a):ie({csvContent:a,title:F.value.title.text||`vue-ui-heatmap`})})}let X=u(()=>{let e=[P.value.translations.year,P.value.translations.age,P.value.translations.female,P.value.translations.male,P.value.translations.total];return{head:e,body:D.dataset.map(e=>[e[0],e[1],e[2]==null?``:e[2].toLocaleString(),e[3]==null?``:e[3].toLocaleString(),(e[2]??0+e[3]??0).toLocaleString()]),config:{th:{backgroundColor:P.value.table.th.backgroundColor,color:P.value.table.th.color,outline:P.value.table.th.outline},td:{backgroundColor:P.value.table.td.backgroundColor,color:P.value.table.td.color,outline:P.value.table.td.outline},breakpoint:P.value.table.responsiveBreakpoint},colNames:e}}),Z=b(!1);function Tn(e){Z.value=e,jt.value+=1}function En(){U.value.showTable=!U.value.showTable}function Dn(){U.value.showTooltip=!U.value.showTooltip}let Q=b(!1);function On(){Q.value=!Q.value}async function kn({scale:e=2}={}){if(!j.value)return;let{width:t,height:n}=j.value.getBoundingClientRect(),r=t/n,{imageUri:i,base64:a}=await he({domElement:j.value,base64:!0,img:!0,scale:e});return{imageUri:i,base64:a,title:F.value.title.text,width:t,height:n,aspectRatio:r}}let An=b([]),jn=b({start:0,end:Y.value.length});Ee({timeLabelsEls:Lt,timeLabels:An,slicer:jn,configRef:P,rotationPath:[`style`,`layout`,`dataLabels`,`xAxis`,`rotation`],autoRotatePath:[`style`,`layout`,`dataLabels`,`xAxis`,`autoRotate`,`enable`],isAutoSize:!1,width:cn,height:ln,targetClass:`.vue-ui-age-pyramid-x-axis-label`,rotation:F.value.layout.dataLabels.xAxis.autoRotate.angle});let $=u(()=>ye({config:P,style:F,mutableConfig:U,dialog:Et,accordion:xt,isFullscreen:Z,parent:j,maxWidth:800,isCursorPointer:z}));T(()=>U.value.showTable,e=>ve(e,P,Rt));function Mn(){U.value.showTable=!1,zt.value&&zt.value.setTableIconState(!1)}let Nn=u(()=>P.value.style.backgroundColor),Pn=u(()=>P.value.style.title),{isCallbackImaging:Fn,isCallbackSvg:In,generateSvg:Ln,onGenerateImage:Rn}=_e({svg:B,title:Pn,legend:null,legendItems:null,backgroundColor:Nn,getSvgCallback:()=>P.value.userOptions.callbacks.svg,generateImage:on});async function zn(){Ot(`copyAlt`,{config:P.value,dataset:Y.value}),P.value.userOptions.callbacks.altCopy?await Promise.resolve(P.value.userOptions.callbacks.altCopy({config:P.value,dataset:Y.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}function Bn(){Vt.value=!0}function Vn(){A.value=null,M.value=null,N.value=`pointer`,k.value=!1,Vt.value=!1}function Hn(e){if(!B.value||Q.value||document.activeElement!==B.value||!Y.value.length)return;let t=[`ArrowUp`,`ArrowLeft`].includes(e.key),n=[`ArrowDown`,`ArrowRight`].includes(e.key),r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){A.value=null,M.value=null,N.value=`pointer`,k.value=!1;return}if(r){if(M.value===null)return;let e=D.dataset[M.value];if(!e)return;bn(M.value,e);return}let a=M.value,o=A.value,ee=a!==null&&a>=0&&a<Y.value.length,te=o!==null&&o>=0&&o<Y.value.length;ee?t?a=a-1<0?Y.value.length-1:a-1:n&&(a=a+1>Y.value.length-1?0:a+1):te?(a=n?o+1:o-1,a>=Y.value.length&&(a=0),a<0&&(a=Y.value.length-1)):a=n?0:Y.value.length-1;let s=D.dataset[a];s&&Cn(a,s,`keyboard`)}return pe({getImage:kn,generatePdf:an,generateCsv:wn,generateImage:on,generateSvg:Ln,toggleTable:En,toggleTooltip:Dn,toggleAnnotator:On,toggleFullscreen:Tn,copyAlt:zn}),T(()=>[W.value,I.value,Lt.value,D.dataset,Qt.value,P.value.style.fontFamily],pn,{flush:`post`,deep:!0}),(t,r)=>(y(),p(`div`,{class:Le(`vue-data-ui-component vue-ui-age-pyramid ${Z.value?`vue-data-ui-wrapper-fullscreen`:``}`),ref_key:`agePyramid`,ref:j,id:`vue-ui-age-pyramid_${O.value}`,style:Re(`font-family:${F.value.fontFamily};width:100%; text-align:center;background:${F.value.backgroundColor};${P.value.responsive?`height:100%`:``}`),onMouseenter:r[1]||=()=>w(qt)(!0),onMouseleave:r[2]||=()=>w(qt)(!1)},[m(`div`,{id:`chart-instructions-${O.value}`,class:`sr-only`},[m(`p`,null,C(P.value.a11y.translations.keyboardNavigation),1)],8,Ke),X.value?.body?.length?(y(),d(ke,{key:0,uid:O.value,head:X.value.head,body:X.value.body,notice:P.value.a11y.translations.tableAvailable,caption:P.value.a11y.translations.tableCaption},null,8,[`uid`,`head`,`body`,`notice`,`caption`])):f(``,!0),P.value.userOptions.buttons.annotator?(y(),d(w(Ct),{key:1,svgRef:w(B),backgroundColor:F.value.backgroundColor,color:F.value.color,active:Q.value,isCursorPointer:z.value,palette:P.value.userOptions.annotatorPalette,onClose:On},Ne({_:2},[x(w(xe),e=>({name:e,fn:E(n=>[S(t.$slots,e,v(_(w(be)(e,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):f(``,!0),sn.value?(y(),p(`div`,{key:2,ref_key:`noTitle`,ref:Pt,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):f(``,!0),F.value.title.text?(y(),p(`div`,{key:3,ref_key:`chartTitle`,ref:Mt,style:`width:100%;background:transparent`},[(y(),d(ge,{key:`title_${Ft.value}`,config:{title:{cy:`pyramid-div-title`,...F.value.title},subtitle:{cy:`pyramid-div-subtitle`,...F.value.title.subtitle}}},null,8,[`config`]))],512)):f(``,!0),P.value.userOptions.show&&kt.value&&(w(Jt)||w(Kt))?(y(),d(w(wt),{ref_key:`userOptionsRef`,ref:zt,key:`user_options_${jt.value}`,backgroundColor:F.value.backgroundColor,color:F.value.color,isImaging:w(rn),isPrinting:w(nn),uid:O.value,hasTooltip:P.value.userOptions.buttons.tooltip&&F.value.tooltip.show,hasPdf:P.value.userOptions.buttons.pdf,hasXls:P.value.userOptions.buttons.csv,hasImg:P.value.userOptions.buttons.img,hasSvg:P.value.userOptions.buttons.svg,hasTable:P.value.userOptions.buttons.table,hasFullscreen:P.value.userOptions.buttons.fullscreen,hasAltCopy:P.value.userOptions.buttons.altCopy,isFullscreen:Z.value,isTooltip:U.value.showTooltip,titles:{...P.value.userOptions.buttonTitles},chartElement:j.value,position:P.value.userOptions.position,hasAnnotator:P.value.userOptions.buttons.annotator,isAnnotation:Q.value,callbacks:P.value.userOptions.callbacks,printScale:P.value.userOptions.print.scale,tableDialog:P.value.table.useDialog,isCursorPointer:z.value,onToggleFullscreen:Tn,onGeneratePdf:w(an),onGenerateCsv:wn,onGenerateImage:w(Rn),onGenerateSvg:w(Ln),onToggleTable:En,onToggleTooltip:Dn,onToggleAnnotator:On,onCopyAlt:zn,style:Re({visibility:w(Jt)?w(Kt)?`visible`:`hidden`:`visible`})},Ne({_:2},[x(w(Se)(t.$slots,`menuIcon optionTooltip optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),e=>({name:e,fn:E(n=>[S(t.$slots,e,v(_(w(Ce)(e,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isImaging.isPrinting.uid.hasTooltip.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasFullscreen.hasAltCopy.isFullscreen.isTooltip.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):f(``,!0),m(`div`,qe,[(y(),p(`svg`,{ref_key:`svgRef`,ref:B,xmlns:w(oe),class:Le({"vue-data-ui-fullscreen--on":Z.value,"vue-data-ui-fulscreen--off":!Z.value}),viewBox:`0 0 ${W.value.width<=0?10:W.value.width} ${W.value.height<=0?10:W.value.height}`,style:Re(`max-width:100%;overflow:visible;background:transparent;color:${F.value.color};visibility:${w(dn)?`visible`:`hidden`}`),tabindex:`0`,"aria-describedby":`chart-instructions-${O.value}`,onFocus:Bn,onBlur:Vn,onKeydown:Hn},[h(w(Tt)),S(t.$slots,`svg-underlayer`,{svg:{...W.value,drawingArea:G.value,isPrintingImg:w(nn)||w(rn)||w(Fn),isPrintingSvg:w(In)}},void 0,!0),t.$slots[`chart-background`]?(y(),p(`foreignObject`,{key:0,x:G.value.left,y:G.value.top,width:Math.max(.1,G.value.width),height:Math.max(.1,G.value.height),style:{pointerEvents:`none`}},[S(t.$slots,`chart-background`,{},void 0,!0)],8,Ye)):f(``,!0),m(`defs`,null,[h(Oe,{t:`linear`,id:`age_pyramid_left_${O.value}`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`0%`,stops:[[`0%`,L.value.left.color,1],[`100%`,w(a)(w(ee)(L.value.left.color,L.value.gradient.shiftHue),100-L.value.gradient.intensity),1]]},null,8,[`id`,`stops`]),h(Oe,{t:`linear`,id:`age_pyramid_right_${O.value}`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`0%`,stops:[[`0%`,w(a)(w(ee)(L.value.right.color,L.value.gradient.shiftHue),100-L.value.gradient.intensity),1],[`100%`,L.value.right.color,1]]},null,8,[`id`,`stops`])]),(y(!0),p(l,null,x(Y.value,(e,t)=>(y(),p(`g`,null,[m(`rect`,{x:e.left.x,y:e.left.y,width:w(s)(e.left.width<=0?1e-4:e.left.width),height:e.left.height<=0?1e-4:e.left.height,fill:L.value.gradient.underlayer,rx:L.value.borderRadius},null,8,Xe),m(`rect`,{x:e.left.x,y:e.left.y,width:e.left.width<=0?1e-4:e.left.width,height:e.left.height<=0?1e-4:e.left.height,fill:L.value.gradient.show?`url(#age_pyramid_left_${O.value})`:e.left.color,rx:L.value.borderRadius},null,8,Ze),m(`rect`,{x:e.right.x,y:e.right.y,width:e.right.width<=0?1e-4:e.right.width,height:e.right.height<=0?1e-4:e.right.height,fill:L.value.gradient.underlayer,rx:L.value.borderRadius},null,8,Qe),m(`rect`,{x:e.right.x,y:e.right.y,width:e.right.width<=0?1e-4:e.right.width,height:e.right.height<=0?1e-4:e.right.height,fill:L.value.gradient.show?`url(#age_pyramid_right_${O.value})`:e.right.color,rx:L.value.borderRadius},null,8,$e)]))),256)),(y(!0),p(l,null,x(Y.value,(e,t)=>(y(),p(`g`,null,[R.value.show?(y(),p(l,{key:0},[!R.value.showOnHover||R.value.showOnHover&&A.value===t?(y(),p(`text`,{key:0,x:e.left.x+Math.max(1e-4,e.left.width)-R.value.offsetX-6,y:e.left.y+Math.max(1e-4,e.left.height/2)+L.value.gap/2,"text-anchor":`end`,"dominant-baseline":`middle`,"font-size":R.value.fontSize,"font-weight":R.value.bold?`bold`:`normal`,fill:R.value.color,stroke:F.value.backgroundColor,"paint-order":`stroke fill`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`3`},C(w(c)(R.value.formatter,e.left.value,w(n)({v:e.left.value}),{datapoint:e.left,seriesIndex:t})),9,et)):f(``,!0)],64)):f(``,!0),R.value.show?(y(),p(l,{key:1},[!R.value.showOnHover||R.value.showOnHover&&A.value===t?(y(),p(`text`,{key:0,x:e.right.x+R.value.offsetX+6,y:e.right.y+Math.max(1e-4,e.right.height/2)+L.value.gap/2,"text-anchor":`start`,"dominant-baseline":`middle`,"font-size":R.value.fontSize,"font-weight":R.value.bold?`bold`:`normal`,fill:R.value.color,stroke:F.value.backgroundColor,"paint-order":`stroke fill`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`3`},C(w(c)(R.value.formatter,e.right.value,w(n)({v:e.right.value}),{datapoint:e.right,seriesIndex:t})),9,tt)):f(``,!0)],64)):f(``,!0)]))),256)),m(`g`,null,[I.value.sideTitles.show?(y(),p(`g`,nt,[m(`text`,{x:G.value.left,y:I.value.sideTitles.fontSize,fill:I.value.sideTitles.useSideColor?L.value.left.color:I.value.sideTitles.color,"font-size":I.value.sideTitles.fontSize,"text-anchor":`start`,"font-weight":I.value.sideTitles.bold?`bold`:`normal`},C(P.value.translations.female),9,rt),m(`text`,{x:G.value.right,y:I.value.sideTitles.fontSize,fill:I.value.sideTitles.useSideColor?L.value.right.color:I.value.sideTitles.color,"font-size":I.value.sideTitles.fontSize,"text-anchor":`end`,"font-weight":I.value.sideTitles.bold?`bold`:`normal`},C(P.value.translations.male),9,it)])):f(``,!0),I.value.yAxis.show?(y(),p(`g`,at,[(y(!0),p(l,null,x(hn.value,(e,t)=>(y(),p(l,null,[t%I.value.yAxis.showEvery===0&&(!R.value.show||R.value.showOnHover&&A.value===t||A.value===null)||(R.value.show||R.value.showOnHover)&&A.value===t?(y(),p(`text`,{key:0,x:G.value.centerX,y:G.value.top+G.value.height/J.value/2+G.value.height/J.value*t,"dominant-baseline":`middle`,"text-anchor":`middle`,"font-size":I.value.yAxis.fontSize,fill:I.value.yAxis.color,"font-weight":I.value.yAxis.bold?`bold`:`normal`},C(w(c)(I.value.yAxis.formatter,e,w(n)({v:e}),{datapoint:e,seriesIndex:t})),9,ot)):f(``,!0)],64))),256))])):f(``,!0),I.value.xAxis.show?(y(),p(`g`,st,[F.value.layout.grid.show?(y(),p(`g`,ct,[m(`line`,{x1:K.value.right[0].x,x2:K.value.right.at(-1).x,y1:G.value.bottom+I.value.xAxis.fontSize/2,y2:G.value.bottom+I.value.xAxis.fontSize/2,stroke:F.value.layout.grid.stroke,"stroke-width":F.value.layout.grid.strokeWidth,"stroke-linecap":`round`},null,8,lt),m(`line`,{x1:K.value.left[0].x,x2:K.value.left.at(-1).x,y1:G.value.bottom+I.value.xAxis.fontSize/2,y2:G.value.bottom+I.value.xAxis.fontSize/2,stroke:F.value.layout.grid.stroke,"stroke-width":F.value.layout.grid.strokeWidth,"stroke-linecap":`round`},null,8,ut)])):f(``,!0),(y(!0),p(l,null,x(K.value.right,(e,t)=>(y(),p(`g`,null,[F.value.layout.grid.show?(y(),p(`line`,{key:0,x1:e.x,x2:e.x,y1:G.value.bottom+I.value.xAxis.fontSize/2,y2:G.value.bottom+I.value.xAxis.fontSize/2+4,stroke:F.value.layout.grid.stroke,"stroke-width":F.value.layout.grid.strokeWidth,"stroke-linecap":`round`},null,8,dt)):f(``,!0)]))),256)),(y(!0),p(l,null,x(K.value.left,(e,t)=>(y(),p(`g`,null,[F.value.layout.grid.show?(y(),p(`line`,{key:0,x1:e.x,x2:e.x,y1:G.value.bottom+I.value.xAxis.fontSize/2,y2:G.value.bottom+I.value.xAxis.fontSize/2+4,stroke:F.value.layout.grid.stroke,"stroke-width":F.value.layout.grid.strokeWidth,"stroke-linecap":`round`},null,8,ft)):f(``,!0)]))),256)),m(`g`,{ref_key:`xAxisLabels`,ref:Lt},[(y(!0),p(l,null,x(K.value.right,(e,t)=>(y(),p(`text`,{class:`vue-ui-age-pyramid-x-axis-label`,"font-size":I.value.xAxis.fontSize,fill:I.value.xAxis.color,"text-anchor":I.value.xAxis.rotation>0?`start`:I.value.xAxis.rotation<0?`end`:`middle`,"font-weight":I.value.xAxis.bold?`bold`:`normal`,transform:`translate(${e.x}, ${G.value.bottom+I.value.xAxis.fontSize*2}) rotate(${I.value.xAxis.rotation})`},C(w(c)(I.value.xAxis.formatter,e.value/I.value.xAxis.scale,w(n)({v:e.value/F.value.layout.dataLabels.xAxis.scale}),{datapoint:e,seriesIndex:t})),9,pt))),256)),(y(!0),p(l,null,x(K.value.left,(e,t)=>(y(),p(`text`,{class:`vue-ui-age-pyramid-x-axis-label`,"font-size":I.value.xAxis.fontSize,fill:I.value.xAxis.color,"text-anchor":I.value.xAxis.rotation>0?`start`:I.value.xAxis.rotation<0?`end`:`middle`,"font-weight":I.value.xAxis.bold?`bold`:`normal`,transform:`translate(${e.x}, ${G.value.bottom+I.value.xAxis.fontSize*2}) rotate(${I.value.xAxis.rotation})`},C(w(c)(I.value.xAxis.formatter,e.value/I.value.xAxis.scale,w(n)({v:e.value/F.value.layout.dataLabels.xAxis.scale}),{datapoint:e,seriesIndex:t})),9,mt))),256))],512),m(`text`,{x:G.value.right,y:W.value.height,"text-anchor":`end`,"font-size":I.value.xAxis.fontSize,fill:I.value.xAxis.color,"font-weight":I.value.xAxis.bold?`bold`:`normal`},C(I.value.xAxis.translation),9,ht)])):f(``,!0)]),(y(!0),p(l,null,x(e.dataset,(e,t)=>(y(),p(`g`,null,[m(`rect`,{x:G.value.left,y:G.value.top+G.value.height/J.value*t-L.value.gap/2,width:G.value.width<=0?1e-4:G.value.width,height:G.value.height/J.value<=0?1e-4:G.value.height/J.value,fill:A.value!==null&&A.value===t?w(a)(F.value.highlighter.color,F.value.highlighter.opacity):`transparent`,onMouseover:n=>Cn(t,e,`pointer`),onMouseleave:n=>xn(t,e),onClick:n=>bn(t,e)},null,40,gt)]))),256)),S(t.$slots,`svg`,{svg:{...W.value,drawingArea:G.value,isPrintingImg:w(nn)||w(rn)||w(Fn),isPrintingSvg:w(In)}},void 0,!0)],46,Je)),t.$slots.hint?(y(),p(`div`,_t,[S(t.$slots,`hint`,v(_({hint:P.value.a11y.translations.keyboardNavigation,isVisible:Vt.value})),void 0,!0)])):f(``,!0)]),t.$slots.watermark?(y(),p(`div`,vt,[S(t.$slots,`watermark`,v(_({isPrinting:w(nn)||w(rn)||w(Fn)||w(In)})),void 0,!0)])):f(``,!0),S(t.$slots,`legend`,{legend:Y.value},void 0,!0),t.$slots.source?(y(),p(`div`,{key:6,ref_key:`source`,ref:Nt,dir:`auto`},[S(t.$slots,`source`,{},void 0,!0)],512)):f(``,!0),h(w(yt),{teleportTo:F.value.tooltip.teleportTo,show:U.value.showTooltip&&k.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:j.value,content:At.value,isFullscreen:Z.value,isCustom:F.value.tooltip.customFormat&&typeof F.value.tooltip.customFormat==`function`,smooth:F.value.tooltip.smooth,backdropFilter:F.value.tooltip.backdropFilter,smoothForce:F.value.tooltip.smoothForce,smoothSnapThreshold:F.value.tooltip.smoothSnapThreshold,isA11yMode:N.value===`keyboard`,a11yPosition:Bt.value},{"tooltip-before":E(()=>[S(t.$slots,`tooltip-before`,v(_({...vn.value})),void 0,!0)]),tooltip:E(()=>[S(t.$slots,`tooltip`,v(_({...vn.value})),void 0,!0)]),"tooltip-after":E(()=>[S(t.$slots,`tooltip-after`,v(_({...vn.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`]),kt.value&&P.value.userOptions.buttons.table?(y(),d(Ve($.value.component),Fe({key:7},$.value.props,{ref_key:`tableUnit`,ref:Rt,onClose:Mn}),Ne({content:E(()=>[(y(),d(w(St),{key:`table_${It.value}`,colNames:X.value.colNames,head:X.value.head,body:X.value.body,config:X.value.config,title:P.value.table.useDialog?``:$.value.title,withCloseButton:!P.value.table.useDialog,isCursorPointer:z.value,onClose:Mn},{th:E(({th:e})=>[Pe(C(e),1)]),td:E(({td:e})=>[Pe(C(e),1)]),_:1},8,[`colNames`,`head`,`body`,`config`,`title`,`withCloseButton`,`isCursorPointer`]))]),_:2},[P.value.table.useDialog?{name:`title`,fn:E(()=>[Pe(C($.value.title),1)]),key:`0`}:void 0,P.value.table.useDialog?{name:`actions`,fn:E(()=>[m(`button`,{tabindex:`0`,class:`vue-ui-user-options-button`,onClick:r[0]||=e=>wn(P.value.userOptions.callbacks.csv),style:Re({cursor:z.value?`pointer`:`default`})},[h(w(bt),{name:`fileCsv`,stroke:$.value.props.color},null,8,[`stroke`])],4)]),key:`1`}:void 0]),1040)):f(``,!0),S(t.$slots,`skeleton`,{},()=>[w(Ut)?(y(),d(ue,{key:0})):f(``,!0)],!0)],46,Ge))}},[[`__scopeId`,`data-v-e4eda545`]]);export{We as n,yt as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Ft as r,S as i,X as a,_ as ee,at as te,i as o,in as ne,t as re,yt as ie,zt as ae}from"./lib-rPeBMZrn.js";import{n as oe,t as se}from"./BaseScanner-8NdoBs7B.js";import{n as ce}from"./useHints-C-TwxM0Y.js";import{t as le}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ue}from"./resolveChartConfig-CIhClE5R.js";import{t as de}from"./chartImage-DPGnEuYM.js";import{n as fe}from"./Title-BliHuXfT.js";import{t as pe}from"./useChartExport-BZts4KFb.js";import{n as me,t as he}from"./annotationSlots-BRR85CqJ.js";import{n as ge,t as _e}from"./userOptionsSlots-DYuo-E5m.js";import{t as ve}from"./usePrinter-DVf3YcG5.js";import{c as ye}from"./canvas-lib-22VpOI4_.js";import{t as be}from"./useResponsive-CENUxfEL.js";import{t as xe}from"./useUserOptionState-CXlFnwPv.js";import{t as Se}from"./useChartAccessibility-DOMuYJfm.js";import{t as Ce}from"./Legend-DM0ClX3D.js";import{t as we}from"./vue_ui_bullet-CwVYkpjd.js";import{Fragment as s,Teleport as Te,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createSlots as Ee,createVNode as De,defineAsyncComponent as p,guardReactiveProps as m,normalizeClass as Oe,normalizeProps as h,normalizeStyle as g,onBeforeUnmount as ke,onMounted as Ae,openBlock as _,ref as v,renderList as y,renderSlot as b,toDisplayString as x,toRefs as je,unref as S,watch as Me,withCtx as C}from"vue";var Ne=/* @__PURE__ */ e({default:()=>w}),Pe=[`id`],Fe={key:1,ref:`noTitle`,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},Ie=[`id`],Le=[`xmlns`,`viewBox`,`aria-labelledby`,`aria-describedby`],Re=[`id`],ze=[`id`],Be=[`width`,`height`],Ve={key:1},He=[`x`,`y`,`height`,`width`,`fill`,`stroke`],Ue=[`x`,`y`,`height`,`width`,`rx`,`fill`,`stroke`,`stroke-width`],We=[`x`,`y`,`height`,`width`,`fill`,`stroke`,`stroke-width`],Ge=[`x`,`y`,`font-size`,`font-weight`,`fill`],Ke=[`x`,`y`,`height`,`width`,`rx`,`fill`,`stroke`,`stroke-width`],qe={key:3},Je=[`x`,`y`,`fill`,`font-size`,`font-weight`],Ye={key:4},Xe=[`x1`,`x2`,`y1`,`y2`,`stroke`],Ze={key:4,class:`vue-data-ui-watermark`},Qe=[`id`],$e={key:0,class:`vue-ui-bullet-legend-item`,dir:`auto`},et={style:{"margin-right":`2px`}},w=/*#__PURE__*/ le({__name:`vue-ui-bullet`,props:{config:{type:Object,default(){return{}}},dataset:{type:Object,default(){return{}}}},emits:[`copyAlt`],setup(e,{expose:le,emit:Ne}){let w=p(()=>import(`./PackageVersion-
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,Ft as r,S as i,X as a,_ as ee,at as te,i as o,in as ne,t as re,yt as ie,zt as ae}from"./lib-rPeBMZrn.js";import{n as oe,t as se}from"./BaseScanner-8NdoBs7B.js";import{n as ce}from"./useHints-C-TwxM0Y.js";import{t as le}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ue}from"./resolveChartConfig-CIhClE5R.js";import{t as de}from"./chartImage-DPGnEuYM.js";import{n as fe}from"./Title-BliHuXfT.js";import{t as pe}from"./useChartExport-BZts4KFb.js";import{n as me,t as he}from"./annotationSlots-BRR85CqJ.js";import{n as ge,t as _e}from"./userOptionsSlots-DYuo-E5m.js";import{t as ve}from"./usePrinter-DVf3YcG5.js";import{c as ye}from"./canvas-lib-22VpOI4_.js";import{t as be}from"./useResponsive-CENUxfEL.js";import{t as xe}from"./useUserOptionState-CXlFnwPv.js";import{t as Se}from"./useChartAccessibility-DOMuYJfm.js";import{t as Ce}from"./Legend-DM0ClX3D.js";import{t as we}from"./vue_ui_bullet-CwVYkpjd.js";import{Fragment as s,Teleport as Te,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createSlots as Ee,createVNode as De,defineAsyncComponent as p,guardReactiveProps as m,normalizeClass as Oe,normalizeProps as h,normalizeStyle as g,onBeforeUnmount as ke,onMounted as Ae,openBlock as _,ref as v,renderList as y,renderSlot as b,toDisplayString as x,toRefs as je,unref as S,watch as Me,withCtx as C}from"vue";var Ne=/* @__PURE__ */ e({default:()=>w}),Pe=[`id`],Fe={key:1,ref:`noTitle`,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},Ie=[`id`],Le=[`xmlns`,`viewBox`,`aria-labelledby`,`aria-describedby`],Re=[`id`],ze=[`id`],Be=[`width`,`height`],Ve={key:1},He=[`x`,`y`,`height`,`width`,`fill`,`stroke`],Ue=[`x`,`y`,`height`,`width`,`rx`,`fill`,`stroke`,`stroke-width`],We=[`x`,`y`,`height`,`width`,`fill`,`stroke`,`stroke-width`],Ge=[`x`,`y`,`font-size`,`font-weight`,`fill`],Ke=[`x`,`y`,`height`,`width`,`rx`,`fill`,`stroke`,`stroke-width`],qe={key:3},Je=[`x`,`y`,`fill`,`font-size`,`font-weight`],Ye={key:4},Xe=[`x1`,`x2`,`y1`,`y2`,`stroke`],Ze={key:4,class:`vue-data-ui-watermark`},Qe=[`id`],$e={key:0,class:`vue-ui-bullet-legend-item`,dir:`auto`},et={style:{"margin-right":`2px`}},w=/*#__PURE__*/ le({__name:`vue-ui-bullet`,props:{config:{type:Object,default(){return{}}},dataset:{type:Object,default(){return{}}}},emits:[`copyAlt`],setup(e,{expose:le,emit:Ne}){let w=p(()=>import(`./PackageVersion-DhptF5oD.js`).then(e=>e.t)),tt=p(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),nt=p(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),{vue_ui_bullet:rt}=t(),T=e,it=Ne,E=v(null),at=v(null),ot=v(0),st=v(null),ct=v(null),lt=v(0),D=v(null),O=v(null),ut=v(!1),k=c({get:()=>B.value.hasOwnProperty(`value`),set:e=>e}),A=v(R()),j=c(()=>A.value.debug),M=c(()=>A.value.style.chart.target),N=c(()=>A.value.style.chart.segments),P=c(()=>A.value.style.chart),F=c(()=>A.value.userOptions),I=c(()=>B.value.segments?Array.isArray(B.value.segments)?B.value.segments.length?!0:(j.value&&console.warn(`VueUiBullet: dataset segments is empty. Provide segments with this datastructure:
|
|
2
2
|
|
|
3
3
|
segments: [
|
|
4
4
|
{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,At as r,D as i,Ht as a,J as o,P as s,S as ee,U as c,X as l,at as te,c as ne,i as re,in as ie,nn as ae,nt as oe,r as se,t as ce,w as le,yt as ue,zt as de}from"./lib-rPeBMZrn.js";import{n as fe,t as pe}from"./BaseScanner-8NdoBs7B.js";import{n as me,t as he}from"./useHints-C-TwxM0Y.js";import{t as ge}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as _e}from"./useNestedProp-DnGoh-XS.js";import{t as ve}from"./useThemeCheck-BKNRbGeC.js";import{t as ye}from"./chartImage-DPGnEuYM.js";import{n as be}from"./Title-BliHuXfT.js";import{t as xe}from"./useChartExport-BZts4KFb.js";import{n as Se,t as Ce}from"./tableIntegration-CNoJ1CIY.js";import{n as we,t as Te}from"./annotationSlots-BRR85CqJ.js";import{n as Ee,t as De}from"./userOptionsSlots-DYuo-E5m.js";import{t as Oe}from"./useTimeLabels-Das5O74F.js";import{t as ke}from"./usePrinter-DVf3YcG5.js";import{t as Ae}from"./useSvgLabelLayout-42Kats14.js";import{t as je}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Me}from"./useResponsive-CENUxfEL.js";import{t as Ne}from"./A11yDataTable-DWNlWXzs.js";import{t as Pe}from"./useUserOptionState-CXlFnwPv.js";import{t as Fe}from"./useChartAccessibility-DOMuYJfm.js";import{t as Ie}from"./vue_ui_bump-KJL9GYr4.js";import{t as Le}from"./BaseDraggableDialog-DHgIPVmz.js";import{Fragment as u,computed as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createSlots as Re,createTextVNode as ze,createVNode as Be,defineAsyncComponent as g,guardReactiveProps as Ve,mergeProps as He,normalizeClass as Ue,normalizeProps as We,normalizeStyle as _,onBeforeUnmount as Ge,onMounted as Ke,openBlock as v,ref as y,renderList as b,renderSlot as x,resolveDynamicComponent as qe,shallowRef as Je,toDisplayString as S,toRefs as Ye,unref as C,watch as w,watchEffect as Xe,withCtx as T}from"vue";var Ze=/* @__PURE__ */ e({default:()=>_t}),Qe=[`id`],$e=[`id`],et={style:{position:`relative`}},tt=[`xmlns`,`aria-describedby`,`viewBox`],nt=[`x`,`y`,`width`,`height`],rt=[`d`,`stroke`,`stroke-width`,`onMouseenter`],it=[`d`,`stroke`,`stroke-width`,`onMouseenter`,`onMouseleave`,`onClick`],at=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`,`onMouseenter`,`onMouseleave`,`onClick`],ot=[`x`,`y`,`fill`,`font-size`],st=[`onMouseenter`,`onMouseleave`,`onClick`],ct=[`x`,`y`,`fill`,`font-size`],lt=[`x`,`y`,`fill`,`font-size`,`font--weight`,`innerHTML`,`onMouseenter`,`onMouseleave`,`onClick`],ut=[`x`,`y`,`fill`,`font-size`,`font--weight`,`innerHTML`,`onMouseenter`,`onMouseleave`,`onClick`],dt={key:0},ft={key:1},pt=[`text-anchor`,`font-size`,`font-weight`,`fill`,`stroke`,`transform`],mt=[`text-anchor`,`font-size`,`fill`,`transform`,`innerHTML`],ht={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},gt={key:5,class:`vue-data-ui-watermark`},_t=/*#__PURE__*/ ge({__name:`vue-ui-bump`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`copyAlt`],setup(e,{expose:ge,emit:Ze}){let _t=g(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),vt=g(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),yt=g(()=>import(`./DataTable-0Vv-aGHD.js`)),bt=g(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),xt=g(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),St=g(()=>import(`./PackageVersion-CXT-eAuk.js`).then(e=>e.t)),{vue_ui_bump:Ct}=t(),{isThemeValid:wt,warnInvalidTheme:Tt}=ve(),E=e,Et=Ze,Dt=d({get(){return!!E.dataset&&E.dataset.length},set(e){return e}}),D=y(null),O=y(l()),Ot=y(0),kt=y(null),At=y(null),jt=y(null),Mt=y(!1),Nt=y(!1),Pt=y(0),Ft=y(0),It=y(null),Lt=y(null),Rt=y(!1),k=y(null),zt=y(null),Bt=y(null),Vt=y(null),A=y(null),Ht=y(!1),j=y(Yt()),M=d(()=>j.value.style.chart.layout.plots),N=d(()=>j.value.style.chart.layout),P=d(()=>j.value.style.chart),F=d(()=>j.value.userOptions);me({config:()=>j.value,dataset:()=>E.dataset,component:`VueUiBump`,rules:[he.emptyArray,{test:e=>e.length>31,message:[`👀 The number of series > 31. Consider:`,``,`▶️ Using filters to let users choose a maximum number of series to display`,``,`▶️ Use several instances of the component to show related series`]},{test:e=>e.length===1,message:[`👀 There is only 1 series in your dataset. Consider:`,``,`▶️ Using a line chart, with VueUiXy.`]},{test:e=>e.some(e=>e.values.length>31),message:[`👀 Some series contain > 31 data points, which can make the chart hard to read. Consider:`,``,`▶️ Use filters to show less data points at a time.`,``,`▶️ Use larger time scales, or aggregated values.`]}]});let I=d(()=>j.value.userOptions.useCursorPointer),Ut=d(()=>ie({defaultConfig:{userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{timeLabels:{show:!1},lines:{coatingColor:`#4A4A4A`},plots:{stroke:`#4A4A4A`,labels:{show:!1,displayedValue:`rank`}},nameLabels:{useSerieColor:!0}}}}},userConfig:j.value.skeletonConfig??{}})),{loading:Wt,FINAL_DATASET:Gt,manualLoading:Kt}=fe({...Ye(E),FINAL_CONFIG:j,prepareConfig:Yt,skeletonDataset:E.config?.skeletonDataset??[{name:`————`,values:[1,1,1,2,2,2,3,3,2,2],color:`#4A4A4A`},{name:`————`,values:[2,2,2,1,3,3,2,2,3,3],color:`#6A6A6A`},{name:`————`,values:[3,3,3,3,1,1,1,1,1,1],color:`#8A8A8A`}],skeletonConfig:ie({defaultConfig:j.value,userConfig:Ut.value})}),qt=y(!1),Jt=0;Ke(un);function Yt(){let e=_e({userConfig:E.config,defaultConfig:Ct}),t={},n=e.theme;if(n){if(!wt.value(e))Tt(e),t=e;else{let r=_e({userConfig:Ie[n]||E.config,defaultConfig:e});t={..._e({userConfig:E.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:ae[n]||a}}}else t=e;return t}let{userOptionsVisible:Xt,setUserOptionsVisibility:Zt,keepUserOptionState:Qt}=Pe({config:j.value}),{svgRef:L}=Fe({config:P.value.title});function $t(){Rt.value=!0,Zt(!0)}function en(){Zt(!1),Rt.value=!1}let R=y({showTable:j.value.table.show});w(j,()=>{R.value={showTable:j.value.table.show}},{immediate:!0}),w(()=>E.config,e=>{Wt.value||(j.value=Yt()),Xt.value=!j.value.userOptions.showOnChartHover,un(),Pt.value+=1,Ft.value+=1,R.value.showTable=j.value.table.show,j.value.responsive||(z.value.width=P.value.width,z.value.height=P.value.height),z.value.paddingRatio={top:P.value.padding.top/P.value.height,right:P.value.padding.right/P.value.width,bottom:P.value.padding.bottom/P.value.height,left:P.value.padding.left/P.value.width}}),w(()=>E.dataset,e=>{Array.isArray(e)&&e.length>0&&(Kt.value=!1)},{deep:!0});let{isPrinting:tn,isImaging:nn,generatePdf:rn,generateImage:an}=ke({elementId:`bump_${O.value}`,fileName:P.value.title.text||`vue-ui-bump`,options:j.value.userOptions.print}),on=d(()=>j.value.userOptions.show&&!P.value.title.text),z=y({width:P.value.width,height:P.value.height,paddingRatio:{top:P.value.padding.top/P.value.height,right:P.value.padding.right/P.value.width,bottom:P.value.padding.bottom/P.value.height,left:P.value.padding.left/P.value.width}}),sn=d(()=>le(j.value.customPalette)),B=Je(null),V=Je(null),cn=y(null),ln=d(()=>j.value.debug);function un(){de(E.dataset)?(te({componentName:`VueUiBump`,type:`dataset`,debug:ln.value}),Kt.value=!0):E.dataset.forEach((e,t)=>{ue({datasetObject:e,requiredAttributes:[`name`,`values`]}).forEach(e=>{Dt.value=!1,te({componentName:`VueUiBump`,type:`datasetSerieAttribute`,property:e,index:t,debug:ln.value}),Kt.value=!0})}),de(E.dataset)||(Kt.value=j.value.loading),setTimeout(()=>{Nt.value=!0},10),j.value.responsive&&(B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect()),B.value=new ResizeObserver(()=>{Nt.value=!1;let{width:e,height:t}=Me({chart:D.value,noTitle:At.value,title:P.value.title.text?kt.value:null,legend:null,slicer:null,source:jt.value});cancelAnimationFrame(Jt),Jt=requestAnimationFrame(()=>{z.value.width=e,z.value.height=t-12,qt.value=!0,clearTimeout(cn.value),cn.value=setTimeout(()=>{Nt.value=!0},10)})}),V.value=D.value.parentNode,B.value.observe(V.value))}Ge(()=>{cancelAnimationFrame(Jt),B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect())});let dn=d(()=>Gt.value.map((e,t)=>{let n=ee(e.color)||sn.value[t]||a[t]||a[t%a.length];return{...e,absoluteIndex:t,id:l(),color:n}})),H=d(()=>Math.max(...dn.value.map(e=>e.values.length)));function fn(e){let t=e.map(()=>Array(H.value).fill(null));for(let n=0;n<H.value;n+=1){let r=e.map((e,r)=>({seriesIndex:r,value:e.values?.[n],previousPosition:n>0?t[r][n-1]:r})).filter(e=>Number.isFinite(e.value));r.sort((e,t)=>t.value===e.value?e.previousPosition-t.previousPosition:t.value-e.value);for(let e=0;e<r.length;e+=1){let i=r[e];t[i.seriesIndex][n]=e}}return t}let{metrics:pn,ready:mn,settling:hn,update:gn}=Ae({svgRef:L,canMeasure:()=>(!j.value.responsive||qt.value)&&(!N.value.timeLabels.show||Cn.value),initialMetrics:{left:0,right:0,bottom:0},measure:e=>N.value.timeLabels.autoRotate.enable&&Nn()?null:{left:e(zt.value).width,right:e(Bt.value).width,bottom:e(Vt.value).height}});function _n(){return pn.value.left}function vn(){return pn.value.right}let yn=d(()=>N.value.timeLabels.show&&K.value.length?pn.value.bottom+Math.abs(N.value.timeLabels.offsetY)+N.value.timeLabels.fontSize*.3:0),U=d(()=>{let{height:e,width:t}=z.value,{right:n,left:r}=z.value.paddingRatio,i=_n(),a=vn(),o=P.value.padding.top,s=t-t*n-a,ee=t*r+i,c=t-t*n-t*r-i-a,l=e-o-P.value.padding.bottom-yn.value,te=o+l,ne=o+l,re=Math.max(0,e);return{chartHeight:ne,chartWidth:Math.max(0,t),top:o,right:Math.max(0,s),bottom:Math.max(0,te),left:Math.max(0,ee),width:Math.max(0,c),height:Math.max(0,l),unitH:Math.max(0,l)/dn.value.length,unitW:Math.max(0,c)/H.value,svgHeight:re}}),W=d(()=>{if(!Dt.value&&!Wt.value)return[];let e=fn(dn.value);return dn.value.map((t,n)=>({...t,positions:e[n]})).map(e=>{let t=e.positions.map((t,r)=>{let i=re(M.value.labels.formatter,e.values[r],n({p:M.value.labels.prefix,v:e.values[r],s:M.value.labels.suffix,r:M.value.labels.rounding}));return{name:e.name,id:e.id,x:U.value.left+r*U.value.unitW+U.value.unitW/2,y:U.value.top+t*U.value.unitH+U.value.unitH/2,value:e.values[r],displayValue:i,rank:e.positions[r]+1,color:e.color,labelColor:M.value.labels.color===`auto`?se(e.color):ee(M.value.labels.color)??se(e.color)}}),i=t.filter(e=>r(e.value)),a=N.value.lines.smooth?s(i):c(i);return{...e,coordinates:t,path:a}})});d(()=>W.value.flatMap((e,t)=>e.coordinates.map((n,r)=>({...n,pointIndex:r,seriesIndex:t,seriesId:e.id,seriesName:e.name,pointId:`${e.id}_${r}`})).filter(e=>r(e.value))));function bn(e,t,n,r){let i=e.toSorted((e,t)=>e.y-t.y);for(let e=1;e<i.length;e+=1){let n=i[e-1],r=i[e];r.y<n.y+t&&(r.y=n.y+t)}let a=i.length-1;if(a>=0&&i[a].y>r){i[a].y=r;for(let e=a-1;e>=0;--e){let n=i[e+1],r=i[e];r.y>n.y-t&&(r.y=n.y-t)}}if(i.length&&i[0].y<n){let e=n-i[0].y;for(let t=0;t<i.length;t+=1)i[t].y+=e}return i}let xn=d(()=>{let e=[],t=[];W.value.forEach(n=>{let r=n.coordinates.filter(e=>Number.isFinite(e.rank));if(!r.length)return;e.push({...r[0]});let i=r[r.length-1];t.push({...i})});let n=N.value.nameLabels.fontSize,r=n*1.4,i=U.value.top+n,a=U.value.bottom-n,o=bn(t,r,i,a);return{left:bn(e,r,i,a),right:o}});function Sn(e){let t=M.value.labels.fontSize*.4,n=e.displayValue,r=n.length*(M.value.labels.fontSize*(n.length===1?1:.6)),i=M.value.labels.fontSize,a=r+t*2,o=i+t*2,s=e.x-a/2,ee=e.y-o/2,c=M.value.strokeWidth;return{x:s-c/2,y:ee-c/2,width:a+c,height:o+c,fill:e.color,stroke:M.value.stroke,"stroke-width":c,rx:o/2}}let G=y([]),Cn=y(!1),wn=0;Xe(()=>{let e=++wn,t=N.value.timeLabels,n=t.values,r=t.datetimeFormatter,i=H.value;!i||!Array.isArray(n)||n.length===0?(G.value=[],Cn.value=!0):(async()=>{let t=await Oe({values:n,maxDatapoints:i,formatter:r,start:0,end:i});e===wn&&(G.value=t,Cn.value=!0)})()});let K=d(()=>{let e=N.value.timeLabels,t=G.value||[],n=G.value||[],r=H.value,i=t.map(e=>e?.text??``),a=n.map(e=>e?.text??``);return ne(!!e.showOnlyFirstAndLast,!!e.showOnlyAtModulo,Math.max(1,Number(e.modulo)||1),i,a,0,null,r)}),Tn=d(()=>z.value.width),En=d(()=>z.value.height),Dn=d(()=>({start:0,end:H.value})),q=d(()=>[...W.value].map(e=>{let t=[...e.coordinates].filter(e=>r(e.value)).at(-1);return{...e,navigationRank:t?.rank??1/0}}).sort((e,t)=>e.navigationRank-t.navigationRank));function On(){A.value=null,Ht.value=!0}function kn(){jn(),Ht.value=!1}function An(e,t){let n=q.value.length;return n?e===null||e<0||e>=n?0:t===`previous`?(e-1+n)%n:(e+1)%n:null}function jn(){if(A.value!==null){let e=q.value[A.value];e&&$(e,e)}A.value=null,k.value=null}function Mn(e){if(!L.value||Y.value||document.activeElement!==L.value||!q.value.length)return;let t=[`ArrowLeft`,`ArrowUp`].includes(e.key),n=[`ArrowRight`,`ArrowDown`].includes(e.key),r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){jn();return}if(r){if(A.value===null)return;let e=q.value[A.value];if(!e)return;qn(e,e);return}let a=A.value;a===null?a=0:t?a=An(a,`previous`):n&&(a=An(a,`next`));let o=q.value[a];o&&(A.value=a,Q(o,o))}let J=d(()=>({head:Z.value.head,body:W.value.map(e=>[e.name,...e.coordinates.map(e=>r(e.value)?`${e.displayValue} (${e.rank})`:`-`)]),caption:j.value.a11y.translations.tableCaption,notice:j.value.a11y.translations.tableAvailable})),{detectTimeLabelCollisionNow:Nn}=je({timeLabelsEls:Vt,timeLabels:G,slicer:Dn,configRef:j,rotationPath:[`style`,`chart`,`layout`,`timeLabels`,`rotation`],autoRotatePath:[`style`,`chart`,`layout`,`timeLabels`,`autoRotate`,`enable`],isAutoSize:!1,width:Tn,height:En,rotation:N.value.timeLabels.autoRotate.angle,resizeDebounceMs:0}),Y=y(!1);function Pn(){Y.value=!Y.value}function Fn(e){Mt.value=e,Ot.value+=1}function In(){R.value.showTable=!R.value.showTable}w(()=>R.value.showTable,e=>Se(e,j,It));function Ln(){R.value.showTable=!1,Lt.value&&Lt.value.setTableIconState(!1)}function Rn(){return W.value}function zn(e=null){let t=[[P.value.title.text],[P.value.title.subtitle.text],[``]],n=[``,...K.value.map(e=>e?.text??``)],r=W.value.map(e=>[e.name,...e.coordinates.map(e=>`${e.displayValue}`)]),a=W.value.map(e=>[e.name,...e.coordinates.map(e=>`${e.rank}`)]),o=t.concat([[j.value.table.columnNames.values]]).concat([n]).concat(r).concat([[``],[j.value.table.columnNames.ranking],[n]]).concat(a),s=i(o);e?e(s):oe({csvContent:s,title:P.value.title.text||`vue-ui-bump`})}let X=d(()=>Ce({config:j,style:P,mutableConfig:R,dialog:Le,accordion:vt,isFullscreen:Mt,parent:D,maxWidth:800,isCursorPointer:I})),Z=d(()=>({head:[``].concat(K.value.map(e=>e.text)),body:W.value.map((e,t)=>[e.name,...e.coordinates.map(e=>`${e.displayValue} (${e.rank})`)]),config:{th:{backgroundColor:j.value.table.th.backgroundColor,color:j.value.table.th.color,outline:j.value.table.th.outline},td:{backgroundColor:j.value.table.td.backgroundColor,color:j.value.table.td.color,outline:j.value.table.td.outline},breakpoint:j.value.table.responsiveBreakpoint},colNames:[j.value.table.columnNames.series]})),Bn=d(()=>P.value.backgroundColor),Vn=d(()=>P.value.title),{isCallbackImaging:Hn,isCallbackSvg:Un,generateSvg:Wn,onGenerateImage:Gn}=xe({svg:L,title:Vn,legend:null,legendItems:null,backgroundColor:Bn,getSvgCallback:()=>j.value.userOptions.callbacks.svg,generateImage:an}),Kn=ye(D,()=>P.value.title.text);function Q(e,t){k.value=t.id,j.value.events.datapointEnter&&j.value.events.datapointEnter({datapoint:e,seriesIndex:e?.pointIndex??null})}function $(e,t){k.value=null,j.value.events.datapointLeave&&j.value.events.datapointLeave({datapoint:e,seriesIndex:e?.pointIndex??null})}function qn(e,t){j.value.events.datapointClick&&j.value.events.datapointClick({datapoint:e,seriesIndex:e?.pointIndex??null})}async function Jn(){Et(`copyAlt`,{config:j.value,dataset:W.value}),j.value.userOptions.callbacks.altCopy?await Promise.resolve(j.value.userOptions.callbacks.altCopy({config:j.value,dataset:W.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}return ge({getData:Rn,getImage:Kn,generatePdf:rn,generateCsv:zn,generateImage:an,generateSvg:Wn,toggleTable:In,toggleAnnotator:Pn,toggleFullscreen:Fn,copyAlt:Jn}),w(()=>[z.value.width,z.value.height,N.value,G.value,Cn.value,zt.value,Bt.value,Vt.value,E.dataset,qt.value,j.value.style.fontFamily],gn,{flush:`post`,deep:!0}),(e,t)=>(v(),m(`div`,{id:`bump_${O.value}`,ref_key:`bumpChart`,ref:D,class:Ue({"vue-data-ui-component":!0,"vue-ui-bump":!0,"vue-data-ui-wrapper-fullscreen":Mt.value}),style:_(`background:${P.value.backgroundColor};color:${P.value.color};font-family:${j.value.style.fontFamily}; position: relative; ${j.value.responsive?`height: 100%`:``}`),onMouseenter:$t,onMouseleave:en},[h(`p`,{id:`chart-instructions-${O.value}`,class:`sr-only`},S(j.value.a11y.translations.keyboardNavigation),9,$e),J.value.body.length?(v(),f(Ne,{key:0,uid:O.value,head:J.value.head,body:J.value.body,caption:J.value.caption,notice:J.value.notice},null,8,[`uid`,`head`,`body`,`caption`,`notice`])):p(``,!0),F.value.buttons.annotator?(v(),f(C(bt),{key:1,svgRef:C(L),backgroundColor:P.value.backgroundColor,color:P.value.color,active:Y.value,isCursorPointer:I.value,palette:F.value.annotatorPalette,onClose:Pn},Re({_:2},[b(C(Te),t=>({name:t,fn:T(n=>[x(e.$slots,t,We(Ve(C(we)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):p(``,!0),x(e.$slots,`userConfig`,{},void 0,!0),on.value?(v(),m(`div`,{key:2,ref_key:`noTitle`,ref:At,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):p(``,!0),P.value.title.text?(v(),m(`div`,{key:3,ref_key:`chartTitle`,ref:kt,style:`width:100%;background:transparent;`},[(v(),f(be,{key:`title_${Pt.value}`,config:{title:{cy:`bump-title`,...P.value.title},subtitle:{cy:`bump-subtitle`,...P.value.title.subtitle}}},null,8,[`config`]))],512)):p(``,!0),F.value.show&&Dt.value&&(C(Qt)||C(Xt))?(v(),f(C(xt),{ref_key:`userOptionsRef`,ref:Lt,key:`user_option_${Ot.value}`,backgroundColor:P.value.backgroundColor,color:P.value.color,isPrinting:C(tn),isImaging:C(nn),uid:O.value,hasTooltip:!1,hasPdf:F.value.buttons.pdf,hasImg:F.value.buttons.img,hasSvg:F.value.buttons.svg,hasXls:F.value.buttons.csv,hasTable:F.value.buttons.table,hasLabel:!1,hasAltCopy:F.value.buttons.altCopy,hasFullscreen:F.value.buttons.fullscreen,isFullcreen:Mt.value,chartElement:D.value,position:F.value.position,titles:{...F.value.buttonTitles},hasAnnotator:F.value.buttons.annotator,isAnnotation:Y.value,callbacks:F.value.callbacks,printScale:F.value.print.scale,tableDialog:j.value.table.useDialog,isCursorPointer:I.value,onToggleFullscreen:Fn,onGeneratePdf:C(rn),onGenerateCsv:zn,onGenerateImage:C(Gn),onGenerateSvg:C(Wn),onToggleTable:In,onToggleAnnotator:Pn,onCopyAlt:Jn,style:_({visibility:C(Qt)?C(Xt)?`visible`:`hidden`:`visible`})},Re({_:2},[b(C(Ee)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:T(n=>[x(e.$slots,t,We(Ve(C(De)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasAltCopy.hasFullscreen.isFullcreen.chartElement.position.titles.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):p(``,!0),h(`div`,et,[(v(),m(`svg`,{ref_key:`svgRef`,ref:L,xmlns:C(ce),"aria-describedby":`chart-instructions-${O.value}`,viewBox:`0 0 ${U.value.chartWidth<=0?10:U.value.chartWidth} ${U.value.svgHeight<=0?10:U.value.svgHeight}`,class:Ue({"vue-data-ui-loading":C(Wt),"no-transition":!j.value.useCssAnimation}),style:_(`max-width:100%;overflow:visible;background:transparent;color:${P.value.color};visibility:${C(mn)?`visible`:`hidden`}`),role:`img`,"aria-live":`polite`,preserveAspectRatio:`xMidYMid`,tabindex:`0`,onFocus:On,onBlur:kn,onKeydown:Mn},[Be(C(St)),x(e.$slots,`svg-underlayer`,{svg:{drawingArea:U.value,data:W.value,isPrintingImg:C(tn)||C(nn)||C(Hn),isPrintingSvg:C(Un)}},void 0,!0),e.$slots[`chart-background`]?(v(),m(`foreignObject`,{key:0,x:U.value.left,y:U.value.top,width:U.value.width<=0?10:U.value.width,height:U.value.height<=0?10:U.value.height,style:{pointerEvents:`none`}},[x(e.$slots,`chart-background`,{},void 0,!0)],8,nt)):p(``,!0),(v(!0),m(u,null,b(W.value,e=>(v(),m(u,null,[h(`path`,{class:`transition-opacity`,d:`M${e.path}`,stroke:N.value.lines.coatingColor,"stroke-width":N.value.lines.strokeWidth+2,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:`none`,style:_({opacity:k.value==null||k.value===e.id?1:.1}),onMouseenter:t=>k.value=e.id,onMouseleave:t[0]||=e=>k.value=null},null,44,rt),h(`path`,{class:`transition-opacity`,d:`M${e.path}`,stroke:e.color,"stroke-width":N.value.lines.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:`none`,style:_({opacity:k.value==null||k.value===e.id?1:.1}),onMouseenter:t=>Q(e,e),onMouseleave:t=>$(e,e),onClick:t=>qn(e,e)},null,44,it)],64))),256)),(v(!0),m(u,null,b(W.value,t=>(v(),m(u,null,[M.value.labels.displayedValue===`rank`?(v(!0),m(u,{key:0},b(t.coordinates,(e,n)=>(v(),m(`circle`,{class:`transition-opacity`,cx:e.x,cy:e.y,r:M.value.radius,fill:t.color,stroke:M.value.stroke,"stroke-width":M.value.strokeWidth,style:_({opacity:k.value==null||k.value===t.id?1:.1}),onMouseenter:r=>Q({...e,pointIndex:n},t),onMouseleave:r=>$({...e,pointIndex:n},t),onClick:r=>Q({...e,pointIndex:n},t)},null,44,at))),256)):p(``,!0),M.value.labels.show&&M.value.labels.displayedValue===`rank`?(v(!0),m(u,{key:1},b(t.coordinates,e=>(v(),m(`text`,{class:`transition-opacity`,x:e.x,y:e.y+M.value.labels.fontSize/3,fill:e.labelColor,"font-size":M.value.labels.fontSize,"text-anchor":`middle`,style:_({userSelect:`none`,pointerEvents:`none`,opacity:k.value==null||k.value===t.id?1:.1})},S(e.rank),13,ot))),256)):p(``,!0),M.value.labels.displayedValue===`value`?(v(!0),m(u,{key:2},b(t.coordinates,n=>(v(),m(u,null,[C(r)(n.value)?(v(),m(`rect`,He({key:0,class:`transition-opacity`},{ref_for:!0},Sn(n),{style:{opacity:k.value==null||k.value===t.id?1:.1},onMouseenter:n=>Q({...e.point,pointIndex:e.i},t),onMouseleave:n=>$({...e.point,pointIndex:e.i},t),onClick:n=>Q({...e.point,pointIndex:e.i},t)}),null,16,st)):p(``,!0),C(r)(n.value)&&M.value.labels.show?(v(),m(`text`,{key:1,class:`transition-opacity`,x:n.x,y:n.y+M.value.labels.fontSize/3,fill:n.labelColor,"font-size":M.value.labels.fontSize,"text-anchor":`middle`,style:_({userSelect:`none`,pointerEvents:`none`,opacity:k.value==null||k.value===t.id?1:.1})},S(n.displayValue),13,ct)):p(``,!0)],64))),256)):p(``,!0)],64))),256)),N.value.nameLabels.leftLabels.show?(v(),m(`g`,{key:1,ref_key:`labelsLeft`,ref:zt},[(v(!0),m(u,null,b(xn.value.left.filter(e=>C(r)(e.value)),(e,t)=>(v(),m(`text`,{class:`transition-opacity`,x:U.value.left,y:e.y+N.value.nameLabels.fontSize/3,fill:N.value.nameLabels.useSerieColor?e.color:N.value.nameLabels.color,"font-size":N.value.nameLabels.fontSize,"font--weight":N.value.nameLabels.bold?`bold`:`normal`,"text-anchor":`end`,innerHTML:C(o)({content:e.name,fontSize:N.value.nameLabels.fontSize,fill:N.value.nameLabels.useSerieColor?e.color:N.value.nameLabels.color,x:U.value.left-N.value.nameLabels.offsetX,y:e.y+N.value.nameLabels.fontSize/3,translateY:!0}),style:_({opacity:k.value==null||k.value===e.id?1:.1}),onMouseenter:t=>Q(e,e),onMouseleave:t=>$(e,e),onClick:t=>qn(e,e)},null,44,lt))),256))],512)):p(``,!0),N.value.nameLabels.rightLabels.show?(v(),m(`g`,{key:2,ref_key:`labelsRight`,ref:Bt},[(v(!0),m(u,null,b(xn.value.right.filter(e=>C(r)(e.value)),(e,t)=>(v(),m(`text`,{class:`transition-opacity`,x:U.value.right,y:e.y+N.value.nameLabels.fontSize/3,fill:N.value.nameLabels.useSerieColor?e.color:N.value.nameLabels.color,"font-size":N.value.nameLabels.fontSize,"font--weight":N.value.nameLabels.bold?`bold`:`normal`,"text-anchor":`start`,innerHTML:C(o)({content:e.name,fontSize:N.value.nameLabels.fontSize,fill:N.value.nameLabels.useSerieColor?e.color:N.value.nameLabels.color,x:U.value.right+N.value.nameLabels.offsetX,y:e.y+N.value.nameLabels.fontSize/3,translateY:!0}),style:_({opacity:k.value==null||k.value===e.id?1:.1}),onMouseenter:t=>Q(e,e),onMouseleave:t=>$(e,e),onClick:t=>qn(e,e)},null,44,ut))),256))],512)):p(``,!0),N.value.timeLabels.show?(v(),m(`g`,{key:3,ref_key:`timeLabelsEls`,ref:Vt},[e.$slots[`time-label`]?(v(),m(`g`,dt,[(v(!0),m(u,null,b(K.value,(t,n)=>(v(),m(`g`,null,[x(e.$slots,`time-label`,He({ref_for:!0},{x:U.value.unitW*n+U.value.unitW/2+U.value.left,y:U.value.chartHeight+N.value.timeLabels.offsetY,fontSize:N.value.timeLabels.fontSize,fill:N.value.timeLabels.color,transform:`translate(${U.value.unitW*n+U.value.unitW/2+U.value.left}, ${U.value.chartHeight+N.value.timeLabels.offsetY}), rotate(${N.value.timeLabels.rotation})`,absoluteIndex:t.absoluteIndex,content:t.text,textAnchor:N.value.timeLabels.rotation>0?`start`:P.value.layout.timeLabels.rotation<0?`end`:`middle`,show:!0}),void 0,!0)]))),256))])):(v(),m(`g`,ft,[(v(!0),m(u,null,b(K.value,(e,t)=>(v(),m(`g`,null,[String(e.text).includes(`
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,At as r,D as i,Ht as a,J as o,P as s,S as ee,U as c,X as l,at as te,c as ne,i as re,in as ie,nn as ae,nt as oe,r as se,t as ce,w as le,yt as ue,zt as de}from"./lib-rPeBMZrn.js";import{n as fe,t as pe}from"./BaseScanner-8NdoBs7B.js";import{n as me,t as he}from"./useHints-C-TwxM0Y.js";import{t as ge}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as _e}from"./useNestedProp-DnGoh-XS.js";import{t as ve}from"./useThemeCheck-BKNRbGeC.js";import{t as ye}from"./chartImage-DPGnEuYM.js";import{n as be}from"./Title-BliHuXfT.js";import{t as xe}from"./useChartExport-BZts4KFb.js";import{n as Se,t as Ce}from"./tableIntegration-CNoJ1CIY.js";import{n as we,t as Te}from"./annotationSlots-BRR85CqJ.js";import{n as Ee,t as De}from"./userOptionsSlots-DYuo-E5m.js";import{t as Oe}from"./useTimeLabels-Das5O74F.js";import{t as ke}from"./usePrinter-DVf3YcG5.js";import{t as Ae}from"./useSvgLabelLayout-42Kats14.js";import{t as je}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Me}from"./useResponsive-CENUxfEL.js";import{t as Ne}from"./A11yDataTable-DWNlWXzs.js";import{t as Pe}from"./useUserOptionState-CXlFnwPv.js";import{t as Fe}from"./useChartAccessibility-DOMuYJfm.js";import{t as Ie}from"./vue_ui_bump-KJL9GYr4.js";import{t as Le}from"./BaseDraggableDialog-DHgIPVmz.js";import{Fragment as u,computed as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createSlots as Re,createTextVNode as ze,createVNode as Be,defineAsyncComponent as g,guardReactiveProps as Ve,mergeProps as He,normalizeClass as Ue,normalizeProps as We,normalizeStyle as _,onBeforeUnmount as Ge,onMounted as Ke,openBlock as v,ref as y,renderList as b,renderSlot as x,resolveDynamicComponent as qe,shallowRef as Je,toDisplayString as S,toRefs as Ye,unref as C,watch as w,watchEffect as Xe,withCtx as T}from"vue";var Ze=/* @__PURE__ */ e({default:()=>_t}),Qe=[`id`],$e=[`id`],et={style:{position:`relative`}},tt=[`xmlns`,`aria-describedby`,`viewBox`],nt=[`x`,`y`,`width`,`height`],rt=[`d`,`stroke`,`stroke-width`,`onMouseenter`],it=[`d`,`stroke`,`stroke-width`,`onMouseenter`,`onMouseleave`,`onClick`],at=[`cx`,`cy`,`r`,`fill`,`stroke`,`stroke-width`,`onMouseenter`,`onMouseleave`,`onClick`],ot=[`x`,`y`,`fill`,`font-size`],st=[`onMouseenter`,`onMouseleave`,`onClick`],ct=[`x`,`y`,`fill`,`font-size`],lt=[`x`,`y`,`fill`,`font-size`,`font--weight`,`innerHTML`,`onMouseenter`,`onMouseleave`,`onClick`],ut=[`x`,`y`,`fill`,`font-size`,`font--weight`,`innerHTML`,`onMouseenter`,`onMouseleave`,`onClick`],dt={key:0},ft={key:1},pt=[`text-anchor`,`font-size`,`font-weight`,`fill`,`stroke`,`transform`],mt=[`text-anchor`,`font-size`,`fill`,`transform`,`innerHTML`],ht={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},gt={key:5,class:`vue-data-ui-watermark`},_t=/*#__PURE__*/ ge({__name:`vue-ui-bump`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}}},emits:[`copyAlt`],setup(e,{expose:ge,emit:Ze}){let _t=g(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),vt=g(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),yt=g(()=>import(`./DataTable-0Vv-aGHD.js`)),bt=g(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),xt=g(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),St=g(()=>import(`./PackageVersion-DhptF5oD.js`).then(e=>e.t)),{vue_ui_bump:Ct}=t(),{isThemeValid:wt,warnInvalidTheme:Tt}=ve(),E=e,Et=Ze,Dt=d({get(){return!!E.dataset&&E.dataset.length},set(e){return e}}),D=y(null),O=y(l()),Ot=y(0),kt=y(null),At=y(null),jt=y(null),Mt=y(!1),Nt=y(!1),Pt=y(0),Ft=y(0),It=y(null),Lt=y(null),Rt=y(!1),k=y(null),zt=y(null),Bt=y(null),Vt=y(null),A=y(null),Ht=y(!1),j=y(Yt()),M=d(()=>j.value.style.chart.layout.plots),N=d(()=>j.value.style.chart.layout),P=d(()=>j.value.style.chart),F=d(()=>j.value.userOptions);me({config:()=>j.value,dataset:()=>E.dataset,component:`VueUiBump`,rules:[he.emptyArray,{test:e=>e.length>31,message:[`👀 The number of series > 31. Consider:`,``,`▶️ Using filters to let users choose a maximum number of series to display`,``,`▶️ Use several instances of the component to show related series`]},{test:e=>e.length===1,message:[`👀 There is only 1 series in your dataset. Consider:`,``,`▶️ Using a line chart, with VueUiXy.`]},{test:e=>e.some(e=>e.values.length>31),message:[`👀 Some series contain > 31 data points, which can make the chart hard to read. Consider:`,``,`▶️ Use filters to show less data points at a time.`,``,`▶️ Use larger time scales, or aggregated values.`]}]});let I=d(()=>j.value.userOptions.useCursorPointer),Ut=d(()=>ie({defaultConfig:{userOptions:{show:!1},style:{chart:{backgroundColor:`#99999930`,layout:{timeLabels:{show:!1},lines:{coatingColor:`#4A4A4A`},plots:{stroke:`#4A4A4A`,labels:{show:!1,displayedValue:`rank`}},nameLabels:{useSerieColor:!0}}}}},userConfig:j.value.skeletonConfig??{}})),{loading:Wt,FINAL_DATASET:Gt,manualLoading:Kt}=fe({...Ye(E),FINAL_CONFIG:j,prepareConfig:Yt,skeletonDataset:E.config?.skeletonDataset??[{name:`————`,values:[1,1,1,2,2,2,3,3,2,2],color:`#4A4A4A`},{name:`————`,values:[2,2,2,1,3,3,2,2,3,3],color:`#6A6A6A`},{name:`————`,values:[3,3,3,3,1,1,1,1,1,1],color:`#8A8A8A`}],skeletonConfig:ie({defaultConfig:j.value,userConfig:Ut.value})}),qt=y(!1),Jt=0;Ke(un);function Yt(){let e=_e({userConfig:E.config,defaultConfig:Ct}),t={},n=e.theme;if(n){if(!wt.value(e))Tt(e),t=e;else{let r=_e({userConfig:Ie[n]||E.config,defaultConfig:e});t={..._e({userConfig:E.config,defaultConfig:r}),customPalette:e.customPalette.length?e.customPalette:ae[n]||a}}}else t=e;return t}let{userOptionsVisible:Xt,setUserOptionsVisibility:Zt,keepUserOptionState:Qt}=Pe({config:j.value}),{svgRef:L}=Fe({config:P.value.title});function $t(){Rt.value=!0,Zt(!0)}function en(){Zt(!1),Rt.value=!1}let R=y({showTable:j.value.table.show});w(j,()=>{R.value={showTable:j.value.table.show}},{immediate:!0}),w(()=>E.config,e=>{Wt.value||(j.value=Yt()),Xt.value=!j.value.userOptions.showOnChartHover,un(),Pt.value+=1,Ft.value+=1,R.value.showTable=j.value.table.show,j.value.responsive||(z.value.width=P.value.width,z.value.height=P.value.height),z.value.paddingRatio={top:P.value.padding.top/P.value.height,right:P.value.padding.right/P.value.width,bottom:P.value.padding.bottom/P.value.height,left:P.value.padding.left/P.value.width}}),w(()=>E.dataset,e=>{Array.isArray(e)&&e.length>0&&(Kt.value=!1)},{deep:!0});let{isPrinting:tn,isImaging:nn,generatePdf:rn,generateImage:an}=ke({elementId:`bump_${O.value}`,fileName:P.value.title.text||`vue-ui-bump`,options:j.value.userOptions.print}),on=d(()=>j.value.userOptions.show&&!P.value.title.text),z=y({width:P.value.width,height:P.value.height,paddingRatio:{top:P.value.padding.top/P.value.height,right:P.value.padding.right/P.value.width,bottom:P.value.padding.bottom/P.value.height,left:P.value.padding.left/P.value.width}}),sn=d(()=>le(j.value.customPalette)),B=Je(null),V=Je(null),cn=y(null),ln=d(()=>j.value.debug);function un(){de(E.dataset)?(te({componentName:`VueUiBump`,type:`dataset`,debug:ln.value}),Kt.value=!0):E.dataset.forEach((e,t)=>{ue({datasetObject:e,requiredAttributes:[`name`,`values`]}).forEach(e=>{Dt.value=!1,te({componentName:`VueUiBump`,type:`datasetSerieAttribute`,property:e,index:t,debug:ln.value}),Kt.value=!0})}),de(E.dataset)||(Kt.value=j.value.loading),setTimeout(()=>{Nt.value=!0},10),j.value.responsive&&(B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect()),B.value=new ResizeObserver(()=>{Nt.value=!1;let{width:e,height:t}=Me({chart:D.value,noTitle:At.value,title:P.value.title.text?kt.value:null,legend:null,slicer:null,source:jt.value});cancelAnimationFrame(Jt),Jt=requestAnimationFrame(()=>{z.value.width=e,z.value.height=t-12,qt.value=!0,clearTimeout(cn.value),cn.value=setTimeout(()=>{Nt.value=!0},10)})}),V.value=D.value.parentNode,B.value.observe(V.value))}Ge(()=>{cancelAnimationFrame(Jt),B.value&&(V.value&&B.value.unobserve(V.value),B.value.disconnect())});let dn=d(()=>Gt.value.map((e,t)=>{let n=ee(e.color)||sn.value[t]||a[t]||a[t%a.length];return{...e,absoluteIndex:t,id:l(),color:n}})),H=d(()=>Math.max(...dn.value.map(e=>e.values.length)));function fn(e){let t=e.map(()=>Array(H.value).fill(null));for(let n=0;n<H.value;n+=1){let r=e.map((e,r)=>({seriesIndex:r,value:e.values?.[n],previousPosition:n>0?t[r][n-1]:r})).filter(e=>Number.isFinite(e.value));r.sort((e,t)=>t.value===e.value?e.previousPosition-t.previousPosition:t.value-e.value);for(let e=0;e<r.length;e+=1){let i=r[e];t[i.seriesIndex][n]=e}}return t}let{metrics:pn,ready:mn,settling:hn,update:gn}=Ae({svgRef:L,canMeasure:()=>(!j.value.responsive||qt.value)&&(!N.value.timeLabels.show||Cn.value),initialMetrics:{left:0,right:0,bottom:0},measure:e=>N.value.timeLabels.autoRotate.enable&&Nn()?null:{left:e(zt.value).width,right:e(Bt.value).width,bottom:e(Vt.value).height}});function _n(){return pn.value.left}function vn(){return pn.value.right}let yn=d(()=>N.value.timeLabels.show&&K.value.length?pn.value.bottom+Math.abs(N.value.timeLabels.offsetY)+N.value.timeLabels.fontSize*.3:0),U=d(()=>{let{height:e,width:t}=z.value,{right:n,left:r}=z.value.paddingRatio,i=_n(),a=vn(),o=P.value.padding.top,s=t-t*n-a,ee=t*r+i,c=t-t*n-t*r-i-a,l=e-o-P.value.padding.bottom-yn.value,te=o+l,ne=o+l,re=Math.max(0,e);return{chartHeight:ne,chartWidth:Math.max(0,t),top:o,right:Math.max(0,s),bottom:Math.max(0,te),left:Math.max(0,ee),width:Math.max(0,c),height:Math.max(0,l),unitH:Math.max(0,l)/dn.value.length,unitW:Math.max(0,c)/H.value,svgHeight:re}}),W=d(()=>{if(!Dt.value&&!Wt.value)return[];let e=fn(dn.value);return dn.value.map((t,n)=>({...t,positions:e[n]})).map(e=>{let t=e.positions.map((t,r)=>{let i=re(M.value.labels.formatter,e.values[r],n({p:M.value.labels.prefix,v:e.values[r],s:M.value.labels.suffix,r:M.value.labels.rounding}));return{name:e.name,id:e.id,x:U.value.left+r*U.value.unitW+U.value.unitW/2,y:U.value.top+t*U.value.unitH+U.value.unitH/2,value:e.values[r],displayValue:i,rank:e.positions[r]+1,color:e.color,labelColor:M.value.labels.color===`auto`?se(e.color):ee(M.value.labels.color)??se(e.color)}}),i=t.filter(e=>r(e.value)),a=N.value.lines.smooth?s(i):c(i);return{...e,coordinates:t,path:a}})});d(()=>W.value.flatMap((e,t)=>e.coordinates.map((n,r)=>({...n,pointIndex:r,seriesIndex:t,seriesId:e.id,seriesName:e.name,pointId:`${e.id}_${r}`})).filter(e=>r(e.value))));function bn(e,t,n,r){let i=e.toSorted((e,t)=>e.y-t.y);for(let e=1;e<i.length;e+=1){let n=i[e-1],r=i[e];r.y<n.y+t&&(r.y=n.y+t)}let a=i.length-1;if(a>=0&&i[a].y>r){i[a].y=r;for(let e=a-1;e>=0;--e){let n=i[e+1],r=i[e];r.y>n.y-t&&(r.y=n.y-t)}}if(i.length&&i[0].y<n){let e=n-i[0].y;for(let t=0;t<i.length;t+=1)i[t].y+=e}return i}let xn=d(()=>{let e=[],t=[];W.value.forEach(n=>{let r=n.coordinates.filter(e=>Number.isFinite(e.rank));if(!r.length)return;e.push({...r[0]});let i=r[r.length-1];t.push({...i})});let n=N.value.nameLabels.fontSize,r=n*1.4,i=U.value.top+n,a=U.value.bottom-n,o=bn(t,r,i,a);return{left:bn(e,r,i,a),right:o}});function Sn(e){let t=M.value.labels.fontSize*.4,n=e.displayValue,r=n.length*(M.value.labels.fontSize*(n.length===1?1:.6)),i=M.value.labels.fontSize,a=r+t*2,o=i+t*2,s=e.x-a/2,ee=e.y-o/2,c=M.value.strokeWidth;return{x:s-c/2,y:ee-c/2,width:a+c,height:o+c,fill:e.color,stroke:M.value.stroke,"stroke-width":c,rx:o/2}}let G=y([]),Cn=y(!1),wn=0;Xe(()=>{let e=++wn,t=N.value.timeLabels,n=t.values,r=t.datetimeFormatter,i=H.value;!i||!Array.isArray(n)||n.length===0?(G.value=[],Cn.value=!0):(async()=>{let t=await Oe({values:n,maxDatapoints:i,formatter:r,start:0,end:i});e===wn&&(G.value=t,Cn.value=!0)})()});let K=d(()=>{let e=N.value.timeLabels,t=G.value||[],n=G.value||[],r=H.value,i=t.map(e=>e?.text??``),a=n.map(e=>e?.text??``);return ne(!!e.showOnlyFirstAndLast,!!e.showOnlyAtModulo,Math.max(1,Number(e.modulo)||1),i,a,0,null,r)}),Tn=d(()=>z.value.width),En=d(()=>z.value.height),Dn=d(()=>({start:0,end:H.value})),q=d(()=>[...W.value].map(e=>{let t=[...e.coordinates].filter(e=>r(e.value)).at(-1);return{...e,navigationRank:t?.rank??1/0}}).sort((e,t)=>e.navigationRank-t.navigationRank));function On(){A.value=null,Ht.value=!0}function kn(){jn(),Ht.value=!1}function An(e,t){let n=q.value.length;return n?e===null||e<0||e>=n?0:t===`previous`?(e-1+n)%n:(e+1)%n:null}function jn(){if(A.value!==null){let e=q.value[A.value];e&&$(e,e)}A.value=null,k.value=null}function Mn(e){if(!L.value||Y.value||document.activeElement!==L.value||!q.value.length)return;let t=[`ArrowLeft`,`ArrowUp`].includes(e.key),n=[`ArrowRight`,`ArrowDown`].includes(e.key),r=e.key===`Enter`||e.key===` `,i=e.key===`Escape`;if(!t&&!n&&!r&&!i)return;if(e.preventDefault(),e.stopPropagation(),i){jn();return}if(r){if(A.value===null)return;let e=q.value[A.value];if(!e)return;qn(e,e);return}let a=A.value;a===null?a=0:t?a=An(a,`previous`):n&&(a=An(a,`next`));let o=q.value[a];o&&(A.value=a,Q(o,o))}let J=d(()=>({head:Z.value.head,body:W.value.map(e=>[e.name,...e.coordinates.map(e=>r(e.value)?`${e.displayValue} (${e.rank})`:`-`)]),caption:j.value.a11y.translations.tableCaption,notice:j.value.a11y.translations.tableAvailable})),{detectTimeLabelCollisionNow:Nn}=je({timeLabelsEls:Vt,timeLabels:G,slicer:Dn,configRef:j,rotationPath:[`style`,`chart`,`layout`,`timeLabels`,`rotation`],autoRotatePath:[`style`,`chart`,`layout`,`timeLabels`,`autoRotate`,`enable`],isAutoSize:!1,width:Tn,height:En,rotation:N.value.timeLabels.autoRotate.angle,resizeDebounceMs:0}),Y=y(!1);function Pn(){Y.value=!Y.value}function Fn(e){Mt.value=e,Ot.value+=1}function In(){R.value.showTable=!R.value.showTable}w(()=>R.value.showTable,e=>Se(e,j,It));function Ln(){R.value.showTable=!1,Lt.value&&Lt.value.setTableIconState(!1)}function Rn(){return W.value}function zn(e=null){let t=[[P.value.title.text],[P.value.title.subtitle.text],[``]],n=[``,...K.value.map(e=>e?.text??``)],r=W.value.map(e=>[e.name,...e.coordinates.map(e=>`${e.displayValue}`)]),a=W.value.map(e=>[e.name,...e.coordinates.map(e=>`${e.rank}`)]),o=t.concat([[j.value.table.columnNames.values]]).concat([n]).concat(r).concat([[``],[j.value.table.columnNames.ranking],[n]]).concat(a),s=i(o);e?e(s):oe({csvContent:s,title:P.value.title.text||`vue-ui-bump`})}let X=d(()=>Ce({config:j,style:P,mutableConfig:R,dialog:Le,accordion:vt,isFullscreen:Mt,parent:D,maxWidth:800,isCursorPointer:I})),Z=d(()=>({head:[``].concat(K.value.map(e=>e.text)),body:W.value.map((e,t)=>[e.name,...e.coordinates.map(e=>`${e.displayValue} (${e.rank})`)]),config:{th:{backgroundColor:j.value.table.th.backgroundColor,color:j.value.table.th.color,outline:j.value.table.th.outline},td:{backgroundColor:j.value.table.td.backgroundColor,color:j.value.table.td.color,outline:j.value.table.td.outline},breakpoint:j.value.table.responsiveBreakpoint},colNames:[j.value.table.columnNames.series]})),Bn=d(()=>P.value.backgroundColor),Vn=d(()=>P.value.title),{isCallbackImaging:Hn,isCallbackSvg:Un,generateSvg:Wn,onGenerateImage:Gn}=xe({svg:L,title:Vn,legend:null,legendItems:null,backgroundColor:Bn,getSvgCallback:()=>j.value.userOptions.callbacks.svg,generateImage:an}),Kn=ye(D,()=>P.value.title.text);function Q(e,t){k.value=t.id,j.value.events.datapointEnter&&j.value.events.datapointEnter({datapoint:e,seriesIndex:e?.pointIndex??null})}function $(e,t){k.value=null,j.value.events.datapointLeave&&j.value.events.datapointLeave({datapoint:e,seriesIndex:e?.pointIndex??null})}function qn(e,t){j.value.events.datapointClick&&j.value.events.datapointClick({datapoint:e,seriesIndex:e?.pointIndex??null})}async function Jn(){Et(`copyAlt`,{config:j.value,dataset:W.value}),j.value.userOptions.callbacks.altCopy?await Promise.resolve(j.value.userOptions.callbacks.altCopy({config:j.value,dataset:W.value})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}return ge({getData:Rn,getImage:Kn,generatePdf:rn,generateCsv:zn,generateImage:an,generateSvg:Wn,toggleTable:In,toggleAnnotator:Pn,toggleFullscreen:Fn,copyAlt:Jn}),w(()=>[z.value.width,z.value.height,N.value,G.value,Cn.value,zt.value,Bt.value,Vt.value,E.dataset,qt.value,j.value.style.fontFamily],gn,{flush:`post`,deep:!0}),(e,t)=>(v(),m(`div`,{id:`bump_${O.value}`,ref_key:`bumpChart`,ref:D,class:Ue({"vue-data-ui-component":!0,"vue-ui-bump":!0,"vue-data-ui-wrapper-fullscreen":Mt.value}),style:_(`background:${P.value.backgroundColor};color:${P.value.color};font-family:${j.value.style.fontFamily}; position: relative; ${j.value.responsive?`height: 100%`:``}`),onMouseenter:$t,onMouseleave:en},[h(`p`,{id:`chart-instructions-${O.value}`,class:`sr-only`},S(j.value.a11y.translations.keyboardNavigation),9,$e),J.value.body.length?(v(),f(Ne,{key:0,uid:O.value,head:J.value.head,body:J.value.body,caption:J.value.caption,notice:J.value.notice},null,8,[`uid`,`head`,`body`,`caption`,`notice`])):p(``,!0),F.value.buttons.annotator?(v(),f(C(bt),{key:1,svgRef:C(L),backgroundColor:P.value.backgroundColor,color:P.value.color,active:Y.value,isCursorPointer:I.value,palette:F.value.annotatorPalette,onClose:Pn},Re({_:2},[b(C(Te),t=>({name:t,fn:T(n=>[x(e.$slots,t,We(Ve(C(we)(t,n))),void 0,!0)])}))]),1032,[`svgRef`,`backgroundColor`,`color`,`active`,`isCursorPointer`,`palette`])):p(``,!0),x(e.$slots,`userConfig`,{},void 0,!0),on.value?(v(),m(`div`,{key:2,ref_key:`noTitle`,ref:At,class:`vue-data-ui-no-title-space`,style:`height:36px; width: 100%;background:transparent`},null,512)):p(``,!0),P.value.title.text?(v(),m(`div`,{key:3,ref_key:`chartTitle`,ref:kt,style:`width:100%;background:transparent;`},[(v(),f(be,{key:`title_${Pt.value}`,config:{title:{cy:`bump-title`,...P.value.title},subtitle:{cy:`bump-subtitle`,...P.value.title.subtitle}}},null,8,[`config`]))],512)):p(``,!0),F.value.show&&Dt.value&&(C(Qt)||C(Xt))?(v(),f(C(xt),{ref_key:`userOptionsRef`,ref:Lt,key:`user_option_${Ot.value}`,backgroundColor:P.value.backgroundColor,color:P.value.color,isPrinting:C(tn),isImaging:C(nn),uid:O.value,hasTooltip:!1,hasPdf:F.value.buttons.pdf,hasImg:F.value.buttons.img,hasSvg:F.value.buttons.svg,hasXls:F.value.buttons.csv,hasTable:F.value.buttons.table,hasLabel:!1,hasAltCopy:F.value.buttons.altCopy,hasFullscreen:F.value.buttons.fullscreen,isFullcreen:Mt.value,chartElement:D.value,position:F.value.position,titles:{...F.value.buttonTitles},hasAnnotator:F.value.buttons.annotator,isAnnotation:Y.value,callbacks:F.value.callbacks,printScale:F.value.print.scale,tableDialog:j.value.table.useDialog,isCursorPointer:I.value,onToggleFullscreen:Fn,onGeneratePdf:C(rn),onGenerateCsv:zn,onGenerateImage:C(Gn),onGenerateSvg:C(Wn),onToggleTable:In,onToggleAnnotator:Pn,onCopyAlt:Jn,style:_({visibility:C(Qt)?C(Xt)?`visible`:`hidden`:`visible`})},Re({_:2},[b(C(Ee)(e.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionTable optionFullscreen optionAnnotator optionAltCopy custom-menu-before custom-menu-after`),t=>({name:t,fn:T(n=>[x(e.$slots,t,We(Ve(C(De)(t,n))),void 0,!0)])}))]),1032,/* @__PURE__ */ `backgroundColor.color.isPrinting.isImaging.uid.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasAltCopy.hasFullscreen.isFullcreen.chartElement.position.titles.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style`.split(`.`))):p(``,!0),h(`div`,et,[(v(),m(`svg`,{ref_key:`svgRef`,ref:L,xmlns:C(ce),"aria-describedby":`chart-instructions-${O.value}`,viewBox:`0 0 ${U.value.chartWidth<=0?10:U.value.chartWidth} ${U.value.svgHeight<=0?10:U.value.svgHeight}`,class:Ue({"vue-data-ui-loading":C(Wt),"no-transition":!j.value.useCssAnimation}),style:_(`max-width:100%;overflow:visible;background:transparent;color:${P.value.color};visibility:${C(mn)?`visible`:`hidden`}`),role:`img`,"aria-live":`polite`,preserveAspectRatio:`xMidYMid`,tabindex:`0`,onFocus:On,onBlur:kn,onKeydown:Mn},[Be(C(St)),x(e.$slots,`svg-underlayer`,{svg:{drawingArea:U.value,data:W.value,isPrintingImg:C(tn)||C(nn)||C(Hn),isPrintingSvg:C(Un)}},void 0,!0),e.$slots[`chart-background`]?(v(),m(`foreignObject`,{key:0,x:U.value.left,y:U.value.top,width:U.value.width<=0?10:U.value.width,height:U.value.height<=0?10:U.value.height,style:{pointerEvents:`none`}},[x(e.$slots,`chart-background`,{},void 0,!0)],8,nt)):p(``,!0),(v(!0),m(u,null,b(W.value,e=>(v(),m(u,null,[h(`path`,{class:`transition-opacity`,d:`M${e.path}`,stroke:N.value.lines.coatingColor,"stroke-width":N.value.lines.strokeWidth+2,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:`none`,style:_({opacity:k.value==null||k.value===e.id?1:.1}),onMouseenter:t=>k.value=e.id,onMouseleave:t[0]||=e=>k.value=null},null,44,rt),h(`path`,{class:`transition-opacity`,d:`M${e.path}`,stroke:e.color,"stroke-width":N.value.lines.strokeWidth,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:`none`,style:_({opacity:k.value==null||k.value===e.id?1:.1}),onMouseenter:t=>Q(e,e),onMouseleave:t=>$(e,e),onClick:t=>qn(e,e)},null,44,it)],64))),256)),(v(!0),m(u,null,b(W.value,t=>(v(),m(u,null,[M.value.labels.displayedValue===`rank`?(v(!0),m(u,{key:0},b(t.coordinates,(e,n)=>(v(),m(`circle`,{class:`transition-opacity`,cx:e.x,cy:e.y,r:M.value.radius,fill:t.color,stroke:M.value.stroke,"stroke-width":M.value.strokeWidth,style:_({opacity:k.value==null||k.value===t.id?1:.1}),onMouseenter:r=>Q({...e,pointIndex:n},t),onMouseleave:r=>$({...e,pointIndex:n},t),onClick:r=>Q({...e,pointIndex:n},t)},null,44,at))),256)):p(``,!0),M.value.labels.show&&M.value.labels.displayedValue===`rank`?(v(!0),m(u,{key:1},b(t.coordinates,e=>(v(),m(`text`,{class:`transition-opacity`,x:e.x,y:e.y+M.value.labels.fontSize/3,fill:e.labelColor,"font-size":M.value.labels.fontSize,"text-anchor":`middle`,style:_({userSelect:`none`,pointerEvents:`none`,opacity:k.value==null||k.value===t.id?1:.1})},S(e.rank),13,ot))),256)):p(``,!0),M.value.labels.displayedValue===`value`?(v(!0),m(u,{key:2},b(t.coordinates,n=>(v(),m(u,null,[C(r)(n.value)?(v(),m(`rect`,He({key:0,class:`transition-opacity`},{ref_for:!0},Sn(n),{style:{opacity:k.value==null||k.value===t.id?1:.1},onMouseenter:n=>Q({...e.point,pointIndex:e.i},t),onMouseleave:n=>$({...e.point,pointIndex:e.i},t),onClick:n=>Q({...e.point,pointIndex:e.i},t)}),null,16,st)):p(``,!0),C(r)(n.value)&&M.value.labels.show?(v(),m(`text`,{key:1,class:`transition-opacity`,x:n.x,y:n.y+M.value.labels.fontSize/3,fill:n.labelColor,"font-size":M.value.labels.fontSize,"text-anchor":`middle`,style:_({userSelect:`none`,pointerEvents:`none`,opacity:k.value==null||k.value===t.id?1:.1})},S(n.displayValue),13,ct)):p(``,!0)],64))),256)):p(``,!0)],64))),256)),N.value.nameLabels.leftLabels.show?(v(),m(`g`,{key:1,ref_key:`labelsLeft`,ref:zt},[(v(!0),m(u,null,b(xn.value.left.filter(e=>C(r)(e.value)),(e,t)=>(v(),m(`text`,{class:`transition-opacity`,x:U.value.left,y:e.y+N.value.nameLabels.fontSize/3,fill:N.value.nameLabels.useSerieColor?e.color:N.value.nameLabels.color,"font-size":N.value.nameLabels.fontSize,"font--weight":N.value.nameLabels.bold?`bold`:`normal`,"text-anchor":`end`,innerHTML:C(o)({content:e.name,fontSize:N.value.nameLabels.fontSize,fill:N.value.nameLabels.useSerieColor?e.color:N.value.nameLabels.color,x:U.value.left-N.value.nameLabels.offsetX,y:e.y+N.value.nameLabels.fontSize/3,translateY:!0}),style:_({opacity:k.value==null||k.value===e.id?1:.1}),onMouseenter:t=>Q(e,e),onMouseleave:t=>$(e,e),onClick:t=>qn(e,e)},null,44,lt))),256))],512)):p(``,!0),N.value.nameLabels.rightLabels.show?(v(),m(`g`,{key:2,ref_key:`labelsRight`,ref:Bt},[(v(!0),m(u,null,b(xn.value.right.filter(e=>C(r)(e.value)),(e,t)=>(v(),m(`text`,{class:`transition-opacity`,x:U.value.right,y:e.y+N.value.nameLabels.fontSize/3,fill:N.value.nameLabels.useSerieColor?e.color:N.value.nameLabels.color,"font-size":N.value.nameLabels.fontSize,"font--weight":N.value.nameLabels.bold?`bold`:`normal`,"text-anchor":`start`,innerHTML:C(o)({content:e.name,fontSize:N.value.nameLabels.fontSize,fill:N.value.nameLabels.useSerieColor?e.color:N.value.nameLabels.color,x:U.value.right+N.value.nameLabels.offsetX,y:e.y+N.value.nameLabels.fontSize/3,translateY:!0}),style:_({opacity:k.value==null||k.value===e.id?1:.1}),onMouseenter:t=>Q(e,e),onMouseleave:t=>$(e,e),onClick:t=>qn(e,e)},null,44,ut))),256))],512)):p(``,!0),N.value.timeLabels.show?(v(),m(`g`,{key:3,ref_key:`timeLabelsEls`,ref:Vt},[e.$slots[`time-label`]?(v(),m(`g`,dt,[(v(!0),m(u,null,b(K.value,(t,n)=>(v(),m(`g`,null,[x(e.$slots,`time-label`,He({ref_for:!0},{x:U.value.unitW*n+U.value.unitW/2+U.value.left,y:U.value.chartHeight+N.value.timeLabels.offsetY,fontSize:N.value.timeLabels.fontSize,fill:N.value.timeLabels.color,transform:`translate(${U.value.unitW*n+U.value.unitW/2+U.value.left}, ${U.value.chartHeight+N.value.timeLabels.offsetY}), rotate(${N.value.timeLabels.rotation})`,absoluteIndex:t.absoluteIndex,content:t.text,textAnchor:N.value.timeLabels.rotation>0?`start`:P.value.layout.timeLabels.rotation<0?`end`:`middle`,show:!0}),void 0,!0)]))),256))])):(v(),m(`g`,ft,[(v(!0),m(u,null,b(K.value,(e,t)=>(v(),m(`g`,null,[String(e.text).includes(`
|
|
2
2
|
`)?(v(),m(`text`,{key:t+`-multi`,"text-anchor":N.value.timeLabels.rotation>0?`start`:N.value.timeLabels.rotation<0?`end`:`middle`,"font-size":N.value.timeLabels.fontSize,fill:N.value.timeLabels.color,transform:`
|
|
3
3
|
translate(
|
|
4
4
|
${U.value.unitW*t+U.value.unitW/2+U.value.left},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{$ as n,D as r,Dt as i,Jt as a,Qt as o,X as s,Yt as c,_ as l,_t as ee,at as te,b as u,c as ne,gt as re,in as ie,nt as ae,pt as oe,rn as se,t as ce,wt as le,zt as ue}from"./lib-rPeBMZrn.js";import{n as de,t as fe}from"./BaseScanner-8NdoBs7B.js";import{n as pe,t as me}from"./useHints-C-TwxM0Y.js";import{t as he}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ge}from"./useNestedProp-DnGoh-XS.js";import{t as _e}from"./useThemeCheck-BKNRbGeC.js";import{t as ve}from"./img-D4RQwASc.js";import{n as ye}from"./Title-BliHuXfT.js";import{t as be}from"./useChartExport-BZts4KFb.js";import{n as xe,t as Se}from"./tableIntegration-CNoJ1CIY.js";import{n as Ce,t as we}from"./annotationSlots-BRR85CqJ.js";import{n as Te,t as Ee}from"./userOptionsSlots-DYuo-E5m.js";import{n as De,r as Oe,t as ke}from"./useTimeLabels-Das5O74F.js";import{t as Ae}from"./usePrinter-DVf3YcG5.js";import{t as je}from"./useTransitions-ChGGrtrv.js";import{t as Me}from"./useSvgLabelLayout-42Kats14.js";import{t as Ne}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Pe}from"./useResponsive-CENUxfEL.js";import{t as Fe}from"./DefGrad-DKMq1REY.js";import{t as Ie}from"./SlicerPreview-CFFUOlQr.js";import{t as Le}from"./A11yDataTable-DWNlWXzs.js";import{t as Re}from"./useUserOptionState-CXlFnwPv.js";import{t as ze}from"./useChartAccessibility-DOMuYJfm.js";import{t as Be}from"./vue_ui_candlestick-DKvha_Ab.js";import{Fragment as d,computed as f,createBlock as Ve,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createSlots as He,createTextVNode as Ue,createVNode as We,defineAsyncComponent as Ge,guardReactiveProps as Ke,mergeProps as qe,nextTick as Je,normalizeClass as g,normalizeProps as Ye,normalizeStyle as Xe,onBeforeUnmount as Ze,onMounted as Qe,openBlock as _,ref as v,renderList as y,renderSlot as b,resolveDynamicComponent as $e,shallowRef as et,toDisplayString as tt,toRefs as nt,unref as x,watch as rt,watchEffect as it,withCtx as S}from"vue";var at=/* @__PURE__ */ e({default:()=>Bt}),ot=[`id`],st=[`id`],ct={style:{position:`relative`}},lt=[`xmlns`,`aria-describedby`,`viewBox`],ut=[`x`,`y`,`width`,`height`],dt={key:1},ft={key:0},pt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],mt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],ht=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],gt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],_t=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],vt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],yt=[`transform`,`text-anchor`,`font-size`,`fill`,`font-weight`],bt=[`transform`,`text-anchor`,`font-size`,`fill`,`font-weight`],xt=[`transform`,`text-anchor`,`font-size`,`fill`,`stroke`,`font-weight`],St=[`x`,`y`,`width`,`height`,`fill`,`rx`],Ct={key:0},wt=[`cx`,`cy`,`r`,`fill`],Tt=[`cx`,`cy`,`r`,`fill`],Et={key:1},Dt=[`x`,`y`,`width`,`height`,`rx`,`fill`],Ot=[`x`,`y`,`width`,`height`,`fill`,`rx`],kt=[`x`,`y`,`height`,`width`,`fill`,`rx`],At=[`x`,`y`,`height`,`width`,`fill`,`rx`,`stroke`,`stroke-width`],jt=[`d`,`stroke`],Mt=[`x`,`y`,`height`,`width`,`fill`,`onMouseover`,`onMouseleave`,`onClick`],Nt=[`x`,`y`,`width`,`height`,`fill`,`fill-opacity`,`stroke`,`stroke-opacity`,`stroke-width`,`stroke-dasharray`],Pt=[`data-start`,`data-end`],Ft={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},It={key:5,class:`vue-data-ui-watermark`},Lt=[`d`,`stroke`],Rt=[`d`,`stroke`,`stroke-width`],zt=[`innerHTML`],Bt=/*#__PURE__*/ he({__name:`vue-ui-candlestick`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}},selectedXIndex:{type:Number,default:void 0},zoomState:{type:Object,default:null}},emits:[`selectX`,`zoomStart`,`zoomEnd`,`zoomReset`,`update:zoomState`,`copyAlt`],setup(e,{expose:he,emit:at}){let Bt=Ge(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),Vt=Ge(()=>import(`./Tooltip-C1q0Qoh7.js`)),Ht=Ge(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),Ut=Ge(()=>import(`./DataTable-0Vv-aGHD.js`)),Wt=Ge(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Gt=Ge(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Kt=Ge(()=>import(`./PackageVersion-CXT-eAuk.js`).then(e=>e.t)),qt=Ge(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_candlestick:Jt}=t(),{isThemeValid:Yt,warnInvalidTheme:Xt}=_e(),C=e,w=at,Zt=f(()=>!!C.dataset&&C.dataset.length),T=v(!1),Qt=v(!1),$t=0,en=v(null),E=v(s()),tn=v(!1),nn=v(``),D=v(void 0),rn=v(0),O=v(null),an=v(null),on=v(null),sn=v(null),cn=v(null),ln=v(null),un=v(0),dn=v(0),fn=v(0),pn=v(null),mn=v(null),hn=v(null),gn=v(null),_n=v(null),k=v(null),vn=v({x:0,y:0}),yn=v(`pointer`),bn=v(!1),A=v(An()),j=f(()=>A.value.style.layout.candle),M=f(()=>A.value.style.layout.grid),N=f(()=>A.value.style.layout),P=f(()=>A.value.style),F=f(()=>A.value.userOptions);pe({config:()=>A.value,dataset:()=>C.dataset,component:`VueUiCandlestick`,rules:[me.emptyArray,{test:e=>e.length>200,message:[`👀 Dataset has > 200 points, which can cause performance issues. Consider:`,``,`▶️ Adding date inputs to constraint the dataset into a specific timeframe`,``,`▶️ Aggregate the data to larger time series to reduce the number of datapoints.`]}]});let{transitionEnabled:xn}=je({config:()=>A.value.transitions,dataset:()=>C.dataset}),Sn=f(()=>A.value.userOptions.useCursorPointer),Cn=f(()=>ie({defaultConfig:{useCssAnimation:!1,userOptions:{show:!1},table:{show:!1},style:{backgroundColor:`#99999930`,layout:{candle:{colors:{bearish:`#BABABA`,bullish:`#CACACA`}},grid:{stroke:`#6A6A6A`,verticalLines:{stroke:`#6A6A6A`},horizontalLines:{stroke:`#6A6A6A`},yAxis:{dataLabels:{show:!1},scale:{min:null,max:null}}},wick:{stroke:`#6A6A6A`,extremity:{color:`#6A6A6A`}}},tooltip:{show:!1},zoom:{show:!1,startIndex:null,endIndex:null}}},userConfig:A.value.skeletonConfig??{}})),{loading:I,FINAL_DATASET:L,manualLoading:wn}=de({...nt(C),FINAL_CONFIG:A,prepareConfig:An,callback:()=>{Promise.resolve().then(async()=>{await Ur()})},skeletonDataset:C.config?.skeletonDataset??[[17040672e5,10,20,2,10,30],[17067456e5,10,30,5,20,50],[17092512e5,20,50,10,30,80],[17119296e5,30,80,20,50,130],[17145216e5,50,130,30,100,210],[17172e8,80,210,50,150,340],[1719792e6,130,340,80,280,550],[17224704e5,210,550,130,450,890],[17251488e5,340,890,210,750,1440],[17277408e5,550,1440,340,1230,2330],[17304192e5,890,2330,550,1950,3770],[17330112e5,1440,3770,890,3200,5100]],skeletonConfig:ie({defaultConfig:A.value,userConfig:Cn.value})}),{userOptionsVisible:Tn,setUserOptionsVisibility:En,keepUserOptionState:Dn}=Re({config:A.value}),{svgRef:R}=ze({config:P.value.title});function On(){En(!0)}function kn(){En(!1),w(`selectX`,{seriesIndex:null,datapoint:null}),D.value=null}function An(){let e=ge({userConfig:C.config,defaultConfig:Jt}),t={};C.config&&le(C.config,`style.layout.grid.xAxis.dataLabels.showFirstAndLast`)&&(e.style.layout.grid.xAxis.dataLabels.showFirstAndLast=!!C.config.style.layout.grid.xAxis.dataLabels.showFirstAndLast);let n=e.theme;if(n){if(!Yt.value(e))Xt(e),t=e;else{let r=ge({userConfig:Be[n]||C.config,defaultConfig:e});t={...ge({userConfig:C.config,defaultConfig:r})}}}else t=e;return t}let jn=o(C.config);rt(()=>C.config,(e,t)=>{let n=o(e),r=n!==jn;jn=n;let i=An();r?(I.value||(A.value=An()),Tn.value=!A.value.userOptions.showOnChartHover,Fn(),un.value+=1,fn.value+=1,dn.value+=1,B.value.showTable=A.value.table.show,B.value.showTooltip=P.value.tooltip.show,lr()):(A.value.style.tooltip=i.style.tooltip,B.value.showTooltip=A.value.style.tooltip.show)},{deep:!0}),rt(()=>C.dataset,e=>{Array.isArray(e)&&e.length>0&&(wn.value=!1),zr()},{deep:!0});let z=v({height:P.value.height,width:P.value.width,xAxisFontSize:M.value.xAxis.dataLabels.fontSize,yAxisFontSize:M.value.yAxis.dataLabels.fontSize}),Mn=et(null),Nn=et(null);Qe(()=>{Fn()});let Pn=f(()=>A.value.debug);function Fn(){ue(C.dataset)&&(te({componentName:`VueUiCandlestick`,type:`dataset`,debug:Pn.value}),wn.value=!0),ue(C.dataset)||(wn.value=A.value.loading),setTimeout(()=>{T.value=!0},10),A.value.responsive&&(Mn.value&&(Nn.value&&Mn.value.unobserve(Nn.value),Mn.value.disconnect()),Mn.value=new ResizeObserver(()=>{T.value=!1;let{width:e,height:t}=Pe({chart:O.value,title:P.value.title.text?an.value:null,slicer:P.value.zoom.show&&U.value>6?sn.value.$el:null,legend:on.value,source:cn.value,noTitle:ln.value});cancelAnimationFrame($t),$t=requestAnimationFrame(()=>{z.value.width=e,z.value.height=t-12,Qt.value=!0,A.value.responsiveProportionalSizing?(z.value.xAxisFontSize=se({relator:Math.min(e,t),adjuster:P.value.width,source:M.value.xAxis.dataLabels.fontSize,threshold:6,fallback:6}),z.value.yAxisFontSize=se({relator:Math.min(e,t),adjuster:P.value.width,source:M.value.yAxis.dataLabels.fontSize,threshold:6,fallback:6})):(z.value.xAxisFontSize=M.value.xAxis.dataLabels.fontSize,z.value.yAxisFontSize=M.value.yAxis.dataLabels.fontSize),en.value&&clearTimeout(en.value),en.value=setTimeout(()=>{T.value=!0},10)})}),Nn.value=O.value.parentNode,Mn.value.observe(Nn.value)),Ur()}Ze(()=>{cancelAnimationFrame($t),Mn.value&&(Nn.value&&Mn.value.unobserve(Nn.value),Mn.value.disconnect())});let{isPrinting:In,isImaging:Ln,generatePdf:Rn,generateImage:zn}=Ae({elementId:`vue-ui-candlestick_${E.value}`,fileName:P.value.title.text||`vue-ui-candlestick`,options:A.value.userOptions.print}),Bn=f(()=>A.value.userOptions.show&&!P.value.title.text),B=v({showTable:A.value.table.show,showTooltip:P.value.tooltip.show}),{metrics:Vn,ready:Hn,settling:V,update:Un}=Me({svgRef:R,canMeasure:()=>(!A.value.responsive||Qt.value)&&(!M.value.xAxis.dataLabels.show||xr.value),initialMetrics:{scaleLabelsWidth:0,timeLabelsHeight:0},measure:e=>({scaleLabelsWidth:pn.value?e(pn.value).textWidth:M.value.yAxis.dataLabels.offsetX,timeLabelsHeight:e(mn.value).height})}),Wn=f(()=>mn.value?Vn.value.timeLabelsHeight+z.value.xAxisFontSize:0),Gn=f(()=>M.value.yAxis.position===`right`);function Kn(){let e=Vn.value.scaleLabelsWidth,t=M.value.yAxis.axisName?.show?M.value.yAxis.axisName.fontSize+M.value.yAxis.axisName.offsetX:0,n=e+13+t;return{left:Gn.value?0:n,right:Gn.value?n:0,scaleLabelsWidth:e,yAxisNameWidth:t,crosshair:13}}let H=f(()=>{let{top:e,right:t,bottom:n,left:r}=N.value.padding,i=Kn();return{top:e+12,right:z.value.width-t-i.right,left:r+i.left,bottom:z.value.height-n-Wn.value,width:z.value.width-r-t-i.left-i.right,height:z.value.height-e-n-Wn.value-12,scaleLabelsWidth:i.scaleLabelsWidth,yAxisNameWidth:i.yAxisNameWidth,crosshair:i.crosshair}}),qn=f(()=>{let{left:e,top:t,width:n,height:r}=H.value,i=W.value.start,a=W.value.end-i,o=n/a,s=G.value.start-i,c=G.value.end-i,l=Math.max(0,Math.min(a,s)),ee=Math.max(0,Math.min(a,c));return{x:e+l*o,y:t,width:(ee-l)*o,height:r,fill:P.value.zoom.preview.fill,stroke:P.value.zoom.preview.stroke,"stroke-width":P.value.zoom.preview.strokeWidth,"stroke-dasharray":P.value.zoom.preview.strokeDasharray,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{pointerEvents:`none`,transition:`none !important`,animation:`none !important`}}}),U=f(()=>L.value.length),W=v({start:0,end:U.value}),G=v({start:0,end:U.value}),Jn=v(!1),Yn=v(!1),Xn=v(null),K=v(null),q=v(null),Zn=v(!1),Qn=v({time:0,x:0,y:0,pointerType:null}),$n=f(()=>P.value.zoom?.dragToZoom),J=f(()=>$n.value.show&&Zt.value&&Vr.value&&U.value>1&&!I.value),er=null,tr={},nr=f(()=>P.value.zoom.preview.enable&&(G.value.start!==W.value.start||G.value.end!==W.value.end));function rr(e,t){G.value[e]=t}function ir(e,t=W.value){if(!e||typeof e!=`object`)return null;let n=e.start!==void 0&&e.start!==null,r=e.end!==void 0&&e.end!==null;if(!n&&!r)return null;let i=Number(n?e.start:t.start),a=Number(r?e.end:t.end);return!Number.isFinite(i)||!Number.isFinite(a)?null:{start:i,end:a}}function ar(e){let t=ir(e);t&&w(`update:zoomState`,t)}function or(){er&&=(cancelAnimationFrame(er),null),tr={}}function sr(e){let t=ir(e);if(!t)return null;let{start:n,end:r}=t;return(n!==Number(W.value.start)||r!==Number(W.value.end))&&(or(),W.value={start:n,end:r},G.value={start:n,end:r},lr()),{start:Number(W.value.start),end:Number(W.value.end)}}function cr(e){let t=sr(e);return t?(w(`update:zoomState`,t),t):null}function lr(){let e=Math.max(0,Math.min(W.value.start??0,U.value-1)),t=Math.max(e+1,Math.min(W.value.end??U.value,U.value));(!Number.isFinite(e)||!Number.isFinite(t)||t<=e)&&(e=0,t=U.value),W.value.start=e,W.value.end=t,G.value.start=e,G.value.end=t,sn.value&&sn.value.setRangeValues(e,t)}let ur=f(()=>L.value.map((e,t)=>({...e,absoluteIndex:t}))),dr=f(()=>ur.value.slice(W.value.start,W.value.end)),Y=f(()=>(Pn.value&&L.value.forEach((e,t)=>{[null,void 0].includes(e[0])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`period (index 0)`,index:t}),[null,void 0].includes(e[1])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`open (index 1)`,index:t}),[null,void 0].includes(e[2])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`high (index 2)`,index:t}),[null,void 0].includes(e[3])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`low (index 3)`,index:t}),[null,void 0].includes(e[4])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`close (index 4)`,index:t}),[null,void 0].includes(e[5])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`volume (index 5)`,index:t})}),dr.value.map(e=>({absoluteIndex:e.absoluteIndex,period:e[0],open:e[1],high:e[2],low:e[3],close:e[4],volume:e[5]})))),fr=f(()=>ur.value.map(e=>({absoluteIndex:e.absoluteIndex,period:e[0],open:e[1],high:e[2],low:e[3],close:e[4],volume:e[5]}))),X=f(()=>H.value.width/dr.value.length),pr=f(()=>({max:M.value.yAxis.scale.max===null?Math.max(...Y.value.map(e=>e.high)):M.value.yAxis.scale.max,min:M.value.yAxis.scale.min===null?0:M.value.yAxis.scale.min})),Z=f(()=>l(pr.value.min,pr.value.max,M.value.yAxis.dataLabels.steps));function mr(e,t,n=null,r=null){return{...e,x:u(H.value.left+t*X.value+X.value/2),y:u(H.value.top+(1-(e-Z.value.min)/(Z.value.max-Z.value.min))*H.value.height),value:u(e),isMax:e===n,isMin:e===r}}let Q=f(()=>{let e={o:Math.max(...Y.value.map(e=>e.open)),h:Math.max(...Y.value.map(e=>e.high)),l:Math.max(...Y.value.map(e=>e.low)),c:Math.max(...Y.value.map(e=>e.low))},t={o:Math.min(...Y.value.map(e=>e.open)),h:Math.min(...Y.value.map(e=>e.high)),l:Math.min(...Y.value.map(e=>e.low)),c:Math.min(...Y.value.map(e=>e.low))},n=Math.max(...Y.value.map(e=>e.volume)),r=Math.min(...Y.value.map(e=>e.volume));return Y.value.map((i,a)=>{let o=mr(i.open,a,e.o,t.o),s=mr(i.high,a,e.h,t.h),c=mr(i.low,a,e.l,t.l),l=mr(i.close,a,e.c,t.c),ee=i.close>i.open,te=i.volume===n,u=i.volume===r;return{period:i.period,open:o,high:s,low:c,close:l,volume:i.volume,isBullish:ee,absoluteIndex:i.absoluteIndex,isMaxVolume:te,isMinVolume:u}})});function hr({item:e,index:t,minimapH:n,unitW:r}){let i=M.value.yAxis.scale.min??0,a=M.value.yAxis.scale.max??Math.max(...L.value.map(e=>e[2]));return{...e,x:u(t*r),y:u((1-(e-i)/(a-i))*n),value:u(e)}}let gr=f(()=>({minimapH:e,unitW:t})=>fr.value.map((n,r)=>{let i=hr({item:n.open,index:r,minimapH:e,unitW:t}),a=hr({item:n.high,index:r,minimapH:e,unitW:t}),o=hr({item:n.low,index:r,minimapH:e,unitW:t}),s=hr({item:n.close,index:r,minimapH:e,unitW:t}),c=n.close>n.open;return{period:n.period,open:i,high:a,low:o,close:s,volume:n.volume,isBullish:c,absoluteIndex:n.absoluteIndex}})),_r=f(()=>P.value.zoom.minimap.show?[{name:``,series:L.value.map(e=>e[2]),color:`#000000`,isVisible:!0}]:[]);function vr(e){return u((e-Z.value.min)/(Z.value.max-Z.value.min))}let yr=f(()=>Z.value.ticks.map(e=>({y:H.value.bottom-H.value.height*vr(e),value:u(e)}))),br=f(()=>Y.value.map(e=>e.period)),$=v([]),xr=v(!1),Sr=v([]),Cr=0;it(()=>{let e=++Cr;(async()=>{let t=await ke({values:L.value.map(e=>e[0]),maxDatapoints:L.value.length,formatter:M.value.xAxis.dataLabels.datetimeFormatter,start:W.value.start,end:W.value.end});e===Cr&&($.value=t,xr.value=!0)})()});let wr=0;it(()=>{let e=++wr;(async()=>{let t=await ke({values:L.value.map(e=>e[0]),maxDatapoints:L.value.length,formatter:M.value.xAxis.dataLabels.datetimeFormatter,start:0,end:U.value});e===wr&&(Sr.value=t)})()});let Tr=v({months:[],shortMonths:[],days:[],shortDays:[]}),Er=0;it(()=>{let e=++Er,t=M.value.xAxis.dataLabels.datetimeFormatter;(async()=>{let n=await Oe(t.locale).catch(()=>Oe(`en`));e===Er&&(Tr.value=n.data)})()});let Dr=f(()=>{let e=M.value.xAxis.dataLabels.datetimeFormatter,t=De({useUTC:e.useUTC,locale:Tr.value,januaryAsYear:e.januaryAsYear});return(e,n)=>{let r=L.value.map(e=>e[0])?.[e];return r==null?``:t.formatDate(new Date(r),n)}}),Or=f(()=>(L.value.map(e=>e[0])||[]).map((e,t)=>({text:Dr.value(t,P.value.tooltip.timeFormat),absoluteIndex:t}))),kr=f(()=>(L.value.map(e=>e[0])||[]).map((e,t)=>({text:Dr.value(t,P.value.zoom.timeFormat),absoluteIndex:t}))),Ar=f(()=>{let e=Math.max(1,Math.floor(Number(M.value.xAxis.dataLabels.modulo)||1)),t=($.value||[]).map(e=>e?.text??``),n=(Sr.value||[]).map(e=>e?.text??``),r=W.value.start??0,i=r>0||t.length<n.length;return re({configuredModulo:e,visibleTexts:t,allTexts:n,startAbs:r,isZoomed:i})}),jr=f(()=>{let e=M.value.xAxis.dataLabels,t=$.value||[],n=Sr.value||[],r=W.value.start??0,i=D.value,a=U.value,o=t.map(e=>e?.text??``),s=n.map(e=>e?.text??``),c=ne(!!e.showOnlyFirstAndLast,!!e.showOnlyAtModulo,Ar.value,o,s,r,i,a);if(!e.showFirstAndLast||e.showOnlyFirstAndLast||!c.length)return c;let l=c.length-1;return c.map((e,t)=>t!==0&&t!==l?e:{...e,text:o[t]??``})}),Mr=f(()=>M.value.xAxis.dataLabels.datetimeFormatter.enable?{start:$.value.find(e=>e.absoluteIndex===W.value.start)?.text??``,end:$.value.find(e=>e.absoluteIndex===W.value.end-1)?.text??``}:{start:L.value[W.value.start]?L.value[W.value.start][0]:L.value[0][0],end:L.value[W.value.end-1]?L.value[W.value.end-1][0]:L.value.at(-1)[0]}),Nr=v(null);function Pr(e,t){A.value.events.datapointClick&&A.value.events.datapointClick({datapoint:t,seriesIndex:e+W.value.start})}function Fr(e,t){A.value.events.datapointLeave&&A.value.events.datapointLeave({datapoint:t,seriesIndex:e+W.value.start}),D.value=void 0,tn.value=!1,k.value=null,yn.value=`pointer`}rt(()=>C.selectedXIndex,e=>{if([null,void 0].includes(C.selectedXIndex)){D.value=null;return}let t=e-W.value.start;t<0||e>=W.value.end?D.value=null:D.value=t??null},{immediate:!0});function Ir(e,t,r=`pointer`){A.value.events.datapointEnter&&A.value.events.datapointEnter({datapoint:t,seriesIndex:e+W.value.start}),D.value=e,k.value=e,yn.value=r,Nr.value={datapoint:t,seriesIndex:e,series:Q.value,config:A.value},ki({seriesIndex:e,datapoint:t});let a=P.value.tooltip.customFormat;if(i(a)&&oe(()=>a({seriesIndex:e,datapoint:t,series:Q.value,config:A.value})))nn.value=a({seriesIndex:e,datapoint:t,series:Q.value,config:A.value});else if(P.value.tooltip.show){let r=``,{period:i,open:a,high:o,low:s,close:c,volume:l,isBullish:ee}=Q.value[e],{period:te,open:u,high:ne,low:re,close:ie,volume:ae}=A.value.translations,oe=M.value.xAxis.dataLabels.datetimeFormatter.enable?P.value.tooltip.useDefaultTimeFormat?$.value[e].text:Or.value[e].text:i;r+=`<div><svg style="margin-right:6px" viewBox="0 0 12 12" height="12" width="12"><rect x="0" y="0" height="12" width="12" rx="${j.value.borderRadius*3}" stroke="${j.value.stroke}" stroke-width="${j.value.strokeWidth}"
|
|
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,Jt as a,Qt as o,X as s,Yt as c,_ as l,_t as ee,at as te,b as u,c as ne,gt as re,in as ie,nt as ae,pt as oe,rn as se,t as ce,wt as le,zt as ue}from"./lib-rPeBMZrn.js";import{n as de,t as fe}from"./BaseScanner-8NdoBs7B.js";import{n as pe,t as me}from"./useHints-C-TwxM0Y.js";import{t as he}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ge}from"./useNestedProp-DnGoh-XS.js";import{t as _e}from"./useThemeCheck-BKNRbGeC.js";import{t as ve}from"./img-D4RQwASc.js";import{n as ye}from"./Title-BliHuXfT.js";import{t as be}from"./useChartExport-BZts4KFb.js";import{n as xe,t as Se}from"./tableIntegration-CNoJ1CIY.js";import{n as Ce,t as we}from"./annotationSlots-BRR85CqJ.js";import{n as Te,t as Ee}from"./userOptionsSlots-DYuo-E5m.js";import{n as De,r as Oe,t as ke}from"./useTimeLabels-Das5O74F.js";import{t as Ae}from"./usePrinter-DVf3YcG5.js";import{t as je}from"./useTransitions-ChGGrtrv.js";import{t as Me}from"./useSvgLabelLayout-42Kats14.js";import{t as Ne}from"./useTimeLabelCollider-BTybMUFi.js";import{t as Pe}from"./useResponsive-CENUxfEL.js";import{t as Fe}from"./DefGrad-DKMq1REY.js";import{t as Ie}from"./SlicerPreview-CFFUOlQr.js";import{t as Le}from"./A11yDataTable-DWNlWXzs.js";import{t as Re}from"./useUserOptionState-CXlFnwPv.js";import{t as ze}from"./useChartAccessibility-DOMuYJfm.js";import{t as Be}from"./vue_ui_candlestick-DKvha_Ab.js";import{Fragment as d,computed as f,createBlock as Ve,createCommentVNode as p,createElementBlock as m,createElementVNode as h,createSlots as He,createTextVNode as Ue,createVNode as We,defineAsyncComponent as Ge,guardReactiveProps as Ke,mergeProps as qe,nextTick as Je,normalizeClass as g,normalizeProps as Ye,normalizeStyle as Xe,onBeforeUnmount as Ze,onMounted as Qe,openBlock as _,ref as v,renderList as y,renderSlot as b,resolveDynamicComponent as $e,shallowRef as et,toDisplayString as tt,toRefs as nt,unref as x,watch as rt,watchEffect as it,withCtx as S}from"vue";var at=/* @__PURE__ */ e({default:()=>Bt}),ot=[`id`],st=[`id`],ct={style:{position:`relative`}},lt=[`xmlns`,`aria-describedby`,`viewBox`],ut=[`x`,`y`,`width`,`height`],dt={key:1},ft={key:0},pt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],mt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],ht=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],gt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`,`stroke-dasharray`],_t=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],vt=[`x1`,`x2`,`y1`,`y2`,`stroke`,`stroke-width`],yt=[`transform`,`text-anchor`,`font-size`,`fill`,`font-weight`],bt=[`transform`,`text-anchor`,`font-size`,`fill`,`font-weight`],xt=[`transform`,`text-anchor`,`font-size`,`fill`,`stroke`,`font-weight`],St=[`x`,`y`,`width`,`height`,`fill`,`rx`],Ct={key:0},wt=[`cx`,`cy`,`r`,`fill`],Tt=[`cx`,`cy`,`r`,`fill`],Et={key:1},Dt=[`x`,`y`,`width`,`height`,`rx`,`fill`],Ot=[`x`,`y`,`width`,`height`,`fill`,`rx`],kt=[`x`,`y`,`height`,`width`,`fill`,`rx`],At=[`x`,`y`,`height`,`width`,`fill`,`rx`,`stroke`,`stroke-width`],jt=[`d`,`stroke`],Mt=[`x`,`y`,`height`,`width`,`fill`,`onMouseover`,`onMouseleave`,`onClick`],Nt=[`x`,`y`,`width`,`height`,`fill`,`fill-opacity`,`stroke`,`stroke-opacity`,`stroke-width`,`stroke-dasharray`],Pt=[`data-start`,`data-end`],Ft={key:0,style:{position:`absolute`,top:`100%`,left:`0`,width:`100%`},"data-dom-to-png-ignore":``,"aria-hidden":`true`},It={key:5,class:`vue-data-ui-watermark`},Lt=[`d`,`stroke`],Rt=[`d`,`stroke`,`stroke-width`],zt=[`innerHTML`],Bt=/*#__PURE__*/ he({__name:`vue-ui-candlestick`,props:{config:{type:Object,default(){return{}}},dataset:{type:Array,default(){return[]}},selectedXIndex:{type:Number,default:void 0},zoomState:{type:Object,default:null}},emits:[`selectX`,`zoomStart`,`zoomEnd`,`zoomReset`,`update:zoomState`,`copyAlt`],setup(e,{expose:he,emit:at}){let Bt=Ge(()=>import(`./BaseIcon-Cm-IJ179.js`).then(e=>e.n)),Vt=Ge(()=>import(`./Tooltip-C1q0Qoh7.js`)),Ht=Ge(()=>import(`./vue-ui-accordion-S3nRtTU-.js`).then(e=>e.n)),Ut=Ge(()=>import(`./DataTable-0Vv-aGHD.js`)),Wt=Ge(()=>import(`./PenAndPaper-BGEp-TUm.js`).then(e=>e.t)),Gt=Ge(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),Kt=Ge(()=>import(`./PackageVersion-DhptF5oD.js`).then(e=>e.t)),qt=Ge(()=>import(`./BaseDraggableDialog-DHgIPVmz.js`).then(e=>e.n)),{vue_ui_candlestick:Jt}=t(),{isThemeValid:Yt,warnInvalidTheme:Xt}=_e(),C=e,w=at,Zt=f(()=>!!C.dataset&&C.dataset.length),T=v(!1),Qt=v(!1),$t=0,en=v(null),E=v(s()),tn=v(!1),nn=v(``),D=v(void 0),rn=v(0),O=v(null),an=v(null),on=v(null),sn=v(null),cn=v(null),ln=v(null),un=v(0),dn=v(0),fn=v(0),pn=v(null),mn=v(null),hn=v(null),gn=v(null),_n=v(null),k=v(null),vn=v({x:0,y:0}),yn=v(`pointer`),bn=v(!1),A=v(An()),j=f(()=>A.value.style.layout.candle),M=f(()=>A.value.style.layout.grid),N=f(()=>A.value.style.layout),P=f(()=>A.value.style),F=f(()=>A.value.userOptions);pe({config:()=>A.value,dataset:()=>C.dataset,component:`VueUiCandlestick`,rules:[me.emptyArray,{test:e=>e.length>200,message:[`👀 Dataset has > 200 points, which can cause performance issues. Consider:`,``,`▶️ Adding date inputs to constraint the dataset into a specific timeframe`,``,`▶️ Aggregate the data to larger time series to reduce the number of datapoints.`]}]});let{transitionEnabled:xn}=je({config:()=>A.value.transitions,dataset:()=>C.dataset}),Sn=f(()=>A.value.userOptions.useCursorPointer),Cn=f(()=>ie({defaultConfig:{useCssAnimation:!1,userOptions:{show:!1},table:{show:!1},style:{backgroundColor:`#99999930`,layout:{candle:{colors:{bearish:`#BABABA`,bullish:`#CACACA`}},grid:{stroke:`#6A6A6A`,verticalLines:{stroke:`#6A6A6A`},horizontalLines:{stroke:`#6A6A6A`},yAxis:{dataLabels:{show:!1},scale:{min:null,max:null}}},wick:{stroke:`#6A6A6A`,extremity:{color:`#6A6A6A`}}},tooltip:{show:!1},zoom:{show:!1,startIndex:null,endIndex:null}}},userConfig:A.value.skeletonConfig??{}})),{loading:I,FINAL_DATASET:L,manualLoading:wn}=de({...nt(C),FINAL_CONFIG:A,prepareConfig:An,callback:()=>{Promise.resolve().then(async()=>{await Ur()})},skeletonDataset:C.config?.skeletonDataset??[[17040672e5,10,20,2,10,30],[17067456e5,10,30,5,20,50],[17092512e5,20,50,10,30,80],[17119296e5,30,80,20,50,130],[17145216e5,50,130,30,100,210],[17172e8,80,210,50,150,340],[1719792e6,130,340,80,280,550],[17224704e5,210,550,130,450,890],[17251488e5,340,890,210,750,1440],[17277408e5,550,1440,340,1230,2330],[17304192e5,890,2330,550,1950,3770],[17330112e5,1440,3770,890,3200,5100]],skeletonConfig:ie({defaultConfig:A.value,userConfig:Cn.value})}),{userOptionsVisible:Tn,setUserOptionsVisibility:En,keepUserOptionState:Dn}=Re({config:A.value}),{svgRef:R}=ze({config:P.value.title});function On(){En(!0)}function kn(){En(!1),w(`selectX`,{seriesIndex:null,datapoint:null}),D.value=null}function An(){let e=ge({userConfig:C.config,defaultConfig:Jt}),t={};C.config&&le(C.config,`style.layout.grid.xAxis.dataLabels.showFirstAndLast`)&&(e.style.layout.grid.xAxis.dataLabels.showFirstAndLast=!!C.config.style.layout.grid.xAxis.dataLabels.showFirstAndLast);let n=e.theme;if(n){if(!Yt.value(e))Xt(e),t=e;else{let r=ge({userConfig:Be[n]||C.config,defaultConfig:e});t={...ge({userConfig:C.config,defaultConfig:r})}}}else t=e;return t}let jn=o(C.config);rt(()=>C.config,(e,t)=>{let n=o(e),r=n!==jn;jn=n;let i=An();r?(I.value||(A.value=An()),Tn.value=!A.value.userOptions.showOnChartHover,Fn(),un.value+=1,fn.value+=1,dn.value+=1,B.value.showTable=A.value.table.show,B.value.showTooltip=P.value.tooltip.show,lr()):(A.value.style.tooltip=i.style.tooltip,B.value.showTooltip=A.value.style.tooltip.show)},{deep:!0}),rt(()=>C.dataset,e=>{Array.isArray(e)&&e.length>0&&(wn.value=!1),zr()},{deep:!0});let z=v({height:P.value.height,width:P.value.width,xAxisFontSize:M.value.xAxis.dataLabels.fontSize,yAxisFontSize:M.value.yAxis.dataLabels.fontSize}),Mn=et(null),Nn=et(null);Qe(()=>{Fn()});let Pn=f(()=>A.value.debug);function Fn(){ue(C.dataset)&&(te({componentName:`VueUiCandlestick`,type:`dataset`,debug:Pn.value}),wn.value=!0),ue(C.dataset)||(wn.value=A.value.loading),setTimeout(()=>{T.value=!0},10),A.value.responsive&&(Mn.value&&(Nn.value&&Mn.value.unobserve(Nn.value),Mn.value.disconnect()),Mn.value=new ResizeObserver(()=>{T.value=!1;let{width:e,height:t}=Pe({chart:O.value,title:P.value.title.text?an.value:null,slicer:P.value.zoom.show&&U.value>6?sn.value.$el:null,legend:on.value,source:cn.value,noTitle:ln.value});cancelAnimationFrame($t),$t=requestAnimationFrame(()=>{z.value.width=e,z.value.height=t-12,Qt.value=!0,A.value.responsiveProportionalSizing?(z.value.xAxisFontSize=se({relator:Math.min(e,t),adjuster:P.value.width,source:M.value.xAxis.dataLabels.fontSize,threshold:6,fallback:6}),z.value.yAxisFontSize=se({relator:Math.min(e,t),adjuster:P.value.width,source:M.value.yAxis.dataLabels.fontSize,threshold:6,fallback:6})):(z.value.xAxisFontSize=M.value.xAxis.dataLabels.fontSize,z.value.yAxisFontSize=M.value.yAxis.dataLabels.fontSize),en.value&&clearTimeout(en.value),en.value=setTimeout(()=>{T.value=!0},10)})}),Nn.value=O.value.parentNode,Mn.value.observe(Nn.value)),Ur()}Ze(()=>{cancelAnimationFrame($t),Mn.value&&(Nn.value&&Mn.value.unobserve(Nn.value),Mn.value.disconnect())});let{isPrinting:In,isImaging:Ln,generatePdf:Rn,generateImage:zn}=Ae({elementId:`vue-ui-candlestick_${E.value}`,fileName:P.value.title.text||`vue-ui-candlestick`,options:A.value.userOptions.print}),Bn=f(()=>A.value.userOptions.show&&!P.value.title.text),B=v({showTable:A.value.table.show,showTooltip:P.value.tooltip.show}),{metrics:Vn,ready:Hn,settling:V,update:Un}=Me({svgRef:R,canMeasure:()=>(!A.value.responsive||Qt.value)&&(!M.value.xAxis.dataLabels.show||xr.value),initialMetrics:{scaleLabelsWidth:0,timeLabelsHeight:0},measure:e=>({scaleLabelsWidth:pn.value?e(pn.value).textWidth:M.value.yAxis.dataLabels.offsetX,timeLabelsHeight:e(mn.value).height})}),Wn=f(()=>mn.value?Vn.value.timeLabelsHeight+z.value.xAxisFontSize:0),Gn=f(()=>M.value.yAxis.position===`right`);function Kn(){let e=Vn.value.scaleLabelsWidth,t=M.value.yAxis.axisName?.show?M.value.yAxis.axisName.fontSize+M.value.yAxis.axisName.offsetX:0,n=e+13+t;return{left:Gn.value?0:n,right:Gn.value?n:0,scaleLabelsWidth:e,yAxisNameWidth:t,crosshair:13}}let H=f(()=>{let{top:e,right:t,bottom:n,left:r}=N.value.padding,i=Kn();return{top:e+12,right:z.value.width-t-i.right,left:r+i.left,bottom:z.value.height-n-Wn.value,width:z.value.width-r-t-i.left-i.right,height:z.value.height-e-n-Wn.value-12,scaleLabelsWidth:i.scaleLabelsWidth,yAxisNameWidth:i.yAxisNameWidth,crosshair:i.crosshair}}),qn=f(()=>{let{left:e,top:t,width:n,height:r}=H.value,i=W.value.start,a=W.value.end-i,o=n/a,s=G.value.start-i,c=G.value.end-i,l=Math.max(0,Math.min(a,s)),ee=Math.max(0,Math.min(a,c));return{x:e+l*o,y:t,width:(ee-l)*o,height:r,fill:P.value.zoom.preview.fill,stroke:P.value.zoom.preview.stroke,"stroke-width":P.value.zoom.preview.strokeWidth,"stroke-dasharray":P.value.zoom.preview.strokeDasharray,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{pointerEvents:`none`,transition:`none !important`,animation:`none !important`}}}),U=f(()=>L.value.length),W=v({start:0,end:U.value}),G=v({start:0,end:U.value}),Jn=v(!1),Yn=v(!1),Xn=v(null),K=v(null),q=v(null),Zn=v(!1),Qn=v({time:0,x:0,y:0,pointerType:null}),$n=f(()=>P.value.zoom?.dragToZoom),J=f(()=>$n.value.show&&Zt.value&&Vr.value&&U.value>1&&!I.value),er=null,tr={},nr=f(()=>P.value.zoom.preview.enable&&(G.value.start!==W.value.start||G.value.end!==W.value.end));function rr(e,t){G.value[e]=t}function ir(e,t=W.value){if(!e||typeof e!=`object`)return null;let n=e.start!==void 0&&e.start!==null,r=e.end!==void 0&&e.end!==null;if(!n&&!r)return null;let i=Number(n?e.start:t.start),a=Number(r?e.end:t.end);return!Number.isFinite(i)||!Number.isFinite(a)?null:{start:i,end:a}}function ar(e){let t=ir(e);t&&w(`update:zoomState`,t)}function or(){er&&=(cancelAnimationFrame(er),null),tr={}}function sr(e){let t=ir(e);if(!t)return null;let{start:n,end:r}=t;return(n!==Number(W.value.start)||r!==Number(W.value.end))&&(or(),W.value={start:n,end:r},G.value={start:n,end:r},lr()),{start:Number(W.value.start),end:Number(W.value.end)}}function cr(e){let t=sr(e);return t?(w(`update:zoomState`,t),t):null}function lr(){let e=Math.max(0,Math.min(W.value.start??0,U.value-1)),t=Math.max(e+1,Math.min(W.value.end??U.value,U.value));(!Number.isFinite(e)||!Number.isFinite(t)||t<=e)&&(e=0,t=U.value),W.value.start=e,W.value.end=t,G.value.start=e,G.value.end=t,sn.value&&sn.value.setRangeValues(e,t)}let ur=f(()=>L.value.map((e,t)=>({...e,absoluteIndex:t}))),dr=f(()=>ur.value.slice(W.value.start,W.value.end)),Y=f(()=>(Pn.value&&L.value.forEach((e,t)=>{[null,void 0].includes(e[0])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`period (index 0)`,index:t}),[null,void 0].includes(e[1])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`open (index 1)`,index:t}),[null,void 0].includes(e[2])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`high (index 2)`,index:t}),[null,void 0].includes(e[3])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`low (index 3)`,index:t}),[null,void 0].includes(e[4])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`close (index 4)`,index:t}),[null,void 0].includes(e[5])&&te({componentName:`VueUiCandlestick`,type:`datasetAttribute`,property:`volume (index 5)`,index:t})}),dr.value.map(e=>({absoluteIndex:e.absoluteIndex,period:e[0],open:e[1],high:e[2],low:e[3],close:e[4],volume:e[5]})))),fr=f(()=>ur.value.map(e=>({absoluteIndex:e.absoluteIndex,period:e[0],open:e[1],high:e[2],low:e[3],close:e[4],volume:e[5]}))),X=f(()=>H.value.width/dr.value.length),pr=f(()=>({max:M.value.yAxis.scale.max===null?Math.max(...Y.value.map(e=>e.high)):M.value.yAxis.scale.max,min:M.value.yAxis.scale.min===null?0:M.value.yAxis.scale.min})),Z=f(()=>l(pr.value.min,pr.value.max,M.value.yAxis.dataLabels.steps));function mr(e,t,n=null,r=null){return{...e,x:u(H.value.left+t*X.value+X.value/2),y:u(H.value.top+(1-(e-Z.value.min)/(Z.value.max-Z.value.min))*H.value.height),value:u(e),isMax:e===n,isMin:e===r}}let Q=f(()=>{let e={o:Math.max(...Y.value.map(e=>e.open)),h:Math.max(...Y.value.map(e=>e.high)),l:Math.max(...Y.value.map(e=>e.low)),c:Math.max(...Y.value.map(e=>e.low))},t={o:Math.min(...Y.value.map(e=>e.open)),h:Math.min(...Y.value.map(e=>e.high)),l:Math.min(...Y.value.map(e=>e.low)),c:Math.min(...Y.value.map(e=>e.low))},n=Math.max(...Y.value.map(e=>e.volume)),r=Math.min(...Y.value.map(e=>e.volume));return Y.value.map((i,a)=>{let o=mr(i.open,a,e.o,t.o),s=mr(i.high,a,e.h,t.h),c=mr(i.low,a,e.l,t.l),l=mr(i.close,a,e.c,t.c),ee=i.close>i.open,te=i.volume===n,u=i.volume===r;return{period:i.period,open:o,high:s,low:c,close:l,volume:i.volume,isBullish:ee,absoluteIndex:i.absoluteIndex,isMaxVolume:te,isMinVolume:u}})});function hr({item:e,index:t,minimapH:n,unitW:r}){let i=M.value.yAxis.scale.min??0,a=M.value.yAxis.scale.max??Math.max(...L.value.map(e=>e[2]));return{...e,x:u(t*r),y:u((1-(e-i)/(a-i))*n),value:u(e)}}let gr=f(()=>({minimapH:e,unitW:t})=>fr.value.map((n,r)=>{let i=hr({item:n.open,index:r,minimapH:e,unitW:t}),a=hr({item:n.high,index:r,minimapH:e,unitW:t}),o=hr({item:n.low,index:r,minimapH:e,unitW:t}),s=hr({item:n.close,index:r,minimapH:e,unitW:t}),c=n.close>n.open;return{period:n.period,open:i,high:a,low:o,close:s,volume:n.volume,isBullish:c,absoluteIndex:n.absoluteIndex}})),_r=f(()=>P.value.zoom.minimap.show?[{name:``,series:L.value.map(e=>e[2]),color:`#000000`,isVisible:!0}]:[]);function vr(e){return u((e-Z.value.min)/(Z.value.max-Z.value.min))}let yr=f(()=>Z.value.ticks.map(e=>({y:H.value.bottom-H.value.height*vr(e),value:u(e)}))),br=f(()=>Y.value.map(e=>e.period)),$=v([]),xr=v(!1),Sr=v([]),Cr=0;it(()=>{let e=++Cr;(async()=>{let t=await ke({values:L.value.map(e=>e[0]),maxDatapoints:L.value.length,formatter:M.value.xAxis.dataLabels.datetimeFormatter,start:W.value.start,end:W.value.end});e===Cr&&($.value=t,xr.value=!0)})()});let wr=0;it(()=>{let e=++wr;(async()=>{let t=await ke({values:L.value.map(e=>e[0]),maxDatapoints:L.value.length,formatter:M.value.xAxis.dataLabels.datetimeFormatter,start:0,end:U.value});e===wr&&(Sr.value=t)})()});let Tr=v({months:[],shortMonths:[],days:[],shortDays:[]}),Er=0;it(()=>{let e=++Er,t=M.value.xAxis.dataLabels.datetimeFormatter;(async()=>{let n=await Oe(t.locale).catch(()=>Oe(`en`));e===Er&&(Tr.value=n.data)})()});let Dr=f(()=>{let e=M.value.xAxis.dataLabels.datetimeFormatter,t=De({useUTC:e.useUTC,locale:Tr.value,januaryAsYear:e.januaryAsYear});return(e,n)=>{let r=L.value.map(e=>e[0])?.[e];return r==null?``:t.formatDate(new Date(r),n)}}),Or=f(()=>(L.value.map(e=>e[0])||[]).map((e,t)=>({text:Dr.value(t,P.value.tooltip.timeFormat),absoluteIndex:t}))),kr=f(()=>(L.value.map(e=>e[0])||[]).map((e,t)=>({text:Dr.value(t,P.value.zoom.timeFormat),absoluteIndex:t}))),Ar=f(()=>{let e=Math.max(1,Math.floor(Number(M.value.xAxis.dataLabels.modulo)||1)),t=($.value||[]).map(e=>e?.text??``),n=(Sr.value||[]).map(e=>e?.text??``),r=W.value.start??0,i=r>0||t.length<n.length;return re({configuredModulo:e,visibleTexts:t,allTexts:n,startAbs:r,isZoomed:i})}),jr=f(()=>{let e=M.value.xAxis.dataLabels,t=$.value||[],n=Sr.value||[],r=W.value.start??0,i=D.value,a=U.value,o=t.map(e=>e?.text??``),s=n.map(e=>e?.text??``),c=ne(!!e.showOnlyFirstAndLast,!!e.showOnlyAtModulo,Ar.value,o,s,r,i,a);if(!e.showFirstAndLast||e.showOnlyFirstAndLast||!c.length)return c;let l=c.length-1;return c.map((e,t)=>t!==0&&t!==l?e:{...e,text:o[t]??``})}),Mr=f(()=>M.value.xAxis.dataLabels.datetimeFormatter.enable?{start:$.value.find(e=>e.absoluteIndex===W.value.start)?.text??``,end:$.value.find(e=>e.absoluteIndex===W.value.end-1)?.text??``}:{start:L.value[W.value.start]?L.value[W.value.start][0]:L.value[0][0],end:L.value[W.value.end-1]?L.value[W.value.end-1][0]:L.value.at(-1)[0]}),Nr=v(null);function Pr(e,t){A.value.events.datapointClick&&A.value.events.datapointClick({datapoint:t,seriesIndex:e+W.value.start})}function Fr(e,t){A.value.events.datapointLeave&&A.value.events.datapointLeave({datapoint:t,seriesIndex:e+W.value.start}),D.value=void 0,tn.value=!1,k.value=null,yn.value=`pointer`}rt(()=>C.selectedXIndex,e=>{if([null,void 0].includes(C.selectedXIndex)){D.value=null;return}let t=e-W.value.start;t<0||e>=W.value.end?D.value=null:D.value=t??null},{immediate:!0});function Ir(e,t,r=`pointer`){A.value.events.datapointEnter&&A.value.events.datapointEnter({datapoint:t,seriesIndex:e+W.value.start}),D.value=e,k.value=e,yn.value=r,Nr.value={datapoint:t,seriesIndex:e,series:Q.value,config:A.value},ki({seriesIndex:e,datapoint:t});let a=P.value.tooltip.customFormat;if(i(a)&&oe(()=>a({seriesIndex:e,datapoint:t,series:Q.value,config:A.value})))nn.value=a({seriesIndex:e,datapoint:t,series:Q.value,config:A.value});else if(P.value.tooltip.show){let r=``,{period:i,open:a,high:o,low:s,close:c,volume:l,isBullish:ee}=Q.value[e],{period:te,open:u,high:ne,low:re,close:ie,volume:ae}=A.value.translations,oe=M.value.xAxis.dataLabels.datetimeFormatter.enable?P.value.tooltip.useDefaultTimeFormat?$.value[e].text:Or.value[e].text:i;r+=`<div><svg style="margin-right:6px" viewBox="0 0 12 12" height="12" width="12"><rect x="0" y="0" height="12" width="12" rx="${j.value.borderRadius*3}" stroke="${j.value.stroke}" stroke-width="${j.value.strokeWidth}"
|
|
2
2
|
fill="${j.value.gradient.show?ee?`url(#bullish_gradient_${E.value})`:`url(#bearish_gradient_${E.value})`:ee?j.value.colors.bullish:j.value.colors.bearish}"/></svg>${oe}</div>`,r+=`${ae} : <b>${isNaN(l)?`-`:Number(l.toFixed(P.value.tooltip.roundingValue)).toLocaleString()}</b>`,r+=`<div style="margin-top:6px;padding-top:6px;border-top:1px solid ${P.value.tooltip.borderColor}">`;let se=n({p:P.value.tooltip.prefix,v:a.value,s:P.value.tooltip.suffix,r:P.value.tooltip.roundingValue}),ce=n({p:P.value.tooltip.prefix,v:o.value,s:P.value.tooltip.suffix,r:P.value.tooltip.roundingValue}),le=n({p:P.value.tooltip.prefix,v:s.value,s:P.value.tooltip.suffix,r:P.value.tooltip.roundingValue}),ue=n({p:P.value.tooltip.prefix,v:c.value,s:P.value.tooltip.suffix,r:P.value.tooltip.roundingValue});P.value.tooltip.showChart?r+=`<div style="width:100%;display:flex;align-items:center;justify-content:center;">
|
|
3
3
|
<svg viewBox="0 0 100 100" width="100px" style="background: transparent; overflow: visible">
|
|
4
4
|
<g>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{D as n,Jt as r,X as i,at as a,nt as ee,zt as o}from"./lib-rPeBMZrn.js";import{n as te,t as ne}from"./useHints-C-TwxM0Y.js";import{t as re}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ie}from"./useNestedProp-DnGoh-XS.js";import{n as ae,t as oe}from"./userOptionsSlots-DYuo-E5m.js";import{t as se}from"./usePrinter-DVf3YcG5.js";import{t as ce}from"./useUserOptionState-CXlFnwPv.js";import{t as le}from"./usePrefersMotion-XLHwega2.js";import{Fragment as s,computed as c,createBlock as ue,createCommentVNode as l,createElementBlock as u,createElementVNode as d,createSlots as de,createTextVNode as f,defineAsyncComponent as fe,guardReactiveProps as pe,mergeProps as me,nextTick as he,normalizeClass as ge,normalizeProps as _e,normalizeStyle as p,onBeforeUnmount as m,onMounted as h,openBlock as g,ref as _,renderList as v,renderSlot as y,shallowRef as ve,toDisplayString as b,unref as x,useSlots as ye,watch as S,withCtx as be}from"vue";var C=/* @__PURE__ */ e({default:()=>w}),xe=[`id`],Se=[`aria-labelledby`],Ce=[`id`],we=[`height`],Te=[`id`],Ee=[`data-cell`,`aria-label`,`height`],De={key:2,ref:`source`,dir:`auto`},w=/*#__PURE__*/ re({__name:`vue-ui-carousel-table`,props:{config:{type:Object,default(){return{}}},dataset:{type:Object,default(){return{}}}},emits:[`copyAlt`],setup(e,{expose:re,emit:C}){let w=fe(()=>import(`./vue-ui-skeleton-DpzaXPO3.js`).then(e=>e.n)),Oe=fe(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),{vue_ui_carousel_table:ke}=t(),Ae=le(),T=e,je=C,E=_(i()),Me=_(!1),D=_(!!T.dataset),Ne=ye();h(()=>{Pe()});let O=c({get:()=>N(),set:e=>e}),k=c(()=>O.value.debug);h(()=>{Ne[`chart-background`]&&k.value&&console.warn(`VueUiCarouselTable does not support the #chart-background slot.`)});function Pe(){o(T.dataset)?a({componentName:`VueUiCarouselTable`,type:`dataset`,debug:k.value}):((!T.dataset.head||o(T.dataset.head))&&(a({componentName:`VueUiCarouselTable`,type:`datasetAttribute`,property:`head`,debug:k.value}),D.value=!1),(!T.dataset.body||o(T.dataset.body))&&(a({componentName:`VueUiCarouselTable`,type:`datasetAttribute`,property:`body`,debug:k.value}),D.value=!1)),Ae.value&&(O.value.userOptions.buttons.animation=!1)}te({config:()=>O.value,dataset:()=>T.dataset,component:`VueUiCarouselTable`,rules:[ne.noHint]});let Fe=c(()=>O.value.userOptions.useCursorPointer),{userOptionsVisible:A,setUserOptionsVisibility:j,keepUserOptionState:M}=ce({config:O.value});function N(){return ie({userConfig:T.config,defaultConfig:ke})}S(()=>T.config,e=>{O.value=N(),A.value=!O.value.userOptions.showOnChartHover,Pe()},{deep:!0}),S(()=>T.dataset,e=>{G()},{deep:!0});let{isPrinting:P,isImaging:Ie,generatePdf:Le,generateImage:Re}=se({elementId:`carousel-table_${E.value}`,fileName:O.value.caption.text||`vue-ui-carousel-table`,options:O.value.userOptions.print}),F=_({showAnimation:O.value.animation.use}),I=_(null),ze=_(null),L=_(null),R=_(null),z=_(0),B=_(0),V=_(!1),H=_(null),U=_(null),W=_(0);function G(){H.value&&(U.value={elements:H.value.getElementsByTagName(`tr`),heights:Array.from(H.value.getElementsByTagName(`tr`)).map(e=>e.getBoundingClientRect().height)})}h(G);let Be=c(()=>!U.value||!U.value.heights.length?0:Math.max(...U.value.heights)+z.value+B.value),Ve=c(()=>T.dataset.body?O.value.tbody.tr.visible<=T.dataset.body.length?O.value.tbody.tr.visible:T.dataset.body.length:0),He=c(()=>(O.value.tbody.tr.height+O.value.tbody.tr.td.padding.top+O.value.tbody.tr.td.padding.bottom+O.value.tbody.tr.border.size*2)*Ve.value+z.value+B.value),K=_(0),q=_(null),J=_(0),Y=_(!1),Ue=_(0);h(()=>{L.value&&(z.value=L.value.getBoundingClientRect().height),R.value&&(B.value=R.value.getBoundingClientRect().height),F.value.showAnimation&&U.value&&Ge()}),h(()=>{if(I.value){let e=I.value.querySelector(`thead`),t=Array.from(H.value.querySelectorAll(`tr`));function n(){let n=e.getBoundingClientRect().bottom;t.forEach(e=>{e.getBoundingClientRect().top<n?e.style.visibility=`hidden`:e.style.visibility=`visible`})}I.value.addEventListener(`scroll`,n),n(),m(()=>{I.value.removeEventListener(`scroll`,n)})}});function We(e){Me.value=e,Ue.value+=1}function Ge(){Ae.value||!q.value&&!Y.value&&(O.value.animation.type===`scroll`?q.value=requestAnimationFrame(qe):q.value=requestAnimationFrame(Je))}function Ke(){if(!I.value)return!1;let{scrollTop:e,scrollHeight:t,clientHeight:n}=I.value;return e+n>=t}function qe(e){Y.value||(J.value||=e,e-J.value>=O.value.animation.speedMs&&(K.value+=U.value.heights[W.value],(Ke()||W.value>=U.value.heights.length)&&(K.value=0,W.value=-1),W.value+=1,I.value&&I.value.scrollTo({top:K.value,behavior:`smooth`}),J.value=e),q.value=requestAnimationFrame(qe))}function Je(e){if(Y.value)return;J.value||=e;let t=e-J.value,n=O.value.animation.speedMs/4/1e3;t>=n&&(K.value+=n,K.value>=I.value.scrollHeight-I.value.clientHeight&&(K.value=0),I.value&&I.value.scrollTo({top:K.value,behavior:`auto`}),J.value=e),q.value=requestAnimationFrame(Je)}function X(){Y.value=!0,cancelAnimationFrame(q.value),q.value=null}m(X);function Z(){Y.value&&F.value.showAnimation&&(Y.value=!1,J.value=0,Ge())}function Ye(){O.value.animation.pauseOnHover&&X()}let Q=_(null);function Xe(){X(),clearTimeout(Q.value)}function Ze(){clearTimeout(Q.value),Q.value=setTimeout(Z,1e3)}S(()=>O.value.animation.use,e=>{e?(F.value.showAnimation=!0,Z()):(F.value.showAnimation=!1,X())}),S(()=>O.value.animation.type,e=>{X(),K.value=0,W.value=0,I.value.scrollTo({top:0,behavior:`auto`}),Z()});let Qe=c(()=>O.value.responsiveBreakpoint),$=ve(null);h(()=>{$.value=new ResizeObserver(e=>{e.forEach(e=>{V.value=e.contentRect.width<Qe.value}),z.value=L.value?L.value.getBoundingClientRect().height:0,B.value=R.value?R.value.getBoundingClientRect().height:0,W.value=0,he(()=>{X(),J.value=0,K.value=0,G(),Z()})}),I.value&&$.value.observe(I.value)}),m(()=>{$.value&&$.value.disconnect()});function $e(){Le()}function et(){F.value.showAnimation=!F.value.showAnimation,F.value.showAnimation?Z():X()}function tt(e=null){he(()=>{let t=T.dataset.head.map((e,t)=>[[T.dataset.body[t]]]),r=[[O.value.caption.text],[T.dataset.head.map(e=>[e])]].concat(t),i=n(r);e?e(i):ee({csvContent:i,title:O.value.caption.text||`vue-ui-carousel-table`})})}async function nt(){je(`copyAlt`,{config:O.value,dataset:T.dataset}),O.value.userOptions.callbacks.altCopy?await Promise.resolve(O.value.userOptions.callbacks.altCopy({config:O.value,dataset:T.dataset})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}return re({pauseAnimation:X,resumeAnimation:Z,toggleAnimation:et,generateCsv:tt,generatePdf:$e,generateImage:Re,copyAlt:nt}),(t,n)=>(g(),u(`div`,{class:`vue-data-ui-component vue-ui-carousel-table`,style:{position:`relative`,overflow:`visible`},ref_key:`chartContainer`,ref:ze,onMouseenter:n[5]||=()=>x(j)(!0),onMouseleave:n[6]||=()=>x(j)(!1)},[d(`div`,{ref_key:`tableContainer`,ref:I,id:`carousel-table_${E.value}`,style:p({height:x(P)||x(Ie)?`auto`:`${Math.max(He.value,Be.value)}px`,containerType:`inline-size`,position:`relative`,overflow:`auto`,fontFamily:O.value.fontFamily}),class:ge({"vue-ui-responsive":V.value,"is-playing":O.value.scrollbar.hide||!Y.value&&O.value.scrollbar.showOnlyOnHover}),onMouseover:n[0]||=e=>Ye(),onMouseleave:n[1]||=e=>Z(),onTouchstart:n[2]||=e=>Xe(),onTouchend:n[3]||=e=>Ze(),onTouchcancel:n[4]||=e=>Ze()},[D.value?(g(),u(`table`,{key:0,class:`vue-data-ui-carousel-table`,"aria-labelledby":`carousel-caption-${E.value}`,style:p({...O.value.style,border:`${O.value.border.size}px solid ${O.value.border.color}`,width:`100%`,borderCollapse:`collapse`,backgroundColor:O.value.tbody.backgroundColor})},[d(`caption`,{ref_key:`caption`,ref:L,class:`vue-data-ui-carousel-table-caption`,id:`carousel-caption-${E.value}`,style:p({...O.value.caption.style,fontFamily:`inherit`,position:`sticky`,top:0,zIndex:2,paddingTop:O.value.caption.padding.top+`px`,paddingRight:O.value.caption.padding.right+`px`,paddingBottom:O.value.caption.padding.bottom+`px`,paddingLeft:O.value.caption.padding.left+`px`,boxShadow:V.value?O.value.thead.tr.style.boxShadow:`none`,minHeight:`36px`,display:t.$slots.caption||O.value.caption.text||O.value.userOptions.show?``:`none`})},[f(b(O.value.caption.text&&!t.$slots.caption?O.value.caption.text:``)+` `,1),y(t.$slots,`caption`,{},void 0,!0)],12,Ce),d(`thead`,{role:`rowgroup`,style:p({...O.value.thead.style,position:`sticky`,top:`${t.$slots.caption||O.value.caption.text||O.value.userOptions.show?z.value:0}px`,zIndex:1})},[d(`tr`,{ref_key:`tableRow`,ref:R,role:`row`,style:p({...O.value.thead.tr.style,border:O.value.thead.tr.border.size?`${O.value.thead.tr.border.size}px solid ${O.value.thead.tr.border.color}`:`none`,boxShadow:V.value?`none`:O.value.thead.tr.style.boxShadow}),height:`${O.value.thead.tr.height}px`},[(g(!0),u(s,null,v(e.dataset.head,(e,n)=>(g(),u(`th`,{role:`cell`,key:`th_${n}`,id:`col-${n}`,scope:`col`,style:p({...O.value.thead.tr.th.style,border:O.value.thead.tr.th.border.size?`${O.value.thead.tr.th.border.size}px solid ${O.value.thead.tr.th.border.color}`:`none`,paddingTop:O.value.thead.tr.th.padding.top+`px`,paddingRight:O.value.thead.tr.th.padding.right+`px`,paddingBottom:O.value.thead.tr.th.padding.bottom+`px`,paddingLeft:O.value.thead.tr.th.padding.left+`px`})},[f(b(t.$slots.th?``:e)+` `,1),y(t.$slots,`th`,me({ref_for:!0},{th:e,colIndex:n}),void 0,!0)],12,Te))),128))],12,we)],4),e.dataset.body&&e.dataset.head?(g(),u(`tbody`,{key:0,ref_key:`tbody`,ref:H,"aria-live":`polite`,style:{clipPath:`inset(0,0,0,0)`}},[(g(!0),u(s,null,v(e.dataset.body,(n,i)=>(g(),u(`tr`,{style:p({...O.value.tbody.tr.style,border:`${O.value.tbody.tr.border.size}px solid ${O.value.tbody.tr.border.color}`,verticalAlign:`middle`})},[(g(!0),u(s,null,v(n,(n,a)=>(g(),u(`td`,{role:`cell`,"data-cell":e.dataset.head[a]||``,"aria-label":`${e.dataset.head[a]}: ${n}`,style:p({...O.value.tbody.tr.td.style,border:`${O.value.tbody.tr.td.border.size}px solid ${O.value.tbody.tr.td.border.color}`,backgroundColor:x(r)(O.value.tbody.tr.td.style.backgroundColor,i%2==0&&O.value.tbody.tr.td.alternateColor?O.value.tbody.tr.td.alternateOpacity*100:100),paddingTop:O.value.tbody.tr.td.padding.top+`px`,paddingRight:O.value.tbody.tr.td.padding.right+`px`,paddingBottom:O.value.tbody.tr.td.padding.bottom+`px`,paddingLeft:O.value.tbody.tr.td.padding.left+`px`,verticalAlign:`middle`}),height:`${O.value.tbody.tr.height}px`},[f(b(t.$slots.td?``:n)+` `,1),y(t.$slots,`td`,me({ref_for:!0},{td:n,rowIndex:i,colIndex:a}),void 0,!0)],12,Ee))),256))],4))),256))],512)):l(``,!0)],12,Se)):l(``,!0)],46,xe),D.value?l(``,!0):(g(),ue(x(w),{key:0,config:{type:`table`}})),O.value.userOptions.show&&D.value&&(x(M)||x(A))?(g(),ue(x(Oe),{ref:`details`,key:`user_option_${Ue.value}`,backgroundColor:O.value.style.backgroundColor,color:O.value.style.color,isPrinting:x(P),isImaging:x(Ie),uid:E.value,hasTooltip:!1,hasPdf:O.value.userOptions.buttons.pdf,hasImg:O.value.userOptions.buttons.img,hasXls:O.value.userOptions.buttons.csv,hasTable:!1,hasLabel:!1,hasAnimation:O.value.userOptions.buttons.animation,isAnimation:!F.value.showAnimation,hasFullscreen:O.value.userOptions.buttons.fullscreen,hasAltCopy:O.value.userOptions.buttons.altCopy,isFullscreen:Me.value,chartElement:ze.value,position:O.value.userOptions.position,titles:{...O.value.userOptions.buttonTitles},zIndex:3,offsetX:12,callbacks:O.value.userOptions.callbacks,printScale:O.value.userOptions.print.scale,isCursorPointer:Fe.value,onGeneratePdf:$e,onGenerateCsv:tt,onGenerateImage:x(Re),onToggleAnimation:et,onToggleFullscreen:We,onCopyAlt:nt,style:p({visibility:x(M)?x(A)?`visible`:`hidden`:`visible`})},de({_:2},[v(x(ae)(t.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionAnimation optionFullscreen optionAltCopy custom-menu-before custom-menu-after`),e=>({name:e,fn:be(n=>[y(t.$slots,e,_e(pe(x(oe)(e,n))),void 0,!0)])}))]),1032,[`backgroundColor`,`color`,`isPrinting`,`isImaging`,`uid`,`hasPdf`,`hasImg`,`hasXls`,`hasAnimation`,`isAnimation`,`hasFullscreen`,`hasAltCopy`,`isFullscreen`,`chartElement`,`position`,`titles`,`callbacks`,`printScale`,`isCursorPointer`,`onGenerateImage`,`style`])):l(``,!0),t.$slots.source?(g(),u(`div`,De,[y(t.$slots,`source`,{},void 0,!0)],512)):l(``,!0)],544))}},[[`__scopeId`,`data-v-f8c6267a`]]);export{C as n,w as t};
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.js";import{t}from"./useConfig-6jO1fkp5.js";import{D as n,Jt as r,X as i,at as a,nt as ee,zt as o}from"./lib-rPeBMZrn.js";import{n as te,t as ne}from"./useHints-C-TwxM0Y.js";import{t as re}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ie}from"./useNestedProp-DnGoh-XS.js";import{n as ae,t as oe}from"./userOptionsSlots-DYuo-E5m.js";import{t as se}from"./usePrinter-DVf3YcG5.js";import{t as ce}from"./useUserOptionState-CXlFnwPv.js";import{t as le}from"./usePrefersMotion-XLHwega2.js";import{Fragment as s,computed as c,createBlock as ue,createCommentVNode as l,createElementBlock as u,createElementVNode as d,createSlots as de,createTextVNode as f,defineAsyncComponent as fe,guardReactiveProps as pe,mergeProps as me,nextTick as he,normalizeClass as ge,normalizeProps as _e,normalizeStyle as p,onBeforeUnmount as m,onMounted as h,openBlock as g,ref as _,renderList as v,renderSlot as y,shallowRef as ve,toDisplayString as b,unref as x,useSlots as ye,watch as S,withCtx as be}from"vue";var C=/* @__PURE__ */ e({default:()=>w}),xe=[`id`],Se=[`aria-labelledby`],Ce=[`id`],we=[`height`],Te=[`id`],Ee=[`data-cell`,`aria-label`,`height`],De={key:2,ref:`source`,dir:`auto`},w=/*#__PURE__*/ re({__name:`vue-ui-carousel-table`,props:{config:{type:Object,default(){return{}}},dataset:{type:Object,default(){return{}}}},emits:[`copyAlt`],setup(e,{expose:re,emit:C}){let w=fe(()=>import(`./vue-ui-skeleton-wyvAru88.js`).then(e=>e.n)),Oe=fe(()=>import(`./UserOptions-uWHV_zPB.js`).then(e=>e.n)),{vue_ui_carousel_table:ke}=t(),Ae=le(),T=e,je=C,E=_(i()),Me=_(!1),D=_(!!T.dataset),Ne=ye();h(()=>{Pe()});let O=c({get:()=>N(),set:e=>e}),k=c(()=>O.value.debug);h(()=>{Ne[`chart-background`]&&k.value&&console.warn(`VueUiCarouselTable does not support the #chart-background slot.`)});function Pe(){o(T.dataset)?a({componentName:`VueUiCarouselTable`,type:`dataset`,debug:k.value}):((!T.dataset.head||o(T.dataset.head))&&(a({componentName:`VueUiCarouselTable`,type:`datasetAttribute`,property:`head`,debug:k.value}),D.value=!1),(!T.dataset.body||o(T.dataset.body))&&(a({componentName:`VueUiCarouselTable`,type:`datasetAttribute`,property:`body`,debug:k.value}),D.value=!1)),Ae.value&&(O.value.userOptions.buttons.animation=!1)}te({config:()=>O.value,dataset:()=>T.dataset,component:`VueUiCarouselTable`,rules:[ne.noHint]});let Fe=c(()=>O.value.userOptions.useCursorPointer),{userOptionsVisible:A,setUserOptionsVisibility:j,keepUserOptionState:M}=ce({config:O.value});function N(){return ie({userConfig:T.config,defaultConfig:ke})}S(()=>T.config,e=>{O.value=N(),A.value=!O.value.userOptions.showOnChartHover,Pe()},{deep:!0}),S(()=>T.dataset,e=>{G()},{deep:!0});let{isPrinting:P,isImaging:Ie,generatePdf:Le,generateImage:Re}=se({elementId:`carousel-table_${E.value}`,fileName:O.value.caption.text||`vue-ui-carousel-table`,options:O.value.userOptions.print}),F=_({showAnimation:O.value.animation.use}),I=_(null),ze=_(null),L=_(null),R=_(null),z=_(0),B=_(0),V=_(!1),H=_(null),U=_(null),W=_(0);function G(){H.value&&(U.value={elements:H.value.getElementsByTagName(`tr`),heights:Array.from(H.value.getElementsByTagName(`tr`)).map(e=>e.getBoundingClientRect().height)})}h(G);let Be=c(()=>!U.value||!U.value.heights.length?0:Math.max(...U.value.heights)+z.value+B.value),Ve=c(()=>T.dataset.body?O.value.tbody.tr.visible<=T.dataset.body.length?O.value.tbody.tr.visible:T.dataset.body.length:0),He=c(()=>(O.value.tbody.tr.height+O.value.tbody.tr.td.padding.top+O.value.tbody.tr.td.padding.bottom+O.value.tbody.tr.border.size*2)*Ve.value+z.value+B.value),K=_(0),q=_(null),J=_(0),Y=_(!1),Ue=_(0);h(()=>{L.value&&(z.value=L.value.getBoundingClientRect().height),R.value&&(B.value=R.value.getBoundingClientRect().height),F.value.showAnimation&&U.value&&Ge()}),h(()=>{if(I.value){let e=I.value.querySelector(`thead`),t=Array.from(H.value.querySelectorAll(`tr`));function n(){let n=e.getBoundingClientRect().bottom;t.forEach(e=>{e.getBoundingClientRect().top<n?e.style.visibility=`hidden`:e.style.visibility=`visible`})}I.value.addEventListener(`scroll`,n),n(),m(()=>{I.value.removeEventListener(`scroll`,n)})}});function We(e){Me.value=e,Ue.value+=1}function Ge(){Ae.value||!q.value&&!Y.value&&(O.value.animation.type===`scroll`?q.value=requestAnimationFrame(qe):q.value=requestAnimationFrame(Je))}function Ke(){if(!I.value)return!1;let{scrollTop:e,scrollHeight:t,clientHeight:n}=I.value;return e+n>=t}function qe(e){Y.value||(J.value||=e,e-J.value>=O.value.animation.speedMs&&(K.value+=U.value.heights[W.value],(Ke()||W.value>=U.value.heights.length)&&(K.value=0,W.value=-1),W.value+=1,I.value&&I.value.scrollTo({top:K.value,behavior:`smooth`}),J.value=e),q.value=requestAnimationFrame(qe))}function Je(e){if(Y.value)return;J.value||=e;let t=e-J.value,n=O.value.animation.speedMs/4/1e3;t>=n&&(K.value+=n,K.value>=I.value.scrollHeight-I.value.clientHeight&&(K.value=0),I.value&&I.value.scrollTo({top:K.value,behavior:`auto`}),J.value=e),q.value=requestAnimationFrame(Je)}function X(){Y.value=!0,cancelAnimationFrame(q.value),q.value=null}m(X);function Z(){Y.value&&F.value.showAnimation&&(Y.value=!1,J.value=0,Ge())}function Ye(){O.value.animation.pauseOnHover&&X()}let Q=_(null);function Xe(){X(),clearTimeout(Q.value)}function Ze(){clearTimeout(Q.value),Q.value=setTimeout(Z,1e3)}S(()=>O.value.animation.use,e=>{e?(F.value.showAnimation=!0,Z()):(F.value.showAnimation=!1,X())}),S(()=>O.value.animation.type,e=>{X(),K.value=0,W.value=0,I.value.scrollTo({top:0,behavior:`auto`}),Z()});let Qe=c(()=>O.value.responsiveBreakpoint),$=ve(null);h(()=>{$.value=new ResizeObserver(e=>{e.forEach(e=>{V.value=e.contentRect.width<Qe.value}),z.value=L.value?L.value.getBoundingClientRect().height:0,B.value=R.value?R.value.getBoundingClientRect().height:0,W.value=0,he(()=>{X(),J.value=0,K.value=0,G(),Z()})}),I.value&&$.value.observe(I.value)}),m(()=>{$.value&&$.value.disconnect()});function $e(){Le()}function et(){F.value.showAnimation=!F.value.showAnimation,F.value.showAnimation?Z():X()}function tt(e=null){he(()=>{let t=T.dataset.head.map((e,t)=>[[T.dataset.body[t]]]),r=[[O.value.caption.text],[T.dataset.head.map(e=>[e])]].concat(t),i=n(r);e?e(i):ee({csvContent:i,title:O.value.caption.text||`vue-ui-carousel-table`})})}async function nt(){je(`copyAlt`,{config:O.value,dataset:T.dataset}),O.value.userOptions.callbacks.altCopy?await Promise.resolve(O.value.userOptions.callbacks.altCopy({config:O.value,dataset:T.dataset})):console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.")}return re({pauseAnimation:X,resumeAnimation:Z,toggleAnimation:et,generateCsv:tt,generatePdf:$e,generateImage:Re,copyAlt:nt}),(t,n)=>(g(),u(`div`,{class:`vue-data-ui-component vue-ui-carousel-table`,style:{position:`relative`,overflow:`visible`},ref_key:`chartContainer`,ref:ze,onMouseenter:n[5]||=()=>x(j)(!0),onMouseleave:n[6]||=()=>x(j)(!1)},[d(`div`,{ref_key:`tableContainer`,ref:I,id:`carousel-table_${E.value}`,style:p({height:x(P)||x(Ie)?`auto`:`${Math.max(He.value,Be.value)}px`,containerType:`inline-size`,position:`relative`,overflow:`auto`,fontFamily:O.value.fontFamily}),class:ge({"vue-ui-responsive":V.value,"is-playing":O.value.scrollbar.hide||!Y.value&&O.value.scrollbar.showOnlyOnHover}),onMouseover:n[0]||=e=>Ye(),onMouseleave:n[1]||=e=>Z(),onTouchstart:n[2]||=e=>Xe(),onTouchend:n[3]||=e=>Ze(),onTouchcancel:n[4]||=e=>Ze()},[D.value?(g(),u(`table`,{key:0,class:`vue-data-ui-carousel-table`,"aria-labelledby":`carousel-caption-${E.value}`,style:p({...O.value.style,border:`${O.value.border.size}px solid ${O.value.border.color}`,width:`100%`,borderCollapse:`collapse`,backgroundColor:O.value.tbody.backgroundColor})},[d(`caption`,{ref_key:`caption`,ref:L,class:`vue-data-ui-carousel-table-caption`,id:`carousel-caption-${E.value}`,style:p({...O.value.caption.style,fontFamily:`inherit`,position:`sticky`,top:0,zIndex:2,paddingTop:O.value.caption.padding.top+`px`,paddingRight:O.value.caption.padding.right+`px`,paddingBottom:O.value.caption.padding.bottom+`px`,paddingLeft:O.value.caption.padding.left+`px`,boxShadow:V.value?O.value.thead.tr.style.boxShadow:`none`,minHeight:`36px`,display:t.$slots.caption||O.value.caption.text||O.value.userOptions.show?``:`none`})},[f(b(O.value.caption.text&&!t.$slots.caption?O.value.caption.text:``)+` `,1),y(t.$slots,`caption`,{},void 0,!0)],12,Ce),d(`thead`,{role:`rowgroup`,style:p({...O.value.thead.style,position:`sticky`,top:`${t.$slots.caption||O.value.caption.text||O.value.userOptions.show?z.value:0}px`,zIndex:1})},[d(`tr`,{ref_key:`tableRow`,ref:R,role:`row`,style:p({...O.value.thead.tr.style,border:O.value.thead.tr.border.size?`${O.value.thead.tr.border.size}px solid ${O.value.thead.tr.border.color}`:`none`,boxShadow:V.value?`none`:O.value.thead.tr.style.boxShadow}),height:`${O.value.thead.tr.height}px`},[(g(!0),u(s,null,v(e.dataset.head,(e,n)=>(g(),u(`th`,{role:`cell`,key:`th_${n}`,id:`col-${n}`,scope:`col`,style:p({...O.value.thead.tr.th.style,border:O.value.thead.tr.th.border.size?`${O.value.thead.tr.th.border.size}px solid ${O.value.thead.tr.th.border.color}`:`none`,paddingTop:O.value.thead.tr.th.padding.top+`px`,paddingRight:O.value.thead.tr.th.padding.right+`px`,paddingBottom:O.value.thead.tr.th.padding.bottom+`px`,paddingLeft:O.value.thead.tr.th.padding.left+`px`})},[f(b(t.$slots.th?``:e)+` `,1),y(t.$slots,`th`,me({ref_for:!0},{th:e,colIndex:n}),void 0,!0)],12,Te))),128))],12,we)],4),e.dataset.body&&e.dataset.head?(g(),u(`tbody`,{key:0,ref_key:`tbody`,ref:H,"aria-live":`polite`,style:{clipPath:`inset(0,0,0,0)`}},[(g(!0),u(s,null,v(e.dataset.body,(n,i)=>(g(),u(`tr`,{style:p({...O.value.tbody.tr.style,border:`${O.value.tbody.tr.border.size}px solid ${O.value.tbody.tr.border.color}`,verticalAlign:`middle`})},[(g(!0),u(s,null,v(n,(n,a)=>(g(),u(`td`,{role:`cell`,"data-cell":e.dataset.head[a]||``,"aria-label":`${e.dataset.head[a]}: ${n}`,style:p({...O.value.tbody.tr.td.style,border:`${O.value.tbody.tr.td.border.size}px solid ${O.value.tbody.tr.td.border.color}`,backgroundColor:x(r)(O.value.tbody.tr.td.style.backgroundColor,i%2==0&&O.value.tbody.tr.td.alternateColor?O.value.tbody.tr.td.alternateOpacity*100:100),paddingTop:O.value.tbody.tr.td.padding.top+`px`,paddingRight:O.value.tbody.tr.td.padding.right+`px`,paddingBottom:O.value.tbody.tr.td.padding.bottom+`px`,paddingLeft:O.value.tbody.tr.td.padding.left+`px`,verticalAlign:`middle`}),height:`${O.value.tbody.tr.height}px`},[f(b(t.$slots.td?``:n)+` `,1),y(t.$slots,`td`,me({ref_for:!0},{td:n,rowIndex:i,colIndex:a}),void 0,!0)],12,Ee))),256))],4))),256))],512)):l(``,!0)],12,Se)):l(``,!0)],46,xe),D.value?l(``,!0):(g(),ue(x(w),{key:0,config:{type:`table`}})),O.value.userOptions.show&&D.value&&(x(M)||x(A))?(g(),ue(x(Oe),{ref:`details`,key:`user_option_${Ue.value}`,backgroundColor:O.value.style.backgroundColor,color:O.value.style.color,isPrinting:x(P),isImaging:x(Ie),uid:E.value,hasTooltip:!1,hasPdf:O.value.userOptions.buttons.pdf,hasImg:O.value.userOptions.buttons.img,hasXls:O.value.userOptions.buttons.csv,hasTable:!1,hasLabel:!1,hasAnimation:O.value.userOptions.buttons.animation,isAnimation:!F.value.showAnimation,hasFullscreen:O.value.userOptions.buttons.fullscreen,hasAltCopy:O.value.userOptions.buttons.altCopy,isFullscreen:Me.value,chartElement:ze.value,position:O.value.userOptions.position,titles:{...O.value.userOptions.buttonTitles},zIndex:3,offsetX:12,callbacks:O.value.userOptions.callbacks,printScale:O.value.userOptions.print.scale,isCursorPointer:Fe.value,onGeneratePdf:$e,onGenerateCsv:tt,onGenerateImage:x(Re),onToggleAnimation:et,onToggleFullscreen:We,onCopyAlt:nt,style:p({visibility:x(M)?x(A)?`visible`:`hidden`:`visible`})},de({_:2},[v(x(ae)(t.$slots,`menuIcon optionPdf optionCsv optionImg optionSvg optionAnimation optionFullscreen optionAltCopy custom-menu-before custom-menu-after`),e=>({name:e,fn:be(n=>[y(t.$slots,e,_e(pe(x(oe)(e,n))),void 0,!0)])}))]),1032,[`backgroundColor`,`color`,`isPrinting`,`isImaging`,`uid`,`hasPdf`,`hasImg`,`hasXls`,`hasAnimation`,`isAnimation`,`hasFullscreen`,`hasAltCopy`,`isFullscreen`,`chartElement`,`position`,`titles`,`callbacks`,`printScale`,`isCursorPointer`,`onGenerateImage`,`style`])):l(``,!0),t.$slots.source?(g(),u(`div`,De,[y(t.$slots,`source`,{},void 0,!0)],512)):l(``,!0)],544))}},[[`__scopeId`,`data-v-f8c6267a`]]);export{C as n,w as t};
|