mirror of
https://github.com/chartjs/Chart.js.git
synced 2026-03-12 19:26:49 +01:00
Remove global from defaults (#6893)
This commit is contained in:
committed by
Evert Timberg
parent
099e552e6d
commit
f4792306e0
@@ -26,16 +26,14 @@ defaults._set('bar', {
|
||||
}
|
||||
});
|
||||
|
||||
defaults._set('global', {
|
||||
datasets: {
|
||||
bar: {
|
||||
categoryPercentage: 0.8,
|
||||
barPercentage: 0.9,
|
||||
animation: {
|
||||
numbers: {
|
||||
type: 'number',
|
||||
properties: ['x', 'y', 'base', 'width', 'height']
|
||||
}
|
||||
defaults._set('datasets', {
|
||||
bar: {
|
||||
categoryPercentage: 0.8,
|
||||
barPercentage: 0.9,
|
||||
animation: {
|
||||
numbers: {
|
||||
type: 'number',
|
||||
properties: ['x', 'y', 'base', 'width', 'height']
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,12 +36,10 @@ defaults._set('horizontalBar', {
|
||||
}
|
||||
});
|
||||
|
||||
defaults._set('global', {
|
||||
datasets: {
|
||||
horizontalBar: {
|
||||
categoryPercentage: 0.8,
|
||||
barPercentage: 0.9
|
||||
}
|
||||
defaults._set('datasets', {
|
||||
horizontalBar: {
|
||||
categoryPercentage: 0.8,
|
||||
barPercentage: 0.9
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -27,11 +27,9 @@ defaults._set('scatter', {
|
||||
}
|
||||
});
|
||||
|
||||
defaults._set('global', {
|
||||
datasets: {
|
||||
scatter: {
|
||||
showLine: false
|
||||
}
|
||||
defaults._set('datasets', {
|
||||
scatter: {
|
||||
showLine: false
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -5,27 +5,25 @@ import Animation from './core.animation';
|
||||
import defaults from '../core/core.defaults';
|
||||
import {noop, extend, isObject} from '../helpers/helpers.core';
|
||||
|
||||
defaults._set('global', {
|
||||
animation: {
|
||||
duration: 1000,
|
||||
easing: 'easeOutQuart',
|
||||
active: {
|
||||
duration: 400
|
||||
},
|
||||
resize: {
|
||||
duration: 0
|
||||
},
|
||||
numbers: {
|
||||
type: 'number',
|
||||
properties: ['x', 'y', 'borderWidth', 'radius', 'tension']
|
||||
},
|
||||
colors: {
|
||||
type: 'color',
|
||||
properties: ['borderColor', 'backgroundColor']
|
||||
},
|
||||
onProgress: noop,
|
||||
onComplete: noop
|
||||
}
|
||||
defaults._set('animation', {
|
||||
duration: 1000,
|
||||
easing: 'easeOutQuart',
|
||||
active: {
|
||||
duration: 400
|
||||
},
|
||||
resize: {
|
||||
duration: 0
|
||||
},
|
||||
numbers: {
|
||||
type: 'number',
|
||||
properties: ['x', 'y', 'borderWidth', 'radius', 'tension']
|
||||
},
|
||||
colors: {
|
||||
type: 'color',
|
||||
properties: ['borderColor', 'backgroundColor']
|
||||
},
|
||||
onProgress: noop,
|
||||
onComplete: noop
|
||||
});
|
||||
|
||||
function copyOptions(target, values) {
|
||||
|
||||
@@ -13,25 +13,6 @@ import Tooltip from './core.tooltip';
|
||||
|
||||
const valueOrDefault = helpers.valueOrDefault;
|
||||
|
||||
defaults._set('global', {
|
||||
elements: {},
|
||||
events: [
|
||||
'mousemove',
|
||||
'mouseout',
|
||||
'click',
|
||||
'touchstart',
|
||||
'touchmove'
|
||||
],
|
||||
hover: {
|
||||
onHover: null,
|
||||
mode: 'nearest',
|
||||
intersect: true
|
||||
},
|
||||
onClick: null,
|
||||
maintainAspectRatio: true,
|
||||
responsive: true
|
||||
});
|
||||
|
||||
function mergeScaleConfig(config, options) {
|
||||
options = options || {};
|
||||
const chartDefaults = defaults[config.type] || {scales: {}};
|
||||
@@ -103,7 +84,7 @@ function initConfig(config) {
|
||||
const scaleConfig = mergeScaleConfig(config, config.options);
|
||||
|
||||
config.options = mergeConfig(
|
||||
defaults.global,
|
||||
defaults,
|
||||
defaults[config.type],
|
||||
config.options || {});
|
||||
|
||||
@@ -126,7 +107,7 @@ function updateConfig(chart) {
|
||||
const scaleConfig = mergeScaleConfig(chart.config, newOptions);
|
||||
|
||||
newOptions = mergeConfig(
|
||||
defaults.global,
|
||||
defaults,
|
||||
defaults[chart.config.type],
|
||||
newOptions);
|
||||
|
||||
|
||||
@@ -1,26 +1,36 @@
|
||||
'use strict';
|
||||
|
||||
var helpers = require('../helpers/helpers.core');
|
||||
import {merge} from '../helpers/helpers.core';
|
||||
|
||||
export default {
|
||||
color: 'rgba(0,0,0,0.1)',
|
||||
elements: {},
|
||||
events: [
|
||||
'mousemove',
|
||||
'mouseout',
|
||||
'click',
|
||||
'touchstart',
|
||||
'touchmove'
|
||||
],
|
||||
fontColor: '#666',
|
||||
fontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
|
||||
fontSize: 12,
|
||||
fontStyle: 'normal',
|
||||
lineHeight: 1.2,
|
||||
hover: {
|
||||
onHover: null,
|
||||
mode: 'nearest',
|
||||
intersect: true
|
||||
},
|
||||
maintainAspectRatio: true,
|
||||
onClick: null,
|
||||
responsive: true,
|
||||
showLines: true,
|
||||
|
||||
var defaults = {
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_set: function(scope, values) {
|
||||
return helpers.merge(this[scope] || (this[scope] = {}), values);
|
||||
return merge(this[scope] || (this[scope] = {}), values);
|
||||
}
|
||||
};
|
||||
|
||||
// TODO(v3): remove 'global' from namespace. all default are global and
|
||||
// there's inconsistency around which options are under 'global'
|
||||
defaults._set('global', {
|
||||
defaultColor: 'rgba(0,0,0,0.1)',
|
||||
defaultFontColor: '#666',
|
||||
defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
|
||||
defaultFontSize: 12,
|
||||
defaultFontStyle: 'normal',
|
||||
defaultLineHeight: 1.2,
|
||||
showLines: true
|
||||
});
|
||||
|
||||
module.exports = defaults;
|
||||
|
||||
@@ -198,14 +198,12 @@ function placeBoxes(boxes, chartArea, params) {
|
||||
chartArea.y = y;
|
||||
}
|
||||
|
||||
defaults._set('global', {
|
||||
layout: {
|
||||
padding: {
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0
|
||||
}
|
||||
defaults._set('layout', {
|
||||
padding: {
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
var defaults = require('./core.defaults');
|
||||
var helpers = require('../helpers/index');
|
||||
|
||||
defaults._set('global', {
|
||||
plugins: {}
|
||||
});
|
||||
defaults._set('plugins', {});
|
||||
|
||||
/**
|
||||
* The plugin service singleton
|
||||
@@ -144,7 +142,7 @@ module.exports = {
|
||||
}
|
||||
|
||||
if (opts === true) {
|
||||
opts = helpers.clone(defaults.global.plugins[id]);
|
||||
opts = helpers.clone(defaults.plugins[id]);
|
||||
}
|
||||
|
||||
plugins.push(plugin);
|
||||
|
||||
@@ -200,7 +200,7 @@ function parseFontOptions(options, nestedOpts) {
|
||||
fontStyle: valueOrDefault(nestedOpts.fontStyle, options.fontStyle),
|
||||
lineHeight: valueOrDefault(nestedOpts.lineHeight, options.lineHeight)
|
||||
}), {
|
||||
color: resolve([nestedOpts.fontColor, options.fontColor, defaults.global.defaultFontColor])
|
||||
color: resolve([nestedOpts.fontColor, options.fontColor, defaults.fontColor])
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1307,7 +1307,7 @@ class Scale extends Element {
|
||||
return;
|
||||
}
|
||||
|
||||
var scaleLabelFontColor = valueOrDefault(scaleLabel.fontColor, defaults.global.defaultFontColor);
|
||||
var scaleLabelFontColor = valueOrDefault(scaleLabel.fontColor, defaults.fontColor);
|
||||
var scaleLabelFont = helpers.options._parseFont(scaleLabel);
|
||||
var scaleLabelPadding = helpers.options.toPadding(scaleLabel.padding);
|
||||
var halfLineHeight = scaleLabelFont.lineHeight / 2;
|
||||
|
||||
@@ -8,106 +8,104 @@ const Animations = require('./core.animations');
|
||||
const valueOrDefault = helpers.valueOrDefault;
|
||||
const getRtlHelper = helpers.rtl.getRtlAdapter;
|
||||
|
||||
defaults._set('global', {
|
||||
tooltips: {
|
||||
enabled: true,
|
||||
custom: null,
|
||||
mode: 'nearest',
|
||||
position: 'average',
|
||||
intersect: true,
|
||||
backgroundColor: 'rgba(0,0,0,0.8)',
|
||||
titleFontStyle: 'bold',
|
||||
titleSpacing: 2,
|
||||
titleMarginBottom: 6,
|
||||
titleFontColor: '#fff',
|
||||
titleAlign: 'left',
|
||||
bodySpacing: 2,
|
||||
bodyFontColor: '#fff',
|
||||
bodyAlign: 'left',
|
||||
footerFontStyle: 'bold',
|
||||
footerSpacing: 2,
|
||||
footerMarginTop: 6,
|
||||
footerFontColor: '#fff',
|
||||
footerAlign: 'left',
|
||||
yPadding: 6,
|
||||
xPadding: 6,
|
||||
caretPadding: 2,
|
||||
caretSize: 5,
|
||||
cornerRadius: 6,
|
||||
multiKeyBackground: '#fff',
|
||||
displayColors: true,
|
||||
borderColor: 'rgba(0,0,0,0)',
|
||||
borderWidth: 0,
|
||||
animation: {
|
||||
duration: 400,
|
||||
easing: 'easeOutQuart',
|
||||
numbers: {
|
||||
type: 'number',
|
||||
properties: ['x', 'y', 'width', 'height'],
|
||||
},
|
||||
opacity: {
|
||||
easing: 'linear',
|
||||
duration: 200
|
||||
}
|
||||
defaults._set('tooltips', {
|
||||
enabled: true,
|
||||
custom: null,
|
||||
mode: 'nearest',
|
||||
position: 'average',
|
||||
intersect: true,
|
||||
backgroundColor: 'rgba(0,0,0,0.8)',
|
||||
titleFontStyle: 'bold',
|
||||
titleSpacing: 2,
|
||||
titleMarginBottom: 6,
|
||||
titleFontColor: '#fff',
|
||||
titleAlign: 'left',
|
||||
bodySpacing: 2,
|
||||
bodyFontColor: '#fff',
|
||||
bodyAlign: 'left',
|
||||
footerFontStyle: 'bold',
|
||||
footerSpacing: 2,
|
||||
footerMarginTop: 6,
|
||||
footerFontColor: '#fff',
|
||||
footerAlign: 'left',
|
||||
yPadding: 6,
|
||||
xPadding: 6,
|
||||
caretPadding: 2,
|
||||
caretSize: 5,
|
||||
cornerRadius: 6,
|
||||
multiKeyBackground: '#fff',
|
||||
displayColors: true,
|
||||
borderColor: 'rgba(0,0,0,0)',
|
||||
borderWidth: 0,
|
||||
animation: {
|
||||
duration: 400,
|
||||
easing: 'easeOutQuart',
|
||||
numbers: {
|
||||
type: 'number',
|
||||
properties: ['x', 'y', 'width', 'height'],
|
||||
},
|
||||
callbacks: {
|
||||
// Args are: (tooltipItems, data)
|
||||
beforeTitle: helpers.noop,
|
||||
title: function(tooltipItems, data) {
|
||||
var title = '';
|
||||
var labels = data.labels;
|
||||
var labelCount = labels ? labels.length : 0;
|
||||
|
||||
if (tooltipItems.length > 0) {
|
||||
var item = tooltipItems[0];
|
||||
if (item.label) {
|
||||
title = item.label;
|
||||
} else if (labelCount > 0 && item.index < labelCount) {
|
||||
title = labels[item.index];
|
||||
}
|
||||
}
|
||||
|
||||
return title;
|
||||
},
|
||||
afterTitle: helpers.noop,
|
||||
|
||||
// Args are: (tooltipItems, data)
|
||||
beforeBody: helpers.noop,
|
||||
|
||||
// Args are: (tooltipItem, data)
|
||||
beforeLabel: helpers.noop,
|
||||
label: function(tooltipItem, data) {
|
||||
var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
||||
|
||||
if (label) {
|
||||
label += ': ';
|
||||
}
|
||||
if (!helpers.isNullOrUndef(tooltipItem.value)) {
|
||||
label += tooltipItem.value;
|
||||
}
|
||||
return label;
|
||||
},
|
||||
labelColor: function(tooltipItem, chart) {
|
||||
var meta = chart.getDatasetMeta(tooltipItem.datasetIndex);
|
||||
var options = meta.controller.getStyle(tooltipItem.index);
|
||||
return {
|
||||
borderColor: options.borderColor,
|
||||
backgroundColor: options.backgroundColor
|
||||
};
|
||||
},
|
||||
labelTextColor: function() {
|
||||
return this.options.bodyFontColor;
|
||||
},
|
||||
afterLabel: helpers.noop,
|
||||
|
||||
// Args are: (tooltipItems, data)
|
||||
afterBody: helpers.noop,
|
||||
|
||||
// Args are: (tooltipItems, data)
|
||||
beforeFooter: helpers.noop,
|
||||
footer: helpers.noop,
|
||||
afterFooter: helpers.noop
|
||||
opacity: {
|
||||
easing: 'linear',
|
||||
duration: 200
|
||||
}
|
||||
},
|
||||
callbacks: {
|
||||
// Args are: (tooltipItems, data)
|
||||
beforeTitle: helpers.noop,
|
||||
title: function(tooltipItems, data) {
|
||||
var title = '';
|
||||
var labels = data.labels;
|
||||
var labelCount = labels ? labels.length : 0;
|
||||
|
||||
if (tooltipItems.length > 0) {
|
||||
var item = tooltipItems[0];
|
||||
if (item.label) {
|
||||
title = item.label;
|
||||
} else if (labelCount > 0 && item.index < labelCount) {
|
||||
title = labels[item.index];
|
||||
}
|
||||
}
|
||||
|
||||
return title;
|
||||
},
|
||||
afterTitle: helpers.noop,
|
||||
|
||||
// Args are: (tooltipItems, data)
|
||||
beforeBody: helpers.noop,
|
||||
|
||||
// Args are: (tooltipItem, data)
|
||||
beforeLabel: helpers.noop,
|
||||
label: function(tooltipItem, data) {
|
||||
var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
||||
|
||||
if (label) {
|
||||
label += ': ';
|
||||
}
|
||||
if (!helpers.isNullOrUndef(tooltipItem.value)) {
|
||||
label += tooltipItem.value;
|
||||
}
|
||||
return label;
|
||||
},
|
||||
labelColor: function(tooltipItem, chart) {
|
||||
var meta = chart.getDatasetMeta(tooltipItem.datasetIndex);
|
||||
var options = meta.controller.getStyle(tooltipItem.index);
|
||||
return {
|
||||
borderColor: options.borderColor,
|
||||
backgroundColor: options.backgroundColor
|
||||
};
|
||||
},
|
||||
labelTextColor: function() {
|
||||
return this.options.bodyFontColor;
|
||||
},
|
||||
afterLabel: helpers.noop,
|
||||
|
||||
// Args are: (tooltipItems, data)
|
||||
afterBody: helpers.noop,
|
||||
|
||||
// Args are: (tooltipItems, data)
|
||||
beforeFooter: helpers.noop,
|
||||
footer: helpers.noop,
|
||||
afterFooter: helpers.noop
|
||||
}
|
||||
});
|
||||
|
||||
@@ -233,21 +231,20 @@ function createTooltipItem(chart, item) {
|
||||
* @param options {object} the tooltip options
|
||||
*/
|
||||
function resolveOptions(options) {
|
||||
var globalDefaults = defaults.global;
|
||||
|
||||
options = helpers.extend({}, globalDefaults.tooltips, options);
|
||||
options = helpers.extend({}, defaults.tooltips, options);
|
||||
|
||||
options.bodyFontFamily = valueOrDefault(options.bodyFontFamily, globalDefaults.defaultFontFamily);
|
||||
options.bodyFontStyle = valueOrDefault(options.bodyFontStyle, globalDefaults.defaultFontStyle);
|
||||
options.bodyFontSize = valueOrDefault(options.bodyFontSize, globalDefaults.defaultFontSize);
|
||||
options.bodyFontFamily = valueOrDefault(options.bodyFontFamily, defaults.fontFamily);
|
||||
options.bodyFontStyle = valueOrDefault(options.bodyFontStyle, defaults.fontStyle);
|
||||
options.bodyFontSize = valueOrDefault(options.bodyFontSize, defaults.fontSize);
|
||||
|
||||
options.titleFontFamily = valueOrDefault(options.titleFontFamily, globalDefaults.defaultFontFamily);
|
||||
options.titleFontStyle = valueOrDefault(options.titleFontStyle, globalDefaults.defaultFontStyle);
|
||||
options.titleFontSize = valueOrDefault(options.titleFontSize, globalDefaults.defaultFontSize);
|
||||
options.titleFontFamily = valueOrDefault(options.titleFontFamily, defaults.fontFamily);
|
||||
options.titleFontStyle = valueOrDefault(options.titleFontStyle, defaults.fontStyle);
|
||||
options.titleFontSize = valueOrDefault(options.titleFontSize, defaults.fontSize);
|
||||
|
||||
options.footerFontFamily = valueOrDefault(options.footerFontFamily, globalDefaults.defaultFontFamily);
|
||||
options.footerFontStyle = valueOrDefault(options.footerFontStyle, globalDefaults.defaultFontStyle);
|
||||
options.footerFontSize = valueOrDefault(options.footerFontSize, globalDefaults.defaultFontSize);
|
||||
options.footerFontFamily = valueOrDefault(options.footerFontFamily, defaults.fontFamily);
|
||||
options.footerFontStyle = valueOrDefault(options.footerFontStyle, defaults.fontStyle);
|
||||
options.footerFontSize = valueOrDefault(options.footerFontSize, defaults.fontSize);
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
@@ -5,14 +5,12 @@ import Element from '../core/core.element';
|
||||
import {getAngleFromPoint} from '../helpers/helpers.math';
|
||||
const TAU = Math.PI * 2;
|
||||
|
||||
defaults._set('global', {
|
||||
elements: {
|
||||
arc: {
|
||||
backgroundColor: defaults.global.defaultColor,
|
||||
borderColor: '#fff',
|
||||
borderWidth: 2,
|
||||
borderAlign: 'center'
|
||||
}
|
||||
defaults._set('elements', {
|
||||
arc: {
|
||||
backgroundColor: defaults.color,
|
||||
borderColor: '#fff',
|
||||
borderWidth: 2,
|
||||
borderAlign: 'center'
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -7,22 +7,20 @@ import {_computeSegments, _boundSegments} from '../helpers/helpers.segment';
|
||||
import {_steppedLineTo, _bezierCurveTo} from '../helpers/helpers.canvas';
|
||||
import {_updateBezierControlPoints} from '../helpers/helpers.curve';
|
||||
|
||||
const defaultColor = defaults.global.defaultColor;
|
||||
const defaultColor = defaults.color;
|
||||
|
||||
defaults._set('global', {
|
||||
elements: {
|
||||
line: {
|
||||
tension: 0.4,
|
||||
backgroundColor: defaultColor,
|
||||
borderWidth: 3,
|
||||
borderColor: defaultColor,
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
capBezierPoints: true,
|
||||
fill: true
|
||||
}
|
||||
defaults._set('elements', {
|
||||
line: {
|
||||
tension: 0.4,
|
||||
backgroundColor: defaultColor,
|
||||
borderWidth: 3,
|
||||
borderColor: defaultColor,
|
||||
borderCapStyle: 'butt',
|
||||
borderDash: [],
|
||||
borderDashOffset: 0.0,
|
||||
borderJoinStyle: 'miter',
|
||||
capBezierPoints: true,
|
||||
fill: true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -4,21 +4,19 @@ import defaults from '../core/core.defaults';
|
||||
import Element from '../core/core.element';
|
||||
import helpers from '../helpers';
|
||||
|
||||
const defaultColor = defaults.global.defaultColor;
|
||||
const defaultColor = defaults.color;
|
||||
|
||||
defaults._set('global', {
|
||||
elements: {
|
||||
point: {
|
||||
radius: 3,
|
||||
pointStyle: 'circle',
|
||||
backgroundColor: defaultColor,
|
||||
borderColor: defaultColor,
|
||||
borderWidth: 1,
|
||||
// Hover
|
||||
hitRadius: 1,
|
||||
hoverRadius: 4,
|
||||
hoverBorderWidth: 1
|
||||
}
|
||||
defaults._set('elements', {
|
||||
point: {
|
||||
radius: 3,
|
||||
pointStyle: 'circle',
|
||||
backgroundColor: defaultColor,
|
||||
borderColor: defaultColor,
|
||||
borderWidth: 1,
|
||||
// Hover
|
||||
hitRadius: 1,
|
||||
hoverRadius: 4,
|
||||
hoverBorderWidth: 1
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -4,16 +4,14 @@ import defaults from '../core/core.defaults';
|
||||
import Element from '../core/core.element';
|
||||
import helpers from '../helpers';
|
||||
|
||||
const defaultColor = defaults.global.defaultColor;
|
||||
const defaultColor = defaults.color;
|
||||
|
||||
defaults._set('global', {
|
||||
elements: {
|
||||
rectangle: {
|
||||
backgroundColor: defaultColor,
|
||||
borderColor: defaultColor,
|
||||
borderSkipped: 'bottom',
|
||||
borderWidth: 0
|
||||
}
|
||||
defaults._set('elements', {
|
||||
rectangle: {
|
||||
backgroundColor: defaultColor,
|
||||
borderColor: defaultColor,
|
||||
borderSkipped: 'bottom',
|
||||
borderWidth: 0
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -90,13 +90,12 @@ export function toPadding(value) {
|
||||
* @private
|
||||
*/
|
||||
export function _parseFont(options) {
|
||||
var globalDefaults = defaults.global;
|
||||
var size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);
|
||||
var size = valueOrDefault(options.fontSize, defaults.fontSize);
|
||||
var font = {
|
||||
family: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),
|
||||
lineHeight: toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),
|
||||
family: valueOrDefault(options.fontFamily, defaults.fontFamily),
|
||||
lineHeight: toLineHeight(valueOrDefault(options.lineHeight, defaults.lineHeight), size),
|
||||
size: size,
|
||||
style: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),
|
||||
style: valueOrDefault(options.fontStyle, defaults.fontStyle),
|
||||
weight: null,
|
||||
string: ''
|
||||
};
|
||||
|
||||
@@ -13,11 +13,9 @@ import {clipArea, unclipArea} from '../helpers/helpers.canvas';
|
||||
import {valueOrDefault, isFinite, isArray, extend} from '../helpers/helpers.core';
|
||||
import {_normalizeAngle} from '../helpers/helpers.math';
|
||||
|
||||
defaults._set('global', {
|
||||
plugins: {
|
||||
filler: {
|
||||
propagate: true
|
||||
}
|
||||
defaults._set('plugins', {
|
||||
filler: {
|
||||
propagate: true
|
||||
}
|
||||
});
|
||||
|
||||
@@ -436,7 +434,7 @@ export default {
|
||||
const {line, target, scale} = meta;
|
||||
const lineOpts = line.options;
|
||||
const fillOption = lineOpts.fill;
|
||||
const color = lineOpts.backgroundColor || defaults.global.defaultColor;
|
||||
const color = lineOpts.backgroundColor || defaults.color;
|
||||
const {above = color, below = color} = fillOption || {};
|
||||
if (target && line.points.length) {
|
||||
clipArea(ctx, area);
|
||||
|
||||
@@ -8,71 +8,69 @@ const layouts = require('../core/core.layouts');
|
||||
const getRtlHelper = helpers.rtl.getRtlAdapter;
|
||||
const valueOrDefault = helpers.valueOrDefault;
|
||||
|
||||
defaults._set('global', {
|
||||
legend: {
|
||||
display: true,
|
||||
position: 'top',
|
||||
align: 'center',
|
||||
fullWidth: true,
|
||||
reverse: false,
|
||||
weight: 1000,
|
||||
defaults._set('legend', {
|
||||
display: true,
|
||||
position: 'top',
|
||||
align: 'center',
|
||||
fullWidth: true,
|
||||
reverse: false,
|
||||
weight: 1000,
|
||||
|
||||
// a callback that will handle
|
||||
onClick: function(e, legendItem) {
|
||||
var index = legendItem.datasetIndex;
|
||||
var ci = this.chart;
|
||||
var meta = ci.getDatasetMeta(index);
|
||||
// a callback that will handle
|
||||
onClick: function(e, legendItem) {
|
||||
var index = legendItem.datasetIndex;
|
||||
var ci = this.chart;
|
||||
var meta = ci.getDatasetMeta(index);
|
||||
|
||||
// See controller.isDatasetVisible comment
|
||||
meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;
|
||||
// See controller.isDatasetVisible comment
|
||||
meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;
|
||||
|
||||
// We hid a dataset ... rerender the chart
|
||||
ci.update();
|
||||
},
|
||||
// We hid a dataset ... rerender the chart
|
||||
ci.update();
|
||||
},
|
||||
|
||||
onHover: null,
|
||||
onLeave: null,
|
||||
onHover: null,
|
||||
onLeave: null,
|
||||
|
||||
labels: {
|
||||
boxWidth: 40,
|
||||
padding: 10,
|
||||
// Generates labels shown in the legend
|
||||
// Valid properties to return:
|
||||
// text : text to display
|
||||
// fillStyle : fill of coloured box
|
||||
// strokeStyle: stroke of coloured box
|
||||
// hidden : if this legend item refers to a hidden item
|
||||
// lineCap : cap style for line
|
||||
// lineDash
|
||||
// lineDashOffset :
|
||||
// lineJoin :
|
||||
// lineWidth :
|
||||
generateLabels: function(chart) {
|
||||
var datasets = chart.data.datasets;
|
||||
var options = chart.options.legend || {};
|
||||
var usePointStyle = options.labels && options.labels.usePointStyle;
|
||||
labels: {
|
||||
boxWidth: 40,
|
||||
padding: 10,
|
||||
// Generates labels shown in the legend
|
||||
// Valid properties to return:
|
||||
// text : text to display
|
||||
// fillStyle : fill of coloured box
|
||||
// strokeStyle: stroke of coloured box
|
||||
// hidden : if this legend item refers to a hidden item
|
||||
// lineCap : cap style for line
|
||||
// lineDash
|
||||
// lineDashOffset :
|
||||
// lineJoin :
|
||||
// lineWidth :
|
||||
generateLabels: function(chart) {
|
||||
var datasets = chart.data.datasets;
|
||||
var options = chart.options.legend || {};
|
||||
var usePointStyle = options.labels && options.labels.usePointStyle;
|
||||
|
||||
return chart._getSortedDatasetMetas().map(function(meta) {
|
||||
var style = meta.controller.getStyle(usePointStyle ? 0 : undefined);
|
||||
return chart._getSortedDatasetMetas().map(function(meta) {
|
||||
var style = meta.controller.getStyle(usePointStyle ? 0 : undefined);
|
||||
|
||||
return {
|
||||
text: datasets[meta.index].label,
|
||||
fillStyle: style.backgroundColor,
|
||||
hidden: !meta.visible,
|
||||
lineCap: style.borderCapStyle,
|
||||
lineDash: style.borderDash,
|
||||
lineDashOffset: style.borderDashOffset,
|
||||
lineJoin: style.borderJoinStyle,
|
||||
lineWidth: style.borderWidth,
|
||||
strokeStyle: style.borderColor,
|
||||
pointStyle: style.pointStyle,
|
||||
rotation: style.rotation,
|
||||
return {
|
||||
text: datasets[meta.index].label,
|
||||
fillStyle: style.backgroundColor,
|
||||
hidden: !meta.visible,
|
||||
lineCap: style.borderCapStyle,
|
||||
lineDash: style.borderDash,
|
||||
lineDashOffset: style.borderDashOffset,
|
||||
lineJoin: style.borderJoinStyle,
|
||||
lineWidth: style.borderWidth,
|
||||
strokeStyle: style.borderColor,
|
||||
pointStyle: style.pointStyle,
|
||||
rotation: style.rotation,
|
||||
|
||||
// Below is extra data used for toggling the datasets
|
||||
datasetIndex: meta.index
|
||||
};
|
||||
}, this);
|
||||
}
|
||||
// Below is extra data used for toggling the datasets
|
||||
datasetIndex: meta.index
|
||||
};
|
||||
}, this);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -333,9 +331,8 @@ class Legend extends Element {
|
||||
var me = this;
|
||||
var opts = me.options;
|
||||
var labelOpts = opts.labels;
|
||||
var globalDefaults = defaults.global;
|
||||
var defaultColor = globalDefaults.defaultColor;
|
||||
var lineDefault = globalDefaults.elements.line;
|
||||
var defaultColor = defaults.color;
|
||||
var lineDefault = defaults.elements.line;
|
||||
var legendHeight = me.height;
|
||||
var columnHeights = me.columnHeights;
|
||||
var legendWidth = me.width;
|
||||
@@ -347,7 +344,7 @@ class Legend extends Element {
|
||||
|
||||
var rtlHelper = getRtlHelper(opts.rtl, me.left, me.minSize.width);
|
||||
var ctx = me.ctx;
|
||||
var fontColor = valueOrDefault(labelOpts.fontColor, globalDefaults.defaultFontColor);
|
||||
var fontColor = valueOrDefault(labelOpts.fontColor, defaults.fontColor);
|
||||
var labelFont = helpers.options._parseFont(labelOpts);
|
||||
var fontSize = labelFont.size;
|
||||
var cursor;
|
||||
@@ -602,7 +599,7 @@ module.exports = {
|
||||
var legend = chart.legend;
|
||||
|
||||
if (legendOpts) {
|
||||
helpers.mergeIf(legendOpts, defaults.global.legend);
|
||||
helpers.mergeIf(legendOpts, defaults.legend);
|
||||
|
||||
if (legend) {
|
||||
layouts.configure(chart, legend, legendOpts);
|
||||
|
||||
@@ -5,16 +5,14 @@ const Element = require('../core/core.element');
|
||||
const helpers = require('../helpers/index');
|
||||
const layouts = require('../core/core.layouts');
|
||||
|
||||
defaults._set('global', {
|
||||
title: {
|
||||
display: false,
|
||||
fontStyle: 'bold',
|
||||
fullWidth: true,
|
||||
padding: 10,
|
||||
position: 'top',
|
||||
text: '',
|
||||
weight: 2000 // by default greater than legend (1000) to be above
|
||||
}
|
||||
defaults._set('title', {
|
||||
display: false,
|
||||
fontStyle: 'bold',
|
||||
fullWidth: true,
|
||||
padding: 10,
|
||||
position: 'top',
|
||||
text: '',
|
||||
weight: 2000 // by default greater than legend (1000) to be above
|
||||
});
|
||||
|
||||
/**
|
||||
@@ -148,7 +146,7 @@ class Title extends Element {
|
||||
var right = me.right;
|
||||
var maxWidth, titleX, titleY;
|
||||
|
||||
ctx.fillStyle = helpers.valueOrDefault(opts.fontColor, defaults.global.defaultFontColor); // render in correct colour
|
||||
ctx.fillStyle = helpers.valueOrDefault(opts.fontColor, defaults.fontColor); // render in correct colour
|
||||
ctx.font = fontOpts.string;
|
||||
|
||||
// Horizontal
|
||||
@@ -221,7 +219,7 @@ module.exports = {
|
||||
var titleBlock = chart.titleBlock;
|
||||
|
||||
if (titleOpts) {
|
||||
helpers.mergeIf(titleOpts, defaults.global.title);
|
||||
helpers.mergeIf(titleOpts, defaults.title);
|
||||
|
||||
if (titleBlock) {
|
||||
layouts.configure(chart, titleBlock, titleOpts);
|
||||
|
||||
@@ -182,7 +182,7 @@ class LogarithmicScale extends Scale {
|
||||
|
||||
if (start === 0) {
|
||||
start = me._getFirstTickValue(me.minNotZero);
|
||||
offset = valueOrDefault(me.options.ticks.fontSize, defaults.global.defaultFontSize) / me._length;
|
||||
offset = valueOrDefault(me.options.ticks.fontSize, defaults.fontSize) / me._length;
|
||||
}
|
||||
|
||||
me._startValue = log10(start);
|
||||
|
||||
@@ -64,7 +64,7 @@ function getTickBackdropHeight(opts) {
|
||||
var tickOpts = opts.ticks;
|
||||
|
||||
if (tickOpts.display && opts.display) {
|
||||
return valueOrDefault(tickOpts.fontSize, defaults.global.defaultFontSize) + tickOpts.backdropPaddingY * 2;
|
||||
return valueOrDefault(tickOpts.fontSize, defaults.fontSize) + tickOpts.backdropPaddingY * 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -236,7 +236,7 @@ function drawPointLabels(scale) {
|
||||
var pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + 5);
|
||||
|
||||
// Keep this in loop since we may support array properties here
|
||||
var pointLabelFontColor = valueAtIndexOrDefault(pointLabelOpts.fontColor, i, defaults.global.defaultFontColor);
|
||||
var pointLabelFontColor = valueAtIndexOrDefault(pointLabelOpts.fontColor, i, defaults.fontColor);
|
||||
ctx.fillStyle = pointLabelFontColor;
|
||||
|
||||
var angleRadians = scale.getIndexAngle(i);
|
||||
@@ -486,7 +486,7 @@ class RadialLinearScale extends LinearScaleBase {
|
||||
|
||||
var startAngle = me.getIndexAngle(0);
|
||||
var tickFont = helpers.options._parseFont(tickOpts);
|
||||
var tickFontColor = valueOrDefault(tickOpts.fontColor, defaults.global.defaultFontColor);
|
||||
var tickFontColor = valueOrDefault(tickOpts.fontColor, defaults.fontColor);
|
||||
var offset, width;
|
||||
|
||||
ctx.save();
|
||||
|
||||
@@ -735,7 +735,7 @@ class TimeScale extends Scale {
|
||||
const angle = toRadians(me.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);
|
||||
const cosRotation = Math.cos(angle);
|
||||
const sinRotation = Math.sin(angle);
|
||||
const tickFontSize = valueOrDefault(ticksOpts.fontSize, defaults.global.defaultFontSize);
|
||||
const tickFontSize = valueOrDefault(ticksOpts.fontSize, defaults.fontSize);
|
||||
|
||||
return {
|
||||
w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),
|
||||
|
||||
Reference in New Issue
Block a user