UNPKG

@ux-aspects/ux-aspects

Version:

Open source user interface framework for building modern, responsive, mobile big data applications

51 lines 6.1 kB
import { ChangeDetectorRef, Directive, EventEmitter, inject, Input, Output } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { TreeGridService } from './tree-grid.service'; import * as i0 from "@angular/core"; export class TreeGridDirective { constructor() { this._changeDetector = inject(ChangeDetectorRef); this._treeGridService = inject(TreeGridService); this.rowsChange = new EventEmitter(); this._onDestroy = new Subject(); } set data(data) { this._treeGridService.data$.next(data); } set loadChildren(loadChildren) { this._treeGridService.loadChildren = loadChildren; } ngOnInit() { this._treeGridService.rows$ .pipe(takeUntil(this._onDestroy)) .subscribe(rows => { this.rowsChange.emit(rows); this._changeDetector.detectChanges(); }); } ngOnDestroy() { this._onDestroy.next(); this._onDestroy.complete(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TreeGridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: TreeGridDirective, selector: "[uxTreeGrid]", inputs: { data: ["uxTreeGrid", "data"], loadChildren: "loadChildren" }, outputs: { rowsChange: "rowsChange" }, host: { classAttribute: "treegrid" }, providers: [TreeGridService], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TreeGridDirective, decorators: [{ type: Directive, args: [{ selector: '[uxTreeGrid]', providers: [TreeGridService], host: { class: 'treegrid' } }] }], propDecorators: { data: [{ type: Input, args: ['uxTreeGrid'] }], loadChildren: [{ type: Input }], rowsChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ncmlkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL3RyZWUtZ3JpZC90cmVlLWdyaWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBU3RELE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFRcUIsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU1QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFhNUQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRS9CLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBZXJEO0lBNUJHLElBQ0ksSUFBSSxDQUFDLElBQW9CO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUNJLFlBQVksQ0FBQyxZQUFrQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUN0RCxDQUFDO0lBT0QsUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO2FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOytHQWhDUSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw0TEFMZixDQUFDLGVBQWUsQ0FBQzs7NEZBS25CLGlCQUFpQjtrQkFQN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUM1QixJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLFVBQVU7cUJBQ3BCO2lCQUNKOzhCQU9PLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxZQUFZO2dCQU1mLFlBQVk7c0JBRGYsS0FBSztnQkFNTixVQUFVO3NCQURULE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyZWVHcmlkSXRlbSB9IGZyb20gJy4vdHJlZS1ncmlkLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRyZWVHcmlkTG9hZEZ1bmN0aW9uIH0gZnJvbSAnLi90cmVlLWdyaWQtbG9hZC1mdW5jdGlvbi50eXBlJztcbmltcG9ydCB7IFRyZWVHcmlkU2VydmljZSB9IGZyb20gJy4vdHJlZS1ncmlkLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t1eFRyZWVHcmlkXScsXG4gICAgcHJvdmlkZXJzOiBbVHJlZUdyaWRTZXJ2aWNlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndHJlZWdyaWQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlR3JpZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF90cmVlR3JpZFNlcnZpY2UgPSBpbmplY3QoVHJlZUdyaWRTZXJ2aWNlKTtcblxuICAgIEBJbnB1dCgndXhUcmVlR3JpZCcpXG4gICAgc2V0IGRhdGEoZGF0YTogVHJlZUdyaWRJdGVtW10pIHtcbiAgICAgICAgdGhpcy5fdHJlZUdyaWRTZXJ2aWNlLmRhdGEkLm5leHQoZGF0YSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbG9hZENoaWxkcmVuKGxvYWRDaGlsZHJlbjogVHJlZUdyaWRMb2FkRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fdHJlZUdyaWRTZXJ2aWNlLmxvYWRDaGlsZHJlbiA9IGxvYWRDaGlsZHJlbjtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICByb3dzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVlR3JpZEl0ZW1bXT4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJlZUdyaWRTZXJ2aWNlLnJvd3MkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocm93cyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3dzQ2hhbmdlLmVtaXQocm93cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==