@wlcm/angular 17.5.9 → 17.5.12

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.
Files changed (50) hide show
  1. package/forms/esm2022/lib/forms/components/select/select.component.mjs +25 -4
  2. package/forms/esm2022/lib/forms/constants/index.mjs +2 -1
  3. package/forms/esm2022/lib/forms/constants/select.constants.mjs +3 -0
  4. package/forms/esm2022/lib/forms/models/_index.mjs +2 -1
  5. package/forms/esm2022/lib/forms/models/select.models.mjs +2 -0
  6. package/forms/fesm2022/wlcm-angular-forms.mjs +25 -3
  7. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  8. package/forms/lib/forms/constants/index.d.ts +1 -0
  9. package/forms/lib/forms/constants/select.constants.d.ts +3 -0
  10. package/forms/lib/forms/models/_index.d.ts +1 -0
  11. package/forms/lib/forms/models/select.models.d.ts +4 -0
  12. package/package.json +9 -1
  13. package/table/README.md +7 -0
  14. package/table/esm2022/index.mjs +9 -0
  15. package/table/esm2022/lib/components/table/table.component.mjs +36 -0
  16. package/table/esm2022/lib/components/table-head/table-head.component.mjs +21 -0
  17. package/table/esm2022/lib/components/table-head-actions/table-head-actions.component.mjs +41 -0
  18. package/table/esm2022/lib/components/table-head-data/table-head-data.component.mjs +12 -0
  19. package/table/esm2022/lib/components/table-row/table-row.component.mjs +48 -0
  20. package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +53 -0
  21. package/table/esm2022/lib/components/table-row-data/table-row-data.component.mjs +12 -0
  22. package/table/esm2022/lib/components/table-row-spacer/table-row-spacer.component.mjs +12 -0
  23. package/table/esm2022/lib/constants/table-row.constants.mjs +3 -0
  24. package/table/esm2022/lib/constants/table.constants.mjs +5 -0
  25. package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +15 -0
  26. package/table/esm2022/lib/models/table-row.models.mjs +2 -0
  27. package/table/esm2022/lib/models/table-selection-model.mjs +45 -0
  28. package/table/esm2022/lib/models/table.models.mjs +2 -0
  29. package/table/esm2022/lib/pipes/table-row-injector.pipe.mjs +24 -0
  30. package/table/esm2022/lib/table.module.mjs +38 -0
  31. package/table/esm2022/wlcm-angular-table.mjs +5 -0
  32. package/table/fesm2022/wlcm-angular-table.mjs +308 -0
  33. package/table/fesm2022/wlcm-angular-table.mjs.map +1 -0
  34. package/table/index.d.ts +9 -0
  35. package/table/lib/components/table/table.component.d.ts +16 -0
  36. package/table/lib/components/table-head/table-head.component.d.ts +8 -0
  37. package/table/lib/components/table-head-actions/table-head-actions.component.d.ts +12 -0
  38. package/table/lib/components/table-head-data/table-head-data.component.d.ts +5 -0
  39. package/table/lib/components/table-row/table-row.component.d.ts +15 -0
  40. package/table/lib/components/table-row-actions/table-row-actions.component.d.ts +17 -0
  41. package/table/lib/components/table-row-data/table-row-data.component.d.ts +5 -0
  42. package/table/lib/components/table-row-spacer/table-row-spacer.component.d.ts +5 -0
  43. package/table/lib/constants/table-row.constants.d.ts +3 -0
  44. package/table/lib/constants/table.constants.d.ts +3 -0
  45. package/table/lib/directives/scrollable-table-container.directive.d.ts +5 -0
  46. package/table/lib/models/table-row.models.d.ts +8 -0
  47. package/table/lib/models/table-selection-model.d.ts +23 -0
  48. package/table/lib/models/table.models.d.ts +4 -0
  49. package/table/lib/pipes/table-row-injector.pipe.d.ts +9 -0
  50. package/table/lib/table.module.d.ts +13 -0
