UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

175 lines (174 loc) 11.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Component, ContentChild, Input, ViewChildren, QueryList, Output, EventEmitter } from '@angular/core'; import { AsiComponentTemplateTreeNodeDef, AsiComponentTemplateTreeLeafDef } from './../common/asi-component-template'; import { AsiTreeViewNodeComponent } from './node/asi-tree-view-node.component'; import * as nh from '../../native-helper'; import { AsiTreeViewService } from './asi-tree-view.service'; var AsiTreeViewComponent = /** @class */ (function () { function AsiTreeViewComponent(asiTreeViewService) { this.asiTreeViewService = asiTreeViewService; this.baseData = []; this.filteredData = []; /** * Open icon (fontawesome) */ this.iconOpen = 'fas fa-chevron-down'; /** * Close icon (fontawesome) */ this.iconClose = 'fas fa-chevron-up'; /** * define the name of the sub nodes to display */ this.nodeName = ''; /** * If this function is define it's used to define if the node is a leaf */ this.isLeaf = null; /** * Event emitted when a node is selected */ this.onNodeSelected = new EventEmitter(); } Object.defineProperty(AsiTreeViewComponent.prototype, "data", { /** List of data to display */ set: /** * List of data to display * @param {?} data * @return {?} */ function (data) { this.baseData = data; this.filteredData = data; }, enumerable: true, configurable: true }); ; /** * @param {?} nodeFinder * @return {?} */ AsiTreeViewComponent.prototype.openNode = /** * @param {?} nodeFinder * @return {?} */ function (nodeFinder) { this.asiTreeViewService.openNode(this.nodes.toArray(), nodeFinder); }; /** * @return {?} */ AsiTreeViewComponent.prototype.closeAll = /** * @return {?} */ function () { this.asiTreeViewService.closeAll(this.nodes.toArray()); }; /** * @return {?} */ AsiTreeViewComponent.prototype.openAll = /** * @return {?} */ function () { this.asiTreeViewService.openAll(this.nodes.toArray()); }; /** * @param {?} nodeFinder * @param {?=} keepLeaves * @param {?=} isLeaf * @return {?} */ AsiTreeViewComponent.prototype.filterNodes = /** * @param {?} nodeFinder * @param {?=} keepLeaves * @param {?=} isLeaf * @return {?} */ function (nodeFinder, keepLeaves, isLeaf) { var _this = this; this.filteredData = this.asiTreeViewService.filterNodes(nh.cloneDeep(this.baseData), this.nodeName, nodeFinder, keepLeaves, isLeaf); setTimeout(function () { _this.openAll(); }); }; /** * @param {?} node * @return {?} */ AsiTreeViewComponent.prototype.onNodeClicked = /** * @param {?} node * @return {?} */ function (node) { this.onNodeSelected.emit(node); }; AsiTreeViewComponent.decorators = [ { type: Component, args: [{ selector: 'asi-tree-view', host: { 'class': 'asi-component asi-tree-view' }, template: "<asi-tree-view-node *ngFor=\"let nodeData of filteredData; let first = first; let last = last\"\r\n [iconOpen]=\"iconOpen\" [iconClose]=\"iconClose\" [nodeData]=\"nodeData\" [asiTreeView]=\"this\"\r\n [level]=\"1\" [nodeName]=\"nodeName\" [nodeDef]=\"nodeDef\" [leafDef]=\"leafDef\" [isLeaf]=\"isLeaf\"\r\n [firstNode]=\"first\" [lastNode]=\"last\"></asi-tree-view-node>\r\n" }] } ]; /** @nocollapse */ AsiTreeViewComponent.ctorParameters = function () { return [ { type: AsiTreeViewService } ]; }; AsiTreeViewComponent.propDecorators = { nodeDef: [{ type: ContentChild, args: [AsiComponentTemplateTreeNodeDef,] }], leafDef: [{ type: ContentChild, args: [AsiComponentTemplateTreeLeafDef,] }], iconOpen: [{ type: Input }], iconClose: [{ type: Input }], data: [{ type: Input }], nodeName: [{ type: Input }], isLeaf: [{ type: Input }], onNodeSelected: [{ type: Output }], nodes: [{ type: ViewChildren, args: [AsiTreeViewNodeComponent,] }] }; return AsiTreeViewComponent; }()); export { AsiTreeViewComponent }; if (false) { /** @type {?} */ AsiTreeViewComponent.prototype.baseData; /** @type {?} */ AsiTreeViewComponent.prototype.filteredData; /** @type {?} */ AsiTreeViewComponent.prototype.nodeDef; /** @type {?} */ AsiTreeViewComponent.prototype.leafDef; /** * Open icon (fontawesome) * @type {?} */ AsiTreeViewComponent.prototype.iconOpen; /** * Close icon (fontawesome) * @type {?} */ AsiTreeViewComponent.prototype.iconClose; /** * define the name of the sub nodes to display * @type {?} */ AsiTreeViewComponent.prototype.nodeName; /** * If this function is define it's used to define if the node is a leaf * @type {?} */ AsiTreeViewComponent.prototype.isLeaf; /** * Event emitted when a node is selected * @type {?} */ AsiTreeViewComponent.prototype.onNodeSelected; /** @type {?} */ AsiTreeViewComponent.prototype.nodes; /** @type {?} */ AsiTreeViewComponent.prototype.asiTreeViewService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXRyZWUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYXNpLW5ndG9vbHMvbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYXNpLXRyZWUtdmlldy9hc2ktdHJlZS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0SCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztJQXNDM0QsOEJBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO3dCQTdCM0IsRUFBRTs0QkFDTixFQUFFOzs7O3dCQU1ULHFCQUFxQjs7Ozt5QkFFcEIsbUJBQW1COzs7O3dCQVVwQixFQUFFOzs7O3NCQUdNLElBQUk7Ozs7OEJBR0wsSUFBSSxZQUFZLEVBQU87S0FLakQ7SUFsQkQsc0JBQ0ksc0NBQUk7UUFGUiw4QkFBOEI7Ozs7OztRQUM5QixVQUNTLElBQWdCO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCOzs7T0FBQTtJQUFBLENBQUM7Ozs7O0lBZ0JLLHVDQUFROzs7O2NBQUMsVUFBb0I7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDOzs7OztJQUc5RCx1Q0FBUTs7OztRQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDOzs7OztJQUdsRCxzQ0FBTzs7OztRQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7OztJQUd4RCwwQ0FBVzs7Ozs7O0lBQVgsVUFBWSxVQUFvQixFQUFFLFVBQW9CLEVBQUUsTUFBaUI7UUFBekUsaUJBS0M7UUFKQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BJLFVBQVUsQ0FBQztZQUNULEtBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7S0FDSjs7Ozs7SUFFTSw0Q0FBYTs7OztjQUFDLElBQThCO1FBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzs7Z0JBM0RsQyxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRTtvQkFDaEQsMmJBQTJDO2lCQUM1Qzs7OztnQkFOUSxrQkFBa0I7OzswQkFZeEIsWUFBWSxTQUFDLCtCQUErQjswQkFDNUMsWUFBWSxTQUFDLCtCQUErQjsyQkFHNUMsS0FBSzs0QkFFTCxLQUFLO3VCQUdMLEtBQUs7MkJBT0wsS0FBSzt5QkFHTCxLQUFLO2lDQUdMLE1BQU07d0JBRU4sWUFBWSxTQUFDLHdCQUF3Qjs7K0JBeEN4Qzs7U0FXYSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVOb2RlRGVmLCBBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVMZWFmRGVmIH0gZnJvbSAnLi8uLi9jb21tb24vYXNpLWNvbXBvbmVudC10ZW1wbGF0ZSc7XHJcbmltcG9ydCB7IEFzaVRyZWVWaWV3Tm9kZUNvbXBvbmVudCB9IGZyb20gJy4vbm9kZS9hc2ktdHJlZS12aWV3LW5vZGUuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgbmggZnJvbSAnLi4vLi4vbmF0aXZlLWhlbHBlcic7XHJcbmltcG9ydCB7IEFzaVRyZWVWaWV3U2VydmljZSB9IGZyb20gJy4vYXNpLXRyZWUtdmlldy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNpLXRyZWUtdmlldycsXHJcbiAgaG9zdDogeyAnY2xhc3MnOiAnYXNpLWNvbXBvbmVudCBhc2ktdHJlZS12aWV3JyB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnYXNpLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc2lUcmVlVmlld0NvbXBvbmVudCB7XHJcblxyXG4gIHByaXZhdGUgYmFzZURhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuICBmaWx0ZXJlZERhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVOb2RlRGVmKSBub2RlRGVmOiBBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVOb2RlRGVmO1xyXG4gIEBDb250ZW50Q2hpbGQoQXNpQ29tcG9uZW50VGVtcGxhdGVUcmVlTGVhZkRlZikgbGVhZkRlZjogQXNpQ29tcG9uZW50VGVtcGxhdGVUcmVlTGVhZkRlZjtcclxuXHJcbiAgLyoqIE9wZW4gaWNvbiAoZm9udGF3ZXNvbWUpICovXHJcbiAgQElucHV0KCkgaWNvbk9wZW4gPSAnZmFzIGZhLWNoZXZyb24tZG93bic7XHJcbiAgLyoqIENsb3NlIGljb24gKGZvbnRhd2Vzb21lKSAqL1xyXG4gIEBJbnB1dCgpIGljb25DbG9zZSA9ICdmYXMgZmEtY2hldnJvbi11cCc7XHJcblxyXG4gIC8qKiBMaXN0IG9mIGRhdGEgdG8gZGlzcGxheSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhdGEoZGF0YTogQXJyYXk8YW55Pikge1xyXG4gICAgdGhpcy5iYXNlRGF0YSA9IGRhdGE7XHJcbiAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IGRhdGE7XHJcbiAgfTtcclxuXHJcbiAgLyoqIGRlZmluZSB0aGUgbmFtZSBvZiB0aGUgc3ViIG5vZGVzIHRvIGRpc3BsYXkgICovXHJcbiAgQElucHV0KCkgbm9kZU5hbWUgPSAnJztcclxuXHJcbiAgLyoqIElmIHRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lIGl0J3MgdXNlZCB0byBkZWZpbmUgaWYgdGhlIG5vZGUgaXMgYSBsZWFmICovXHJcbiAgQElucHV0KCkgaXNMZWFmOiBGdW5jdGlvbiA9IG51bGw7XHJcblxyXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBub2RlIGlzIHNlbGVjdGVkICovXHJcbiAgQE91dHB1dCgpIG9uTm9kZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oQXNpVHJlZVZpZXdOb2RlQ29tcG9uZW50KSBub2RlczogUXVlcnlMaXN0PEFzaVRyZWVWaWV3Tm9kZUNvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXNpVHJlZVZpZXdTZXJ2aWNlOiBBc2lUcmVlVmlld1NlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuTm9kZShub2RlRmluZGVyOiBGdW5jdGlvbikge1xyXG4gICAgdGhpcy5hc2lUcmVlVmlld1NlcnZpY2Uub3Blbk5vZGUodGhpcy5ub2Rlcy50b0FycmF5KCksIG5vZGVGaW5kZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQWxsKCkge1xyXG4gICAgdGhpcy5hc2lUcmVlVmlld1NlcnZpY2UuY2xvc2VBbGwodGhpcy5ub2Rlcy50b0FycmF5KCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5BbGwoKSB7XHJcbiAgICB0aGlzLmFzaVRyZWVWaWV3U2VydmljZS5vcGVuQWxsKHRoaXMubm9kZXMudG9BcnJheSgpKTtcclxuICB9XHJcblxyXG4gIGZpbHRlck5vZGVzKG5vZGVGaW5kZXI6IEZ1bmN0aW9uLCBrZWVwTGVhdmVzPzogYm9vbGVhbiwgaXNMZWFmPzogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5hc2lUcmVlVmlld1NlcnZpY2UuZmlsdGVyTm9kZXMobmguY2xvbmVEZWVwKHRoaXMuYmFzZURhdGEpLCB0aGlzLm5vZGVOYW1lLCBub2RlRmluZGVyLCBrZWVwTGVhdmVzLCBpc0xlYWYpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMub3BlbkFsbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Ob2RlQ2xpY2tlZChub2RlOiBBc2lUcmVlVmlld05vZGVDb21wb25lbnQpIHtcclxuICAgIHRoaXMub25Ob2RlU2VsZWN0ZWQuZW1pdChub2RlKTtcclxuICB9XHJcbn1cclxuIl19