@firestitch/list 18.0.24 → 18.0.26
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 +6 -14
- package/app/components/customize-cols/customize-cols.component.d.ts +2 -1
- package/app/directives/column/column.directive.d.ts +2 -2
- package/app/interfaces/listconfig.interface.d.ts +2 -3
- package/app/models/column-attributes.d.ts +3 -3
- package/app/models/column.model.d.ts +2 -1
- package/app/models/columns-column.model.d.ts +8 -0
- package/app/models/index.d.ts +8 -0
- package/esm2022/app/classes/columns-controller.mjs +17 -30
- package/esm2022/app/classes/index.mjs +1 -1
- package/esm2022/app/classes/persistance-controller.mjs +1 -1
- package/esm2022/app/components/body/row/cell/cell.component.mjs +3 -3
- package/esm2022/app/components/customize-cols/customize-cols.component.mjs +5 -7
- 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/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/column/column.directive.mjs +9 -10
- 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/column-attributes.mjs +6 -6
- package/esm2022/app/models/column.model.mjs +7 -4
- package/esm2022/app/models/columns-column.model.mjs +8 -0
- package/esm2022/app/models/index.mjs +9 -0
- 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 +71 -81
- package/fesm2022/firestitch-list.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ import * as i3 from '@angular/material/button';
|
|
|
8
8
|
import { MatButtonModule } from '@angular/material/button';
|
|
9
9
|
import * as i4 from '@angular/material/checkbox';
|
|
10
10
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
11
|
-
import * as i4$
|
|
11
|
+
import * as i4$2 from '@angular/material/core';
|
|
12
12
|
import { MatRippleModule } from '@angular/material/core';
|
|
13
13
|
import * as i1$2 from '@angular/material/dialog';
|
|
14
14
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
@@ -17,7 +17,7 @@ import { MatIconModule } from '@angular/material/icon';
|
|
|
17
17
|
import { MatMenuModule } from '@angular/material/menu';
|
|
18
18
|
import * as i2$1 from '@angular/material/progress-spinner';
|
|
19
19
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
20
|
-
import * as
|
|
20
|
+
import * as i4$1 from '@angular/material/tooltip';
|
|
21
21
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
22
22
|
import * as i5$1 from '@firestitch/common';
|
|
23
23
|
import { getNormalizedPath, FsCommonModule } from '@firestitch/common';
|
|
@@ -34,7 +34,7 @@ import { BehaviorSubject, Subject, Observable, merge, from, of, combineLatest, E
|
|
|
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
36
|
import * as i3$3 from '@firestitch/drawer';
|
|
37
|
-
import * as i4$
|
|
37
|
+
import * as i4$3 from '@firestitch/selection';
|
|
38
38
|
import * as i1$3 from '@firestitch/store';
|
|
39
39
|
import { FsPersistanceStore } from '@firestitch/store';
|
|
40
40
|
|
|
@@ -1677,8 +1677,8 @@ class Column {
|
|
|
1677
1677
|
get name() {
|
|
1678
1678
|
return this._attributes.name;
|
|
1679
1679
|
}
|
|
1680
|
-
get
|
|
1681
|
-
return this._attributes.
|
|
1680
|
+
get customizable() {
|
|
1681
|
+
return this._attributes.customizable;
|
|
1682
1682
|
}
|
|
1683
1683
|
get width() {
|
|
1684
1684
|
return this._attributes.width;
|
|
@@ -1741,7 +1741,7 @@ class Column {
|
|
|
1741
1741
|
case 'sortable':
|
|
1742
1742
|
{
|
|
1743
1743
|
if (isBoolean(defaults.sortable)) {
|
|
1744
|
-
if (this.sortable ===
|
|
1744
|
+
if (this.sortable === undefined) {
|
|
1745
1745
|
this.sortable = defaults.sortable;
|
|
1746
1746
|
}
|
|
1747
1747
|
}
|
|
@@ -1782,6 +1782,9 @@ class Column {
|
|
|
1782
1782
|
updateVisibility(value) {
|
|
1783
1783
|
this._attributes.visible = value;
|
|
1784
1784
|
}
|
|
1785
|
+
updateCustomizable(value) {
|
|
1786
|
+
this._attributes.customizable = value;
|
|
1787
|
+
}
|
|
1785
1788
|
_parseConfig(config) {
|
|
1786
1789
|
this._attributes = config.attributes;
|
|
1787
1790
|
this.headerTemplate = config.headerTemplate;
|
|
@@ -1883,11 +1886,11 @@ class FsCellComponent {
|
|
|
1883
1886
|
}
|
|
1884
1887
|
}
|
|
1885
1888
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1886
|
-
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>\
|
|
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 });
|
|
1887
1890
|
}
|
|
1888
1891
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsCellComponent, decorators: [{
|
|
1889
1892
|
type: Component,
|
|
1890
|
-
args: [{ selector: '[fs-cell]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\
|
|
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" }]
|
|
1891
1894
|
}], propDecorators: { isColl: [{
|
|
1892
1895
|
type: HostBinding,
|
|
1893
1896
|
args: ['class.fs-list-col']
|
|
@@ -2395,7 +2398,7 @@ class CustomizeColsDialogComponent {
|
|
|
2395
2398
|
};
|
|
2396
2399
|
});
|
|
2397
2400
|
this.saveDisabled = true;
|
|
2398
|
-
const changed = this._changeFn(data);
|
|
2401
|
+
const changed = this._changeFn ? this._changeFn(data) : null;
|
|
2399
2402
|
if (changed instanceof Observable) {
|
|
2400
2403
|
changed
|
|
2401
2404
|
.pipe(takeUntil(this._destroy$))
|
|
@@ -2416,11 +2419,11 @@ class CustomizeColsDialogComponent {
|
|
|
2416
2419
|
this._dialog.close();
|
|
2417
2420
|
}
|
|
2418
2421
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CustomizeColsDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2419
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2420
2423
|
}
|
|
2421
2424
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CustomizeColsDialogComponent, decorators: [{
|
|
2422
2425
|
type: Component,
|
|
2423
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 matDialogTitle
|
|
2426
|
+
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"] }]
|
|
2424
2427
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2425
2428
|
type: Inject,
|
|
2426
2429
|
args: [MAT_DIALOG_DATA]
|
|
@@ -2431,11 +2434,11 @@ class FsFooterCellComponent extends FsCellComponent {
|
|
|
2431
2434
|
super();
|
|
2432
2435
|
}
|
|
2433
2436
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFooterCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2434
|
-
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>\
|
|
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 });
|
|
2435
2438
|
}
|
|
2436
2439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFooterCellComponent, decorators: [{
|
|
2437
2440
|
type: Component,
|
|
2438
|
-
args: [{ selector: '[fs-list-footer-cell]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\
|
|
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" }]
|
|
2439
2442
|
}], ctorParameters: () => [] });
|
|
2440
2443
|
|
|
2441
2444
|
class FsFooterRowComponent extends FsRowComponent {
|
|
@@ -2523,7 +2526,7 @@ class ColumnAsyncAttribute extends BehaviorSubject {
|
|
|
2523
2526
|
class ColumnAttributes {
|
|
2524
2527
|
_title;
|
|
2525
2528
|
_name;
|
|
2526
|
-
|
|
2529
|
+
_customizable = true;
|
|
2527
2530
|
_sortable;
|
|
2528
2531
|
_sortableDefault;
|
|
2529
2532
|
_direction$ = new ColumnAsyncAttribute(null);
|
|
@@ -2549,11 +2552,11 @@ class ColumnAttributes {
|
|
|
2549
2552
|
return this._name;
|
|
2550
2553
|
}
|
|
2551
2554
|
// customize
|
|
2552
|
-
set
|
|
2553
|
-
this.
|
|
2555
|
+
set customizable(value) {
|
|
2556
|
+
this._customizable = value;
|
|
2554
2557
|
}
|
|
2555
|
-
get
|
|
2556
|
-
return this.
|
|
2558
|
+
get customizable() {
|
|
2559
|
+
return this._customizable;
|
|
2557
2560
|
}
|
|
2558
2561
|
// sortable
|
|
2559
2562
|
set sortable(value) {
|
|
@@ -2987,9 +2990,9 @@ class ColumnsController {
|
|
|
2987
2990
|
_theadClass = '';
|
|
2988
2991
|
_loadFn;
|
|
2989
2992
|
_changeFn;
|
|
2990
|
-
_customizeFieldTitleFn;
|
|
2991
|
-
_customizeFieldDisabledFn;
|
|
2992
|
-
_columnTooltipFn;
|
|
2993
|
+
// private _customizeFieldTitleFn: FsListColumnTitleFn;
|
|
2994
|
+
// private _customizeFieldDisabledFn: FsListColumnDisabledFn;
|
|
2995
|
+
//private _columnTooltipFn: FsListColumnTooltipFn;
|
|
2993
2996
|
_isConfigured = false;
|
|
2994
2997
|
_loadFnConfigured = false;
|
|
2995
2998
|
_changeFnConfigured = false;
|
|
@@ -3011,28 +3014,14 @@ class ColumnsController {
|
|
|
3011
3014
|
return this._visibleColumnsShared$;
|
|
3012
3015
|
}
|
|
3013
3016
|
get columnsForDialog() {
|
|
3014
|
-
const hasCustomTitle = !!this._customizeFieldTitleFn;
|
|
3015
|
-
const hasCustomDisabledStatus = !!this._customizeFieldDisabledFn;
|
|
3016
|
-
const hasCustomTooltip = !!this._columnTooltipFn;
|
|
3017
3017
|
return this._columns
|
|
3018
|
-
.filter((column) => column.
|
|
3018
|
+
.filter((column) => column.customizable && !!column.name)
|
|
3019
3019
|
.map((column) => {
|
|
3020
|
-
const title = hasCustomTitle
|
|
3021
|
-
? this._customizeFieldTitleFn(column.name, column.title)
|
|
3022
|
-
: column.name;
|
|
3023
|
-
const disabled = hasCustomDisabledStatus
|
|
3024
|
-
? this._customizeFieldDisabledFn(column.name)
|
|
3025
|
-
: false;
|
|
3026
|
-
const tooltip = hasCustomTooltip
|
|
3027
|
-
? this._columnTooltipFn(column.name, column.visible, disabled)
|
|
3028
|
-
: undefined;
|
|
3029
3020
|
return {
|
|
3030
3021
|
template: column.headerTemplate,
|
|
3031
3022
|
name: column.name,
|
|
3032
3023
|
show: column.visible,
|
|
3033
|
-
title: title,
|
|
3034
|
-
disabled: disabled,
|
|
3035
|
-
tooltip: tooltip,
|
|
3024
|
+
title: column.title,
|
|
3036
3025
|
};
|
|
3037
3026
|
});
|
|
3038
3027
|
}
|
|
@@ -3082,15 +3071,6 @@ class ColumnsController {
|
|
|
3082
3071
|
this._changeFn = config.change;
|
|
3083
3072
|
this._changeFnConfigured = true;
|
|
3084
3073
|
}
|
|
3085
|
-
if (config.title) {
|
|
3086
|
-
this._customizeFieldTitleFn = config.title;
|
|
3087
|
-
}
|
|
3088
|
-
if (config.disabled) {
|
|
3089
|
-
this._customizeFieldDisabledFn = config.disabled;
|
|
3090
|
-
}
|
|
3091
|
-
if (config.tooltip) {
|
|
3092
|
-
this._columnTooltipFn = config.tooltip;
|
|
3093
|
-
}
|
|
3094
3074
|
this._isConfigured = true;
|
|
3095
3075
|
}
|
|
3096
3076
|
}
|
|
@@ -3127,6 +3107,7 @@ class ColumnsController {
|
|
|
3127
3107
|
.pipe(tap((columnConfigs) => {
|
|
3128
3108
|
this._columnsFetched = true;
|
|
3129
3109
|
this.updateVisibilityForCols(columnConfigs);
|
|
3110
|
+
this.updateCustomizableForCols(columnConfigs);
|
|
3130
3111
|
}), takeUntil(this._destroy$));
|
|
3131
3112
|
}
|
|
3132
3113
|
/**
|
|
@@ -3144,11 +3125,20 @@ class ColumnsController {
|
|
|
3144
3125
|
const col = this._columns
|
|
3145
3126
|
.find((column) => column.name === columnConfig.name);
|
|
3146
3127
|
if (col) {
|
|
3147
|
-
col.updateVisibility(columnConfig.show);
|
|
3128
|
+
col.updateVisibility(columnConfig.show ?? true);
|
|
3148
3129
|
}
|
|
3149
3130
|
});
|
|
3150
3131
|
this.updateVisibleColumns();
|
|
3151
3132
|
}
|
|
3133
|
+
updateCustomizableForCols(columnsConfig) {
|
|
3134
|
+
columnsConfig.forEach((columnConfig) => {
|
|
3135
|
+
const col = this._columns
|
|
3136
|
+
.find((column) => column.name === columnConfig.name);
|
|
3137
|
+
if (col) {
|
|
3138
|
+
col.updateCustomizable(columnConfig.customizable ?? true);
|
|
3139
|
+
}
|
|
3140
|
+
});
|
|
3141
|
+
}
|
|
3152
3142
|
destroy() {
|
|
3153
3143
|
this._destroy$.next(null);
|
|
3154
3144
|
this._destroy$.complete();
|
|
@@ -5072,25 +5062,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
5072
5062
|
args: ['class']
|
|
5073
5063
|
}] } });
|
|
5074
5064
|
|
|
5075
|
-
class FsListHeaderDirective {
|
|
5076
|
-
colspan;
|
|
5077
|
-
align;
|
|
5078
|
-
className;
|
|
5079
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5080
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: FsListHeaderDirective, selector: "[fs-list-header]", inputs: { colspan: "colspan", align: "align", className: ["class", "className"] }, ngImport: i0 });
|
|
5081
|
-
}
|
|
5082
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListHeaderDirective, decorators: [{
|
|
5083
|
-
type: Directive,
|
|
5084
|
-
args: [{ selector: '[fs-list-header]' }]
|
|
5085
|
-
}], propDecorators: { colspan: [{
|
|
5086
|
-
type: Input
|
|
5087
|
-
}], align: [{
|
|
5088
|
-
type: Input
|
|
5089
|
-
}], className: [{
|
|
5090
|
-
type: Input,
|
|
5091
|
-
args: ['class']
|
|
5092
|
-
}] } });
|
|
5093
|
-
|
|
5094
5065
|
class GroupExpandNotifierService {
|
|
5095
5066
|
_expandStatusChanged$ = new Subject();
|
|
5096
5067
|
_destroy$ = new Subject();
|
|
@@ -5157,6 +5128,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
5157
5128
|
}]
|
|
5158
5129
|
}] });
|
|
5159
5130
|
|
|
5131
|
+
class FsListHeaderDirective {
|
|
5132
|
+
colspan;
|
|
5133
|
+
align;
|
|
5134
|
+
className;
|
|
5135
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5136
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: FsListHeaderDirective, selector: "[fs-list-header]", inputs: { colspan: "colspan", align: "align", className: ["class", "className"] }, ngImport: i0 });
|
|
5137
|
+
}
|
|
5138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListHeaderDirective, decorators: [{
|
|
5139
|
+
type: Directive,
|
|
5140
|
+
args: [{ selector: '[fs-list-header]' }]
|
|
5141
|
+
}], propDecorators: { colspan: [{
|
|
5142
|
+
type: Input
|
|
5143
|
+
}], align: [{
|
|
5144
|
+
type: Input
|
|
5145
|
+
}], className: [{
|
|
5146
|
+
type: Input,
|
|
5147
|
+
args: ['class']
|
|
5148
|
+
}] } });
|
|
5149
|
+
|
|
5160
5150
|
class FsListColumnDirective {
|
|
5161
5151
|
// Header
|
|
5162
5152
|
headerTemplate;
|
|
@@ -5189,8 +5179,8 @@ class FsListColumnDirective {
|
|
|
5189
5179
|
set name(value) {
|
|
5190
5180
|
this._columnAttributes.name = value;
|
|
5191
5181
|
}
|
|
5192
|
-
set
|
|
5193
|
-
this._columnAttributes.
|
|
5182
|
+
set customizable(value) {
|
|
5183
|
+
this._columnAttributes.customizable = value;
|
|
5194
5184
|
}
|
|
5195
5185
|
set sortable(value) {
|
|
5196
5186
|
this._columnAttributes.sortable = value;
|
|
@@ -5218,12 +5208,12 @@ class FsListColumnDirective {
|
|
|
5218
5208
|
this._columnAttributes.className = value;
|
|
5219
5209
|
}
|
|
5220
5210
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
5221
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: FsListColumnDirective, selector: "fs-list-column", inputs: { visible: ["show", "visible"], title: "title", name: "name",
|
|
5211
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: FsListColumnDirective, selector: "fs-list-column", inputs: { visible: ["show", "visible"], title: "title", name: "name", customizable: "customizable", sortable: "sortable", sortableDefault: "sortableDefault", sortableDirection: "sortableDirection", direction: "direction", align: "align", width: "width", className: ["class", "className"] }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsListHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "headerConfigs", first: true, predicate: FsListHeaderDirective, descendants: true, static: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: FsListGroupHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "groupHeaderConfigs", first: true, predicate: FsListGroupHeaderDirective, descendants: true, static: true }, { propertyName: "groupFooterTemplate", first: true, predicate: FsListGroupFooterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "groupFooterConfigs", first: true, predicate: FsListGroupFooterDirective, descendants: true, static: true }, { propertyName: "cellTemplate", first: true, predicate: FsListCellDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "cellConfigs", first: true, predicate: FsListCellDirective, descendants: true, static: true }, { propertyName: "footerTemplate", first: true, predicate: FsListFooterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "footerConfigs", first: true, predicate: FsListFooterDirective, descendants: true, static: true }, { propertyName: "expandTrigger", predicate: FsListGroupExpandTriggerDirective, descendants: true }], ngImport: i0 });
|
|
5222
5212
|
}
|
|
5223
5213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListColumnDirective, decorators: [{
|
|
5224
5214
|
type: Directive,
|
|
5225
5215
|
args: [{
|
|
5226
|
-
selector: 'fs-list-column'
|
|
5216
|
+
selector: 'fs-list-column',
|
|
5227
5217
|
}]
|
|
5228
5218
|
}], ctorParameters: () => [], propDecorators: { headerTemplate: [{
|
|
5229
5219
|
type: ContentChild,
|
|
@@ -5265,7 +5255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
5265
5255
|
type: Input
|
|
5266
5256
|
}], name: [{
|
|
5267
5257
|
type: Input
|
|
5268
|
-
}],
|
|
5258
|
+
}], customizable: [{
|
|
5269
5259
|
type: Input
|
|
5270
5260
|
}], sortable: [{
|
|
5271
5261
|
type: Input
|
|
@@ -5315,11 +5305,11 @@ class FsListSavedFiltersComponent {
|
|
|
5315
5305
|
// });
|
|
5316
5306
|
}
|
|
5317
5307
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListSavedFiltersComponent, deps: [{ token: i1$2.MatDialog }, { token: i2.ExternalParamsController }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5318
|
-
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\"><!--\
|
|
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" }] });
|
|
5319
5309
|
}
|
|
5320
5310
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListSavedFiltersComponent, decorators: [{
|
|
5321
5311
|
type: Component,
|
|
5322
|
-
args: [{ selector: 'fs-list-saved-filters', template: "<ng-container *ngIf=\"savedFiltersEnabled$ | async\"><!--\
|
|
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" }]
|
|
5323
5313
|
}], ctorParameters: () => [{ type: i1$2.MatDialog }, { type: i2.ExternalParamsController }, { type: i0.ViewContainerRef }] });
|
|
5324
5314
|
|
|
5325
5315
|
class FsStatusComponent {
|
|
@@ -5391,7 +5381,7 @@ class FsStatusComponent {
|
|
|
5391
5381
|
this.paging.setLimit(limit);
|
|
5392
5382
|
}
|
|
5393
5383
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5394
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsStatusComponent, selector: "fs-list-status", inputs: { list: "list", rows: "rows", firstLoad: "firstLoad" }, host: { properties: { "class.first-load": "this.firstLoad", "class.fs-skeleton-placeholder": "this.firstLoad" } }, ngImport: i0, template: "<div class=\"status\">\n <small>\n @if (paging.enabled) {\n Showing\n @if (paging.hasManyStrategy) {\n <ng-container [ngTemplateOutlet]=\"limitMenu\"></ng-container>\n of\n @if (many.status === 'many') {\n <a\n (click)=\"manyClick()\"\n [matTooltip]=\"'Calculate number of ecords'\">\n many\n </a>\n } @else {\n @if (many.status === 'loading') {\n <mat-spinner\n [diameter]=\"15\"\n [strokeWidth]=\"2\">\n </mat-spinner>\n } @else {\n {{ many.count | number:'1.0':'en-US' }}\n }\n }\n } @else {\n @if (paging.records) {\n <ng-container [ngTemplateOutlet]=\"limitMenu\"></ng-container>\n of \n {{ paging.records | number:'1.0':'en-US' }}\n } @else {\n 0\n }\n }\n results\n <ng-container *ngTemplateOutlet=\"sortedBy\"></ng-container>\n }\n <ng-container *ngIf=\"(!paging.enabled) && paging.pageRecords > 0\">\n Showing\n <span *ngIf=\"paging.pageRecords === 1\">\n {{ paging.pageRecords }} result\n </span>\n <span *ngIf=\"paging.pageRecords > 1\">\n {{ paging.pageRecords | number:'1.0':'en-US' }} results\n </span>\n <ng-container *ngTemplateOutlet=\"sortedBy\"></ng-container>\n </ng-container>\n <fs-list-saved-filters class=\"saved-filters\"></fs-list-saved-filters>\n <fs-menu\n [hidden]=\"!sorting.sortingColumn || paging.pageRecords === 0\"\n #orderColumnsMenu>\n <!-- Real sorting columns -->\n <ng-template\n ngFor\n let-column\n [ngForOf]=\"sorting.sortingColumns\">\n <ng-template\n fs-menu-item\n (click)=\"setSortableColumn(column)\">\n <ng-container *ngIf=\"column.title; else sortByTemplate\">\n {{ column.title }}\n </ng-container>\n <ng-template #sortByTemplate>\n <ng-template [ngTemplateOutlet]=\"column.headerTemplate\"></ng-template>\n </ng-template>\n </ng-template>\n </ng-template>\n <!-- Fake sorting columns -->\n <ng-template\n ngFor\n let-column\n [ngForOf]=\"sorting.fakeSortingColumns\">\n <ng-template\n fs-menu-item\n (click)=\"setSortableColumn(column)\">\n {{ column.title }}\n </ng-template>\n </ng-template>\n </fs-menu>\n <ng-template #sortedBy>\n <ng-container *ngIf=\"sorting.sortingColumn\">\n sorted by\n <ng-container *ngIf=\"sorting.sortingColumn.title; else sortByTemplate\">\n <a\n class=\"order-toggle\"\n [fsMenuTriggerFor]=\"orderColumnsMenu\">\n {{ sorting.sortingColumn.title }}\n </a>\n ,\n </ng-container>\n <ng-template #sortByTemplate>\n <a\n class=\"order-toggle\"\n r\n [fsMenuTriggerFor]=\"orderColumnsMenu\">\n <ng-template [ngTemplateOutlet]=\"sorting.sortingColumn.headerTemplate\"></ng-template>\n </a>\n ,\n </ng-template>\n <a\n class=\"order-toggle\"\n (click)=\"toggleDirection()\">\n {{ sorting.sortingColumn.fullNameDirection }}\n </a>\n </ng-container>\n </ng-template>\n </small>\n</div>\n<ng-template #limitMenu>\n <a [fsMenuTriggerFor]=\"limitsMenuTrigger\">\n {{ paging.statusLabel }}\n </a>\n <fs-menu #limitsMenuTrigger>\n <ng-template\n ngFor\n let-limit\n [ngForOf]=\"paging.limits\">\n <ng-template\n fs-menu-item\n (click)=\"setLimit(limit)\">\n {{ limit }}\n </ng-template>\n </ng-template>\n </fs-menu>\n</ng-template>", styles: [":host.hidden-mobile{display:none!important}:host.first-load .status{visibility:hidden}.order-toggle{white-space:nowrap}a{cursor:pointer}mat-spinner{display:inline-block;margin:0 2px;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i2$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i3$2.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i3$2.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { kind: "directive", type: i3$2.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { kind: "directive", type:
|
|
5384
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsStatusComponent, selector: "fs-list-status", inputs: { list: "list", rows: "rows", firstLoad: "firstLoad" }, host: { properties: { "class.first-load": "this.firstLoad", "class.fs-skeleton-placeholder": "this.firstLoad" } }, ngImport: i0, template: "<div class=\"status\">\n <small>\n @if (paging.enabled) {\n Showing\n @if (paging.hasManyStrategy) {\n <ng-container [ngTemplateOutlet]=\"limitMenu\"></ng-container>\n of\n @if (many.status === 'many') {\n <a\n (click)=\"manyClick()\"\n [matTooltip]=\"'Calculate number of ecords'\">\n many\n </a>\n } @else {\n @if (many.status === 'loading') {\n <mat-spinner\n [diameter]=\"15\"\n [strokeWidth]=\"2\">\n </mat-spinner>\n } @else {\n {{ many.count | number:'1.0':'en-US' }}\n }\n }\n } @else {\n @if (paging.records) {\n <ng-container [ngTemplateOutlet]=\"limitMenu\"></ng-container>\n of \n {{ paging.records | number:'1.0':'en-US' }}\n } @else {\n 0\n }\n }\n results\n <ng-container *ngTemplateOutlet=\"sortedBy\"></ng-container>\n }\n <ng-container *ngIf=\"(!paging.enabled) && paging.pageRecords > 0\">\n Showing\n <span *ngIf=\"paging.pageRecords === 1\">\n {{ paging.pageRecords }} result\n </span>\n <span *ngIf=\"paging.pageRecords > 1\">\n {{ paging.pageRecords | number:'1.0':'en-US' }} results\n </span>\n <ng-container *ngTemplateOutlet=\"sortedBy\"></ng-container>\n </ng-container>\n <fs-list-saved-filters class=\"saved-filters\"></fs-list-saved-filters>\n <fs-menu\n [hidden]=\"!sorting.sortingColumn || paging.pageRecords === 0\"\n #orderColumnsMenu>\n <!-- Real sorting columns -->\n <ng-template\n ngFor\n let-column\n [ngForOf]=\"sorting.sortingColumns\">\n <ng-template\n fs-menu-item\n (click)=\"setSortableColumn(column)\">\n <ng-container *ngIf=\"column.title; else sortByTemplate\">\n {{ column.title }}\n </ng-container>\n <ng-template #sortByTemplate>\n <ng-template [ngTemplateOutlet]=\"column.headerTemplate\"></ng-template>\n </ng-template>\n </ng-template>\n </ng-template>\n <!-- Fake sorting columns -->\n <ng-template\n ngFor\n let-column\n [ngForOf]=\"sorting.fakeSortingColumns\">\n <ng-template\n fs-menu-item\n (click)=\"setSortableColumn(column)\">\n {{ column.title }}\n </ng-template>\n </ng-template>\n </fs-menu>\n <ng-template #sortedBy>\n <ng-container *ngIf=\"sorting.sortingColumn\">\n sorted by\n <ng-container *ngIf=\"sorting.sortingColumn.title; else sortByTemplate\">\n <a\n class=\"order-toggle\"\n [fsMenuTriggerFor]=\"orderColumnsMenu\">\n {{ sorting.sortingColumn.title }}\n </a>\n ,\n </ng-container>\n <ng-template #sortByTemplate>\n <a\n class=\"order-toggle\"\n r\n [fsMenuTriggerFor]=\"orderColumnsMenu\">\n <ng-template [ngTemplateOutlet]=\"sorting.sortingColumn.headerTemplate\"></ng-template>\n </a>\n ,\n </ng-template>\n <a\n class=\"order-toggle\"\n (click)=\"toggleDirection()\">\n {{ sorting.sortingColumn.fullNameDirection }}\n </a>\n </ng-container>\n </ng-template>\n </small>\n</div>\n<ng-template #limitMenu>\n <a [fsMenuTriggerFor]=\"limitsMenuTrigger\">\n {{ paging.statusLabel }}\n </a>\n <fs-menu #limitsMenuTrigger>\n <ng-template\n ngFor\n let-limit\n [ngForOf]=\"paging.limits\">\n <ng-template\n fs-menu-item\n (click)=\"setLimit(limit)\">\n {{ limit }}\n </ng-template>\n </ng-template>\n </fs-menu>\n</ng-template>", styles: [":host.hidden-mobile{display:none!important}:host.first-load .status{visibility:hidden}.order-toggle{white-space:nowrap}a{cursor:pointer}mat-spinner{display:inline-block;margin:0 2px;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i2$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i3$2.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { kind: "directive", type: i3$2.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { kind: "directive", type: i3$2.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FsListSavedFiltersComponent, selector: "fs-list-saved-filters" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
|
|
5395
5385
|
}
|
|
5396
5386
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsStatusComponent, decorators: [{
|
|
5397
5387
|
type: Component,
|
|
@@ -5435,11 +5425,11 @@ class FsListLoaderComponent {
|
|
|
5435
5425
|
}
|
|
5436
5426
|
}
|
|
5437
5427
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5438
|
-
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>\
|
|
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 });
|
|
5439
5429
|
}
|
|
5440
5430
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListLoaderComponent, decorators: [{
|
|
5441
5431
|
type: Component,
|
|
5442
|
-
args: [{ selector: 'fs-list-loader', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table>\
|
|
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"] }]
|
|
5443
5433
|
}], propDecorators: { columns: [{
|
|
5444
5434
|
type: Input
|
|
5445
5435
|
}], loaderLines: [{
|
|
@@ -5462,7 +5452,7 @@ class FsPaginationComponent {
|
|
|
5462
5452
|
this.pagination.goLast();
|
|
5463
5453
|
}
|
|
5464
5454
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5465
|
-
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$
|
|
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$1.FsFormatNumberPipe, name: "fsFormatNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5466
5456
|
}
|
|
5467
5457
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPaginationComponent, decorators: [{
|
|
5468
5458
|
type: Component,
|
|
@@ -5811,7 +5801,7 @@ class FsListComponent {
|
|
|
5811
5801
|
const namespace = getNormalizedPath(this._location);
|
|
5812
5802
|
this._persistance.setConfig(persistConfig, namespace, this._inDialog);
|
|
5813
5803
|
}
|
|
5814
|
-
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: i1$2.MatDialogRef, optional: true }, { token: i3$3.DrawerRef, optional: true }, { token: i0.ElementRef }, { token: i4$
|
|
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: i1$2.MatDialogRef, optional: true }, { token: i3$3.DrawerRef, optional: true }, { token: i0.ElementRef }, { token: i4$3.SelectionDialog }, { token: i1$2.MatDialog }, { token: i0.ChangeDetectorRef }, { token: GroupExpandNotifierService }, { token: i6.Router }, { token: i6.ActivatedRoute }, { token: PersistanceController }, { token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
5815
5805
|
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: [
|
|
5816
5806
|
GroupExpandNotifierService,
|
|
5817
5807
|
PersistanceController,
|
|
@@ -5834,7 +5824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
5834
5824
|
type: Optional
|
|
5835
5825
|
}] }, { type: i3$3.DrawerRef, decorators: [{
|
|
5836
5826
|
type: Optional
|
|
5837
|
-
}] }, { type: i0.ElementRef }, { type: i4$
|
|
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: [{
|
|
5838
5828
|
type: HostBinding,
|
|
5839
5829
|
args: ['class.fs-list']
|
|
5840
5830
|
}], rowHoverHighlight: [{
|
|
@@ -5930,11 +5920,11 @@ class FsListManageSavedFiltersComponent {
|
|
|
5930
5920
|
};
|
|
5931
5921
|
}
|
|
5932
5922
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListManageSavedFiltersComponent, deps: [{ token: i2.ExternalParamsController }], target: i0.ɵɵFactoryTarget.Component });
|
|
5933
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsListManageSavedFiltersComponent, selector: "ng-component", ngImport: i0, template: "<h1 mat-dialog-title>\
|
|
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: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.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 });
|
|
5934
5924
|
}
|
|
5935
5925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsListManageSavedFiltersComponent, decorators: [{
|
|
5936
5926
|
type: Component,
|
|
5937
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 mat-dialog-title>\
|
|
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" }]
|
|
5938
5928
|
}], ctorParameters: () => [{ type: i2.ExternalParamsController }] });
|
|
5939
5929
|
|
|
5940
5930
|
class FsListContentDirective {
|