@taiga-ui/addon-table 5.27.0-canary.fa175c8 → 5.28.0-canary.57a3d74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/directives/table-control/checkbox-row.directive.d.ts +3 -1
- package/directives/table-control/table-control.directive.d.ts +3 -3
- package/fesm2022/taiga-ui-addon-table-components-table.mjs +3 -3
- package/fesm2022/taiga-ui-addon-table-directives-table-control.mjs +19 -5
- package/fesm2022/taiga-ui-addon-table-directives-table-control.mjs.map +1 -1
- package/package.json +9 -9
|
@@ -4,10 +4,12 @@ export declare class TuiCheckboxRowDirective<T> implements OnInit, OnDestroy {
|
|
|
4
4
|
private readonly control;
|
|
5
5
|
private readonly parent;
|
|
6
6
|
protected readonly checked: import("@angular/core").Signal<boolean>;
|
|
7
|
+
protected readonly toggle: import("@angular/core").EffectRef;
|
|
7
8
|
readonly tuiCheckboxRow: import("@angular/core").InputSignal<T>;
|
|
9
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
8
10
|
ngOnInit(): void;
|
|
9
11
|
ngOnDestroy(): void;
|
|
10
12
|
protected onChange(): void;
|
|
11
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiCheckboxRowDirective<any>, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiCheckboxRowDirective<any>, "[tuiCheckbox][tuiCheckboxRow]", never, { "tuiCheckboxRow": { "alias": "tuiCheckboxRow"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiCheckboxRowDirective<any>, "[tuiCheckbox][tuiCheckboxRow]", never, { "tuiCheckboxRow": { "alias": "tuiCheckboxRow"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13
15
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type Signal } from '@angular/core';
|
|
2
1
|
import { TuiControl } from '@taiga-ui/cdk/classes';
|
|
3
2
|
import { type TuiCheckboxRowDirective } from './checkbox-row.directive';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export declare class TuiTableControlDirective<T> extends TuiControl<readonly T[]> {
|
|
6
5
|
private readonly children;
|
|
7
|
-
readonly
|
|
8
|
-
readonly
|
|
6
|
+
private readonly enabled;
|
|
7
|
+
readonly checked: import("@angular/core").Signal<boolean>;
|
|
8
|
+
readonly indeterminate: import("@angular/core").Signal<boolean>;
|
|
9
9
|
toggleAll(): void;
|
|
10
10
|
process(checkbox: TuiCheckboxRowDirective<T>): void;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiTableControlDirective<any>, never>;
|
|
@@ -119,11 +119,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
119
119
|
const EMPTY_COMPARATOR = () => 0;
|
|
120
120
|
class Styles {
|
|
121
121
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-table-5.
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-table-5.28.0-canary.57a3d74"], ngImport: i0, template: '', isInline: true, styles: ["table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]){border-collapse:separate;border-spacing:0;isolation:isolate}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiCell]:not(tui-textfield [tuiCell]){padding:0}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiTitle]{white-space:nowrap}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiTitle] tui-icon{font-size:1rem}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiSubtitle]{color:var(--tui-text-secondary)}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiTh] [tuiCell],table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiTh] [tuiTitle]{font:inherit;color:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
123
123
|
}
|
|
124
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
|
|
125
125
|
type: Component,
|
|
126
|
-
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-table-${TUI_VERSION}`, styles: ["table[tuiTable]:where(*[data-tui-version=\"5.
|
|
126
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-table-${TUI_VERSION}`, styles: ["table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]){border-collapse:separate;border-spacing:0;isolation:isolate}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiCell]:not(tui-textfield [tuiCell]){padding:0}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiTitle]{white-space:nowrap}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiTitle] tui-icon{font-size:1rem}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiSubtitle]{color:var(--tui-text-secondary)}table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiTh] [tuiCell],table[tuiTable]:where(*[data-tui-version=\"5.28.0-canary.57a3d74\"]) [tuiTh] [tuiTitle]{font:inherit;color:inherit}\n"] }]
|
|
127
127
|
}] });
|
|
128
128
|
class TuiTableDirective {
|
|
129
129
|
constructor() {
|
|
@@ -157,7 +157,7 @@ class TuiTableDirective {
|
|
|
157
157
|
this.direction.set(direction);
|
|
158
158
|
}
|
|
159
159
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiTableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
160
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiTableDirective, isStandalone: true, selector: "table[tuiTable]", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, sorter: { classPropertyName: "sorter", publicName: "sorter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { direction: "directionChange", sorter: "sorterChange", sortChange: "sortChange" }, host: { attributes: { "data-tui-version": "5.
|
|
160
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiTableDirective, isStandalone: true, selector: "table[tuiTable]", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, sorter: { classPropertyName: "sorter", publicName: "sorter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { direction: "directionChange", sorter: "sorterChange", sortChange: "sortChange" }, host: { attributes: { "data-tui-version": "5.28.0-canary.57a3d74", "tuiTable": "" }, properties: { "attr.data-size": "size()" } }, providers: [
|
|
161
161
|
{
|
|
162
162
|
provide: WA_INTERSECTION_ROOT_MARGIN,
|
|
163
163
|
useValue: '10000px 10000px 10000px 0px',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, computed, Directive, inject, input,
|
|
2
|
+
import { signal, computed, Directive, inject, effect, input, booleanAttribute } from '@angular/core';
|
|
3
3
|
import { NgControl, NgModel } from '@angular/forms';
|
|
4
4
|
import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
5
5
|
import { TuiControl } from '@taiga-ui/cdk/classes';
|
|
@@ -10,12 +10,17 @@ class TuiTableControlDirective extends TuiControl {
|
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments);
|
|
12
12
|
this.children = signal([]);
|
|
13
|
-
this.
|
|
14
|
-
|
|
13
|
+
this.enabled = computed(() => this.children().filter((i) => !i.disabled()));
|
|
14
|
+
this.checked = computed(() => !!this.enabled().length &&
|
|
15
|
+
this.enabled().every((i) => this.value().includes(i.tuiCheckboxRow())));
|
|
15
16
|
this.indeterminate = computed(() => !!this.value().length && !this.checked());
|
|
16
17
|
}
|
|
17
18
|
toggleAll() {
|
|
18
|
-
this.onChange(this.
|
|
19
|
+
this.onChange(this.children()
|
|
20
|
+
.filter((i) => i.disabled()
|
|
21
|
+
? this.value().includes(i.tuiCheckboxRow())
|
|
22
|
+
: !this.checked())
|
|
23
|
+
.map((i) => i.tuiCheckboxRow()));
|
|
19
24
|
}
|
|
20
25
|
process(checkbox) {
|
|
21
26
|
this.children.update((children) => tuiArrayToggle(children, checkbox));
|
|
@@ -41,7 +46,16 @@ class TuiCheckboxRowDirective {
|
|
|
41
46
|
queueMicrotask(() => this.control.control?.setValue(checked));
|
|
42
47
|
return checked;
|
|
43
48
|
});
|
|
49
|
+
this.toggle = effect(() => {
|
|
50
|
+
if (this.disabled()) {
|
|
51
|
+
this.control.control?.disable();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.control.control?.enable();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
44
57
|
this.tuiCheckboxRow = input.required();
|
|
58
|
+
this.disabled = input(false, { transform: booleanAttribute });
|
|
45
59
|
}
|
|
46
60
|
ngOnInit() {
|
|
47
61
|
this.parent.process(this);
|
|
@@ -54,7 +68,7 @@ class TuiCheckboxRowDirective {
|
|
|
54
68
|
this.parent.onChange(tuiArrayToggle(this.parent.value(), this.tuiCheckboxRow()));
|
|
55
69
|
}
|
|
56
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCheckboxRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
57
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiCheckboxRowDirective, isStandalone: true, selector: "[tuiCheckbox][tuiCheckboxRow]", inputs: { tuiCheckboxRow: { classPropertyName: "tuiCheckboxRow", publicName: "tuiCheckboxRow", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "change": "onChange()" }, properties: { "checked": "checked()" } }, providers: [{ provide: NgControl, useClass: NgModel }], ngImport: i0 }); }
|
|
71
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiCheckboxRowDirective, isStandalone: true, selector: "[tuiCheckbox][tuiCheckboxRow]", inputs: { tuiCheckboxRow: { classPropertyName: "tuiCheckboxRow", publicName: "tuiCheckboxRow", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "change": "onChange()" }, properties: { "checked": "checked()" } }, providers: [{ provide: NgControl, useClass: NgModel }], ngImport: i0 }); }
|
|
58
72
|
}
|
|
59
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiCheckboxRowDirective, decorators: [{
|
|
60
74
|
type: Directive,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-table-directives-table-control.mjs","sources":["../../../projects/addon-table/directives/table-control/table-control.directive.ts","../../../projects/addon-table/directives/table-control/checkbox-row.directive.ts","../../../projects/addon-table/directives/table-control/checkbox-table.directive.ts","../../../projects/addon-table/directives/table-control/table-control.ts","../../../projects/addon-table/directives/table-control/taiga-ui-addon-table-directives-table-control.ts"],"sourcesContent":["import {computed, Directive, type Signal, signal} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiCheckboxRowDirective} from './checkbox-row.directive';\n\n@Directive({\n selector:\n '[tuiTable][ngModel],[tuiTable][formControl],[tuiTable][formControlName],[tuiTable][formField]',\n providers: [tuiFallbackValueProvider([])],\n})\nexport class TuiTableControlDirective<T> extends TuiControl<readonly T[]> {\n private readonly children = signal<ReadonlyArray<TuiCheckboxRowDirective<T>>>([]);\n\n public readonly checked: Signal<boolean> = computed(\n () =>\n !!this.children().length &&\n this.children().every((i) => this.value().includes(i.tuiCheckboxRow())),\n );\n\n public readonly indeterminate: Signal<boolean> = computed(\n () => !!this.value().length && !this.checked(),\n );\n\n public toggleAll(): void {\n this.onChange(\n this.checked() ? [] : this.children().map((i) => i.tuiCheckboxRow()),\n );\n }\n\n public process(checkbox: TuiCheckboxRowDirective<T>): void {\n this.children.update((children) => tuiArrayToggle(children, checkbox));\n }\n}\n","import {\n computed,\n Directive,\n inject,\n input,\n type OnDestroy,\n type OnInit,\n} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTableControlDirective} from './table-control.directive';\n\n@Directive({\n selector: '[tuiCheckbox][tuiCheckboxRow]',\n providers: [{provide: NgControl, useClass: NgModel}],\n host: {\n '[checked]': 'checked()',\n '(change)': 'onChange()',\n },\n})\nexport class TuiCheckboxRowDirective<T> implements OnInit, OnDestroy {\n private readonly control = inject(NgControl);\n\n private readonly parent: TuiTableControlDirective<T> = inject(\n TuiTableControlDirective,\n );\n\n protected readonly checked = computed((checked = this.parent\n .value()\n .includes(this.tuiCheckboxRow())) => {\n queueMicrotask(() => this.control.control?.setValue(checked));\n\n return checked;\n });\n\n public readonly tuiCheckboxRow = input.required<T>();\n\n public ngOnInit(): void {\n this.parent.process(this);\n }\n\n public ngOnDestroy(): void {\n this.parent.process(this);\n this.parent.onChange(\n this.parent.value().filter((item) => item !== this.tuiCheckboxRow()),\n );\n }\n\n protected onChange(): void {\n this.parent.onChange(tuiArrayToggle(this.parent.value(), this.tuiCheckboxRow()));\n }\n}\n","import {Directive, effect, inject} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiTableControlDirective} from './table-control.directive';\n\n@Directive({\n selector: '[tuiCheckbox][tuiCheckboxTable]',\n providers: [{provide: NgControl, useClass: NgModel}],\n host: {'(change)': 'parent.toggleAll()'},\n})\nexport class TuiCheckboxTableDirective {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly control = inject(NgControl);\n\n protected readonly parent = inject(TuiTableControlDirective);\n\n protected readonly update = effect(() => {\n const indeterminate = this.parent.indeterminate();\n const checked = this.parent.checked();\n\n this.el.indeterminate = indeterminate;\n this.el.checked = checked;\n this.control.control?.setValue(indeterminate ? null : checked);\n });\n}\n","import {TuiCheckboxRowDirective} from './checkbox-row.directive';\nimport {TuiCheckboxTableDirective} from './checkbox-table.directive';\nimport {TuiTableControlDirective} from './table-control.directive';\n\nexport const TuiTableControl = [\n TuiCheckboxRowDirective,\n TuiCheckboxTableDirective,\n TuiTableControlDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAYM,MAAO,wBAA4B,SAAQ,UAAwB,CAAA;AALzE,IAAA,WAAA,GAAA;;AAMqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAA4C,EAAE,CAAC;AAEjE,QAAA,IAAA,CAAA,OAAO,GAAoB,QAAQ,CAC/C,MACI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;YACxB,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAC9E;QAEe,IAAA,CAAA,aAAa,GAAoB,QAAQ,CACrD,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CACjD;AAWJ,IAAA;IATU,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,CACT,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC,CACvE;IACL;AAEO,IAAA,OAAO,CAAC,QAAoC,EAAA;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1E;+GArBS,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4IAFtB,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEhC,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EACJ,+FAA+F;AACnG,oBAAA,SAAS,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAC5C,iBAAA;;;MCUY,uBAAuB,CAAA;AARpC,IAAA,WAAA,GAAA;AASqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAE3B,QAAA,IAAA,CAAA,MAAM,GAAgC,MAAM,CACzD,wBAAwB,CAC3B;QAEkB,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AACjD,aAAA,KAAK;AACL,aAAA,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAI;AACpC,YAAA,cAAc,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAE7D,YAAA,OAAO,OAAO;AAClB,QAAA,CAAC,CAAC;AAEc,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,QAAQ,EAAK;AAgBvD,IAAA;IAdU,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B;IAEO,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,CACvE;IACL;IAEU,QAAQ,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACpF;+GA9BS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EANrB,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAM3C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;oBACzC,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC;AACpD,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,WAAW;AACxB,wBAAA,UAAU,EAAE,YAAY;AAC3B,qBAAA;AACJ,iBAAA;;;MCTY,yBAAyB,CAAA;AALtC,IAAA,WAAA,GAAA;QAMqB,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAoB;AACzC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAEzB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAEzC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAK;YACpC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAErC,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,aAAa;AACrC,YAAA,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,OAAO;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC;AAClE,QAAA,CAAC,CAAC;AACL,IAAA;+GAdY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAHvB,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAG3C,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iCAAiC;oBAC3C,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC;AACpD,oBAAA,IAAI,EAAE,EAAC,UAAU,EAAE,oBAAoB,EAAC;AAC3C,iBAAA;;;ACNM,MAAM,eAAe,GAAG;IAC3B,uBAAuB;IACvB,yBAAyB;IACzB,wBAAwB;;;ACP5B;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-table-directives-table-control.mjs","sources":["../../../projects/addon-table/directives/table-control/table-control.directive.ts","../../../projects/addon-table/directives/table-control/checkbox-row.directive.ts","../../../projects/addon-table/directives/table-control/checkbox-table.directive.ts","../../../projects/addon-table/directives/table-control/table-control.ts","../../../projects/addon-table/directives/table-control/taiga-ui-addon-table-directives-table-control.ts"],"sourcesContent":["import {computed, Directive, signal} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiCheckboxRowDirective} from './checkbox-row.directive';\n\n@Directive({\n selector:\n '[tuiTable][ngModel],[tuiTable][formControl],[tuiTable][formControlName],[tuiTable][formField]',\n providers: [tuiFallbackValueProvider([])],\n})\nexport class TuiTableControlDirective<T> extends TuiControl<readonly T[]> {\n private readonly children = signal<ReadonlyArray<TuiCheckboxRowDirective<T>>>([]);\n private readonly enabled = computed(() =>\n this.children().filter((i) => !i.disabled()),\n );\n\n public readonly checked = computed(\n () =>\n !!this.enabled().length &&\n this.enabled().every((i) => this.value().includes(i.tuiCheckboxRow())),\n );\n\n public readonly indeterminate = computed(\n () => !!this.value().length && !this.checked(),\n );\n\n public toggleAll(): void {\n this.onChange(\n this.children()\n .filter((i) =>\n i.disabled()\n ? this.value().includes(i.tuiCheckboxRow())\n : !this.checked(),\n )\n .map((i) => i.tuiCheckboxRow()),\n );\n }\n\n public process(checkbox: TuiCheckboxRowDirective<T>): void {\n this.children.update((children) => tuiArrayToggle(children, checkbox));\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n input,\n type OnDestroy,\n type OnInit,\n} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTableControlDirective} from './table-control.directive';\n\n@Directive({\n selector: '[tuiCheckbox][tuiCheckboxRow]',\n providers: [{provide: NgControl, useClass: NgModel}],\n host: {\n '[checked]': 'checked()',\n '(change)': 'onChange()',\n },\n})\nexport class TuiCheckboxRowDirective<T> implements OnInit, OnDestroy {\n private readonly control = inject(NgControl);\n\n private readonly parent: TuiTableControlDirective<T> = inject(\n TuiTableControlDirective,\n );\n\n protected readonly checked = computed((checked = this.parent\n .value()\n .includes(this.tuiCheckboxRow())) => {\n queueMicrotask(() => this.control.control?.setValue(checked));\n\n return checked;\n });\n\n protected readonly toggle = effect(() => {\n if (this.disabled()) {\n this.control.control?.disable();\n } else {\n this.control.control?.enable();\n }\n });\n\n public readonly tuiCheckboxRow = input.required<T>();\n public readonly disabled = input(false, {transform: booleanAttribute});\n\n public ngOnInit(): void {\n this.parent.process(this);\n }\n\n public ngOnDestroy(): void {\n this.parent.process(this);\n this.parent.onChange(\n this.parent.value().filter((item) => item !== this.tuiCheckboxRow()),\n );\n }\n\n protected onChange(): void {\n this.parent.onChange(tuiArrayToggle(this.parent.value(), this.tuiCheckboxRow()));\n }\n}\n","import {Directive, effect, inject} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiTableControlDirective} from './table-control.directive';\n\n@Directive({\n selector: '[tuiCheckbox][tuiCheckboxTable]',\n providers: [{provide: NgControl, useClass: NgModel}],\n host: {'(change)': 'parent.toggleAll()'},\n})\nexport class TuiCheckboxTableDirective {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly control = inject(NgControl);\n\n protected readonly parent = inject(TuiTableControlDirective);\n\n protected readonly update = effect(() => {\n const indeterminate = this.parent.indeterminate();\n const checked = this.parent.checked();\n\n this.el.indeterminate = indeterminate;\n this.el.checked = checked;\n this.control.control?.setValue(indeterminate ? null : checked);\n });\n}\n","import {TuiCheckboxRowDirective} from './checkbox-row.directive';\nimport {TuiCheckboxTableDirective} from './checkbox-table.directive';\nimport {TuiTableControlDirective} from './table-control.directive';\n\nexport const TuiTableControl = [\n TuiCheckboxRowDirective,\n TuiCheckboxTableDirective,\n TuiTableControlDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/addon-table",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.28.0-canary.57a3d74",
|
|
4
4
|
"description": "A library to display tabled data with filters, search, group actions, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"@angular/common": ">=19.0.0",
|
|
34
34
|
"@angular/core": ">=19.0.0",
|
|
35
35
|
"@ng-web-apis/intersection-observer": "^5.4.0",
|
|
36
|
-
"@taiga-ui/cdk": "5.
|
|
37
|
-
"@taiga-ui/core": "5.
|
|
38
|
-
"@taiga-ui/i18n": "5.
|
|
39
|
-
"@taiga-ui/kit": "5.
|
|
36
|
+
"@taiga-ui/cdk": "5.28.0",
|
|
37
|
+
"@taiga-ui/core": "5.28.0",
|
|
38
|
+
"@taiga-ui/i18n": "5.28.0",
|
|
39
|
+
"@taiga-ui/kit": "5.28.0",
|
|
40
40
|
"@taiga-ui/polymorpheus": "^5.0.1",
|
|
41
41
|
"rxjs": ">=7.0.0"
|
|
42
42
|
},
|
|
@@ -78,13 +78,13 @@
|
|
|
78
78
|
"types": "./components/table-pagination/index.d.ts",
|
|
79
79
|
"default": "./fesm2022/taiga-ui-addon-table-components-table-pagination.mjs"
|
|
80
80
|
},
|
|
81
|
-
"./directives/table-filters": {
|
|
82
|
-
"types": "./directives/table-filters/index.d.ts",
|
|
83
|
-
"default": "./fesm2022/taiga-ui-addon-table-directives-table-filters.mjs"
|
|
84
|
-
},
|
|
85
81
|
"./directives/table-control": {
|
|
86
82
|
"types": "./directives/table-control/index.d.ts",
|
|
87
83
|
"default": "./fesm2022/taiga-ui-addon-table-directives-table-control.mjs"
|
|
84
|
+
},
|
|
85
|
+
"./directives/table-filters": {
|
|
86
|
+
"types": "./directives/table-filters/index.d.ts",
|
|
87
|
+
"default": "./fesm2022/taiga-ui-addon-table-directives-table-filters.mjs"
|
|
88
88
|
}
|
|
89
89
|
},
|
|
90
90
|
"sideEffects": false,
|