{"version":3,"file":"chart_actions_controller-tvRXCKdq.js","sources":["../../../app/javascript/entrypoints/controllers/chart_actions_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\";\n\nimport { Chart } from \"chart.js\";\nimport print from \"print-js\";\n\nimport { get } from \"@rails/request.js\";\n\nexport default class extends Controller {\n toggleLabels = (event) => {\n const chart = Chart.getChart(\"canvas-element\");\n let toggleState = false;\n let updatedState = false;\n\n chart.data.datasets.forEach((label, index) => {\n label.datalabels = {\n ...label.datalabels,\n display: !label.datalabels.display,\n };\n\n if (index == 0 && !updatedState) {\n toggleState = label.datalabels.display;\n updatedState = true;\n\n let url = `${event.params.path}?show_values=${toggleState}&num_of_values=${event.params.numOfValues}&tracking=${event.params.tracking}`;\n\n const urlParams = new URLSearchParams(window.location.search);\n const startDate = urlParams.get(\"start_date\");\n const endDate = urlParams.get(\"end_date\");\n\n if (startDate && endDate) {\n url += `&start_date=${startDate}&end_date=${endDate}`;\n }\n\n get(url, {\n responseKind: \"turbo-stream\",\n });\n }\n });\n\n chart.update();\n\n const printButton = document.getElementById(\"print-button\");\n\n if (printButton) {\n const links = printButton.querySelectorAll(\"a\");\n\n links.forEach((link) => {\n const url = new URL(link.href);\n url.searchParams.set(\"show_values\", toggleState);\n link.href = url.toString();\n });\n }\n };\n\n toggleGroupLabels = (event) => {\n const canvases = document.querySelectorAll(\"canvas\");\n let toggleState = false;\n let updatedState = false;\n\n let baseUrl = event.params.path;\n\n // get start and end date from the url params\n const urlParams = new URLSearchParams(window.location.search);\n const startDate = urlParams.get(\"start_date\");\n const endDate = urlParams.get(\"end_date\");\n\n canvases.forEach((canvas, index) => {\n const chart = Chart.getChart(canvas.id);\n\n chart.data.datasets.forEach((label) => {\n label.datalabels = {\n ...label.datalabels,\n display: !label.datalabels.display,\n };\n\n if (index == 0 && !updatedState) {\n toggleState = label.datalabels.display;\n updatedState = true;\n get(\n `${baseUrl}?show_values=${toggleState}&num_of_values=${event.params.numOfValues}&tracking=${event.params.tracking}&start_date=${startDate}&end_date=${endDate}`,\n {\n responseKind: \"turbo-stream\",\n }\n );\n }\n });\n\n chart.update();\n });\n };\n\n triggerPrint = () => {\n const canvasContainer = document.getElementById(\"chart-container\");\n\n const chart = Chart.getChart(\"canvas-element\");\n const previousLineWidth = chart.options.elements.line.borderWidth;\n const previousPointRadius = chart.options.elements.point.radius;\n const previousFontSize = chart.options.scales.y.ticks.font.size;\n const previousYFontSize = chart.options.scales.y.ticks.font.size;\n const previousXFontSize = chart.options.scales.x.ticks.font.size;\n\n chart.options.elements.line.borderWidth = 10;\n chart.options.elements.point.radius = 9;\n chart.options.scales.y.ticks.font.size = 24;\n chart.options.scales.x.ticks.font.size = 24;\n\n const previousDatasets = chart.data.datasets;\n\n chart.data.datasets = chart.data.datasets.map((dataset) => {\n return {\n ...dataset,\n datalabels: {\n ...dataset.datalabels,\n offset: 20,\n font: {\n ...dataset.datalabels.font,\n size: 24,\n },\n },\n };\n });\n\n chart.update(\"none\");\n\n setTimeout(() => {\n print({\n printable: Chart.getChart(\"canvas-element\").canvas.toDataURL(\n \"image/png\",\n 1.0\n ),\n style: \"@page { size: auto landscape }\",\n type: \"image\",\n header: `

${canvasContainer.getAttribute(\n \"data-statistic-name\"\n )}

${canvasContainer.getAttribute(\n \"data-statistic-description\"\n )}
`,\n onPrintDialogClose: () => {\n chart.options.elements.line.borderWidth = previousLineWidth;\n chart.options.elements.point.radius = previousPointRadius;\n\n chart.options.scales.y.ticks.font.size = previousYFontSize;\n chart.options.scales.x.ticks.font.size = previousXFontSize;\n\n chart.data.datasets = previousDatasets;\n\n chart.update(\"none\");\n },\n });\n }, [500]);\n };\n}\n"],"names":["chart_actions_controller","Controller","__publicField","event","chart","Chart","toggleState","updatedState","label","index","url","urlParams","startDate","endDate","get","printButton","link","canvases","baseUrl","canvas","canvasContainer","previousLineWidth","previousPointRadius","previousYFontSize","previousXFontSize","previousDatasets","dataset","print"],"mappings":"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"}