import{C as L}from"./chart.js-Cn7y2HHJ.js";import{j as i,e as O,r as S}from"./lodash-es-DsIhJvTV.js";import{d as $,r as q,s as B,w as g,e as N,f as H,h as P}from"./@vue-x5f3CpQC.js";var V=Object.defineProperty,W=Object.defineProperties,z=Object.getOwnPropertyDescriptors,w=Object.getOwnPropertySymbols,M=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable,j=(r,a,n)=>a in r?V(r,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[a]=n,k=(r,a)=>{for(var n in a||(a={}))M.call(a,n)&&j(r,n,a[n]);if(w)for(var n of w(a))Z.call(a,n)&&j(r,n,a[n]);return r},x=(r,a)=>W(r,z(a));function G(r){return(r.match(/[a-zA-Z0-9]+/g)||[]).map(a=>`${a.charAt(0).toUpperCase()}${a.slice(1)}`).join("")}var o=(r,a)=>{const n={chartData:{type:Object,required:!0},options:{type:Object,required:!1},chartId:{default:r,type:String},width:{default:400,type:Number},height:{default:400,type:Number},cssClasses:{type:String,default:""},styles:{type:Object},plugins:{type:Array,default:()=>[]},onLabelsUpdate:{type:Function},onChartUpdate:{type:Function},onChartDestroy:{type:Function},onChartRender:{type:Function}},y=G(r);return $({name:y,props:n,emits:{"labels:update":()=>!0,"chart:update":e=>!0,"chart:destroy":()=>!0,"chart:render":e=>!0},setup(e,{emit:h,expose:D}){const f=q(null),b=`${e.chartId}`;let t=B(null);g(()=>e.chartData,I,{deep:!0}),g(()=>e.options,d=>{t.value&&d&&(t.value.options=i(d),v())},{deep:!0});function I(d){if(t.value){let s=t.value;O(d.labels,t.value.data.labels)||(s.data.labels=d.labels,U()),O(d.datasets,t.value.data.datasets)||d.datasets.forEach((c,u)=>{var m,C;if(S(c))s.data.datasets=[];else{const A=i(s.data),F=Object.keys((C=(m=A.datasets)==null?void 0:m[u])!=null?C:{}),K=Object.keys(c);F.filter(l=>l!=="_meta"&&K.indexOf(l)===-1).forEach(l=>{s.data.datasets[u]&&delete s.data.datasets[u][l]});for(const l in c){const _=i(c[l]);s.data.datasets[u]||(s.data.datasets[u]={}),c.hasOwnProperty(l)&&_!=null&&s&&(s.data.datasets[u][l]=_)}}}),v()}else t.value&&R(),p()}function p(){f.value?(t.value=new L(f.value,{data:i(e.chartData),type:a,options:i(e.options),plugins:e.plugins}),E()):console.error(`Error on component ${y}, canvas cannot be rendered. Check if the render appends server-side`)}function U(){h("labels:update"),e.onLabelsUpdate&&e.onLabelsUpdate()}function E(){t.value&&(h("chart:render",t.value),e.onChartRender&&e.onChartRender(t.value))}function v(){t.value&&(t.value.update(),h("chart:update",t.value),e.onChartUpdate&&e.onChartUpdate(t.value))}function R(){t.value&&t.value.destroy(),h("chart:destroy"),e.onChartDestroy&&e.onChartDestroy()}return N(p),H(()=>{t.value&&t.value.destroy()}),D({canvasRef:f,renderChart:p,chartInstance:t,canvasId:b,update:v}),()=>P("div",{style:x(k({maxWidth:"100%"},e.styles),{position:"relative"}),class:e.cssClasses},[P("canvas",{style:{maxWidth:"100%",maxHeight:"100%"},id:b,width:e.width,height:e.height,ref:f})])}})},ee=o("bar-chart","bar");o("doughnut-chart","doughnut");o("line-chart","line");o("pie-chart","pie");o("polar-chart","polarArea");o("radar-chart","radar");o("bubble-chart","bubble");o("scatter-chart","scatter");export{ee as B};
