{"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":""}