var me = this;
var newControllers = [];
var datasets = me.data.datasets;
+ var sorted = me._sortedMetasets = [];
var i, ilen;
for (i = 0, ilen = datasets.length; i < ilen; i++) {
meta.order = dataset.order || 0;
meta.index = i;
meta.label = '' + dataset.label;
+ meta.visible = me.isDatasetVisible(i);
if (meta.controller) {
meta.controller.updateIndex(i);
meta.controller = new ControllerClass(me, i);
newControllers.push(meta.controller);
}
+ sorted.push(meta);
}
+ sorted.sort(compare2Level('order', 'index'));
+
return newControllers;
},
* @private
*/
transition: function(easingValue) {
- var me = this;
+ const me = this;
var i, ilen;
if (!me._animationsDisabled) {
- for (i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {
- if (me.isDatasetVisible(i)) {
- me.getDatasetMeta(i).controller.transition(easingValue);
+ const metas = me._getSortedDatasetMetas();
+ for (i = 0, ilen = metas.length; i < ilen; ++i) {
+ let meta = metas[i];
+ if (meta.visible) {
+ meta.controller.transition(easingValue);
}
}
}
*/
_getSortedDatasetMetas: function(filterVisible) {
var me = this;
- var datasets = me.data.datasets || [];
+ var metasets = me._sortedMetasets;
var result = [];
var i, ilen;
- for (i = 0, ilen = datasets.length; i < ilen; ++i) {
- if (!filterVisible || me.isDatasetVisible(i)) {
- result.push(me.getDatasetMeta(i));
+ for (i = 0, ilen = metasets.length; i < ilen; ++i) {
+ const meta = metasets[i];
+ if (!filterVisible || meta.visible) {
+ result.push(meta);
}
}
- result.sort(compare2Level('order', 'index'));
-
return result;
},
},
getVisibleDatasetCount: function() {
- var count = 0;
- for (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {
- if (this.isDatasetVisible(i)) {
- count++;
- }
- }
- return count;
+ return this._getSortedVisibleDatasetMetas().length;
},
isDatasetVisible: function(datasetIndex) {