mirror of
https://github.com/chartjs/Chart.js.git
synced 2025-12-08 20:36:08 +00:00
Add support for creating a chart from the canvas id and prevent exceptions, at construction time, when the given item doesn't provide a valid CanvasRenderingContext2D or when the getContext API is not accessible (e.g. undefined by add-ons to prevent fingerprinting). New jasmine matcher to verify chart validity.
57 lines
1.4 KiB
JavaScript
Executable File
57 lines
1.4 KiB
JavaScript
Executable File
'use strict';
|
|
|
|
module.exports = function() {
|
|
|
|
// Occupy the global variable of Chart, and create a simple base class
|
|
var Chart = function(item, config) {
|
|
this.controller = new Chart.Controller(item, config, this);
|
|
return this.controller;
|
|
};
|
|
|
|
// Globally expose the defaults to allow for user updating/changing
|
|
Chart.defaults = {
|
|
global: {
|
|
responsive: true,
|
|
responsiveAnimationDuration: 0,
|
|
maintainAspectRatio: true,
|
|
events: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],
|
|
hover: {
|
|
onHover: null,
|
|
mode: 'nearest',
|
|
intersect: true,
|
|
animationDuration: 400
|
|
},
|
|
onClick: null,
|
|
defaultColor: 'rgba(0,0,0,0.1)',
|
|
defaultFontColor: '#666',
|
|
defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
|
|
defaultFontSize: 12,
|
|
defaultFontStyle: 'normal',
|
|
showLines: true,
|
|
|
|
// Element defaults defined in element extensions
|
|
elements: {},
|
|
|
|
// Legend callback string
|
|
legendCallback: function(chart) {
|
|
var text = [];
|
|
text.push('<ul class="' + chart.id + '-legend">');
|
|
for (var i = 0; i < chart.data.datasets.length; i++) {
|
|
text.push('<li><span style="background-color:' + chart.data.datasets[i].backgroundColor + '"></span>');
|
|
if (chart.data.datasets[i].label) {
|
|
text.push(chart.data.datasets[i].label);
|
|
}
|
|
text.push('</li>');
|
|
}
|
|
text.push('</ul>');
|
|
|
|
return text.join('');
|
|
}
|
|
}
|
|
};
|
|
|
|
Chart.Chart = Chart;
|
|
|
|
return Chart;
|
|
};
|