@@ -0,0 +1,308 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, Injector, Pipe, Component, Inject, output, HostBinding, input, effect, Directive, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { BehaviorSubject, map } from 'rxjs';
6
+ import { __decorate, __metadata } from 'tslib';
7
+ import * as i2 from '@wlcm/angular/forms';
8
+ import { WlcmFormsModule } from '@wlcm/angular/forms';
9
+ import * as i3 from '@angular/forms';
10
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
11
+ import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
12
+ import { RxLet } from '@rx-angular/template/let';
13
+
14
+ class WlcmTableSelectionModel {
15
+ constructor() {
16
+ this._selection = new Set();
17
+ this._selectionChanged = new BehaviorSubject(this._selection);
18
+ this.selectionChanged = this._selectionChanged.asObservable();
19
+ }
20
+ }
21
+ class DefaultWlcmTableSelectionModel extends WlcmTableSelectionModel {
22
+ constructor() {
23
+ super(...arguments);
24
+ this._values = [];
25
+ this._selectAll = false;
26
+ this.allSelected = this._selectionChanged.pipe(map(() => this._values.length > 0 && this._selection.size === this._values.length));
27
+ }
28
+ selectOne(value) {
29
+ this._selection.add(value);
30
+ this.triggerSelectionChanged();
31
+ }
32
+ deselectOne(value) {
33
+ this._selectAll = false;
34
+ this._selection.delete(value);
35
+ this.triggerSelectionChanged();
36
+ }
37
+ selectAll() {
38
+ this._selectAll = true;
39
+ this._selection.clear();
40
+ this._values.forEach((value) => this._selection.add(value));
41
+ this.triggerSelectionChanged();
42
+ }
43
+ deselectAll() {
44
+ this._selectAll = false;
45
+ this._selection.clear();
46
+ this.triggerSelectionChanged();
47
+ }
48
+ updateCollection(values) {
49
+ this._values = values;
50
+ if (this._selectAll)
51
+ this.selectAll();
52
+ }
53
+ triggerSelectionChanged() {
54
+ this._selectionChanged.next(this._selection);
55
+ }
56
+ }
57
+
58
+ const WLCM_TABLE_ROW_CONTEXT = new InjectionToken('WLCM_TABLE_ROW_CONTEXT');
59
+
60
+ class WlcmTableRowInjectorPipe {
61
+ constructor() {
62
+ this.injector = inject(Injector);
63
+ }
64
+ transform(context) {
65
+ return Injector.create({
66
+ providers: [{ provide: WLCM_TABLE_ROW_CONTEXT, useValue: context }],
67
+ parent: this.injector,
68
+ });
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowInjectorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
71
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowInjectorPipe, isStandalone: true, name: "wlcmTableRowInjector" }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowInjectorPipe, decorators: [{
74
+ type: Pipe,
75
+ args: [{
76
+ name: 'wlcmTableRowInjector',
77
+ standalone: true,
78
+ }]
79
+ }] });
80
+
81
+ let WlcmTableHeadActionsComponent = class WlcmTableHeadActionsComponent {
82
+ constructor(selectionModel) {
83
+ this.selectionModel = selectionModel;
84
+ this.control = new FormControl(false);
85
+ this.handleSelectionChange();
86
+ }
87
+ toggle(isChecked) {
88
+ if (isChecked) {
89
+ return this.selectionModel.selectAll();
90
+ }
91
+ this.selectionModel.deselectAll();
92
+ }
93
+ handleSelectionChange() {
94
+ this.selectionModel.allSelected
95
+ .pipe(untilDestroyed(this))
96
+ .subscribe((isSelected) => this.control.setValue(isSelected));
97
+ }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadActionsComponent, deps: [{ token: WlcmTableSelectionModel }], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableHeadActionsComponent, isStandalone: true, selector: "wlcm-table-head-actions", host: { classAttribute: "wlcm-table-head-actions" }, ngImport: i0, template: "<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i2.WlcmCheckboxComponent, selector: "wlcm-checkbox", outputs: ["changed"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
100
+ };
101
+ WlcmTableHeadActionsComponent = __decorate([
102
+ UntilDestroy(),
103
+ __metadata("design:paramtypes", [WlcmTableSelectionModel])
104
+ ], WlcmTableHeadActionsComponent);
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadActionsComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'wlcm-table-head-actions', host: { class: 'wlcm-table-head-actions' }, standalone: true, imports: [CommonModule, WlcmFormsModule, ReactiveFormsModule], template: "<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n" }]
108
+ }], ctorParameters: () => [{ type: WlcmTableSelectionModel }] });
109
+
110
+ const WLCM_TABLE_CONFIG = new InjectionToken('WLCM_TABLE_CONFIG', {
111
+ factory: () => ({ selectable: false }),
112
+ });
113
+
114
+ class WlcmTableHeadComponent {
115
+ constructor(tableConfig) {
116
+ this.tableConfig = tableConfig;
117
+ }
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, deps: [{ token: WLCM_TABLE_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableHeadComponent, isStandalone: true, selector: "wlcm-table-head", host: { classAttribute: "wlcm-table-head" }, ngImport: i0, template: "<wlcm-table-head-actions\n *ngIf=\"tableConfig.selectable\"\n></wlcm-table-head-actions>\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmTableHeadActionsComponent, selector: "wlcm-table-head-actions" }] }); }
120
+ }
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ selector: 'wlcm-table-head', host: { class: 'wlcm-table-head' }, standalone: true, imports: [CommonModule, WlcmTableHeadActionsComponent], template: "<wlcm-table-head-actions\n *ngIf=\"tableConfig.selectable\"\n></wlcm-table-head-actions>\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n" }]
124
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
125
+ type: Inject,
126
+ args: [WLCM_TABLE_CONFIG]
127
+ }] }] });
128
+
129
+ let WlcmTableRowActionsComponent = class WlcmTableRowActionsComponent {
130
+ constructor(selectionModel, rowContext) {
131
+ this.selectionModel = selectionModel;
132
+ this.rowContext = rowContext;
133
+ this.control = new FormControl(false);
134
+ this.selectionChanged = output();
135
+ this.rowId = this.rowContext.selectId(this.rowContext.$implicit);
136
+ this.handleSelectionChange();
137
+ }
138
+ toggle(isChecked) {
139
+ if (isChecked) {
140
+ return this.selectionModel.selectOne(this.rowId);
141
+ }
142
+ this.selectionModel.deselectOne(this.rowId);
143
+ }
144
+ handleSelectionChange() {
145
+ this.selectionModel.selectionChanged
146
+ .pipe(untilDestroyed(this))
147
+ .pipe(map((collection) => collection.has(this.rowId)))
148
+ .subscribe((isSelected) => {
149
+ this.control.setValue(isSelected);
150
+ this.selectionChanged.emit(isSelected);
151
+ });
152
+ }
153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, deps: [{ token: WlcmTableSelectionModel }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowActionsComponent, isStandalone: true, selector: "wlcm-table-row-actions", outputs: { selectionChanged: "selectionChanged" }, host: { classAttribute: "wlcm-table-row-actions" }, ngImport: i0, template: "<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i2.WlcmCheckboxComponent, selector: "wlcm-checkbox", outputs: ["changed"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
155
+ };
156
+ WlcmTableRowActionsComponent = __decorate([
157
+ UntilDestroy(),
158
+ __metadata("design:paramtypes", [WlcmTableSelectionModel, Object])
159
+ ], WlcmTableRowActionsComponent);
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, decorators: [{
161
+ type: Component,
162
+ args: [{ selector: 'wlcm-table-row-actions', host: { class: 'wlcm-table-row-actions' }, standalone: true, imports: [CommonModule, WlcmFormsModule, ReactiveFormsModule], template: "<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n" }]
163
+ }], ctorParameters: () => [{ type: WlcmTableSelectionModel }, { type: undefined, decorators: [{
164
+ type: Inject,
165
+ args: [WLCM_TABLE_ROW_CONTEXT]
166
+ }] }] });
167
+
168
+ class WlcmTableRowComponent {
169
+ get isSelected() {
170
+ return this._isSelected;
171
+ }
172
+ get first() {
173
+ return this.rowContext.first;
174
+ }
175
+ get last() {
176
+ return this.rowContext.last;
177
+ }
178
+ constructor(tableConfig, rowContext) {
179
+ this.tableConfig = tableConfig;
180
+ this.rowContext = rowContext;
181
+ this._isSelected = false;
182
+ }
183
+ handleSelectionChange(isSelected) {
184
+ this._isSelected = isSelected;
185
+ }
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: WLCM_TABLE_CONFIG }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
187
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-selected": "this.isSelected", "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n (selectionChanged)=\"handleSelectionChange($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmTableRowActionsComponent, selector: "wlcm-table-row-actions", outputs: ["selectionChanged"] }] }); }
188
+ }
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, decorators: [{
190
+ type: Component,
191
+ args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent], template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n (selectionChanged)=\"handleSelectionChange($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n" }]
192
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
193
+ type: Inject,
194
+ args: [WLCM_TABLE_CONFIG]
195
+ }] }, { type: undefined, decorators: [{
196
+ type: Inject,
197
+ args: [WLCM_TABLE_ROW_CONTEXT]
198
+ }] }], propDecorators: { isSelected: [{
199
+ type: HostBinding,
200
+ args: ['class.wlcm-table-row-selected']
201
+ }], first: [{
202
+ type: HostBinding,
203
+ args: ['class.wlcm-table-row-first']
204
+ }], last: [{
205
+ type: HostBinding,
206
+ args: ['class.wlcm-table-row-last']
207
+ }] } });
208
+
209
+ class WlcmTableRowSpacerComponent {
210
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowSpacerComponent, isStandalone: true, selector: "wlcm-table-row-spacer", host: { classAttribute: "wlcm-table-row-spacer" }, ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
212
+ }
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowSpacerComponent, decorators: [{
214
+ type: Component,
215
+ args: [{ selector: 'wlcm-table-row-spacer', host: { class: 'wlcm-table-row-spacer' }, standalone: true, imports: [CommonModule], template: "" }]
216
+ }] });
217
+
218
+ class WlcmTableComponent {
219
+ constructor(selectionModel) {
220
+ this.selectionModel = selectionModel;
221
+ this.rows = input([]);
222
+ this.headTemplate = input.required();
223
+ this.rowTemplate = input.required();
224
+ this.selectId = input.required();
225
+ this.injector = inject(Injector);
226
+ effect(() => this.selectionModel.updateCollection(this.rows().map(this.selectId())));
227
+ }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, deps: [{ token: WlcmTableSelectionModel }], target: i0.ɵɵFactoryTarget.Component }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableComponent, isStandalone: true, selector: "wlcm-table", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, headTemplate: { classPropertyName: "headTemplate", publicName: "headTemplate", isSignal: true, isRequired: true, transformFunction: null }, rowTemplate: { classPropertyName: "rowTemplate", publicName: "rowTemplate", isSignal: true, isRequired: true, transformFunction: null }, selectId: { classPropertyName: "selectId", publicName: "selectId", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "wlcm-table" }, providers: [{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel }], ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"headTemplate(); injector: injector\"\n></ng-container>\n\n<tbody>\n @for (row of rows(); track row; let index = $index; let first = $first; let\n last = $last) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n index: index,\n first: first,\n last: last,\n };\n let context\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate();\n context: context;\n injector: context | wlcmTableRowInjector\n \"\n >\n </ng-container>\n </ng-container>\n\n }\n</tbody>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: WlcmTableRowInjectorPipe, name: "wlcmTableRowInjector" }, { kind: "component", type: WlcmTableRowSpacerComponent, selector: "wlcm-table-row-spacer" }, { kind: "directive", type: RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }] }); }
230
+ }
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, decorators: [{
232
+ type: Component,
233
+ args: [{ selector: 'wlcm-table', host: { class: 'wlcm-table' }, standalone: true, imports: [
234
+ CommonModule,
235
+ WlcmTableHeadComponent,
236
+ WlcmTableRowComponent,
237
+ WlcmTableRowInjectorPipe,
238
+ WlcmTableRowSpacerComponent,
239
+ RxLet,
240
+ ], providers: [{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel }], template: "<ng-container\n *ngTemplateOutlet=\"headTemplate(); injector: injector\"\n></ng-container>\n\n<tbody>\n @for (row of rows(); track row; let index = $index; let first = $first; let\n last = $last) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n index: index,\n first: first,\n last: last,\n };\n let context\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate();\n context: context;\n injector: context | wlcmTableRowInjector\n \"\n >\n </ng-container>\n </ng-container>\n\n }\n</tbody>\n" }]
241
+ }], ctorParameters: () => [{ type: WlcmTableSelectionModel }] });
242
+
243
+ class WlcmTableHeadDataComponent {
244
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
245
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableHeadDataComponent, isStandalone: true, selector: "wlcm-table-head-data", host: { classAttribute: "wlcm-table-head-data" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
246
+ }
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadDataComponent, decorators: [{
248
+ type: Component,
249
+ args: [{ selector: 'wlcm-table-head-data', host: { class: 'wlcm-table-head-data' }, standalone: true, imports: [CommonModule], template: "<ng-content></ng-content>\n" }]
250
+ }] });
251
+
252
+ class WlcmTableRowDataComponent {
253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowDataComponent, isStandalone: true, selector: "wlcm-table-row-data", host: { classAttribute: "wlcm-table-row-data" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
255
+ }
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowDataComponent, decorators: [{
257
+ type: Component,
258
+ args: [{ selector: 'wlcm-table-row-data', host: { class: 'wlcm-table-row-data' }, standalone: true, imports: [CommonModule], template: "<ng-content></ng-content>\n" }]
259
+ }] });
260
+
261
+ class WlcmScrollableTableContainerDirective {
262
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmScrollableTableContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
263
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmScrollableTableContainerDirective, isStandalone: true, selector: "[wlcmScrollableTableContainer]", host: { classAttribute: "wlcm-scrollable-table-container" }, ngImport: i0 }); }
264
+ }
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmScrollableTableContainerDirective, decorators: [{
266
+ type: Directive,
267
+ args: [{
268
+ selector: '[wlcmScrollableTableContainer]',
269
+ host: { class: 'wlcm-scrollable-table-container' },
270
+ standalone: true,
271
+ }]
272
+ }] });
273
+
274
+ const publicComponents = [
275
+ WlcmTableComponent,
276
+ WlcmTableHeadComponent,
277
+ WlcmTableHeadDataComponent,
278
+ WlcmTableRowDataComponent,
279
+ WlcmTableRowComponent,
280
+ ];
281
+ const publicDirectives = [WlcmScrollableTableContainerDirective];
282
+ class WlcmTableModule {
283
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
284
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableModule, imports: [CommonModule, WlcmTableComponent,
285
+ WlcmTableHeadComponent,
286
+ WlcmTableHeadDataComponent,
287
+ WlcmTableRowDataComponent,
288
+ WlcmTableRowComponent, WlcmScrollableTableContainerDirective], exports: [WlcmTableComponent,
289
+ WlcmTableHeadComponent,
290
+ WlcmTableHeadDataComponent,
291
+ WlcmTableRowDataComponent,
292
+ WlcmTableRowComponent, WlcmScrollableTableContainerDirective] }); }
293
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableModule, imports: [CommonModule, publicComponents] }); }
294
+ }
295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableModule, decorators: [{
296
+ type: NgModule,
297
+ args: [{
298
+ imports: [CommonModule, ...publicComponents, ...publicDirectives],
299
+ exports: [...publicComponents, ...publicDirectives],
300
+ }]
301
+ }] });
302
+
303
+ /**
304
+ * Generated bundle index. Do not edit.
305
+ */
306
+
307
+ export { WLCM_TABLE_CONFIG, WlcmScrollableTableContainerDirective, WlcmTableComponent, WlcmTableHeadComponent, WlcmTableHeadDataComponent, WlcmTableModule, WlcmTableRowComponent, WlcmTableRowDataComponent };
308
+ //# sourceMappingURL=wlcm-angular-table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wlcm-angular-table.mjs","sources":["../../../../modules/table/src/lib/models/table-selection-model.ts","../../../../modules/table/src/lib/constants/table-row.constants.ts","../../../../modules/table/src/lib/pipes/table-row-injector.pipe.ts","../../../../modules/table/src/lib/components/table-head-actions/table-head-actions.component.ts","../../../../modules/table/src/lib/components/table-head-actions/table-head-actions.component.html","../../../../modules/table/src/lib/constants/table.constants.ts","../../../../modules/table/src/lib/components/table-head/table-head.component.ts","../../../../modules/table/src/lib/components/table-head/table-head.component.html","../../../../modules/table/src/lib/components/table-row-actions/table-row-actions.component.ts","../../../../modules/table/src/lib/components/table-row-actions/table-row-actions.component.html","../../../../modules/table/src/lib/components/table-row/table-row.component.ts","../../../../modules/table/src/lib/components/table-row/table-row.component.html","../../../../modules/table/src/lib/components/table-row-spacer/table-row-spacer.component.ts","../../../../modules/table/src/lib/components/table-row-spacer/table-row-spacer.component.html","../../../../modules/table/src/lib/components/table/table.component.ts","../../../../modules/table/src/lib/components/table/table.component.html","../../../../modules/table/src/lib/components/table-head-data/table-head-data.component.ts","../../../../modules/table/src/lib/components/table-head-data/table-head-data.component.html","../../../../modules/table/src/lib/components/table-row-data/table-row-data.component.ts","../../../../modules/table/src/lib/components/table-row-data/table-row-data.component.html","../../../../modules/table/src/lib/directives/scrollable-table-container.directive.ts","../../../../modules/table/src/lib/table.module.ts","../../../../modules/table/src/wlcm-angular-table.ts"],"sourcesContent":["import { BehaviorSubject, Observable, map } from 'rxjs';\n\nexport abstract class WlcmTableSelectionModel {\n protected _selection: Set<string> = new Set();\n\n protected readonly _selectionChanged: BehaviorSubject<Set<string>> = new BehaviorSubject(this._selection);\n\n readonly selectionChanged: Observable<Set<string>> = this._selectionChanged.asObservable();\n\n abstract readonly allSelected: Observable<boolean>;\n\n abstract selectOne(value: string): void;\n\n abstract deselectOne(value: string): void;\n\n abstract selectAll(): void;\n\n abstract deselectAll(): void;\n\n abstract updateCollection(values: string[]): void;\n}\n\nexport class DefaultWlcmTableSelectionModel extends WlcmTableSelectionModel {\n private _values: string[] = [];\n\n private _selectAll: boolean = false;\n\n readonly allSelected: Observable<boolean> = this._selectionChanged.pipe(\n map(() => this._values.length > 0 && this._selection.size === this._values.length)\n );\n\n selectOne(value: string): void {\n this._selection.add(value);\n\n this.triggerSelectionChanged();\n }\n\n deselectOne(value: string): void {\n this._selectAll = false;\n\n this._selection.delete(value);\n\n this.triggerSelectionChanged();\n }\n\n selectAll(): void {\n this._selectAll = true;\n\n this._selection.clear();\n\n this._values.forEach((value: string) => this._selection.add(value));\n\n this.triggerSelectionChanged();\n }\n\n deselectAll(): void {\n this._selectAll = false;\n\n this._selection.clear();\n\n this.triggerSelectionChanged();\n }\n\n updateCollection(values: string[]): void {\n this._values = values;\n\n if (this._selectAll) this.selectAll();\n }\n\n private triggerSelectionChanged(): void {\n this._selectionChanged.next(this._selection);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { WlcmTableRowContext } from '../models/table-row.models';\n\nexport const WLCM_TABLE_ROW_CONTEXT: InjectionToken<WlcmTableRowContext<unknown>> = new InjectionToken(\n 'WLCM_TABLE_ROW_CONTEXT'\n);\n","import { Injector, Pipe, PipeTransform, inject } from '@angular/core';\nimport { WlcmTableRowContext } from '../models/table-row.models';\nimport { WLCM_TABLE_ROW_CONTEXT } from '../constants/table-row.constants';\n\n@Pipe({\n name: 'wlcmTableRowInjector',\n standalone: true,\n})\nexport class WlcmTableRowInjectorPipe<T> implements PipeTransform {\n protected injector: Injector = inject(Injector);\n\n transform(context: WlcmTableRowContext<T>): Injector {\n return Injector.create({\n providers: [{ provide: WLCM_TABLE_ROW_CONTEXT, useValue: context }],\n parent: this.injector,\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFormsModule } from '@wlcm/angular/forms';\nimport { WlcmTableSelectionModel } from '../../models/table-selection-model';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-table-head-actions',\n host: { class: 'wlcm-table-head-actions' },\n standalone: true,\n imports: [CommonModule, WlcmFormsModule, ReactiveFormsModule],\n templateUrl: './table-head-actions.component.html',\n styleUrl: './table-head-actions.component.scss',\n})\nexport class WlcmTableHeadActionsComponent {\n readonly control: FormControl = new FormControl(false);\n\n constructor(private selectionModel: WlcmTableSelectionModel) {\n this.handleSelectionChange();\n }\n\n toggle(isChecked: boolean): void {\n if (isChecked) {\n return this.selectionModel.selectAll();\n }\n\n this.selectionModel.deselectAll();\n }\n\n private handleSelectionChange(): void {\n this.selectionModel.allSelected\n .pipe(untilDestroyed(this))\n .subscribe((isSelected: boolean) => this.control.setValue(isSelected));\n }\n}\n","<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n","import { InjectionToken } from '@angular/core';\nimport { WlcmTableConfig } from '../models/table.models';\n\nexport const WLCM_TABLE_CONFIG: InjectionToken<WlcmTableConfig> = new InjectionToken('WLCM_TABLE_CONFIG', {\n factory: () => ({ selectable: false }),\n});\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmTableHeadActionsComponent } from '../table-head-actions/table-head-actions.component';\nimport { WLCM_TABLE_CONFIG } from '../../constants/table.constants';\nimport { WlcmTableConfig } from '../../models/table.models';\n\n@Component({\n selector: 'wlcm-table-head',\n host: { class: 'wlcm-table-head' },\n standalone: true,\n imports: [CommonModule, WlcmTableHeadActionsComponent],\n templateUrl: './table-head.component.html',\n styleUrl: './table-head.component.scss',\n})\nexport class WlcmTableHeadComponent {\n constructor(@Inject(WLCM_TABLE_CONFIG) protected tableConfig: WlcmTableConfig) {}\n}\n","<wlcm-table-head-actions\n *ngIf=\"tableConfig.selectable\"\n></wlcm-table-head-actions>\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n","import { Component, Inject, OutputEmitterRef, output } from '@angular/core';\nimport { WlcmTableSelectionModel } from '../../models/table-selection-model';\nimport { WLCM_TABLE_ROW_CONTEXT } from '../../constants/table-row.constants';\nimport { WlcmTableRowContext } from '../../models/table-row.models';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WlcmFormsModule } from '@wlcm/angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { map } from 'rxjs';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-table-row-actions',\n host: { class: 'wlcm-table-row-actions' },\n standalone: true,\n imports: [CommonModule, WlcmFormsModule, ReactiveFormsModule],\n templateUrl: './table-row-actions.component.html',\n styleUrl: './table-row-actions.component.scss',\n})\nexport class WlcmTableRowActionsComponent<T = unknown> {\n rowId!: string;\n\n readonly control: FormControl = new FormControl(false);\n\n selectionChanged: OutputEmitterRef<boolean> = output();\n\n constructor(\n private selectionModel: WlcmTableSelectionModel,\n @Inject(WLCM_TABLE_ROW_CONTEXT) private rowContext: WlcmTableRowContext<T>\n ) {\n this.rowId = this.rowContext.selectId(this.rowContext.$implicit);\n\n this.handleSelectionChange();\n }\n\n toggle(isChecked: boolean): void {\n if (isChecked) {\n return this.selectionModel.selectOne(this.rowId);\n }\n\n this.selectionModel.deselectOne(this.rowId);\n }\n\n private handleSelectionChange(): void {\n this.selectionModel.selectionChanged\n .pipe(untilDestroyed(this))\n .pipe(map((collection: Set<string>) => collection.has(this.rowId)))\n .subscribe((isSelected: boolean) => {\n this.control.setValue(isSelected);\n\n this.selectionChanged.emit(isSelected);\n });\n }\n}\n","<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n","import { Component, HostBinding, Inject } from '@angular/core';\nimport { WlcmTableRowActionsComponent } from '../table-row-actions/table-row-actions.component';\nimport { WLCM_TABLE_ROW_CONTEXT } from '../../constants/table-row.constants';\nimport { WLCM_TABLE_CONFIG } from '../../constants/table.constants';\nimport { WlcmTableRowContext } from '../../models/table-row.models';\nimport { WlcmTableConfig } from '../../models/table.models';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-table-row',\n host: { class: 'wlcm-table-row' },\n standalone: true,\n imports: [CommonModule, WlcmTableRowActionsComponent],\n templateUrl: './table-row.component.html',\n styleUrl: './table-row.component.scss',\n})\nexport class WlcmTableRowComponent<T = unknown> {\n private _isSelected: boolean = false;\n\n @HostBinding('class.wlcm-table-row-selected') get isSelected() {\n return this._isSelected;\n }\n\n @HostBinding('class.wlcm-table-row-first') get first() {\n return this.rowContext.first;\n }\n\n @HostBinding('class.wlcm-table-row-last') get last() {\n return this.rowContext.last;\n }\n\n constructor(\n @Inject(WLCM_TABLE_CONFIG) protected tableConfig: WlcmTableConfig,\n @Inject(WLCM_TABLE_ROW_CONTEXT) private rowContext: WlcmTableRowContext<T>\n ) {}\n\n handleSelectionChange(isSelected: boolean): void {\n this._isSelected = isSelected;\n }\n}\n","<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n (selectionChanged)=\"handleSelectionChange($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-table-row-spacer',\n host: { class: 'wlcm-table-row-spacer' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './table-row-spacer.component.html',\n styleUrl: './table-row-spacer.component.scss',\n})\nexport class WlcmTableRowSpacerComponent {}\n","","import { Component, Injector, InputSignal, TemplateRef, effect, inject, input } from '@angular/core';\nimport { DefaultWlcmTableSelectionModel, WlcmTableSelectionModel } from '../../models/table-selection-model';\nimport { WlcmTableRowInjectorPipe } from '../../pipes/table-row-injector.pipe';\nimport { WlcmTableHeadComponent } from '../table-head/table-head.component';\nimport { WlcmTableRowComponent } from '../table-row/table-row.component';\nimport { WlcmTableRowContext } from '../../models/table-row.models';\nimport { WlcmTableSelectIdFn } from '../../models/table.models';\nimport { WlcmTableRowSpacerComponent } from '../table-row-spacer/table-row-spacer.component';\nimport { RxLet } from '@rx-angular/template/let';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-table',\n host: { class: 'wlcm-table' },\n standalone: true,\n imports: [\n CommonModule,\n WlcmTableHeadComponent,\n WlcmTableRowComponent,\n WlcmTableRowInjectorPipe,\n WlcmTableRowSpacerComponent,\n RxLet,\n ],\n providers: [{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel }],\n templateUrl: './table.component.html',\n styleUrl: './table.component.scss',\n})\nexport class WlcmTableComponent<T = unknown> {\n rows: InputSignal<T[]> = input<T[]>([]);\n\n headTemplate: InputSignal<TemplateRef<void>> = input.required();\n\n rowTemplate: InputSignal<TemplateRef<WlcmTableRowContext<T>>> = input.required();\n\n selectId: InputSignal<WlcmTableSelectIdFn<T>> = input.required();\n\n injector: Injector = inject(Injector);\n\n constructor(private selectionModel: WlcmTableSelectionModel) {\n effect(() => this.selectionModel.updateCollection(this.rows().map(this.selectId())));\n }\n}\n","<ng-container\n *ngTemplateOutlet=\"headTemplate(); injector: injector\"\n></ng-container>\n\n<tbody>\n @for (row of rows(); track row; let index = $index; let first = $first; let\n last = $last) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n index: index,\n first: first,\n last: last,\n };\n let context\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate();\n context: context;\n injector: context | wlcmTableRowInjector\n \"\n >\n </ng-container>\n </ng-container>\n\n }\n</tbody>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-table-head-data',\n host: { class: 'wlcm-table-head-data' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './table-head-data.component.html',\n styleUrl: './table-head-data.component.scss',\n})\nexport class WlcmTableHeadDataComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wlcm-table-row-data',\n host: { class: 'wlcm-table-row-data' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './table-row-data.component.html',\n styleUrl: './table-row-data.component.scss',\n})\nexport class WlcmTableRowDataComponent {}\n","<ng-content></ng-content>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[wlcmScrollableTableContainer]',\n host: { class: 'wlcm-scrollable-table-container' },\n standalone: true,\n})\nexport class WlcmScrollableTableContainerDirective {}\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmTableComponent } from './components/table/table.component';\nimport { WlcmTableHeadComponent } from './components/table-head/table-head.component';\nimport { WlcmTableHeadDataComponent } from './components/table-head-data/table-head-data.component';\nimport { WlcmTableRowComponent } from './components/table-row/table-row.component';\nimport { WlcmTableRowDataComponent } from './components/table-row-data/table-row-data.component';\nimport { WlcmScrollableTableContainerDirective } from './directives/scrollable-table-container.directive';\n\nconst publicComponents: Type<unknown>[] = [\n WlcmTableComponent,\n WlcmTableHeadComponent,\n WlcmTableHeadDataComponent,\n WlcmTableRowDataComponent,\n WlcmTableRowComponent,\n];\n\nconst publicDirectives: Type<unknown>[] = [WlcmScrollableTableContainerDirective];\n\n@NgModule({\n imports: [CommonModule, ...publicComponents, ...publicDirectives],\n exports: [...publicComponents, ...publicDirectives],\n})\nexport class WlcmTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.WlcmTableSelectionModel"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { WlcmTableModule } from './lib/table.module';
2
+ export { WlcmTableComponent } from './lib/components/table/table.component';
3
+ export { WlcmTableHeadComponent } from './lib/components/table-head/table-head.component';
4
+ export { WlcmTableHeadDataComponent } from './lib/components/table-head-data/table-head-data.component';
5
+ export { WlcmScrollableTableContainerDirective } from './lib/directives/scrollable-table-container.directive';
6
+ export { WlcmTableRowDataComponent } from './lib/components/table-row-data/table-row-data.component';
7
+ export { WlcmTableRowComponent } from './lib/components/table-row/table-row.component';
8
+ export { WlcmTableSelectIdFn, WlcmTableConfig } from './lib/models/table.models';
9
+ export { WLCM_TABLE_CONFIG } from './lib/constants/table.constants';
@@ -0,0 +1,16 @@
1
+ import { Injector, InputSignal, TemplateRef } from '@angular/core';
2
+ import { WlcmTableSelectionModel } from '../../models/table-selection-model';
3
+ import { WlcmTableRowContext } from '../../models/table-row.models';
4
+ import { WlcmTableSelectIdFn } from '../../models/table.models';
5
+ import * as i0 from "@angular/core";
6
+ export declare class WlcmTableComponent<T = unknown> {
7
+ private selectionModel;
8
+ rows: InputSignal<T[]>;
9
+ headTemplate: InputSignal<TemplateRef<void>>;
10
+ rowTemplate: InputSignal<TemplateRef<WlcmTableRowContext<T>>>;
11
+ selectId: InputSignal<WlcmTableSelectIdFn<T>>;
12
+ injector: Injector;
13
+ constructor(selectionModel: WlcmTableSelectionModel);
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableComponent<any>, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableComponent<any>, "wlcm-table", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "headTemplate": { "alias": "headTemplate"; "required": true; "isSignal": true; }; "rowTemplate": { "alias": "rowTemplate"; "required": true; "isSignal": true; }; "selectId": { "alias": "selectId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,8 @@
1
+ import { WlcmTableConfig } from '../../models/table.models';
2
+ import * as i0 from "@angular/core";
3
+ export declare class WlcmTableHeadComponent {
4
+ protected tableConfig: WlcmTableConfig;
5
+ constructor(tableConfig: WlcmTableConfig);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableHeadComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableHeadComponent, "wlcm-table-head", never, {}, {}, never, ["wlcm-table-head-data"], true, never>;
8
+ }
@@ -0,0 +1,12 @@
1
+ import { WlcmTableSelectionModel } from '../../models/table-selection-model';
2
+ import { FormControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class WlcmTableHeadActionsComponent {
5
+ private selectionModel;
6
+ readonly control: FormControl;
7
+ constructor(selectionModel: WlcmTableSelectionModel);
8
+ toggle(isChecked: boolean): void;
9
+ private handleSelectionChange;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableHeadActionsComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableHeadActionsComponent, "wlcm-table-head-actions", never, {}, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class WlcmTableHeadDataComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableHeadDataComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableHeadDataComponent, "wlcm-table-head-data", never, {}, {}, never, ["*"], true, never>;
5
+ }
@@ -0,0 +1,15 @@
1
+ import { WlcmTableRowContext } from '../../models/table-row.models';
2
+ import { WlcmTableConfig } from '../../models/table.models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class WlcmTableRowComponent<T = unknown> {
5
+ protected tableConfig: WlcmTableConfig;
6
+ private rowContext;
7
+ private _isSelected;
8
+ get isSelected(): boolean;
9
+ get first(): boolean;
10
+ get last(): boolean;
11
+ constructor(tableConfig: WlcmTableConfig, rowContext: WlcmTableRowContext<T>);
12
+ handleSelectionChange(isSelected: boolean): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableRowComponent<any>, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableRowComponent<any>, "wlcm-table-row", never, {}, {}, never, ["wlcm-table-row-data"], true, never>;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { OutputEmitterRef } from '@angular/core';
2
+ import { WlcmTableSelectionModel } from '../../models/table-selection-model';
3
+ import { WlcmTableRowContext } from '../../models/table-row.models';
4
+ import { FormControl } from '@angular/forms';
5
+ import * as i0 from "@angular/core";
6
+ export declare class WlcmTableRowActionsComponent<T = unknown> {
7
+ private selectionModel;
8
+ private rowContext;
9
+ rowId: string;
10
+ readonly control: FormControl;
11
+ selectionChanged: OutputEmitterRef<boolean>;
12
+ constructor(selectionModel: WlcmTableSelectionModel, rowContext: WlcmTableRowContext<T>);
13
+ toggle(isChecked: boolean): void;
14
+ private handleSelectionChange;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableRowActionsComponent<any>, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableRowActionsComponent<any>, "wlcm-table-row-actions", never, {}, { "selectionChanged": "selectionChanged"; }, never, never, true, never>;
17
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class WlcmTableRowDataComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableRowDataComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableRowDataComponent, "wlcm-table-row-data", never, {}, {}, never, ["*"], true, never>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class WlcmTableRowSpacerComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableRowSpacerComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableRowSpacerComponent, "wlcm-table-row-spacer", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { WlcmTableRowContext } from '../models/table-row.models';
3
+ export declare const WLCM_TABLE_ROW_CONTEXT: InjectionToken<WlcmTableRowContext<unknown>>;
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { WlcmTableConfig } from '../models/table.models';
3
+ export declare const WLCM_TABLE_CONFIG: InjectionToken<WlcmTableConfig>;
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class WlcmScrollableTableContainerDirective {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmScrollableTableContainerDirective, never>;
4
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmScrollableTableContainerDirective, "[wlcmScrollableTableContainer]", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,8 @@
1
+ import { WlcmTableSelectIdFn } from './table.models';
2
+ export interface WlcmTableRowContext<T> {
3
+ $implicit: T;
4
+ selectId: WlcmTableSelectIdFn<T>;
5
+ index: number;
6
+ first: boolean;
7
+ last: boolean;
8
+ }
@@ -0,0 +1,23 @@
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
+ export declare abstract class WlcmTableSelectionModel {
3
+ protected _selection: Set<string>;
4
+ protected readonly _selectionChanged: BehaviorSubject<Set<string>>;
5
+ readonly selectionChanged: Observable<Set<string>>;
6
+ abstract readonly allSelected: Observable<boolean>;
7
+ abstract selectOne(value: string): void;
8
+ abstract deselectOne(value: string): void;
9
+ abstract selectAll(): void;
10
+ abstract deselectAll(): void;
11
+ abstract updateCollection(values: string[]): void;
12
+ }
13
+ export declare class DefaultWlcmTableSelectionModel extends WlcmTableSelectionModel {
14
+ private _values;
15
+ private _selectAll;
16
+ readonly allSelected: Observable<boolean>;
17
+ selectOne(value: string): void;
18
+ deselectOne(value: string): void;
19
+ selectAll(): void;
20
+ deselectAll(): void;
21
+ updateCollection(values: string[]): void;
22
+ private triggerSelectionChanged;
23
+ }
@@ -0,0 +1,4 @@
1
+ export interface WlcmTableConfig {
2
+ selectable: boolean;
3
+ }
4
+ export type WlcmTableSelectIdFn<T> = (row: T) => string;
@@ -0,0 +1,9 @@
1
+ import { Injector, PipeTransform } from '@angular/core';
2
+ import { WlcmTableRowContext } from '../models/table-row.models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class WlcmTableRowInjectorPipe<T> implements PipeTransform {
5
+ protected injector: Injector;
6
+ transform(context: WlcmTableRowContext<T>): Injector;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableRowInjectorPipe<any>, never>;
8
+ static ɵpipe: i0.ɵɵPipeDeclaration<WlcmTableRowInjectorPipe<any>, "wlcmTableRowInjector", true>;
9
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "./components/table/table.component";
4
+ import * as i3 from "./components/table-head/table-head.component";
5
+ import * as i4 from "./components/table-head-data/table-head-data.component";
6
+ import * as i5 from "./components/table-row-data/table-row-data.component";
7
+ import * as i6 from "./components/table-row/table-row.component";
8
+ import * as i7 from "./directives/scrollable-table-container.directive";
9
+ export declare class WlcmTableModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<WlcmTableModule, never, [typeof i1.CommonModule, typeof i2.WlcmTableComponent, typeof i3.WlcmTableHeadComponent, typeof i4.WlcmTableHeadDataComponent, typeof i5.WlcmTableRowDataComponent, typeof i6.WlcmTableRowComponent, typeof i7.WlcmScrollableTableContainerDirective], [typeof i2.WlcmTableComponent, typeof i3.WlcmTableHeadComponent, typeof i4.WlcmTableHeadDataComponent, typeof i5.WlcmTableRowDataComponent, typeof i6.WlcmTableRowComponent, typeof i7.WlcmScrollableTableContainerDirective]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<WlcmTableModule>;
13
+ }