igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
145 lines • 12.2 kB
JavaScript
/**
* @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