{"version":3,"file":"partial.328.js","mappings":"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","sources":["webpack:///./components/eduChart/eduChart.js"],"sourcesContent":["import { Chart } from 'chart.js/auto';\r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nexport default class EduChart {\r\n\r\n    constructor(el) {\r\n        if (!(el && el.nodeName === \"CANVAS\")) {\r\n            return;\r\n        }\r\n\r\n        const data = el.getAttribute('data-chart-values');\r\n        if (!data) {\r\n            return;\r\n        }\r\n\r\n        this.container = el;\r\n        this.data = JSON.parse(data);\r\n\r\n        this.init();\r\n    }\r\n\r\n    init() {\r\n\r\n        window.addEventListener('load', () => {\r\n            const context = this.container.getContext('2d');\r\n            const labels = this.data.map(c => c.label);\r\n\r\n            // Register the plugin to all charts:\r\n            Chart.register(ChartDataLabels);\r\n\r\n            Chart.register({\r\n                id: 'customLabelsPlugin', // L�gg till ett unikt id f�r pluginet\r\n                afterDraw: function (chart) {\r\n                    const { ctx } = chart;\r\n                    let i = 0;\r\n\r\n                    for (const label of labels) {\r\n                        const meta = chart.getDatasetMeta(0).data[i++];\r\n                        const x = chart.scales.x.getPixelForValue(0); // X-axelns startposition\r\n                        const y = meta.y - 24; // Centrera etiketten i h�jdled p� stapeln\r\n\r\n                        ctx.fillStyle = '#152938'; // F�rg p� texten\r\n                        ctx.font = '500 14px Gesta'; // Stil och storlek p� texten\r\n                        ctx.textAlign = 'start';\r\n                        ctx.textBaseline = 'middle';\r\n\r\n                        ctx.fillText(label.toUpperCase(), x, y);\r\n                    }\r\n                },\r\n                beforeDatasetsDraw: function (chart) {\r\n                    const { ctx, data, chartArea: { left, right }, scales: { y } } = chart\r\n                    ctx.save();\r\n\r\n                    const dataset = data.datasets[0];\r\n                    const cornerRadius = 20;\r\n                    const halfBarHeight = dataset.barThickness * 0.5;\r\n\r\n                    for (let i = 0; i < dataset.data.length; i++) {\r\n                        const yPos = y.getPixelForValue(i);\r\n                        ctx.beginPath();\r\n                        ctx.fillStyle = 'rgba(71, 109, 136, 0.14)';\r\n                        ctx.moveTo(left + cornerRadius, yPos - halfBarHeight);\r\n                        ctx.arcTo(left, yPos - halfBarHeight, left, yPos + halfBarHeight, cornerRadius);\r\n                        ctx.arcTo(left, yPos + halfBarHeight, right, yPos + halfBarHeight, cornerRadius);\r\n                        ctx.arcTo(right, yPos + halfBarHeight, right, yPos - halfBarHeight, cornerRadius);\r\n                        ctx.arcTo(right, yPos - halfBarHeight, left, yPos - halfBarHeight, cornerRadius);\r\n                        ctx.closePath();\r\n                        ctx.fill();\r\n                    }\r\n                }\r\n            });\r\n\r\n            new Chart(context, {\r\n                type: 'bar',\r\n                data: {\r\n                    labels,\r\n                    datasets: [{\r\n                        data: this.data.map(c => c.value),\r\n                        backgroundColor: ['#476D88'],\r\n                        borderColor: [\"rgba(71, 109, 136, 0.14)\"],\r\n                        barThickness: 30,\r\n                        barThickness: 30,\r\n                        borderWidth: 0,\r\n                        borderSkipped: false,\r\n                        borderRadius: 50,\r\n                    }]\r\n                },\r\n                options: {\r\n                    indexAxis: 'y',\r\n                    responsive: true,\r\n                    maintainAspectRatio: false,\r\n                    animation: false,\r\n                    plugins: {\r\n                        tooltip: {\r\n                            enabled: false\r\n                        },\r\n                        legend: {\r\n                            display: false,\r\n                        },\r\n                        datalabels: {\r\n                            color: '#152938',\r\n                            anchor: 'end',\r\n                            align: 'end',\r\n                            offset: 2,\r\n                            formatter: function (value) {\r\n                                return value.toFixed(2).replace(/[.,]?0*$/, '') + '%';\r\n                            },\r\n                            display: 'auto',\r\n                            borderRadius: [50, 50, 50, 50],\r\n                            borderWidth: 1,\r\n                            font: {\r\n                                size: 14,\r\n                                family: \"Gesta\",\r\n                                weight: 500\r\n\r\n                            },\r\n                            padding: {\r\n                                top: .5, \r\n                                bottom: .5\r\n                            },\r\n                            clip: true,\r\n                            borderSkipped: 'left',\r\n                            position: 'end'\r\n                        },\r\n                    },\r\n                    scales: {\r\n                        x: {\r\n                            beginAtZero: true,\r\n                            max: 100,\r\n                            display: false,\r\n                        },\r\n                        y: {\r\n                            display: false,\r\n                        },\r\n                    },\r\n                },\r\n\r\n                plugins: [ChartDataLabels]\r\n            });\r\n\r\n            //Add dynamic height for container\r\n            const chartHeight = 250;\r\n            const totalBars = labels.length;\r\n            const chartContainer = document.querySelector(\".chart-container\");\r\n\r\n            if (chartContainer && totalBars > 4) {\r\n                const newHeight = (totalBars - 4) * 63 + chartHeight;\r\n                chartContainer.style.height = newHeight + 'px';\r\n            }\r\n        });\r\n    }\r\n}\r\n"],"names":["EduChart","el","_classCallCheck","nodeName","data","getAttribute","this","container","JSON","parse","init","key","value","_this","window","addEventListener","context","getContext","labels","map","c","label","Chart","register","ChartDataLabels","id","afterDraw","chart","_step","ctx","i","_iterator","_createForOfIteratorHelper","s","n","done","meta","getDatasetMeta","x","scales","getPixelForValue","y","fillStyle","font","textAlign","textBaseline","fillText","toUpperCase","err","e","f","beforeDatasetsDraw","_chart$chartArea","chartArea","left","right","save","dataset","datasets","halfBarHeight","barThickness","length","yPos","beginPath","moveTo","arcTo","closePath","fill","type","_defineProperty","backgroundColor","borderColor","options","indexAxis","responsive","maintainAspectRatio","animation","plugins","tooltip","enabled","legend","display","datalabels","color","anchor","align","offset","formatter","toFixed","replace","borderRadius","borderWidth","size","family","weight","padding","top","bottom","clip","borderSkipped","position","beginAtZero","max","totalBars","chartContainer","document","querySelector","newHeight","style","height"],"sourceRoot":""}