From: Jukka Kurkela Date: Mon, 30 Dec 2019 22:15:57 +0000 (+0200) Subject: IE11 compatibility (#6872) X-Git-Tag: v3.0.0-alpha~175 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3427479a25b7a333441e7921a5f91045c27fa74a;p=thirdparty%2FChart.js.git IE11 compatibility (#6872) --- diff --git a/src/core/core.animations.js b/src/core/core.animations.js index 6f8f5bb31..14bf7b840 100644 --- a/src/core/core.animations.js +++ b/src/core/core.animations.js @@ -42,6 +42,17 @@ function copyOptions(target, values) { delete values.options; } +function extensibleConfig(animations) { + const result = {}; + Object.keys(animations).forEach(key => { + const value = animations[key]; + if (!isObject(value)) { + result[key] = value; + } + }); + return result; +} + export default class Animations { constructor(chart, animations) { this._chart = chart; @@ -50,12 +61,17 @@ export default class Animations { } configure(animations) { + if (!isObject(animations)) { + return; + } + const animatedProps = this._properties; - const animDefaults = Object.fromEntries(Object.entries(animations).filter(({1: value}) => !isObject(value))); + const animDefaults = extensibleConfig(animations); - for (let [key, cfg] of Object.entries(animations)) { + Object.keys(animations).forEach(key => { + const cfg = animations[key]; if (!isObject(cfg)) { - continue; + return; } for (let prop of cfg.properties || [key]) { // Can have only one config per animation. @@ -66,7 +82,7 @@ export default class Animations { animatedProps.set(prop, extend({}, animatedProps.get(prop), cfg)); } } - } + }); } /** diff --git a/src/core/core.controller.js b/src/core/core.controller.js index 81075d127..096d4215d 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -68,7 +68,8 @@ function mergeScaleConfig(config, options) { }); // apply scale defaults, if not overridden by dataset defaults - Object.values(scales).forEach(scale => { + Object.keys(scales).forEach(key => { + const scale = scales[key]; helpers.mergeIf(scale, scaleService.getScaleDefaults(scale.type)); }); @@ -139,9 +140,9 @@ function updateConfig(chart) { chart.tooltip.initialize(); } -const KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea']; +const KNOWN_POSITIONS = new Set(['top', 'bottom', 'left', 'right', 'chartArea']); function positionIsHorizontal(position, axis) { - return position === 'top' || position === 'bottom' || (!KNOWN_POSITIONS.includes(position) && axis === 'x'); + return position === 'top' || position === 'bottom' || (!KNOWN_POSITIONS.has(position) && axis === 'x'); } function compare2Level(l1, l2) {