@firestitch/list 18.0.78 → 18.0.80
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/app/components/body/body.component.d.ts +7 -0
- package/app/components/head/head.component.d.ts +1 -1
- package/esm2022/app/components/body/body.component.mjs +13 -3
- package/esm2022/app/components/head/head.component.mjs +2 -5
- package/esm2022/app/components/loader/loader.component.mjs +3 -3
- package/fesm2022/firestitch-list.mjs +15 -8
- package/fesm2022/firestitch-list.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -23,6 +23,13 @@ export declare class FsBodyComponent {
|
|
|
23
23
|
reorderMultiple: boolean;
|
|
24
24
|
rowsContainer: any;
|
|
25
25
|
headerTemplate: TemplateRef<any>;
|
|
26
|
+
/**
|
|
27
|
+
* Track rows by their underlying record id so that a reload (which creates
|
|
28
|
+
* fresh Row wrapper objects) reuses the existing DOM instead of destroying
|
|
29
|
+
* and recreating every row. Falls back to the row index when the data has
|
|
30
|
+
* no id (e.g. group/footer rows or id-less records) -> avoids NG0956.
|
|
31
|
+
*/
|
|
32
|
+
trackByFn(index: number, row: Row): unknown;
|
|
26
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<FsBodyComponent, never>;
|
|
27
34
|
static ɵcmp: i0.ɵɵComponentDeclaration<FsBodyComponent, "[fs-list-body]", never, { "rows": { "alias": "rows"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "hasFooter": { "alias": "hasFooter"; "required": false; }; "rowActionsRaw": { "alias": "rowActionsRaw"; "required": false; }; "groupActionsRaw": { "alias": "groupActionsRaw"; "required": false; }; "rowEvents": { "alias": "rowEvents"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "hasRowActions": { "alias": "hasRowActions"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "restoreMode": { "alias": "restoreMode"; "required": false; }; "rowRemoved": { "alias": "rowRemoved"; "required": false; }; "activeFiltersCount": { "alias": "activeFiltersCount"; "required": false; }; "reorderEnabled": { "alias": "reorderEnabled"; "required": false; }; "reorderPosition": { "alias": "reorderPosition"; "required": false; }; "reorderStrategy": { "alias": "reorderStrategy"; "required": false; }; "reorderMultiple": { "alias": "reorderMultiple"; "required": false; }; }, {}, ["headerTemplate"], never, true, never>;
|
|
28
35
|
}
|
|
@@ -35,7 +35,7 @@ export declare class FsHeadComponent implements OnInit, OnDestroy {
|
|
|
35
35
|
* @param index
|
|
36
36
|
* @param column
|
|
37
37
|
*/
|
|
38
|
-
trackByFn(index: number, column: Column): string;
|
|
38
|
+
trackByFn(index: number, column: Column): string | number;
|
|
39
39
|
/**
|
|
40
40
|
* Subscribe to sorting change
|
|
41
41
|
*/
|
|
@@ -23,15 +23,25 @@ export class FsBodyComponent {
|
|
|
23
23
|
reorderMultiple;
|
|
24
24
|
rowsContainer;
|
|
25
25
|
headerTemplate;
|
|
26
|
+
/**
|
|
27
|
+
* Track rows by their underlying record id so that a reload (which creates
|
|
28
|
+
* fresh Row wrapper objects) reuses the existing DOM instead of destroying
|
|
29
|
+
* and recreating every row. Falls back to the row index when the data has
|
|
30
|
+
* no id (e.g. group/footer rows or id-less records) -> avoids NG0956.
|
|
31
|
+
*/
|
|
32
|
+
trackByFn(index, row) {
|
|
33
|
+
const id = row?.data?.id;
|
|
34
|
+
return id ?? index;
|
|
35
|
+
}
|
|
26
36
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsBodyComponent, isStandalone: true, selector: "[fs-list-body]", inputs: { rows: "rows", columns: "columns", hasFooter: "hasFooter", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", rowEvents: "rowEvents", rowClass: "rowClass", hasRowActions: "hasRowActions", selection: "selection", restoreMode: "restoreMode", rowRemoved: "rowRemoved", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy", reorderMultiple: "reorderMultiple" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsRowComponent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "@for (row of rows; track row; let i = $index) {\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n}", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"], dependencies: [{ kind: "component", type: FsRowComponent, selector: "[fs-list-row]", inputs: ["row", "rowActionsRaw", "groupActionsRaw", "hasRowActions", "rowEvents", "rowClass", "restoreMode", "rowIndex", "columns", "selection", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }, { kind: "directive", type: FsListDraggableRowDirective, selector: "[fsListDraggableRow]", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsBodyComponent, isStandalone: true, selector: "[fs-list-body]", inputs: { rows: "rows", columns: "columns", hasFooter: "hasFooter", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", rowEvents: "rowEvents", rowClass: "rowClass", hasRowActions: "hasRowActions", selection: "selection", restoreMode: "restoreMode", rowRemoved: "rowRemoved", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy", reorderMultiple: "reorderMultiple" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsRowComponent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "@for (row of rows; track trackByFn(i, row); let i = $index) {\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n}", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"], dependencies: [{ kind: "component", type: FsRowComponent, selector: "[fs-list-row]", inputs: ["row", "rowActionsRaw", "groupActionsRaw", "hasRowActions", "rowEvents", "rowClass", "restoreMode", "rowIndex", "columns", "selection", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }, { kind: "directive", type: FsListDraggableRowDirective, selector: "[fsListDraggableRow]", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
28
38
|
}
|
|
29
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsBodyComponent, decorators: [{
|
|
30
40
|
type: Component,
|
|
31
41
|
args: [{ selector: '[fs-list-body]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
32
42
|
FsRowComponent,
|
|
33
43
|
FsListDraggableRowDirective,
|
|
34
|
-
], template: "@for (row of rows; track row; let i = $index) {\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n}", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"] }]
|
|
44
|
+
], template: "@for (row of rows; track trackByFn(i, row); let i = $index) {\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n}", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"] }]
|
|
35
45
|
}], propDecorators: { rows: [{
|
|
36
46
|
type: Input
|
|
37
47
|
}], columns: [{
|
|
@@ -71,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
71
81
|
type: ContentChild,
|
|
72
82
|
args: [FsRowComponent, { read: TemplateRef, static: true }]
|
|
73
83
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9ib2R5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L2JvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUlyRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBY3JELE1BQU0sT0FBTyxlQUFlO0lBRVYsSUFBSSxDQUFRO0lBQ1osT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUN2QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLGFBQWEsR0FBVSxFQUFFLENBQUM7SUFDMUIsZUFBZSxHQUFVLEVBQUUsQ0FBQztJQUM1QixTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ2YsUUFBUSxDQUFDO0lBQ1QsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixTQUFTLENBQXNCO0lBQy9CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsVUFBVSxDQUFvQjtJQUM5QixrQkFBa0IsQ0FBUztJQUMzQixjQUFjLENBQVU7SUFDeEIsZUFBZSxDQUF5QjtJQUN4QyxlQUFlLENBQXlCO0lBQ3hDLGVBQWUsQ0FBVTtJQUdsQyxhQUFhLENBQUM7SUFHZCxjQUFjLENBQW1CO0lBRXhDOzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFDLEtBQWEsRUFBRSxHQUFRO1FBQ3RDLE1BQU0sRUFBRSxHQUFJLEdBQUcsRUFBRSxJQUF5QixFQUFFLEVBQUUsQ0FBQztRQUUvQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUM7SUFDckIsQ0FBQzt1R0FuQ1UsZUFBZTsyRkFBZixlQUFlLG9sQkFzQlosY0FBYywyQkFBVSxXQUFXLHNJQUhiLGdCQUFnQiwyQ0NsRHRELG1yQkFxQkMseUtETUcsY0FBYywyVEFDZCwyQkFBMkI7OzJGQUdsQixlQUFlO2tCQVgzQixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLDJCQUEyQjtxQkFDNUI7OEJBSWUsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUdDLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTdELGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVvcmRlclBvc2l0aW9uLCBSZW9yZGVyU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlcic7XG5pbXBvcnQgeyBTZWxlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9zZWxlY3Rpb24tY29udHJvbGxlcic7XG5pbXBvcnQgeyBGc0xpc3REcmFnZ2FibGVSb3dEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RyYWdnYWJsZS1yb3cvZHJhZ2dhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi9tb2RlbHMvcm93JztcblxuaW1wb3J0IHsgRnNSb3dDb21wb25lbnQgfSBmcm9tICcuL3Jvdy9yb3cuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbZnMtbGlzdC1ib2R5XScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib2R5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYm9keS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZzUm93Q29tcG9uZW50LFxuICAgIEZzTGlzdERyYWdnYWJsZVJvd0RpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNCb2R5Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBwdWJsaWMgcm93czogUm93W107XG4gIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5zOiBDb2x1bW5bXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgaGFzRm9vdGVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyByb3dBY3Rpb25zUmF3OiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBBY3Rpb25zUmF3OiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgcm93RXZlbnRzID0ge307XG4gIEBJbnB1dCgpIHB1YmxpYyByb3dDbGFzcztcbiAgQElucHV0KCkgcHVibGljIGhhc1Jvd0FjdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uQ29udHJvbGxlcjtcbiAgQElucHV0KCkgcHVibGljIHJlc3RvcmVNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyByb3dSZW1vdmVkOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGFjdGl2ZUZpbHRlcnNDb3VudDogbnVtYmVyO1xuICBASW5wdXQoKSBwdWJsaWMgcmVvcmRlckVuYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyByZW9yZGVyUG9zaXRpb246IFJlb3JkZXJQb3NpdGlvbiB8IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyByZW9yZGVyU3RyYXRlZ3k6IFJlb3JkZXJTdHJhdGVneSB8IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyByZW9yZGVyTXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgncm93c0NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyByb3dzQ29udGFpbmVyO1xuXG4gIEBDb250ZW50Q2hpbGQoRnNSb3dDb21wb25lbnQsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIFRyYWNrIHJvd3MgYnkgdGhlaXIgdW5kZXJseWluZyByZWNvcmQgaWQgc28gdGhhdCBhIHJlbG9hZCAod2hpY2ggY3JlYXRlc1xuICAgKiBmcmVzaCBSb3cgd3JhcHBlciBvYmplY3RzKSByZXVzZXMgdGhlIGV4aXN0aW5nIERPTSBpbnN0ZWFkIG9mIGRlc3Ryb3lpbmdcbiAgICogYW5kIHJlY3JlYXRpbmcgZXZlcnkgcm93LiBGYWxscyBiYWNrIHRvIHRoZSByb3cgaW5kZXggd2hlbiB0aGUgZGF0YSBoYXNcbiAgICogbm8gaWQgKGUuZy4gZ3JvdXAvZm9vdGVyIHJvd3Mgb3IgaWQtbGVzcyByZWNvcmRzKSAtPiBhdm9pZHMgTkcwOTU2LlxuICAgKi9cbiAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCByb3c6IFJvdyk6IHVua25vd24ge1xuICAgIGNvbnN0IGlkID0gKHJvdz8uZGF0YSBhcyB7IGlkPzogdW5rbm93biB9KT8uaWQ7XG5cbiAgICByZXR1cm4gaWQgPz8gaW5kZXg7XG4gIH1cblxufVxuIiwiQGZvciAocm93IG9mIHJvd3M7IHRyYWNrIHRyYWNrQnlGbihpLCByb3cpOyBsZXQgaSA9ICRpbmRleCkge1xuICA8dHJcbiAgICBmcy1saXN0LXJvd1xuICAgIGZzTGlzdERyYWdnYWJsZVJvd1xuICAgIFtyb3ddPVwicm93XCJcbiAgICBbcm93SW5kZXhdPVwiaVwiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW3Jvd0FjdGlvbnNSYXddPVwicm93QWN0aW9uc1Jhd1wiXG4gICAgW2dyb3VwQWN0aW9uc1Jhd109XCJncm91cEFjdGlvbnNSYXdcIlxuICAgIFtoYXNSb3dBY3Rpb25zXT1cImhhc1Jvd0FjdGlvbnNcIlxuICAgIFtyb3dFdmVudHNdPVwicm93RXZlbnRzXCJcbiAgICBbcm93Q2xhc3NdPVwicm93Q2xhc3NcIlxuICAgIFtzZWxlY3Rpb25dPVwic2VsZWN0aW9uXCJcbiAgICBbcmVzdG9yZU1vZGVdPVwicmVzdG9yZU1vZGVcIlxuICAgIFtyb3dSZW1vdmVkXT1cInJvd1JlbW92ZWRcIlxuICAgIFthY3RpdmVGaWx0ZXJzQ291bnRdPVwiYWN0aXZlRmlsdGVyc0NvdW50XCJcbiAgICBbcmVvcmRlckVuYWJsZWRdPVwicmVvcmRlckVuYWJsZWRcIlxuICAgIFtyZW9yZGVyUG9zaXRpb25dPVwicmVvcmRlclBvc2l0aW9uXCJcbiAgICBbcmVvcmRlclN0cmF0ZWd5XT1cInJlb3JkZXJTdHJhdGVneVwiXG4gICAgW3Jlb3JkZXJNdWx0aXBsZV09XCJyZW9yZGVyTXVsdGlwbGVcIj5cbiAgPC90cj5cbn0iXX0=
|
|
@@ -55,10 +55,7 @@ export class FsHeadComponent {
|
|
|
55
55
|
* @param column
|
|
56
56
|
*/
|
|
57
57
|
trackByFn(index, column) {
|
|
58
|
-
|
|
59
|
-
// (whose name||title resolves to an empty string) never collide and
|
|
60
|
-
// produce duplicate "" keys -> NG0955.
|
|
61
|
-
return `${column.name || column.title || ''}_${index}`;
|
|
58
|
+
return column.name || column.title || index;
|
|
62
59
|
}
|
|
63
60
|
/**
|
|
64
61
|
* Subscribe to sorting change
|
|
@@ -116,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
116
113
|
type: ViewChild,
|
|
117
114
|
args: ['rowsContainer', { read: ViewContainerRef, static: true }]
|
|
118
115
|
}] } });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvaGVhZC9oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9oZWFkL2hlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVySixPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLDRCQUE0QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFnQnRFLE1BQU0sT0FBTyxlQUFlO0lBRVYsT0FBTyxDQUFvQjtJQUMzQixPQUFPLENBQVc7SUFDbEIsYUFBYSxDQUFVO0lBQ3ZCLFNBQVMsQ0FBc0I7SUFDL0Isa0JBQWtCLENBQVM7SUFDM0IsY0FBYyxDQUFVO0lBQ3hCLGVBQWUsQ0FBeUI7SUFDeEMsZUFBZSxDQUF5QjtJQUdqRCxhQUFhLENBQUM7SUFFZCxXQUFXLEdBQUcsS0FB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QUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUdDLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0Q2hlY2tib3gsIE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgUmVvcmRlclBvc2l0aW9uLFxuICBSZW9yZGVyU3RyYXRlZ3ksXG59IGZyb20gJy4uLy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkNoYW5nZVR5cGUsIFNlbGVjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3NlbGVjdGlvbi1jb250cm9sbGVyJztcbmltcG9ydCB7IFNvcnRpbmdDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9zb3J0aW5nLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5cbmltcG9ydCB7IEZzSGVhZENlbGxDb21wb25lbnQgfSBmcm9tICcuL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbZnMtbGlzdC1oZWFkXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdENoZWNrYm94LFxuICAgIEZzSGVhZENlbGxDb21wb25lbnQsXG4gICAgTmdDbGFzcyxcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzSGVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBwdWJsaWMgc29ydGluZzogU29ydGluZ0NvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5zOiBDb2x1bW5bXTtcbiAgQElucHV0KCkgcHVibGljIGhhc1Jvd0FjdGlvbnM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvbkNvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBhY3RpdmVGaWx0ZXJzQ291bnQ6IG51bWJlcjtcbiAgQElucHV0KCkgcHVibGljIHJlb3JkZXJFbmFibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgcmVvcmRlclBvc2l0aW9uOiBSZW9yZGVyUG9zaXRpb24gfCBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcmVvcmRlclN0cmF0ZWd5OiBSZW9yZGVyU3RyYXRlZ3kgfCBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ3Jvd3NDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgcm93c0NvbnRhaW5lcjtcblxuICBwdWJsaWMgc2VsZWN0ZWRBbGwgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IFJlb3JkZXJTdHJhdGVneUVudW0gPSBSZW9yZGVyU3RyYXRlZ3k7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9jZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHVibGljIGdldCBsZWZ0RHJhZ0Ryb3BFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlb3JkZXJFbmFibGVkXG4gICAgICAmJiB0aGlzLnJlb3JkZXJQb3NpdGlvbiA9PT0gUmVvcmRlclBvc2l0aW9uLkxlZnRcbiAgICAgICYmIHRoaXMuYWN0aXZlRmlsdGVyc0NvdW50ID09PSAwO1xuICB9XG5cbiAgcHVibGljIGdldCByaWdodERyYWdEcm9wRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZW9yZGVyRW5hYmxlZFxuICAgICAgJiYgdGhpcy5yZW9yZGVyUG9zaXRpb24gPT09IFJlb3JkZXJQb3NpdGlvbi5SaWdodFxuICAgICAgJiYgdGhpcy5hY3RpdmVGaWx0ZXJzQ291bnQgPT09IDA7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5faW5pdFNvcnRpbmcoKTtcbiAgICB0aGlzLl9pbml0U2VsZWN0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBBbGwgVmlzaWJsZSBSb3dzXG4gICAqXG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgcHVibGljIHNlbGVjdEFsbChldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RBbGxWaXNpYmxlUm93cyhldmVudC5jaGVja2VkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFjayBCeSBmb3IgaW1wcm92ZSBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcGFyYW0gY29sdW1uXG4gICAqL1xuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGNvbHVtbjogQ29sdW1uKSB7XG4gICAgLy8gQ29tYmluZSB0aGUgbGFiZWwgd2l0aCB0aGUgaW5kZXggc28gY29sdW1ucyB3aXRob3V0IGEgbmFtZS90aXRsZVxuICAgIC8vICh3aG9zZSBuYW1lfHx0aXRsZSByZXNvbHZlcyB0byBhbiBlbXB0eSBzdHJpbmcpIG5ldmVyIGNvbGxpZGUgYW5kXG4gICAgLy8gcHJvZHVjZSBkdXBsaWNhdGUgXCJcIiBrZXlzIC0+IE5HMDk1NS5cbiAgICByZXR1cm4gYCR7Y29sdW1uLm5hbWUgfHwgY29sdW1uLnRpdGxlIHx8ICcnfV8ke2luZGV4fWA7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIHNvcnRpbmcgY2hhbmdlXG4gICAqL1xuICBwcml2YXRlIF9pbml0U29ydGluZygpIHtcbiAgICB0aGlzLnNvcnRpbmcuc29ydGluZ0NoYW5nZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gc2VsZWN0aW9uIGNoYW5nZVxuICAgKi9cbiAgcHJpdmF0ZSBfaW5pdFNlbGVjdGlvbigpIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZSRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgKHsgdHlwZSB9KSA9PiAoXG4gICAgICAgICAgICAgIHR5cGUgPT09IFNlbGVjdGlvbkNoYW5nZVR5cGUuQWxsVmlzaWJsZVNlbGVjdGlvbkNoYW5nZVxuICAgICAgICAgICAgICB8fCB0eXBlID09PSBTZWxlY3Rpb25DaGFuZ2VUeXBlLlNlbGVjdGVkQWxsXG4gICAgICAgICAgICAgIHx8IHR5cGUgPT09IFNlbGVjdGlvbkNoYW5nZVR5cGUuUm93U2VsZWN0aW9uQ2hhbmdlXG4gICAgICAgICAgICApLFxuICAgICAgICAgICksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQ6IHN0YXR1cyB9KSA9PiB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEFsbCA9IHN0YXR1cztcblxuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjx0ciBjbGFzcz1cImZzLWxpc3Qtcm93XCI+XG4gIDwhLS0gRHJhZyAtLT5cbiAgQGlmIChsZWZ0RHJhZ0Ryb3BFbmFibGVkKSB7XG4gICAgPHRoIGNsYXNzPVwiZnMtbGlzdC1jb2wgZHJhZy1jb2xcIj48L3RoPlxuICB9XG4gIDwhLS0gU2VsZWN0aW9uIC0tPlxuICBAaWYgKHNlbGVjdGlvbiAmJiAhKHNlbGVjdGlvbi5kaXNhYmxlZCQgfCBhc3luYykpIHtcbiAgICA8dGggY2xhc3M9XCJmcy1saXN0LWNvbCBmcy1saXN0LWNvbC1zZWxlY3Rpb25cIj5cbiAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiXG4gICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkQWxsXCI+XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L3RoPlxuICB9XG4gIDwhLS0gQ29udGVudCAtLT5cbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgsIGNvbHVtbikpIHtcbiAgICA8dGhcbiAgICAgIGZzLWhlYWQtY2VsbFxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgc29ydGluZy5zb3J0QnkoY29sdW1uKVwiXG4gICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICBbY2xhc3Muc29ydGluZ109XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLmhlYWRlckNvbmZpZ3MuY2xhc3Nlc0FycmF5XCJcbiAgICAgIFthdHRyLmNvbHNwYW5dPVwiY29sdW1uLmhlYWRlckNvbmZpZ3MuY29sc3BhblwiXG4gICAgICBbYXR0ci53aWR0aF09XCJjb2x1bW4ud2lkdGhcIj5cbiAgICA8L3RoPlxuICB9XG4gIDwhLS0gRHJhZyAtLT5cbiAgQGlmIChyaWdodERyYWdEcm9wRW5hYmxlZCkge1xuICAgIDx0aCBjbGFzcz1cImZzLWxpc3QtY29sIGRyYWctY29sXCI+PC90aD5cbiAgfVxuICA8IS0tIFJvdyBBY3Rpb25zIC0tPlxuICBAaWYgKGhhc1Jvd0FjdGlvbnMgJiYgIShyZW9yZGVyRW5hYmxlZCAmJiByZW9yZGVyU3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneUVudW0uTWFudWFsKSkge1xuICAgIDx0aCBjbGFzcz1cImZzLWxpc3QtY29sIGFjdGlvbnMtY29sXCI+PC90aD5cbiAgfVxuPC90cj4iXX0=
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvaGVhZC9oZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9oZWFkL2hlYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVySixPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLDRCQUE0QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFnQnRFLE1BQU0sT0FBTyxlQUFlO0lBRVYsT0FBTyxDQUFvQjtJQUMzQixPQUFPLENBQVc7SUFDbEIsYUFBYSxDQUFVO0lBQ3ZCLFNBQVMsQ0FBc0I7SUFDL0Isa0JBQWtCLENBQVM7SUFDM0IsY0FBYyxDQUFVO0lBQ3hCLGVBQWUsQ0FBeUI7SUFDeEMsZUFBZSxDQUF5QjtJQUdqRCxhQUFhLENBQUM7SUFFZCxXQUFXLEdBQUcsS0FB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O3NCQUF4QixLQUFLO2dCQUNVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFHQyxhQUFhO3NCQURuQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdENoZWNrYm94LCBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIFJlb3JkZXJQb3NpdGlvbixcbiAgUmVvcmRlclN0cmF0ZWd5LFxufSBmcm9tICcuLi8uLi9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlcic7XG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2VUeXBlLCBTZWxlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9zZWxlY3Rpb24tY29udHJvbGxlcic7XG5pbXBvcnQgeyBTb3J0aW5nQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvc29ydGluZy1jb250cm9sbGVyJztcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVscy9jb2x1bW4ubW9kZWwnO1xuXG5pbXBvcnQgeyBGc0hlYWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9oZWFkLWNlbGwvaGVhZC1jZWxsLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW2ZzLWxpc3QtaGVhZF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRDaGVja2JveCxcbiAgICBGc0hlYWRDZWxsQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGc0hlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcHVibGljIHNvcnRpbmc6IFNvcnRpbmdDb250cm9sbGVyO1xuICBASW5wdXQoKSBwdWJsaWMgY29sdW1uczogQ29sdW1uW107XG4gIEBJbnB1dCgpIHB1YmxpYyBoYXNSb3dBY3Rpb25zOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uOiBTZWxlY3Rpb25Db250cm9sbGVyO1xuICBASW5wdXQoKSBwdWJsaWMgYWN0aXZlRmlsdGVyc0NvdW50OiBudW1iZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyByZW9yZGVyRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIHJlb3JkZXJQb3NpdGlvbjogUmVvcmRlclBvc2l0aW9uIHwgbnVsbDtcbiAgQElucHV0KCkgcHVibGljIHJlb3JkZXJTdHJhdGVneTogUmVvcmRlclN0cmF0ZWd5IHwgbnVsbDtcblxuICBAVmlld0NoaWxkKCdyb3dzQ29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHJvd3NDb250YWluZXI7XG5cbiAgcHVibGljIHNlbGVjdGVkQWxsID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBSZW9yZGVyU3RyYXRlZ3lFbnVtID0gUmVvcmRlclN0cmF0ZWd5O1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHB1YmxpYyBnZXQgbGVmdERyYWdEcm9wRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZW9yZGVyRW5hYmxlZFxuICAgICAgJiYgdGhpcy5yZW9yZGVyUG9zaXRpb24gPT09IFJlb3JkZXJQb3NpdGlvbi5MZWZ0XG4gICAgICAmJiB0aGlzLmFjdGl2ZUZpbHRlcnNDb3VudCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmlnaHREcmFnRHJvcEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVvcmRlckVuYWJsZWRcbiAgICAgICYmIHRoaXMucmVvcmRlclBvc2l0aW9uID09PSBSZW9yZGVyUG9zaXRpb24uUmlnaHRcbiAgICAgICYmIHRoaXMuYWN0aXZlRmlsdGVyc0NvdW50ID09PSAwO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2luaXRTb3J0aW5nKCk7XG4gICAgdGhpcy5faW5pdFNlbGVjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgQWxsIFZpc2libGUgUm93c1xuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RBbGwoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0QWxsVmlzaWJsZVJvd3MoZXZlbnQuY2hlY2tlZCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgQnkgZm9yIGltcHJvdmUgY2hhbmdlIGRldGVjdGlvblxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICogQHBhcmFtIGNvbHVtblxuICAgKi9cbiAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBjb2x1bW46IENvbHVtbikge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZSB8fCBjb2x1bW4udGl0bGUgfHwgaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIHNvcnRpbmcgY2hhbmdlXG4gICAqL1xuICBwcml2YXRlIF9pbml0U29ydGluZygpIHtcbiAgICB0aGlzLnNvcnRpbmcuc29ydGluZ0NoYW5nZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gc2VsZWN0aW9uIGNoYW5nZVxuICAgKi9cbiAgcHJpdmF0ZSBfaW5pdFNlbGVjdGlvbigpIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZSRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgKHsgdHlwZSB9KSA9PiAoXG4gICAgICAgICAgICAgIHR5cGUgPT09IFNlbGVjdGlvbkNoYW5nZVR5cGUuQWxsVmlzaWJsZVNlbGVjdGlvbkNoYW5nZVxuICAgICAgICAgICAgICB8fCB0eXBlID09PSBTZWxlY3Rpb25DaGFuZ2VUeXBlLlNlbGVjdGVkQWxsXG4gICAgICAgICAgICAgIHx8IHR5cGUgPT09IFNlbGVjdGlvbkNoYW5nZVR5cGUuUm93U2VsZWN0aW9uQ2hhbmdlXG4gICAgICAgICAgICApLFxuICAgICAgICAgICksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQ6IHN0YXR1cyB9KSA9PiB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEFsbCA9IHN0YXR1cztcblxuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjx0ciBjbGFzcz1cImZzLWxpc3Qtcm93XCI+XG4gIDwhLS0gRHJhZyAtLT5cbiAgQGlmIChsZWZ0RHJhZ0Ryb3BFbmFibGVkKSB7XG4gICAgPHRoIGNsYXNzPVwiZnMtbGlzdC1jb2wgZHJhZy1jb2xcIj48L3RoPlxuICB9XG4gIDwhLS0gU2VsZWN0aW9uIC0tPlxuICBAaWYgKHNlbGVjdGlvbiAmJiAhKHNlbGVjdGlvbi5kaXNhYmxlZCQgfCBhc3luYykpIHtcbiAgICA8dGggY2xhc3M9XCJmcy1saXN0LWNvbCBmcy1saXN0LWNvbC1zZWxlY3Rpb25cIj5cbiAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiXG4gICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkQWxsXCI+XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L3RoPlxuICB9XG4gIDwhLS0gQ29udGVudCAtLT5cbiAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIHRyYWNrQnlGbigkaW5kZXgsIGNvbHVtbikpIHtcbiAgICA8dGhcbiAgICAgIGZzLWhlYWQtY2VsbFxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgc29ydGluZy5zb3J0QnkoY29sdW1uKVwiXG4gICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICBbY2xhc3Muc29ydGluZ109XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLmhlYWRlckNvbmZpZ3MuY2xhc3Nlc0FycmF5XCJcbiAgICAgIFthdHRyLmNvbHNwYW5dPVwiY29sdW1uLmhlYWRlckNvbmZpZ3MuY29sc3BhblwiXG4gICAgICBbYXR0ci53aWR0aF09XCJjb2x1bW4ud2lkdGhcIj5cbiAgICA8L3RoPlxuICB9XG4gIDwhLS0gRHJhZyAtLT5cbiAgQGlmIChyaWdodERyYWdEcm9wRW5hYmxlZCkge1xuICAgIDx0aCBjbGFzcz1cImZzLWxpc3QtY29sIGRyYWctY29sXCI+PC90aD5cbiAgfVxuICA8IS0tIFJvdyBBY3Rpb25zIC0tPlxuICBAaWYgKGhhc1Jvd0FjdGlvbnMgJiYgIShyZW9yZGVyRW5hYmxlZCAmJiByZW9yZGVyU3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneUVudW0uTWFudWFsKSkge1xuICAgIDx0aCBjbGFzcz1cImZzLWxpc3QtY29sIGFjdGlvbnMtY29sXCI+PC90aD5cbiAgfVxuPC90cj4iXX0=
|
|
@@ -26,14 +26,14 @@ export class FsListLoaderComponent {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsListLoaderComponent, isStandalone: true, selector: "fs-list-loader", inputs: { columns: "columns", loaderLines: "loaderLines" }, usesOnChanges: true, ngImport: i0, template: "<table>\n <thead>\n <tr>\n @for (col of cols; track
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsListLoaderComponent, isStandalone: true, selector: "fs-list-loader", inputs: { columns: "columns", loaderLines: "loaderLines" }, usesOnChanges: true, ngImport: i0, template: "<table>\n <thead>\n <tr>\n @for (col of cols; track column; let column = $index) {\n <th [width]=\"widths[column] + '%'\">\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"(placeholderWidths[0][column]/2) + '%'\"></div>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows; track index; let index = $index) {\n <tr>\n @for (col of cols; track column; let column = $index) {\n <td>\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"placeholderWidths[index][column] + '%'\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: ["table{width:100%;border-spacing:0}.fs-skeleton-placeholder{opacity:.5}:host ::ng-deep tbody tr:hover td{background:transparent}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
30
30
|
}
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListLoaderComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
|
-
args: [{ selector: 'fs-list-loader', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [], template: "<table>\n <thead>\n <tr>\n @for (col of cols; track
|
|
33
|
+
args: [{ selector: 'fs-list-loader', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [], template: "<table>\n <thead>\n <tr>\n @for (col of cols; track column; let column = $index) {\n <th [width]=\"widths[column] + '%'\">\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"(placeholderWidths[0][column]/2) + '%'\"></div>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows; track index; let index = $index) {\n <tr>\n @for (col of cols; track column; let column = $index) {\n <td>\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"placeholderWidths[index][column] + '%'\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: ["table{width:100%;border-spacing:0}.fs-skeleton-placeholder{opacity:.5}:host ::ng-deep tbody tr:hover td{background:transparent}\n"] }]
|
|
34
34
|
}], propDecorators: { columns: [{
|
|
35
35
|
type: Input
|
|
36
36
|
}], loaderLines: [{
|
|
37
37
|
type: Input
|
|
38
38
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQVluQyxNQUFNLE9BQU8scUJBQXFCO0lBRXpCLGlCQUFpQixHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBRUgsT0FBTyxDQUFDO0lBR2pCLFdBQVcsQ0FBUztJQUVwQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ1YsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVWLFFBQVE7UUFFYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO3VHQWhDVSxxQkFBcUI7MkZBQXJCLHFCQUFxQiwySkNyQmxDLDZvQkFzQkE7OzJGRERhLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsRUFBRTs4QkFPRyxPQUFPO3NCQUF0QixLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyByYW5kb20gfSBmcm9tICdsb2Rhc2gtZXMnO1xuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmcy1saXN0LWxvYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXSxcbn0pXHJcbmV4cG9ydCBjbGFzcyBGc0xpc3RMb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIHB1YmxpYyBwbGFjZWhvbGRlcldpZHRocyA9IFtbXSwgW10sIFtdXTtcclxuICBwdWJsaWMgd2lkdGhzID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5zO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsb2FkZXJMaW5lczogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgY29scyA9IFtdO1xyXG4gIHB1YmxpYyByb3dzID0gW107XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLmNvbHMgPSB0aGlzLmNvbHVtbnMgPiA1ID8gdGhpcy5jb2x1bW5zLnNwbGljZSgwLCA1KSA6IHRoaXMuY29sdW1ucztcclxuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuY29scy5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCB3ID0gbGVuZ3RoOyB3ID49IDA7IHctLSkge1xyXG4gICAgICB0aGlzLndpZHRoc1t3XSA9IHcgPyByYW5kb20oMTUsIDEwMCAvIGxlbmd0aCwgZmFsc2UpIDogMDtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCByID0gMDsgciA8IDM7IHIrKykge1xyXG4gICAgICBmb3IgKGxldCBjID0gMDsgYyA8IGxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlcldpZHRoc1tyXS5wdXNoKHJhbmRvbSg1MCwgOTApKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLmxvYWRlckxpbmVzKSB7XHJcbiAgICAgIHRoaXMucm93cyA9IG5ldyBBcnJheSh0aGlzLmxvYWRlckxpbmVzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHRhYmxlPlxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgQGZvciAoY29sIG9mIGNvbHM7IHRyYWNrIGNvbHVtbjsgbGV0IGNvbHVtbiA9ICRpbmRleCkge1xuICAgICAgICA8dGggW3dpZHRoXT1cIndpZHRoc1tjb2x1bW5dICsgJyUnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZzLXNrZWxldG9uLXBsYWNlaG9sZGVyXCIgW3N0eWxlLndpZHRoXT1cIihwbGFjZWhvbGRlcldpZHRoc1swXVtjb2x1bW5dLzIpICArICclJ1wiPjwvZGl2PlxuICAgICAgICA8L3RoPlxuICAgICAgfVxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cbiAgICBAZm9yIChyb3cgb2Ygcm93czsgdHJhY2sgaW5kZXg7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgPHRyPlxuICAgICAgICBAZm9yIChjb2wgb2YgY29sczsgdHJhY2sgY29sdW1uOyBsZXQgY29sdW1uID0gJGluZGV4KSB7XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLXNrZWxldG9uLXBsYWNlaG9sZGVyXCIgW3N0eWxlLndpZHRoXT1cInBsYWNlaG9sZGVyV2lkdGhzW2luZGV4XVtjb2x1bW5dICsgJyUnXCI+PC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgfVxuICAgICAgPC90cj5cbiAgICB9XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuIl19
|
|
@@ -2552,15 +2552,25 @@ class FsBodyComponent {
|
|
|
2552
2552
|
reorderMultiple;
|
|
2553
2553
|
rowsContainer;
|
|
2554
2554
|
headerTemplate;
|
|
2555
|
+
/**
|
|
2556
|
+
* Track rows by their underlying record id so that a reload (which creates
|
|
2557
|
+
* fresh Row wrapper objects) reuses the existing DOM instead of destroying
|
|
2558
|
+
* and recreating every row. Falls back to the row index when the data has
|
|
2559
|
+
* no id (e.g. group/footer rows or id-less records) -> avoids NG0956.
|
|
2560
|
+
*/
|
|
2561
|
+
trackByFn(index, row) {
|
|
2562
|
+
const id = row?.data?.id;
|
|
2563
|
+
return id ?? index;
|
|
2564
|
+
}
|
|
2555
2565
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2556
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsBodyComponent, isStandalone: true, selector: "[fs-list-body]", inputs: { rows: "rows", columns: "columns", hasFooter: "hasFooter", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", rowEvents: "rowEvents", rowClass: "rowClass", hasRowActions: "hasRowActions", selection: "selection", restoreMode: "restoreMode", rowRemoved: "rowRemoved", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy", reorderMultiple: "reorderMultiple" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsRowComponent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "@for (row of rows; track row; let i = $index) {\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n}", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"], dependencies: [{ kind: "component", type: FsRowComponent, selector: "[fs-list-row]", inputs: ["row", "rowActionsRaw", "groupActionsRaw", "hasRowActions", "rowEvents", "rowClass", "restoreMode", "rowIndex", "columns", "selection", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }, { kind: "directive", type: FsListDraggableRowDirective, selector: "[fsListDraggableRow]", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2566
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsBodyComponent, isStandalone: true, selector: "[fs-list-body]", inputs: { rows: "rows", columns: "columns", hasFooter: "hasFooter", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", rowEvents: "rowEvents", rowClass: "rowClass", hasRowActions: "hasRowActions", selection: "selection", restoreMode: "restoreMode", rowRemoved: "rowRemoved", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy", reorderMultiple: "reorderMultiple" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsRowComponent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "@for (row of rows; track trackByFn(i, row); let i = $index) {\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n}", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"], dependencies: [{ kind: "component", type: FsRowComponent, selector: "[fs-list-row]", inputs: ["row", "rowActionsRaw", "groupActionsRaw", "hasRowActions", "rowEvents", "rowClass", "restoreMode", "rowIndex", "columns", "selection", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }, { kind: "directive", type: FsListDraggableRowDirective, selector: "[fsListDraggableRow]", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2557
2567
|
}
|
|
2558
2568
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsBodyComponent, decorators: [{
|
|
2559
2569
|
type: Component,
|
|
2560
2570
|
args: [{ selector: '[fs-list-body]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
2561
2571
|
FsRowComponent,
|
|
2562
2572
|
FsListDraggableRowDirective,
|
|
2563
|
-
], template: "@for (row of rows; track row; let i = $index) {\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n}", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"] }]
|
|
2573
|
+
], template: "@for (row of rows; track trackByFn(i, row); let i = $index) {\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n}", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"] }]
|
|
2564
2574
|
}], propDecorators: { rows: [{
|
|
2565
2575
|
type: Input
|
|
2566
2576
|
}], columns: [{
|
|
@@ -3076,10 +3086,7 @@ class FsHeadComponent {
|
|
|
3076
3086
|
* @param column
|
|
3077
3087
|
*/
|
|
3078
3088
|
trackByFn(index, column) {
|
|
3079
|
-
|
|
3080
|
-
// (whose name||title resolves to an empty string) never collide and
|
|
3081
|
-
// produce duplicate "" keys -> NG0955.
|
|
3082
|
-
return `${column.name || column.title || ''}_${index}`;
|
|
3089
|
+
return column.name || column.title || index;
|
|
3083
3090
|
}
|
|
3084
3091
|
/**
|
|
3085
3092
|
* Subscribe to sorting change
|
|
@@ -5524,11 +5531,11 @@ class FsListLoaderComponent {
|
|
|
5524
5531
|
}
|
|
5525
5532
|
}
|
|
5526
5533
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5527
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsListLoaderComponent, isStandalone: true, selector: "fs-list-loader", inputs: { columns: "columns", loaderLines: "loaderLines" }, usesOnChanges: true, ngImport: i0, template: "<table>\n <thead>\n <tr>\n @for (col of cols; track
|
|
5534
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsListLoaderComponent, isStandalone: true, selector: "fs-list-loader", inputs: { columns: "columns", loaderLines: "loaderLines" }, usesOnChanges: true, ngImport: i0, template: "<table>\n <thead>\n <tr>\n @for (col of cols; track column; let column = $index) {\n <th [width]=\"widths[column] + '%'\">\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"(placeholderWidths[0][column]/2) + '%'\"></div>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows; track index; let index = $index) {\n <tr>\n @for (col of cols; track column; let column = $index) {\n <td>\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"placeholderWidths[index][column] + '%'\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: ["table{width:100%;border-spacing:0}.fs-skeleton-placeholder{opacity:.5}:host ::ng-deep tbody tr:hover td{background:transparent}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5528
5535
|
}
|
|
5529
5536
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListLoaderComponent, decorators: [{
|
|
5530
5537
|
type: Component,
|
|
5531
|
-
args: [{ selector: 'fs-list-loader', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [], template: "<table>\n <thead>\n <tr>\n @for (col of cols; track
|
|
5538
|
+
args: [{ selector: 'fs-list-loader', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [], template: "<table>\n <thead>\n <tr>\n @for (col of cols; track column; let column = $index) {\n <th [width]=\"widths[column] + '%'\">\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"(placeholderWidths[0][column]/2) + '%'\"></div>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows; track index; let index = $index) {\n <tr>\n @for (col of cols; track column; let column = $index) {\n <td>\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"placeholderWidths[index][column] + '%'\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n</table>\n", styles: ["table{width:100%;border-spacing:0}.fs-skeleton-placeholder{opacity:.5}:host ::ng-deep tbody tr:hover td{background:transparent}\n"] }]
|
|
5532
5539
|
}], propDecorators: { columns: [{
|
|
5533
5540
|
type: Input
|
|
5534
5541
|
}], loaderLines: [{
|