MCPcopy
hub / github.com/chartjs/Chart.js / buildOrUpdateControllers

Method buildOrUpdateControllers

src/core/core.controller.js:415–455  ·  src/core/core.controller.js::Chart.buildOrUpdateControllers
()

Source from the content-addressed store, hash-verified

413 }
414
415 buildOrUpdateControllers() {
416 const newControllers = [];
417 const datasets = this.data.datasets;
418 let i, ilen;
419
420 this._removeUnreferencedMetasets();
421
422 for (i = 0, ilen = datasets.length; i < ilen; i++) {
423 const dataset = datasets[i];
424 let meta = this.getDatasetMeta(i);
425 const type = dataset.type || this.config.type;
426
427 if (meta.type && meta.type !== type) {
428 this._destroyDatasetMeta(i);
429 meta = this.getDatasetMeta(i);
430 }
431 meta.type = type;
432 meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);
433 meta.order = dataset.order || 0;
434 meta.index = i;
435 meta.label = class="st">'' + dataset.label;
436 meta.visible = this.isDatasetVisible(i);
437
438 if (meta.controller) {
439 meta.controller.updateIndex(i);
440 meta.controller.linkScales();
441 } else {
442 const ControllerClass = registry.getController(type);
443 const {datasetElementType, dataElementType} = defaults.datasets[type];
444 Object.assign(ControllerClass, {
445 dataElementType: registry.getElement(dataElementType),
446 datasetElementType: datasetElementType && registry.getElement(datasetElementType)
447 });
448 meta.controller = new ControllerClass(this, i);
449 newControllers.push(meta.controller);
450 }
451 }
452
453 this._updateMetasets();
454 return newControllers;
455 }
456
457 /**
458 * Reset the elements of all datasets

Callers 1

updateMethod · 0.95

Calls 10

getDatasetMetaMethod · 0.95
_destroyDatasetMetaMethod · 0.95
isDatasetVisibleMethod · 0.95
_updateMetasetsMethod · 0.95
getIndexAxisFunction · 0.90
updateIndexMethod · 0.80
getControllerMethod · 0.65
getElementMethod · 0.65
linkScalesMethod · 0.45

Tested by

no test coverage detected