import ChartDataLabels from 'chartjs-plugin-datalabels'; import Chart from 'chart.js/auto'; Chart.register(ChartDataLabels); window.Chart = Chart; window.filamentChartJsPlugins ??= []; if (!window.filamentChartJsPlugins.includes(ChartDataLabels)) { window.filamentChartJsPlugins.push(ChartDataLabels); } // window.filamentChartJsPlugins.push(ChartDataLabels); // Chart.defaults.plugins.datalabels = { // anchor: 'end', // align: 'right', // color: '#000', // font: { // weight: 'bold', // size: 11, // }, // formatter: (value) => `${value} min`, // backgroundColor: function (context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? 'rgba(40, 167, 69, 0.1)' : 'transparent'; // }, // }; // Set global datalabel options // ChartDataLabels.defaults.anchor = 'end'; // or 'start', 'center', etc. // ChartDataLabels.defaults.align = 'right'; // or 'left', 'top', 'bottom', etc. // // // Conditionally set backgroundColor // ChartDataLabels.defaults.backgroundColor = function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? 'rgba(40, 167, 69, 0.1)' : 'transparent'; // }; // // // Conditionally set borderRadius // ChartDataLabels.defaults.borderRadius = function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? 8 : 0; // }; // Conditionally set padding // ChartDataLabels.defaults.padding = function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? 6 : 0; // }; // // // Conditionally set color // ChartDataLabels.defaults.color = function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? '#28a745' : 'transparent'; // }; // // Conditionally set font // ChartDataLabels.defaults.font = function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? { weight: 'bold', size: 14 } : { size: 0 }; // }; // ChartDataLabels.defaults.formatter = function(value, context) { // if (Number(value) === 0){ // return ''; // } // return 'Count: ' + value; // }; // const ctx = document.getElementById('hourly-production'); // if (ctx && window.hourlyProductionData && window.hourlyProductionData.labels.length) // { // new Chart(ctx.getContext('2d'), { // type: 'line', // data: window.hourlyProductionData, // options: { // plugins: { // datalabels: { // anchor: 'end', // align: 'right', // backgroundColor: function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? 'rgba(40, 167, 69, 0.1)' : 'transparent'; // }, // borderRadius: function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? 8 : 0; // }, // padding: function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? 6 : 0; // }, // color: function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? '#28a745' : 'transparent'; // }, // font: function(context) { // const value = context.dataset.data[context.dataIndex]; // return Number(value) !== 0 ? { weight: 'bold', size: 14 } : { size: 0 }; // }, // formatter: function(value, context) { // if (Number(value) === 0){ // return ''; // } // return 'Count: ' + value; // } // } // } // }, // plugins: [ChartDataLabels] // }); // } // else { // console.log('No data available for the chart.'); // }