mirror of
https://github.com/chartjs/Chart.js.git
synced 2025-12-08 20:36:08 +00:00
Deprecate Chart.{Type} classes (#5868)
It looks like these classes are a legacy from version 1 but we actually never promoted their usage. Instead, the regular way to create a chart is to set the type in the config, for example: `new Chart(ctx, {type: 'bar'})`. Some types are actually missing (no `Chart.HorizontalBar` or `Chart.Pie`) but it's also not scalable because it can easily conflict with other classes scoped under the `Chart` namespace.
This commit is contained in:
parent
d6ac7d8a80
commit
aa652df240
35
src/chart.js
35
src/chart.js
@ -42,14 +42,6 @@ require('./controllers/controller.polarArea')(Chart);
|
||||
require('./controllers/controller.radar')(Chart);
|
||||
require('./controllers/controller.scatter')(Chart);
|
||||
|
||||
require('./charts/Chart.Bar')(Chart);
|
||||
require('./charts/Chart.Bubble')(Chart);
|
||||
require('./charts/Chart.Doughnut')(Chart);
|
||||
require('./charts/Chart.Line')(Chart);
|
||||
require('./charts/Chart.PolarArea')(Chart);
|
||||
require('./charts/Chart.Radar')(Chart);
|
||||
require('./charts/Chart.Scatter')(Chart);
|
||||
|
||||
// Loading built-in plugins
|
||||
var plugins = require('./plugins');
|
||||
for (var k in plugins) {
|
||||
@ -116,8 +108,33 @@ Chart.canvasHelpers = Chart.helpers.canvas;
|
||||
/**
|
||||
* Provided for backward compatibility, use Chart.layouts instead.
|
||||
* @namespace Chart.layoutService
|
||||
* @deprecated since version 2.8.0
|
||||
* @deprecated since version 2.7.3
|
||||
* @todo remove at version 3
|
||||
* @private
|
||||
*/
|
||||
Chart.layoutService = Chart.layouts;
|
||||
|
||||
/**
|
||||
* Provided for backward compatibility, instead we should create a new Chart
|
||||
* by setting the type in the config (`new Chart(id, {type: '{chart-type}'}`).
|
||||
* @deprecated since version 2.8.0
|
||||
* @todo remove at version 3
|
||||
*/
|
||||
Chart.helpers.each(
|
||||
[
|
||||
'Bar',
|
||||
'Bubble',
|
||||
'Doughnut',
|
||||
'Line',
|
||||
'PolarArea',
|
||||
'Radar',
|
||||
'Scatter'
|
||||
],
|
||||
function(klass) {
|
||||
Chart[klass] = function(ctx, cfg) {
|
||||
return new Chart(ctx, Chart.helpers.merge(cfg || {}, {
|
||||
type: klass.charAt(0).toLowerCase() + klass.slice(1)
|
||||
}));
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(Chart) {
|
||||
|
||||
Chart.Bar = function(context, config) {
|
||||
config.type = 'bar';
|
||||
|
||||
return new Chart(context, config);
|
||||
};
|
||||
|
||||
};
|
||||
@ -1,10 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(Chart) {
|
||||
|
||||
Chart.Bubble = function(context, config) {
|
||||
config.type = 'bubble';
|
||||
return new Chart(context, config);
|
||||
};
|
||||
|
||||
};
|
||||
@ -1,11 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(Chart) {
|
||||
|
||||
Chart.Doughnut = function(context, config) {
|
||||
config.type = 'doughnut';
|
||||
|
||||
return new Chart(context, config);
|
||||
};
|
||||
|
||||
};
|
||||
@ -1,11 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(Chart) {
|
||||
|
||||
Chart.Line = function(context, config) {
|
||||
config.type = 'line';
|
||||
|
||||
return new Chart(context, config);
|
||||
};
|
||||
|
||||
};
|
||||
@ -1,11 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(Chart) {
|
||||
|
||||
Chart.PolarArea = function(context, config) {
|
||||
config.type = 'polarArea';
|
||||
|
||||
return new Chart(context, config);
|
||||
};
|
||||
|
||||
};
|
||||
@ -1,11 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(Chart) {
|
||||
|
||||
Chart.Radar = function(context, config) {
|
||||
config.type = 'radar';
|
||||
|
||||
return new Chart(context, config);
|
||||
};
|
||||
|
||||
};
|
||||
@ -1,8 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(Chart) {
|
||||
Chart.Scatter = function(context, config) {
|
||||
config.type = 'scatter';
|
||||
return new Chart(context, config);
|
||||
};
|
||||
};
|
||||
@ -1,5 +1,32 @@
|
||||
describe('Deprecations', function() {
|
||||
describe('Version 2.8.0', function() {
|
||||
[
|
||||
['Bar', 'bar'],
|
||||
['Bubble', 'bubble'],
|
||||
['Doughnut', 'doughnut'],
|
||||
['Line', 'line'],
|
||||
['PolarArea', 'polarArea'],
|
||||
['Radar', 'radar'],
|
||||
['Scatter', 'scatter']
|
||||
].forEach(function(descriptor) {
|
||||
var klass = descriptor[0];
|
||||
var type = descriptor[1];
|
||||
|
||||
describe('Chart.' + klass, function() {
|
||||
it('should be defined as a function', function() {
|
||||
expect(Chart[klass]).toBeDefined();
|
||||
expect(typeof Chart[klass]).toBe('function');
|
||||
});
|
||||
it('should create a chart of type "' + type + '"', function() {
|
||||
var chart = new Chart[klass]('foo', {data: {}});
|
||||
expect(chart instanceof Chart.Controller).toBeTruthy();
|
||||
expect(chart.config.type).toBe(type);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Version 2.7.3', function() {
|
||||
describe('Chart.layoutService', function() {
|
||||
it('should be defined and an alias of Chart.layouts', function() {
|
||||
expect(Chart.layoutService).toBeDefined();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user