diff --git a/dist/vue-chartjs.js b/dist/vue-chartjs.js index 599ae39..e5623ac 100644 --- a/dist/vue-chartjs.js +++ b/dist/vue-chartjs.js @@ -42978,38 +42978,38 @@ return /******/ (function(modules) { // webpackBootstrap watch: { 'chartData': { handler: function handler(newData, oldData) { + var _this = this; + if (oldData) { - var chart = this._chart; + (function () { + var chart = _this._chart; - var newDataLabels = newData.datasets.map(function (dataset) { - return dataset.label; - }); + var newDatasetLabels = newData.datasets.map(function (dataset) { + return dataset.label; + }); - var oldDataLabels = oldData.datasets.map(function (dataset) { - return dataset.label; - }); + var oldDatasetLabels = oldData.datasets.map(function (dataset) { + return dataset.label; + }); - if ((0, _stringify2.default)(newDataLabels) === (0, _stringify2.default)(oldDataLabels)) { - this.forceUpdate(newData, chart); - } else { - this.forceRender(); - } + var oldLabels = (0, _stringify2.default)(oldDatasetLabels); + var newLabels = (0, _stringify2.default)(newDatasetLabels); + + if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) { + newData.datasets.forEach(function (dataset, i) { + chart.data.datasets[i].data = dataset.data; + }); + + chart.data.labels = newData.labels; + chart.update(); + } else { + chart.destroy(); + _this.renderChart(_this.chartData, _this.options); + } + })(); } } } - }, - methods: { - forceUpdate: function forceUpdate(newData, chart) { - newData.datasets.forEach(function (dataset, i) { - chart.data.datasets[i].data = dataset.data; - }); - - chart.data.labels = newData.labels; - chart.update(); - }, - forceRender: function forceRender() { - this.renderChart(this.chartData, this.options); - } } }; @@ -43064,21 +43064,26 @@ return /******/ (function(modules) { // webpackBootstrap (function () { var chart = _this._chart; - var newDataLabels = newData.datasets.map(function (dataset) { + var newDatasetLabels = newData.datasets.map(function (dataset) { return dataset.label; }); - var oldDataLabels = oldData.datasets.map(function (dataset) { + var oldDatasetLabels = oldData.datasets.map(function (dataset) { return dataset.label; }); - if ((0, _stringify2.default)(newDataLabels) === (0, _stringify2.default)(oldDataLabels)) { + var oldLabels = (0, _stringify2.default)(oldDatasetLabels); + var newLabels = (0, _stringify2.default)(newDatasetLabels); + + if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) { newData.datasets.forEach(function (dataset, i) { chart.data.datasets[i].data = dataset.data; }); + chart.data.labels = newData.labels; chart.update(); } else { + chart.destroy(); _this.renderChart(_this.chartData, _this.options); } })(); diff --git a/package.json b/package.json index 8a4642a..c50cf01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-chartjs", - "version": "2.3.4", + "version": "2.3.5", "description": "vue.js wrapper for chart.js", "author": "Jakub Juszczak ", "repository": {