123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- 'use strict';
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- define([], function () {
- 'use strict';
- return function () {
- function EdgeIterator(edgeInfo) {
- var leafnode_index_no_summary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- _classCallCheck(this, EdgeIterator);
- this.edge = edgeInfo.edge;
- this.keys = edgeInfo.sortedKeys;
- this.currentKeyIndex = 0;
- this.subIterator = null;
- this.numberOfLeafNodes = 0;
-
- this.leafnode_index_no_summary = leafnode_index_no_summary;
- }
- EdgeIterator.prototype.next = function next(ancestors, maxLevel) {
- var next = null;
- if (this._previous && !this._previous.isSummary) {
- ++this.leafnode_index_no_summary;
- }
- if (this.currentKeyIndex < this.keys.length) {
-
- var _self = [];
- var key = this.keys[this.currentKeyIndex];
- var currentEdge = this.edge[key];
-
- var edgeItem = currentEdge.value !== undefined ? currentEdge.value : key;
- _self.push(edgeItem);
- if (!this.subIterator && currentEdge.nestedEdges) {
- this._first = null;
- this.ancestor_or_self = !ancestors || ancestors.length === 0 ? [edgeItem] : ancestors.concat(edgeItem);
- this.numberOfLeafNodes = 0;
- this.subIterator = new this.EdgeIterator(currentEdge.nestedEdges, this.leafnode_index_no_summary);
- }
- if (this.subIterator) {
- var subCategory = this.subIterator.next(this.ancestor_or_self, maxLevel);
- if (subCategory) {
- if (subCategory.hasLeafNode || subCategory.isLeafNode) {
-
- this.numberOfLeafNodes++;
- }
- next = this.createNodeInfo(_self, edgeItem, currentEdge, subCategory, maxLevel);
- } else {
-
- this.currentKeyIndex++;
- this.subIterator = null;
- this._first.noOfLeafNodes = this._previous.index + 1;
- this._first.first = true;
- next = this.next(ancestors, maxLevel);
- }
- } else {
-
- next = this.createLeafNodeInfo(_self, edgeItem, currentEdge, ancestors, maxLevel);
- this.currentKeyIndex++;
- }
- }
- if (!this._first) {
- this._first = next;
- }
- this._previous = next;
- return next;
- };
- EdgeIterator.prototype.createLeafNodeInfo = function createLeafNodeInfo() /* descendant_or_self, value, currentEdge, ancestors, maxLevel */{
- throw new Error('EdgeIterator.createLeafNodeInfo is not implemented');
- };
- EdgeIterator.prototype.createNodeInfo = function createNodeInfo() /* descendant_or_self, value, currentEdge, childNode, maxLevel */{
- throw new Error('EdgeIterator.createNodeInfo is not implemented');
- };
-
- EdgeIterator.prototype.rollupSummariesOfDescendents = function rollupSummariesOfDescendents(nodeInfo, value, maxLevel, childNode) {
- var currentNestLevel = nodeInfo.nestLevel + (childNode ? childNode.descendant_or_self.length : 0);
- var rollup = nodeInfo.isSummary && !nodeInfo.isMeasure && Number.isInteger(maxLevel) && currentNestLevel < maxLevel;
- if (rollup) {
- var iterateMaxLevel = maxLevel - (childNode ? childNode.descendant_or_self.length : 0);
- for (var i = nodeInfo.nestLevel; i < iterateMaxLevel; i++) {
- nodeInfo.descendant_or_self.push(value);
- }
- }
- return rollup;
- };
- return EdgeIterator;
- }();
- });
|