Compare commits

..

4 Commits

Author SHA1 Message Date
Jakub Juszczak
fc7818d56d 💎 Release new version 2.3.5
Signed-off-by: Jakub Juszczak <netghost03@gmail.com>
2017-02-14 17:40:03 +01:00
Jakub Juszczak
6a82e42c6e 🐛 Fix eslint errors 2017-02-14 17:37:54 +01:00
Jakub
e441ed286f Merge pull request #36 from apertureless/feature/destroy_chartinstance
🔨 Change reactiveMixins to fix #35
2017-02-14 17:35:30 +01:00
Jakub Juszczak
aa76f518cb 🔨 Change reactiveMixins
Destroy chart instance on render()
Add additional check for dataset length
Add comments
Refactor reactiveData to match reactiveProp style
2017-02-14 17:31:18 +01:00
4 changed files with 62 additions and 51 deletions

45
dist/vue-chartjs.js vendored
View File

@@ -42978,37 +42978,37 @@ 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) {
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)) {
this.forceUpdate(newData, chart);
} else {
this.forceRender();
}
}
}
}
},
methods: {
forceUpdate: function forceUpdate(newData, chart) {
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();
},
forceRender: function forceRender() {
this.renderChart(this.chartData, this.options);
} else {
chart.destroy();
_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);
}
})();

View File

@@ -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 <jakub@nextindex.de>",
"repository": {

View File

@@ -10,35 +10,33 @@ module.exports = {
if (oldData) {
let chart = this._chart
let newDataLabels = newData.datasets.map((dataset) => {
// Get new and old DataSet Labels
let newDatasetLabels = newData.datasets.map((dataset) => {
return dataset.label
})
let oldDataLabels = oldData.datasets.map((dataset) => {
let oldDatasetLabels = oldData.datasets.map((dataset) => {
return dataset.label
})
if (JSON.stringify(newDataLabels) === JSON.stringify(oldDataLabels)) {
this.forceUpdate(newData, chart)
} else {
this.forceRender()
}
}
}
}
},
methods: {
forceUpdate (newData, chart) {
// Stringify 'em for easier compare
const oldLabels = JSON.stringify(oldDatasetLabels)
const newLabels = JSON.stringify(newDatasetLabels)
// Check if Labels are equal and if dataset length is equal
if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {
newData.datasets.forEach((dataset, i) => {
chart.data.datasets[i].data = dataset.data
})
chart.data.labels = newData.labels
chart.update()
},
forceRender () {
} else {
chart.destroy()
this.renderChart(this.chartData, this.options)
}
}
}
}
}
}

View File

@@ -11,21 +11,29 @@ module.exports = {
if (oldData) {
let chart = this._chart
let newDataLabels = newData.datasets.map((dataset) => {
// Get new and old DataSet Labels
let newDatasetLabels = newData.datasets.map((dataset) => {
return dataset.label
})
let oldDataLabels = oldData.datasets.map((dataset) => {
let oldDatasetLabels = oldData.datasets.map((dataset) => {
return dataset.label
})
if (JSON.stringify(newDataLabels) === JSON.stringify(oldDataLabels)) {
// Stringify 'em for easier compare
const oldLabels = JSON.stringify(oldDatasetLabels)
const newLabels = JSON.stringify(newDatasetLabels)
// Check if Labels are equal and if dataset length is equal
if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {
newData.datasets.forEach((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)
}
}