UNPKG

@ecip/shared

Version:
104 lines 7.15 kB
/** * @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==