@taiga-ui/addon-table
Version:
A library to display tabled data with filters, search, group actions, etc.
45 lines • 6.4 kB
JavaScript
import { computed, Directive, inject, Input, } from '@angular/core';
import { NgControl, NgModel } from '@angular/forms';
import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous';
import { TuiTableControlDirective } from './table-control.directive';
import * as i0 from "@angular/core";
class TuiCheckboxRowDirective {
constructor() {
this.control = inject(NgControl);
this.parent = inject(TuiTableControlDirective);
this.checked = computed((checked = this.parent
.value()
.includes(this.tuiCheckboxRow)) => {
setTimeout(() => this.control.control?.setValue(checked));
return checked;
});
}
ngOnInit() {
this.parent.process(this);
}
ngOnDestroy() {
this.parent.process(this);
this.parent.onChange(this.parent.value().filter((item) => item !== this.tuiCheckboxRow));
}
onChange() {
this.parent.onChange(tuiArrayToggle(this.parent.value(), this.tuiCheckboxRow));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCheckboxRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiCheckboxRowDirective, isStandalone: true, selector: "[tuiCheckbox][tuiCheckboxRow]", inputs: { tuiCheckboxRow: "tuiCheckboxRow" }, host: { listeners: { "change": "onChange()" }, properties: { "checked": "checked()" } }, providers: [{ provide: NgControl, useClass: NgModel }], ngImport: i0 }); }
}
export { TuiCheckboxRowDirective };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCheckboxRowDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiCheckbox][tuiCheckboxRow]',
providers: [{ provide: NgControl, useClass: NgModel }],
host: {
'[checked]': 'checked()',
'(change)': 'onChange()',
},
}]
}], propDecorators: { tuiCheckboxRow: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLXRhYmxlL2RpcmVjdGl2ZXMvdGFibGUtY29udHJvbC9jaGVja2JveC1yb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFakUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7O0FBRW5FLE1BU2EsdUJBQXVCO0lBVHBDO1FBVXFCLFlBQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUIsV0FBTSxHQUFnQyxNQUFNLENBQ3pELHdCQUF3QixDQUMzQixDQUFDO1FBRWlCLFlBQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU07YUFDdkQsS0FBSyxFQUFFO2FBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ2xDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUUxRCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztLQW1CTjtJQWRVLFFBQVE7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FDckUsQ0FBQztJQUNOLENBQUM7SUFFUyxRQUFRO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQzsrR0E5QlEsdUJBQXVCO21HQUF2Qix1QkFBdUIsbU5BTnJCLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUMsQ0FBQzs7U0FNM0MsdUJBQXVCOzRGQUF2Qix1QkFBdUI7a0JBVG5DLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFDLENBQUM7b0JBQ3BELElBQUksRUFBRTt3QkFDRixXQUFXLEVBQUUsV0FBVzt3QkFDeEIsVUFBVSxFQUFFLFlBQVk7cUJBQzNCO2lCQUNKOzhCQWdCVSxjQUFjO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBjb21wdXRlZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHR5cGUgT25EZXN0cm95LFxuICAgIHR5cGUgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge3R1aUFycmF5VG9nZ2xlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG5pbXBvcnQge1R1aVRhYmxlQ29udHJvbERpcmVjdGl2ZX0gZnJvbSAnLi90YWJsZS1jb250cm9sLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpQ2hlY2tib3hdW3R1aUNoZWNrYm94Um93XScsXG4gICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IE5nQ29udHJvbCwgdXNlQ2xhc3M6IE5nTW9kZWx9XSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2hlY2tlZF0nOiAnY2hlY2tlZCgpJyxcbiAgICAgICAgJyhjaGFuZ2UpJzogJ29uQ2hhbmdlKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUNoZWNrYm94Um93RGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50OiBUdWlUYWJsZUNvbnRyb2xEaXJlY3RpdmU8VD4gPSBpbmplY3QoXG4gICAgICAgIFR1aVRhYmxlQ29udHJvbERpcmVjdGl2ZSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoZWNrZWQgPSBjb21wdXRlZCgoY2hlY2tlZCA9IHRoaXMucGFyZW50XG4gICAgICAgIC52YWx1ZSgpXG4gICAgICAgIC5pbmNsdWRlcyh0aGlzLnR1aUNoZWNrYm94Um93KSkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29udHJvbC5jb250cm9sPy5zZXRWYWx1ZShjaGVja2VkKSk7XG5cbiAgICAgICAgcmV0dXJuIGNoZWNrZWQ7XG4gICAgfSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0dWlDaGVja2JveFJvdyE6IFQ7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyZW50LnByb2Nlc3ModGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmVudC5wcm9jZXNzKHRoaXMpO1xuICAgICAgICB0aGlzLnBhcmVudC5vbkNoYW5nZShcbiAgICAgICAgICAgIHRoaXMucGFyZW50LnZhbHVlKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSB0aGlzLnR1aUNoZWNrYm94Um93KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyZW50Lm9uQ2hhbmdlKHR1aUFycmF5VG9nZ2xlKHRoaXMucGFyZW50LnZhbHVlKCksIHRoaXMudHVpQ2hlY2tib3hSb3cpKTtcbiAgICB9XG59XG4iXX0=