@firestitch/list 12.16.0 → 12.17.0
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/selection-controller.d.ts +11 -2
- package/app/components/body/body.component.d.ts +1 -2
- package/app/components/body/row/actions/actions.component.d.ts +2 -0
- package/app/components/body/row/row.component.d.ts +2 -0
- package/app/components/footer/footer.component.d.ts +2 -3
- package/app/components/head/head-cell/head-cell.component.d.ts +3 -3
- package/app/components/head/head.component.d.ts +9 -7
- package/app/directives/draggable-list/draggable-list.directive.d.ts +5 -0
- package/bundles/firestitch-list.umd.js +88 -57
- package/bundles/firestitch-list.umd.js.map +1 -1
- package/esm2015/app/classes/selection-controller.js +19 -10
- package/esm2015/app/components/body/body.component.js +6 -5
- package/esm2015/app/components/body/row/actions/actions.component.js +6 -3
- package/esm2015/app/components/body/row/row.component.js +18 -10
- package/esm2015/app/components/footer/footer.component.js +7 -6
- package/esm2015/app/components/head/head-cell/head-cell.component.js +10 -9
- package/esm2015/app/components/head/head.component.js +19 -16
- package/esm2015/app/components/list/list.component.js +1 -1
- package/esm2015/app/components/status/status.component.js +1 -1
- package/esm2015/app/directives/draggable-list/draggable-list.directive.js +16 -11
- package/fesm2015/firestitch-list.js +90 -59
- package/fesm2015/firestitch-list.js.map +1 -1
- package/package.json +1 -1
|
@@ -1716,6 +1716,7 @@ class SelectionController {
|
|
|
1716
1716
|
}
|
|
1717
1717
|
/**
|
|
1718
1718
|
* Trigger when row was selected
|
|
1719
|
+
*
|
|
1719
1720
|
* @param row
|
|
1720
1721
|
* @param checked
|
|
1721
1722
|
*/
|
|
@@ -1737,6 +1738,7 @@ class SelectionController {
|
|
|
1737
1738
|
}
|
|
1738
1739
|
/**
|
|
1739
1740
|
* Do check or uncheck of visible rows
|
|
1741
|
+
*
|
|
1740
1742
|
* @param checked
|
|
1741
1743
|
*/
|
|
1742
1744
|
selectAllVisibleRows(checked) {
|
|
@@ -1785,9 +1787,7 @@ class SelectionController {
|
|
|
1785
1787
|
&& ((_a = row.children) === null || _a === void 0 ? void 0 : _a.length) > this.selectedGroups.get(identifier)) {
|
|
1786
1788
|
return 'indeterminate';
|
|
1787
1789
|
}
|
|
1788
|
-
|
|
1789
|
-
return this.selectedGroups.has(identifier) || this.selectedAll;
|
|
1790
|
-
}
|
|
1790
|
+
return this.selectedGroups.has(identifier) || this.selectedAll;
|
|
1791
1791
|
}
|
|
1792
1792
|
/**
|
|
1793
1793
|
* Open selection dialog and create reference
|
|
@@ -1805,6 +1805,7 @@ class SelectionController {
|
|
|
1805
1805
|
}
|
|
1806
1806
|
/**
|
|
1807
1807
|
* Update count of visible elements
|
|
1808
|
+
*
|
|
1808
1809
|
* @param count
|
|
1809
1810
|
*/
|
|
1810
1811
|
updateVisibleRecordsCount(count) {
|
|
@@ -1812,6 +1813,7 @@ class SelectionController {
|
|
|
1812
1813
|
}
|
|
1813
1814
|
/**
|
|
1814
1815
|
* Update count of total available elemenets
|
|
1816
|
+
*
|
|
1815
1817
|
* @param count
|
|
1816
1818
|
*/
|
|
1817
1819
|
updateTotalRecordsCount(count) {
|
|
@@ -1850,6 +1852,7 @@ class SelectionController {
|
|
|
1850
1852
|
* Method will be called from List for remove row if it was selected
|
|
1851
1853
|
*
|
|
1852
1854
|
* BUT methods for update visible and etc. will be called a bit later
|
|
1855
|
+
*
|
|
1853
1856
|
* @param row
|
|
1854
1857
|
*/
|
|
1855
1858
|
removeRow(row) {
|
|
@@ -1859,6 +1862,7 @@ class SelectionController {
|
|
|
1859
1862
|
}
|
|
1860
1863
|
/**
|
|
1861
1864
|
* Intersection of selected and passed rows to remove rows that we dont need more
|
|
1865
|
+
*
|
|
1862
1866
|
* @param rows
|
|
1863
1867
|
*/
|
|
1864
1868
|
selectedRowsIntersection(rows) {
|
|
@@ -1869,7 +1873,7 @@ class SelectionController {
|
|
|
1869
1873
|
}
|
|
1870
1874
|
});
|
|
1871
1875
|
}
|
|
1872
|
-
updateConfig({ actions, actionSelected, allSelected, cancelled, selectionChanged, selectAll }) {
|
|
1876
|
+
updateConfig({ actions, actionSelected, allSelected, cancelled, selectionChanged, selectAll, }) {
|
|
1873
1877
|
this.actions = actions ? [...actions] : this.actions;
|
|
1874
1878
|
this.actionSelectedFn = actionSelected !== null && actionSelected !== void 0 ? actionSelected : this.actionSelectedFn;
|
|
1875
1879
|
this.allSelectedFn = allSelected !== null && allSelected !== void 0 ? allSelected : this.allSelectedFn;
|
|
@@ -1918,6 +1922,7 @@ class SelectionController {
|
|
|
1918
1922
|
}
|
|
1919
1923
|
/**
|
|
1920
1924
|
* If some action was clicked on selection ref dialog
|
|
1925
|
+
*
|
|
1921
1926
|
* @param data
|
|
1922
1927
|
*/
|
|
1923
1928
|
_onActionActions(data) {
|
|
@@ -1925,7 +1930,9 @@ class SelectionController {
|
|
|
1925
1930
|
return;
|
|
1926
1931
|
}
|
|
1927
1932
|
// Execute callback
|
|
1928
|
-
const result = this.actionSelectedFn(Object.assign({ selected: Array.from(this.selectedRows.values()).map((row) => {
|
|
1933
|
+
const result = this.actionSelectedFn(Object.assign({ selected: Array.from(this.selectedRows.values()).map((row) => {
|
|
1934
|
+
return Object.assign({}, row);
|
|
1935
|
+
}) }, data));
|
|
1929
1936
|
// If result is observable
|
|
1930
1937
|
if (result instanceof Observable) {
|
|
1931
1938
|
// Subscribe and whait why it resolved
|
|
@@ -1936,7 +1943,7 @@ class SelectionController {
|
|
|
1936
1943
|
// Uncheck all visible rows
|
|
1937
1944
|
this.selectAllVisibleRows(false);
|
|
1938
1945
|
},
|
|
1939
|
-
error: () => { }
|
|
1946
|
+
error: () => { },
|
|
1940
1947
|
});
|
|
1941
1948
|
}
|
|
1942
1949
|
}
|
|
@@ -1952,6 +1959,7 @@ class SelectionController {
|
|
|
1952
1959
|
}
|
|
1953
1960
|
/**
|
|
1954
1961
|
* If "Select All" action was clicked on selection ref dialog
|
|
1962
|
+
*
|
|
1955
1963
|
* @param flag
|
|
1956
1964
|
*/
|
|
1957
1965
|
_onSelectAllActions(flag) {
|
|
@@ -1979,7 +1987,7 @@ class SelectionController {
|
|
|
1979
1987
|
result.pipe(take(1), takeUntil(this._destroy$)).subscribe({
|
|
1980
1988
|
next: (actions) => {
|
|
1981
1989
|
this._selectionDialogRef.updateActions(actions);
|
|
1982
|
-
}
|
|
1990
|
+
},
|
|
1983
1991
|
});
|
|
1984
1992
|
}
|
|
1985
1993
|
else if (Array.isArray(result)) {
|
|
@@ -2028,13 +2036,14 @@ class SelectionController {
|
|
|
2028
2036
|
}
|
|
2029
2037
|
/**
|
|
2030
2038
|
* Method constructor for events
|
|
2039
|
+
*
|
|
2031
2040
|
* @param type
|
|
2032
2041
|
* @param payload
|
|
2033
2042
|
*/
|
|
2034
2043
|
_selectionChangeEvent(type, payload) {
|
|
2035
2044
|
this._selectionChange.next({
|
|
2036
|
-
type
|
|
2037
|
-
payload
|
|
2045
|
+
type,
|
|
2046
|
+
payload,
|
|
2038
2047
|
});
|
|
2039
2048
|
}
|
|
2040
2049
|
/**
|
|
@@ -3891,7 +3900,7 @@ class FsStatusComponent {
|
|
|
3891
3900
|
}
|
|
3892
3901
|
}
|
|
3893
3902
|
FsStatusComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsStatusComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3894
|
-
FsStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsStatusComponent, selector: "fs-list-status", inputs: { paging: "paging", sorting: "sorting", rows: "rows", scrollable: "scrollable", firstLoad: "firstLoad" }, host: { properties: { "class.first-load": "this.firstLoad", "class.fs-skeleton-placeholder": "this.firstLoad" } }, ngImport: i0, template: "<div class=\"status\">\r\n <small>\r\n <ng-container *ngIf=\"paging.enabled && !scrollable\">\r\n <ng-container *ngIf=\"paging.records > 0; else emptyResults\">\r\n Showing <a [fsMenuTriggerFor]=\"limitsMenu\">{{ paging.statusLabel }}</a> of {{ paging.records | number:'1.0':'en-US' }} results\r\n </ng-container>\r\n <ng-template #emptyResults>\r\n Showing <a [fsMenuTriggerFor]=\"limitsMenu\">0</a> results\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"sortedBy\"></ng-container><!--\r\n --></ng-container><!--\r\n\r\n --><ng-container *ngIf=\"(!paging.enabled || scrollable) && paging.displayed > 0\">\r\n <ng-container *ngIf=\"!scrollable; else scrollable\">\r\n Showing\r\n <span *ngIf=\"paging.displayed == 1\">{{ paging.displayed }} result </span>\r\n <span *ngIf=\"paging.displayed > 1\">{{ paging.displayed | number:'1.0':'en-US' }} results </span>\r\n </ng-container>\r\n\r\n <ng-template #scrollable>\r\n <span *ngIf=\"paging.records == 1\">{{ paging.records }} result </span>\r\n <span *ngIf=\"paging.records > 1\">{{ paging.records | number:'1.0':'en-US' }} results </span>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"sortedBy\"></ng-container><!--\r\n --></ng-container><!--\r\n\r\n --><fs-list-saved-filters class=\"saved-filters\"></fs-list-saved-filters>\r\n\r\n <fs-menu [hidden]=\"!paging.enabled || scrollable\" #limitsMenu>\r\n <ng-template\r\n ngFor\r\n let-limit\r\n [ngForOf]=\"paging.limits\">\r\n <ng-template fs-menu-item (click)=\"setLimit(limit)\">\r\n {{ limit }}\r\n </ng-template>\r\n </ng-template>\r\n </fs-menu>\r\n\r\n <fs-menu [hidden]=\"!sorting.sortingColumn || paging.displayed === 0\" #orderColumnsMenu>\r\n <!-- Real sorting columns -->\r\n <ng-template\r\n ngFor\r\n let-column\r\n [ngForOf]=\"sorting.sortingColumns\">\r\n <ng-template fs-menu-item (click)=\"setSortableColumn(column)\">\r\n <ng-container *ngIf=\"column.title; else sortByTemplate\">\r\n {{ column.title }}\r\n </ng-container>\r\n <ng-template #sortByTemplate>\r\n <ng-template [ngTemplateOutlet]=\"column.headerTemplate\"></ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <!-- Fake sorting columns -->\r\n <ng-template\r\n ngFor\r\n let-column\r\n [ngForOf]=\"sorting.fakeSortingColumns\">\r\n <ng-template fs-menu-item (click)=\"setSortableColumn(column)\">\r\n {{ column.title }}\r\n </ng-template>\r\n </ng-template>\r\n </fs-menu>\r\n\r\n <ng-template #sortedBy>\r\n <ng-container *ngIf=\"sorting.sortingColumn\">\r\n sorted by\r\n <ng-container *ngIf=\"sorting.sortingColumn.title; else sortByTemplate\">\r\n <a class=\"order-toggle\" [fsMenuTriggerFor]=\"orderColumnsMenu\">{{ sorting.sortingColumn.title }}</a>,\r\n </ng-container>\r\n <ng-template #sortByTemplate>\r\n <a class=\"order-toggle\" [fsMenuTriggerFor]=\"orderColumnsMenu\">\r\n <ng-template [ngTemplateOutlet]=\"sorting.sortingColumn.headerTemplate\"></ng-template>\r\n </a>,\r\n </ng-template>\r\n <a class=\"order-toggle\" (click)=\"toggleDirection()\">{{ sorting.sortingColumn.fullNameDirection }}</a><!--\r\n --></ng-container><!--\r\n --></ng-template>\r\n </small> \r\n</div>\r\n", styles: [":host.first-load .status{visibility:hidden}.order-toggle{white-space:nowrap}a{cursor:pointer}\n"], components: [{ type: FsListSavedFiltersComponent, selector: "fs-list-saved-filters" }, { type: i2$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$3.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], pipes: { "number": i3$1.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
|
|
3903
|
+
FsStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsStatusComponent, selector: "fs-list-status", inputs: { paging: "paging", sorting: "sorting", rows: "rows", scrollable: "scrollable", firstLoad: "firstLoad" }, host: { properties: { "class.first-load": "this.firstLoad", "class.fs-skeleton-placeholder": "this.firstLoad" } }, ngImport: i0, template: "<div class=\"status\">\r\n <small>\r\n <ng-container *ngIf=\"paging.enabled && !scrollable\">\r\n <ng-container *ngIf=\"paging.records > 0; else emptyResults\">\r\n Showing <a [fsMenuTriggerFor]=\"limitsMenu\">{{ paging.statusLabel }}</a> of {{ paging.records | number:'1.0':'en-US' }} results\r\n </ng-container>\r\n <ng-template #emptyResults>\r\n Showing <a [fsMenuTriggerFor]=\"limitsMenu\">0</a> results\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"sortedBy\"></ng-container><!--\r\n --></ng-container><!--\r\n\r\n --><ng-container *ngIf=\"(!paging.enabled || scrollable) && paging.displayed > 0\">\r\n <ng-container *ngIf=\"!scrollable; else scrollable\">\r\n Showing\r\n <span *ngIf=\"paging.displayed == 1\">{{ paging.displayed }} result </span>\r\n <span *ngIf=\"paging.displayed > 1\">{{ paging.displayed | number:'1.0':'en-US' }} results </span>\r\n </ng-container>\r\n\r\n <ng-template #scrollable>\r\n <span *ngIf=\"paging.records == 1\">{{ paging.records }} result </span>\r\n <span *ngIf=\"paging.records > 1\">{{ paging.records | number:'1.0':'en-US' }} results </span>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"sortedBy\"></ng-container><!--\r\n --></ng-container><!--\r\n\r\n --><fs-list-saved-filters class=\"saved-filters\"></fs-list-saved-filters>\r\n\r\n <fs-menu [hidden]=\"!paging.enabled || scrollable\" #limitsMenu>\r\n <ng-template\r\n ngFor\r\n let-limit\r\n [ngForOf]=\"paging.limits\">\r\n <ng-template fs-menu-item (click)=\"setLimit(limit)\">\r\n {{ limit }}\r\n </ng-template>\r\n </ng-template>\r\n </fs-menu>\r\n\r\n <fs-menu [hidden]=\"!sorting.sortingColumn || paging.displayed === 0\" #orderColumnsMenu>\r\n <!-- Real sorting columns -->\r\n <ng-template\r\n ngFor\r\n let-column\r\n [ngForOf]=\"sorting.sortingColumns\">\r\n <ng-template fs-menu-item (click)=\"setSortableColumn(column)\">\r\n <ng-container *ngIf=\"column.title; else sortByTemplate\">\r\n {{ column.title }}\r\n </ng-container>\r\n <ng-template #sortByTemplate>\r\n <ng-template [ngTemplateOutlet]=\"column.headerTemplate\"></ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <!-- Fake sorting columns -->\r\n <ng-template\r\n ngFor\r\n let-column\r\n [ngForOf]=\"sorting.fakeSortingColumns\">\r\n <ng-template fs-menu-item (click)=\"setSortableColumn(column)\">\r\n {{ column.title }}\r\n </ng-template>\r\n </ng-template>\r\n </fs-menu>\r\n\r\n <ng-template #sortedBy>\r\n <ng-container *ngIf=\"sorting.sortingColumn\">\r\n sorted by\r\n <ng-container *ngIf=\"sorting.sortingColumn.title; else sortByTemplate\">\r\n <a class=\"order-toggle\" [fsMenuTriggerFor]=\"orderColumnsMenu\">{{ sorting.sortingColumn.title }}</a>,\r\n </ng-container>\r\n <ng-template #sortByTemplate>\r\n <a class=\"order-toggle\" [fsMenuTriggerFor]=\"orderColumnsMenu\">\r\n <ng-template [ngTemplateOutlet]=\"sorting.sortingColumn.headerTemplate\"></ng-template>\r\n </a>,\r\n </ng-template>\r\n <a class=\"order-toggle\" (click)=\"toggleDirection()\">{{ sorting.sortingColumn.fullNameDirection }}</a><!--\r\n --></ng-container><!--\r\n --></ng-template>\r\n </small> \r\n</div>\r\n", styles: [":host.hidden-mobile{display:none!important}:host.first-load .status{visibility:hidden}.order-toggle{white-space:nowrap}a{cursor:pointer}\n"], components: [{ type: FsListSavedFiltersComponent, selector: "fs-list-saved-filters" }, { type: i2$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$3.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], pipes: { "number": i3$1.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
|
|
3895
3904
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsStatusComponent, decorators: [{
|
|
3896
3905
|
type: Component,
|
|
3897
3906
|
args: [{
|
|
@@ -4020,16 +4029,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4020
4029
|
}] } });
|
|
4021
4030
|
|
|
4022
4031
|
class FsHeadCellComponent extends FsCellComponent {
|
|
4023
|
-
constructor(
|
|
4032
|
+
constructor(_cdRef, _differs) {
|
|
4024
4033
|
super();
|
|
4025
|
-
this.
|
|
4026
|
-
this.
|
|
4034
|
+
this._cdRef = _cdRef;
|
|
4035
|
+
this._differs = _differs;
|
|
4027
4036
|
this.cellContext = {};
|
|
4028
|
-
this._columnDiffer =
|
|
4037
|
+
this._columnDiffer = this._differs.find({}).create();
|
|
4029
4038
|
}
|
|
4030
4039
|
ngDoCheck() {
|
|
4031
4040
|
if (this._columnDiffer.diff(this.column)) {
|
|
4032
|
-
this.
|
|
4041
|
+
this._cdRef.markForCheck();
|
|
4033
4042
|
}
|
|
4034
4043
|
}
|
|
4035
4044
|
initCellContext() {
|
|
@@ -4037,19 +4046,20 @@ class FsHeadCellComponent extends FsCellComponent {
|
|
|
4037
4046
|
}
|
|
4038
4047
|
}
|
|
4039
4048
|
FsHeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsHeadCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
4040
|
-
FsHeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsHeadCellComponent, selector: "[fs-head-cell]", usesInheritance: true, ngImport: i0, template: "<div class=\"wrap\">\n <span class=\"title\">\n <ng-template [ngIf]=\"!column.headerTemplate\">{{column.title}}</ng-template>\n <ng-template\n [ngIf]=\"column.headerTemplate\"\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"cellContext\">\n </ng-template>\n </span>\n <div class=\"direction\" *ngIf=\"column.ordered\" [ngSwitch]=\"column.sortingDirection$ | async\">\n <mat-icon class=\"material-icons\" role=\"img\" aria-label=\"arrow_downward\" *ngSwitchCase=\"'asc'\">arrow_downward</mat-icon>\n <mat-icon class=\"material-icons\" role=\"img\" aria-label=\"arrow_upward\" *ngSwitchCase=\"'desc'\">arrow_upward</mat-icon>\n </div>\n</div>\n", components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4049
|
+
FsHeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsHeadCellComponent, selector: "[fs-head-cell]", usesInheritance: true, ngImport: i0, template: "<div class=\"wrap\">\n <span class=\"title\">\n <ng-template [ngIf]=\"!column.headerTemplate\">{{column.title}}</ng-template>\n <ng-template\n [ngIf]=\"column.headerTemplate\"\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"cellContext\">\n </ng-template>\n </span>\n <div class=\"direction\" *ngIf=\"column.ordered\" [ngSwitch]=\"column.sortingDirection$ | async\">\n <mat-icon class=\"material-icons\" role=\"img\" aria-label=\"arrow_downward\" *ngSwitchCase=\"'asc'\">arrow_downward</mat-icon>\n <mat-icon class=\"material-icons\" role=\"img\" aria-label=\"arrow_upward\" *ngSwitchCase=\"'desc'\">arrow_upward</mat-icon>\n </div>\n</div>\n", styles: [".wrap{display:inline-flex;vertical-align:middle;white-space:nowrap}.wrap mat-icon{font-size:14px;display:block;height:14px;width:14px}.wrap .direction{margin-left:5px}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4041
4050
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsHeadCellComponent, decorators: [{
|
|
4042
4051
|
type: Component,
|
|
4043
4052
|
args: [{
|
|
4044
4053
|
selector: '[fs-head-cell]',
|
|
4045
|
-
templateUrl: 'head-cell.component.html',
|
|
4046
|
-
|
|
4054
|
+
templateUrl: './head-cell.component.html',
|
|
4055
|
+
styleUrls: ['./head-cell.component.scss'],
|
|
4056
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4047
4057
|
}]
|
|
4048
4058
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }]; } });
|
|
4049
4059
|
|
|
4050
4060
|
class FsHeadComponent {
|
|
4051
|
-
constructor(
|
|
4052
|
-
this.
|
|
4061
|
+
constructor(_cdRef) {
|
|
4062
|
+
this._cdRef = _cdRef;
|
|
4053
4063
|
this.selectedAll = false;
|
|
4054
4064
|
this.ReorderStrategyEnum = ReorderStrategy;
|
|
4055
4065
|
this._destroy$ = new Subject();
|
|
@@ -4057,16 +4067,16 @@ class FsHeadComponent {
|
|
|
4057
4067
|
get leftDragDropEnabled() {
|
|
4058
4068
|
return this.reorderEnabled
|
|
4059
4069
|
&& this.reorderPosition === ReorderPosition.Left
|
|
4060
|
-
&& this.activeFiltersCount
|
|
4070
|
+
&& this.activeFiltersCount === 0;
|
|
4061
4071
|
}
|
|
4062
4072
|
get rightDragDropEnabled() {
|
|
4063
4073
|
return this.reorderEnabled
|
|
4064
4074
|
&& this.reorderPosition === ReorderPosition.Right
|
|
4065
|
-
&& this.activeFiltersCount
|
|
4075
|
+
&& this.activeFiltersCount === 0;
|
|
4066
4076
|
}
|
|
4067
4077
|
ngOnInit() {
|
|
4068
|
-
this.
|
|
4069
|
-
this.
|
|
4078
|
+
this._initSorting();
|
|
4079
|
+
this._initSelection();
|
|
4070
4080
|
}
|
|
4071
4081
|
ngOnDestroy() {
|
|
4072
4082
|
this._destroy$.next();
|
|
@@ -4074,6 +4084,7 @@ class FsHeadComponent {
|
|
|
4074
4084
|
}
|
|
4075
4085
|
/**
|
|
4076
4086
|
* Select All Visible Rows
|
|
4087
|
+
*
|
|
4077
4088
|
* @param event
|
|
4078
4089
|
*/
|
|
4079
4090
|
selectAll(event) {
|
|
@@ -4081,6 +4092,7 @@ class FsHeadComponent {
|
|
|
4081
4092
|
}
|
|
4082
4093
|
/**
|
|
4083
4094
|
* Track By for improve change detection
|
|
4095
|
+
*
|
|
4084
4096
|
* @param index
|
|
4085
4097
|
*/
|
|
4086
4098
|
trackByFn(index) {
|
|
@@ -4089,17 +4101,17 @@ class FsHeadComponent {
|
|
|
4089
4101
|
/**
|
|
4090
4102
|
* Subscribe to sorting change
|
|
4091
4103
|
*/
|
|
4092
|
-
|
|
4104
|
+
_initSorting() {
|
|
4093
4105
|
this.sorting.sortingChanged$
|
|
4094
4106
|
.pipe(takeUntil(this._destroy$))
|
|
4095
4107
|
.subscribe(() => {
|
|
4096
|
-
this.
|
|
4108
|
+
this._cdRef.detectChanges();
|
|
4097
4109
|
});
|
|
4098
4110
|
}
|
|
4099
4111
|
/**
|
|
4100
4112
|
* Subscribe to selection change
|
|
4101
4113
|
*/
|
|
4102
|
-
|
|
4114
|
+
_initSelection() {
|
|
4103
4115
|
if (this.selection) {
|
|
4104
4116
|
this.selection.selectionChange$
|
|
4105
4117
|
.pipe(filter(({ type }) => (type === SelectionChangeType.AllVisibleSelectionChange
|
|
@@ -4107,19 +4119,20 @@ class FsHeadComponent {
|
|
|
4107
4119
|
|| type === SelectionChangeType.RowSelectionChange)), takeUntil(this._destroy$))
|
|
4108
4120
|
.subscribe(({ type, payload: status }) => {
|
|
4109
4121
|
this.selectedAll = status;
|
|
4110
|
-
this.
|
|
4122
|
+
this._cdRef.markForCheck();
|
|
4111
4123
|
});
|
|
4112
4124
|
}
|
|
4113
4125
|
}
|
|
4114
4126
|
}
|
|
4115
4127
|
FsHeadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsHeadComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4116
|
-
FsHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsHeadComponent, selector: "[fs-list-head]", inputs: { sorting: "sorting", columns: "columns", hasRowActions: "hasRowActions", selection: "selection", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy" }, viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<tr class=\"fs-list-row\">\n <!-- Drag -->\n <th *ngIf=\"leftDragDropEnabled\"\n class=\"fs-list-col drag-col\">\n </th>\n\n <!-- Selection -->\n <th *ngIf=\"selection && !(selection.disabled$ | async)\" class=\"fs-list-col fs-list-col-selection\">\n <mat-checkbox (change)=\"selectAll($event)\" [checked]=\"selectedAll\"></mat-checkbox>\n </th>\n\n <!-- Content -->\n <th fs-head-cell *ngFor=\"let column of columns; trackBy: trackByFn\"\n
|
|
4128
|
+
FsHeadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsHeadComponent, selector: "[fs-list-head]", inputs: { sorting: "sorting", columns: "columns", hasRowActions: "hasRowActions", selection: "selection", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy" }, viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<tr class=\"fs-list-row\">\n <!-- Drag -->\n <th *ngIf=\"leftDragDropEnabled\"\n class=\"fs-list-col drag-col\">\n </th>\n\n <!-- Selection -->\n <th *ngIf=\"selection && !(selection.disabled$ | async)\" class=\"fs-list-col fs-list-col-selection\">\n <mat-checkbox (change)=\"selectAll($event)\" [checked]=\"selectedAll\"></mat-checkbox>\n </th>\n\n <!-- Content -->\n <th \n fs-head-cell *ngFor=\"let column of columns; trackBy: trackByFn\"\n (click)=\"$event.stopPropagation(); sorting.sortBy(column)\"\n [column]=\"column\"\n [class.sorting]=\"column.sortable\"\n [ngClass]=\"column.headerConfigs.classesArray\"\n [attr.colspan]=\"column.headerConfigs.colspan\"\n [attr.width]=\"column.width\">\n </th>\n\n <!-- Drag -->\n <th *ngIf=\"rightDragDropEnabled\"\n class=\"fs-list-col drag-col\">\n </th>\n\n <!-- Row Actions -->\n <th *ngIf=\"hasRowActions && !(reorderEnabled && reorderStrategy === ReorderStrategyEnum.Manual)\" class=\"fs-list-col row-actions\"></th>\n</tr>\n", styles: ["th.fs-list-col-selection{width:1%;text-align:left}th.sorting{cursor:pointer}th.sorting:hover{background-color:#f6f6f6}th.sorting{background-image:none}\n"], components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: FsHeadCellComponent, selector: "[fs-head-cell]" }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4117
4129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsHeadComponent, decorators: [{
|
|
4118
4130
|
type: Component,
|
|
4119
4131
|
args: [{
|
|
4120
4132
|
selector: '[fs-list-head]',
|
|
4121
|
-
templateUrl: 'head.component.html',
|
|
4122
|
-
|
|
4133
|
+
templateUrl: './head.component.html',
|
|
4134
|
+
styleUrls: ['./head.component.scss'],
|
|
4135
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4123
4136
|
}]
|
|
4124
4137
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { sorting: [{
|
|
4125
4138
|
type: Input
|
|
@@ -4183,6 +4196,7 @@ class FsListDraggableListDirective {
|
|
|
4183
4196
|
}
|
|
4184
4197
|
/**
|
|
4185
4198
|
* Prepare draggable elements and add events
|
|
4199
|
+
*
|
|
4186
4200
|
* @param draggableElement
|
|
4187
4201
|
*/
|
|
4188
4202
|
dragStart(draggableElement) {
|
|
@@ -4213,6 +4227,7 @@ class FsListDraggableListDirective {
|
|
|
4213
4227
|
}
|
|
4214
4228
|
/**
|
|
4215
4229
|
* Move draggable elements and swap items
|
|
4230
|
+
*
|
|
4216
4231
|
* @param event
|
|
4217
4232
|
*/
|
|
4218
4233
|
dragTo(event) {
|
|
@@ -4220,8 +4235,8 @@ class FsListDraggableListDirective {
|
|
|
4220
4235
|
const elemIndex = this.lookupElementUnder(event);
|
|
4221
4236
|
const targetRow = this._rows[elemIndex];
|
|
4222
4237
|
if (this._multipleDraggableElementPreview) {
|
|
4223
|
-
this._multipleDraggableElementPreview.style.left = event.clientX
|
|
4224
|
-
this._multipleDraggableElementPreview.style.top = event.clientY
|
|
4238
|
+
this._multipleDraggableElementPreview.style.left = `${event.clientX}px`;
|
|
4239
|
+
this._multipleDraggableElementPreview.style.top = `${event.clientY}px`;
|
|
4225
4240
|
}
|
|
4226
4241
|
// Can not drag before first group and after last group
|
|
4227
4242
|
const swapWithBoundaryGroupElement = (elemIndex === 0 || elemIndex === this._rows.length - 1)
|
|
@@ -4244,7 +4259,7 @@ class FsListDraggableListDirective {
|
|
|
4244
4259
|
// FIXME
|
|
4245
4260
|
if (this._draggableElementPreview) {
|
|
4246
4261
|
const topOffset = (event.y || event.clientY) - (this._draggableElementHeight / 2);
|
|
4247
|
-
this._draggableElementPreview.style.top = topOffset
|
|
4262
|
+
this._draggableElementPreview.style.top = `${topOffset}px`;
|
|
4248
4263
|
}
|
|
4249
4264
|
}
|
|
4250
4265
|
}
|
|
@@ -4334,9 +4349,9 @@ class FsListDraggableListDirective {
|
|
|
4334
4349
|
const el = this._draggableElement.cloneNode(true);
|
|
4335
4350
|
const data = this._draggableElement.getBoundingClientRect();
|
|
4336
4351
|
if (!(this._isMultipleDrag)) {
|
|
4337
|
-
el.style.width = data.width
|
|
4338
|
-
el.style.left = data.left
|
|
4339
|
-
el.style.top = data.top
|
|
4352
|
+
el.style.width = `${data.width}px`;
|
|
4353
|
+
el.style.left = `${data.left}px`;
|
|
4354
|
+
el.style.top = `${data.top}px`;
|
|
4340
4355
|
el.classList.add('draggable');
|
|
4341
4356
|
this._containerElement.nativeElement.insertAdjacentElement('afterbegin', el);
|
|
4342
4357
|
this._draggableElementPreview = el;
|
|
@@ -4348,17 +4363,18 @@ class FsListDraggableListDirective {
|
|
|
4348
4363
|
this._containerElement.nativeElement.classList.add('drag-hidden');
|
|
4349
4364
|
const selectedCount = (_a = this._selectedRowsDirectives) === null || _a === void 0 ? void 0 : _a.length;
|
|
4350
4365
|
const previewBlock = this._renderer.createElement('div');
|
|
4351
|
-
previewBlock.style.left = data.left
|
|
4352
|
-
previewBlock.style.top = data.top
|
|
4366
|
+
previewBlock.style.left = `${data.left}px`;
|
|
4367
|
+
previewBlock.style.top = `${data.top}px`;
|
|
4353
4368
|
const text = this._renderer.createText(`${selectedCount} selected items`);
|
|
4354
4369
|
this._renderer.appendChild(previewBlock, text);
|
|
4355
|
-
this._renderer.addClass(previewBlock, 'preview-block');
|
|
4370
|
+
this._renderer.addClass(previewBlock, 'fs-list-preview-block');
|
|
4356
4371
|
this._renderer.appendChild(document.body, previewBlock);
|
|
4357
4372
|
this._multipleDraggableElementPreview = previewBlock;
|
|
4358
4373
|
}
|
|
4359
4374
|
}
|
|
4360
4375
|
/**
|
|
4361
4376
|
* Looking by stored row elements for overlapped row
|
|
4377
|
+
*
|
|
4362
4378
|
* @param event
|
|
4363
4379
|
*/
|
|
4364
4380
|
lookupElementUnder(event) {
|
|
@@ -4378,6 +4394,7 @@ class FsListDraggableListDirective {
|
|
|
4378
4394
|
}
|
|
4379
4395
|
/**
|
|
4380
4396
|
* Swap rows
|
|
4397
|
+
*
|
|
4381
4398
|
* @param index
|
|
4382
4399
|
*/
|
|
4383
4400
|
swapWithIndex(index) {
|
|
@@ -4410,7 +4427,7 @@ class FsListDraggableListDirective {
|
|
|
4410
4427
|
const draggableCells = Array.from(this._draggableElementPreview.querySelectorAll('td'));
|
|
4411
4428
|
Array.from(this._draggableElementPreview.querySelectorAll('td')).forEach((elem, index) => {
|
|
4412
4429
|
const dims = elem.getBoundingClientRect();
|
|
4413
|
-
draggableCells[index].style.width = dims.width
|
|
4430
|
+
draggableCells[index].style.width = `${dims.width}px`;
|
|
4414
4431
|
});
|
|
4415
4432
|
}
|
|
4416
4433
|
_waitUntilIsNotDone(doneResult) {
|
|
@@ -4435,6 +4452,7 @@ class FsListDraggableListDirective {
|
|
|
4435
4452
|
}
|
|
4436
4453
|
/**
|
|
4437
4454
|
* Fix background when mobile
|
|
4455
|
+
*
|
|
4438
4456
|
* @param e
|
|
4439
4457
|
*/
|
|
4440
4458
|
touchFix(e) {
|
|
@@ -4578,6 +4596,7 @@ class FsRowActionsComponent {
|
|
|
4578
4596
|
}
|
|
4579
4597
|
/**
|
|
4580
4598
|
* Track By for improve change detection
|
|
4599
|
+
*
|
|
4581
4600
|
* @param index
|
|
4582
4601
|
*/
|
|
4583
4602
|
trackByFn(index) {
|
|
@@ -4585,6 +4604,7 @@ class FsRowActionsComponent {
|
|
|
4585
4604
|
}
|
|
4586
4605
|
/**
|
|
4587
4606
|
* Emit that some row must be removed
|
|
4607
|
+
*
|
|
4588
4608
|
* @param action
|
|
4589
4609
|
* @param row
|
|
4590
4610
|
* @param event
|
|
@@ -4602,12 +4622,13 @@ class FsRowActionsComponent {
|
|
|
4602
4622
|
}
|
|
4603
4623
|
}
|
|
4604
4624
|
FsRowActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowActionsComponent, deps: [{ token: i1$2.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
|
|
4605
|
-
FsRowActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: { row: "row", index: "index", restoreMode: "restoreMode", rowActions: "rowActions", rowRemoved: "rowRemoved", menuRowActions: "menuRowActions", inlineRowActions: "inlineRowActions", restoreAction: "restoreAction" }, ngImport: i0, template: "<ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <fs-list-row-inline-action \n class=\"row-inline-action row-inline-action-{{action.type}}\"\n [action]=\"action\"\n [ngClass]=\"{'mobile-hide': action.menu === undefined}\"\n (clicked)=\"actionClick(action, row, $event)\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\">\n </fs-list-row-inline-action>\n </ng-container>\n</ng-container>\n\n<!-- Menu -->\n<fs-menu \n class=\"row-menu-action\"\n *ngIf=\"menuRowActions.length || (restoreMode && restoreAction)\"\n #menuRef>\n <!-- Case when we have usual menu actions -->\n <ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <ng-template \n class=\"hidden-mobile-menu-action\"\n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"action.menu !== undefined && !action.isShown\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [row]=\"row\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n\n <ng-container *ngFor=\"let action of menuRowActions; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"action.label | actionLabel:row\">\n <ng-container *ngFor=\"let subAction of action.rowActions\">\n <ng-template \n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [target]=\"subAction.routerLink?.target\"\n [hidden]=\"!subAction.isShown\"\n (click)=\"actionClick(subAction, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"subAction.icon\"\n [label]=\"subAction.label\"\n [row]=\"row\"\n [file]=\"subAction.fileConfig\"\n (fileSelect)=\"subAction.fileConfig.select($event, row, index)\"\n (fileError)=\"subAction.fileConfig.error && subAction.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template \n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"!action.isShown\"\n (click)=\"actionClick(action, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [row]=\"row\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- Case when we have restore mode enabled and must hide menu actions -->\n <ng-container *ngIf=\"restoreMode && restoreAction\">\n <ng-template fs-menu-item (click)=\"actionClick(restoreAction, row, $event, menuRef)\">\n <mat-icon *ngIf=\"restoreAction.icon\">{{restoreAction.icon}}</mat-icon>\n {{restoreAction.label | actionLabel:row}}\n </ng-template>\n </ng-container>\n</fs-menu>\n", components: [{ type: FsRowInlineActionComponent, selector: "fs-list-row-inline-action", inputs: ["action"], outputs: ["clicked", "fileSelect"] }, { type: i2$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { type: FsRowMenuActionComponent, selector: "fs-list-row-menu-action", inputs: ["row", "icon", "label", "file"], outputs: ["fileSelect", "fileError"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], pipes: { "actionLabel": ActionLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4625
|
+
FsRowActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: { row: "row", index: "index", restoreMode: "restoreMode", rowActions: "rowActions", rowRemoved: "rowRemoved", menuRowActions: "menuRowActions", inlineRowActions: "inlineRowActions", restoreAction: "restoreAction" }, ngImport: i0, template: "<ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <fs-list-row-inline-action \n class=\"row-inline-action row-inline-action-{{action.type}}\"\n [action]=\"action\"\n [ngClass]=\"{'mobile-hide': action.menu === undefined}\"\n (clicked)=\"actionClick(action, row, $event)\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\">\n </fs-list-row-inline-action>\n </ng-container>\n</ng-container>\n\n<!-- Menu -->\n<fs-menu \n class=\"row-menu-action\"\n *ngIf=\"menuRowActions.length || (restoreMode && restoreAction)\"\n #menuRef>\n <!-- Case when we have usual menu actions -->\n <ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <ng-template \n class=\"hidden-mobile-menu-action\"\n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"action.menu !== undefined && !action.isShown\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [row]=\"row\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n\n <ng-container *ngFor=\"let action of menuRowActions; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"action.label | actionLabel:row\">\n <ng-container *ngFor=\"let subAction of action.rowActions\">\n <ng-template \n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [target]=\"subAction.routerLink?.target\"\n [hidden]=\"!subAction.isShown\"\n (click)=\"actionClick(subAction, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"subAction.icon\"\n [label]=\"subAction.label\"\n [row]=\"row\"\n [file]=\"subAction.fileConfig\"\n (fileSelect)=\"subAction.fileConfig.select($event, row, index)\"\n (fileError)=\"subAction.fileConfig.error && subAction.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template \n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"!action.isShown\"\n (click)=\"actionClick(action, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [row]=\"row\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- Case when we have restore mode enabled and must hide menu actions -->\n <ng-container *ngIf=\"restoreMode && restoreAction\">\n <ng-template fs-menu-item (click)=\"actionClick(restoreAction, row, $event, menuRef)\">\n <mat-icon *ngIf=\"restoreAction.icon\">{{restoreAction.icon}}</mat-icon>\n {{restoreAction.label | actionLabel:row}}\n </ng-template>\n </ng-container>\n</fs-menu>\n", styles: [":host ::ng-deep fs-list-row-inline-action{margin-left:5px}:host ::ng-deep fs-list-row-inline-action:first-child{margin-left:0}::ng-deep .hidden-mobile-menu-action{display:none!important}\n"], components: [{ type: FsRowInlineActionComponent, selector: "fs-list-row-inline-action", inputs: ["action"], outputs: ["clicked", "fileSelect"] }, { type: i2$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { type: FsRowMenuActionComponent, selector: "fs-list-row-menu-action", inputs: ["row", "icon", "label", "file"], outputs: ["fileSelect", "fileError"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], pipes: { "actionLabel": ActionLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4606
4626
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowActionsComponent, decorators: [{
|
|
4607
4627
|
type: Component,
|
|
4608
4628
|
args: [{
|
|
4609
4629
|
selector: 'fs-list-row-actions',
|
|
4610
4630
|
templateUrl: './actions.component.html',
|
|
4631
|
+
styleUrls: ['./actions.component.scss'],
|
|
4611
4632
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4612
4633
|
}]
|
|
4613
4634
|
}], ctorParameters: function () { return [{ type: i1$2.FsPrompt }]; }, propDecorators: { row: [{
|
|
@@ -4671,10 +4692,12 @@ class FsRowComponent {
|
|
|
4671
4692
|
get rowCssClass() {
|
|
4672
4693
|
var _a, _b, _c;
|
|
4673
4694
|
let cls = 'fs-list-row';
|
|
4674
|
-
if (this.rowIndex % 2 !== 0)
|
|
4695
|
+
if (this.rowIndex % 2 !== 0) {
|
|
4675
4696
|
cls += ' fs-list-row-odd';
|
|
4676
|
-
|
|
4697
|
+
}
|
|
4698
|
+
if (this.rowIndex % 2 === 0) {
|
|
4677
4699
|
cls += ' fs-list-row-even';
|
|
4700
|
+
}
|
|
4678
4701
|
if ((_a = this.row) === null || _a === void 0 ? void 0 : _a.isGroup) {
|
|
4679
4702
|
cls += ' fs-list-row-group';
|
|
4680
4703
|
}
|
|
@@ -4705,8 +4728,9 @@ class FsRowComponent {
|
|
|
4705
4728
|
else if (typeof resultClass === 'object') {
|
|
4706
4729
|
const keys = Object.keys(resultClass);
|
|
4707
4730
|
for (const k of keys) {
|
|
4708
|
-
if (resultClass[k] === true)
|
|
4731
|
+
if (resultClass[k] === true) {
|
|
4709
4732
|
cls += ` ${k}`;
|
|
4733
|
+
}
|
|
4710
4734
|
}
|
|
4711
4735
|
}
|
|
4712
4736
|
}
|
|
@@ -4752,12 +4776,15 @@ class FsRowComponent {
|
|
|
4752
4776
|
}
|
|
4753
4777
|
}
|
|
4754
4778
|
ngOnDestroy() {
|
|
4755
|
-
this._eventListeners.forEach((listener) => {
|
|
4779
|
+
this._eventListeners.forEach((listener) => {
|
|
4780
|
+
listener();
|
|
4781
|
+
});
|
|
4756
4782
|
this._destroy$.next();
|
|
4757
4783
|
this._destroy$.complete();
|
|
4758
4784
|
}
|
|
4759
4785
|
/**
|
|
4760
4786
|
* Select row by checkbox
|
|
4787
|
+
*
|
|
4761
4788
|
* @param event
|
|
4762
4789
|
*/
|
|
4763
4790
|
selectRow(event) {
|
|
@@ -4766,6 +4793,7 @@ class FsRowComponent {
|
|
|
4766
4793
|
}
|
|
4767
4794
|
/**
|
|
4768
4795
|
* Track By for improve change detection
|
|
4796
|
+
*
|
|
4769
4797
|
* @param index
|
|
4770
4798
|
*/
|
|
4771
4799
|
trackByFn(index) {
|
|
@@ -4791,7 +4819,7 @@ class FsRowComponent {
|
|
|
4791
4819
|
this.rowEvents[event]({
|
|
4792
4820
|
event: evt,
|
|
4793
4821
|
row: this.row.data,
|
|
4794
|
-
rowIndex: this.rowIndex
|
|
4822
|
+
rowIndex: this.rowIndex,
|
|
4795
4823
|
});
|
|
4796
4824
|
}
|
|
4797
4825
|
});
|
|
@@ -4853,13 +4881,14 @@ class FsRowComponent {
|
|
|
4853
4881
|
}
|
|
4854
4882
|
}
|
|
4855
4883
|
FsRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: FsListDraggableListDirective }], target: i0.ɵɵFactoryTarget.Component });
|
|
4856
|
-
FsRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowComponent, selector: "[fs-list-row]", inputs: { row: "row", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", hasRowActions: "hasRowActions", rowEvents: "rowEvents", rowClass: "rowClass", restoreMode: "restoreMode", rowIndex: "rowIndex", columns: "columns", selection: "selection", rowRemoved: "rowRemoved", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy", reorderMultiple: "reorderMultiple" }, host: { properties: { "attr.role": "this.role", "class.drag-row": "this.reorderEnabled", "class.multiple-selection": "this.isMultipleSelection", "class": "this.rowCssClass" } }, viewQueries: [{ propertyName: "cellRefs", predicate: ["td"], descendants: true }], ngImport: i0, template: "<!-- Drag -->\n<ng-container *ngIf=\"leftDragDropEnabled\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Selection -->\n<ng-container *ngIf=\"selection && !(selection.disabled$ | async)\">\n <td class=\"fs-list-col fs-list-col-selection\">\n <ng-container *ngIf=\"!row.isGroupFooter\">\n <mat-checkbox (change)=\"selectRow($event)\"\n
|
|
4884
|
+
FsRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowComponent, selector: "[fs-list-row]", inputs: { row: "row", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", hasRowActions: "hasRowActions", rowEvents: "rowEvents", rowClass: "rowClass", restoreMode: "restoreMode", rowIndex: "rowIndex", columns: "columns", selection: "selection", rowRemoved: "rowRemoved", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy", reorderMultiple: "reorderMultiple" }, host: { properties: { "attr.role": "this.role", "class.drag-row": "this.reorderEnabled", "class.multiple-selection": "this.isMultipleSelection", "class": "this.rowCssClass" } }, viewQueries: [{ propertyName: "cellRefs", predicate: ["td"], descendants: true }], ngImport: i0, template: "<!-- Drag -->\n<ng-container *ngIf=\"leftDragDropEnabled\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Selection -->\n<ng-container *ngIf=\"selection && !(selection.disabled$ | async)\">\n <td class=\"fs-list-col fs-list-col-selection\">\n <ng-container *ngIf=\"!row.isGroupFooter\">\n <mat-checkbox \n (change)=\"selectRow($event)\"\n [checked]=\"selected\"\n [indeterminate]=\"indeterminateSelected\">\n </mat-checkbox>\n </ng-container>\n </td>\n</ng-container>\n\n<!-- Content -->\n<ng-container *ngFor=\"let column of columns; trackBy: trackByFn; let isFirst = first\">\n <td fs-cell\n *ngIf=\"(isGroupRow && !column.groupHeaderColspanned)\n || (isGroupFooterRow && !column.groupFooterColspanned)\n || (!isGroupRow && !isGroupFooterRow && !column.cellColspanned)\"\n [column]=\"column\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [class]=\"(isGroupRow && column.groupHeaderConfigs.classesString)\n || (isGroupFooterRow && column.groupFooterConfigs.classesString)\n || (!isGroupFooterRow && column.cellConfigs.classesString)\"\n [ngClass]=\"{ 'primary-col': isFirst }\"\n [attr.colspan]=\"(isGroupRow && column.groupHeaderConfigs.colspan)\n || (isGroupFooterRow && column.groupFooterConfigs.colspan)\n || column.cellConfigs.colspan\"\n [attr.width]=\"column.width\"\n >\n </td>\n</ng-container>\n\n<!-- Drag -->\n<ng-container *ngIf=\"rightDragDropEnabled\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Row Actions -->\n<td *ngIf=\"hasRowActions && !(reorderEnabled && reorderStrategy === ReorderStrategy.Manual)\" class=\"fs-list-col row-actions\">\n <ng-container *ngIf=\"!isGroupFooterRow\">\n <fs-list-row-actions\n [row]=\"row\"\n [index]=\"rowIndex\"\n [rowActions]=\"rowActions\"\n [menuRowActions]=\"menuRowActions\"\n [inlineRowActions]=\"inlineRowActions\"\n [restoreAction]=\"restoreAction\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\">\n </fs-list-row-actions>\n </ng-container>\n</td>\n\n<ng-template #dragCell>\n <ng-container *ngIf=\"dragCellVisible && !isGroupFooterRow; else emptyCell\">\n <td \n class=\"fs-list-col drag-col\"\n [class.drag-disabled]=\"isDragDisabled\"\n (mousedown)=\"dragStart($event)\"\n (touchstart)=\"dragStart($event)\">\n <mat-icon>drag_handle</mat-icon>\n </td>\n </ng-container>\n <ng-template #emptyCell>\n <td class=\"fs-list-col drag-col\"></td>\n </ng-template>\n</ng-template>\n", styles: [":host.drag-hidden{display:none}:host.draggable{opacity:.8;position:fixed;z-index:9999;box-shadow:2px 2px 2px #9e9e9ea6;border-radius:5px}:host.draggable td{border:none;background-color:#fff}:host.draggable-elem td{background-color:#c3c3c3}td.drag-col{width:24px;text-align:center;cursor:grab}td.drag-col.drag-disabled{opacity:.4;cursor:no-drop}td.drag-col mat-icon{display:flex}td.fs-list-col-selection{padding:10px}td.row-actions{width:1%;white-space:nowrap;padding-right:10px;overflow:hidden}td.row-actions .row-inline-action{margin-left:12px;display:inline-block}td.row-actions .row-inline-action:first-child{margin-left:0}td.row-actions .row-inline-action-icon,td.row-actions .row-inline-action-fab,td.row-actions .row-inline-action-mini-fab,td.row-actions .row-menu-action{width:35px;justify-content:center;align-items:center}td.left{text-align:left}td.center{text-align:center}td.right{text-align:right}\n"], components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: FsCellComponent, selector: "[fs-cell]", inputs: ["column", "row", "rowIndex"] }, { type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: ["row", "index", "restoreMode", "rowActions", "rowRemoved", "menuRowActions", "inlineRowActions", "restoreAction"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4857
4885
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowComponent, decorators: [{
|
|
4858
4886
|
type: Component,
|
|
4859
4887
|
args: [{
|
|
4860
4888
|
selector: '[fs-list-row]',
|
|
4861
|
-
templateUrl: 'row.component.html',
|
|
4862
|
-
|
|
4889
|
+
templateUrl: './row.component.html',
|
|
4890
|
+
styleUrls: ['./row.component.scss'],
|
|
4891
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4863
4892
|
}]
|
|
4864
4893
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }, { type: FsListDraggableListDirective }]; }, propDecorators: { role: [{
|
|
4865
4894
|
type: HostBinding,
|
|
@@ -4992,15 +5021,16 @@ class FsBodyComponent {
|
|
|
4992
5021
|
}
|
|
4993
5022
|
}
|
|
4994
5023
|
FsBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4995
|
-
FsBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsBodyComponent, selector: "[fs-list-body]", inputs: { rows: "rows", columns: "columns", hasFooter: "hasFooter", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", rowEvents: "rowEvents", rowClass: "rowClass", hasRowActions: "hasRowActions", selection: "selection", restoreMode: "restoreMode", rowRemoved: "rowRemoved", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy", reorderMultiple: "reorderMultiple" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsRowComponent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container *ngFor=\"let row of rows; let i = index;\">\n <tr
|
|
5024
|
+
FsBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsBodyComponent, selector: "[fs-list-body]", inputs: { rows: "rows", columns: "columns", hasFooter: "hasFooter", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", rowEvents: "rowEvents", rowClass: "rowClass", hasRowActions: "hasRowActions", selection: "selection", restoreMode: "restoreMode", rowRemoved: "rowRemoved", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy", reorderMultiple: "reorderMultiple" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsRowComponent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rowsContainer", first: true, predicate: ["rowsContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container *ngFor=\"let row of rows; let i = index;\">\n <tr\n fs-list-row\n fsListDraggableRow\n [row]=\"row\"\n [rowIndex]=\"i\"\n [columns]=\"columns\"\n [rowActionsRaw]=\"rowActionsRaw\"\n [groupActionsRaw]=\"groupActionsRaw\"\n [hasRowActions]=\"hasRowActions\"\n [rowEvents]=\"rowEvents\"\n [rowClass]=\"rowClass\"\n [selection]=\"selection\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"\n [reorderMultiple]=\"reorderMultiple\">\n </tr>\n</ng-container>\n", styles: [":host.drag-hidden .drag-col{opacity:0!important;cursor:default}:host.disabled{opacity:.4;pointer-events:none}\n"], components: [{ type: FsRowComponent, selector: "[fs-list-row]", inputs: ["row", "rowActionsRaw", "groupActionsRaw", "hasRowActions", "rowEvents", "rowClass", "restoreMode", "rowIndex", "columns", "selection", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }], directives: [{ type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: FsListDraggableRowDirective, selector: "[fsListDraggableRow]", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4996
5025
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsBodyComponent, decorators: [{
|
|
4997
5026
|
type: Component,
|
|
4998
5027
|
args: [{
|
|
4999
5028
|
selector: '[fs-list-body]',
|
|
5000
|
-
templateUrl: 'body.component.html',
|
|
5001
|
-
|
|
5029
|
+
templateUrl: './body.component.html',
|
|
5030
|
+
styleUrls: ['./body.component.scss'],
|
|
5031
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5002
5032
|
}]
|
|
5003
|
-
}],
|
|
5033
|
+
}], propDecorators: { rows: [{
|
|
5004
5034
|
type: Input
|
|
5005
5035
|
}], columns: [{
|
|
5006
5036
|
type: Input
|
|
@@ -5088,15 +5118,16 @@ class FsFooterComponent {
|
|
|
5088
5118
|
}
|
|
5089
5119
|
}
|
|
5090
5120
|
FsFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5091
|
-
FsFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFooterComponent, selector: "[fs-list-footer]", inputs: { hasRowActions: "hasRowActions", columns: "columns", selection: "selection", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy" }, ngImport: i0, template: "<tr fs-list-footer-row\n [columns]=\"columns\"\n [hasRowActions]=\"hasRowActions\"\n [selection]=\"selection\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\"
|
|
5121
|
+
FsFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFooterComponent, selector: "[fs-list-footer]", inputs: { hasRowActions: "hasRowActions", columns: "columns", selection: "selection", activeFiltersCount: "activeFiltersCount", reorderEnabled: "reorderEnabled", reorderPosition: "reorderPosition", reorderStrategy: "reorderStrategy" }, ngImport: i0, template: "<tr \n fs-list-footer-row\n [columns]=\"columns\"\n [hasRowActions]=\"hasRowActions\"\n [selection]=\"selection\"\n [activeFiltersCount]=\"activeFiltersCount\"\n [reorderEnabled]=\"reorderEnabled\"\n [reorderPosition]=\"reorderPosition\"\n [reorderStrategy]=\"reorderStrategy\">\n</tr>\n", styles: [""], components: [{ type: FsFooterRowComponent, selector: "[fs-list-footer-row]", inputs: ["hasRowActions", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5092
5122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFooterComponent, decorators: [{
|
|
5093
5123
|
type: Component,
|
|
5094
5124
|
args: [{
|
|
5095
5125
|
selector: '[fs-list-footer]',
|
|
5096
|
-
templateUrl: 'footer.component.html',
|
|
5097
|
-
|
|
5126
|
+
templateUrl: './footer.component.html',
|
|
5127
|
+
styleUrls: ['./footer.component.scss'],
|
|
5128
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5098
5129
|
}]
|
|
5099
|
-
}],
|
|
5130
|
+
}], propDecorators: { hasRowActions: [{
|
|
5100
5131
|
type: Input
|
|
5101
5132
|
}], columns: [{
|
|
5102
5133
|
type: Input
|
|
@@ -5497,7 +5528,7 @@ FsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
5497
5528
|
GroupExpandNotifierService,
|
|
5498
5529
|
PersistanceController,
|
|
5499
5530
|
ReorderController,
|
|
5500
|
-
], queries: [{ propertyName: "_emptyStateTemplate", first: true, predicate: FsListEmptyStateDirective, descendants: true, read: TemplateRef }, { propertyName: "headingTemplate", first: true, predicate: FsListHeadingDirective, descendants: true, read: TemplateRef }, { propertyName: "headingContainerTemplate", first: true, predicate: FsListHeadingContainerDirective, descendants: true, read: TemplateRef }, { propertyName: "subheadingTemplate", first: true, predicate: FsListSubheadingDirective, descendants: true, read: TemplateRef }, { propertyName: "columnTemplates", predicate: FsListColumnDirective }], viewQueries: [{ propertyName: "filterReference", first: true, predicate: FilterComponent, descendants: true }], ngImport: i0, template: "<div class=\"fs-list-container\"\n [ngClass]=\"{\n 'has-filter-keyword': hasFilterKeyword,\n 'has-filters': list.filterConfig?.items.length,\n 'has-heading': list.heading || headingTemplate,\n 'has-status': hasStatus,\n 'has-chips': list.chips,\n 'has-actions': list.actions.hasActions,\n 'first-load': firstLoad,\n 'loading': list.loading$ | async\n }\">\n <ng-template [ngTemplateOutlet]=\"listContainerContent\"></ng-template>\n</div>\n\n<ng-template #listContainerContent>\n <ng-container *ngIf=\"list.dataController.visibleRows$ | async as listData\">\n <div class=\"fs-list-header-container\">\n <div\n class=\"fs-list-header\"\n [ngClass]=\"{ 'no-wrap': reorderController.manualReorderActivated || !list.filterConfig?.items.length }\">\n <ng-container\n *ngIf=\"hasFilterKeyword\"\n [ngTemplateOutlet]=\"heading\">\n </ng-container>\n <fs-filter\n class=\"fs-list-filter\"\n *ngIf=\"list.filterConfig\"\n [filter]=\"list.filterConfig\"\n [showSortBy]=\"!list.status\"\n [showFilterInput]=\"list.filterInput\"\n (ready)=\"filterReady()\">\n <ng-template fsFilterStatusBar>\n <ng-container\n *ngIf=\"!hasFilterKeyword\"\n [ngTemplateOutlet]=\"heading\">\n </ng-container>\n <ng-container *ngIf=\"hasStatus\">\n <fs-list-status\n class=\"fs-list-status\"\n [ngClass]=\"{ 'hidden-mobile': !list.status }\"\n [rows]=\"listData\"\n [sorting]=\"list.sorting\"\n [paging]=\"list.paging\"\n [firstLoad]=\"firstLoad\"\n [scrollable]=\"list.scrollable || list.paging.loadMoreEnabled\">\n </fs-list-status>\n </ng-container>\n </ng-template>\n </fs-filter>\n </div>\n </div>\n\n <ng-content select=\"[fs-list-content]\"></ng-content>\n\n <!-- Table implementation -->\n <div class=\"fs-list-table-container\">\n <ng-container *ngIf=\"!firstLoad && listData.length > 0 && !list.emptyStateEnabled\">\n <table \n class=\"fs-list-table\" \n role=\"grid\" \n [fsListContentInit]=\"list.afterContentInit\" \n [ngClass]=\"{\n 'style-card': list.style === 'card',\n 'style-line': list.style ?? 'line' === 'line'\n }\">\n <thead\n fs-list-head\n class=\"fs-list-head\"\n role=\"rowgroup\"\n *ngIf=\"list.columns.hasHeader\"\n [ngClass]=\"list.columns.theadClass\"\n [columns]=\"list.columns.visibleColumns$ | async\"\n [sorting]=\"list.sorting\"\n [selection]=\"list.selection\"\n [hasRowActions]=\"list.hasRowActions\"\n [activeFiltersCount]=\"list.activeFiltersCount$ | async\"\n [reorderEnabled]=\"reorderController.enabled$ | async\"\n [reorderPosition]=\"reorderController.position$ | async\"\n [reorderStrategy]=\"reorderController.strategy$ | async\">\n </thead>\n\n <tbody\n fs-list-body\n fsListDraggableList\n class=\"fs-list-body\"\n role=\"rowgroup\"\n [class.disabled]=\"!!(reorderController.reorderDisabled$ | async)\"\n [rows]=\"listData\"\n [rowActionsRaw]=\"list.rowActionsRaw\"\n [groupActionsRaw]=\"list.groupActionsRaw\"\n [hasRowActions]=\"list.hasRowActions\"\n [rowEvents]=\"list.rowEvents\"\n [rowClass]=\"list.rowClass\"\n [columns]=\"list.columns.visibleColumns$ | async\"\n [restoreMode]=\"list.restoreMode\"\n [selection]=\"list.selection\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"list.activeFiltersCount$ | async\"\n [reorderEnabled]=\"reorderController.enabled$ | async\"\n [reorderPosition]=\"reorderController.position$ | async\"\n [reorderStrategy]=\"reorderController.strategy$ | async\"\n [reorderMultiple]=\"reorderController.multiple\">\n </tbody>\n\n <tfoot\n fs-list-footer\n class=\"fs-list-footer\"\n *ngIf=\"list.columns.hasFooter\"\n [columns]=\"list.columns.visibleColumns$ | async\"\n [selection]=\"list.selection\"\n [hasRowActions]=\"list.hasRowActions\"\n [activeFiltersCount]=\"list.activeFiltersCount$ | async\"\n [reorderEnabled]=\"reorderController.enabled$ | async\"\n [reorderPosition]=\"reorderController.position$ | async\"\n [reorderStrategy]=\"reorderController.strategy$ | async\">\n </tfoot>\n </table>\n </ng-container>\n <fs-list-loader\n *ngIf=\"firstLoad\"\n [columns]=\"list.columns.columns\"\n [loaderLines]=\"loaderLines\">\n </fs-list-loader>\n </div>\n\n <fs-list-pagination\n *ngIf=\"paginatorVisible\"\n class=\"fs-list-pagination\"\n [rows]=\"listData\"\n [pagination]=\"list.paging\">\n </fs-list-pagination>\n\n <ng-container *ngIf=\"!firstLoad\">\n <div\n *ngIf=\"listData.length === 0\"\n class=\"fs-list-no-results-container\">\n <div\n *ngIf=\"list.noResults?.message && !list.emptyStateEnabled\"\n class=\"fs-list-no-results\">\n {{ list.noResults?.message }}\n </div>\n <ng-container *ngIf=\"list.emptyStateEnabled\">\n <ng-template [ngTemplateOutlet]=\"list.emptyStateTemplate\"></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #heading>\n <div class=\"heading-container\" *ngIf=\"headingContainerTemplate || list.heading || list.subheading || headingTemplate\">\n <ng-container *ngIf=\"headingContainerTemplate; else headingContainer\">\n <ng-container\n [ngTemplateOutlet]=\"headingContainerTemplate\"\n [ngTemplateOutletContext]=\"{ template: headingContainer }\">\n </ng-container>\n </ng-container>\n <ng-template #headingContainer>\n <h2 class=\"heading\" *ngIf=\"list.heading || headingTemplate\">\n {{list.heading}}\n <ng-container [ngTemplateOutlet]=\"headingTemplate\"></ng-container>\n </h2>\n <div class=\"small subheading\" *ngIf=\"list.subheading || subheadingTemplate\">\n {{list.subheading}}\n <ng-container [ngTemplateOutlet]=\"subheadingTemplate\"></ng-container>\n </div>\n </ng-template>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .fs-list-swap-restricted{opacity:.5}:host ::ng-deep .fs-list-no-drop{cursor:no-drop}:host ::ng-deep .hidden{display:none}@media print{:host ::ng-deep .fs-list-row-group{page-break-after:avoid}:host ::ng-deep .fs-list-row-group-child{page-break-before:avoid}:host ::ng-deep .fs-list-row-group-footer{page-break-before:avoid}}.fs-list-container{width:100%}.fs-list-container:not(.has-filters):not(.has-actions):not(.has-heading) .fs-list-header-container{display:none}.fs-list-container:not(.has-filter-keyword) .fs-list-header{display:flex;margin-bottom:4px}.fs-list-container:not(.has-filter-keyword) .fs-list-header .heading-container{flex:1}.fs-list-container:not(.has-filter-keyword) .fs-list-header fs-filter{display:flex}.fs-list-container.has-filters .heading-container{margin-bottom:4px}.fs-list-container.loading .fs-list-status,.fs-list-container.loading .fs-list-body,.fs-list-container.loading .fs-list-head,.fs-list-container.loading .fs-list-footer,.fs-list-container.loading fs-list-pagination,.fs-list-container.loading ::ng-deep fs-filter-chips,.fs-list-container.loading .fs-list-no-results-container,.fs-list-container.first-load .fs-list-status,.fs-list-container.first-load .fs-list-body,.fs-list-container.first-load .fs-list-head,.fs-list-container.first-load .fs-list-footer,.fs-list-container.first-load fs-list-pagination,.fs-list-container.first-load ::ng-deep fs-filter-chips,.fs-list-container.first-load .fs-list-no-results-container{opacity:.4;pointer-events:none}.fs-list-container.first-load ::ng-deep fs-filter-chips .fs-chip{color:transparent}.fs-list-container.first-load ::ng-deep fs-filter-chips .fs-chip .remove{visibility:hidden}.fs-list-container.has-actions .fs-list-actions{margin-left:5px}.fs-list-filter{margin-bottom:0;position:initial!important;display:block;width:100%}.fs-list-no-results-container .fs-list-no-results{text-align:center;color:#999;padding:10px 0}.fs-list-header .heading-container{display:flex;flex-direction:column;justify-content:center}.fs-list-header .heading{margin:0}.fs-list-header h2+.subheading{margin:2px 0 0}.fs-list-header .fs-list-actions{white-space:nowrap;float:right}.fs-list-header .fs-list-actions .menu-button{width:36px;height:36px;line-height:36px}.fs-list-header .action-button{margin-left:5px}.fs-list-header .action-button:first-child{margin-left:0}.fs-list-header .mat-button{margin-top:0;margin-bottom:0;margin-right:0}.fs-list-table-container{width:100%;overflow:auto}::ng-deep .preview-block{position:fixed;height:30px;width:200px;background:grey;display:flex;justify-content:center;align-items:center;z-index:1000;box-shadow:2px 2px 2px #9e9e9ea6;border-radius:6px}::ng-deep .fs-list{display:block;width:100%}::ng-deep .fs-list-table{border-spacing:0;display:table;width:100%;border-collapse:collapse}::ng-deep .fs-list-table .fs-list-head{display:table-header-group}::ng-deep .fs-list-table .fs-list-head .fs-list-col{color:#999;padding:8px;font-weight:normal;color:#8f8f8f;font-size:85%}::ng-deep .fs-list-table .fs-list-head .fs-list-col.fs-list-col-selection{width:1%;text-align:left}::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting{cursor:pointer}::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting:hover{background-color:#f6f6f6}::ng-deep .fs-list-table .fs-list-head .fs-list-col .wrap{display:inline-flex;vertical-align:middle;white-space:nowrap}::ng-deep .fs-list-table .fs-list-head .fs-list-col .wrap mat-icon{font-size:14px;display:block;height:14px;width:14px}::ng-deep .fs-list-table .fs-list-head .fs-list-col .wrap .direction{margin-left:5px}::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting{background-image:none}::ng-deep .fs-list-table .fs-list-body{display:table-row-group;position:relative}::ng-deep .fs-list-table .fs-list-body.drag-hidden .drag-col{opacity:0!important;cursor:default}::ng-deep .fs-list-table .fs-list-body.disabled{opacity:.4;pointer-events:none}::ng-deep .fs-list-table .fs-list-body .fs-list-row:hover .fs-list-col{background-color:#f6f6f6}::ng-deep .fs-list-table .fs-list-head .fs-list-row,::ng-deep .fs-list-table .fs-list-body .fs-list-row,::ng-deep .fs-list-table .fs-list-footer .fs-list-row{display:table-row}::ng-deep .fs-list-table .fs-list-head .fs-list-row.drag-hidden,::ng-deep .fs-list-table .fs-list-body .fs-list-row.drag-hidden,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.drag-hidden{display:none}::ng-deep .fs-list-table .fs-list-head .fs-list-row.multiple-selection,::ng-deep .fs-list-table .fs-list-body .fs-list-row.multiple-selection,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.multiple-selection{background-color:#2196f380}::ng-deep .fs-list-table .fs-list-head .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.multiple-selection .fs-list-col{background-color:#2196f380}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col{display:table-cell;padding:8px;vertical-align:middle;outline:none;text-align:left}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.drag-col{width:24px;text-align:center;cursor:grab}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.drag-col.drag-disabled{opacity:.4;cursor:no-drop}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.drag-col mat-icon{display:flex}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.fs-list-col-selection{padding:10px}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.row-actions{width:1%;white-space:nowrap;padding-right:10px;overflow:hidden}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.row-actions .row-inline-action{margin-left:12px;display:inline-block}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child{margin-left:0}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.row-actions .row-menu-action{width:35px;justify-content:center;align-items:center}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.left{text-align:left}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.center{text-align:center}::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.right{text-align:right}::ng-deep .fs-list-table .fs-list-head .fs-list-row.draggable,::ng-deep .fs-list-table .fs-list-body .fs-list-row.draggable,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.draggable{position:fixed;z-index:9999;box-shadow:2px 2px 2px #9e9e9ea6;border-radius:5px;background-color:#f6f6f6}::ng-deep .fs-list-table .fs-list-head .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.draggable .fs-list-col{border:none}::ng-deep .fs-list-table tfoot td{padding:8px}::ng-deep .reorder-in-progress{-webkit-user-select:none;user-select:none}::ng-deep .draggable-elem td{opacity:.2}::ng-deep .hidden-mobile-menu-action{display:none!important}::ng-deep .hidden-mobile{display:none!important}@media only screen and (max-width: 600px){::ng-deep .fs-list-filter .inline-actions{top:initial!important;position:initial!important}::ng-deep .fs-list-filter .inline-actions .action-filter{margin-bottom:0!important}::ng-deep .fs-list-header .filter-input-field .mat-form-field-wrapper{padding:0!important}::ng-deep .fs-list-header.has-filters{flex-flow:row wrap}}@media only screen and (max-width: 768px){::ng-deep .show-mobile{display:inline-block!important}::ng-deep .fs-list-actions .action-button{display:none}::ng-deep .row-inline-action.mobile-hide{display:none}::ng-deep .hidden-mobile-menu-action{display:block!important}}:host(.fs-list-no-highlight) ::ng-deep .fs-list-row:hover .fs-list-col{background-color:initial}::ng-deep .fs-list-table.style-line tbody .fs-list-col,::ng-deep .fs-list-table:not(.style-card) tbody .fs-list-col{box-sizing:border-box;border-top:1px solid #ddd}::ng-deep .fs-list-table.style-line tbody .fs-list-row:first-child .fs-list-col,::ng-deep .fs-list-table:not(.style-card) tbody .fs-list-row:first-child .fs-list-col{border-top:2px solid #ddd}::ng-deep .fs-list-table.style-line tbody .fs-list-row:last-child .fs-list-col,::ng-deep .fs-list-table:not(.style-card) tbody .fs-list-row:last-child .fs-list-col{border-bottom:2px solid #ddd}::ng-deep .fs-list-table.style-line .fs-list-row:hover .fs-list-col,::ng-deep .fs-list-table:not(.style-card) .fs-list-row:hover .fs-list-col{background-color:#f6f6f6}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging thead th,::ng-deep .fs-list-table:not(.style-card) .fs-list-container.has-dragging thead th{border-bottom:2px solid #ddd}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging tbody tr:nth-child(2) td,::ng-deep .fs-list-table:not(.style-card) .fs-list-container.has-dragging tbody tr:nth-child(2) td{border-top:none}::ng-deep .fs-list-table.style-card{border-spacing:0 8px;border-collapse:separate}::ng-deep .fs-list-table.style-card tbody.fs-list-body tr.fs-list-row.fs-list-row-body{background-color:#fafafa;border-radius:10px}::ng-deep .fs-list-table.style-card tbody.fs-list-body tr.fs-list-row td.fs-list-col{border:none!important;padding:8px 16px}::ng-deep .fs-list-table.style-card tbody.fs-list-body tr.fs-list-row td.fs-list-col:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}::ng-deep .fs-list-table.style-card tbody.fs-list-body tr.fs-list-row td.fs-list-col:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}\n"], components: [{ type: i2$2.FilterComponent, selector: "fs-filter", inputs: ["config", "filter", "showSortBy", "showFilterInput"], outputs: ["closed", "opened", "ready"] }, { type: FsStatusComponent, selector: "fs-list-status", inputs: ["paging", "sorting", "rows", "scrollable", "firstLoad"] }, { type: FsHeadComponent, selector: "[fs-list-head]", inputs: ["sorting", "columns", "hasRowActions", "selection", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }, { type: FsBodyComponent, selector: "[fs-list-body]", inputs: ["rows", "columns", "hasFooter", "rowActionsRaw", "groupActionsRaw", "rowEvents", "rowClass", "hasRowActions", "selection", "restoreMode", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }, { type: FsFooterComponent, selector: "[fs-list-footer]", inputs: ["hasRowActions", "columns", "selection", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }, { type: FsListLoaderComponent, selector: "fs-list-loader", inputs: ["columns", "loaderLines"] }, { type: FsPaginationComponent, selector: "fs-list-pagination", inputs: ["pagination", "rows"] }], directives: [{ type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$2.FilterStatusBarDirective, selector: "[fsFilterStatusBar]" }, { type: FsListContentInitDirective, selector: "[fsListContentInit]", inputs: ["fsListContentInit"] }, { type: FsListDraggableListDirective, selector: "[fsListDraggableList]", inputs: ["rows"] }, { type: FsListFooterDirective, selector: "[fs-list-footer]", inputs: ["colspan", "align", "class"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5531
|
+
], queries: [{ propertyName: "_emptyStateTemplate", first: true, predicate: FsListEmptyStateDirective, descendants: true, read: TemplateRef }, { propertyName: "headingTemplate", first: true, predicate: FsListHeadingDirective, descendants: true, read: TemplateRef }, { propertyName: "headingContainerTemplate", first: true, predicate: FsListHeadingContainerDirective, descendants: true, read: TemplateRef }, { propertyName: "subheadingTemplate", first: true, predicate: FsListSubheadingDirective, descendants: true, read: TemplateRef }, { propertyName: "columnTemplates", predicate: FsListColumnDirective }], viewQueries: [{ propertyName: "filterReference", first: true, predicate: FilterComponent, descendants: true }], ngImport: i0, template: "<div class=\"fs-list-container\"\n [ngClass]=\"{\n 'has-filter-keyword': hasFilterKeyword,\n 'has-filters': list.filterConfig?.items.length,\n 'has-heading': list.heading || headingTemplate,\n 'has-status': hasStatus,\n 'has-chips': list.chips,\n 'has-actions': list.actions.hasActions,\n 'first-load': firstLoad,\n 'loading': list.loading$ | async\n }\">\n <ng-template [ngTemplateOutlet]=\"listContainerContent\"></ng-template>\n</div>\n\n<ng-template #listContainerContent>\n <ng-container *ngIf=\"list.dataController.visibleRows$ | async as listData\">\n <div class=\"fs-list-header-container\">\n <div\n class=\"fs-list-header\"\n [ngClass]=\"{ 'no-wrap': reorderController.manualReorderActivated || !list.filterConfig?.items.length }\">\n <ng-container\n *ngIf=\"hasFilterKeyword\"\n [ngTemplateOutlet]=\"heading\">\n </ng-container>\n <fs-filter\n class=\"fs-list-filter\"\n *ngIf=\"list.filterConfig\"\n [filter]=\"list.filterConfig\"\n [showSortBy]=\"!list.status\"\n [showFilterInput]=\"list.filterInput\"\n (ready)=\"filterReady()\">\n <ng-template fsFilterStatusBar>\n <ng-container\n *ngIf=\"!hasFilterKeyword\"\n [ngTemplateOutlet]=\"heading\">\n </ng-container>\n <ng-container *ngIf=\"hasStatus\">\n <fs-list-status\n class=\"fs-list-status\"\n [ngClass]=\"{ 'hidden-mobile': !list.status }\"\n [rows]=\"listData\"\n [sorting]=\"list.sorting\"\n [paging]=\"list.paging\"\n [firstLoad]=\"firstLoad\"\n [scrollable]=\"list.scrollable || list.paging.loadMoreEnabled\">\n </fs-list-status>\n </ng-container>\n </ng-template>\n </fs-filter>\n </div>\n </div>\n\n <ng-content select=\"[fs-list-content]\"></ng-content>\n\n <!-- Table implementation -->\n <div class=\"fs-list-table-container\">\n <ng-container *ngIf=\"!firstLoad && listData.length > 0 && !list.emptyStateEnabled\">\n <table \n class=\"fs-list-table\" \n role=\"grid\" \n [fsListContentInit]=\"list.afterContentInit\" \n [ngClass]=\"{\n 'style-card': list.style === 'card',\n 'style-line': list.style ?? 'line' === 'line'\n }\">\n <thead\n fs-list-head\n class=\"fs-list-head\"\n role=\"rowgroup\"\n *ngIf=\"list.columns.hasHeader\"\n [ngClass]=\"list.columns.theadClass\"\n [columns]=\"list.columns.visibleColumns$ | async\"\n [sorting]=\"list.sorting\"\n [selection]=\"list.selection\"\n [hasRowActions]=\"list.hasRowActions\"\n [activeFiltersCount]=\"list.activeFiltersCount$ | async\"\n [reorderEnabled]=\"reorderController.enabled$ | async\"\n [reorderPosition]=\"reorderController.position$ | async\"\n [reorderStrategy]=\"reorderController.strategy$ | async\">\n </thead>\n\n <tbody\n fs-list-body\n fsListDraggableList\n class=\"fs-list-body\"\n role=\"rowgroup\"\n [class.disabled]=\"!!(reorderController.reorderDisabled$ | async)\"\n [rows]=\"listData\"\n [rowActionsRaw]=\"list.rowActionsRaw\"\n [groupActionsRaw]=\"list.groupActionsRaw\"\n [hasRowActions]=\"list.hasRowActions\"\n [rowEvents]=\"list.rowEvents\"\n [rowClass]=\"list.rowClass\"\n [columns]=\"list.columns.visibleColumns$ | async\"\n [restoreMode]=\"list.restoreMode\"\n [selection]=\"list.selection\"\n [rowRemoved]=\"rowRemoved\"\n [activeFiltersCount]=\"list.activeFiltersCount$ | async\"\n [reorderEnabled]=\"reorderController.enabled$ | async\"\n [reorderPosition]=\"reorderController.position$ | async\"\n [reorderStrategy]=\"reorderController.strategy$ | async\"\n [reorderMultiple]=\"reorderController.multiple\">\n </tbody>\n\n <tfoot\n fs-list-footer\n class=\"fs-list-footer\"\n *ngIf=\"list.columns.hasFooter\"\n [columns]=\"list.columns.visibleColumns$ | async\"\n [selection]=\"list.selection\"\n [hasRowActions]=\"list.hasRowActions\"\n [activeFiltersCount]=\"list.activeFiltersCount$ | async\"\n [reorderEnabled]=\"reorderController.enabled$ | async\"\n [reorderPosition]=\"reorderController.position$ | async\"\n [reorderStrategy]=\"reorderController.strategy$ | async\">\n </tfoot>\n </table>\n </ng-container>\n <fs-list-loader\n *ngIf=\"firstLoad\"\n [columns]=\"list.columns.columns\"\n [loaderLines]=\"loaderLines\">\n </fs-list-loader>\n </div>\n\n <fs-list-pagination\n *ngIf=\"paginatorVisible\"\n class=\"fs-list-pagination\"\n [rows]=\"listData\"\n [pagination]=\"list.paging\">\n </fs-list-pagination>\n\n <ng-container *ngIf=\"!firstLoad\">\n <div\n *ngIf=\"listData.length === 0\"\n class=\"fs-list-no-results-container\">\n <div\n *ngIf=\"list.noResults?.message && !list.emptyStateEnabled\"\n class=\"fs-list-no-results\">\n {{ list.noResults?.message }}\n </div>\n <ng-container *ngIf=\"list.emptyStateEnabled\">\n <ng-template [ngTemplateOutlet]=\"list.emptyStateTemplate\"></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #heading>\n <div class=\"heading-container\" *ngIf=\"headingContainerTemplate || list.heading || list.subheading || headingTemplate\">\n <ng-container *ngIf=\"headingContainerTemplate; else headingContainer\">\n <ng-container\n [ngTemplateOutlet]=\"headingContainerTemplate\"\n [ngTemplateOutletContext]=\"{ template: headingContainer }\">\n </ng-container>\n </ng-container>\n <ng-template #headingContainer>\n <h2 class=\"heading\" *ngIf=\"list.heading || headingTemplate\">\n {{list.heading}}\n <ng-container [ngTemplateOutlet]=\"headingTemplate\"></ng-container>\n </h2>\n <div class=\"small subheading\" *ngIf=\"list.subheading || subheadingTemplate\">\n {{list.subheading}}\n <ng-container [ngTemplateOutlet]=\"subheadingTemplate\"></ng-container>\n </div>\n </ng-template>\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%}:host ::ng-deep .fs-list-swap-restricted{opacity:.5}:host ::ng-deep .fs-list-no-drop{cursor:no-drop}:host ::ng-deep .hidden{display:none}:host ::ng-deep .multiple-selection{background-color:#2196f380}:host ::ng-deep .multiple-selection ::ng-deep .fs-list-col{background-color:#2196f380}@media print{:host ::ng-deep .fs-list-row-group{page-break-after:avoid}:host ::ng-deep .fs-list-row-group-child{page-break-before:avoid}:host ::ng-deep .fs-list-row-group-footer{page-break-before:avoid}}.fs-list-container{width:100%}.fs-list-container:not(.has-filters):not(.has-actions):not(.has-heading) .fs-list-header-container{display:none}.fs-list-container:not(.has-filter-keyword) .fs-list-header{display:flex;margin-bottom:4px}.fs-list-container:not(.has-filter-keyword) .fs-list-header .heading-container{flex:1}.fs-list-container:not(.has-filter-keyword) .fs-list-header fs-filter{display:flex}.fs-list-container.has-filters .heading-container{margin-bottom:4px}.fs-list-container.loading .fs-list-status,.fs-list-container.loading .fs-list-body,.fs-list-container.loading .fs-list-head,.fs-list-container.loading .fs-list-footer,.fs-list-container.loading fs-list-pagination,.fs-list-container.loading ::ng-deep fs-filter-chips,.fs-list-container.loading .fs-list-no-results-container,.fs-list-container.first-load .fs-list-status,.fs-list-container.first-load .fs-list-body,.fs-list-container.first-load .fs-list-head,.fs-list-container.first-load .fs-list-footer,.fs-list-container.first-load fs-list-pagination,.fs-list-container.first-load ::ng-deep fs-filter-chips,.fs-list-container.first-load .fs-list-no-results-container{opacity:.4;pointer-events:none}.fs-list-container.first-load ::ng-deep fs-filter-chips .fs-chip{color:transparent}.fs-list-container.first-load ::ng-deep fs-filter-chips .fs-chip .remove{visibility:hidden}.fs-list-container.has-actions .fs-list-actions{margin-left:5px}.fs-list-container .fs-list-header .heading-container{display:flex;flex-direction:column;justify-content:center}.fs-list-container .fs-list-header .heading{margin:0}.fs-list-container .fs-list-header h2+.subheading{margin:2px 0 0}.fs-list-container .fs-list-filter{margin-bottom:0;position:initial!important;display:block;width:100%}.fs-list-container .fs-list-no-results-container .fs-list-no-results{text-align:center;color:#999;padding:10px 0}.fs-list-container .fs-list-table-container{width:100%;overflow:auto}::ng-deep .fs-list-table{border-spacing:0;display:table;width:100%;border-collapse:collapse}::ng-deep .fs-list-table thead{display:table-header-group}::ng-deep .fs-list-table thead th{color:#999;padding:8px;font-weight:normal;color:#8f8f8f;font-size:85%}::ng-deep .fs-list-table tbody{display:table-row-group;position:relative}::ng-deep .fs-list-table tbody tr,::ng-deep .fs-list-table thead tr,::ng-deep .fs-list-table tfoot tr{display:table-row}::ng-deep .fs-list-table tbody tr td,::ng-deep .fs-list-table thead tr td,::ng-deep .fs-list-table tfoot tr td{display:table-cell;padding:8px;vertical-align:middle;outline:none;text-align:left}::ng-deep .fs-list-table tfoot td{padding:8px}::ng-deep .fs-list-table.style-line tbody .fs-list-col,::ng-deep .fs-list-table:not(.style-card) tbody .fs-list-col{box-sizing:border-box;border-top:1px solid #ddd}::ng-deep .fs-list-table.style-line tbody .fs-list-row:first-child .fs-list-col,::ng-deep .fs-list-table:not(.style-card) tbody .fs-list-row:first-child .fs-list-col{border-top:2px solid #ddd}::ng-deep .fs-list-table.style-line tbody .fs-list-row:last-child .fs-list-col,::ng-deep .fs-list-table:not(.style-card) tbody .fs-list-row:last-child .fs-list-col{border-bottom:2px solid #ddd}::ng-deep .fs-list-table.style-line .fs-list-row:hover .fs-list-col,::ng-deep .fs-list-table:not(.style-card) .fs-list-row:hover .fs-list-col{background-color:#f6f6f6}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging thead th,::ng-deep .fs-list-table:not(.style-card) .fs-list-container.has-dragging thead th{border-bottom:2px solid #ddd}::ng-deep .fs-list-table.style-line .fs-list-container.has-dragging tbody tr:nth-child(2) td,::ng-deep .fs-list-table:not(.style-card) .fs-list-container.has-dragging tbody tr:nth-child(2) td{border-top:none}::ng-deep .fs-list-table.style-line.style-card,::ng-deep .fs-list-table:not(.style-card).style-card{border-spacing:0 8px;border-collapse:separate}::ng-deep .fs-list-table.style-line.style-card tbody tr:not(.fs-list-row-group-footer):not(.fs-list-row-group),::ng-deep .fs-list-table:not(.style-card).style-card tbody tr:not(.fs-list-row-group-footer):not(.fs-list-row-group){background-color:#fafafa;border-radius:10px}::ng-deep .fs-list-table.style-line.style-card tbody tr td,::ng-deep .fs-list-table:not(.style-card).style-card tbody tr td{border:none!important;padding:8px 16px}::ng-deep .fs-list-table.style-line.style-card tbody tr td:first-child,::ng-deep .fs-list-table:not(.style-card).style-card tbody tr td:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}::ng-deep .fs-list-table.style-line.style-card tbody tr td:last-child,::ng-deep .fs-list-table:not(.style-card).style-card tbody tr td:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}::ng-deep .fs-list-preview-block{position:fixed;height:30px;width:200px;background:grey;display:flex;justify-content:center;align-items:center;z-index:1000;box-shadow:2px 2px 2px #9e9e9ea6;border-radius:6px}::ng-deep .reorder-in-progress{-webkit-user-select:none;user-select:none}@media only screen and (max-width: 600px){::ng-deep .fs-list-filter .inline-actions{top:initial!important;position:initial!important}::ng-deep .fs-list-filter .inline-actions .action-filter{margin-bottom:0!important}::ng-deep .fs-list-header .filter-input-field .mat-form-field-wrapper{padding:0!important}::ng-deep .fs-list-header.has-filters{flex-flow:row wrap}}@media only screen and (max-width: 768px){::ng-deep .show-mobile{display:inline-block!important}::ng-deep .fs-list-actions .action-button{display:none}::ng-deep .row-inline-action.mobile-hide{display:none}::ng-deep .hidden-mobile-menu-action{display:block!important}}:host(.fs-list-no-highlight) ::ng-deep .fs-list-row:hover .fs-list-col{background-color:initial}\n"], components: [{ type: i2$2.FilterComponent, selector: "fs-filter", inputs: ["config", "filter", "showSortBy", "showFilterInput"], outputs: ["closed", "opened", "ready"] }, { type: FsStatusComponent, selector: "fs-list-status", inputs: ["paging", "sorting", "rows", "scrollable", "firstLoad"] }, { type: FsHeadComponent, selector: "[fs-list-head]", inputs: ["sorting", "columns", "hasRowActions", "selection", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }, { type: FsBodyComponent, selector: "[fs-list-body]", inputs: ["rows", "columns", "hasFooter", "rowActionsRaw", "groupActionsRaw", "rowEvents", "rowClass", "hasRowActions", "selection", "restoreMode", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }, { type: FsFooterComponent, selector: "[fs-list-footer]", inputs: ["hasRowActions", "columns", "selection", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }, { type: FsListLoaderComponent, selector: "fs-list-loader", inputs: ["columns", "loaderLines"] }, { type: FsPaginationComponent, selector: "fs-list-pagination", inputs: ["pagination", "rows"] }], directives: [{ type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$2.FilterStatusBarDirective, selector: "[fsFilterStatusBar]" }, { type: FsListContentInitDirective, selector: "[fsListContentInit]", inputs: ["fsListContentInit"] }, { type: FsListDraggableListDirective, selector: "[fsListDraggableList]", inputs: ["rows"] }, { type: FsListFooterDirective, selector: "[fs-list-footer]", inputs: ["colspan", "align", "class"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5501
5532
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListComponent, decorators: [{
|
|
5502
5533
|
type: Component,
|
|
5503
5534
|
args: [{
|