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

Method parse

src/core/core.datasetController.js:451–489  ·  view source on GitHub ↗

* @param {number} start * @param {number} count

(start, count)

Source from the content-addressed store, hash-verified

449 * @param {number} count
450 */
451 parse(start, count) {
452 const {_cachedMeta: meta, _data: data} = this;
453 const {iScale, _stacked} = meta;
454 const iAxis = iScale.axis;
455
456 let sorted = start === 0 && count === data.length ? true : meta._sorted;
457 let prev = start > 0 && meta._parsed[start - 1];
458 let i, cur, parsed;
459
460 if (this._parsing === false) {
461 meta._parsed = data;
462 meta._sorted = true;
463 parsed = data;
464 } else {
465 if (isArray(data[start])) {
466 parsed = this.parseArrayData(meta, data, start, count);
467 } else if (isObject(data[start])) {
468 parsed = this.parseObjectData(meta, data, start, count);
469 } else {
470 parsed = this.parsePrimitiveData(meta, data, start, count);
471 }
472
473 const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);
474 for (i = 0; i < count; ++i) {
475 meta._parsed[i + start] = cur = parsed[i];
476 if (sorted) {
477 if (isNotInOrderComparedToPrev()) {
478 sorted = false;
479 }
480 prev = cur;
481 }
482 }
483 meta._sorted = sorted;
484 }
485
486 if (_stacked) {
487 updateStacks(this, parsed);
488 }
489 }
490
491 /**
492 * Parse array of primitive values

Callers 2

_resyncElementsMethod · 0.95
_insertElementsMethod · 0.95

Calls 6

parseArrayDataMethod · 0.95
parseObjectDataMethod · 0.95
parsePrimitiveDataMethod · 0.95
isArrayFunction · 0.85
isObjectFunction · 0.85
updateStacksFunction · 0.85

Tested by

no test coverage detected