]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Config is no longer updated by options setter (#8516)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Wed, 24 Feb 2021 21:34:29 +0000 (23:34 +0200)
committerGitHub <noreply@github.com>
Wed, 24 Feb 2021 21:34:29 +0000 (16:34 -0500)
src/core/core.config.js
src/core/core.controller.js

index ef703865c78fa86d75947a641d62a12beaefae41..f93a8ba9ef89b2107d2740be6477efa81e21b747 100644 (file)
@@ -80,25 +80,21 @@ function mergeScaleConfig(config, options) {
   return scales;
 }
 
-function initOptions(config, options) {
-  options = options || {};
+function initOptions(config) {
+  const options = config.options || (config.options = {});
 
   options.plugins = valueOrDefault(options.plugins, {});
   options.scales = mergeScaleConfig(config, options);
-
-  return options;
 }
 
 function initConfig(config) {
   config = config || {};
 
-  // Do NOT use mergeConfig for the data object because this method merges arrays
-  // and so would change references to labels and datasets, preventing data updates.
   const data = config.data = config.data || {datasets: [], labels: []};
   data.datasets = data.datasets || [];
   data.labels = data.labels || [];
 
-  config.options = initOptions(config, config.options);
+  initOptions(config);
 
   return config;
 }
@@ -150,14 +146,18 @@ export default class Config {
     return this._config.options;
   }
 
+  set options(options) {
+    this._config.options = options;
+  }
+
   get plugins() {
     return this._config.plugins;
   }
 
-  update(options) {
+  update() {
     const config = this._config;
     this.clearCache();
-    config.options = initOptions(config, options);
+    initOptions(config);
   }
 
   clearCache() {
index 7450587dfb97de9e7499b8845e6ab432e2f0a962..7997acbda5fccba7010bc4f8d0033834571c5d34 100644 (file)
@@ -159,7 +159,7 @@ class Chart {
   }
 
   set options(options) {
-    this.config.update(options);
+    this.config.options = options;
   }
 
   /**
@@ -444,7 +444,7 @@ class Chart {
     const me = this;
     const config = me.config;
 
-    config.update(config.options);
+    config.update();
     me._options = config.createResolver(config.chartOptionScopes(), me.getContext());
 
     each(me.scales, (scale) => {