@wlcm/angular 17.7.31 → 17.7.32
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/package.json +1 -1
- package/table/esm2022/lib/components/table/table.component.mjs +37 -11
- package/table/esm2022/lib/components/table-head/table-head.component.mjs +10 -13
- package/table/esm2022/lib/components/table-row/table-row.component.mjs +31 -27
- package/table/esm2022/lib/models/table-config-manager.models.mjs +18 -0
- package/table/fesm2022/wlcm-angular-table.mjs +84 -44
- package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
- package/table/lib/components/table/table.component.d.ts +5 -2
- package/table/lib/components/table-head/table-head.component.d.ts +3 -3
- package/table/lib/components/table-row/table-row.component.d.ts +5 -3
- package/table/lib/models/table-config-manager.models.d.ts +12 -0
package/package.json
CHANGED
@@ -1,53 +1,79 @@
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
2
2
|
import { Component, Inject, Injector, inject, input, } from '@angular/core';
|
3
3
|
import { DefaultWlcmTableSelectionModel, WlcmTableSelectionModel } from '../../models/table-selection-model';
|
4
|
+
import { DefaultTableConfigManager, TableConfigManager } from '../../models/table-config-manager.models';
|
4
5
|
import { WlcmTableRowSpacerComponent } from '../table-row-spacer/table-row-spacer.component';
|
5
6
|
import { WlcmTableRowInjectorPipe } from '../../pipes/table-row-injector.pipe';
|
6
7
|
import { WlcmTableErrorsUtils } from '../../utils/table-errors.utils';
|
7
8
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
8
9
|
import { WLCM_TABLE_CONFIG } from '../../constants/table.constants';
|
9
10
|
import { toObservable } from '@angular/core/rxjs-interop';
|
11
|
+
import { map, switchMap } from 'rxjs';
|
10
12
|
import { RxLet } from '@rx-angular/template/let';
|
11
13
|
import { CommonModule } from '@angular/common';
|
12
14
|
import * as i0 from "@angular/core";
|
13
15
|
import * as i1 from "../../models/table-selection-model";
|
14
|
-
import * as i2 from "
|
16
|
+
import * as i2 from "../../models/table-config-manager.models";
|
17
|
+
import * as i3 from "@angular/common";
|
15
18
|
let WlcmTableComponent = class WlcmTableComponent {
|
16
|
-
#streamOfRows
|
17
|
-
constructor(selectionModel, config) {
|
19
|
+
#streamOfRows$;
|
20
|
+
constructor(selectionModel, config, configManager) {
|
18
21
|
this.selectionModel = selectionModel;
|
19
22
|
this.config = config;
|
23
|
+
this.configManager = configManager;
|
20
24
|
this.rows = input([]);
|
21
25
|
this.headTemplate = input();
|
22
26
|
this.rowTemplate = input.required();
|
23
27
|
this.isRowSelectable = input(() => true);
|
24
28
|
this.selectId = input();
|
25
29
|
this.trackBy = input((_, row) => row);
|
30
|
+
this.selectable = input();
|
26
31
|
this.injector = inject(Injector);
|
27
|
-
this.#streamOfRows = toObservable(this.rows);
|
32
|
+
this.#streamOfRows$ = toObservable(this.rows);
|
33
|
+
this.configManager.selectable = config.selectable;
|
34
|
+
toObservable(this.selectable)
|
35
|
+
.pipe(untilDestroyed(this))
|
36
|
+
.subscribe((value) => {
|
37
|
+
if (value === undefined)
|
38
|
+
return;
|
39
|
+
this.configManager.selectable = value;
|
40
|
+
});
|
28
41
|
}
|
29
42
|
ngOnInit() {
|
30
43
|
if (this.config.selectable) {
|
31
44
|
if (!this.selectId())
|
32
45
|
WlcmTableErrorsUtils.throwNoSelectIdError();
|
33
46
|
}
|
34
|
-
this.#streamOfRows
|
47
|
+
this.#streamOfRows$
|
48
|
+
.pipe(untilDestroyed(this))
|
49
|
+
.pipe(switchMap((rows) => this.configManager.selectable$.pipe(map(() => rows))))
|
50
|
+
.subscribe((rows) => {
|
51
|
+
if (!this.configManager.selectable) {
|
52
|
+
this.selectionModel.deselectAll();
|
53
|
+
return this.selectionModel.updateCollection([]);
|
54
|
+
}
|
35
55
|
this.selectionModel.updateCollection(rows.filter(this.isRowSelectable()).map(this.selectId()));
|
36
56
|
});
|
37
57
|
}
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, deps: [{ token: i1.WlcmTableSelectionModel }, { token: WLCM_TABLE_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
39
|
-
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: false, transformFunction: null }, rowTemplate: { classPropertyName: "rowTemplate", publicName: "rowTemplate", isSignal: true, isRequired: true, transformFunction: null }, isRowSelectable: { classPropertyName: "isRowSelectable", publicName: "isRowSelectable", isSignal: true, isRequired: false, transformFunction: null }, selectId: { classPropertyName: "selectId", publicName: "selectId", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null }
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, deps: [{ token: i1.WlcmTableSelectionModel }, { token: WLCM_TABLE_CONFIG }, { token: i2.TableConfigManager }], target: i0.ɵɵFactoryTarget.Component }); }
|
59
|
+
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: false, transformFunction: null }, rowTemplate: { classPropertyName: "rowTemplate", publicName: "rowTemplate", isSignal: true, isRequired: true, transformFunction: null }, isRowSelectable: { classPropertyName: "isRowSelectable", publicName: "isRowSelectable", isSignal: true, isRequired: false, transformFunction: null }, selectId: { classPropertyName: "selectId", publicName: "selectId", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "wlcm-table" }, providers: [
|
60
|
+
{ provide: TableConfigManager, useClass: DefaultTableConfigManager },
|
61
|
+
{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel },
|
62
|
+
], ngImport: i0, template: "@if (headTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"headTemplate()!; injector: injector\"\n ></ng-container>\n}\n\n<tbody>\n <ng-container\n *ngFor=\"\n let row of rows();\n trackBy: trackBy();\n let index = index;\n let first = first;\n let last = last\n \"\n >\n @if ((first && headTemplate()) || !first) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n }\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n isRowSelectable: isRowSelectable(),\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 </ng-container>\n</tbody>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.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"] }] }); }
|
40
63
|
};
|
41
64
|
WlcmTableComponent = __decorate([
|
42
65
|
UntilDestroy(),
|
43
|
-
__metadata("design:paramtypes", [WlcmTableSelectionModel, Object])
|
66
|
+
__metadata("design:paramtypes", [WlcmTableSelectionModel, Object, TableConfigManager])
|
44
67
|
], WlcmTableComponent);
|
45
68
|
export { WlcmTableComponent };
|
46
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, decorators: [{
|
47
70
|
type: Component,
|
48
|
-
args: [{ selector: 'wlcm-table', host: { class: 'wlcm-table' }, standalone: true, imports: [CommonModule, WlcmTableRowInjectorPipe, WlcmTableRowSpacerComponent, RxLet], providers: [
|
71
|
+
args: [{ selector: 'wlcm-table', host: { class: 'wlcm-table' }, standalone: true, imports: [CommonModule, WlcmTableRowInjectorPipe, WlcmTableRowSpacerComponent, RxLet], providers: [
|
72
|
+
{ provide: TableConfigManager, useClass: DefaultTableConfigManager },
|
73
|
+
{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel },
|
74
|
+
], template: "@if (headTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"headTemplate()!; injector: injector\"\n ></ng-container>\n}\n\n<tbody>\n <ng-container\n *ngFor=\"\n let row of rows();\n trackBy: trackBy();\n let index = index;\n let first = first;\n let last = last\n \"\n >\n @if ((first && headTemplate()) || !first) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n }\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n isRowSelectable: isRowSelectable(),\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 </ng-container>\n</tbody>\n" }]
|
49
75
|
}], ctorParameters: () => [{ type: i1.WlcmTableSelectionModel }, { type: undefined, decorators: [{
|
50
76
|
type: Inject,
|
51
77
|
args: [WLCM_TABLE_CONFIG]
|
52
|
-
}] }] });
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
78
|
+
}] }, { type: i2.TableConfigManager }] });
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFLUixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRzdGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBZXhDLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JB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RTtxQ0FpQ1ksdUJBQXVCLFVBRXZCLGtCQUFrQjtHQXRCaEMsa0JBQWtCLENBcUQ5Qjs7MkZBckRZLGtCQUFrQjtrQkFaOUIsU0FBUzsrQkFDRSxZQUFZLFFBQ2hCLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLGFBQzFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRTt3QkFDcEUsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixFQUFFO3FCQUMvRTs7MEJBeUJFLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dFNpZ25hbCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBpbmplY3QsXG4gIGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlZmF1bHRXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCwgV2xjbVRhYmxlU2VsZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IERlZmF1bHRUYWJsZUNvbmZpZ01hbmFnZXIsIFRhYmxlQ29uZmlnTWFuYWdlciB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1jb25maWctbWFuYWdlci5tb2RlbHMnO1xuaW1wb3J0IHsgV2xjbVRhYmxlUm93U3BhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtcm93LXNwYWNlci90YWJsZS1yb3ctc3BhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXbGNtSXNSb3dTZWxlY3RhYmxlRm4sIFdsY21UYWJsZVJvd0NvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtcm93Lm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtVGFibGVDb25maWcsIFdsY21UYWJsZVNlbGVjdElkRm4gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUubW9kZWxzJztcbmltcG9ydCB7IFdsY21UYWJsZVJvd0luamVjdG9yUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RhYmxlLXJvdy1pbmplY3Rvci5waXBlJztcbmltcG9ydCB7IFdsY21UYWJsZUVycm9yc1V0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGFibGUtZXJyb3JzLnV0aWxzJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgV0xDTV9UQUJMRV9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFibGUuY29uc3RhbnRzJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSeExldCB9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL2xldCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tdGFibGUnLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS10YWJsZScgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbVRhYmxlUm93SW5qZWN0b3JQaXBlLCBXbGNtVGFibGVSb3dTcGFjZXJDb21wb25lbnQsIFJ4TGV0XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBUYWJsZUNvbmZpZ01hbmFnZXIsIHVzZUNsYXNzOiBEZWZhdWx0VGFibGVDb25maWdNYW5hZ2VyIH0sXG4gICAgeyBwcm92aWRlOiBXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCwgdXNlQ2xhc3M6IERlZmF1bHRXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCB9LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtVGFibGVDb21wb25lbnQ8VCA9IHVua25vd24+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcm93czogSW5wdXRTaWduYWw8VFtdPiA9IGlucHV0PFRbXT4oW10pO1xuXG4gIGhlYWRUZW1wbGF0ZTogSW5wdXRTaWduYWw8VGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWQ+ID0gaW5wdXQoKTtcblxuICByb3dUZW1wbGF0ZTogSW5wdXRTaWduYWw8VGVtcGxhdGVSZWY8V2xjbVRhYmxlUm93Q29udGV4dDxUPj4+ID0gaW5wdXQucmVxdWlyZWQoKTtcblxuICBpc1Jvd1NlbGVjdGFibGU6IElucHV0U2lnbmFsPFdsY21Jc1Jvd1NlbGVjdGFibGVGbjxUPj4gPSBpbnB1dDxXbGNtSXNSb3dTZWxlY3RhYmxlRm48VD4+KCgpID0+IHRydWUpO1xuXG4gIHNlbGVjdElkOiBJbnB1dFNpZ25hbDxXbGNtVGFibGVTZWxlY3RJZEZuPFQ+IHwgdW5kZWZpbmVkPiA9IGlucHV0KCk7XG5cbiAgdHJhY2tCeTogSW5wdXRTaWduYWw8VHJhY2tCeUZ1bmN0aW9uPFQ+PiA9IGlucHV0KChfLCByb3c6IFQpID0+IHJvdyk7XG5cbiAgc2VsZWN0YWJsZTogSW5wdXRTaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPSBpbnB1dCgpO1xuXG4gIGluamVjdG9yOiBJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgI3N0cmVhbU9mUm93cyQ6IE9ic2VydmFibGU8VFtdPiA9IHRvT2JzZXJ2YWJsZSh0aGlzLnJvd3MpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZWxlY3Rpb25Nb2RlbDogV2xjbVRhYmxlU2VsZWN0aW9uTW9kZWwsXG4gICAgQEluamVjdChXTENNX1RBQkxFX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFdsY21UYWJsZUNvbmZpZyxcbiAgICBwcml2YXRlIGNvbmZpZ01hbmFnZXI6IFRhYmxlQ29uZmlnTWFuYWdlcixcbiAgKSB7XG4gICAgdGhpcy5jb25maWdNYW5hZ2VyLnNlbGVjdGFibGUgPSBjb25maWcuc2VsZWN0YWJsZTtcblxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGFibGUpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jb25maWdNYW5hZ2VyLnNlbGVjdGFibGUgPSB2YWx1ZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnNlbGVjdGFibGUpIHtcbiAgICAgIGlmICghdGhpcy5zZWxlY3RJZCgpKSBXbGNtVGFibGVFcnJvcnNVdGlscy50aHJvd05vU2VsZWN0SWRFcnJvcigpO1xuICAgIH1cblxuICAgIHRoaXMuI3N0cmVhbU9mUm93cyRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnBpcGUoc3dpdGNoTWFwKChyb3dzOiBUW10pID0+IHRoaXMuY29uZmlnTWFuYWdlci5zZWxlY3RhYmxlJC5waXBlKG1hcCgoKSA9PiByb3dzKSkpKVxuICAgICAgLnN1YnNjcmliZSgocm93czogVFtdKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWdNYW5hZ2VyLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0QWxsKCk7XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC51cGRhdGVDb2xsZWN0aW9uKFtdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwudXBkYXRlQ29sbGVjdGlvbihyb3dzLmZpbHRlcih0aGlzLmlzUm93U2VsZWN0YWJsZSgpKS5tYXAodGhpcy5zZWxlY3RJZCgpISkpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAoaGVhZFRlbXBsYXRlKCkpIHtcbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZFRlbXBsYXRlKCkhOyBpbmplY3RvcjogaW5qZWN0b3JcIlxuICA+PC9uZy1jb250YWluZXI+XG59XG5cbjx0Ym9keT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0Zvcj1cIlxuICAgICAgbGV0IHJvdyBvZiByb3dzKCk7XG4gICAgICB0cmFja0J5OiB0cmFja0J5KCk7XG4gICAgICBsZXQgaW5kZXggPSBpbmRleDtcbiAgICAgIGxldCBmaXJzdCA9IGZpcnN0O1xuICAgICAgbGV0IGxhc3QgPSBsYXN0XG4gICAgXCJcbiAgPlxuICAgIEBpZiAoKGZpcnN0ICYmIGhlYWRUZW1wbGF0ZSgpKSB8fCAhZmlyc3QpIHtcbiAgICAgIDx3bGNtLXRhYmxlLXJvdy1zcGFjZXI+PC93bGNtLXRhYmxlLXJvdy1zcGFjZXI+XG4gICAgfVxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKnJ4TGV0PVwiXG4gICAgICAgIHtcbiAgICAgICAgICAkaW1wbGljaXQ6IHJvdyxcbiAgICAgICAgICBzZWxlY3RJZDogc2VsZWN0SWQoKSxcbiAgICAgICAgICBpc1Jvd1NlbGVjdGFibGU6IGlzUm93U2VsZWN0YWJsZSgpLFxuICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICBmaXJzdDogZmlyc3QsXG4gICAgICAgICAgbGFzdDogbGFzdFxuICAgICAgICB9O1xuICAgICAgICBsZXQgY29udGV4dFxuICAgICAgXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgcm93VGVtcGxhdGUoKTtcbiAgICAgICAgICBjb250ZXh0OiBjb250ZXh0O1xuICAgICAgICAgIGluamVjdG9yOiBjb250ZXh0IHwgd2xjbVRhYmxlUm93SW5qZWN0b3JcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvdGJvZHk+XG4iXX0=
|
@@ -1,21 +1,18 @@
|
|
1
|
-
import { Component
|
1
|
+
import { Component } from '@angular/core';
|
2
2
|
import { CommonModule } from '@angular/common';
|
3
3
|
import { WlcmTableHeadActionsComponent } from '../table-head-actions/table-head-actions.component';
|
4
|
-
import {
|
4
|
+
import { TableConfigManager } from '../../models/table-config-manager.models';
|
5
5
|
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "
|
6
|
+
import * as i1 from "../../models/table-config-manager.models";
|
7
7
|
export class WlcmTableHeadComponent {
|
8
|
-
constructor(
|
9
|
-
this.
|
8
|
+
constructor(tableConfigManager) {
|
9
|
+
this.tableConfigManager = tableConfigManager;
|
10
10
|
}
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, deps: [{ token:
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, deps: [{ token: i1.TableConfigManager }], target: i0.ɵɵFactoryTarget.Component }); }
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableHeadComponent, isStandalone: true, selector: "wlcm-table-head", host: { classAttribute: "wlcm-table-head" }, ngImport: i0, template: "@if (tableConfigManager.selectable) {\n <wlcm-table-head-actions></wlcm-table-head-actions>\n}\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: WlcmTableHeadActionsComponent, selector: "wlcm-table-head-actions" }] }); }
|
13
13
|
}
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, decorators: [{
|
15
15
|
type: Component,
|
16
|
-
args: [{ selector: 'wlcm-table-head', host: { class: 'wlcm-table-head' }, standalone: true, imports: [CommonModule, WlcmTableHeadActionsComponent], template: "<wlcm-table-head-actions
|
17
|
-
}], ctorParameters: () => [{ type:
|
18
|
-
|
19
|
-
args: [WLCM_TABLE_CONFIG]
|
20
|
-
}] }] });
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS1oZWFkL3RhYmxlLWhlYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtaGVhZC90YWJsZS1oZWFkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBV3BFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBaUQsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO0lBQUcsQ0FBQzs4R0FEdEUsc0JBQXNCLGtCQUNiLGlCQUFpQjtrR0FEMUIsc0JBQXNCLHdIQ2RuQywwSkFLQSx5RERLWSxZQUFZLG1JQUFFLDZCQUE2Qjs7MkZBSTFDLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxpQkFBaUIsUUFDckIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLDZCQUE2QixDQUFDOzswQkFLekMsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdsY21UYWJsZUhlYWRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtaGVhZC1hY3Rpb25zL3RhYmxlLWhlYWQtYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgV0xDTV9UQUJMRV9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFibGUuY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21UYWJsZUNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS5tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLXRhYmxlLWhlYWQnLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS10YWJsZS1oZWFkJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBXbGNtVGFibGVIZWFkQWN0aW9uc0NvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1oZWFkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLWhlYWQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtVGFibGVIZWFkQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoQEluamVjdChXTENNX1RBQkxFX0NPTkZJRykgcHJvdGVjdGVkIHRhYmxlQ29uZmlnOiBXbGNtVGFibGVDb25maWcpIHt9XG59XG4iLCI8d2xjbS10YWJsZS1oZWFkLWFjdGlvbnNcbiAgKm5nSWY9XCJ0YWJsZUNvbmZpZy5zZWxlY3RhYmxlXCJcbj48L3dsY20tdGFibGUtaGVhZC1hY3Rpb25zPlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJ3bGNtLXRhYmxlLWhlYWQtZGF0YVwiPjwvbmctY29udGVudD5cbiJdfQ==
|
16
|
+
args: [{ selector: 'wlcm-table-head', host: { class: 'wlcm-table-head' }, standalone: true, imports: [CommonModule, WlcmTableHeadActionsComponent], template: "@if (tableConfigManager.selectable) {\n <wlcm-table-head-actions></wlcm-table-head-actions>\n}\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n" }]
|
17
|
+
}], ctorParameters: () => [{ type: i1.TableConfigManager }] });
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS1oZWFkL3RhYmxlLWhlYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtaGVhZC90YWJsZS1oZWFkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFVOUUsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFtQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7OEdBRGxELHNCQUFzQjtrR0FBdEIsc0JBQXNCLHdIQ2JuQyxnS0FLQSx5RERJWSxZQUFZLCtCQUFFLDZCQUE2Qjs7MkZBSTFDLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxpQkFBaUIsUUFDckIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsY0FDdEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgV2xjbVRhYmxlSGVhZEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1oZWFkLWFjdGlvbnMvdGFibGUtaGVhZC1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZ01hbmFnZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtY29uZmlnLW1hbmFnZXIubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS10YWJsZS1oZWFkJyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tdGFibGUtaGVhZCcgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbVRhYmxlSGVhZEFjdGlvbnNDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtaGVhZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90YWJsZS1oZWFkLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVRhYmxlSGVhZENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0YWJsZUNvbmZpZ01hbmFnZXI6IFRhYmxlQ29uZmlnTWFuYWdlcikge31cbn1cbiIsIkBpZiAodGFibGVDb25maWdNYW5hZ2VyLnNlbGVjdGFibGUpIHtcbiAgPHdsY20tdGFibGUtaGVhZC1hY3Rpb25zPjwvd2xjbS10YWJsZS1oZWFkLWFjdGlvbnM+XG59XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cIndsY20tdGFibGUtaGVhZC1kYXRhXCI+PC9uZy1jb250ZW50PlxuIl19
|
@@ -1,18 +1,19 @@
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
2
2
|
import { Component, ElementRef, HostBinding, Inject, signal } from '@angular/core';
|
3
3
|
import { WlcmTableRowActionsComponent } from '../table-row-actions/table-row-actions.component';
|
4
|
+
import { TableConfigManager } from '../../models/table-config-manager.models';
|
4
5
|
import { WLCM_TABLE_ROW_CONTEXT } from '../../constants/table-row.constants';
|
5
6
|
import { WlcmTableSelectionModel } from '../../models/table-selection-model';
|
6
|
-
import { WLCM_TABLE_CONFIG } from '../../constants/table.constants';
|
7
7
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
8
|
+
import { filter, finalize, map, skip, takeUntil } from 'rxjs';
|
8
9
|
import { WlcmFormsModule } from '@wlcm/angular/forms';
|
9
10
|
import { CommonModule } from '@angular/common';
|
10
11
|
import { FormsModule } from '@angular/forms';
|
11
|
-
import { filter, map } from 'rxjs';
|
12
12
|
import * as i0 from "@angular/core";
|
13
|
-
import * as i1 from "../../models/table-
|
14
|
-
import * as i2 from "
|
15
|
-
import * as i3 from "@angular/forms";
|
13
|
+
import * as i1 from "../../models/table-config-manager.models";
|
14
|
+
import * as i2 from "../../models/table-selection-model";
|
15
|
+
import * as i3 from "@wlcm/angular/forms";
|
16
|
+
import * as i4 from "@angular/forms";
|
16
17
|
let WlcmTableRowComponent = class WlcmTableRowComponent {
|
17
18
|
get first() {
|
18
19
|
return this.rowContext.first;
|
@@ -20,18 +21,26 @@ let WlcmTableRowComponent = class WlcmTableRowComponent {
|
|
20
21
|
get last() {
|
21
22
|
return this.rowContext.last;
|
22
23
|
}
|
23
|
-
constructor(elementRef,
|
24
|
+
constructor(elementRef, tableConfigManager, selectionModel, rowContext) {
|
24
25
|
this.elementRef = elementRef;
|
26
|
+
this.tableConfigManager = tableConfigManager;
|
25
27
|
this.selectionModel = selectionModel;
|
26
|
-
this.tableConfig = tableConfig;
|
27
28
|
this.rowContext = rowContext;
|
28
29
|
this.isSelected = signal(false);
|
29
30
|
this.isSelectable = signal(false);
|
30
|
-
this.
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
this.markAsSelected = () => {
|
32
|
+
this.elementRef.nativeElement.classList.add('wlcm-table-row-selected');
|
33
|
+
};
|
34
|
+
this.markAsUnselected = () => {
|
35
|
+
this.elementRef.nativeElement.classList.remove('wlcm-table-row-selected');
|
36
|
+
};
|
37
|
+
this.tableConfigManager.selectable$.pipe(untilDestroyed(this)).subscribe((value) => {
|
38
|
+
this.isSelectable.update(() => value && this.rowContext.isRowSelectable(rowContext.$implicit));
|
39
|
+
if (this.isSelectable()) {
|
40
|
+
this.rowId = this.rowContext.selectId(this.rowContext.$implicit);
|
41
|
+
this.handleSelectionChanges();
|
42
|
+
}
|
43
|
+
});
|
35
44
|
}
|
36
45
|
selectionChanged(isSelected) {
|
37
46
|
if (isSelected) {
|
@@ -43,34 +52,29 @@ let WlcmTableRowComponent = class WlcmTableRowComponent {
|
|
43
52
|
handleSelectionChanges() {
|
44
53
|
this.selectionModel.selectionChanged
|
45
54
|
.pipe(untilDestroyed(this))
|
55
|
+
.pipe(takeUntil(this.tableConfigManager.selectable$.pipe(skip(1))))
|
46
56
|
.pipe(map((collection) => collection.has(this.rowId)))
|
47
57
|
.pipe(filter((isSelected) => isSelected !== this.isSelected()))
|
58
|
+
.pipe(finalize(() => this.markAsUnselected()))
|
48
59
|
.subscribe((isSelected) => {
|
49
60
|
this.isSelected.set(isSelected);
|
50
|
-
|
51
|
-
this.elementRef.nativeElement.classList.add('wlcm-table-row-selected');
|
52
|
-
}
|
53
|
-
else {
|
54
|
-
this.elementRef.nativeElement.classList.remove('wlcm-table-row-selected');
|
55
|
-
}
|
61
|
+
isSelected ? this.markAsSelected() : this.markAsUnselected();
|
56
62
|
});
|
57
63
|
}
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: i0.ElementRef }, { token: i1.
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "@if (
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: i0.ElementRef }, { token: i1.TableConfigManager }, { token: i2.WlcmTableSelectionModel }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "@if (tableConfigManager.selectable) {\n <wlcm-table-row-actions>\n @if (isSelectable()) {\n <wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged($event)\"\n ></wlcm-checkbox>\n }\n </wlcm-table-row-actions>\n}\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: WlcmTableRowActionsComponent, selector: "wlcm-table-row-actions" }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i3.WlcmCheckboxComponent, selector: "wlcm-checkbox", inputs: ["value"], outputs: ["changed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
60
66
|
};
|
61
67
|
WlcmTableRowComponent = __decorate([
|
62
68
|
UntilDestroy(),
|
63
69
|
__metadata("design:paramtypes", [ElementRef,
|
64
|
-
|
70
|
+
TableConfigManager,
|
71
|
+
WlcmTableSelectionModel, Object])
|
65
72
|
], WlcmTableRowComponent);
|
66
73
|
export { WlcmTableRowComponent };
|
67
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, decorators: [{
|
68
75
|
type: Component,
|
69
|
-
args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent, WlcmFormsModule, FormsModule], template: "@if (
|
70
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.WlcmTableSelectionModel }, { type: undefined, decorators: [{
|
71
|
-
type: Inject,
|
72
|
-
args: [WLCM_TABLE_CONFIG]
|
73
|
-
}] }, { type: undefined, decorators: [{
|
76
|
+
args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent, WlcmFormsModule, FormsModule], template: "@if (tableConfigManager.selectable) {\n <wlcm-table-row-actions>\n @if (isSelectable()) {\n <wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged($event)\"\n ></wlcm-checkbox>\n }\n </wlcm-table-row-actions>\n}\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n" }]
|
77
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.TableConfigManager }, { type: i2.WlcmTableSelectionModel }, { type: undefined, decorators: [{
|
74
78
|
type: Inject,
|
75
79
|
args: [WLCM_TABLE_ROW_CONTEXT]
|
76
80
|
}] }], propDecorators: { first: [{
|
@@ -80,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
80
84
|
type: HostBinding,
|
81
85
|
args: ['class.wlcm-table-row-last']
|
82
86
|
}] } });
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlLXJvdy90YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtcm93L3RhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVd0QyxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjtJQU9oQyxJQUErQyxLQUFLO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7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VSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F0RFUscUJBQXFCLHFIQW1CdEIsc0JBQXNCO2tHQW5CckIscUJBQXFCLDROQ3JCbEMsdVVBWUEseURES1ksWUFBWSwrQkFBRSw0QkFBNEIsa0VBQUUsZUFBZSx5SkFBRSxXQUFXOztBQUl2RSxxQkFBcUI7SUFUakMsWUFBWSxFQUFFO3FDQXlCUyxVQUFVO1FBQ0gsa0JBQWtCO1FBQ3JCLHVCQUF1QjtHQWxCdEMscUJBQXFCLENBK0RqQzs7MkZBL0RZLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxnQkFBZ0IsUUFDcEIsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLDRCQUE0QixFQUFFLGVBQWUsRUFBRSxXQUFXLENBQUM7OzBCQXVCaEYsTUFBTTsyQkFBQyxzQkFBc0I7eUNBWmUsS0FBSztzQkFBbkQsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBSUssSUFBSTtzQkFBakQsV0FBVzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIFdyaXRhYmxlU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21UYWJsZVJvd0FjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1yb3ctYWN0aW9ucy90YWJsZS1yb3ctYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb25maWdNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhYmxlLWNvbmZpZy1tYW5hZ2VyLm1vZGVscyc7XG5pbXBvcnQgeyBXTENNX1RBQkxFX1JPV19DT05URVhUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3RhYmxlLXJvdy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbVRhYmxlU2VsZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgV2xjbVRhYmxlUm93Q29udGV4dCB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1yb3cubW9kZWxzJztcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIG1hcCwgc2tpcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXbGNtRm9ybXNNb2R1bGUgfSBmcm9tICdAd2xjbS9hbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLXRhYmxlLXJvdycsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLXRhYmxlLXJvdycgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbVRhYmxlUm93QWN0aW9uc0NvbXBvbmVudCwgV2xjbUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFibGUtcm93LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVRhYmxlUm93Q29tcG9uZW50PFQgPSB1bmtub3duPiB7XG4gIHJvd0lkITogc3RyaW5nO1xuXG4gIGlzU2VsZWN0ZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBpc1NlbGVjdGFibGU6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndsY20tdGFibGUtcm93LWZpcnN0JykgZ2V0IGZpcnN0KCkge1xuICAgIHJldHVybiB0aGlzLnJvd0NvbnRleHQuZmlyc3Q7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndsY20tdGFibGUtcm93LWxhc3QnKSBnZXQgbGFzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5yb3dDb250ZXh0Lmxhc3Q7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHB1YmxpYyB0YWJsZUNvbmZpZ01hbmFnZXI6IFRhYmxlQ29uZmlnTWFuYWdlcixcbiAgICBwcml2YXRlIHNlbGVjdGlvbk1vZGVsOiBXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCxcbiAgICBASW5qZWN0KFdMQ01fVEFCTEVfUk9XX0NPTlRFWFQpIHByaXZhdGUgcm93Q29udGV4dDogV2xjbVRhYmxlUm93Q29udGV4dDxUPixcbiAgKSB7XG4gICAgdGhpcy50YWJsZUNvbmZpZ01hbmFnZXIuc2VsZWN0YWJsZSQucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy5pc1NlbGVjdGFibGUudXBkYXRlKCgpID0+IHZhbHVlICYmIHRoaXMucm93Q29udGV4dC5pc1Jvd1NlbGVjdGFibGUocm93Q29udGV4dC4kaW1wbGljaXQpKTtcblxuICAgICAgaWYgKHRoaXMuaXNTZWxlY3RhYmxlKCkpIHtcbiAgICAgICAgdGhpcy5yb3dJZCA9IHRoaXMucm93Q29udGV4dC5zZWxlY3RJZCEodGhpcy5yb3dDb250ZXh0LiRpbXBsaWNpdCk7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3Rpb25DaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3Rpb25DaGFuZ2VkKGlzU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0T25lKHRoaXMucm93SWQpO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3RPbmUodGhpcy5yb3dJZCk7XG5cbiAgICB0aGlzLmlzU2VsZWN0ZWQuc2V0KGlzU2VsZWN0ZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTZWxlY3Rpb25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uQ2hhbmdlZFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy50YWJsZUNvbmZpZ01hbmFnZXIuc2VsZWN0YWJsZSQucGlwZShza2lwKDEpKSkpXG4gICAgICAucGlwZShtYXAoKGNvbGxlY3Rpb246IFNldDxzdHJpbmc+KSA9PiBjb2xsZWN0aW9uLmhhcyh0aGlzLnJvd0lkKSkpXG4gICAgICAucGlwZShmaWx0ZXIoKGlzU2VsZWN0ZWQ6IGJvb2xlYW4pID0+IGlzU2VsZWN0ZWQgIT09IHRoaXMuaXNTZWxlY3RlZCgpKSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMubWFya0FzVW5zZWxlY3RlZCgpKSlcbiAgICAgIC5zdWJzY3JpYmUoKGlzU2VsZWN0ZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkLnNldChpc1NlbGVjdGVkKTtcblxuICAgICAgICBpc1NlbGVjdGVkID8gdGhpcy5tYXJrQXNTZWxlY3RlZCgpIDogdGhpcy5tYXJrQXNVbnNlbGVjdGVkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFya0FzU2VsZWN0ZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnd2xjbS10YWJsZS1yb3ctc2VsZWN0ZWQnKTtcbiAgfTtcblxuICBwcml2YXRlIG1hcmtBc1Vuc2VsZWN0ZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnd2xjbS10YWJsZS1yb3ctc2VsZWN0ZWQnKTtcbiAgfTtcbn1cbiIsIkBpZiAodGFibGVDb25maWdNYW5hZ2VyLnNlbGVjdGFibGUpIHtcbiAgPHdsY20tdGFibGUtcm93LWFjdGlvbnM+XG4gICAgQGlmIChpc1NlbGVjdGFibGUoKSkge1xuICAgICAgPHdsY20tY2hlY2tib3hcbiAgICAgICAgW25nTW9kZWxdPVwiaXNTZWxlY3RlZCgpXCJcbiAgICAgICAgKGNoYW5nZWQpPVwic2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgID48L3dsY20tY2hlY2tib3g+XG4gICAgfVxuICA8L3dsY20tdGFibGUtcm93LWFjdGlvbnM+XG59XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cIndsY20tdGFibGUtcm93LWRhdGFcIj48L25nLWNvbnRlbnQ+XG4iXX0=
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
2
|
+
export class TableConfigManager {
|
3
|
+
}
|
4
|
+
export class DefaultTableConfigManager extends TableConfigManager {
|
5
|
+
constructor() {
|
6
|
+
super(...arguments);
|
7
|
+
this.#selectable$ = new BehaviorSubject(false);
|
8
|
+
this.selectable$ = this.#selectable$.asObservable();
|
9
|
+
}
|
10
|
+
#selectable$;
|
11
|
+
get selectable() {
|
12
|
+
return this.#selectable$.value;
|
13
|
+
}
|
14
|
+
set selectable(value) {
|
15
|
+
this.#selectable$.next(value);
|
16
|
+
}
|
17
|
+
}
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLW1hbmFnZXIubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL21vZGVscy90YWJsZS1jb25maWctbWFuYWdlci5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxNQUFNLE9BQWdCLGtCQUFrQjtDQU12QztBQUVELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQkFBa0I7SUFBakU7O1FBQ0UsaUJBQVksR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0QsZ0JBQVcsR0FBd0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQVMvRSxDQUFDO0lBWEMsWUFBWSxDQUF3RDtJQUlwRSxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGFibGVDb25maWdNYW5hZ2VyIHtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgc2VsZWN0YWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgYWJzdHJhY3QgZ2V0IHNlbGVjdGFibGUoKTogYm9vbGVhbjtcblxuICBhYnN0cmFjdCBzZXQgc2VsZWN0YWJsZSh2YWx1ZTogYm9vbGVhbik7XG59XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0VGFibGVDb25maWdNYW5hZ2VyIGV4dGVuZHMgVGFibGVDb25maWdNYW5hZ2VyIHtcbiAgI3NlbGVjdGFibGUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICByZWFkb25seSBzZWxlY3RhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuI3NlbGVjdGFibGUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGdldCBzZWxlY3RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNzZWxlY3RhYmxlJC52YWx1ZTtcbiAgfVxuXG4gIHNldCBzZWxlY3RhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jc2VsZWN0YWJsZSQubmV4dCh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { Component, InjectionToken, inject, Injector, Pipe, input, Inject, signal, ElementRef, HostBinding, output, NgZone, Directive, NgModule } from '@angular/core';
|
3
|
-
import * as
|
3
|
+
import * as i3 from '@angular/common';
|
4
4
|
import { CommonModule } from '@angular/common';
|
5
5
|
import { __decorate, __metadata } from 'tslib';
|
6
|
-
import { BehaviorSubject, map, filter, fromEvent, debounceTime } from 'rxjs';
|
6
|
+
import { BehaviorSubject, map, switchMap, takeUntil, skip, filter, finalize, fromEvent, debounceTime } from 'rxjs';
|
7
7
|
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
8
8
|
import { toObservable } from '@angular/core/rxjs-interop';
|
9
9
|
import { RxLet } from '@rx-angular/template/let';
|
10
|
-
import * as i2
|
10
|
+
import * as i2 from '@wlcm/angular/forms';
|
11
11
|
import { WlcmFormsModule } from '@wlcm/angular/forms';
|
12
|
-
import * as i3 from '@angular/forms';
|
12
|
+
import * as i3$1 from '@angular/forms';
|
13
13
|
import { FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
14
14
|
|
15
15
|
class WlcmTableSelectionModel {
|
@@ -59,6 +59,23 @@ class DefaultWlcmTableSelectionModel extends WlcmTableSelectionModel {
|
|
59
59
|
}
|
60
60
|
}
|
61
61
|
|
62
|
+
class TableConfigManager {
|
63
|
+
}
|
64
|
+
class DefaultTableConfigManager extends TableConfigManager {
|
65
|
+
constructor() {
|
66
|
+
super(...arguments);
|
67
|
+
this.#selectable$ = new BehaviorSubject(false);
|
68
|
+
this.selectable$ = this.#selectable$.asObservable();
|
69
|
+
}
|
70
|
+
#selectable$;
|
71
|
+
get selectable() {
|
72
|
+
return this.#selectable$.value;
|
73
|
+
}
|
74
|
+
set selectable(value) {
|
75
|
+
this.#selectable$.next(value);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
62
79
|
class WlcmTableRowSpacerComponent {
|
63
80
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
64
81
|
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 }] }); }
|
@@ -102,42 +119,65 @@ const WLCM_TABLE_CONFIG = new InjectionToken('WLCM_TABLE_CONFIG', {
|
|
102
119
|
});
|
103
120
|
|
104
121
|
let WlcmTableComponent = class WlcmTableComponent {
|
105
|
-
#streamOfRows
|
106
|
-
constructor(selectionModel, config) {
|
122
|
+
#streamOfRows$;
|
123
|
+
constructor(selectionModel, config, configManager) {
|
107
124
|
this.selectionModel = selectionModel;
|
108
125
|
this.config = config;
|
126
|
+
this.configManager = configManager;
|
109
127
|
this.rows = input([]);
|
110
128
|
this.headTemplate = input();
|
111
129
|
this.rowTemplate = input.required();
|
112
130
|
this.isRowSelectable = input(() => true);
|
113
131
|
this.selectId = input();
|
114
132
|
this.trackBy = input((_, row) => row);
|
133
|
+
this.selectable = input();
|
115
134
|
this.injector = inject(Injector);
|
116
|
-
this.#streamOfRows = toObservable(this.rows);
|
135
|
+
this.#streamOfRows$ = toObservable(this.rows);
|
136
|
+
this.configManager.selectable = config.selectable;
|
137
|
+
toObservable(this.selectable)
|
138
|
+
.pipe(untilDestroyed(this))
|
139
|
+
.subscribe((value) => {
|
140
|
+
if (value === undefined)
|
141
|
+
return;
|
142
|
+
this.configManager.selectable = value;
|
143
|
+
});
|
117
144
|
}
|
118
145
|
ngOnInit() {
|
119
146
|
if (this.config.selectable) {
|
120
147
|
if (!this.selectId())
|
121
148
|
WlcmTableErrorsUtils.throwNoSelectIdError();
|
122
149
|
}
|
123
|
-
this.#streamOfRows
|
150
|
+
this.#streamOfRows$
|
151
|
+
.pipe(untilDestroyed(this))
|
152
|
+
.pipe(switchMap((rows) => this.configManager.selectable$.pipe(map(() => rows))))
|
153
|
+
.subscribe((rows) => {
|
154
|
+
if (!this.configManager.selectable) {
|
155
|
+
this.selectionModel.deselectAll();
|
156
|
+
return this.selectionModel.updateCollection([]);
|
157
|
+
}
|
124
158
|
this.selectionModel.updateCollection(rows.filter(this.isRowSelectable()).map(this.selectId()));
|
125
159
|
});
|
126
160
|
}
|
127
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, deps: [{ token: WlcmTableSelectionModel }, { token: WLCM_TABLE_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
128
|
-
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: false, transformFunction: null }, rowTemplate: { classPropertyName: "rowTemplate", publicName: "rowTemplate", isSignal: true, isRequired: true, transformFunction: null }, isRowSelectable: { classPropertyName: "isRowSelectable", publicName: "isRowSelectable", isSignal: true, isRequired: false, transformFunction: null }, selectId: { classPropertyName: "selectId", publicName: "selectId", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null }
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, deps: [{ token: WlcmTableSelectionModel }, { token: WLCM_TABLE_CONFIG }, { token: TableConfigManager }], target: i0.ɵɵFactoryTarget.Component }); }
|
162
|
+
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: false, transformFunction: null }, rowTemplate: { classPropertyName: "rowTemplate", publicName: "rowTemplate", isSignal: true, isRequired: true, transformFunction: null }, isRowSelectable: { classPropertyName: "isRowSelectable", publicName: "isRowSelectable", isSignal: true, isRequired: false, transformFunction: null }, selectId: { classPropertyName: "selectId", publicName: "selectId", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "wlcm-table" }, providers: [
|
163
|
+
{ provide: TableConfigManager, useClass: DefaultTableConfigManager },
|
164
|
+
{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel },
|
165
|
+
], ngImport: i0, template: "@if (headTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"headTemplate()!; injector: injector\"\n ></ng-container>\n}\n\n<tbody>\n <ng-container\n *ngFor=\"\n let row of rows();\n trackBy: trackBy();\n let index = index;\n let first = first;\n let last = last\n \"\n >\n @if ((first && headTemplate()) || !first) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n }\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n isRowSelectable: isRowSelectable(),\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 </ng-container>\n</tbody>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.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"] }] }); }
|
129
166
|
};
|
130
167
|
WlcmTableComponent = __decorate([
|
131
168
|
UntilDestroy(),
|
132
|
-
__metadata("design:paramtypes", [WlcmTableSelectionModel, Object])
|
169
|
+
__metadata("design:paramtypes", [WlcmTableSelectionModel, Object, TableConfigManager])
|
133
170
|
], WlcmTableComponent);
|
134
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, decorators: [{
|
135
172
|
type: Component,
|
136
|
-
args: [{ selector: 'wlcm-table', host: { class: 'wlcm-table' }, standalone: true, imports: [CommonModule, WlcmTableRowInjectorPipe, WlcmTableRowSpacerComponent, RxLet], providers: [
|
173
|
+
args: [{ selector: 'wlcm-table', host: { class: 'wlcm-table' }, standalone: true, imports: [CommonModule, WlcmTableRowInjectorPipe, WlcmTableRowSpacerComponent, RxLet], providers: [
|
174
|
+
{ provide: TableConfigManager, useClass: DefaultTableConfigManager },
|
175
|
+
{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel },
|
176
|
+
], template: "@if (headTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"headTemplate()!; injector: injector\"\n ></ng-container>\n}\n\n<tbody>\n <ng-container\n *ngFor=\"\n let row of rows();\n trackBy: trackBy();\n let index = index;\n let first = first;\n let last = last\n \"\n >\n @if ((first && headTemplate()) || !first) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n }\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n isRowSelectable: isRowSelectable(),\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 </ng-container>\n</tbody>\n" }]
|
137
177
|
}], ctorParameters: () => [{ type: WlcmTableSelectionModel }, { type: undefined, decorators: [{
|
138
178
|
type: Inject,
|
139
179
|
args: [WLCM_TABLE_CONFIG]
|
140
|
-
}] }] });
|
180
|
+
}] }, { type: TableConfigManager }] });
|
141
181
|
|
142
182
|
let WlcmTableHeadActionsComponent = class WlcmTableHeadActionsComponent {
|
143
183
|
constructor(selectionModel) {
|
@@ -157,7 +197,7 @@ let WlcmTableHeadActionsComponent = class WlcmTableHeadActionsComponent {
|
|
157
197
|
.subscribe((isSelected) => this.control.setValue(isSelected));
|
158
198
|
}
|
159
199
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadActionsComponent, deps: [{ token: WlcmTableSelectionModel }], target: i0.ɵɵFactoryTarget.Component }); }
|
160
|
-
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
|
200
|
+
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", inputs: ["value"], outputs: ["changed"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
161
201
|
};
|
162
202
|
WlcmTableHeadActionsComponent = __decorate([
|
163
203
|
UntilDestroy(),
|
@@ -169,19 +209,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
169
209
|
}], ctorParameters: () => [{ type: WlcmTableSelectionModel }] });
|
170
210
|
|
171
211
|
class WlcmTableHeadComponent {
|
172
|
-
constructor(
|
173
|
-
this.
|
212
|
+
constructor(tableConfigManager) {
|
213
|
+
this.tableConfigManager = tableConfigManager;
|
174
214
|
}
|
175
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, deps: [{ token:
|
176
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, deps: [{ token: TableConfigManager }], target: i0.ɵɵFactoryTarget.Component }); }
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableHeadComponent, isStandalone: true, selector: "wlcm-table-head", host: { classAttribute: "wlcm-table-head" }, ngImport: i0, template: "@if (tableConfigManager.selectable) {\n <wlcm-table-head-actions></wlcm-table-head-actions>\n}\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: WlcmTableHeadActionsComponent, selector: "wlcm-table-head-actions" }] }); }
|
177
217
|
}
|
178
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, decorators: [{
|
179
219
|
type: Component,
|
180
|
-
args: [{ selector: 'wlcm-table-head', host: { class: 'wlcm-table-head' }, standalone: true, imports: [CommonModule, WlcmTableHeadActionsComponent], template: "<wlcm-table-head-actions
|
181
|
-
}], ctorParameters: () => [{ type:
|
182
|
-
type: Inject,
|
183
|
-
args: [WLCM_TABLE_CONFIG]
|
184
|
-
}] }] });
|
220
|
+
args: [{ selector: 'wlcm-table-head', host: { class: 'wlcm-table-head' }, standalone: true, imports: [CommonModule, WlcmTableHeadActionsComponent], template: "@if (tableConfigManager.selectable) {\n <wlcm-table-head-actions></wlcm-table-head-actions>\n}\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n" }]
|
221
|
+
}], ctorParameters: () => [{ type: TableConfigManager }] });
|
185
222
|
|
186
223
|
class WlcmTableHeadDataComponent {
|
187
224
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
@@ -208,18 +245,26 @@ let WlcmTableRowComponent = class WlcmTableRowComponent {
|
|
208
245
|
get last() {
|
209
246
|
return this.rowContext.last;
|
210
247
|
}
|
211
|
-
constructor(elementRef,
|
248
|
+
constructor(elementRef, tableConfigManager, selectionModel, rowContext) {
|
212
249
|
this.elementRef = elementRef;
|
250
|
+
this.tableConfigManager = tableConfigManager;
|
213
251
|
this.selectionModel = selectionModel;
|
214
|
-
this.tableConfig = tableConfig;
|
215
252
|
this.rowContext = rowContext;
|
216
253
|
this.isSelected = signal(false);
|
217
254
|
this.isSelectable = signal(false);
|
218
|
-
this.
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
255
|
+
this.markAsSelected = () => {
|
256
|
+
this.elementRef.nativeElement.classList.add('wlcm-table-row-selected');
|
257
|
+
};
|
258
|
+
this.markAsUnselected = () => {
|
259
|
+
this.elementRef.nativeElement.classList.remove('wlcm-table-row-selected');
|
260
|
+
};
|
261
|
+
this.tableConfigManager.selectable$.pipe(untilDestroyed(this)).subscribe((value) => {
|
262
|
+
this.isSelectable.update(() => value && this.rowContext.isRowSelectable(rowContext.$implicit));
|
263
|
+
if (this.isSelectable()) {
|
264
|
+
this.rowId = this.rowContext.selectId(this.rowContext.$implicit);
|
265
|
+
this.handleSelectionChanges();
|
266
|
+
}
|
267
|
+
});
|
223
268
|
}
|
224
269
|
selectionChanged(isSelected) {
|
225
270
|
if (isSelected) {
|
@@ -231,33 +276,28 @@ let WlcmTableRowComponent = class WlcmTableRowComponent {
|
|
231
276
|
handleSelectionChanges() {
|
232
277
|
this.selectionModel.selectionChanged
|
233
278
|
.pipe(untilDestroyed(this))
|
279
|
+
.pipe(takeUntil(this.tableConfigManager.selectable$.pipe(skip(1))))
|
234
280
|
.pipe(map((collection) => collection.has(this.rowId)))
|
235
281
|
.pipe(filter((isSelected) => isSelected !== this.isSelected()))
|
282
|
+
.pipe(finalize(() => this.markAsUnselected()))
|
236
283
|
.subscribe((isSelected) => {
|
237
284
|
this.isSelected.set(isSelected);
|
238
|
-
|
239
|
-
this.elementRef.nativeElement.classList.add('wlcm-table-row-selected');
|
240
|
-
}
|
241
|
-
else {
|
242
|
-
this.elementRef.nativeElement.classList.remove('wlcm-table-row-selected');
|
243
|
-
}
|
285
|
+
isSelected ? this.markAsSelected() : this.markAsUnselected();
|
244
286
|
});
|
245
287
|
}
|
246
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: i0.ElementRef }, { token:
|
247
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "@if (
|
288
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: i0.ElementRef }, { token: TableConfigManager }, { token: WlcmTableSelectionModel }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
|
289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "@if (tableConfigManager.selectable) {\n <wlcm-table-row-actions>\n @if (isSelectable()) {\n <wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged($event)\"\n ></wlcm-checkbox>\n }\n </wlcm-table-row-actions>\n}\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: WlcmTableRowActionsComponent, selector: "wlcm-table-row-actions" }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i2.WlcmCheckboxComponent, selector: "wlcm-checkbox", inputs: ["value"], outputs: ["changed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
248
290
|
};
|
249
291
|
WlcmTableRowComponent = __decorate([
|
250
292
|
UntilDestroy(),
|
251
293
|
__metadata("design:paramtypes", [ElementRef,
|
252
|
-
|
294
|
+
TableConfigManager,
|
295
|
+
WlcmTableSelectionModel, Object])
|
253
296
|
], WlcmTableRowComponent);
|
254
297
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, decorators: [{
|
255
298
|
type: Component,
|
256
|
-
args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent, WlcmFormsModule, FormsModule], template: "@if (
|
257
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: WlcmTableSelectionModel }, { type: undefined, decorators: [{
|
258
|
-
type: Inject,
|
259
|
-
args: [WLCM_TABLE_CONFIG]
|
260
|
-
}] }, { type: undefined, decorators: [{
|
299
|
+
args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent, WlcmFormsModule, FormsModule], template: "@if (tableConfigManager.selectable) {\n <wlcm-table-row-actions>\n @if (isSelectable()) {\n <wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged($event)\"\n ></wlcm-checkbox>\n }\n </wlcm-table-row-actions>\n}\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n" }]
|
300
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: TableConfigManager }, { type: WlcmTableSelectionModel }, { type: undefined, decorators: [{
|
261
301
|
type: Inject,
|
262
302
|
args: [WLCM_TABLE_ROW_CONTEXT]
|
263
303
|
}] }], propDecorators: { first: [{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"wlcm-angular-table.mjs","sources":["../../../../modules/table/src/lib/models/table-selection-model.ts","../../../../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/constants/table-row.constants.ts","../../../../modules/table/src/lib/pipes/table-row-injector.pipe.ts","../../../../modules/table/src/lib/utils/table-errors.utils.ts","../../../../modules/table/src/lib/constants/table.constants.ts","../../../../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-actions/table-head-actions.component.ts","../../../../modules/table/src/lib/components/table-head-actions/table-head-actions.component.html","../../../../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-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-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-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 abstract get selection(): Set<string>;\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 get selection(): Set<string> {\n return this._selection;\n }\n\n private triggerSelectionChanged(): void {\n this._selectionChanged.next(this._selection);\n }\n}\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 { 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","export class WlcmTableErrorsUtils {\n static throwNoSelectIdError(): void {\n throw new Error('wlcm-table: [selectId] method must be provided');\n }\n}\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 {\n Component,\n Inject,\n Injector,\n InputSignal,\n OnInit,\n TemplateRef,\n TrackByFunction,\n inject,\n input,\n} from '@angular/core';\nimport { DefaultWlcmTableSelectionModel, WlcmTableSelectionModel } from '../../models/table-selection-model';\nimport { WlcmTableRowSpacerComponent } from '../table-row-spacer/table-row-spacer.component';\nimport { WlcmIsRowSelectableFn, WlcmTableRowContext } from '../../models/table-row.models';\nimport { WlcmTableConfig, WlcmTableSelectIdFn } from '../../models/table.models';\nimport { WlcmTableRowInjectorPipe } from '../../pipes/table-row-injector.pipe';\nimport { WlcmTableErrorsUtils } from '../../utils/table-errors.utils';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WLCM_TABLE_CONFIG } from '../../constants/table.constants';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { RxLet } from '@rx-angular/template/let';\nimport { CommonModule } from '@angular/common';\nimport { Observable } from 'rxjs';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-table',\n host: { class: 'wlcm-table' },\n standalone: true,\n imports: [CommonModule, WlcmTableRowInjectorPipe, WlcmTableRowSpacerComponent, RxLet],\n providers: [{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel }],\n templateUrl: './table.component.html',\n styleUrl: './table.component.scss',\n})\nexport class WlcmTableComponent<T = unknown> implements OnInit {\n rows: InputSignal<T[]> = input<T[]>([]);\n\n headTemplate: InputSignal<TemplateRef<void> | undefined> = input();\n\n rowTemplate: InputSignal<TemplateRef<WlcmTableRowContext<T>>> = input.required();\n\n isRowSelectable: InputSignal<WlcmIsRowSelectableFn<T>> = input<WlcmIsRowSelectableFn<T>>(() => true);\n\n selectId: InputSignal<WlcmTableSelectIdFn<T> | undefined> = input();\n\n trackBy: InputSignal<TrackByFunction<T>> = input((_, row: T) => row);\n\n injector: Injector = inject(Injector);\n\n #streamOfRows: Observable<T[]> = toObservable(this.rows);\n\n constructor(\n public selectionModel: WlcmTableSelectionModel,\n @Inject(WLCM_TABLE_CONFIG) private config: WlcmTableConfig,\n ) {}\n\n ngOnInit(): void {\n if (this.config.selectable) {\n if (!this.selectId()) WlcmTableErrorsUtils.throwNoSelectIdError();\n }\n\n this.#streamOfRows.pipe(untilDestroyed(this)).subscribe((rows: T[]) => {\n this.selectionModel.updateCollection(rows.filter(this.isRowSelectable()).map(this.selectId()!));\n });\n }\n}\n","@if (headTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"headTemplate()!; injector: injector\"\n ></ng-container>\n}\n\n<tbody>\n <ng-container\n *ngFor=\"\n let row of rows();\n trackBy: trackBy();\n let index = index;\n let first = first;\n let last = last\n \"\n >\n @if ((first && headTemplate()) || !first) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n }\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n isRowSelectable: isRowSelectable(),\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 </ng-container>\n</tbody>\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 { 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 } 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-actions',\n host: { class: 'wlcm-table-row-actions' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './table-row-actions.component.html',\n styleUrl: './table-row-actions.component.scss',\n})\nexport class WlcmTableRowActionsComponent {}\n","<ng-content></ng-content>\n","import { Component, ElementRef, HostBinding, Inject, WritableSignal, signal } from '@angular/core';\nimport { WlcmTableRowActionsComponent } from '../table-row-actions/table-row-actions.component';\nimport { WLCM_TABLE_ROW_CONTEXT } from '../../constants/table-row.constants';\nimport { WlcmTableSelectionModel } from '../../models/table-selection-model';\nimport { WLCM_TABLE_CONFIG } from '../../constants/table.constants';\nimport { WlcmTableRowContext } from '../../models/table-row.models';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WlcmTableConfig } from '../../models/table.models';\nimport { WlcmFormsModule } from '@wlcm/angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { filter, map } from 'rxjs';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-table-row',\n host: { class: 'wlcm-table-row' },\n standalone: true,\n imports: [CommonModule, WlcmTableRowActionsComponent, WlcmFormsModule, FormsModule],\n templateUrl: './table-row.component.html',\n styleUrl: './table-row.component.scss',\n})\nexport class WlcmTableRowComponent<T = unknown> {\n rowId!: string;\n\n isSelected: WritableSignal<boolean> = signal(false);\n\n isSelectable: WritableSignal<boolean> = signal(false);\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 private elementRef: ElementRef<HTMLElement>,\n private selectionModel: WlcmTableSelectionModel,\n @Inject(WLCM_TABLE_CONFIG) protected tableConfig: WlcmTableConfig,\n @Inject(WLCM_TABLE_ROW_CONTEXT) private rowContext: WlcmTableRowContext<T>,\n ) {\n this.isSelectable.update(() => tableConfig.selectable && this.rowContext.isRowSelectable(rowContext.$implicit));\n\n if (this.isSelectable()) {\n this.rowId = this.rowContext.selectId!(this.rowContext.$implicit);\n\n this.handleSelectionChanges();\n }\n }\n\n selectionChanged(isSelected: boolean): void {\n if (isSelected) {\n return this.selectionModel.selectOne(this.rowId);\n }\n\n this.selectionModel.deselectOne(this.rowId);\n\n this.isSelected.set(isSelected);\n }\n\n private handleSelectionChanges(): void {\n this.selectionModel.selectionChanged\n .pipe(untilDestroyed(this))\n .pipe(map((collection: Set<string>) => collection.has(this.rowId)))\n .pipe(filter((isSelected: boolean) => isSelected !== this.isSelected()))\n .subscribe((isSelected: boolean) => {\n this.isSelected.set(isSelected);\n\n if (isSelected) {\n this.elementRef.nativeElement.classList.add('wlcm-table-row-selected');\n } else {\n this.elementRef.nativeElement.classList.remove('wlcm-table-row-selected');\n }\n });\n }\n}\n","@if (tableConfig.selectable) {\n <wlcm-table-row-actions>\n @if (isSelectable()) {\n <wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged($event)\"\n ></wlcm-checkbox>\n }\n </wlcm-table-row-actions>\n}\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-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, ElementRef, InputSignal, NgZone, OutputEmitterRef, input, output } from '@angular/core';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { debounceTime, fromEvent } from 'rxjs';\n\n@UntilDestroy()\n@Directive({\n selector: '[wlcmScrollableTableContainer]',\n host: { class: 'wlcm-scrollable-table-container' },\n standalone: true,\n})\nexport class WlcmScrollableTableContainerDirective {\n scrollDownOffsetPercent: InputSignal<number> = input(0.8);\n\n scrolledDown: OutputEmitterRef<void> = output();\n\n constructor(private zone: NgZone, private elementRef: ElementRef<HTMLElement>) {\n this.handleScrolling();\n }\n\n private get element(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private handleScrolling(): void {\n this.zone.runOutsideAngular(() => {\n fromEvent(this.element, 'scroll')\n .pipe(debounceTime(50))\n .pipe(untilDestroyed(this))\n .subscribe(() => {\n if (\n this.element.scrollHeight * this.scrollDownOffsetPercent() <=\n this.element.scrollTop + this.element.clientHeight\n ) {\n this.zone.run(() => this.scrolledDown.emit());\n }\n });\n });\n }\n}\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","i2"],"mappings":";;;;;;;;;;;;;;MAEsB,uBAAuB,CAAA;AAA7C,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;QAE3B,IAAiB,CAAA,iBAAA,GAAiC,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAEjG,QAAA,IAAA,CAAA,gBAAgB,GAA4B,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KAe5F;AAAA,CAAA;AAEK,MAAO,8BAA+B,SAAQ,uBAAuB,CAAA;AAA3E,IAAA,WAAA,GAAA;;QACU,IAAO,CAAA,OAAA,GAAa,EAAE,CAAC;QAEvB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,WAAW,GAAwB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACrE,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CACnF,CAAC;KA+CH;AA7CC,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAEvB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAa,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAExB,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;AAED,IAAA,gBAAgB,CAAC,MAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACvC;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAEO,uBAAuB,GAAA;QAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC9C;AACF;;MCnEY,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXxC,EAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;+BACE,uBAAuB,EAAA,IAAA,EAC3B,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,UAAA,EAC5B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;;AEJlB,MAAM,sBAAsB,GAAiD,IAAI,cAAc,CACpG,wBAAwB,CACzB;;MCGY,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;AAKY,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AAQjD,KAAA;AANC,IAAA,SAAS,CAAC,OAA+B,EAAA;QACvC,OAAO,QAAQ,CAAC,MAAM,CAAC;YACrB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YACnE,MAAM,EAAE,IAAI,CAAC,QAAQ;AACtB,SAAA,CAAC,CAAC;KACJ;8GARU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,sBAAsB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCPY,oBAAoB,CAAA;AAC/B,IAAA,OAAO,oBAAoB,GAAA;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;AACF;;MCDY,iBAAiB,GAAoC,IAAI,cAAc,CAAC,mBAAmB,EAAE;IACxG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACvC,CAAA;;AC6BY,IAAA,kBAAkB,GAAxB,MAAM,kBAAkB,CAAA;AAe7B,IAAA,aAAa,CAA4C;IAEzD,WACS,CAAA,cAAuC,EACX,MAAuB,EAAA;QADnD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAyB;QACX,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AAlB5D,QAAA,IAAA,CAAA,IAAI,GAAqB,KAAK,CAAM,EAAE,CAAC,CAAC;QAExC,IAAY,CAAA,YAAA,GAA+C,KAAK,EAAE,CAAC;AAEnE,QAAA,IAAA,CAAA,WAAW,GAAqD,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjF,IAAe,CAAA,eAAA,GAA0C,KAAK,CAA2B,MAAM,IAAI,CAAC,CAAC;QAErG,IAAQ,CAAA,QAAA,GAAoD,KAAK,EAAE,CAAC;AAEpE,QAAA,IAAA,CAAA,OAAO,GAAoC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAM,KAAK,GAAG,CAAC,CAAC;AAErE,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEtC,QAAA,IAAA,CAAA,aAAa,GAAoB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAKrD;IAEJ,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAAE,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;SACnE;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;YACpE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC,CAAC;AAClG,SAAC,CAAC,CAAC;KACJ;AA9BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,sDAmBnB,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAnBhB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAJlB,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9B7F,07BA4CA,EDfY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8TAAE,wBAAwB,EAAA,IAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,KAAK,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,YAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;AAKzE,kBAAkB,GAAA,UAAA,CAAA;AAV9B,IAAA,YAAY,EAAE;qCA4BY,uBAAuB,EAAA,MAAA,CAAA,CAAA;AAlBrC,CAAA,EAAA,kBAAkB,CA+B9B,CAAA;2FA/BY,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAChB,IAAA,EAAA,EAAE,KAAK,EAAE,YAAY,EAAE,EACjB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,KAAK,CAAC,EAC1E,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CAAC,EAAA,QAAA,EAAA,07BAAA,EAAA,CAAA;;0BAuBxF,MAAM;2BAAC,iBAAiB,CAAA;;;AErCtB,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B,CAAA;AAGxC,IAAA,WAAA,CAAoB,cAAuC,EAAA;QAAvC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAyB;AAFlD,QAAA,IAAA,CAAA,OAAO,GAAgB,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QAGrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;AAED,IAAA,MAAM,CAAC,SAAkB,EAAA;QACvB,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;SACxC;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACnC;IAEO,qBAAqB,GAAA;QAC3B,IAAI,CAAC,cAAc,CAAC,WAAW;AAC5B,aAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA,SAAS,CAAC,CAAC,UAAmB,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;KAC1E;8GAnBU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,wIChB1C,kGAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,2JAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;AAIjD,6BAA6B,GAAA,UAAA,CAAA;AATzC,IAAA,YAAY,EAAE;qCAYuB,uBAAuB,CAAA,CAAA;AAHhD,CAAA,EAAA,6BAA6B,CAoBzC,CAAA;2FApBY,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAC7B,IAAA,EAAA,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAA,UAAA,EAC9B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,kGAAA,EAAA,CAAA;;;MEElD,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAAiD,WAA4B,EAAA;QAA5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAiB;KAAI;AADtE,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBACb,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAD1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,ECdnC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0JAKA,EDKY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mIAAE,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAI1C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACrB,IAAA,EAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,EACtB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,6BAA6B,CAAC,EAAA,QAAA,EAAA,0JAAA,EAAA,CAAA;;0BAKzC,MAAM;2BAAC,iBAAiB,CAAA;;;MEJ1B,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXvC,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;+BACE,sBAAsB,EAAA,IAAA,EAC1B,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAA,UAAA,EAC3B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;MEIZ,4BAA4B,CAAA;8GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXzC,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;+BACE,wBAAwB,EAAA,IAAA,EAC5B,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAA,UAAA,EAC7B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;AEeZ,IAAA,qBAAqB,GAA3B,MAAM,qBAAqB,CAAA;AAOhC,IAAA,IAA+C,KAAK,GAAA;AAClD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KAC9B;AAED,IAAA,IAA8C,IAAI,GAAA;AAChD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;KAC7B;AAED,IAAA,WAAA,CACU,UAAmC,EACnC,cAAuC,EACV,WAA4B,EACzB,UAAkC,EAAA;QAHlE,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACnC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAyB;QACV,IAAW,CAAA,WAAA,GAAX,WAAW,CAAiB;QACzB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;AAhB5E,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC;AAEpD,QAAA,IAAA,CAAA,YAAY,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC;QAgBpD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhH,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAElE,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;KACF;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAClC,IAAI,UAAU,EAAE;YACd,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE5C,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACjC;IAEO,sBAAsB,GAAA;QAC5B,IAAI,CAAC,cAAc,CAAC,gBAAgB;AACjC,aAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,UAAuB,KAAK,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,UAAmB,KAAK,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACvE,aAAA,SAAS,CAAC,CAAC,UAAmB,KAAI;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEhC,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;aACxE;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;aAC3E;AACH,SAAC,CAAC,CAAC;KACN;8GAtDU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAkBtB,iBAAiB,EAAA,EAAA,EAAA,KAAA,EACjB,sBAAsB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAnBrB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,YAAA,EAAA,2BAAA,EAAA,WAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBlC,gUAYA,EDMY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,4BAA4B,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;AAIvE,qBAAqB,GAAA,UAAA,CAAA;AATjC,IAAA,YAAY,EAAE;qCAyBS,UAAU;QACN,uBAAuB,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;AAjBtC,CAAA,EAAA,qBAAqB,CAuDjC,CAAA;2FAvDY,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,QACpB,EAAE,KAAK,EAAE,gBAAgB,EAAE,EACrB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,4BAA4B,EAAE,eAAe,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,gUAAA,EAAA,CAAA;;0BAsBhF,MAAM;2BAAC,iBAAiB,CAAA;;0BACxB,MAAM;2BAAC,sBAAsB,CAAA;yCAZe,KAAK,EAAA,CAAA;sBAAnD,WAAW;uBAAC,4BAA4B,CAAA;gBAIK,IAAI,EAAA,CAAA;sBAAjD,WAAW;uBAAC,2BAA2B,CAAA;;;MEtB7B,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXtC,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;+BACE,qBAAqB,EAAA,IAAA,EACzB,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,UAAA,EAC1B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;AEGZ,IAAA,qCAAqC,GAA3C,MAAM,qCAAqC,CAAA;IAKhD,WAAoB,CAAA,IAAY,EAAU,UAAmC,EAAA;QAAzD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAAU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;AAJ7E,QAAA,IAAA,CAAA,uBAAuB,GAAwB,KAAK,CAAC,GAAG,CAAC,CAAC;QAE1D,IAAY,CAAA,YAAA,GAA2B,MAAM,EAAE,CAAC;QAG9C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAED,IAAA,IAAY,OAAO,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACtC;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC9B,iBAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACtB,iBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;iBAC1B,SAAS,CAAC,MAAK;gBACd,IACE,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,EAAE;oBAC1D,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAClD;AACA,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC/C;AACH,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACJ;8GA3BU,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAArC,qCAAqC,GAAA,UAAA,CAAA;AANjD,IAAA,YAAY,EAAE;AAWa,IAAA,UAAA,CAAA,mBAAA,EAAA,CAAA,MAAM,EAAsB,UAAU,CAAA,CAAA;AALrD,CAAA,EAAA,qCAAqC,CA4BjD,CAAA;2FA5BY,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE;AAClD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACAD,MAAM,gBAAgB,GAAoB;IACxC,kBAAkB;IAClB,sBAAsB;IACtB,0BAA0B;IAC1B,yBAAyB;IACzB,qBAAqB;CACtB,CAAC;AAEF,MAAM,gBAAgB,GAAoB,CAAC,qCAAqC,CAAC,CAAC;MAMrE,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAf,eAAe,EAAA,OAAA,EAAA,CAHhB,YAAY,EAVtB,kBAAkB;YAClB,sBAAsB;YACtB,0BAA0B;YAC1B,yBAAyB;YACzB,qBAAqB,EAGoB,qCAAqC,CAAA,EAAA,OAAA,EAAA,CAP9E,kBAAkB;YAClB,sBAAsB;YACtB,0BAA0B;YAC1B,yBAAyB;AACzB,YAAA,qBAAqB,EAGoB,qCAAqC,CAAA,EAAA,CAAA,CAAA,EAAA;+GAMnE,eAAe,EAAA,OAAA,EAAA,CAHhB,YAAY,EAAK,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGhC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,GAAG,gBAAgB,EAAE,GAAG,gBAAgB,CAAC;AACjE,oBAAA,OAAO,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,gBAAgB,CAAC;AACpD,iBAAA,CAAA;;;ACtBD;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"wlcm-angular-table.mjs","sources":["../../../../modules/table/src/lib/models/table-selection-model.ts","../../../../modules/table/src/lib/models/table-config-manager.models.ts","../../../../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/constants/table-row.constants.ts","../../../../modules/table/src/lib/pipes/table-row-injector.pipe.ts","../../../../modules/table/src/lib/utils/table-errors.utils.ts","../../../../modules/table/src/lib/constants/table.constants.ts","../../../../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-actions/table-head-actions.component.ts","../../../../modules/table/src/lib/components/table-head-actions/table-head-actions.component.html","../../../../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-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-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-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 abstract get selection(): Set<string>;\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 get selection(): Set<string> {\n return this._selection;\n }\n\n private triggerSelectionChanged(): void {\n this._selectionChanged.next(this._selection);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\n\nexport abstract class TableConfigManager {\n abstract readonly selectable$: Observable<boolean>;\n\n abstract get selectable(): boolean;\n\n abstract set selectable(value: boolean);\n}\n\nexport class DefaultTableConfigManager extends TableConfigManager {\n #selectable$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly selectable$: Observable<boolean> = this.#selectable$.asObservable();\n\n get selectable(): boolean {\n return this.#selectable$.value;\n }\n\n set selectable(value: boolean) {\n this.#selectable$.next(value);\n }\n}\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 { 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","export class WlcmTableErrorsUtils {\n static throwNoSelectIdError(): void {\n throw new Error('wlcm-table: [selectId] method must be provided');\n }\n}\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 {\n Component,\n Inject,\n Injector,\n InputSignal,\n OnInit,\n TemplateRef,\n TrackByFunction,\n inject,\n input,\n} from '@angular/core';\nimport { DefaultWlcmTableSelectionModel, WlcmTableSelectionModel } from '../../models/table-selection-model';\nimport { DefaultTableConfigManager, TableConfigManager } from '../../models/table-config-manager.models';\nimport { WlcmTableRowSpacerComponent } from '../table-row-spacer/table-row-spacer.component';\nimport { WlcmIsRowSelectableFn, WlcmTableRowContext } from '../../models/table-row.models';\nimport { WlcmTableConfig, WlcmTableSelectIdFn } from '../../models/table.models';\nimport { WlcmTableRowInjectorPipe } from '../../pipes/table-row-injector.pipe';\nimport { WlcmTableErrorsUtils } from '../../utils/table-errors.utils';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WLCM_TABLE_CONFIG } from '../../constants/table.constants';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { map, Observable, switchMap } from 'rxjs';\nimport { RxLet } from '@rx-angular/template/let';\nimport { CommonModule } from '@angular/common';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-table',\n host: { class: 'wlcm-table' },\n standalone: true,\n imports: [CommonModule, WlcmTableRowInjectorPipe, WlcmTableRowSpacerComponent, RxLet],\n providers: [\n { provide: TableConfigManager, useClass: DefaultTableConfigManager },\n { provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel },\n ],\n templateUrl: './table.component.html',\n styleUrl: './table.component.scss',\n})\nexport class WlcmTableComponent<T = unknown> implements OnInit {\n rows: InputSignal<T[]> = input<T[]>([]);\n\n headTemplate: InputSignal<TemplateRef<void> | undefined> = input();\n\n rowTemplate: InputSignal<TemplateRef<WlcmTableRowContext<T>>> = input.required();\n\n isRowSelectable: InputSignal<WlcmIsRowSelectableFn<T>> = input<WlcmIsRowSelectableFn<T>>(() => true);\n\n selectId: InputSignal<WlcmTableSelectIdFn<T> | undefined> = input();\n\n trackBy: InputSignal<TrackByFunction<T>> = input((_, row: T) => row);\n\n selectable: InputSignal<boolean | undefined> = input();\n\n injector: Injector = inject(Injector);\n\n #streamOfRows$: Observable<T[]> = toObservable(this.rows);\n\n constructor(\n public selectionModel: WlcmTableSelectionModel,\n @Inject(WLCM_TABLE_CONFIG) private config: WlcmTableConfig,\n private configManager: TableConfigManager,\n ) {\n this.configManager.selectable = config.selectable;\n\n toObservable(this.selectable)\n .pipe(untilDestroyed(this))\n .subscribe((value: boolean | undefined) => {\n if (value === undefined) return;\n\n this.configManager.selectable = value;\n });\n }\n\n ngOnInit(): void {\n if (this.config.selectable) {\n if (!this.selectId()) WlcmTableErrorsUtils.throwNoSelectIdError();\n }\n\n this.#streamOfRows$\n .pipe(untilDestroyed(this))\n .pipe(switchMap((rows: T[]) => this.configManager.selectable$.pipe(map(() => rows))))\n .subscribe((rows: T[]) => {\n if (!this.configManager.selectable) {\n this.selectionModel.deselectAll();\n\n return this.selectionModel.updateCollection([]);\n }\n\n this.selectionModel.updateCollection(rows.filter(this.isRowSelectable()).map(this.selectId()!));\n });\n }\n}\n","@if (headTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"headTemplate()!; injector: injector\"\n ></ng-container>\n}\n\n<tbody>\n <ng-container\n *ngFor=\"\n let row of rows();\n trackBy: trackBy();\n let index = index;\n let first = first;\n let last = last\n \"\n >\n @if ((first && headTemplate()) || !first) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n }\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n isRowSelectable: isRowSelectable(),\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 </ng-container>\n</tbody>\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 { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmTableHeadActionsComponent } from '../table-head-actions/table-head-actions.component';\nimport { TableConfigManager } from '../../models/table-config-manager.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(public tableConfigManager: TableConfigManager) {}\n}\n","@if (tableConfigManager.selectable) {\n <wlcm-table-head-actions></wlcm-table-head-actions>\n}\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\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-actions',\n host: { class: 'wlcm-table-row-actions' },\n standalone: true,\n imports: [CommonModule],\n templateUrl: './table-row-actions.component.html',\n styleUrl: './table-row-actions.component.scss',\n})\nexport class WlcmTableRowActionsComponent {}\n","<ng-content></ng-content>\n","import { Component, ElementRef, HostBinding, Inject, WritableSignal, signal } from '@angular/core';\nimport { WlcmTableRowActionsComponent } from '../table-row-actions/table-row-actions.component';\nimport { TableConfigManager } from '../../models/table-config-manager.models';\nimport { WLCM_TABLE_ROW_CONTEXT } from '../../constants/table-row.constants';\nimport { WlcmTableSelectionModel } from '../../models/table-selection-model';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WlcmTableRowContext } from '../../models/table-row.models';\nimport { filter, finalize, map, skip, takeUntil } from 'rxjs';\nimport { WlcmFormsModule } from '@wlcm/angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-table-row',\n host: { class: 'wlcm-table-row' },\n standalone: true,\n imports: [CommonModule, WlcmTableRowActionsComponent, WlcmFormsModule, FormsModule],\n templateUrl: './table-row.component.html',\n styleUrl: './table-row.component.scss',\n})\nexport class WlcmTableRowComponent<T = unknown> {\n rowId!: string;\n\n isSelected: WritableSignal<boolean> = signal(false);\n\n isSelectable: WritableSignal<boolean> = signal(false);\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 private elementRef: ElementRef<HTMLElement>,\n public tableConfigManager: TableConfigManager,\n private selectionModel: WlcmTableSelectionModel,\n @Inject(WLCM_TABLE_ROW_CONTEXT) private rowContext: WlcmTableRowContext<T>,\n ) {\n this.tableConfigManager.selectable$.pipe(untilDestroyed(this)).subscribe((value: boolean) => {\n this.isSelectable.update(() => value && this.rowContext.isRowSelectable(rowContext.$implicit));\n\n if (this.isSelectable()) {\n this.rowId = this.rowContext.selectId!(this.rowContext.$implicit);\n\n this.handleSelectionChanges();\n }\n });\n }\n\n selectionChanged(isSelected: boolean): void {\n if (isSelected) {\n return this.selectionModel.selectOne(this.rowId);\n }\n\n this.selectionModel.deselectOne(this.rowId);\n\n this.isSelected.set(isSelected);\n }\n\n private handleSelectionChanges(): void {\n this.selectionModel.selectionChanged\n .pipe(untilDestroyed(this))\n .pipe(takeUntil(this.tableConfigManager.selectable$.pipe(skip(1))))\n .pipe(map((collection: Set<string>) => collection.has(this.rowId)))\n .pipe(filter((isSelected: boolean) => isSelected !== this.isSelected()))\n .pipe(finalize(() => this.markAsUnselected()))\n .subscribe((isSelected: boolean) => {\n this.isSelected.set(isSelected);\n\n isSelected ? this.markAsSelected() : this.markAsUnselected();\n });\n }\n\n private markAsSelected = (): void => {\n this.elementRef.nativeElement.classList.add('wlcm-table-row-selected');\n };\n\n private markAsUnselected = (): void => {\n this.elementRef.nativeElement.classList.remove('wlcm-table-row-selected');\n };\n}\n","@if (tableConfigManager.selectable) {\n <wlcm-table-row-actions>\n @if (isSelectable()) {\n <wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged($event)\"\n ></wlcm-checkbox>\n }\n </wlcm-table-row-actions>\n}\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-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, ElementRef, InputSignal, NgZone, OutputEmitterRef, input, output } from '@angular/core';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { debounceTime, fromEvent } from 'rxjs';\n\n@UntilDestroy()\n@Directive({\n selector: '[wlcmScrollableTableContainer]',\n host: { class: 'wlcm-scrollable-table-container' },\n standalone: true,\n})\nexport class WlcmScrollableTableContainerDirective {\n scrollDownOffsetPercent: InputSignal<number> = input(0.8);\n\n scrolledDown: OutputEmitterRef<void> = output();\n\n constructor(private zone: NgZone, private elementRef: ElementRef<HTMLElement>) {\n this.handleScrolling();\n }\n\n private get element(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private handleScrolling(): void {\n this.zone.runOutsideAngular(() => {\n fromEvent(this.element, 'scroll')\n .pipe(debounceTime(50))\n .pipe(untilDestroyed(this))\n .subscribe(() => {\n if (\n this.element.scrollHeight * this.scrollDownOffsetPercent() <=\n this.element.scrollTop + this.element.clientHeight\n ) {\n this.zone.run(() => this.scrolledDown.emit());\n }\n });\n });\n }\n}\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":["i2.TableConfigManager","i1.WlcmTableSelectionModel","i3","i1.TableConfigManager","i4"],"mappings":"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"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Injector, InputSignal, OnInit, TemplateRef, TrackByFunction } from '@angular/core';
|
2
2
|
import { WlcmTableSelectionModel } from '../../models/table-selection-model';
|
3
|
+
import { TableConfigManager } from '../../models/table-config-manager.models';
|
3
4
|
import { WlcmIsRowSelectableFn, WlcmTableRowContext } from '../../models/table-row.models';
|
4
5
|
import { WlcmTableConfig, WlcmTableSelectIdFn } from '../../models/table.models';
|
5
6
|
import * as i0 from "@angular/core";
|
@@ -7,15 +8,17 @@ export declare class WlcmTableComponent<T = unknown> implements OnInit {
|
|
7
8
|
#private;
|
8
9
|
selectionModel: WlcmTableSelectionModel;
|
9
10
|
private config;
|
11
|
+
private configManager;
|
10
12
|
rows: InputSignal<T[]>;
|
11
13
|
headTemplate: InputSignal<TemplateRef<void> | undefined>;
|
12
14
|
rowTemplate: InputSignal<TemplateRef<WlcmTableRowContext<T>>>;
|
13
15
|
isRowSelectable: InputSignal<WlcmIsRowSelectableFn<T>>;
|
14
16
|
selectId: InputSignal<WlcmTableSelectIdFn<T> | undefined>;
|
15
17
|
trackBy: InputSignal<TrackByFunction<T>>;
|
18
|
+
selectable: InputSignal<boolean | undefined>;
|
16
19
|
injector: Injector;
|
17
|
-
constructor(selectionModel: WlcmTableSelectionModel, config: WlcmTableConfig);
|
20
|
+
constructor(selectionModel: WlcmTableSelectionModel, config: WlcmTableConfig, configManager: TableConfigManager);
|
18
21
|
ngOnInit(): void;
|
19
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableComponent<any>, never>;
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableComponent<any>, "wlcm-table", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "headTemplate": { "alias": "headTemplate"; "required": false; "isSignal": true; }; "rowTemplate": { "alias": "rowTemplate"; "required": true; "isSignal": true; }; "isRowSelectable": { "alias": "isRowSelectable"; "required": false; "isSignal": true; }; "selectId": { "alias": "selectId"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableComponent<any>, "wlcm-table", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "headTemplate": { "alias": "headTemplate"; "required": false; "isSignal": true; }; "rowTemplate": { "alias": "rowTemplate"; "required": true; "isSignal": true; }; "isRowSelectable": { "alias": "isRowSelectable"; "required": false; "isSignal": true; }; "selectId": { "alias": "selectId"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
21
24
|
}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import {
|
1
|
+
import { TableConfigManager } from '../../models/table-config-manager.models';
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export declare class WlcmTableHeadComponent {
|
4
|
-
|
5
|
-
constructor(
|
4
|
+
tableConfigManager: TableConfigManager;
|
5
|
+
constructor(tableConfigManager: TableConfigManager);
|
6
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableHeadComponent, never>;
|
7
7
|
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableHeadComponent, "wlcm-table-head", never, {}, {}, never, ["wlcm-table-head-data"], true, never>;
|
8
8
|
}
|
@@ -1,21 +1,23 @@
|
|
1
1
|
import { ElementRef, WritableSignal } from '@angular/core';
|
2
|
+
import { TableConfigManager } from '../../models/table-config-manager.models';
|
2
3
|
import { WlcmTableSelectionModel } from '../../models/table-selection-model';
|
3
4
|
import { WlcmTableRowContext } from '../../models/table-row.models';
|
4
|
-
import { WlcmTableConfig } from '../../models/table.models';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export declare class WlcmTableRowComponent<T = unknown> {
|
7
7
|
private elementRef;
|
8
|
+
tableConfigManager: TableConfigManager;
|
8
9
|
private selectionModel;
|
9
|
-
protected tableConfig: WlcmTableConfig;
|
10
10
|
private rowContext;
|
11
11
|
rowId: string;
|
12
12
|
isSelected: WritableSignal<boolean>;
|
13
13
|
isSelectable: WritableSignal<boolean>;
|
14
14
|
get first(): boolean;
|
15
15
|
get last(): boolean;
|
16
|
-
constructor(elementRef: ElementRef<HTMLElement>,
|
16
|
+
constructor(elementRef: ElementRef<HTMLElement>, tableConfigManager: TableConfigManager, selectionModel: WlcmTableSelectionModel, rowContext: WlcmTableRowContext<T>);
|
17
17
|
selectionChanged(isSelected: boolean): void;
|
18
18
|
private handleSelectionChanges;
|
19
|
+
private markAsSelected;
|
20
|
+
private markAsUnselected;
|
19
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmTableRowComponent<any>, never>;
|
20
22
|
static ɵcmp: i0.ɵɵComponentDeclaration<WlcmTableRowComponent<any>, "wlcm-table-row", never, {}, {}, never, ["wlcm-table-row-data"], true, never>;
|
21
23
|
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { Observable } from 'rxjs';
|
2
|
+
export declare abstract class TableConfigManager {
|
3
|
+
abstract readonly selectable$: Observable<boolean>;
|
4
|
+
abstract get selectable(): boolean;
|
5
|
+
abstract set selectable(value: boolean);
|
6
|
+
}
|
7
|
+
export declare class DefaultTableConfigManager extends TableConfigManager {
|
8
|
+
#private;
|
9
|
+
readonly selectable$: Observable<boolean>;
|
10
|
+
get selectable(): boolean;
|
11
|
+
set selectable(value: boolean);
|
12
|
+
}
|