@taiga-ui/addon-table
Version:
A library to display tabled data with filters, search, group actions, etc.
32 lines • 5.49 kB
JavaScript
import { computed, Directive, signal } from '@angular/core';
import { TuiControl } from '@taiga-ui/cdk/classes';
import { tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous';
import * as i0 from "@angular/core";
class TuiTableControlDirective extends TuiControl {
constructor() {
super(...arguments);
this.children = signal([]);
this.checked = computed(() => !!this.children().length &&
this.children().every((i) => this.value().includes(i.tuiCheckboxRow)));
this.indeterminate = computed(() => !!this.value().length && !this.checked());
}
toggleAll() {
this.onChange(this.checked() ? [] : this.children().map((i) => i.tuiCheckboxRow));
}
process(checkbox) {
this.children.update((children) => tuiArrayToggle(children, checkbox));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTableControlDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiTableControlDirective, isStandalone: true, selector: "[tuiTable][ngModel],[tuiTable][formControl],[tuiTable][formControlName]", providers: [tuiFallbackValueProvider([])], usesInheritance: true, ngImport: i0 }); }
}
export { TuiTableControlDirective };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTableControlDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiTable][ngModel],[tuiTable][formControl],[tuiTable][formControlName]',
providers: [tuiFallbackValueProvider([])],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi10YWJsZS9kaXJlY3RpdmVzL3RhYmxlLWNvbnRyb2wvdGFibGUtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQWUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7O0FBSWpFLE1BS2Esd0JBQTRCLFNBQVEsVUFBd0I7SUFMekU7O1FBTXFCLGFBQVEsR0FBRyxNQUFNLENBQTRDLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLFlBQU8sR0FBb0IsUUFBUSxDQUMvQyxHQUFHLEVBQUUsQ0FDRCxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDeEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FDNUUsQ0FBQztRQUVjLGtCQUFhLEdBQW9CLFFBQVEsQ0FDckQsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQ2pELENBQUM7S0FTTDtJQVBVLFNBQVM7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQW9DO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQzsrR0FuQlEsd0JBQXdCO21HQUF4Qix3QkFBd0Isc0hBRnRCLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7O1NBRWhDLHdCQUF3Qjs0RkFBeEIsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUseUVBQXlFO29CQUNuRixTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NvbXB1dGVkLCBEaXJlY3RpdmUsIHR5cGUgU2lnbmFsLCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHt0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpQXJyYXlUb2dnbGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5cbmltcG9ydCB7dHlwZSBUdWlDaGVja2JveFJvd0RpcmVjdGl2ZX0gZnJvbSAnLi9jaGVja2JveC1yb3cuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlUYWJsZV1bbmdNb2RlbF0sW3R1aVRhYmxlXVtmb3JtQ29udHJvbF0sW3R1aVRhYmxlXVtmb3JtQ29udHJvbE5hbWVdJyxcbiAgICBwcm92aWRlcnM6IFt0dWlGYWxsYmFja1ZhbHVlUHJvdmlkZXIoW10pXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFibGVDb250cm9sRGlyZWN0aXZlPFQ+IGV4dGVuZHMgVHVpQ29udHJvbDxyZWFkb25seSBUW10+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoaWxkcmVuID0gc2lnbmFsPFJlYWRvbmx5QXJyYXk8VHVpQ2hlY2tib3hSb3dEaXJlY3RpdmU8VD4+PihbXSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hlY2tlZDogU2lnbmFsPGJvb2xlYW4+ID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgICAhIXRoaXMuY2hpbGRyZW4oKS5sZW5ndGggJiZcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4oKS5ldmVyeSgoaSkgPT4gdGhpcy52YWx1ZSgpLmluY2x1ZGVzKGkudHVpQ2hlY2tib3hSb3cpKSxcbiAgICApO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGluZGV0ZXJtaW5hdGU6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PiAhIXRoaXMudmFsdWUoKS5sZW5ndGggJiYgIXRoaXMuY2hlY2tlZCgpLFxuICAgICk7XG5cbiAgICBwdWJsaWMgdG9nZ2xlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZCgpID8gW10gOiB0aGlzLmNoaWxkcmVuKCkubWFwKChpKSA9PiBpLnR1aUNoZWNrYm94Um93KSk7XG4gICAgfVxuXG4gICAgcHVibGljIHByb2Nlc3MoY2hlY2tib3g6IFR1aUNoZWNrYm94Um93RGlyZWN0aXZlPFQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4udXBkYXRlKChjaGlsZHJlbikgPT4gdHVpQXJyYXlUb2dnbGUoY2hpbGRyZW4sIGNoZWNrYm94KSk7XG4gICAgfVxufVxuIl19