()
| 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 |
no test coverage detected