UNPKG

@asi-ngtools/lib

Version:

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

219 lines (218 loc) 14.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Component, Input, ElementRef, Renderer2, ViewChild, ViewChildren, QueryList, HostBinding } from '@angular/core'; import { AsiComponentTemplateTreeNodeDef, AsiComponentTemplateTreeLeafDef } from './../../common/asi-component-template'; import { AsiTreeViewComponent } from './../asi-tree-view.component'; import * as nh from '../../../native-helper'; var AsiTreeViewNodeComponent = /** @class */ (function () { function AsiTreeViewNodeComponent(elementRef, renderer) { this.elementRef = elementRef; this.renderer = renderer; this.found = false; this.isLeaf = null; this.leaf = false; this.subData = null; this.init = false; this.open = false; } Object.defineProperty(AsiTreeViewNodeComponent.prototype, "nodeData", { set: /** * @param {?} nodeData * @return {?} */ function (nodeData) { this.data = nodeData; if (this.init) { this.onDataChange(); } }, enumerable: true, configurable: true }); ; /** * @return {?} */ AsiTreeViewNodeComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.onDataChange(); this.init = true; }; /** * @return {?} */ AsiTreeViewNodeComponent.prototype.onDataChange = /** * @return {?} */ function () { this.subData = nh.get(this.data, this.nodeName); /** @type {?} */ var leafTemplate = (this.isLeaf && this.isLeaf(this.data)) || (!this.isLeaf && !this.subData); if (leafTemplate) { this.template = this.leafDef.template; this.renderer.addClass(this.treeNode.nativeElement, 'leaf'); } else { this.template = this.nodeDef.template; this.renderer.addClass(this.treeNode.nativeElement, 'node'); } this.elementRef.nativeElement.style.marginLeft = ((this.level - 1) * 10) + 'px'; }; /** * @param {?} found * @return {?} */ AsiTreeViewNodeComponent.prototype.tagFound = /** * @param {?} found * @return {?} */ function (found) { this.found = found; }; /** * Open the node if it is not a leaf * @return {?} */ AsiTreeViewNodeComponent.prototype.openNode = /** * Open the node if it is not a leaf * @return {?} */ function () { if (!this.leaf) { this.open = true; } }; /** * Close the node * @return {?} */ AsiTreeViewNodeComponent.prototype.closeNode = /** * Close the node * @return {?} */ function () { this.open = false; }; /** * Toggle open/clode node * @return {?} */ AsiTreeViewNodeComponent.prototype.toggleNode = /** * Toggle open/clode node * @return {?} */ function () { if (this.open) { this.open = false; } else { this.openNode(); } }; /** * @return {?} */ AsiTreeViewNodeComponent.prototype.refresh = /** * @return {?} */ function () { this.onDataChange(); }; /** * @return {?} */ AsiTreeViewNodeComponent.prototype.onNodeCliked = /** * @return {?} */ function () { this.toggleNode(); }; /** * @return {?} */ AsiTreeViewNodeComponent.prototype.onNodeContentClicked = /** * @return {?} */ function () { this.asiTreeView.onNodeClicked(this); }; AsiTreeViewNodeComponent.decorators = [ { type: Component, args: [{ selector: 'asi-tree-view-node', host: { 'class': 'asi-component asi-tree-view-node' }, template: "<div #treeNode class=\"tree-node\" (click)=\"onNodeCliked()\">\r\n <asi-fa-icon [icon]=\"open ? iconClose : iconOpen\" *ngIf=\"!isLeaf(data)\"></asi-fa-icon>\r\n <div class=\"tree-node-content\" (click)=\"onNodeContentClicked()\">\r\n <ng-template [ngTemplateOutlet]=\"template\"\r\n [ngTemplateOutletContext]=\"{$implicit : { data : data, open : open, firstNode : firstNode, lastNode : lastNode}}\"></ng-template>\r\n </div>\r\n</div>\r\n<div class=\"childNodes\" [hidden]=\"!open\">\r\n <asi-tree-view-node *ngFor=\"let nodeData of subData; let first = first; let last = last\" [nodeData]=\"nodeData\"\r\n [level]=\"level + 1\" [iconOpen]=\"iconOpen\" [iconClose]=\"iconClose\"\r\n [asiTreeView]=\"asiTreeView\" [nodeName]=\"nodeName\" [nodeDef]=\"nodeDef\" [leafDef]=\"leafDef\"\r\n [isLeaf]=\"isLeaf\" [firstNode]=\"first\" [lastNode]=\"last\"></asi-tree-view-node>\r\n</div>\r\n" }] } ]; /** @nocollapse */ AsiTreeViewNodeComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: Renderer2 } ]; }; AsiTreeViewNodeComponent.propDecorators = { found: [{ type: HostBinding, args: ['class.found',] }], level: [{ type: Input }], nodeData: [{ type: Input }], nodeName: [{ type: Input }], nodeDef: [{ type: Input }], leafDef: [{ type: Input }], asiTreeView: [{ type: Input }], isLeaf: [{ type: Input }], firstNode: [{ type: Input }], lastNode: [{ type: Input }], iconOpen: [{ type: Input }], iconClose: [{ type: Input }], treeNode: [{ type: ViewChild, args: ['treeNode',] }], childNodes: [{ type: ViewChildren, args: [AsiTreeViewNodeComponent,] }] }; return AsiTreeViewNodeComponent; }()); export { AsiTreeViewNodeComponent }; if (false) { /** @type {?} */ AsiTreeViewNodeComponent.prototype.found; /** @type {?} */ AsiTreeViewNodeComponent.prototype.level; /** @type {?} */ AsiTreeViewNodeComponent.prototype.data; /** @type {?} */ AsiTreeViewNodeComponent.prototype.nodeName; /** @type {?} */ AsiTreeViewNodeComponent.prototype.nodeDef; /** @type {?} */ AsiTreeViewNodeComponent.prototype.leafDef; /** @type {?} */ AsiTreeViewNodeComponent.prototype.asiTreeView; /** @type {?} */ AsiTreeViewNodeComponent.prototype.isLeaf; /** @type {?} */ AsiTreeViewNodeComponent.prototype.firstNode; /** @type {?} */ AsiTreeViewNodeComponent.prototype.lastNode; /** @type {?} */ AsiTreeViewNodeComponent.prototype.iconOpen; /** @type {?} */ AsiTreeViewNodeComponent.prototype.iconClose; /** @type {?} */ AsiTreeViewNodeComponent.prototype.treeNode; /** @type {?} */ AsiTreeViewNodeComponent.prototype.childNodes; /** @type {?} */ AsiTreeViewNodeComponent.prototype.template; /** @type {?} */ AsiTreeViewNodeComponent.prototype.leaf; /** @type {?} */ AsiTreeViewNodeComponent.prototype.subData; /** @type {?} */ AsiTreeViewNodeComponent.prototype.init; /** @type {?} */ AsiTreeViewNodeComponent.prototype.open; /** @type {?} */ AsiTreeViewNodeComponent.prototype.elementRef; /** @type {?} */ AsiTreeViewNodeComponent.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXRyZWUtdmlldy1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhc2ktbmd0b29scy9saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hc2ktdHJlZS12aWV3L25vZGUvYXNpLXRyZWUtdmlldy1ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFBZSxLQUFLLEVBQUUsVUFBVSxFQUFVLFNBQVMsRUFDNUQsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUNoRCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsK0JBQStCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVwRSxPQUFPLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDOztJQTBDM0Msa0NBQW9CLFVBQXNCLEVBQVUsUUFBbUI7UUFBbkQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7cUJBakNuQyxLQUFLO3NCQWdCYixJQUFJO29CQVdsQixLQUFLO3VCQUNKLElBQUk7b0JBQ1osS0FBSztvQkFFTCxLQUFLO0tBR1g7SUE3QkQsc0JBQWEsOENBQVE7Ozs7O1FBQXJCLFVBQXNCLFFBQWE7WUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7WUFDckIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO1NBQ0Y7OztPQUFBO0lBQUEsQ0FBQzs7OztJQTBCRiwyQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7S0FDbEI7Ozs7SUFFRCwrQ0FBWTs7O0lBQVo7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7O1FBRWhELElBQUksWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlGLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM3RDtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM3RDtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO0tBQ2pGOzs7OztJQUVNLDJDQUFROzs7O2NBQUMsS0FBVztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzs7Ozs7O0lBSWQsMkNBQVE7Ozs7O1FBQ2IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2xCOzs7Ozs7SUFNSSw0Q0FBUzs7Ozs7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQzs7Ozs7O0lBTWIsNkNBQVU7Ozs7O1FBQ2YsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNuQjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCOzs7OztJQUdJLDBDQUFPOzs7O1FBQ1osSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOzs7OztJQUd0QiwrQ0FBWTs7O0lBQVo7UUFDRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7S0FDbkI7Ozs7SUFFRCx1REFBb0I7OztJQUFwQjtRQUNFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOztnQkF2R0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRTtvQkFDckQscTlCQUFnRDtpQkFDakQ7Ozs7Z0JBWmdDLFVBQVU7Z0JBQVUsU0FBUzs7O3dCQWUzRCxXQUFXLFNBQUMsYUFBYTt3QkFFekIsS0FBSzsyQkFHTCxLQUFLOzJCQU9MLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLOzhCQUNMLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBRUwsS0FBSzs0QkFDTCxLQUFLOzJCQUVMLFNBQVMsU0FBQyxVQUFVOzZCQUNwQixZQUFZLFNBQUMsd0JBQXdCOzttQ0F4Q3hDOztTQWNhLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEhvc3RCaW5kaW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFzaUNvbXBvbmVudFRlbXBsYXRlVHJlZU5vZGVEZWYsIEFzaUNvbXBvbmVudFRlbXBsYXRlVHJlZUxlYWZEZWYgfSBmcm9tICcuLy4uLy4uL2NvbW1vbi9hc2ktY29tcG9uZW50LXRlbXBsYXRlJztcclxuaW1wb3J0IHsgQXNpVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuLy4uL2FzaS10cmVlLXZpZXcuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCAqIGFzIG5oIGZyb20gJy4uLy4uLy4uL25hdGl2ZS1oZWxwZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhc2ktdHJlZS12aWV3LW5vZGUnLFxyXG4gIGhvc3Q6IHsgJ2NsYXNzJzogJ2FzaS1jb21wb25lbnQgYXNpLXRyZWUtdmlldy1ub2RlJyB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnYXNpLXRyZWUtdmlldy1ub2RlLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNpVHJlZVZpZXdOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb3VuZCcpIGZvdW5kID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGxldmVsOiBudW1iZXI7XHJcblxyXG4gIGRhdGE6IGFueTtcclxuICBASW5wdXQoKSBzZXQgbm9kZURhdGEobm9kZURhdGE6IGFueSkge1xyXG4gICAgdGhpcy5kYXRhID0gbm9kZURhdGE7XHJcbiAgICBpZiAodGhpcy5pbml0KSB7XHJcbiAgICAgIHRoaXMub25EYXRhQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgbm9kZU5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBub2RlRGVmOiBBc2lDb21wb25lbnRUZW1wbGF0ZVRyZWVOb2RlRGVmO1xyXG4gIEBJbnB1dCgpIGxlYWZEZWY6IEFzaUNvbXBvbmVudFRlbXBsYXRlVHJlZUxlYWZEZWY7XHJcbiAgQElucHV0KCkgYXNpVHJlZVZpZXc6IEFzaVRyZWVWaWV3Q29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGlzTGVhZjogRnVuY3Rpb24gPSBudWxsO1xyXG4gIEBJbnB1dCgpIGZpcnN0Tm9kZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBsYXN0Tm9kZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgaWNvbk9wZW46IHN0cmluZztcclxuICBASW5wdXQoKSBpY29uQ2xvc2U6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgndHJlZU5vZGUnKSB0cmVlTm9kZTogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkcmVuKEFzaVRyZWVWaWV3Tm9kZUNvbXBvbmVudCkgcHVibGljIGNoaWxkTm9kZXM6IFF1ZXJ5TGlzdDxBc2lUcmVlVmlld05vZGVDb21wb25lbnQ+O1xyXG5cclxuICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBwdWJsaWMgbGVhZiA9IGZhbHNlO1xyXG4gIHN1YkRhdGE6IGFueSA9IG51bGw7XHJcbiAgaW5pdCA9IGZhbHNlO1xyXG5cclxuICBvcGVuID0gZmFsc2VcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5vbkRhdGFDaGFuZ2UoKTtcclxuICAgIHRoaXMuaW5pdCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkRhdGFDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnN1YkRhdGEgPSBuaC5nZXQodGhpcy5kYXRhLCB0aGlzLm5vZGVOYW1lKTtcclxuXHJcbiAgICBsZXQgbGVhZlRlbXBsYXRlID0gKHRoaXMuaXNMZWFmICYmIHRoaXMuaXNMZWFmKHRoaXMuZGF0YSkpIHx8ICghdGhpcy5pc0xlYWYgJiYgIXRoaXMuc3ViRGF0YSk7XHJcblxyXG4gICAgaWYgKGxlYWZUZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLnRlbXBsYXRlID0gdGhpcy5sZWFmRGVmLnRlbXBsYXRlO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudHJlZU5vZGUubmF0aXZlRWxlbWVudCwgJ2xlYWYnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUgPSB0aGlzLm5vZGVEZWYudGVtcGxhdGU7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50cmVlTm9kZS5uYXRpdmVFbGVtZW50LCAnbm9kZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpbkxlZnQgPSAoKHRoaXMubGV2ZWwgLSAxKSAqIDEwKSArICdweCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdGFnRm91bmQoZm91bmQ6IHRydWUpIHtcclxuICAgIHRoaXMuZm91bmQgPSBmb3VuZDtcclxuICB9XHJcblxyXG4gIC8qKiBPcGVuIHRoZSBub2RlIGlmIGl0IGlzIG5vdCBhIGxlYWYgKi9cclxuICBwdWJsaWMgb3Blbk5vZGUoKSB7XHJcbiAgICBpZiAoIXRoaXMubGVhZikge1xyXG4gICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2UgdGhlIG5vZGVcclxuICAgKi9cclxuICBwdWJsaWMgY2xvc2VOb2RlKCkge1xyXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgb3Blbi9jbG9kZSBub2RlXHJcbiAgICovXHJcbiAgcHVibGljIHRvZ2dsZU5vZGUoKSB7XHJcbiAgICBpZiAodGhpcy5vcGVuKSB7XHJcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuTm9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLm9uRGF0YUNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgb25Ob2RlQ2xpa2VkKCkge1xyXG4gICAgdGhpcy50b2dnbGVOb2RlKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDb250ZW50Q2xpY2tlZCgpIHtcclxuICAgIHRoaXMuYXNpVHJlZVZpZXcub25Ob2RlQ2xpY2tlZCh0aGlzKTtcclxuICB9XHJcbn1cclxuIl19