{"version":3,"file":"index.mjs","sources":["../../src/chart/BaseChart.vue","../../src/chart/Chart.vue","../../src/chart/Chart.vue?vue&type=template&id=f9908118&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ChartStyle from 'primevue/chart/style';\n\nexport default {\n    name: 'BaseChart',\n    extends: BaseComponent,\n    props: {\n        type: String,\n        data: null,\n        options: null,\n        plugins: null,\n        width: {\n            type: Number,\n            default: 300\n        },\n        height: {\n            type: Number,\n            default: 150\n        },\n        canvasProps: {\n            type: null,\n            default: null\n        }\n    },\n    style: ChartStyle,\n    provide() {\n        return {\n            $pcChart: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('root')\" :style=\"sx('root')\" v-bind=\"ptmi('root')\">\n        <canvas ref=\"canvas\" :width=\"width\" :height=\"height\" @click=\"onCanvasClick($event)\" v-bind=\"{ ...canvasProps, ...ptm('canvas') }\"></canvas>\n    </div>\n</template>\n\n<script>\nimport BaseChart from './BaseChart.vue';\n\nexport default {\n    name: 'Chart',\n    extends: BaseChart,\n    inheritAttrs: false,\n    emits: ['select', 'loaded'],\n    chart: null,\n    watch: {\n        /*\n         * Use deep watch to enable triggering watch for changes within structure\n         * otherwise the entire data object needs to be replaced to trigger watch\n         */\n        data: {\n            handler() {\n                this.reinit();\n            },\n            deep: true\n        },\n        type() {\n            this.reinit();\n        },\n        options() {\n            this.reinit();\n        }\n    },\n    mounted() {\n        this.initChart();\n    },\n    beforeUnmount() {\n        if (this.chart) {\n            this.chart.destroy();\n            this.chart = null;\n        }\n    },\n    methods: {\n        initChart() {\n            import('chart.js/auto').then((module) => {\n                if (this.chart) {\n                    this.chart.destroy();\n                    this.chart = null;\n                }\n\n                if (module && module.default) {\n                    this.chart = new module.default(this.$refs.canvas, {\n                        type: this.type,\n                        data: this.data,\n                        options: this.options,\n                        plugins: this.plugins\n                    });\n                }\n\n                this.$emit('loaded', this.chart);\n            });\n        },\n        getCanvas() {\n            return this.$canvas;\n        },\n        getChart() {\n            return this.chart;\n        },\n        getBase64Image() {\n            return this.chart.toBase64Image();\n        },\n        refresh() {\n            if (this.chart) {\n                this.chart.update();\n            }\n        },\n        reinit() {\n            this.initChart();\n        },\n        onCanvasClick(event) {\n            if (this.chart) {\n                const element = this.chart.getElementsAtEventForMode(event, 'nearest', { intersect: true }, false);\n                const dataset = this.chart.getElementsAtEventForMode(event, 'dataset', { intersect: true }, false);\n\n                if (element && element[0] && dataset) {\n                    this.$emit('select', { originalEvent: event, element: element[0], dataset: dataset });\n                }\n            }\n        },\n        generateLegend() {\n            if (this.chart) {\n                return this.chart.generateLegend();\n            }\n        }\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('root')\" :style=\"sx('root')\" v-bind=\"ptmi('root')\">\n        <canvas ref=\"canvas\" :width=\"width\" :height=\"height\" @click=\"onCanvasClick($event)\" v-bind=\"{ ...canvasProps, ...ptm('canvas') }\"></canvas>\n    </div>\n</template>\n\n<script>\nimport BaseChart from './BaseChart.vue';\n\nexport default {\n    name: 'Chart',\n    extends: BaseChart,\n    inheritAttrs: false,\n    emits: ['select', 'loaded'],\n    chart: null,\n    watch: {\n        /*\n         * Use deep watch to enable triggering watch for changes within structure\n         * otherwise the entire data object needs to be replaced to trigger watch\n         */\n        data: {\n            handler() {\n                this.reinit();\n            },\n            deep: true\n        },\n        type() {\n            this.reinit();\n        },\n        options() {\n            this.reinit();\n        }\n    },\n    mounted() {\n        this.initChart();\n    },\n    beforeUnmount() {\n        if (this.chart) {\n            this.chart.destroy();\n            this.chart = null;\n        }\n    },\n    methods: {\n        initChart() {\n            import('chart.js/auto').then((module) => {\n                if (this.chart) {\n                    this.chart.destroy();\n                    this.chart = null;\n                }\n\n                if (module && module.default) {\n                    this.chart = new module.default(this.$refs.canvas, {\n                        type: this.type,\n                        data: this.data,\n                        options: this.options,\n                        plugins: this.plugins\n                    });\n                }\n\n                this.$emit('loaded', this.chart);\n            });\n        },\n        getCanvas() {\n            return this.$canvas;\n        },\n        getChart() {\n            return this.chart;\n        },\n        getBase64Image() {\n            return this.chart.toBase64Image();\n        },\n        refresh() {\n            if (this.chart) {\n                this.chart.update();\n            }\n        },\n        reinit() {\n            this.initChart();\n        },\n        onCanvasClick(event) {\n            if (this.chart) {\n                const element = this.chart.getElementsAtEventForMode(event, 'nearest', { intersect: true }, false);\n                const dataset = this.chart.getElementsAtEventForMode(event, 'dataset', { intersect: true }, false);\n\n                if (element && element[0] && dataset) {\n                    this.$emit('select', { originalEvent: event, element: element[0], dataset: dataset });\n                }\n            }\n        },\n        generateLegend() {\n            if (this.chart) {\n                return this.chart.generateLegend();\n            }\n        }\n    }\n};\n</script>\n"],"names":["name","BaseComponent","props","type","String","data","options","plugins","width","Number","height","canvasProps","style","ChartStyle","provide","$pcChart","$parentInstance","BaseChart","inheritAttrs","emits","chart","watch","handler","reinit","deep","mounted","initChart","beforeUnmount","destroy","methods","_this","then","module","$refs","canvas","$emit","getCanvas","$canvas","getChart","getBase64Image","toBase64Image","refresh","update","onCanvasClick","event","element","getElementsAtEventForMode","intersect","dataset","originalEvent","generateLegend","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","sx","ptmi","_createElementVNode","ref","onClick","_cache","$event","$options","_objectSpread","ptm","_hoisted_1"],"mappings":"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"}