{"version":3,"file":"donut-DiDiCQPE.js","sources":["../assets/elementor/js/apex-chart/DonutChart.js"],"sourcesContent":["import GraphinaApexChartBase from './GraphinaApexChartBase';\n\n// Child class specifically for Donut Charts\nexport default class DonutChart extends GraphinaApexChartBase {\n    constructor() {\n        super();\n        this.observer = {}; // For IntersectionObserver\n    }\n    \n\n    // Setup handlers for Donut chart type\n    setUpChartsHandler() {\n        this.chartHandlers = {\n            donut: (element) => this.observeChartElement(element, 'donut'),\n        };\n    }\n\n    applyDataLabelFormatter(chartOptions,extraData,forminatorPercentage=false){\n        let datalabelPreFix = extraData.chart_datalabel_prefix ?? '';\n        let datalabelPostFix = extraData.chart_datalabel_postfix ?? '';\n        if (!chartOptions.dataLabels) {\n            chartOptions.dataLabels = {}; // Initialize dataLabels if it doesn't exist\n        } \n        if(extraData.chart_data_label_pointer){\n            chartOptions.plotOptions.pie.donut.labels.total.formatter = (w) => {\n                let total =   w.globals.seriesTotals.reduce((a, b) => {\n                    return a + b\n                }, 0) ;\n                total = this.formatNumber(total, extraData.chart_datalabel_decimals_in_float);\n                return datalabelPreFix + total + datalabelPostFix;\n            }\n            chartOptions.plotOptions.pie.donut.labels.value.formatter = (val) => {\n                // Get the total sum of all values in the series\n                val = this.formatNumber(val, extraData.chart_datalabel_decimals_in_float);\n                return datalabelPreFix + val + datalabelPostFix;\n            }\n            chartOptions.tooltip.y = {\n                formatter : (val ) => {\n                    return datalabelPreFix + this.formatNumber(val, extraData.chart_datalabel_decimals_in_float) + datalabelPostFix\n                }\n            };\n                \n        }else{\n            chartOptions.plotOptions.pie.donut.labels.value.formatter = (val) => {\n                // Get the total sum of all values in the series\n                val = new Intl.NumberFormat(window.gcfe_public_localize.locale_with_hyphen, {\n                    minimumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                    maximumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                }).format(val);\n                return datalabelPreFix + val + datalabelPostFix;\n            }\n            chartOptions.plotOptions.pie.donut.labels.total.formatter = (w) => {\n                // Get the total sum of all values in the series\n                let total =   w.globals.seriesTotals.reduce((a, b) => {\n                    return a + b\n                }, 0) ;\n                total = new Intl.NumberFormat(window.gcfe_public_localize.locale_with_hyphen, {\n                    minimumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                    maximumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                }).format(total);\n                return datalabelPreFix + total + datalabelPostFix;\n            };\n            chartOptions.tooltip.y = {\n                formatter : (val ) => {\n                    return datalabelPreFix + new Intl.NumberFormat(window.gcfe_public_localize.locale_with_hyphen, {\n                        minimumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                        maximumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                    }).format(val) + datalabelPostFix;\n                }\n            }\n        }\n        if(chartOptions.dataLabels){\n            chartOptions.dataLabels.formatter = (val,opts) => {\n                if(forminatorPercentage){\n                    let totals = opts.w.globals.seriesTotals.reduce((a, b) => {\n                        console.log(totals);\n                        return  a + b;\n                    }, 0)\n                    val =  new Intl.NumberFormat(window.gcfe_public_localize.locale_with_hyphen, {\n                        minimumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                        maximumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                    }).format(val/totals * 100)\n                }\n                if(extraData.chart_datalabels_format_showlabel){\n                    let label = opts.w.globals.labels[opts.seriesIndex];\n                    return label + \"-\" + datalabelPreFix + new Intl.NumberFormat(window.gcfe_public_localize.locale_with_hyphen, {\n                        minimumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                        maximumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                    }).format(val) + datalabelPostFix ;\n                }\n                return datalabelPreFix + new Intl.NumberFormat(window.gcfe_public_localize.locale_with_hyphen, {\n                    minimumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                    maximumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                }).format(val) + \"%\"  + datalabelPostFix ;\n            }\n            if ( extraData.chart_datalabels_format_showValue) {\n                chartOptions.dataLabels.formatter = (val, opts) => {\n                    val = opts.w.globals.series[opts.seriesIndex]; \n                    if(extraData.chart_number_format_commas && !extraData.chart_data_label_pointer){\n                        val = new Intl.NumberFormat(window.gcfe_public_localize.locale_with_hyphen, {\n                            minimumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                            maximumFractionDigits: extraData.chart_datalabel_decimals_in_float,\n                        }).format(val);\n                    }\n                    if (extraData.chart_data_label_pointer) {\n                        return datalabelPreFix + this.formatNumber(val, extraData.chart_datalabel_decimals_in_float) + datalabelPostFix;\n                    }\n                    if(extraData.chart_datalabels_format_showlabel){\n                        let label = opts.w.globals.labels[opts.seriesIndex];\n                        return label + \"-\" + datalabelPreFix + val + datalabelPostFix;\n                    }\n                    return datalabelPreFix + val + datalabelPostFix;\n                };\n            }\n        }\n    \n    }\n    \n    getChartOptions(finalChartOptions, chartType, extraData, responsive_options, elementId) {\n        if (chartType === 'donut') {\n            finalChartOptions.labels = finalChartOptions.xaxis.categories\n            finalChartOptions.responsive = responsive_options\n        }\n        return finalChartOptions;\n    }\n}\n\n// Initialize DonutChart\nnew DonutChart();\n"],"names":["DonutChart","GraphinaApexChartBase","element","chartOptions","extraData","forminatorPercentage","datalabelPreFix","datalabelPostFix","w","total","a","b","val","opts","totals","finalChartOptions","chartType","responsive_options","elementId"],"mappings":"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"}