]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Defaults as ES6 class (#7074)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Sun, 9 Feb 2020 13:52:18 +0000 (15:52 +0200)
committerGitHub <noreply@github.com>
Sun, 9 Feb 2020 13:52:18 +0000 (08:52 -0500)
* Defaults as ES6 class

* Review comments

22 files changed:
src/controllers/controller.bar.js
src/controllers/controller.bubble.js
src/controllers/controller.doughnut.js
src/controllers/controller.horizontalBar.js
src/controllers/controller.line.js
src/controllers/controller.pie.js
src/controllers/controller.polarArea.js
src/controllers/controller.radar.js
src/controllers/controller.scatter.js
src/core/core.animations.js
src/core/core.defaults.js
src/core/core.layouts.js
src/core/core.plugins.js
src/core/core.scale.js
src/elements/element.arc.js
src/elements/element.line.js
src/elements/element.point.js
src/elements/element.rectangle.js
src/plugins/plugin.filler.js
src/plugins/plugin.legend.js
src/plugins/plugin.title.js
src/plugins/plugin.tooltip.js

index 894003e9617656b03e7f22273cebe75d2e2f408f..9930aec5bb9effe0dcc22f550b962b70cd4d1520 100644 (file)
@@ -7,7 +7,7 @@ import {clipArea, unclipArea} from '../helpers/helpers.canvas';
 import {isArray, isNullOrUndef, valueOrDefault} from '../helpers/helpers.core';
 import {_limitValue, sign} from '../helpers/helpers.math';
 
-defaults._set('bar', {
+defaults.set('bar', {
        hover: {
                mode: 'index'
        },
index 0a702e418ef9958c8cfef9a5280fdc0cd44103af..a30d2fd0f91ba22635128d27ff32f4ba556dad57 100644 (file)
@@ -6,7 +6,7 @@ import Point from '../elements/element.point';
 import {extend} from '../helpers/helpers.core';
 import {resolve} from '../helpers/helpers.options';
 
-defaults._set('bubble', {
+defaults.set('bubble', {
        animation: {
                numbers: {
                        properties: ['x', 'y', 'borderWidth', 'radius']
index a6277932c850f2b5d19a0c727eeff2061d4d1278..e4ae17d687cd3994e63ad9fd00f72312e9db43ae 100644 (file)
@@ -9,7 +9,7 @@ const PI = Math.PI;
 const DOUBLE_PI = PI * 2;
 const HALF_PI = PI / 2;
 
-defaults._set('doughnut', {
+defaults.set('doughnut', {
        animation: {
                numbers: {
                        type: 'number',
index 027000d90d40d6dfd76dae95e686611301802f39..fd81b985962759bec041334ba2e0b90ccfa6d020 100644 (file)
@@ -3,7 +3,7 @@
 import BarController from './controller.bar';
 import defaults from '../core/core.defaults';
 
-defaults._set('horizontalBar', {
+defaults.set('horizontalBar', {
        hover: {
                mode: 'index',
                axis: 'y'
index ff98b805c9fa654c37066c6475d34d0fb4db3a0a..d71f28de892ee5dde8b86121367cf9420b5b438c 100644 (file)
@@ -8,7 +8,7 @@ import {valueOrDefault} from '../helpers/helpers.core';
 import {isNumber} from '../helpers/helpers.math';
 import {resolve} from '../helpers/helpers.options';
 
-defaults._set('line', {
+defaults.set('line', {
        showLines: true,
        spanGaps: false,
 
index d88cb8483b23a7749e0ca89f21e1c31d5f95864b..85a533e1c46122c5d06a5f26565b72dd1701caff 100644 (file)
@@ -4,8 +4,8 @@ import DoughnutController from './controller.doughnut';
 import defaults from '../core/core.defaults';
 import {clone} from '../helpers/helpers.core';
 
-defaults._set('pie', clone(defaults.doughnut));
-defaults._set('pie', {
+defaults.set('pie', clone(defaults.doughnut));
+defaults.set('pie', {
        cutoutPercentage: 0
 });
 
index 99844785663c105214ef45d96f9c98787311a1dc..df923b4750744f2bf2ef750713ace74370f8ead6 100644 (file)
@@ -6,7 +6,7 @@ import Arc from '../elements/element.arc';
 import {toRadians} from '../helpers/helpers.math';
 import {resolve} from '../helpers/helpers.options';
 
-defaults._set('polarArea', {
+defaults.set('polarArea', {
        animation: {
                numbers: {
                        type: 'number',
index 3b926feea71fdff61af94eef6037e33a3c5f0b92..f4f0123b3695492ee16a751eb7bbcba5a5a00a6b 100644 (file)
@@ -6,7 +6,7 @@ import Line from '../elements/element.line';
 import Point from '../elements/element.point';
 import {valueOrDefault} from '../helpers/helpers.core';
 
-defaults._set('radar', {
+defaults.set('radar', {
        spanGaps: false,
        scales: {
                r: {
index a2c421b99267406d4d266cf7c5520d6a94d8ee9e..4e368be4cda8f303ebe1e500f980e05e5547573a 100644 (file)
@@ -3,7 +3,7 @@
 import LineController from './controller.line';
 import defaults from '../core/core.defaults';
 
-defaults._set('scatter', {
+defaults.set('scatter', {
        scales: {
                x: {
                        type: 'linear',
index c3f6b54155632b940f50fcdb64de0f5d0cb8a574..845a1c346f086508710a510aef8931de32776d7d 100644 (file)
@@ -8,7 +8,7 @@ import {noop, extend, isObject} from '../helpers/helpers.core';
 const numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];
 const colors = ['borderColor', 'backgroundColor'];
 
-defaults._set('animation', {
+defaults.set('animation', {
        // Plain properties can be overridden in each object
        duration: 1000,
        easing: 'easeOutQuart',
index 247b7159215f5e6c77e62bbc4e6f2f5932d546e2..3a15ba70a7d591504920c1e7e38ac57b6deba22d 100644 (file)
@@ -2,35 +2,47 @@
 
 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,
-
+class Defaults {
+       constructor() {
+               this.color = 'rgba(0,0,0,0.1)';
+               this.elements = {};
+               this.events = [
+                       'mousemove',
+                       'mouseout',
+                       'click',
+                       'touchstart',
+                       'touchmove'
+               ];
+               this.fontColor = '#666';
+               this.fontFamily = "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif";
+               this.fontSize = 12;
+               this.fontStyle = 'normal';
+               this.lineHeight = 1.2;
+               this.hover = {
+                       onHover: null,
+                       mode: 'nearest',
+                       intersect: true
+               };
+               this.maintainAspectRatio = true;
+               this.onClick = null;
+               this.responsive = true;
+               this.showLines = true;
+               this.plugins = undefined;
+               this.scale = undefined;
+               this.legend = undefined;
+               this.title = undefined;
+               this.tooltips = undefined;
+               this.doughnut = undefined;
+       }
        /**
+        * @param {string} scope
+        * @param {*} values
         * @private
         */
-       _set: function(scope, values) {
+       set(scope, values) {
                return merge(this[scope] || (this[scope] = {}), values);
        }
-};
+}
+
+// singleton instance
+export default new Defaults();
index 97c7bec6cc32a0a81dd9d28f2bf5a5053a29b34a..1278ce46247ab3bbd1d74fec0cc4b68710addcd6 100644 (file)
@@ -201,7 +201,7 @@ function placeBoxes(boxes, chartArea, params) {
        chartArea.y = y;
 }
 
-defaults._set('layout', {
+defaults.set('layout', {
        padding: {
                top: 0,
                right: 0,
index 66cb1be952772d0d13b2194770fbfcf95d6d2e54..d698e402142c274e7461132d0757a645b0fe2f25 100644 (file)
@@ -15,7 +15,7 @@ import {clone} from '../helpers/helpers.core';
  * @typedef { import("../plugins/plugin.tooltip").default } Tooltip
  */
 
-defaults._set('plugins', {});
+defaults.set('plugins', {});
 
 /**
  * The plugin service singleton
index 40a084ced90ca1eb8e379ec6f9915e7f2ed71af4..42ca0a3ede3f105d27c123442f34ee08c73e7b76 100644 (file)
@@ -8,7 +8,7 @@ import {_factorize, toDegrees, toRadians} from '../helpers/helpers.math';
 import {_parseFont, resolve, toPadding} from '../helpers/helpers.options';
 import Ticks from './core.ticks';
 
-defaults._set('scale', {
+defaults.set('scale', {
        display: true,
        offset: false,
        reverse: false,
index 39d0476cccad769cd397c79cc05ba9b2d246b189..70996ea2d9cb29cb54801ece2bb131b038c730b9 100644 (file)
@@ -6,7 +6,7 @@ import {extend} from '../helpers/helpers.core';
 import {getAngleFromPoint} from '../helpers/helpers.math';
 const TAU = Math.PI * 2;
 
-defaults._set('elements', {
+defaults.set('elements', {
        arc: {
                backgroundColor: defaults.color,
                borderColor: '#fff',
index 589583af4cc64138305a4de0840577ef77e7f635..bc03e87703ac6511a7cb6f5462299cd0e1fc29ff 100644 (file)
@@ -14,7 +14,7 @@ import {_updateBezierControlPoints} from '../helpers/helpers.curve';
 
 const defaultColor = defaults.color;
 
-defaults._set('elements', {
+defaults.set('elements', {
        line: {
                tension: 0.4,
                backgroundColor: defaultColor,
index 420e5f444514695ff3140dfe4cb879370caad1e8..6174b338665b848d319e9c27b654f66a87081bdd 100644 (file)
@@ -7,7 +7,7 @@ import {extend} from '../helpers/helpers.core';
 
 const defaultColor = defaults.color;
 
-defaults._set('elements', {
+defaults.set('elements', {
        point: {
                radius: 3,
                pointStyle: 'circle',
index 79c25ebca42785100c0ca7f8108a5fe407e1a884..1d9cb9eeca81c70921b4b42fbabe9313ddf49cea 100644 (file)
@@ -6,7 +6,7 @@ import {extend, isObject} from '../helpers/helpers.core';
 
 const defaultColor = defaults.color;
 
-defaults._set('elements', {
+defaults.set('elements', {
        rectangle: {
                backgroundColor: defaultColor,
                borderColor: defaultColor,
index ca6550046a79ec86f65f02a02cb2f6e7345dd452..552fb287b091731d4376760dfc96d43f3f687829 100644 (file)
@@ -13,7 +13,7 @@ import {clipArea, unclipArea} from '../helpers/helpers.canvas';
 import {isArray, isFinite, valueOrDefault} from '../helpers/helpers.core';
 import {_normalizeAngle} from '../helpers/helpers.math';
 
-defaults._set('plugins', {
+defaults.set('plugins', {
        filler: {
                propagate: true
        }
index d729d1ae0b07823f6e2d608537e564c76e9e90b3..1188a04d521afe03303ef49ce00172a6cbaf1e55 100644 (file)
@@ -12,7 +12,7 @@ import {getRtlAdapter, overrideTextDirection, restoreTextDirection} from '../hel
  * @typedef { import("../platform/platform.base").IEvent } IEvent
  */
 
-defaults._set('legend', {
+defaults.set('legend', {
        display: true,
        position: 'top',
        align: 'center',
index c1a3271ea6061b554bb4ca137cc04de5a04f765c..6b0e1e8163894ed79523529641ecd08217d7ab3e 100644 (file)
@@ -5,7 +5,7 @@ import Element from '../core/core.element';
 import helpers from '../helpers/index';
 import layouts from '../core/core.layouts';
 
-defaults._set('title', {
+defaults.set('title', {
        align: 'center',
        display: false,
        fontStyle: 'bold',
index 595bb7bfb0f56d2ba51fd7b414fea77e36c1f76e..f29d06760fdd4b10b1a03a7e273011845e64802b 100644 (file)
@@ -13,7 +13,7 @@ import helpers from '../helpers/index';
 const valueOrDefault = helpers.valueOrDefault;
 const getRtlHelper = helpers.rtl.getRtlAdapter;
 
-defaults._set('tooltips', {
+defaults.set('tooltips', {
        enabled: true,
        custom: null,
        mode: 'nearest',