{"version":3,"file":"static/js/58.ae36e7ea.chunk.js","mappings":"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","sources":["../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx"],"sourcesContent":["import type { MouseEvent } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nimport type { ForwardedRef } from './types.js';\n\nconst defaultDatasetIdKey = 'label';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n const options = chart.options;\n\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[],\n datasetIdKey = defaultDatasetIdKey\n) {\n const addedDatasets: ChartDataset[] = [];\n\n currentData.datasets = nextDatasets.map(\n (nextDataset: Record) => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n (dataset: Record) =>\n dataset[datasetIdKey] === nextDataset[datasetIdKey]\n );\n\n // There is no original to update, so simply add new one\n if (\n !currentDataset ||\n !nextDataset.data ||\n addedDatasets.includes(currentDataset)\n ) {\n return { ...nextDataset } as ChartDataset;\n }\n\n addedDatasets.push(currentDataset);\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n }\n );\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData, datasetIdKey = defaultDatasetIdKey) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n\n return nextData;\n}\n\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getDatasetAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementsAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n );\n}\n","import React, { useEffect, useRef, forwardRef } from 'react';\nimport { Chart as ChartJS } from 'chart.js';\nimport type { ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ForwardedRef, ChartProps, BaseChartComponent } from './types.js';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils.js';\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n props: ChartProps,\n ref: ForwardedRef>\n) {\n const {\n height = 150,\n width = 300,\n redraw = false,\n datasetIdKey,\n type,\n data,\n options,\n plugins = [],\n fallbackContent,\n updateMode,\n ...canvasProps\n } = props as ChartProps;\n const canvasRef = useRef(null);\n const chartRef = useRef();\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data, datasetIdKey),\n options: options && { ...options },\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n destroyChart();\n setTimeout(renderChart);\n }, [type]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as BaseChartComponent;\n","import React, { forwardRef } from 'react';\nimport {\n Chart as ChartJS,\n LineController,\n BarController,\n RadarController,\n DoughnutController,\n PolarAreaController,\n BubbleController,\n PieController,\n ScatterController,\n} from 'chart.js';\nimport type { ChartType, ChartComponentLike } from 'chart.js';\n\nimport type {\n ChartProps,\n ChartJSOrUndefined,\n TypedChartComponent,\n} from './types.js';\nimport { Chart } from './chart.js';\n\nfunction createTypedChart(\n type: T,\n registerables: ChartComponentLike\n) {\n ChartJS.register(registerables);\n\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = /* #__PURE__ */ createTypedChart('line', LineController);\n\nexport const Bar = /* #__PURE__ */ createTypedChart('bar', BarController);\n\nexport const Radar = /* #__PURE__ */ createTypedChart('radar', RadarController);\n\nexport const Doughnut = /* #__PURE__ */ createTypedChart(\n 'doughnut',\n DoughnutController\n);\n\nexport const PolarArea = /* #__PURE__ */ createTypedChart(\n 'polarArea',\n PolarAreaController\n);\n\nexport const Bubble = /* #__PURE__ */ createTypedChart(\n 'bubble',\n BubbleController\n);\n\nexport const Pie = /* #__PURE__ */ createTypedChart('pie', PieController);\n\nexport const Scatter = /* #__PURE__ */ createTypedChart(\n 'scatter',\n ScatterController\n);\n"],"names":["defaultDatasetIdKey","reforwardRef","ref","value","current","setLabels","currentData","nextLabels","labels","setDatasets","nextDatasets","datasetIdKey","arguments","length","addedDatasets","datasets","map","nextDataset","currentDataset","find","dataset","data","includes","push","Object","assign","_objectSpread","cloneData","nextData","getDatasetAtEvent","chart","event","getElementsAtEventForMode","nativeEvent","intersect","getElementAtEvent","getElementsAtEvent","ChartComponent","props","height","width","redraw","type","options","plugins","fallbackContent","updateMode","canvasProps","_objectWithoutProperties","_excluded","canvasRef","useRef","chartRef","renderChart","Chart$1","destroyChart","destroy","useEffect","nextOptions","setOptions","config","setTimeout","update","React","role","Chart","forwardRef","createTypedChart","registerables","register","Line","LineController","Bar","BarController","Radar","RadarController","Doughnut","DoughnutController","PolarArea","PolarAreaController","Bubble","BubbleController","Pie","PieController","Scatter","ScatterController"],"sourceRoot":""}