UNPKG

igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

145 lines • 12.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Subject } from 'rxjs'; import { GridBaseAPIService } from '../grid'; export class IgxHierarchicalGridAPIService extends GridBaseAPIService { constructor() { super(...arguments); this.childRowIslands = new Map(); this.childGrids = new Map(); } /** * @param {?} rowIsland * @return {?} */ registerChildRowIsland(rowIsland) { this.childRowIslands.set(rowIsland.key, rowIsland); this.destroyMap.set(rowIsland.key, new Subject()); } /** * @param {?} key * @return {?} */ getChildRowIsland(key) { return this.childRowIslands.get(key); } /** * @param {?} path * @return {?} */ getChildGrid(path) { /** @type {?} */ const currPath = path; /** @type {?} */ let grid; /** @type {?} */ const pathElem = currPath.shift(); /** @type {?} */ const childrenForLayout = this.childGrids.get(pathElem.rowIslandKey); if (childrenForLayout) { /** @type {?} */ const childGrid = childrenForLayout.get(pathElem.rowID); if (currPath.length === 0) { grid = childGrid; } else { grid = childGrid.hgridAPI.getChildGrid(currPath); } } return grid; } /** * @param {?=} inDepth * @return {?} */ getChildGrids(inDepth) { /** @type {?} */ const allChildren = []; this.childGrids.forEach((layoutMap) => { layoutMap.forEach((grid) => { allChildren.push(grid); if (inDepth) { /** @type {?} */ const children = grid.hgridAPI.getChildGrids(inDepth); children.forEach((item) => { allChildren.push(item); }); } }); }); return allChildren; } /** * @param {?} childGrid * @return {?} */ getParentRowId(childGrid) { /** @type {?} */ let rowID; this.childGrids.forEach((layoutMap) => { layoutMap.forEach((grid, key) => { if (grid === childGrid) { rowID = key; return; } }); }); return rowID; } /** * @param {?} parentRowID * @param {?} rowIslandKey * @param {?} grid * @return {?} */ registerChildGrid(parentRowID, rowIslandKey, grid) { /** @type {?} */ let childrenForLayout = this.childGrids.get(rowIslandKey); if (!childrenForLayout) { this.childGrids.set(rowIslandKey, new Map()); childrenForLayout = this.childGrids.get(rowIslandKey); } childrenForLayout.set(parentRowID, grid); } /** * @param {?} rowIslandKey * @return {?} */ getChildGridsForRowIsland(rowIslandKey) { /** @type {?} */ const childrenForLayout = this.childGrids.get(rowIslandKey); /** @type {?} */ const children = []; if (childrenForLayout) { childrenForLayout.forEach((child) => { children.push(child); }); } return children; } /** * @param {?} rowIslandKey * @param {?} rowID * @return {?} */ getChildGridByID(rowIslandKey, rowID) { /** @type {?} */ const childrenForLayout = this.childGrids.get(rowIslandKey); return childrenForLayout.get(rowID); } } if (false) { /** * @type {?} * @protected */ IgxHierarchicalGridAPIService.prototype.childRowIslands; /** * @type {?} * @protected */ IgxHierarchicalGridAPIService.prototype.childGrids; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpY2FsLWdyaWQtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dyaWRzL2hpZXJhcmNoaWNhbC1ncmlkL2hpZXJhcmNoaWNhbC1ncmlkLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBd0Isa0JBQWtCLEVBQXFCLE1BQU0sU0FBUyxDQUFDO0FBQ3RGLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxrQkFBNEQ7SUFBL0c7O1FBQ2Msb0JBQWUsR0FBdUMsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFDL0YsZUFBVSxHQUNoQixJQUFJLEdBQUcsRUFBa0QsQ0FBQztJQWlGbEUsQ0FBQzs7Ozs7SUEvRUcsc0JBQXNCLENBQUMsU0FBZ0M7UUFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksT0FBTyxFQUFXLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7OztJQUVELGlCQUFpQixDQUFDLEdBQVc7UUFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxJQUF5Qjs7Y0FDNUIsUUFBUSxHQUFHLElBQUk7O1lBQ2pCLElBQUk7O2NBQ0YsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUU7O2NBQzNCLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDcEUsSUFBSSxpQkFBaUIsRUFBRTs7a0JBQ2IsU0FBUyxHQUFHLGlC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b250ZW50IjpbImltcG9ydCB7IElneEhpZXJhcmNoaWNhbEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2hpZXJhcmNoaWNhbC1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hSb3dJc2xhbmRDb21wb25lbnQgfSBmcm9tICcuL3Jvdy1pc2xhbmQuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElQYXRoU2VnbWVudCB9IGZyb20gJy4vaGllcmFyY2hpY2FsLWdyaWQtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4R3JpZEJhc2VDb21wb25lbnQsIEdyaWRCYXNlQVBJU2VydmljZSwgSUdyaWREYXRhQmluZGFibGUgfSBmcm9tICcuLi9ncmlkJztcbmV4cG9ydCBjbGFzcyBJZ3hIaWVyYXJjaGljYWxHcmlkQVBJU2VydmljZSBleHRlbmRzIEdyaWRCYXNlQVBJU2VydmljZTxJZ3hHcmlkQmFzZUNvbXBvbmVudCAmIElHcmlkRGF0YUJpbmRhYmxlPiB7XG4gICAgcHJvdGVjdGVkIGNoaWxkUm93SXNsYW5kczogTWFwPHN0cmluZywgSWd4Um93SXNsYW5kQ29tcG9uZW50PiA9IG5ldyBNYXA8c3RyaW5nLCBJZ3hSb3dJc2xhbmRDb21wb25lbnQ+KCk7XG4gICAgcHJvdGVjdGVkIGNoaWxkR3JpZHM6ICBNYXA8c3RyaW5nLCBNYXA8YW55LCBJZ3hIaWVyYXJjaGljYWxHcmlkQ29tcG9uZW50Pj4gPVxuICAgICAgICBuZXcgTWFwPHN0cmluZywgTWFwPGFueSwgSWd4SGllcmFyY2hpY2FsR3JpZENvbXBvbmVudD4+KCk7XG5cbiAgICByZWdpc3RlckNoaWxkUm93SXNsYW5kKHJvd0lzbGFuZDogSWd4Um93SXNsYW5kQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuY2hpbGRSb3dJc2xhbmRzLnNldChyb3dJc2xhbmQua2V5LCByb3dJc2xhbmQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lNYXAuc2V0KHJvd0lzbGFuZC5rZXksIG5ldyBTdWJqZWN0PGJvb2xlYW4+KCkpO1xuICAgIH1cblxuICAgIGdldENoaWxkUm93SXNsYW5kKGtleTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkUm93SXNsYW5kcy5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICBnZXRDaGlsZEdyaWQocGF0aDogQXJyYXk8SVBhdGhTZWdtZW50Pikge1xuICAgICAgICBjb25zdCBjdXJyUGF0aCA9IHBhdGg7XG4gICAgICAgIGxldCBncmlkO1xuICAgICAgICBjb25zdCBwYXRoRWxlbSA9IGN1cnJQYXRoLnNoaWZ0KCk7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuRm9yTGF5b3V0ID0gdGhpcy5jaGlsZEdyaWRzLmdldChwYXRoRWxlbS5yb3dJc2xhbmRLZXkpO1xuICAgICAgICBpZiAoY2hpbGRyZW5Gb3JMYXlvdXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkR3JpZCA9IGNoaWxkcmVuRm9yTGF5b3V0LmdldChwYXRoRWxlbS5yb3dJRCk7XG4gICAgICAgICAgICBpZiAoY3VyclBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZ3JpZCA9IGNoaWxkR3JpZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZ3JpZCA9IGNoaWxkR3JpZC5oZ3JpZEFQSS5nZXRDaGlsZEdyaWQoY3VyclBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBncmlkO1xuICAgIH1cblxuICAgIGdldENoaWxkR3JpZHMoaW5EZXB0aD86IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgYWxsQ2hpbGRyZW4gPSBbXTtcbiAgICAgICAgdGhpcy5jaGlsZEdyaWRzLmZvckVhY2goKGxheW91dE1hcCkgPT4ge1xuICAgICAgICAgICAgbGF5b3V0TWFwLmZvckVhY2goKGdyaWQpID0+IHtcbiAgICAgICAgICAgICAgICBhbGxDaGlsZHJlbi5wdXNoKGdyaWQpO1xuICAgICAgICAgICAgICAgIGlmIChpbkRlcHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gZ3JpZC5oZ3JpZEFQSS5nZXRDaGlsZEdyaWRzKGluRGVwdGgpO1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxDaGlsZHJlbi5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGFsbENoaWxkcmVuO1xuICAgIH1cblxuICAgIGdldFBhcmVudFJvd0lkKGNoaWxkR3JpZDogSWd4SGllcmFyY2hpY2FsR3JpZENvbXBvbmVudCkge1xuICAgICAgICBsZXQgcm93SUQ7XG4gICAgICAgIHRoaXMuY2hpbGRHcmlkcy5mb3JFYWNoKChsYXlvdXRNYXApID0+IHtcbiAgICAgICAgICAgIGxheW91dE1hcC5mb3JFYWNoKChncmlkLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZ3JpZCA9PT0gY2hpbGRHcmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0lEID0ga2V5O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcm93SUQ7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJDaGlsZEdyaWQocGFyZW50Um93SUQ6IHN0cmluZ3xvYmplY3QsIHJvd0lzbGFuZEtleTogc3RyaW5nLCBncmlkOiBJZ3hIaWVyYXJjaGljYWxHcmlkQ29tcG9uZW50KSB7XG4gICAgICAgIGxldCBjaGlsZHJlbkZvckxheW91dCA9IHRoaXMuY2hpbGRHcmlkcy5nZXQocm93SXNsYW5kS2V5KTtcbiAgICAgICAgaWYgKCFjaGlsZHJlbkZvckxheW91dCkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZEdyaWRzLnNldChyb3dJc2xhbmRLZXksIG5ldyBNYXA8YW55LCBJZ3hIaWVyYXJjaGljYWxHcmlkQ29tcG9uZW50PigpKTtcbiAgICAgICAgICAgIGNoaWxkcmVuRm9yTGF5b3V0ID0gdGhpcy5jaGlsZEdyaWRzLmdldChyb3dJc2xhbmRLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGNoaWxkcmVuRm9yTGF5b3V0LnNldChwYXJlbnRSb3dJRCwgZ3JpZCk7XG4gICAgfVxuXG4gICAgZ2V0Q2hpbGRHcmlkc0ZvclJvd0lzbGFuZChyb3dJc2xhbmRLZXkpOiBJZ3hIaWVyYXJjaGljYWxHcmlkQ29tcG9uZW50W10ge1xuICAgICAgICBjb25zdCBjaGlsZHJlbkZvckxheW91dCA9IHRoaXMuY2hpbGRHcmlkcy5nZXQocm93SXNsYW5kS2V5KTtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgaWYgKGNoaWxkcmVuRm9yTGF5b3V0KSB7XG4gICAgICAgICAgICBjaGlsZHJlbkZvckxheW91dC5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cblxuICAgIGdldENoaWxkR3JpZEJ5SUQocm93SXNsYW5kS2V5LCByb3dJRCkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbkZvckxheW91dCA9IHRoaXMuY2hpbGRHcmlkcy5nZXQocm93SXNsYW5kS2V5KTtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuRm9yTGF5b3V0LmdldChyb3dJRCk7XG4gICAgfVxufVxuIl19