'use strict';
|
|
|
|
/* Chart.js docs: https://www.chartjs.org/ */
|
|
|
|
window.chartColors = {
|
|
green: '#75c181',
|
|
gray: '#a9b5c9',
|
|
text: '#252930',
|
|
border: '#e7e9ed'
|
|
};
|
|
|
|
/* Random number generator for demo purpose */
|
|
var randomDataPoint = function(){ return Math.round(Math.random()*10000)};
|
|
|
|
|
|
//Chart.js Line Chart Example
|
|
|
|
var lineChartConfig = {
|
|
type: 'line',
|
|
|
|
data: {
|
|
labels: ['Day 1', 'Day 2', 'Day 3', 'Day 4', 'Day 5', 'Day 6', 'Day 7'],
|
|
|
|
datasets: [{
|
|
label: 'Current week',
|
|
fill: false,
|
|
backgroundColor: window.chartColors.green,
|
|
borderColor: window.chartColors.green,
|
|
data: [
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint()
|
|
],
|
|
}, {
|
|
label: 'Previous week',
|
|
borderDash: [3, 5],
|
|
backgroundColor: window.chartColors.gray,
|
|
borderColor: window.chartColors.gray,
|
|
|
|
data: [
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint(),
|
|
randomDataPoint()
|
|
],
|
|
fill: false,
|
|
}]
|
|
},
|
|
options: {
|
|
responsive: true,
|
|
aspectRatio: 1.5,
|
|
|
|
legend: {
|
|
display: true,
|
|
position: 'bottom',
|
|
align: 'end',
|
|
},
|
|
|
|
title: {
|
|
display: true,
|
|
text: 'Chart.js Line Chart Example',
|
|
|
|
},
|
|
tooltips: {
|
|
mode: 'index',
|
|
intersect: false,
|
|
titleMarginBottom: 10,
|
|
bodySpacing: 10,
|
|
xPadding: 16,
|
|
yPadding: 16,
|
|
borderColor: window.chartColors.border,
|
|
borderWidth: 1,
|
|
backgroundColor: '#fff',
|
|
bodyFontColor: window.chartColors.text,
|
|
titleFontColor: window.chartColors.text,
|
|
|
|
callbacks: {
|
|
//Ref: https://stackoverflow.com/questions/38800226/chart-js-add-commas-to-tooltip-and-y-axis
|
|
label: function(tooltipItem, data) {
|
|
if (parseInt(tooltipItem.value) >= 1000) {
|
|
return "$" + tooltipItem.value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
} else {
|
|
return '$' + tooltipItem.value;
|
|
}
|
|
}
|
|
},
|
|
|
|
},
|
|
hover: {
|
|
mode: 'nearest',
|
|
intersect: true
|
|
},
|
|
scales: {
|
|
xAxes: [{
|
|
display: true,
|
|
gridLines: {
|
|
drawBorder: false,
|
|
color: window.chartColors.border,
|
|
},
|
|
scaleLabel: {
|
|
display: false,
|
|
|
|
}
|
|
}],
|
|
yAxes: [{
|
|
display: true,
|
|
gridLines: {
|
|
drawBorder: false,
|
|
color: window.chartColors.border,
|
|
},
|
|
scaleLabel: {
|
|
display: false,
|
|
},
|
|
ticks: {
|
|
beginAtZero: true,
|
|
userCallback: function(value, index, values) {
|
|
return '$' + value.toLocaleString(); //Ref: https://stackoverflow.com/questions/38800226/chart-js-add-commas-to-tooltip-and-y-axis
|
|
}
|
|
},
|
|
}]
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
|
|
// Chart.js Bar Chart Example
|
|
|
|
var barChartConfig = {
|
|
type: 'bar',
|
|
|
|
data: {
|
|
labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
|
|
datasets: [{
|
|
label: 'Orders',
|
|
backgroundColor: window.chartColors.green,
|
|
borderColor: window.chartColors.green,
|
|
borderWidth: 1,
|
|
maxBarThickness: 16,
|
|
|
|
data: [
|
|
23,
|
|
45,
|
|
76,
|
|
75,
|
|
62,
|
|
37,
|
|
83
|
|
]
|
|
}]
|
|
},
|
|
options: {
|
|
responsive: true,
|
|
aspectRatio: 1.5,
|
|
legend: {
|
|
position: 'bottom',
|
|
align: 'end',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Chart.js Bar Chart Example'
|
|
},
|
|
tooltips: {
|
|
mode: 'index',
|
|
intersect: false,
|
|
titleMarginBottom: 10,
|
|
bodySpacing: 10,
|
|
xPadding: 16,
|
|
yPadding: 16,
|
|
borderColor: window.chartColors.border,
|
|
borderWidth: 1,
|
|
backgroundColor: '#fff',
|
|
bodyFontColor: window.chartColors.text,
|
|
titleFontColor: window.chartColors.text,
|
|
|
|
},
|
|
scales: {
|
|
xAxes: [{
|
|
display: true,
|
|
gridLines: {
|
|
drawBorder: false,
|
|
color: window.chartColors.border,
|
|
},
|
|
|
|
}],
|
|
yAxes: [{
|
|
display: true,
|
|
gridLines: {
|
|
drawBorder: false,
|
|
color: window.chartColors.borders,
|
|
},
|
|
|
|
|
|
}]
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Generate charts on load
|
|
window.addEventListener('load', function(){
|
|
|
|
var lineChart = document.getElementById('canvas-linechart').getContext('2d');
|
|
window.myLine = new Chart(lineChart, lineChartConfig);
|
|
|
|
var barChart = document.getElementById('canvas-barchart').getContext('2d');
|
|
window.myBar = new Chart(barChart, barChartConfig);
|
|
|
|
|
|
});
|
|
|