@firestitch/list 18.0.26 → 18.0.28
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/classes/columns-controller.d.ts +3 -3
- package/app/classes/external-params-controller.d.ts +2 -3
- package/app/classes/list-controller.d.ts +2 -3
- package/app/classes/persistance-controller.d.ts +22 -5
- package/app/components/customize-cols/customize-cols.component.d.ts +5 -3
- package/app/components/list/list.component.d.ts +8 -11
- package/app/interfaces/listconfig.interface.d.ts +11 -2
- package/esm2022/app/classes/columns-controller.mjs +14 -14
- package/esm2022/app/classes/external-params-controller.mjs +13 -13
- package/esm2022/app/classes/index.mjs +1 -1
- package/esm2022/app/classes/list-controller.mjs +20 -12
- package/esm2022/app/classes/persistance-controller.mjs +85 -14
- package/esm2022/app/components/body/row/cell/cell.component.mjs +3 -3
- package/esm2022/app/components/customize-cols/customize-cols.component.mjs +20 -17
- package/esm2022/app/components/footer/footer-row/footer-cell/footer-cell.component.mjs +3 -3
- package/esm2022/app/components/head/head-cell/head-cell.component.mjs +1 -1
- package/esm2022/app/components/list/list.component.mjs +32 -43
- package/esm2022/app/components/loader/loader.component.mjs +3 -3
- package/esm2022/app/components/manage-saved-filters/manage-saved-filters.component.mjs +3 -3
- package/esm2022/app/components/saved-filters/saved-filters.component.mjs +3 -3
- package/esm2022/app/directives/cell/cell.directive.mjs +1 -1
- package/esm2022/app/directives/empty-state/empty-state.directive.mjs +1 -1
- package/esm2022/app/directives/footer/footer.directive.mjs +1 -1
- package/esm2022/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs +1 -1
- package/esm2022/app/directives/header/header.directive.mjs +1 -1
- package/esm2022/app/directives/heading/heading.directive.mjs +1 -1
- package/esm2022/app/directives/heading-container/heading-container.directive.mjs +1 -1
- package/esm2022/app/directives/index.mjs +1 -1
- package/esm2022/app/directives/subheading/subheading.directive.mjs +1 -1
- package/esm2022/app/enums/page-change-type.enum.mjs +1 -1
- package/esm2022/app/enums/pagination-strategy.enum.mjs +1 -1
- package/esm2022/app/enums/state.enum.mjs +1 -1
- package/esm2022/app/interfaces/cellconfig.interface.mjs +1 -1
- package/esm2022/app/interfaces/draggable-list.interface.mjs +1 -1
- package/esm2022/app/interfaces/external-params.interface.mjs +1 -1
- package/esm2022/app/interfaces/listconfig.interface.mjs +1 -1
- package/esm2022/app/interfaces/sorting-change-event.interface.mjs +1 -1
- package/esm2022/app/models/row/base-row.mjs +1 -1
- package/esm2022/app/models/row/child-row.mjs +1 -1
- package/esm2022/app/models/row/simple-row.mjs +1 -1
- package/fesm2022/firestitch-list.mjs +179 -106
- package/fesm2022/firestitch-list.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i1 from '@angular/common';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Location, CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable, Directive, Input, EventEmitter, Component, ChangeDetectionStrategy, Output, Pipe, HostBinding, ViewChildren, TemplateRef, ViewContainerRef, ViewChild, ContentChild,
|
|
5
|
-
import * as
|
|
4
|
+
import { Injectable, Directive, Input, EventEmitter, Component, ChangeDetectionStrategy, Output, Pipe, HostBinding, ViewChildren, TemplateRef, ViewContainerRef, ViewChild, ContentChild, inject, HostListener, ContentChildren, InjectionToken, ChangeDetectorRef, Injector, Optional, Inject, NgModule } from '@angular/core';
|
|
5
|
+
import * as i5 from '@angular/router';
|
|
6
6
|
import { RouterModule } from '@angular/router';
|
|
7
7
|
import * as i3 from '@angular/material/button';
|
|
8
8
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -10,8 +10,8 @@ import * as i4 from '@angular/material/checkbox';
|
|
|
10
10
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
11
11
|
import * as i4$2 from '@angular/material/core';
|
|
12
12
|
import { MatRippleModule } from '@angular/material/core';
|
|
13
|
-
import * as
|
|
14
|
-
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
13
|
+
import * as i3$3 from '@angular/material/dialog';
|
|
14
|
+
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
15
15
|
import * as i3$1 from '@angular/material/icon';
|
|
16
16
|
import { MatIconModule } from '@angular/material/icon';
|
|
17
17
|
import { MatMenuModule } from '@angular/material/menu';
|
|
@@ -19,9 +19,9 @@ import * as i2$1 from '@angular/material/progress-spinner';
|
|
|
19
19
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
20
20
|
import * as i4$1 from '@angular/material/tooltip';
|
|
21
21
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
22
|
-
import * as i5$
|
|
22
|
+
import * as i5$2 from '@firestitch/common';
|
|
23
23
|
import { getNormalizedPath, FsCommonModule } from '@firestitch/common';
|
|
24
|
-
import * as i5 from '@firestitch/file';
|
|
24
|
+
import * as i5$1 from '@firestitch/file';
|
|
25
25
|
import { FsFileModule } from '@firestitch/file';
|
|
26
26
|
import * as i2 from '@firestitch/filter';
|
|
27
27
|
import { ItemType, FilterComponent, FsFilterModule } from '@firestitch/filter';
|
|
@@ -30,13 +30,12 @@ import { FsMenuModule } from '@firestitch/menu';
|
|
|
30
30
|
import * as i1$1 from '@firestitch/prompt';
|
|
31
31
|
import { FsPromptModule } from '@firestitch/prompt';
|
|
32
32
|
import { FsScrollModule } from '@firestitch/scroll';
|
|
33
|
-
import { BehaviorSubject, Subject, Observable, merge, from,
|
|
33
|
+
import { BehaviorSubject, Subject, Observable, of, merge, from, combineLatest, EMPTY } from 'rxjs';
|
|
34
34
|
import { takeUntil, take, filter, tap, skip, distinctUntilChanged, map, shareReplay, delay, switchMap, debounceTime, mapTo, catchError } from 'rxjs/operators';
|
|
35
35
|
import { get, isString, isObject, isBoolean, isNumber, isFunction, cloneDeep, random, mergeWith } from 'lodash-es';
|
|
36
|
-
import
|
|
37
|
-
import
|
|
38
|
-
import * as
|
|
39
|
-
import { FsPersistanceStore } from '@firestitch/store';
|
|
36
|
+
import { FsStore } from '@firestitch/store';
|
|
37
|
+
import { DrawerRef } from '@firestitch/drawer';
|
|
38
|
+
import * as i2$2 from '@firestitch/selection';
|
|
40
39
|
|
|
41
40
|
var ReorderPosition;
|
|
42
41
|
(function (ReorderPosition) {
|
|
@@ -1384,7 +1383,7 @@ class FsRowInlineActionComponent {
|
|
|
1384
1383
|
this.fileSelect.emit(event);
|
|
1385
1384
|
}
|
|
1386
1385
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsRowInlineActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1387
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsRowInlineActionComponent, selector: "fs-list-row-inline-action", inputs: { rowAction: "rowAction", row: "row" }, outputs: { clicked: "clicked", fileSelect: "fileSelect" }, usesOnChanges: true, ngImport: i0, template: "<ng-container\n *ngIf=\"rowAction.isShown\"\n [ngSwitch]=\"actionType\">\n <!-- Basic button -->\n <ng-container *ngSwitchCase=\"'basic'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-button\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <!-- Raised button -->\n <ng-container *ngSwitchCase=\"'raised'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-raised-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-raised-button\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <!-- Icon button -->\n <ng-container *ngSwitchCase=\"'icon'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-icon-button\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <!-- Fab button -->\n <ng-container *ngSwitchCase=\"'fab'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-fab\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-fab\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <!-- Mini Fab button -->\n <ng-container *ngSwitchCase=\"'mini-fab'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-mini-fab\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-mini-fab\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!rowAction.fileConfig else uploadFileBtn\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n {{ rowAction.label }}\n </ng-container>\n <ng-template #uploadFileBtn>\n <fs-file\n class=\"action-button\"\n [accept]=\"rowAction.fileConfig.accept || '*'\"\n [multiple]=\"rowAction.fileConfig.multiple\"\n [minWidth]=\"rowAction.fileConfig.minWidth\"\n [minHeight]=\"rowAction.fileConfig.minHeight\"\n [imageWidth]=\"rowAction.fileConfig.maxWidth\"\n [imageHeight]=\"rowAction.fileConfig.maxHeight\"\n (select)=\"fileSelected($event)\"\n (error)=\"rowAction.fileConfig.error && rowAction.fileConfig.error($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n {{ rowAction.label }}\n </fs-file>\n </ng-template>\n </ng-template>\n</ng-container>", styles: ["mat-icon{display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type:
|
|
1386
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsRowInlineActionComponent, selector: "fs-list-row-inline-action", inputs: { rowAction: "rowAction", row: "row" }, outputs: { clicked: "clicked", fileSelect: "fileSelect" }, usesOnChanges: true, ngImport: i0, template: "<ng-container\n *ngIf=\"rowAction.isShown\"\n [ngSwitch]=\"actionType\">\n <!-- Basic button -->\n <ng-container *ngSwitchCase=\"'basic'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-button\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <!-- Raised button -->\n <ng-container *ngSwitchCase=\"'raised'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-raised-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-raised-button\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <!-- Icon button -->\n <ng-container *ngSwitchCase=\"'icon'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-icon-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-icon-button\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <!-- Fab button -->\n <ng-container *ngSwitchCase=\"'fab'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-fab\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-fab\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <!-- Mini Fab button -->\n <ng-container *ngSwitchCase=\"'mini-fab'\">\n <ng-container *ngIf=\"!rowAction.routerLink; else link\">\n <button\n type=\"button\"\n mat-mini-fab\n (click)=\"actionClick($event)\"\n [ngClass]=\"rowAction.classArray\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a\n mat-mini-fab\n [routerLink]=\"rowAction.routerLink.link\"\n [queryParams]=\"rowAction.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!rowAction.fileConfig else uploadFileBtn\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n {{ rowAction.label }}\n </ng-container>\n <ng-template #uploadFileBtn>\n <fs-file\n class=\"action-button\"\n [accept]=\"rowAction.fileConfig.accept || '*'\"\n [multiple]=\"rowAction.fileConfig.multiple\"\n [minWidth]=\"rowAction.fileConfig.minWidth\"\n [minHeight]=\"rowAction.fileConfig.minHeight\"\n [imageWidth]=\"rowAction.fileConfig.maxWidth\"\n [imageHeight]=\"rowAction.fileConfig.maxHeight\"\n (select)=\"fileSelected($event)\"\n (error)=\"rowAction.fileConfig.error && rowAction.fileConfig.error($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n {{ rowAction.label }}\n </fs-file>\n </ng-template>\n </ng-template>\n</ng-container>", styles: ["mat-icon{display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatMiniFabAnchor, selector: "a[mat-mini-fab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatFabAnchor, selector: "a[mat-fab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "beforeProcessing", "clicked", "declined"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1388
1387
|
}
|
|
1389
1388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsRowInlineActionComponent, decorators: [{
|
|
1390
1389
|
type: Component,
|
|
@@ -1446,7 +1445,7 @@ class FsRowMenuActionComponent {
|
|
|
1446
1445
|
this.label = this.rowAction.label;
|
|
1447
1446
|
}
|
|
1448
1447
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsRowMenuActionComponent, deps: [{ token: i3$2.FsMenuComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
1449
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsRowMenuActionComponent, selector: "fs-list-row-menu-action", inputs: { row: "row", rowAction: "rowAction", file: "file" }, outputs: { fileSelect: "fileSelect", fileError: "fileError" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!file else withFile\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n {{ label| actionLabel:row }}\n</ng-container>\n<ng-template #withFile>\n <fs-file\n class=\"action-button\"\n [accept]=\"file.accept || '*'\"\n [multiple]=\"file.multiple\"\n [minWidth]=\"file.minWidth\"\n [minHeight]=\"file.minHeight\"\n [imageWidth]=\"file.maxWidth\"\n [imageHeight]=\"file.maxHeight\"\n (click)=\"$event.stopPropagation();\"\n (select)=\"selectFile($event)\"\n (error)=\"errorFile($event)\"\n (cancel)=\"closeMenu()\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n {{ label| actionLabel:row }}\n </fs-file>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "beforeProcessing", "clicked", "declined"] }, { kind: "pipe", type: ActionLabelPipe, name: "actionLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1448
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsRowMenuActionComponent, selector: "fs-list-row-menu-action", inputs: { row: "row", rowAction: "rowAction", file: "file" }, outputs: { fileSelect: "fileSelect", fileError: "fileError" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!file else withFile\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n {{ label| actionLabel:row }}\n</ng-container>\n<ng-template #withFile>\n <fs-file\n class=\"action-button\"\n [accept]=\"file.accept || '*'\"\n [multiple]=\"file.multiple\"\n [minWidth]=\"file.minWidth\"\n [minHeight]=\"file.minHeight\"\n [imageWidth]=\"file.maxWidth\"\n [imageHeight]=\"file.maxHeight\"\n (click)=\"$event.stopPropagation();\"\n (select)=\"selectFile($event)\"\n (error)=\"errorFile($event)\"\n (cancel)=\"closeMenu()\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n {{ label| actionLabel:row }}\n </fs-file>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "beforeProcessing", "clicked", "declined"] }, { kind: "pipe", type: ActionLabelPipe, name: "actionLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1450
1449
|
}
|
|
1451
1450
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsRowMenuActionComponent, decorators: [{
|
|
1452
1451
|
type: Component,
|
|
@@ -1886,11 +1885,11 @@ class FsCellComponent {
|
|
|
1886
1885
|
}
|
|
1887
1886
|
}
|
|
1888
1887
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1889
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsCellComponent, selector: "[fs-cell]", inputs: { column: "column", row: "row", rowIndex: "rowIndex" }, host: { properties: { "class.fs-list-col": "this.isColl", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #defaultCellTemplate let-value=\"value\">\n {{value}}\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1888
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsCellComponent, selector: "[fs-cell]", inputs: { column: "column", row: "row", rowIndex: "rowIndex" }, host: { properties: { "class.fs-list-col": "this.isColl", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #defaultCellTemplate let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1890
1889
|
}
|
|
1891
1890
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsCellComponent, decorators: [{
|
|
1892
1891
|
type: Component,
|
|
1893
|
-
args: [{ selector: '[fs-cell]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #defaultCellTemplate let-value=\"value\">\n {{value}}\n</ng-template>\n" }]
|
|
1892
|
+
args: [{ selector: '[fs-cell]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #defaultCellTemplate let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n" }]
|
|
1894
1893
|
}], propDecorators: { isColl: [{
|
|
1895
1894
|
type: HostBinding,
|
|
1896
1895
|
args: ['class.fs-list-col']
|
|
@@ -2370,16 +2369,103 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
2370
2369
|
args: [FsRowComponent, { read: TemplateRef, static: true }]
|
|
2371
2370
|
}] } });
|
|
2372
2371
|
|
|
2372
|
+
class PersistanceController {
|
|
2373
|
+
filtersEnabled = false;
|
|
2374
|
+
columnsEnabled = false;
|
|
2375
|
+
pagingEnabled = false;
|
|
2376
|
+
sortingEnabled = false;
|
|
2377
|
+
queryEnabled = false;
|
|
2378
|
+
name;
|
|
2379
|
+
_store = inject(FsStore);
|
|
2380
|
+
_data = {};
|
|
2381
|
+
_storeKey = 'fs-list-persist';
|
|
2382
|
+
_location = inject(Location);
|
|
2383
|
+
init(listConfig, inDialog) {
|
|
2384
|
+
const config = this._initConfig(listConfig, inDialog);
|
|
2385
|
+
if (config) {
|
|
2386
|
+
this.filtersEnabled = config.persistFilter;
|
|
2387
|
+
this.columnsEnabled = config.persistColumn;
|
|
2388
|
+
this.pagingEnabled = config.persistPaging;
|
|
2389
|
+
this.sortingEnabled = config.persistSorting;
|
|
2390
|
+
this.queryEnabled = config.persistQuery;
|
|
2391
|
+
this.name = config.name;
|
|
2392
|
+
this._data = this._get() || {};
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2395
|
+
setSorting(value) {
|
|
2396
|
+
this._set('sorting', value);
|
|
2397
|
+
}
|
|
2398
|
+
setPaging(value) {
|
|
2399
|
+
this._set('paging', value);
|
|
2400
|
+
}
|
|
2401
|
+
setColumns(value) {
|
|
2402
|
+
this._set('columns', value);
|
|
2403
|
+
}
|
|
2404
|
+
getColumns() {
|
|
2405
|
+
return this._data.columns || [];
|
|
2406
|
+
}
|
|
2407
|
+
getSorting() {
|
|
2408
|
+
return this._data.sorting || {};
|
|
2409
|
+
}
|
|
2410
|
+
getPaging() {
|
|
2411
|
+
return this._data.paging || {};
|
|
2412
|
+
}
|
|
2413
|
+
_set(key, value) {
|
|
2414
|
+
this._data[key] = value;
|
|
2415
|
+
const storeData = this._store.get(this._storeKey) || {};
|
|
2416
|
+
storeData[this.name] = this._data;
|
|
2417
|
+
this._store.set(this._storeKey, storeData);
|
|
2418
|
+
}
|
|
2419
|
+
_get() {
|
|
2420
|
+
const storeData = this._store.get(this._storeKey);
|
|
2421
|
+
if (storeData) {
|
|
2422
|
+
return storeData[this.name];
|
|
2423
|
+
}
|
|
2424
|
+
return {};
|
|
2425
|
+
}
|
|
2426
|
+
_initConfig(config, inDialog) {
|
|
2427
|
+
let persistanceConfig = this._getConfig(config);
|
|
2428
|
+
if (persistanceConfig) {
|
|
2429
|
+
const persist = !inDialog || !!persistanceConfig.name;
|
|
2430
|
+
persistanceConfig = {
|
|
2431
|
+
name: persistanceConfig.name || getNormalizedPath(this._location),
|
|
2432
|
+
persistFilter: persist,
|
|
2433
|
+
persistPaging: persist,
|
|
2434
|
+
persistSorting: persist,
|
|
2435
|
+
persistColumn: persist,
|
|
2436
|
+
persistQuery: persist,
|
|
2437
|
+
...persistanceConfig,
|
|
2438
|
+
};
|
|
2439
|
+
}
|
|
2440
|
+
return persistanceConfig;
|
|
2441
|
+
}
|
|
2442
|
+
_getConfig(config) {
|
|
2443
|
+
if (config) {
|
|
2444
|
+
return {
|
|
2445
|
+
...(config === true ? {} : config),
|
|
2446
|
+
};
|
|
2447
|
+
}
|
|
2448
|
+
return null;
|
|
2449
|
+
}
|
|
2450
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PersistanceController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2451
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PersistanceController });
|
|
2452
|
+
}
|
|
2453
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PersistanceController, decorators: [{
|
|
2454
|
+
type: Injectable
|
|
2455
|
+
}] });
|
|
2456
|
+
|
|
2373
2457
|
class CustomizeColsDialogComponent {
|
|
2374
|
-
_dialog;
|
|
2375
2458
|
columns = [];
|
|
2376
2459
|
saveDisabled = false;
|
|
2460
|
+
columnsEnabled = false;
|
|
2377
2461
|
_changeFn;
|
|
2378
2462
|
_destroy$ = new Subject();
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2463
|
+
_persistance = inject(PersistanceController);
|
|
2464
|
+
_dialog = inject(MatDialogRef);
|
|
2465
|
+
_data = inject(MAT_DIALOG_DATA);
|
|
2466
|
+
constructor() {
|
|
2467
|
+
this.columns = this._data.columns;
|
|
2468
|
+
this._changeFn = this._data.changeFn;
|
|
2383
2469
|
}
|
|
2384
2470
|
ngOnDestroy() {
|
|
2385
2471
|
this._destroy$.next(null);
|
|
@@ -2397,6 +2483,9 @@ class CustomizeColsDialogComponent {
|
|
|
2397
2483
|
show: column.show,
|
|
2398
2484
|
};
|
|
2399
2485
|
});
|
|
2486
|
+
if (this._persistance.columnsEnabled) {
|
|
2487
|
+
this._persistance.setColumns(data);
|
|
2488
|
+
}
|
|
2400
2489
|
this.saveDisabled = true;
|
|
2401
2490
|
const changed = this._changeFn ? this._changeFn(data) : null;
|
|
2402
2491
|
if (changed instanceof Observable) {
|
|
@@ -2418,27 +2507,24 @@ class CustomizeColsDialogComponent {
|
|
|
2418
2507
|
cancel() {
|
|
2419
2508
|
this._dialog.close();
|
|
2420
2509
|
}
|
|
2421
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CustomizeColsDialogComponent, deps: [
|
|
2422
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: CustomizeColsDialogComponent, selector: "ng-component", ngImport: i0, template: "<h1 matDialogTitle>\n Customize columns\n</h1>\n<mat-dialog-content>\n <div class=\"columns\">\n <div *ngFor=\"let column of columns\">\n <mat-checkbox\n [checked]=\"column.show\"\n (change)=\"visibilityChange($event, column)\"\n [disabled]=\"column.disabled\">\n @if (column.title) {\n {{ column.title }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"column.template\"></ng-template>\n }\n </mat-checkbox>\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"save()\"\n [disabled]=\"saveDisabled\">\n Save\n </button>\n <button\n type=\"button\"\n mat-button\n (click)=\"cancel()\">\n Cancel\n </button>\n</mat-dialog-actions>", styles: [".mat-checkbox{min-height:32px;display:block}.mat-icon{font-size:14px;height:14px;width:14px;vertical-align:middle}.columns{margin-bottom:1.25em}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type:
|
|
2510
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CustomizeColsDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2511
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: CustomizeColsDialogComponent, selector: "ng-component", ngImport: i0, template: "<h1 matDialogTitle>\n Customize columns\n</h1>\n<mat-dialog-content>\n <div class=\"columns\">\n <div *ngFor=\"let column of columns\">\n <mat-checkbox\n [checked]=\"column.show\"\n (change)=\"visibilityChange($event, column)\"\n [disabled]=\"column.disabled\">\n @if (column.title) {\n {{ column.title }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"column.template\"></ng-template>\n }\n </mat-checkbox>\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"save()\"\n [disabled]=\"saveDisabled\">\n Save\n </button>\n <button\n type=\"button\"\n mat-button\n (click)=\"cancel()\">\n Cancel\n </button>\n</mat-dialog-actions>", styles: [".mat-checkbox{min-height:32px;display:block}.mat-icon{font-size:14px;height:14px;width:14px;vertical-align:middle}.columns{margin-bottom:1.25em}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2423
2512
|
}
|
|
2424
2513
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CustomizeColsDialogComponent, decorators: [{
|
|
2425
2514
|
type: Component,
|
|
2426
2515
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 matDialogTitle>\n Customize columns\n</h1>\n<mat-dialog-content>\n <div class=\"columns\">\n <div *ngFor=\"let column of columns\">\n <mat-checkbox\n [checked]=\"column.show\"\n (change)=\"visibilityChange($event, column)\"\n [disabled]=\"column.disabled\">\n @if (column.title) {\n {{ column.title }}\n } @else {\n <ng-template [ngTemplateOutlet]=\"column.template\"></ng-template>\n }\n </mat-checkbox>\n </div>\n </div>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button\n type=\"button\"\n mat-button\n color=\"primary\"\n (click)=\"save()\"\n [disabled]=\"saveDisabled\">\n Save\n </button>\n <button\n type=\"button\"\n mat-button\n (click)=\"cancel()\">\n Cancel\n </button>\n</mat-dialog-actions>", styles: [".mat-checkbox{min-height:32px;display:block}.mat-icon{font-size:14px;height:14px;width:14px;vertical-align:middle}.columns{margin-bottom:1.25em}\n"] }]
|
|
2427
|
-
}], ctorParameters: () => [
|
|
2428
|
-
type: Inject,
|
|
2429
|
-
args: [MAT_DIALOG_DATA]
|
|
2430
|
-
}] }, { type: i1$2.MatDialogRef }] });
|
|
2516
|
+
}], ctorParameters: () => [] });
|
|
2431
2517
|
|
|
2432
2518
|
class FsFooterCellComponent extends FsCellComponent {
|
|
2433
2519
|
constructor() {
|
|
2434
2520
|
super();
|
|
2435
2521
|
}
|
|
2436
2522
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFooterCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2437
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFooterCellComponent, selector: "[fs-list-footer-cell]", usesInheritance: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #cell let-value=\"value\">\n {{value}}\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2523
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFooterCellComponent, selector: "[fs-list-footer-cell]", usesInheritance: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #cell let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2438
2524
|
}
|
|
2439
2525
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFooterCellComponent, decorators: [{
|
|
2440
2526
|
type: Component,
|
|
2441
|
-
args: [{ selector: '[fs-list-footer-cell]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #cell let-value=\"value\">\n {{value}}\n</ng-template>\n" }]
|
|
2527
|
+
args: [{ selector: '[fs-list-footer-cell]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #cell let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n" }]
|
|
2442
2528
|
}], ctorParameters: () => [] });
|
|
2443
2529
|
|
|
2444
2530
|
class FsFooterRowComponent extends FsRowComponent {
|
|
@@ -2985,16 +3071,13 @@ var FsListState;
|
|
|
2985
3071
|
})(FsListState || (FsListState = {}));
|
|
2986
3072
|
|
|
2987
3073
|
class ColumnsController {
|
|
3074
|
+
_persistance;
|
|
2988
3075
|
_visibleColumns$ = new BehaviorSubject([]);
|
|
2989
3076
|
_visibleColumnsShared$ = this._visibleColumns$.pipe();
|
|
2990
3077
|
_theadClass = '';
|
|
2991
3078
|
_loadFn;
|
|
2992
3079
|
_changeFn;
|
|
2993
|
-
// private _customizeFieldTitleFn: FsListColumnTitleFn;
|
|
2994
|
-
// private _customizeFieldDisabledFn: FsListColumnDisabledFn;
|
|
2995
|
-
//private _columnTooltipFn: FsListColumnTooltipFn;
|
|
2996
3080
|
_isConfigured = false;
|
|
2997
|
-
_loadFnConfigured = false;
|
|
2998
3081
|
_changeFnConfigured = false;
|
|
2999
3082
|
_columnsFetched = false;
|
|
3000
3083
|
_hasHeader = false;
|
|
@@ -3003,7 +3086,10 @@ class ColumnsController {
|
|
|
3003
3086
|
_defaultConfigs;
|
|
3004
3087
|
_columnsUpdated$ = new Subject();
|
|
3005
3088
|
_destroy$ = new Subject();
|
|
3006
|
-
constructor() {
|
|
3089
|
+
constructor(_persistance) {
|
|
3090
|
+
this._persistance = _persistance;
|
|
3091
|
+
this._loadFn = () => of([]);
|
|
3092
|
+
}
|
|
3007
3093
|
get columns() {
|
|
3008
3094
|
return this._columns.slice();
|
|
3009
3095
|
}
|
|
@@ -3040,9 +3126,6 @@ class ColumnsController {
|
|
|
3040
3126
|
get configured() {
|
|
3041
3127
|
return this._isConfigured;
|
|
3042
3128
|
}
|
|
3043
|
-
get loadFnConfigured() {
|
|
3044
|
-
return this._loadFnConfigured;
|
|
3045
|
-
}
|
|
3046
3129
|
get changeFnConfigured() {
|
|
3047
3130
|
return this._changeFnConfigured;
|
|
3048
3131
|
}
|
|
@@ -3065,7 +3148,6 @@ class ColumnsController {
|
|
|
3065
3148
|
if (config) {
|
|
3066
3149
|
if (config.load) {
|
|
3067
3150
|
this._loadFn = config.load;
|
|
3068
|
-
this._loadFnConfigured = true;
|
|
3069
3151
|
}
|
|
3070
3152
|
if (config.change) {
|
|
3071
3153
|
this._changeFn = config.change;
|
|
@@ -3104,10 +3186,14 @@ class ColumnsController {
|
|
|
3104
3186
|
*/
|
|
3105
3187
|
loadRemoteColumnConfigs() {
|
|
3106
3188
|
return this._loadFn()
|
|
3107
|
-
.pipe(tap((
|
|
3189
|
+
.pipe(tap((column) => {
|
|
3108
3190
|
this._columnsFetched = true;
|
|
3109
|
-
this.updateVisibilityForCols(
|
|
3110
|
-
this.updateCustomizableForCols(
|
|
3191
|
+
this.updateVisibilityForCols(column);
|
|
3192
|
+
this.updateCustomizableForCols(column);
|
|
3193
|
+
}), tap(() => {
|
|
3194
|
+
if (this._persistance.columnsEnabled) {
|
|
3195
|
+
this.updateVisibilityForCols(this._persistance.getColumns());
|
|
3196
|
+
}
|
|
3111
3197
|
}), takeUntil(this._destroy$));
|
|
3112
3198
|
}
|
|
3113
3199
|
/**
|
|
@@ -3516,7 +3602,6 @@ class DataController {
|
|
|
3516
3602
|
}
|
|
3517
3603
|
|
|
3518
3604
|
class ExternalParamsController {
|
|
3519
|
-
_router;
|
|
3520
3605
|
_route;
|
|
3521
3606
|
_persistance;
|
|
3522
3607
|
_paginator;
|
|
@@ -3529,8 +3614,7 @@ class ExternalParamsController {
|
|
|
3529
3614
|
sortDirection: null,
|
|
3530
3615
|
};
|
|
3531
3616
|
_destroy$ = new Subject();
|
|
3532
|
-
constructor(
|
|
3533
|
-
this._router = _router;
|
|
3617
|
+
constructor(_route, _persistance, _paginator, _sorting, _queryParamsEnabled) {
|
|
3534
3618
|
this._route = _route;
|
|
3535
3619
|
this._persistance = _persistance;
|
|
3536
3620
|
this._paginator = _paginator;
|
|
@@ -3548,7 +3632,7 @@ class ExternalParamsController {
|
|
|
3548
3632
|
};
|
|
3549
3633
|
}
|
|
3550
3634
|
get _enabled() {
|
|
3551
|
-
return this._queryParamsEnabled || this._persistance.
|
|
3635
|
+
return this._queryParamsEnabled || this._persistance.filtersEnabled;
|
|
3552
3636
|
}
|
|
3553
3637
|
get _page() {
|
|
3554
3638
|
return this._externalParams.page;
|
|
@@ -3564,9 +3648,11 @@ class ExternalParamsController {
|
|
|
3564
3648
|
}
|
|
3565
3649
|
initialize() {
|
|
3566
3650
|
// Restore from localStorage parameters if persistance enabled
|
|
3567
|
-
if (this._persistance.
|
|
3568
|
-
this._restorePaginationParams(this._persistance.
|
|
3569
|
-
|
|
3651
|
+
if (this._persistance.pagingEnabled) {
|
|
3652
|
+
this._restorePaginationParams(this._persistance.getPaging());
|
|
3653
|
+
}
|
|
3654
|
+
if (this._persistance.sortingEnabled) {
|
|
3655
|
+
this._restoreSortingParams(this._persistance.getSorting());
|
|
3570
3656
|
}
|
|
3571
3657
|
// Restore from queryParams and override if persistance already had values for those params
|
|
3572
3658
|
if (this._queryParamsEnabled) {
|
|
@@ -3638,12 +3724,12 @@ class ExternalParamsController {
|
|
|
3638
3724
|
sortDirection: direction,
|
|
3639
3725
|
});
|
|
3640
3726
|
}
|
|
3641
|
-
if (this._persistance.
|
|
3727
|
+
if (this._persistance.filtersEnabled) {
|
|
3642
3728
|
if (name && direction) {
|
|
3643
|
-
this._persistance.
|
|
3729
|
+
this._persistance.setSorting({ sortName: name, sortDirection: direction });
|
|
3644
3730
|
}
|
|
3645
3731
|
else {
|
|
3646
|
-
this._persistance.
|
|
3732
|
+
this._persistance.setSorting(null);
|
|
3647
3733
|
}
|
|
3648
3734
|
}
|
|
3649
3735
|
}
|
|
@@ -3651,8 +3737,8 @@ class ExternalParamsController {
|
|
|
3651
3737
|
if (this._queryParamsEnabled) {
|
|
3652
3738
|
this._replaceState(params);
|
|
3653
3739
|
}
|
|
3654
|
-
if (this._persistance.
|
|
3655
|
-
this._persistance.
|
|
3740
|
+
if (this._persistance.filtersEnabled) {
|
|
3741
|
+
this._persistance.setPaging(params);
|
|
3656
3742
|
}
|
|
3657
3743
|
}
|
|
3658
3744
|
_replaceState(data) {
|
|
@@ -4263,7 +4349,6 @@ class List {
|
|
|
4263
4349
|
_el;
|
|
4264
4350
|
_config;
|
|
4265
4351
|
_selectionDialog;
|
|
4266
|
-
_router;
|
|
4267
4352
|
_route;
|
|
4268
4353
|
_persistance;
|
|
4269
4354
|
_inDialog;
|
|
@@ -4292,11 +4377,11 @@ class List {
|
|
|
4292
4377
|
style;
|
|
4293
4378
|
hasRowActions;
|
|
4294
4379
|
rowActionsHover = false;
|
|
4295
|
-
paging
|
|
4296
|
-
columns
|
|
4297
|
-
actions
|
|
4298
|
-
dataController
|
|
4299
|
-
sorting
|
|
4380
|
+
paging;
|
|
4381
|
+
columns;
|
|
4382
|
+
actions;
|
|
4383
|
+
dataController;
|
|
4384
|
+
sorting;
|
|
4300
4385
|
externalParams;
|
|
4301
4386
|
selection;
|
|
4302
4387
|
filterConfig = null;
|
|
@@ -4322,14 +4407,18 @@ class List {
|
|
|
4322
4407
|
_groupCellConfig;
|
|
4323
4408
|
_cellConfig;
|
|
4324
4409
|
_footerConfig;
|
|
4325
|
-
constructor(_el, _config = {}, _selectionDialog,
|
|
4410
|
+
constructor(_el, _config = {}, _selectionDialog, _route, _persistance, _inDialog) {
|
|
4326
4411
|
this._el = _el;
|
|
4327
4412
|
this._config = _config;
|
|
4328
4413
|
this._selectionDialog = _selectionDialog;
|
|
4329
|
-
this._router = _router;
|
|
4330
4414
|
this._route = _route;
|
|
4331
4415
|
this._persistance = _persistance;
|
|
4332
4416
|
this._inDialog = _inDialog;
|
|
4417
|
+
this.columns = new ColumnsController(this._persistance);
|
|
4418
|
+
this.actions = new ActionsController();
|
|
4419
|
+
this.paging = new PaginationController();
|
|
4420
|
+
this.dataController = new DataController();
|
|
4421
|
+
this.sorting = new SortingController();
|
|
4333
4422
|
this._initialize(_config);
|
|
4334
4423
|
this._headerConfig = new StyleConfig(_config.header);
|
|
4335
4424
|
this._groupCellConfig = new StyleConfig(_config.cell);
|
|
@@ -4673,7 +4762,7 @@ class List {
|
|
|
4673
4762
|
}
|
|
4674
4763
|
}
|
|
4675
4764
|
_initExternalParamsController() {
|
|
4676
|
-
this.externalParams = new ExternalParamsController(this.
|
|
4765
|
+
this.externalParams = new ExternalParamsController(this._route, this._persistance, this.paging, this.sorting, this.queryParam);
|
|
4677
4766
|
}
|
|
4678
4767
|
/**
|
|
4679
4768
|
* Subscribe to fetch$ event with debounce
|
|
@@ -4715,7 +4804,7 @@ class List {
|
|
|
4715
4804
|
}
|
|
4716
4805
|
return { params, query };
|
|
4717
4806
|
}), switchMap(({ params, query }) => {
|
|
4718
|
-
if (
|
|
4807
|
+
if (!this.columns.columnsFetched) {
|
|
4719
4808
|
return this.columns.loadRemoteColumnConfigs()
|
|
4720
4809
|
.pipe(mapTo({ params, query }));
|
|
4721
4810
|
}
|
|
@@ -4798,7 +4887,6 @@ class List {
|
|
|
4798
4887
|
: null;
|
|
4799
4888
|
// Config
|
|
4800
4889
|
this.filterConfig = {
|
|
4801
|
-
persist: this.persist,
|
|
4802
4890
|
items: this.filters || [],
|
|
4803
4891
|
savedFilters: this.savedFilters,
|
|
4804
4892
|
actions: this.actions.actions,
|
|
@@ -4813,6 +4901,12 @@ class List {
|
|
|
4813
4901
|
reload: (this._config.reload ?? true) ? this.reload.bind(this) : null,
|
|
4814
4902
|
sortChange: this._filterSort.bind(this),
|
|
4815
4903
|
};
|
|
4904
|
+
if (this._persistance.queryEnabled) {
|
|
4905
|
+
this.filterConfig.persist = {
|
|
4906
|
+
name: this._persistance.name,
|
|
4907
|
+
persistQuery: true,
|
|
4908
|
+
};
|
|
4909
|
+
}
|
|
4816
4910
|
}
|
|
4817
4911
|
/**
|
|
4818
4912
|
* Callback when Filter has been initialized
|
|
@@ -4978,19 +5072,6 @@ class List {
|
|
|
4978
5072
|
}
|
|
4979
5073
|
}
|
|
4980
5074
|
|
|
4981
|
-
const FILTER_STORE_KEY = 'fs-list-persist';
|
|
4982
|
-
class PersistanceController extends FsPersistanceStore {
|
|
4983
|
-
STORE_KEY = FILTER_STORE_KEY;
|
|
4984
|
-
constructor(_store, _route) {
|
|
4985
|
-
super(_store, _route);
|
|
4986
|
-
}
|
|
4987
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PersistanceController, deps: [{ token: i1$3.FsStore }, { token: i6.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4988
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PersistanceController });
|
|
4989
|
-
}
|
|
4990
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PersistanceController, decorators: [{
|
|
4991
|
-
type: Injectable
|
|
4992
|
-
}], ctorParameters: () => [{ type: i1$3.FsStore }, { type: i6.ActivatedRoute }] });
|
|
4993
|
-
|
|
4994
5075
|
class FsListHeadingDirective {
|
|
4995
5076
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListHeadingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4996
5077
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: FsListHeadingDirective, selector: "[fs-list-heading],[fsListHeading]", ngImport: i0 });
|
|
@@ -5304,13 +5385,13 @@ class FsListSavedFiltersComponent {
|
|
|
5304
5385
|
// viewContainerRef: this._vcRef,
|
|
5305
5386
|
// });
|
|
5306
5387
|
}
|
|
5307
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListSavedFiltersComponent, deps: [{ token:
|
|
5308
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsListSavedFiltersComponent, selector: "fs-list-saved-filters", ngImport: i0, template: "<ng-container *ngIf=\"savedFiltersEnabled$ | async\"><!--\n -->, saved filter\n <fs-filter-saved-filters-menu (manage)=\"showManageDialog()\"></fs-filter-saved-filters-menu>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FsSavedFiltersMenuComponent, selector: "fs-filter-saved-filters-menu", outputs: ["clear"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
5388
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListSavedFiltersComponent, deps: [{ token: i3$3.MatDialog }, { token: i2.ExternalParamsController }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5389
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsListSavedFiltersComponent, selector: "fs-list-saved-filters", ngImport: i0, template: "<ng-container *ngIf=\"savedFiltersEnabled$ | async\"><!--\r\n -->, saved filter\r\n <fs-filter-saved-filters-menu (manage)=\"showManageDialog()\"></fs-filter-saved-filters-menu>\r\n</ng-container>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FsSavedFiltersMenuComponent, selector: "fs-filter-saved-filters-menu", outputs: ["clear"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
5309
5390
|
}
|
|
5310
5391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListSavedFiltersComponent, decorators: [{
|
|
5311
5392
|
type: Component,
|
|
5312
|
-
args: [{ selector: 'fs-list-saved-filters', template: "<ng-container *ngIf=\"savedFiltersEnabled$ | async\"><!--\n -->, saved filter\n <fs-filter-saved-filters-menu (manage)=\"showManageDialog()\"></fs-filter-saved-filters-menu>\n</ng-container>\n" }]
|
|
5313
|
-
}], ctorParameters: () => [{ type:
|
|
5393
|
+
args: [{ selector: 'fs-list-saved-filters', template: "<ng-container *ngIf=\"savedFiltersEnabled$ | async\"><!--\r\n -->, saved filter\r\n <fs-filter-saved-filters-menu (manage)=\"showManageDialog()\"></fs-filter-saved-filters-menu>\r\n</ng-container>\r\n" }]
|
|
5394
|
+
}], ctorParameters: () => [{ type: i3$3.MatDialog }, { type: i2.ExternalParamsController }, { type: i0.ViewContainerRef }] });
|
|
5314
5395
|
|
|
5315
5396
|
class FsStatusComponent {
|
|
5316
5397
|
list;
|
|
@@ -5425,11 +5506,11 @@ class FsListLoaderComponent {
|
|
|
5425
5506
|
}
|
|
5426
5507
|
}
|
|
5427
5508
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5428
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsListLoaderComponent, selector: "fs-list-loader", inputs: { columns: "columns", loaderLines: "loaderLines" }, usesOnChanges: true, ngImport: i0, template: "<table>\n <thead>\n <tr>\n <th *ngFor=\"let col of cols; let column = index\" [width]=\"widths[column] + '%'\">\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"(placeholderWidths[0][column]/2) + '%'\"></div>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of rows; let index=index\">\n <td *ngFor=\"let col of cols; let column = index\">\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"placeholderWidths[index][column] + '%'\"></div>\n </td>\n </tr>\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"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5509
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsListLoaderComponent, selector: "fs-list-loader", inputs: { columns: "columns", loaderLines: "loaderLines" }, usesOnChanges: true, ngImport: i0, template: "<table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of cols; let column = index\" [width]=\"widths[column] + '%'\">\r\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"(placeholderWidths[0][column]/2) + '%'\"></div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of rows; let index=index\">\r\n <td *ngFor=\"let col of cols; let column = index\">\r\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"placeholderWidths[index][column] + '%'\"></div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: ["table{width:100%;border-spacing:0}.fs-skeleton-placeholder{opacity:.5}:host ::ng-deep tbody tr:hover td{background:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5429
5510
|
}
|
|
5430
5511
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListLoaderComponent, decorators: [{
|
|
5431
5512
|
type: Component,
|
|
5432
|
-
args: [{ selector: 'fs-list-loader', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table>\n <thead>\n <tr>\n <th *ngFor=\"let col of cols; let column = index\" [width]=\"widths[column] + '%'\">\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"(placeholderWidths[0][column]/2) + '%'\"></div>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of rows; let index=index\">\n <td *ngFor=\"let col of cols; let column = index\">\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"placeholderWidths[index][column] + '%'\"></div>\n </td>\n </tr>\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"] }]
|
|
5513
|
+
args: [{ selector: 'fs-list-loader', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table>\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let col of cols; let column = index\" [width]=\"widths[column] + '%'\">\r\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"(placeholderWidths[0][column]/2) + '%'\"></div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of rows; let index=index\">\r\n <td *ngFor=\"let col of cols; let column = index\">\r\n <div class=\"fs-skeleton-placeholder\" [style.width]=\"placeholderWidths[index][column] + '%'\"></div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: ["table{width:100%;border-spacing:0}.fs-skeleton-placeholder{opacity:.5}:host ::ng-deep tbody tr:hover td{background:transparent}\n"] }]
|
|
5433
5514
|
}], propDecorators: { columns: [{
|
|
5434
5515
|
type: Input
|
|
5435
5516
|
}], loaderLines: [{
|
|
@@ -5452,7 +5533,7 @@ class FsPaginationComponent {
|
|
|
5452
5533
|
this.pagination.goLast();
|
|
5453
5534
|
}
|
|
5454
5535
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5455
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsPaginationComponent, selector: "fs-list-pagination", inputs: { pagination: "pagination", rows: "rows" }, ngImport: i0, template: "<div class=\"pagination-container\">\n @if (pagination.hasManyStrategy) {\n <ng-container *ngTemplateOutlet=\"strategyMany\"></ng-container>\n } @else if (pagination.loadMoreEnabled) {\n <ng-container *ngTemplateOutlet=\"strategyLoadMore\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"strategyOffsetPage\"></ng-container>\n }\n</div>\n<ng-template #strategyLoadMore>\n @if (pagination.hasNextPage) {\n <div class=\"fs-list-load-more\">\n <button\n mat-button\n type=\"button\"\n [class]=\"pagination.loadMoreButtonClass\"\n [color]=\"pagination.loadMoreButtonColor\"\n (click)=\"next()\">\n {{ pagination.loadMoreLabel }}\n </button>\n </div>\n }\n</ng-template>\n<ng-template #strategyOffsetPage>\n @if (pagination.records > pagination.limit) {\n <ng-container *ngIf=\"pagination?.pages\"></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"firstPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasPrevPage }\">\n </ng-container>\n <ng-container\n [ngTemplateOutlet]=\"prevPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasPrevPage }\">\n </ng-container>\n <div class=\"number\">\n {{ pagination.page | fsFormatNumber }} of {{ pagination.pages | fsFormatNumber }}\n </div>\n <ng-container\n [ngTemplateOutlet]=\"nextPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasNextPage }\">\n </ng-container>\n <ng-container\n [ngTemplateOutlet]=\"lastPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasNextPage }\">\n </ng-container>\n }\n</ng-template>\n<ng-template #strategyMany>\n @if (!(pagination.pageRecords ===0 && pagination.page === 1)) {\n <ng-container\n [ngTemplateOutlet]=\"firstPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasPrevPage }\">\n </ng-container>\n <ng-container\n [ngTemplateOutlet]=\"prevPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasPrevPage }\">\n </ng-container>\n <div class=\"number\">\n {{ pagination.page }}\n </div>\n <ng-container\n [ngTemplateOutlet]=\"nextPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasNextPage }\">\n </ng-container>\n <ng-container\n [ngTemplateOutlet]=\"lastPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: true }\">\n </ng-container>\n }\n</ng-template>\n<ng-template\n #firstPageButton\n let-disabled=\"disabled\">\n <a\n matRipple\n [matRippleRadius]=\"15\"\n [matRippleCentered]=\"true\"\n class=\"first\"\n [class.disabled]=\"disabled\"\n (click)=\"first()\">\n <mat-icon>\n first_page\n </mat-icon>\n </a>\n</ng-template>\n<ng-template\n #prevPageButton\n let-disabled=\"disabled\">\n <a\n matRipple\n [matRippleRadius]=\"15\"\n [matRippleCentered]=\"true\"\n class=\"previous\"\n [class.disabled]=\"disabled\"\n (click)=\"prev()\">\n <mat-icon>\n keyboard_arrow_left\n </mat-icon>\n </a>\n</ng-template>\n<ng-template\n #nextPageButton\n let-disabled=\"disabled\">\n <a\n matRipple\n [matRippleRadius]=\"15\"\n [matRippleCentered]=\"true\"\n class=\"next\"\n [class.disabled]=\"disabled\"\n (click)=\"next()\">\n <mat-icon>\n keyboard_arrow_right\n </mat-icon>\n </a>\n</ng-template>\n<ng-template\n #lastPageButton\n let-disabled=\"disabled\">\n <a\n matRipple\n [matRippleRadius]=\"15\"\n [matRippleCentered]=\"true\"\n class=\"last\"\n [class.disabled]=\"disabled\"\n (click)=\"last()\">\n <mat-icon>\n last_page\n </mat-icon>\n </a>\n</ng-template>", styles: [".pagination-container{display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none;width:100%}a{text-align:center;color:#000000de;text-decoration:none;font-size:15px;cursor:pointer;display:flex}a:not(.page){padding:10px}a.disabled{pointer-events:none;cursor:default;color:#d8d8d8}.number{font-size:90%}.fs-list-load-more button{width:100%;margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "pipe", type: i5$
|
|
5536
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsPaginationComponent, selector: "fs-list-pagination", inputs: { pagination: "pagination", rows: "rows" }, ngImport: i0, template: "<div class=\"pagination-container\">\n @if (pagination.hasManyStrategy) {\n <ng-container *ngTemplateOutlet=\"strategyMany\"></ng-container>\n } @else if (pagination.loadMoreEnabled) {\n <ng-container *ngTemplateOutlet=\"strategyLoadMore\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"strategyOffsetPage\"></ng-container>\n }\n</div>\n<ng-template #strategyLoadMore>\n @if (pagination.hasNextPage) {\n <div class=\"fs-list-load-more\">\n <button\n mat-button\n type=\"button\"\n [class]=\"pagination.loadMoreButtonClass\"\n [color]=\"pagination.loadMoreButtonColor\"\n (click)=\"next()\">\n {{ pagination.loadMoreLabel }}\n </button>\n </div>\n }\n</ng-template>\n<ng-template #strategyOffsetPage>\n @if (pagination.records > pagination.limit) {\n <ng-container *ngIf=\"pagination?.pages\"></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"firstPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasPrevPage }\">\n </ng-container>\n <ng-container\n [ngTemplateOutlet]=\"prevPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasPrevPage }\">\n </ng-container>\n <div class=\"number\">\n {{ pagination.page | fsFormatNumber }} of {{ pagination.pages | fsFormatNumber }}\n </div>\n <ng-container\n [ngTemplateOutlet]=\"nextPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasNextPage }\">\n </ng-container>\n <ng-container\n [ngTemplateOutlet]=\"lastPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasNextPage }\">\n </ng-container>\n }\n</ng-template>\n<ng-template #strategyMany>\n @if (!(pagination.pageRecords ===0 && pagination.page === 1)) {\n <ng-container\n [ngTemplateOutlet]=\"firstPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasPrevPage }\">\n </ng-container>\n <ng-container\n [ngTemplateOutlet]=\"prevPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasPrevPage }\">\n </ng-container>\n <div class=\"number\">\n {{ pagination.page }}\n </div>\n <ng-container\n [ngTemplateOutlet]=\"nextPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: !pagination.hasNextPage }\">\n </ng-container>\n <ng-container\n [ngTemplateOutlet]=\"lastPageButton\"\n [ngTemplateOutletContext]=\"{ disabled: true }\">\n </ng-container>\n }\n</ng-template>\n<ng-template\n #firstPageButton\n let-disabled=\"disabled\">\n <a\n matRipple\n [matRippleRadius]=\"15\"\n [matRippleCentered]=\"true\"\n class=\"first\"\n [class.disabled]=\"disabled\"\n (click)=\"first()\">\n <mat-icon>\n first_page\n </mat-icon>\n </a>\n</ng-template>\n<ng-template\n #prevPageButton\n let-disabled=\"disabled\">\n <a\n matRipple\n [matRippleRadius]=\"15\"\n [matRippleCentered]=\"true\"\n class=\"previous\"\n [class.disabled]=\"disabled\"\n (click)=\"prev()\">\n <mat-icon>\n keyboard_arrow_left\n </mat-icon>\n </a>\n</ng-template>\n<ng-template\n #nextPageButton\n let-disabled=\"disabled\">\n <a\n matRipple\n [matRippleRadius]=\"15\"\n [matRippleCentered]=\"true\"\n class=\"next\"\n [class.disabled]=\"disabled\"\n (click)=\"next()\">\n <mat-icon>\n keyboard_arrow_right\n </mat-icon>\n </a>\n</ng-template>\n<ng-template\n #lastPageButton\n let-disabled=\"disabled\">\n <a\n matRipple\n [matRippleRadius]=\"15\"\n [matRippleCentered]=\"true\"\n class=\"last\"\n [class.disabled]=\"disabled\"\n (click)=\"last()\">\n <mat-icon>\n last_page\n </mat-icon>\n </a>\n</ng-template>", styles: [".pagination-container{display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none;width:100%}a{text-align:center;color:#000000de;text-decoration:none;font-size:15px;cursor:pointer;display:flex}a:not(.page){padding:10px}a.disabled{pointer-events:none;cursor:default;color:#d8d8d8}.number{font-size:90%}.fs-list-load-more button{width:100%;margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "pipe", type: i5$2.FsFormatNumberPipe, name: "fsFormatNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5456
5537
|
}
|
|
5457
5538
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPaginationComponent, decorators: [{
|
|
5458
5539
|
type: Component,
|
|
@@ -5487,17 +5568,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
5487
5568
|
class FsListComponent {
|
|
5488
5569
|
reorderController;
|
|
5489
5570
|
_config;
|
|
5490
|
-
_dialogRef;
|
|
5491
|
-
_drawerRef;
|
|
5492
5571
|
_el;
|
|
5493
5572
|
_selectionDialog;
|
|
5494
5573
|
_dialog;
|
|
5495
5574
|
_cdRef;
|
|
5496
5575
|
_groupExpandNotifier;
|
|
5497
|
-
_router;
|
|
5498
5576
|
_route;
|
|
5499
5577
|
_persistance;
|
|
5500
|
-
_location;
|
|
5501
5578
|
classFsList = true;
|
|
5502
5579
|
rowHoverHighlight;
|
|
5503
5580
|
set config(config) {
|
|
@@ -5517,8 +5594,8 @@ class FsListComponent {
|
|
|
5517
5594
|
_listColumnDirectives;
|
|
5518
5595
|
_filterRef;
|
|
5519
5596
|
_filterParamsReady = false;
|
|
5520
|
-
_inDialog;
|
|
5521
5597
|
_destroy = new Subject();
|
|
5598
|
+
_injector = inject(Injector);
|
|
5522
5599
|
set filterReference(component) {
|
|
5523
5600
|
this._filterRef = component;
|
|
5524
5601
|
this.list.actions.setFilterRef(component);
|
|
@@ -5539,21 +5616,18 @@ class FsListComponent {
|
|
|
5539
5616
|
this.list.emptyStateTemplate = template;
|
|
5540
5617
|
}
|
|
5541
5618
|
}
|
|
5542
|
-
|
|
5619
|
+
_dialogRef = inject(MatDialogRef, { optional: true });
|
|
5620
|
+
_drawerRef = inject(DrawerRef, { optional: true });
|
|
5621
|
+
constructor(reorderController, _config, _el, _selectionDialog, _dialog, _cdRef, _groupExpandNotifier, _route, _persistance) {
|
|
5543
5622
|
this.reorderController = reorderController;
|
|
5544
5623
|
this._config = _config;
|
|
5545
|
-
this._dialogRef = _dialogRef;
|
|
5546
|
-
this._drawerRef = _drawerRef;
|
|
5547
5624
|
this._el = _el;
|
|
5548
5625
|
this._selectionDialog = _selectionDialog;
|
|
5549
5626
|
this._dialog = _dialog;
|
|
5550
5627
|
this._cdRef = _cdRef;
|
|
5551
5628
|
this._groupExpandNotifier = _groupExpandNotifier;
|
|
5552
|
-
this._router = _router;
|
|
5553
5629
|
this._route = _route;
|
|
5554
5630
|
this._persistance = _persistance;
|
|
5555
|
-
this._location = _location;
|
|
5556
|
-
this._inDialog = !!this._dialogRef || !!this._drawerRef;
|
|
5557
5631
|
}
|
|
5558
5632
|
/**
|
|
5559
5633
|
* Return reference for filter
|
|
@@ -5690,6 +5764,9 @@ class FsListComponent {
|
|
|
5690
5764
|
this._cdRef.markForCheck();
|
|
5691
5765
|
}
|
|
5692
5766
|
}
|
|
5767
|
+
get inDialog() {
|
|
5768
|
+
return !!this._dialogRef || !!this._drawerRef;
|
|
5769
|
+
}
|
|
5693
5770
|
/**
|
|
5694
5771
|
* Initialize config for list
|
|
5695
5772
|
*
|
|
@@ -5716,7 +5793,7 @@ class FsListComponent {
|
|
|
5716
5793
|
this._restorePersistance(listConfig.persist);
|
|
5717
5794
|
}
|
|
5718
5795
|
this._updateCustomizeAction(listConfig.actions);
|
|
5719
|
-
this.list = new List(this._el, listConfig, this._selectionDialog, this.
|
|
5796
|
+
this.list = new List(this._el, listConfig, this._selectionDialog, this._route, this._persistance, this.inDialog);
|
|
5720
5797
|
this.rowHoverHighlight = this.list.rowHoverHighlight;
|
|
5721
5798
|
this._waitFirstLoad();
|
|
5722
5799
|
this.reorderController.initWithConfig(config.reorder, this.list.dataController, this.list.actions, this.list.selection);
|
|
@@ -5739,6 +5816,7 @@ class FsListComponent {
|
|
|
5739
5816
|
actionClickFn(null);
|
|
5740
5817
|
}
|
|
5741
5818
|
this._dialog.open(CustomizeColsDialogComponent, {
|
|
5819
|
+
injector: this._injector,
|
|
5742
5820
|
data: {
|
|
5743
5821
|
columns: this.list.columns.columnsForDialog,
|
|
5744
5822
|
changeFn: this.list.columns.changeFn,
|
|
@@ -5798,10 +5876,9 @@ class FsListComponent {
|
|
|
5798
5876
|
}
|
|
5799
5877
|
}
|
|
5800
5878
|
_restorePersistance(persistConfig) {
|
|
5801
|
-
|
|
5802
|
-
this._persistance.setConfig(persistConfig, namespace, this._inDialog);
|
|
5879
|
+
this._persistance.init(persistConfig, this.inDialog);
|
|
5803
5880
|
}
|
|
5804
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListComponent, deps: [{ token: ReorderController }, { token: FS_LIST_CONFIG, optional: true }, { token:
|
|
5881
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListComponent, deps: [{ token: ReorderController }, { token: FS_LIST_CONFIG, optional: true }, { token: i0.ElementRef }, { token: i2$2.SelectionDialog }, { token: i3$3.MatDialog }, { token: i0.ChangeDetectorRef }, { token: GroupExpandNotifierService }, { token: i5.ActivatedRoute }, { token: PersistanceController }], target: i0.ɵɵFactoryTarget.Component });
|
|
5805
5882
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsListComponent, selector: "fs-list", inputs: { config: "config", loaderLines: "loaderLines" }, outputs: { filtersReady: "filtersReady" }, host: { properties: { "class.fs-list": "this.classFsList", "class.fs-list-row-highlight": "this.rowHoverHighlight" } }, providers: [
|
|
5806
5883
|
GroupExpandNotifierService,
|
|
5807
5884
|
PersistanceController,
|
|
@@ -5820,11 +5897,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
5820
5897
|
}, {
|
|
5821
5898
|
type: Inject,
|
|
5822
5899
|
args: [FS_LIST_CONFIG]
|
|
5823
|
-
}] }, { type:
|
|
5824
|
-
type: Optional
|
|
5825
|
-
}] }, { type: i3$3.DrawerRef, decorators: [{
|
|
5826
|
-
type: Optional
|
|
5827
|
-
}] }, { type: i0.ElementRef }, { type: i4$3.SelectionDialog }, { type: i1$2.MatDialog }, { type: i0.ChangeDetectorRef }, { type: GroupExpandNotifierService }, { type: i6.Router }, { type: i6.ActivatedRoute }, { type: PersistanceController }, { type: i1.Location }], propDecorators: { classFsList: [{
|
|
5900
|
+
}] }, { type: i0.ElementRef }, { type: i2$2.SelectionDialog }, { type: i3$3.MatDialog }, { type: i0.ChangeDetectorRef }, { type: GroupExpandNotifierService }, { type: i5.ActivatedRoute }, { type: PersistanceController }], propDecorators: { classFsList: [{
|
|
5828
5901
|
type: HostBinding,
|
|
5829
5902
|
args: ['class.fs-list']
|
|
5830
5903
|
}], rowHoverHighlight: [{
|
|
@@ -5920,11 +5993,11 @@ class FsListManageSavedFiltersComponent {
|
|
|
5920
5993
|
};
|
|
5921
5994
|
}
|
|
5922
5995
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListManageSavedFiltersComponent, deps: [{ token: i2.ExternalParamsController }], target: i0.ɵɵFactoryTarget.Component });
|
|
5923
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsListManageSavedFiltersComponent, selector: "ng-component", ngImport: i0, template: "<h1 mat-dialog-title>\n Manage Saved Filters\n</h1>\n<div mat-dialog-content>\n <fs-list [config]=\"config\">\n <fs-list-column name=\"name\" title=\"Name\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.name }}\n </ng-template>\n </fs-list-column>\n </fs-list>\n</div>\n<div mat-dialog-actions>\n <button mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\"\n color=\"primary\">\n Done\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type:
|
|
5996
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsListManageSavedFiltersComponent, selector: "ng-component", ngImport: i0, template: "<h1 mat-dialog-title>\r\n Manage Saved Filters\r\n</h1>\r\n<div mat-dialog-content>\r\n <fs-list [config]=\"config\">\r\n <fs-list-column name=\"name\" title=\"Name\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{ row.name }}\r\n </ng-template>\r\n </fs-list-column>\r\n </fs-list>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button\r\n [mat-dialog-close]=\"null\"\r\n type=\"button\"\r\n color=\"primary\">\r\n Done\r\n </button>\r\n</div>\r\n", dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5924
5997
|
}
|
|
5925
5998
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListManageSavedFiltersComponent, decorators: [{
|
|
5926
5999
|
type: Component,
|
|
5927
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 mat-dialog-title>\n Manage Saved Filters\n</h1>\n<div mat-dialog-content>\n <fs-list [config]=\"config\">\n <fs-list-column name=\"name\" title=\"Name\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.name }}\n </ng-template>\n </fs-list-column>\n </fs-list>\n</div>\n<div mat-dialog-actions>\n <button mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\"\n color=\"primary\">\n Done\n </button>\n</div>\n" }]
|
|
6000
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 mat-dialog-title>\r\n Manage Saved Filters\r\n</h1>\r\n<div mat-dialog-content>\r\n <fs-list [config]=\"config\">\r\n <fs-list-column name=\"name\" title=\"Name\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{ row.name }}\r\n </ng-template>\r\n </fs-list-column>\r\n </fs-list>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button mat-button\r\n [mat-dialog-close]=\"null\"\r\n type=\"button\"\r\n color=\"primary\">\r\n Done\r\n </button>\r\n</div>\r\n" }]
|
|
5928
6001
|
}], ctorParameters: () => [{ type: i2.ExternalParamsController }] });
|
|
5929
6002
|
|
|
5930
6003
|
class FsListContentDirective {
|