@ecip/shared
Version:
104 lines • 7.15 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
var TreeService = /** @class */ (function () {
function TreeService() {
}
/**
* @param {?} array
* @param {?} data
* @param {?} $event
* @return {?}
*/
TreeService.prototype.collapse = /**
* @param {?} array
* @param {?} data
* @param {?} $event
* @return {?}
*/
function (array, data, $event) {
var _this = this;
if ($event === false) {
if (data.children) {
data.children.forEach((/**
* @param {?} d
* @return {?}
*/
function (d) {
/** @type {?} */
var target = array.find((/**
* @param {?} a
* @return {?}
*/
function (a) { return a.id === d.id; }));
target.expand = false;
_this.collapse(array, target, false);
}));
}
else {
return;
}
}
};
/**
* @param {?} root
* @return {?}
*/
TreeService.convertTreeToList = /**
* @param {?} root
* @return {?}
*/
function (root) {
/** @type {?} */
var stack = [];
/** @type {?} */
var array = [];
/** @type {?} */
var hashMap = {};
stack.push(tslib_1.__assign({}, root, { level: 0, expand: false }));
while (stack.length !== 0) {
/** @type {?} */
var node = stack.pop();
TreeService.visitNode(node, hashMap, array);
if (node.children) {
for (var i = node.children.length - 1; i >= 0; i--) {
stack.push(tslib_1.__assign({}, node.children[i], { level: node.level + 1, expand: false, parent: node }));
}
}
}
return array;
};
/**
* @param {?} node
* @param {?} hashMap
* @param {?} array
* @return {?}
*/
TreeService.visitNode = /**
* @param {?} node
* @param {?} hashMap
* @param {?} array
* @return {?}
*/
function (node, hashMap, array) {
if (!hashMap[node.id]) {
hashMap[node.id] = true;
array.push(node);
}
};
TreeService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
TreeService.ctorParameters = function () { return []; };
/** @nocollapse */ TreeService.ngInjectableDef = i0.defineInjectable({ factory: function TreeService_Factory() { return new TreeService(); }, token: TreeService, providedIn: "root" });
return TreeService;
}());
export { TreeService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGVjaXAvc2hhcmVkLyIsInNvdXJjZXMiOlsic3JjL3RyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDO0lBS0U7SUFBZ0IsQ0FBQzs7Ozs7OztJQUVqQiw4QkFBUTs7Ozs7O0lBQVIsVUFBUyxLQUFZLEVBQUUsSUFBUyxFQUFFLE1BQWU7UUFBakQsaUJBWUM7UUFYQyxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87Ozs7Z0JBQUMsVUFBQSxDQUFDOzt3QkFDZixNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUk7Ozs7b0JBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQWIsQ0FBYSxFQUFDO29CQUM3QyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDdEIsS0FBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN0QyxDQUFDLEVBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLE9BQU87YUFDUjtTQUNGO0lBQ0gsQ0FBQzs7Ozs7SUFFTSw2QkFBaUI7Ozs7SUFBeEIsVUFBeUIsSUFBWTs7WUFDN0IsS0FBSyxHQUFHLEVBQUU7O1lBQ1YsS0FBSyxHQUFHLEVBQUU7O1lBQ1YsT0FBTyxHQUFHLEVBQUU7UUFDbEIsS0FBSyxDQUFDLElBQUksc0JBQU0sSUFBSSxJQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBRyxDQUFDO1FBRWpELE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O2dCQUNuQixJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUN4QixXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNsRCxLQUFLLENBQUMsSUFBSSxzQkFBTSxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUMsQ0FBRSxJQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUcsQ0FBQztpQkFDM0Y7YUFDRjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7Ozs7O0lBRU0scUJBQVM7Ozs7OztJQUFoQixVQUFpQixJQUFTLEVBQUUsT0FBZSxFQUFFLEtBQVk7UUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBRSxJQUFJLENBQUMsRUFBRSxDQUFFLEVBQUU7WUFDdkIsT0FBTyxDQUFFLElBQUksQ0FBQyxFQUFFLENBQUUsR0FBRyxJQUFJLENBQUM7WUFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQjtJQUNILENBQUM7O2dCQTdDRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7OztzQkFKRDtDQWdEQyxBQTlDRCxJQThDQztTQTNDWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBjb2xsYXBzZShhcnJheTogYW55W10sIGRhdGE6IGFueSwgJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoJGV2ZW50ID09PSBmYWxzZSkge1xyXG4gICAgICBpZiAoZGF0YS5jaGlsZHJlbikge1xyXG4gICAgICAgIGRhdGEuY2hpbGRyZW4uZm9yRWFjaChkID0+IHtcclxuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGFycmF5LmZpbmQoYSA9PiBhLmlkID09PSBkLmlkKTtcclxuICAgICAgICAgIHRhcmdldC5leHBhbmQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY29sbGFwc2UoYXJyYXksIHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNvbnZlcnRUcmVlVG9MaXN0KHJvb3Q6IG9iamVjdCk6IGFueVtdIHtcclxuICAgIGNvbnN0IHN0YWNrID0gW107XHJcbiAgICBjb25zdCBhcnJheSA9IFtdO1xyXG4gICAgY29uc3QgaGFzaE1hcCA9IHt9O1xyXG4gICAgc3RhY2sucHVzaCh7IC4uLnJvb3QsIGxldmVsOiAwLCBleHBhbmQ6IGZhbHNlIH0pO1xyXG5cclxuICAgIHdoaWxlIChzdGFjay5sZW5ndGggIT09IDApIHtcclxuICAgICAgY29uc3Qgbm9kZSA9IHN0YWNrLnBvcCgpO1xyXG4gICAgICBUcmVlU2VydmljZS52aXNpdE5vZGUobm9kZSwgaGFzaE1hcCwgYXJyYXkpO1xyXG4gICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBub2RlLmNoaWxkcmVuLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICBzdGFjay5wdXNoKHsgLi4ubm9kZS5jaGlsZHJlblsgaSBdLCBsZXZlbDogbm9kZS5sZXZlbCArIDEsIGV4cGFuZDogZmFsc2UsIHBhcmVudDogbm9kZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdmlzaXROb2RlKG5vZGU6IGFueSwgaGFzaE1hcDogb2JqZWN0LCBhcnJheTogYW55W10pOiB2b2lkIHtcclxuICAgIGlmICghaGFzaE1hcFsgbm9kZS5pZCBdKSB7XHJcbiAgICAgIGhhc2hNYXBbIG5vZGUuaWQgXSA9IHRydWU7XHJcbiAgICAgIGFycmF5LnB1c2gobm9kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==