UNPKG

ng-devui

Version:

DevUI components based on Angular

105 lines 15.7 kB
import { Component, ContentChildren, EventEmitter, Input, QueryList, } from '@angular/core'; import { TableTrComponent } from '../row/tr.component'; import { TableThComponent } from './th/th.component'; import * as i0 from "@angular/core"; export class TableTheadComponent { constructor() { this.checkOptionsIndex = 1050; this.selectOptionOnCheckbox = false; this.headerCheckStatusEvent = new EventEmitter(); this.headerChildrenTableToggleEvent = new EventEmitter(); } ngOnInit() { } ngAfterContentInit() { if (this.headerRowList) { this.headerFirstRow = this.headerRowList.first; if (this.headerFirstRow) { this.headerFirstRow.headerRowspan = this.headerRowList.length; this.headerFirstRow.headerCheckable = this.checkable; this.headerFirstRow.headerCheckDisabled = this.checkDisabled; this.headerFirstRow.headerCheckOptions = this.checkOptions; this.headerFirstRow.checkOptionsIndex = this.checkOptionsIndex; this.headerFirstRow.selectOptionOnCheckbox = this.selectOptionOnCheckbox; this.checkStatusSubscription = this.headerFirstRow.headerCheckStatusEvent.subscribe((status) => { this.headerCheckStatusEvent.emit(status); }); } } if (this.thList) { this.setNestedThToggle(); this.thList.changes.subscribe((list) => { this.setNestedThToggle(); }); } } ngOnChanges(changes) { const { checkable, checkDisabled, checkOptions } = changes; if ((checkable && !checkable.isFirstChange()) || (checkDisabled && !checkDisabled.isFirstChange()) || (checkOptions && !checkOptions.isFirstChange())) { if (this.headerFirstRow) { this.headerFirstRow.headerRowspan = this.headerRowList.length; this.headerFirstRow.headerCheckable = this.checkable; this.headerFirstRow.headerCheckDisabled = this.checkDisabled; this.headerFirstRow.headerCheckOptions = this.checkOptions; this.headerFirstRow.selectOptionOnCheckbox = this.selectOptionOnCheckbox; } } } setNestedThToggle() { this.nestedTh = this.thList.find((th) => { return th.nestedColumn; }); if (this.nestedTh) { this.toggleTableSubscription = this.nestedTh.toggleChildrenTableEvent.subscribe((childrenTableOpen) => { this.headerChildrenTableToggleEvent.emit(childrenTableOpen); }); } } setHeaderCheckStatus(status) { if (status.pageAllChecked !== undefined) { this.headerFirstRow.headerChecked = status.pageAllChecked; } if (status.pageHalfChecked !== undefined) { this.headerFirstRow.headerHalfChecked = status.pageHalfChecked; } } setHeaderToggleStatus(open) { if (this.nestedTh) { this.nestedTh.childrenTableOpen = open; } } ngOnDestroy() { if (this.checkStatusSubscription) { this.checkStatusSubscription.unsubscribe(); this.checkStatusSubscription = null; } if (this.toggleTableSubscription) { this.toggleTableSubscription.unsubscribe(); this.toggleTableSubscription = null; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableTheadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableTheadComponent, selector: "[dTableHead]", inputs: { checkable: "checkable", checkDisabled: "checkDisabled", checkOptions: "checkOptions", checkOptionsIndex: "checkOptionsIndex", selectOptionOnCheckbox: "selectOptionOnCheckbox" }, queries: [{ propertyName: "headerRowList", predicate: TableTrComponent }, { propertyName: "thList", predicate: TableThComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableTheadComponent, decorators: [{ type: Component, args: [{ selector: '[dTableHead]', template: "<ng-content></ng-content>\n" }] }], ctorParameters: () => [], propDecorators: { checkable: [{ type: Input }], checkDisabled: [{ type: Input }], checkOptions: [{ type: Input }], checkOptionsIndex: [{ type: Input }], selectOptionOnCheckbox: [{ type: Input }], headerRowList: [{ type: ContentChildren, args: [TableTrComponent] }], thList: [{ type: ContentChildren, args: [TableThComponent, { descendants: true }] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGV2dWkvZGF0YS10YWJsZS90YWJsZS9oZWFkL3RoZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2RldnVpL2RhdGEtdGFibGUvdGFibGUvaGVhZC90aGVhZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUlMLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPckQsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUI7UUFaUyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBUXhDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckQsbUNBQThCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUU5QyxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRWIsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDL0MsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxh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QWUsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQWE7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQzsrR0FsR1UsbUJBQW1CO21HQUFuQixtQkFBbUIsOFFBTWIsZ0JBQWdCLHlDQUNoQixnQkFBZ0IscUVDN0JuQyw2QkFDQTs7NEZEcUJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFFRSxjQUFjO3dEQUlmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQzZCLGFBQWE7c0JBQS9DLGVBQWU7dUJBQUMsZ0JBQWdCO2dCQUN5QixNQUFNO3NCQUEvRCxlQUFlO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRhYmxlQ2hlY2tPcHRpb25zLCBUYWJsZUNoZWNrU3RhdHVzQXJnIH0gZnJvbSAnLi4vLi4vZGF0YS10YWJsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRhYmxlVHJDb21wb25lbnQgfSBmcm9tICcuLi9yb3cvdHIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVUaENvbXBvbmVudCB9IGZyb20gJy4vdGgvdGguY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yKi9cclxuICBzZWxlY3RvcjogJ1tkVGFibGVIZWFkXScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RoZWFkLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlVGhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBjaGVja2FibGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY2hlY2tEaXNhYmxlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjaGVja09wdGlvbnM6IFRhYmxlQ2hlY2tPcHRpb25zW107XHJcbiAgQElucHV0KCkgY2hlY2tPcHRpb25zSW5kZXggPSAxMDUwO1xyXG4gIEBJbnB1dCgpIHNlbGVjdE9wdGlvbk9uQ2hlY2tib3ggPSBmYWxzZTtcclxuICBAQ29udGVudENoaWxkcmVuKFRhYmxlVHJDb21wb25lbnQpIGhlYWRlclJvd0xpc3Q6IFF1ZXJ5TGlzdDxUYWJsZVRyQ29tcG9uZW50PjtcclxuICBAQ29udGVudENoaWxkcmVuKFRhYmxlVGhDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgdGhMaXN0OiBRdWVyeUxpc3Q8VGFibGVUaENvbXBvbmVudD47XHJcblxyXG4gIGhlYWRlckZpcnN0Um93OiBUYWJsZVRyQ29tcG9uZW50O1xyXG4gIG5lc3RlZFRoOiBUYWJsZVRoQ29tcG9uZW50O1xyXG4gIHRvZ2dsZVRhYmxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgY2hlY2tTdGF0dXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBoZWFkZXJDaGVja1N0YXR1c0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIGhlYWRlckNoaWxkcmVuVGFibGVUb2dnbGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmhlYWRlclJvd0xpc3QpIHtcclxuICAgICAgdGhpcy5oZWFkZXJGaXJzdFJvdyA9IHRoaXMuaGVhZGVyUm93TGlzdC5maXJzdDtcclxuICAgICAgaWYgKHRoaXMuaGVhZGVyRmlyc3RSb3cpIHtcclxuICAgICAgICB0aGlzLmhlYWRlckZpcnN0Um93LmhlYWRlclJvd3NwYW4gPSB0aGlzLmhlYWRlclJvd0xpc3QubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRmlyc3RSb3cuaGVhZGVyQ2hlY2thYmxlID0gdGhpcy5jaGVja2FibGU7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJGaXJzdFJvdy5oZWFkZXJDaGVja0Rpc2FibGVkID0gdGhpcy5jaGVja0Rpc2FibGVkO1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRmlyc3RSb3cuaGVhZGVyQ2hlY2tPcHRpb25zID0gdGhpcy5jaGVja09wdGlvbnM7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJGaXJzdFJvdy5jaGVja09wdGlvbnNJbmRleCA9IHRoaXMuY2hlY2tPcHRpb25zSW5kZXg7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJGaXJzdFJvdy5zZWxlY3RPcHRpb25PbkNoZWNrYm94ID0gdGhpcy5zZWxlY3RPcHRpb25PbkNoZWNrYm94O1xyXG5cclxuICAgICAgICB0aGlzLmNoZWNrU3RhdHVzU3Vic2NyaXB0aW9uID0gdGhpcy5oZWFkZXJGaXJzdFJvdy5oZWFkZXJDaGVja1N0YXR1c0V2ZW50LnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhlYWRlckNoZWNrU3RhdHVzRXZlbnQuZW1pdChzdGF0dXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50aExpc3QpIHtcclxuICAgICAgdGhpcy5zZXROZXN0ZWRUaFRvZ2dsZSgpO1xyXG4gICAgICB0aGlzLnRoTGlzdC5jaGFuZ2VzLnN1YnNjcmliZSgobGlzdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0TmVzdGVkVGhUb2dnbGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGNoZWNrYWJsZSwgY2hlY2tEaXNhYmxlZCwgY2hlY2tPcHRpb25zIH0gPSBjaGFuZ2VzO1xyXG4gICAgaWYgKFxyXG4gICAgICAoY2hlY2thYmxlICYmICFjaGVja2FibGUuaXNGaXJzdENoYW5nZSgpKSB8fFxyXG4gICAgICAoY2hlY2tEaXNhYmxlZCAmJiAhY2hlY2tEaXNhYmxlZC5pc0ZpcnN0Q2hhbmdlKCkpIHx8XHJcbiAgICAgIChjaGVja09wdGlvbnMgJiYgIWNoZWNrT3B0aW9ucy5pc0ZpcnN0Q2hhbmdlKCkpXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMuaGVhZGVyRmlyc3RSb3cpIHtcclxuICAgICAgICB0aGlzLmhlYWRlckZpcnN0Um93LmhlYWRlclJvd3NwYW4gPSB0aGlzLmhlYWRlclJvd0xpc3QubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRmlyc3RSb3cuaGVhZGVyQ2hlY2thYmxlID0gdGhpcy5jaGVja2FibGU7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJGaXJzdFJvdy5oZWFkZXJDaGVja0Rpc2FibGVkID0gdGhpcy5jaGVja0Rpc2FibGVkO1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRmlyc3RSb3cuaGVhZGVyQ2hlY2tPcHRpb25zID0gdGhpcy5jaGVja09wdGlvbnM7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJGaXJzdFJvdy5zZWxlY3RPcHRpb25PbkNoZWNrYm94ID0gdGhpcy5zZWxlY3RPcHRpb25PbkNoZWNrYm94O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXROZXN0ZWRUaFRvZ2dsZSgpIHtcclxuICAgIHRoaXMubmVzdGVkVGggPSB0aGlzLnRoTGlzdC5maW5kKCh0aCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGgubmVzdGVkQ29sdW1uO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMubmVzdGVkVGgpIHtcclxuICAgICAgdGhpcy50b2dnbGVUYWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMubmVzdGVkVGgudG9nZ2xlQ2hpbGRyZW5UYWJsZUV2ZW50LnN1YnNjcmliZSgoY2hpbGRyZW5UYWJsZU9wZW4pID0+IHtcclxuICAgICAgICB0aGlzLmhlYWRlckNoaWxkcmVuVGFibGVUb2dnbGVFdmVudC5lbWl0KGNoaWxkcmVuVGFibGVPcGVuKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRIZWFkZXJDaGVja1N0YXR1cyhzdGF0dXM6IFRhYmxlQ2hlY2tTdGF0dXNBcmcpIHtcclxuICAgIGlmIChzdGF0dXMucGFnZUFsbENoZWNrZWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmhlYWRlckZpcnN0Um93LmhlYWRlckNoZWNrZWQgPSBzdGF0dXMucGFnZUFsbENoZWNrZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXR1cy5wYWdlSGFsZkNoZWNrZWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmhlYWRlckZpcnN0Um93LmhlYWRlckhhbGZDaGVja2VkID0gc3RhdHVzLnBhZ2VIYWxmQ2hlY2tlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEhlYWRlclRvZ2dsZVN0YXR1cyhvcGVuOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5uZXN0ZWRUaCkge1xyXG4gICAgICB0aGlzLm5lc3RlZFRoLmNoaWxkcmVuVGFibGVPcGVuID0gb3BlbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tTdGF0dXNTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5jaGVja1N0YXR1c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNoZWNrU3RhdHVzU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRvZ2dsZVRhYmxlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlVGFibGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy50b2dnbGVUYWJsZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==