Datalabels issue with resizeDelay
HTML
<div id="left" class="panel">
<canvas id="chart-dl"></canvas>
</div>
<div id="resizer" class="resizer"></div>
<div id="right" class="panel">
<canvas id="chart"></canvas>
</div>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0/dist/chartjs-plugin-datalabels.min.js"></script>
CSS
body {
margin: 0;
height: 100vh;
display: flex;
overflow: hidden;
font-family: sans-serif;
}
.panel {
flex: 1;
padding: 10px;
box-sizing: border-box;
width: 100%;
height: 100%;
overflow: hidden;
}
.resizer {
width: 6px;
background: #ccc;
cursor: col-resize;
}
JavaScript
const left = document.getElementById("left");
const right = document.getElementById("right");
const resizer = document.getElementById("resizer");
let dragging = false;
resizer.addEventListener("mousedown", () => {
dragging = true;
document.body.style.cursor = "col-resize";
});
document.addEventListener("mouseup", () => {
dragging = false;
document.body.style.cursor = "default";
});
document.addEventListener("mousemove", (e) => {
if (!dragging) return;
const offset = e.clientX;
const total = window.innerWidth;
const leftWidth = Math.max(100, Math.min(offset, total - 100));
left.style.flex = `0 0 ${leftWidth}px`;
right.style.flex = `1 1 auto`;
});
new Chart(document.getElementById("chart"), {
type: "line",
data: {
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
datasets: [
{
label: "Sample Data",
data: [10, 20, 15, 30, 25, 40],
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
title: {
display: true,
text: 'Chart without issue'
}
}
},
plugins: [ChartDataLabels]
});
new Chart(document.getElementById("chart-dl"), {
type: "line",
data: {
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
datasets: [
{
label: "Sample Data",
data: [10, 20, 15, 30, 25, 40],
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
resizeDelay: 100,
plugins: {
title: {
display: true,
text: 'Chart with issue'
}
}
},
plugins: [ChartDataLabels]
});