@firestitch/list 12.13.0 → 12.13.1
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/actions-controller.d.ts +20 -20
- package/app/classes/columns-controller.d.ts +71 -71
- package/app/classes/data-controller.d.ts +91 -91
- package/app/classes/external-params-controller.d.ts +31 -31
- package/app/classes/index.d.ts +2 -2
- package/app/classes/list-controller.d.ts +176 -175
- package/app/classes/pagination-controller.d.ts +189 -189
- package/app/classes/persistance-controller.d.ts +10 -10
- package/app/classes/reorder-controller.d.ts +68 -68
- package/app/classes/selection-controller.d.ts +146 -146
- package/app/classes/sorting-controller.d.ts +64 -64
- package/app/components/body/body.component.d.ts +29 -29
- package/app/components/body/row/actions/actions.component.d.ts +34 -34
- package/app/components/body/row/cell/cell.component.d.ts +23 -23
- package/app/components/body/row/inline-action/inline-action.component.d.ts +16 -16
- package/app/components/body/row/menu-action/menu-action.component.d.ts +14 -14
- package/app/components/body/row/row.component.d.ts +80 -80
- package/app/components/customize-cols/customize-cols.component.d.ts +17 -17
- package/app/components/footer/footer-row/footer-cell/footer-cell.component.d.ts +7 -7
- package/app/components/footer/footer-row/footer-row.component.d.ts +14 -14
- package/app/components/footer/footer.component.d.ts +16 -16
- package/app/components/head/head-cell/head-cell.component.d.ts +14 -14
- package/app/components/head/head.component.d.ts +47 -47
- package/app/components/list/list.component.d.ts +120 -120
- package/app/components/loader/loader.component.d.ts +14 -14
- package/app/components/manage-saved-filters/manage-saved-filters.component.d.ts +13 -13
- package/app/components/pagination/pagination.component.d.ts +14 -14
- package/app/components/saved-filters/saved-filters.component.d.ts +15 -15
- package/app/components/status/status.component.d.ts +21 -21
- package/app/directives/cell/cell.directive.d.ts +8 -8
- package/app/directives/column/column.directive.d.ts +33 -33
- package/app/directives/content/content.directive.d.ts +5 -5
- package/app/directives/content-init/content-init.directive.d.ts +9 -9
- package/app/directives/draggable-list/draggable-list.directive.d.ts +90 -90
- package/app/directives/draggable-row/draggable-row.directive.d.ts +23 -23
- package/app/directives/empty-state/empty-state.directive.d.ts +5 -5
- package/app/directives/footer/footer.directive.d.ts +8 -8
- package/app/directives/group-expand-trigger/group-expand-trigger.directive.d.ts +10 -10
- package/app/directives/group-footer/group-footer.directive.d.ts +6 -6
- package/app/directives/group-header/group-header.directive.d.ts +6 -6
- package/app/directives/header/header.directive.d.ts +8 -8
- package/app/directives/heading/heading.directive.d.ts +5 -5
- package/app/directives/heading-container/heading-container.directive.d.ts +5 -5
- package/app/directives/index.d.ts +3 -3
- package/app/directives/subheading/subheading.directive.d.ts +5 -5
- package/app/enums/button-type.enum.d.ts +7 -7
- package/app/enums/page-change-type.enum.d.ts +4 -4
- package/app/enums/pagination-strategy.enum.d.ts +5 -5
- package/app/enums/row-type.enum.d.ts +6 -6
- package/app/enums/state.enum.d.ts +9 -9
- package/app/fs-list.module.d.ts +60 -60
- package/app/fs-list.providers.d.ts +3 -3
- package/app/interfaces/cellconfig.interface.d.ts +5 -5
- package/app/interfaces/column-config.interface.d.ts +2 -2
- package/app/interfaces/draggable-list.interface.d.ts +7 -7
- package/app/interfaces/external-params.interface.d.ts +13 -13
- package/app/interfaces/index.d.ts +3 -3
- package/app/interfaces/listconfig.interface.d.ts +255 -253
- package/app/interfaces/pagination.interface.d.ts +13 -13
- package/app/models/column-async-attribute.d.ts +5 -5
- package/app/models/column-attributes.d.ts +39 -39
- package/app/models/column.model.d.ts +59 -59
- package/app/models/row/base-row.d.ts +13 -13
- package/app/models/row/child-row.d.ts +12 -12
- package/app/models/row/group-footer-row.d.ts +10 -10
- package/app/models/row/group-row.d.ts +16 -16
- package/app/models/row/simple-row.d.ts +5 -5
- package/app/models/row-action.model.d.ts +29 -29
- package/app/models/row.d.ts +30 -30
- package/app/models/styleConfig.model.d.ts +31 -31
- package/app/pipes/action-label.d.ts +8 -8
- package/app/pipes/index.d.ts +1 -1
- package/app/services/group-expand-notifier.service.d.ts +11 -11
- package/bundles/firestitch-list.umd.js +6833 -6834
- package/bundles/firestitch-list.umd.js.map +1 -1
- package/esm2015/app/classes/actions-controller.js +55 -55
- package/esm2015/app/classes/columns-controller.js +205 -205
- package/esm2015/app/classes/data-controller.js +352 -352
- package/esm2015/app/classes/external-params-controller.js +153 -153
- package/esm2015/app/classes/index.js +3 -3
- package/esm2015/app/classes/list-controller.js +715 -716
- package/esm2015/app/classes/pagination-controller.js +460 -460
- package/esm2015/app/classes/persistance-controller.js +19 -19
- package/esm2015/app/classes/reorder-controller.js +182 -182
- package/esm2015/app/classes/selection-controller.js +458 -458
- package/esm2015/app/classes/sorting-controller.js +180 -180
- package/esm2015/app/components/body/body.component.js +67 -67
- package/esm2015/app/components/body/row/actions/actions.component.js +95 -95
- package/esm2015/app/components/body/row/cell/cell.component.js +107 -107
- package/esm2015/app/components/body/row/inline-action/inline-action.component.js +39 -39
- package/esm2015/app/components/body/row/menu-action/menu-action.component.js +35 -35
- package/esm2015/app/components/body/row/row.component.js +292 -292
- package/esm2015/app/components/customize-cols/customize-cols.component.js +72 -72
- package/esm2015/app/components/footer/footer-row/footer-cell/footer-cell.component.js +20 -20
- package/esm2015/app/components/footer/footer-row/footer-row.component.js +31 -31
- package/esm2015/app/components/footer/footer.component.js +34 -34
- package/esm2015/app/components/head/head-cell/head-cell.component.js +33 -33
- package/esm2015/app/components/head/head.component.js +104 -104
- package/esm2015/app/components/list/list.component.js +377 -377
- package/esm2015/app/components/loader/loader.component.js +47 -47
- package/esm2015/app/components/manage-saved-filters/manage-saved-filters.component.js +78 -78
- package/esm2015/app/components/pagination/pagination.component.js +44 -44
- package/esm2015/app/components/saved-filters/saved-filters.component.js +33 -33
- package/esm2015/app/components/status/status.component.js +72 -72
- package/esm2015/app/directives/cell/cell.directive.js +18 -18
- package/esm2015/app/directives/column/column.directive.js +111 -111
- package/esm2015/app/directives/content/content.directive.js +12 -12
- package/esm2015/app/directives/content-init/content-init.directive.js +21 -21
- package/esm2015/app/directives/draggable-list/draggable-list.directive.js +323 -323
- package/esm2015/app/directives/draggable-row/draggable-row.directive.js +80 -80
- package/esm2015/app/directives/empty-state/empty-state.directive.js +13 -13
- package/esm2015/app/directives/footer/footer.directive.js +18 -18
- package/esm2015/app/directives/group-expand-trigger/group-expand-trigger.directive.js +26 -26
- package/esm2015/app/directives/group-footer/group-footer.directive.js +13 -13
- package/esm2015/app/directives/group-header/group-header.directive.js +13 -13
- package/esm2015/app/directives/header/header.directive.js +18 -18
- package/esm2015/app/directives/heading/heading.directive.js +13 -13
- package/esm2015/app/directives/heading-container/heading-container.directive.js +13 -13
- package/esm2015/app/directives/index.js +4 -4
- package/esm2015/app/directives/subheading/subheading.directive.js +13 -13
- package/esm2015/app/enums/button-type.enum.js +9 -9
- package/esm2015/app/enums/page-change-type.enum.js +6 -6
- package/esm2015/app/enums/pagination-strategy.enum.js +7 -7
- package/esm2015/app/enums/row-type.enum.js +7 -7
- package/esm2015/app/enums/state.enum.js +11 -11
- package/esm2015/app/fs-list.module.js +244 -244
- package/esm2015/app/fs-list.providers.js +4 -4
- package/esm2015/app/interfaces/cellconfig.interface.js +2 -2
- package/esm2015/app/interfaces/column-config.interface.js +1 -1
- package/esm2015/app/interfaces/draggable-list.interface.js +2 -2
- package/esm2015/app/interfaces/external-params.interface.js +2 -2
- package/esm2015/app/interfaces/index.js +4 -4
- package/esm2015/app/interfaces/listconfig.interface.js +2 -2
- package/esm2015/app/interfaces/pagination.interface.js +2 -2
- package/esm2015/app/models/column-async-attribute.js +13 -13
- package/esm2015/app/models/column-attributes.js +130 -130
- package/esm2015/app/models/column.model.js +166 -166
- package/esm2015/app/models/row/base-row.js +23 -23
- package/esm2015/app/models/row/child-row.js +28 -28
- package/esm2015/app/models/row/group-footer-row.js +20 -20
- package/esm2015/app/models/row/group-row.js +44 -44
- package/esm2015/app/models/row/simple-row.js +10 -10
- package/esm2015/app/models/row-action.model.js +94 -94
- package/esm2015/app/models/row.js +80 -80
- package/esm2015/app/models/styleConfig.model.js +75 -75
- package/esm2015/app/pipes/action-label.js +16 -16
- package/esm2015/app/pipes/index.js +1 -1
- package/esm2015/app/services/group-expand-notifier.service.js +26 -26
- package/esm2015/firestitch-list.js +4 -4
- package/esm2015/public_api.js +45 -45
- package/fesm2015/firestitch-list.js +5614 -5615
- package/fesm2015/firestitch-list.js.map +1 -1
- package/firestitch-list.d.ts +5 -5
- package/package.json +1 -1
- package/public_api.d.ts +39 -39
|
@@ -1,378 +1,378 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Inject, Input, QueryList, ViewChild, HostBinding, Optional, ContentChild, TemplateRef, Output, } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
-
import { Location } from '@angular/common';
|
|
4
|
-
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
5
|
-
import { Subject } from 'rxjs';
|
|
6
|
-
import { filter, skip, take, takeUntil } from 'rxjs/operators';
|
|
7
|
-
import { FsScrollService } from '@firestitch/scroll';
|
|
8
|
-
import { FilterComponent } from '@firestitch/filter';
|
|
9
|
-
import { SelectionDialog } from '@firestitch/selection';
|
|
10
|
-
import { getNormalizedPath } from '@firestitch/common';
|
|
11
|
-
import { DrawerRef } from '@firestitch/drawer';
|
|
12
|
-
import { cloneDeep, mergeWith } from 'lodash-es';
|
|
13
|
-
import { List } from '../../classes/list-controller';
|
|
14
|
-
import { ReorderController } from '../../classes/reorder-controller';
|
|
15
|
-
import { FsListColumnDirective } from '../../directives/column/column.directive';
|
|
16
|
-
import { FsListEmptyStateDirective } from '../../directives/empty-state/empty-state.directive';
|
|
17
|
-
import { FS_LIST_DEFAULT_CONFIG } from '../../fs-list.providers';
|
|
18
|
-
import { CustomizeColsDialogComponent } from '../customize-cols/customize-cols.component';
|
|
19
|
-
import { GroupExpandNotifierService } from '../../services/group-expand-notifier.service';
|
|
20
|
-
import { PersistanceController } from '../../classes/persistance-controller';
|
|
21
|
-
import { FsListHeadingContainerDirective, FsListHeadingDirective, FsListSubheadingDirective } from '../../directives';
|
|
22
|
-
import * as i0 from "@angular/core";
|
|
23
|
-
import * as i1 from "../../classes/reorder-controller";
|
|
24
|
-
import * as i2 from "@firestitch/scroll";
|
|
25
|
-
import * as i3 from "@angular/material/dialog";
|
|
26
|
-
import * as i4 from "@firestitch/drawer";
|
|
27
|
-
import * as i5 from "@firestitch/selection";
|
|
28
|
-
import * as i6 from "../../services/group-expand-notifier.service";
|
|
29
|
-
import * as i7 from "@angular/router";
|
|
30
|
-
import * as i8 from "../../classes/persistance-controller";
|
|
31
|
-
import * as i9 from "@angular/common";
|
|
32
|
-
import * as i10 from "@firestitch/filter";
|
|
33
|
-
import * as i11 from "../status/status.component";
|
|
34
|
-
import * as i12 from "../head/head.component";
|
|
35
|
-
import * as i13 from "../body/body.component";
|
|
36
|
-
import * as i14 from "../footer/footer.component";
|
|
37
|
-
import * as i15 from "../loader/loader.component";
|
|
38
|
-
import * as i16 from "../pagination/pagination.component";
|
|
39
|
-
import * as i17 from "../../directives/content-init/content-init.directive";
|
|
40
|
-
import * as i18 from "../../directives/draggable-list/draggable-list.directive";
|
|
41
|
-
import * as i19 from "../../directives/footer/footer.directive";
|
|
42
|
-
export class FsListComponent {
|
|
43
|
-
constructor(reorderController, _defaultOptions, fsScroll, _dialogRef, _drawerRef, _el, selectionDialog, dialog, cdRef, _groupExpandNotifier, _router, _route, _persistance, _location) {
|
|
44
|
-
this.reorderController = reorderController;
|
|
45
|
-
this._defaultOptions = _defaultOptions;
|
|
46
|
-
this.fsScroll = fsScroll;
|
|
47
|
-
this._dialogRef = _dialogRef;
|
|
48
|
-
this._drawerRef = _drawerRef;
|
|
49
|
-
this._el = _el;
|
|
50
|
-
this.selectionDialog = selectionDialog;
|
|
51
|
-
this.dialog = dialog;
|
|
52
|
-
this.cdRef = cdRef;
|
|
53
|
-
this._groupExpandNotifier = _groupExpandNotifier;
|
|
54
|
-
this._router = _router;
|
|
55
|
-
this._route = _route;
|
|
56
|
-
this._persistance = _persistance;
|
|
57
|
-
this._location = _location;
|
|
58
|
-
this.classFsList = true;
|
|
59
|
-
this.loaderLines = 3;
|
|
60
|
-
this.filtersReady = new EventEmitter();
|
|
61
|
-
this.keywordVisible = true;
|
|
62
|
-
// Event will fired if action remove: true will clicked
|
|
63
|
-
this.rowRemoved = new EventEmitter();
|
|
64
|
-
this.firstLoad = true;
|
|
65
|
-
this._filterParamsReady = false;
|
|
66
|
-
this._inDialog = !!this._dialogRef || !!this._drawerRef;
|
|
67
|
-
this._destroy = new Subject();
|
|
68
|
-
}
|
|
69
|
-
set config(config) {
|
|
70
|
-
this._initWithConfig(config);
|
|
71
|
-
}
|
|
72
|
-
set filterReference(component) {
|
|
73
|
-
this._filterRef = component;
|
|
74
|
-
this.list.actions.setFilterRef(component);
|
|
75
|
-
this._emitFiltersReadyEvent();
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Set columns to config
|
|
79
|
-
* Create Column Model instances
|
|
80
|
-
*
|
|
81
|
-
*/
|
|
82
|
-
set columnTemplates(listColumnDirectives) {
|
|
83
|
-
this.listColumnDirectives = listColumnDirectives;
|
|
84
|
-
if (this.list) {
|
|
85
|
-
this.list.tranformTemplatesToColumns(listColumnDirectives);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
set _emptyStateTemplate(template) {
|
|
89
|
-
if (this.list) {
|
|
90
|
-
this.list.emptyStateTemplate = template;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Return reference for filter
|
|
95
|
-
*/
|
|
96
|
-
get filterRef() {
|
|
97
|
-
return this._filterRef;
|
|
98
|
-
}
|
|
99
|
-
get groupEnabled() {
|
|
100
|
-
return this.list.dataController.groupEnabled;
|
|
101
|
-
}
|
|
102
|
-
get hasFilterKeyword() {
|
|
103
|
-
return this.list.filterInput && this.keywordVisible;
|
|
104
|
-
}
|
|
105
|
-
get hasStatus() {
|
|
106
|
-
return this.list.status &&
|
|
107
|
-
(this.list.sorting.isDefined || this.list.paging.enabled) &&
|
|
108
|
-
(!this.reorderController.enabled || (this.reorderController.enabled && this.reorderController.status)) &&
|
|
109
|
-
((this.list.scrollable && this.list.scrollable.status) || !this.list.scrollable);
|
|
110
|
-
}
|
|
111
|
-
get paginatorVisible() {
|
|
112
|
-
return this.list.paging.enabled
|
|
113
|
-
&& !this.firstLoad
|
|
114
|
-
&& !this.list.scrollable
|
|
115
|
-
&& !this.list.emptyStateEnabled
|
|
116
|
-
&& this.list.dataController.visibleRowsCount > 0
|
|
117
|
-
&& this.list.paging.pages > 1;
|
|
118
|
-
}
|
|
119
|
-
set groupEnabled(value) {
|
|
120
|
-
this.list.groupEnabled(value);
|
|
121
|
-
}
|
|
122
|
-
get filtersQuery() {
|
|
123
|
-
return this.list.filtersQuery;
|
|
124
|
-
}
|
|
125
|
-
ngOnInit() {
|
|
126
|
-
this._subscribeToRemoveRow();
|
|
127
|
-
this._subscribeToGroupExpandStatusChange();
|
|
128
|
-
}
|
|
129
|
-
ngOnDestroy() {
|
|
130
|
-
if (this.list) {
|
|
131
|
-
this.list.destroy();
|
|
132
|
-
}
|
|
133
|
-
this._destroy.next();
|
|
134
|
-
this._destroy.complete();
|
|
135
|
-
}
|
|
136
|
-
nextPage() {
|
|
137
|
-
this.list.paging.goNext();
|
|
138
|
-
}
|
|
139
|
-
prevPage() {
|
|
140
|
-
this.list.paging.goPrev();
|
|
141
|
-
}
|
|
142
|
-
firstPage() {
|
|
143
|
-
this.list.paging.goFirst();
|
|
144
|
-
}
|
|
145
|
-
lastPage() {
|
|
146
|
-
this.list.paging.goLast();
|
|
147
|
-
}
|
|
148
|
-
reload() {
|
|
149
|
-
this.list.reload();
|
|
150
|
-
}
|
|
151
|
-
getData(trackBy) {
|
|
152
|
-
return this.list.getData(trackBy);
|
|
153
|
-
}
|
|
154
|
-
hasData(trackBy) {
|
|
155
|
-
return this.list.hasData(trackBy);
|
|
156
|
-
}
|
|
157
|
-
updateData(rows, trackBy) {
|
|
158
|
-
return this.list.dataController.updateData(rows, trackBy);
|
|
159
|
-
}
|
|
160
|
-
replaceRow(row, trackBy) {
|
|
161
|
-
return this.list.dataController.replaceData(row, trackBy);
|
|
162
|
-
}
|
|
163
|
-
updateSelectionConfig(config) {
|
|
164
|
-
this.list.selection.updateConfig(config);
|
|
165
|
-
}
|
|
166
|
-
resetSelectionActions() {
|
|
167
|
-
this.list.selection.resetActions();
|
|
168
|
-
}
|
|
169
|
-
enableSelection() {
|
|
170
|
-
this.list.selection.enableSelection();
|
|
171
|
-
}
|
|
172
|
-
disableSelection() {
|
|
173
|
-
this.list.selection.disableSelection();
|
|
174
|
-
}
|
|
175
|
-
removeData(data) {
|
|
176
|
-
return this.list.dataController.removeData(data);
|
|
177
|
-
}
|
|
178
|
-
setHeading(heading) {
|
|
179
|
-
this.list.heading = heading;
|
|
180
|
-
}
|
|
181
|
-
setSubheading(subheading) {
|
|
182
|
-
this.list.subheading = subheading;
|
|
183
|
-
}
|
|
184
|
-
reorderStart() {
|
|
185
|
-
this.reorderController.enableReorder();
|
|
186
|
-
}
|
|
187
|
-
reorderFinish() {
|
|
188
|
-
this.reorderController.disableReorder();
|
|
189
|
-
}
|
|
190
|
-
setActions(actions) {
|
|
191
|
-
if (actions) {
|
|
192
|
-
this.list.actions.clearActions();
|
|
193
|
-
this.list.actions.setActions(actions);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
filterReady() {
|
|
197
|
-
this.list.filtersReady$.next();
|
|
198
|
-
this._filterParamsReady = true;
|
|
199
|
-
this._emitFiltersReadyEvent();
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Update visibility for specific column
|
|
203
|
-
*/
|
|
204
|
-
columnVisibility(name, show) {
|
|
205
|
-
this.columnsVisibility([{ name, show }]);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Update visibility for list of specific columns
|
|
209
|
-
*/
|
|
210
|
-
columnsVisibility(columns) {
|
|
211
|
-
this.list.columns.updateVisibilityForCols(columns);
|
|
212
|
-
}
|
|
213
|
-
_emitFiltersReadyEvent() {
|
|
214
|
-
if (!!this.filterRef && this._filterParamsReady) {
|
|
215
|
-
this.filtersReady.emit();
|
|
216
|
-
this.keywordVisible = this.filterRef.hasKeyword;
|
|
217
|
-
this.cdRef.markForCheck();
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Initialize config for list
|
|
222
|
-
* @param config
|
|
223
|
-
*/
|
|
224
|
-
_initWithConfig(config) {
|
|
225
|
-
if (this.list) {
|
|
226
|
-
this.list.destroy();
|
|
227
|
-
}
|
|
228
|
-
const defaultOpts = this._defaultOptions
|
|
229
|
-
? cloneDeep(this._defaultOptions)
|
|
230
|
-
: {};
|
|
231
|
-
const listConfig = mergeWith(defaultOpts, config, this._configMergeCustomizer);
|
|
232
|
-
if (listConfig.persist !== false) {
|
|
233
|
-
this._restorePersistance(listConfig.persist);
|
|
234
|
-
}
|
|
235
|
-
this._updateCustomizeAction(listConfig.actions);
|
|
236
|
-
this.list = new List(this._el, listConfig, this.fsScroll, this.selectionDialog, this._router, this._route, this._persistance, this._inDialog);
|
|
237
|
-
this._waitFirstLoad();
|
|
238
|
-
this.reorderController.initWithConfig(config.reorder, this.list.dataController, this.list.actions, this.list.selection);
|
|
239
|
-
if (this.listColumnDirectives) {
|
|
240
|
-
this.list.tranformTemplatesToColumns(this.listColumnDirectives);
|
|
241
|
-
}
|
|
242
|
-
this._listenSortingChange();
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Find action with customize flag and re-declare click function for CustomizeColsDialog
|
|
246
|
-
* @param actions
|
|
247
|
-
*/
|
|
248
|
-
_updateCustomizeAction(actions) {
|
|
249
|
-
const customizeAction = actions === null || actions === void 0 ? void 0 : actions.find((action) => action.customize);
|
|
250
|
-
if (customizeAction) {
|
|
251
|
-
const actionClickFn = customizeAction.click;
|
|
252
|
-
customizeAction.click = () => {
|
|
253
|
-
if (actionClickFn) {
|
|
254
|
-
actionClickFn(null);
|
|
255
|
-
}
|
|
256
|
-
const dialogRef = this.dialog.open(CustomizeColsDialogComponent, {
|
|
257
|
-
data: {
|
|
258
|
-
columns: this.list.columns.columnsForDialog,
|
|
259
|
-
changeFn: this.list.columns.changeFn,
|
|
260
|
-
},
|
|
261
|
-
});
|
|
262
|
-
dialogRef
|
|
263
|
-
.afterClosed()
|
|
264
|
-
.pipe(takeUntil(this.list.onDestroy$), takeUntil(this._destroy))
|
|
265
|
-
.subscribe((data) => {
|
|
266
|
-
if (data) {
|
|
267
|
-
this.list.columns.updateVisibilityForCols(data);
|
|
268
|
-
this.cdRef.markForCheck();
|
|
269
|
-
}
|
|
270
|
-
});
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Update sorting in filter
|
|
276
|
-
*/
|
|
277
|
-
_listenSortingChange() {
|
|
278
|
-
this.list.sorting
|
|
279
|
-
.sortingChanged$
|
|
280
|
-
.pipe(takeUntil(this.list.onDestroy$), takeUntil(this._destroy))
|
|
281
|
-
.subscribe((sort) => {
|
|
282
|
-
this._filterRef.updateSort(sort);
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
_subscribeToRemoveRow() {
|
|
286
|
-
this.rowRemoved
|
|
287
|
-
.pipe(takeUntil(this._destroy))
|
|
288
|
-
.subscribe((row) => {
|
|
289
|
-
this.list.dataController.removeData(row);
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
_subscribeToGroupExpandStatusChange() {
|
|
293
|
-
if (this.list.dataController.hasGroups) {
|
|
294
|
-
this._groupExpandNotifier.expandStatusChange$
|
|
295
|
-
.pipe(takeUntil(this._destroy))
|
|
296
|
-
.subscribe((row) => {
|
|
297
|
-
this.list.dataController.toggleRowGroup(row);
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
_waitFirstLoad() {
|
|
302
|
-
this.list.loading$
|
|
303
|
-
.pipe(skip(1), filter((value) => value === false), take(1), takeUntil(this.list.onDestroy$), takeUntil(this._destroy))
|
|
304
|
-
.subscribe(() => {
|
|
305
|
-
this.firstLoad = false;
|
|
306
|
-
this.cdRef.markForCheck();
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
_configMergeCustomizer(objValue, srcValue) {
|
|
310
|
-
if (Array.isArray(objValue)) {
|
|
311
|
-
return objValue;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
_restorePersistance(persistConfig) {
|
|
315
|
-
const namespace = getNormalizedPath(this._location);
|
|
316
|
-
this._persistance.setConfig(persistConfig, namespace, this._inDialog);
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
FsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListComponent, deps: [{ token: i1.ReorderController }, { token: FS_LIST_DEFAULT_CONFIG, optional: true }, { token: i2.FsScrollService, optional: true }, { token: i3.MatDialogRef, optional: true }, { token: i4.DrawerRef, optional: true }, { token: i0.ElementRef }, { token: i5.SelectionDialog }, { token: i3.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i6.GroupExpandNotifierService }, { token: i7.Router }, { token: i7.ActivatedRoute }, { token: i8.PersistanceController }, { token: i9.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
320
|
-
FsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsListComponent, selector: "fs-list", inputs: { config: "config", loaderLines: "loaderLines" }, outputs: { filtersReady: "filtersReady" }, host: { properties: { "class.fs-list": "this.classFsList" } }, providers: [
|
|
321
|
-
GroupExpandNotifierService,
|
|
322
|
-
PersistanceController,
|
|
323
|
-
ReorderController,
|
|
324
|
-
], 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 class=\"fs-list-table\" role=\"grid\" [fsListContentInit]=\"list.afterContentInit\">\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 >\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 >\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 >\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-pagination,.fs-list-container.loading .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-pagination,.fs-list-container.first-load .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 thead,::ng-deep .fs-list-table .fs-list-head{display:table-header-group}::ng-deep .fs-list-table thead th,::ng-deep .fs-list-table thead .fs-list-col,::ng-deep .fs-list-table .fs-list-head th,::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 thead th.fs-list-col-selection,::ng-deep .fs-list-table thead .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head th.fs-list-col-selection,::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 thead th.sorting,::ng-deep .fs-list-table thead .fs-list-col.sorting,::ng-deep .fs-list-table .fs-list-head th.sorting,::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting{cursor:pointer}::ng-deep .fs-list-table thead th.sorting:hover,::ng-deep .fs-list-table thead .fs-list-col.sorting:hover,::ng-deep .fs-list-table .fs-list-head th.sorting:hover,::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting:hover{background-color:#f6f6f6}::ng-deep .fs-list-table thead th .wrap,::ng-deep .fs-list-table thead .fs-list-col .wrap,::ng-deep .fs-list-table .fs-list-head th .wrap,::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 thead th .wrap mat-icon,::ng-deep .fs-list-table thead .fs-list-col .wrap mat-icon,::ng-deep .fs-list-table .fs-list-head th .wrap mat-icon,::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 thead th .wrap .direction,::ng-deep .fs-list-table thead .fs-list-col .wrap .direction,::ng-deep .fs-list-table .fs-list-head th .wrap .direction,::ng-deep .fs-list-table .fs-list-head .fs-list-col .wrap .direction{margin-left:5px}::ng-deep .fs-list-table thead th.sorting,::ng-deep .fs-list-table thead .fs-list-col.sorting,::ng-deep .fs-list-table .fs-list-head th.sorting,::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting{background-image:none}::ng-deep .fs-list-table tbody,::ng-deep .fs-list-table .fs-list-body{display:table-row-group;position:relative}::ng-deep .fs-list-table tbody.drag-hidden .drag-col,::ng-deep .fs-list-table .fs-list-body.drag-hidden .drag-col{opacity:0!important;cursor:default}::ng-deep .fs-list-table tbody.disabled,::ng-deep .fs-list-table .fs-list-body.disabled{opacity:.4;pointer-events:none}::ng-deep .fs-list-table tbody td,::ng-deep .fs-list-table tbody .fs-list-col,::ng-deep .fs-list-table .fs-list-body td,::ng-deep .fs-list-table .fs-list-body .fs-list-col{box-sizing:border-box;border-top:1px solid #ddd}::ng-deep .fs-list-table tbody tr:hover td,::ng-deep .fs-list-table tbody .fs-list-row:hover .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr:hover td,::ng-deep .fs-list-table .fs-list-body .fs-list-row:hover .fs-list-col{background-color:#f6f6f6}::ng-deep .fs-list-table tbody tr:hover td,::ng-deep .fs-list-table tbody tr:hover .fs-list-col,::ng-deep .fs-list-table tbody .fs-list-row:hover td,::ng-deep .fs-list-table tbody .fs-list-row:hover .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr:hover td,::ng-deep .fs-list-table .fs-list-body tr:hover .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row:hover td,::ng-deep .fs-list-table .fs-list-body .fs-list-row:hover .fs-list-col{background-color:#f6f6f6}::ng-deep .fs-list-table tbody tr:first-child td,::ng-deep .fs-list-table .fs-list-body tr:first-child td{border-top:2px solid #ddd}::ng-deep .fs-list-table tbody tr:last-child td,::ng-deep .fs-list-table .fs-list-body tr:last-child td{border-bottom:2px solid #ddd}::ng-deep .fs-list-table thead tr,::ng-deep .fs-list-table thead .fs-list-row,::ng-deep .fs-list-table tbody tr,::ng-deep .fs-list-table tbody .fs-list-row,::ng-deep .fs-list-table tfoot tr,::ng-deep .fs-list-table tfoot .fs-list-row,::ng-deep .fs-list-table .fs-list-head tr,::ng-deep .fs-list-table .fs-list-head .fs-list-row,::ng-deep .fs-list-table .fs-list-body tr,::ng-deep .fs-list-table .fs-list-body .fs-list-row,::ng-deep .fs-list-table .fs-list-footer tr,::ng-deep .fs-list-table .fs-list-footer .fs-list-row{display:table-row}::ng-deep .fs-list-table thead tr.drag-hidden,::ng-deep .fs-list-table thead .fs-list-row.drag-hidden,::ng-deep .fs-list-table tbody tr.drag-hidden,::ng-deep .fs-list-table tbody .fs-list-row.drag-hidden,::ng-deep .fs-list-table tfoot tr.drag-hidden,::ng-deep .fs-list-table tfoot .fs-list-row.drag-hidden,::ng-deep .fs-list-table .fs-list-head tr.drag-hidden,::ng-deep .fs-list-table .fs-list-head .fs-list-row.drag-hidden,::ng-deep .fs-list-table .fs-list-body tr.drag-hidden,::ng-deep .fs-list-table .fs-list-body .fs-list-row.drag-hidden,::ng-deep .fs-list-table .fs-list-footer tr.drag-hidden,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.drag-hidden{display:none}::ng-deep .fs-list-table thead tr.multiple-selection,::ng-deep .fs-list-table thead .fs-list-row.multiple-selection,::ng-deep .fs-list-table tbody tr.multiple-selection,::ng-deep .fs-list-table tbody .fs-list-row.multiple-selection,::ng-deep .fs-list-table tfoot tr.multiple-selection,::ng-deep .fs-list-table tfoot .fs-list-row.multiple-selection,::ng-deep .fs-list-table .fs-list-head tr.multiple-selection,::ng-deep .fs-list-table .fs-list-head .fs-list-row.multiple-selection,::ng-deep .fs-list-table .fs-list-body tr.multiple-selection,::ng-deep .fs-list-table .fs-list-body .fs-list-row.multiple-selection,::ng-deep .fs-list-table .fs-list-footer tr.multiple-selection,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.multiple-selection{background-color:#2196f380}::ng-deep .fs-list-table thead tr.multiple-selection .fs-list-col,::ng-deep .fs-list-table thead .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table tbody tr.multiple-selection .fs-list-col,::ng-deep .fs-list-table tbody .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table tfoot tr.multiple-selection .fs-list-col,::ng-deep .fs-list-table tfoot .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table .fs-list-head tr.multiple-selection .fs-list-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr.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 tr.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 thead tr td,::ng-deep .fs-list-table thead tr th,::ng-deep .fs-list-table thead tr .fs-list-col,::ng-deep .fs-list-table thead .fs-list-row td,::ng-deep .fs-list-table thead .fs-list-row th,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col,::ng-deep .fs-list-table tbody tr td,::ng-deep .fs-list-table tbody tr th,::ng-deep .fs-list-table tbody tr .fs-list-col,::ng-deep .fs-list-table tbody .fs-list-row td,::ng-deep .fs-list-table tbody .fs-list-row th,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col,::ng-deep .fs-list-table tfoot tr td,::ng-deep .fs-list-table tfoot tr th,::ng-deep .fs-list-table tfoot tr .fs-list-col,::ng-deep .fs-list-table tfoot .fs-list-row td,::ng-deep .fs-list-table tfoot .fs-list-row th,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col,::ng-deep .fs-list-table .fs-list-head tr td,::ng-deep .fs-list-table .fs-list-head tr th,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row td,::ng-deep .fs-list-table .fs-list-head .fs-list-row th,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr td,::ng-deep .fs-list-table .fs-list-body tr th,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row td,::ng-deep .fs-list-table .fs-list-body .fs-list-row th,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col,::ng-deep .fs-list-table .fs-list-footer tr td,::ng-deep .fs-list-table .fs-list-footer tr th,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th,::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 thead tr td.drag-col,::ng-deep .fs-list-table thead tr th.drag-col,::ng-deep .fs-list-table thead tr .fs-list-col.drag-col,::ng-deep .fs-list-table thead .fs-list-row td.drag-col,::ng-deep .fs-list-table thead .fs-list-row th.drag-col,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table tbody tr td.drag-col,::ng-deep .fs-list-table tbody tr th.drag-col,::ng-deep .fs-list-table tbody tr .fs-list-col.drag-col,::ng-deep .fs-list-table tbody .fs-list-row td.drag-col,::ng-deep .fs-list-table tbody .fs-list-row th.drag-col,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table tfoot tr td.drag-col,::ng-deep .fs-list-table tfoot tr th.drag-col,::ng-deep .fs-list-table tfoot tr .fs-list-col.drag-col,::ng-deep .fs-list-table tfoot .fs-list-row td.drag-col,::ng-deep .fs-list-table tfoot .fs-list-row th.drag-col,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-head tr td.drag-col,::ng-deep .fs-list-table .fs-list-head tr th.drag-col,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.drag-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.drag-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-body tr td.drag-col,::ng-deep .fs-list-table .fs-list-body tr th.drag-col,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.drag-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.drag-col,::ng-deep .fs-list-table .fs-list-footer tr th.drag-col,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.drag-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.drag-col.drag-disabled,::ng-deep .fs-list-table thead tr th.drag-col.drag-disabled,::ng-deep .fs-list-table thead tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table thead .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table thead .fs-list-row th.drag-col.drag-disabled,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table tbody tr td.drag-col.drag-disabled,::ng-deep .fs-list-table tbody tr th.drag-col.drag-disabled,::ng-deep .fs-list-table tbody tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table tbody .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table tbody .fs-list-row th.drag-col.drag-disabled,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot tr td.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot tr th.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot .fs-list-row th.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head tr td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head tr th.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.drag-col.drag-disabled,::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 tr td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body tr th.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer tr th.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.drag-col mat-icon,::ng-deep .fs-list-table thead tr th.drag-col mat-icon,::ng-deep .fs-list-table thead tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table thead .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table thead .fs-list-row th.drag-col mat-icon,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table tbody tr td.drag-col mat-icon,::ng-deep .fs-list-table tbody tr th.drag-col mat-icon,::ng-deep .fs-list-table tbody tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table tbody .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table tbody .fs-list-row th.drag-col mat-icon,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table tfoot tr td.drag-col mat-icon,::ng-deep .fs-list-table tfoot tr th.drag-col mat-icon,::ng-deep .fs-list-table tfoot tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table tfoot .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table tfoot .fs-list-row th.drag-col mat-icon,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head tr td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head tr th.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.drag-col mat-icon,::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 tr td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body tr th.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer tr th.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.fs-list-col-selection,::ng-deep .fs-list-table thead tr th.fs-list-col-selection,::ng-deep .fs-list-table thead tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table thead .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table thead .fs-list-row th.fs-list-col-selection,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table tbody tr td.fs-list-col-selection,::ng-deep .fs-list-table tbody tr th.fs-list-col-selection,::ng-deep .fs-list-table tbody tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table tbody .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table tbody .fs-list-row th.fs-list-col-selection,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table tfoot tr td.fs-list-col-selection,::ng-deep .fs-list-table tfoot tr th.fs-list-col-selection,::ng-deep .fs-list-table tfoot tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table tfoot .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table tfoot .fs-list-row th.fs-list-col-selection,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head tr td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head tr th.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.fs-list-col-selection,::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 tr td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body tr th.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer tr th.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.row-actions,::ng-deep .fs-list-table thead tr th.row-actions,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions,::ng-deep .fs-list-table thead .fs-list-row td.row-actions,::ng-deep .fs-list-table thead .fs-list-row th.row-actions,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table tbody tr td.row-actions,::ng-deep .fs-list-table tbody tr th.row-actions,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table tfoot tr td.row-actions,::ng-deep .fs-list-table tfoot tr th.row-actions,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-head tr td.row-actions,::ng-deep .fs-list-table .fs-list-head tr th.row-actions,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-body tr td.row-actions,::ng-deep .fs-list-table .fs-list-body tr th.row-actions,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.row-actions,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.row-actions .row-inline-action,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action,::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 tr td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action:first-child,::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 tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead tr td.row-actions .row-menu-action,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead tr th.row-actions .row-menu-action,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-menu-action,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody tr td.row-actions .row-menu-action,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody tr th.row-actions .row-menu-action,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-menu-action,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot tr td.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot tr th.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-menu-action,::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 tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body tr td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer tr td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.left,::ng-deep .fs-list-table thead tr th.left,::ng-deep .fs-list-table thead tr .fs-list-col.left,::ng-deep .fs-list-table thead .fs-list-row td.left,::ng-deep .fs-list-table thead .fs-list-row th.left,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table tbody tr td.left,::ng-deep .fs-list-table tbody tr th.left,::ng-deep .fs-list-table tbody tr .fs-list-col.left,::ng-deep .fs-list-table tbody .fs-list-row td.left,::ng-deep .fs-list-table tbody .fs-list-row th.left,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table tfoot tr td.left,::ng-deep .fs-list-table tfoot tr th.left,::ng-deep .fs-list-table tfoot tr .fs-list-col.left,::ng-deep .fs-list-table tfoot .fs-list-row td.left,::ng-deep .fs-list-table tfoot .fs-list-row th.left,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table .fs-list-head tr td.left,::ng-deep .fs-list-table .fs-list-head tr th.left,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.left,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.left,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.left,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table .fs-list-body tr td.left,::ng-deep .fs-list-table .fs-list-body tr th.left,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.left,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.left,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.left,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table .fs-list-footer tr td.left,::ng-deep .fs-list-table .fs-list-footer tr th.left,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.left,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.left,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.left,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.left{text-align:left}::ng-deep .fs-list-table thead tr td.center,::ng-deep .fs-list-table thead tr th.center,::ng-deep .fs-list-table thead tr .fs-list-col.center,::ng-deep .fs-list-table thead .fs-list-row td.center,::ng-deep .fs-list-table thead .fs-list-row th.center,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table tbody tr td.center,::ng-deep .fs-list-table tbody tr th.center,::ng-deep .fs-list-table tbody tr .fs-list-col.center,::ng-deep .fs-list-table tbody .fs-list-row td.center,::ng-deep .fs-list-table tbody .fs-list-row th.center,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table tfoot tr td.center,::ng-deep .fs-list-table tfoot tr th.center,::ng-deep .fs-list-table tfoot tr .fs-list-col.center,::ng-deep .fs-list-table tfoot .fs-list-row td.center,::ng-deep .fs-list-table tfoot .fs-list-row th.center,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table .fs-list-head tr td.center,::ng-deep .fs-list-table .fs-list-head tr th.center,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.center,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.center,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.center,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table .fs-list-body tr td.center,::ng-deep .fs-list-table .fs-list-body tr th.center,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.center,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.center,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.center,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table .fs-list-footer tr td.center,::ng-deep .fs-list-table .fs-list-footer tr th.center,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.center,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.center,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.center,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.center{text-align:center}::ng-deep .fs-list-table thead tr td.right,::ng-deep .fs-list-table thead tr th.right,::ng-deep .fs-list-table thead tr .fs-list-col.right,::ng-deep .fs-list-table thead .fs-list-row td.right,::ng-deep .fs-list-table thead .fs-list-row th.right,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table tbody tr td.right,::ng-deep .fs-list-table tbody tr th.right,::ng-deep .fs-list-table tbody tr .fs-list-col.right,::ng-deep .fs-list-table tbody .fs-list-row td.right,::ng-deep .fs-list-table tbody .fs-list-row th.right,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table tfoot tr td.right,::ng-deep .fs-list-table tfoot tr th.right,::ng-deep .fs-list-table tfoot tr .fs-list-col.right,::ng-deep .fs-list-table tfoot .fs-list-row td.right,::ng-deep .fs-list-table tfoot .fs-list-row th.right,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table .fs-list-head tr td.right,::ng-deep .fs-list-table .fs-list-head tr th.right,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.right,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.right,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.right,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table .fs-list-body tr td.right,::ng-deep .fs-list-table .fs-list-body tr th.right,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.right,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.right,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.right,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table .fs-list-footer tr td.right,::ng-deep .fs-list-table .fs-list-footer tr th.right,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.right,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.right,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.right,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.right{text-align:right}::ng-deep .fs-list-table thead tr.draggable,::ng-deep .fs-list-table thead .fs-list-row.draggable,::ng-deep .fs-list-table tbody tr.draggable,::ng-deep .fs-list-table tbody .fs-list-row.draggable,::ng-deep .fs-list-table tfoot tr.draggable,::ng-deep .fs-list-table tfoot .fs-list-row.draggable,::ng-deep .fs-list-table .fs-list-head tr.draggable,::ng-deep .fs-list-table .fs-list-head .fs-list-row.draggable,::ng-deep .fs-list-table .fs-list-body tr.draggable,::ng-deep .fs-list-table .fs-list-body .fs-list-row.draggable,::ng-deep .fs-list-table .fs-list-footer tr.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 thead tr.draggable td,::ng-deep .fs-list-table thead tr.draggable .fs-list-col,::ng-deep .fs-list-table thead .fs-list-row.draggable td,::ng-deep .fs-list-table thead .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table tbody tr.draggable td,::ng-deep .fs-list-table tbody tr.draggable .fs-list-col,::ng-deep .fs-list-table tbody .fs-list-row.draggable td,::ng-deep .fs-list-table tbody .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table tfoot tr.draggable td,::ng-deep .fs-list-table tfoot tr.draggable .fs-list-col,::ng-deep .fs-list-table tfoot .fs-list-row.draggable td,::ng-deep .fs-list-table tfoot .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-head tr.draggable td,::ng-deep .fs-list-table .fs-list-head tr.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row.draggable td,::ng-deep .fs-list-table .fs-list-head .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr.draggable td,::ng-deep .fs-list-table .fs-list-body tr.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row.draggable td,::ng-deep .fs-list-table .fs-list-body .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-footer tr.draggable td,::ng-deep .fs-list-table .fs-list-footer tr.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.draggable td,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.draggable .fs-list-col{border:none}::ng-deep .fs-list-table .fs-list-container.has-dragging thead th{border-bottom:2px solid #ddd}::ng-deep .fs-list-table .fs-list-container.has-dragging tbody tr:nth-child(2) td{border-top: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}}\n"], components: [{ type: i10.FilterComponent, selector: "fs-filter", inputs: ["config", "filter", "showSortBy", "showFilterInput"], outputs: ["closed", "opened", "ready"] }, { type: i11.FsStatusComponent, selector: "fs-list-status", inputs: ["paging", "sorting", "rows", "scrollable", "firstLoad"] }, { type: i12.FsHeadComponent, selector: "[fs-list-head]", inputs: ["sorting", "columns", "hasRowActions", "selection", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }, { type: i13.FsBodyComponent, selector: "[fs-list-body]", inputs: ["rows", "columns", "hasFooter", "rowActionsRaw", "groupActionsRaw", "rowEvents", "rowClass", "hasRowActions", "selection", "restoreMode", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }, { type: i14.FsFooterComponent, selector: "[fs-list-footer]", inputs: ["hasRowActions", "columns", "selection", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }, { type: i15.FsListLoaderComponent, selector: "fs-list-loader", inputs: ["columns", "loaderLines"] }, { type: i16.FsPaginationComponent, selector: "fs-list-pagination", inputs: ["pagination", "rows"] }], directives: [{ type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.FilterStatusBarDirective, selector: "[fsFilterStatusBar]" }, { type: i17.FsListContentInitDirective, selector: "[fsListContentInit]", inputs: ["fsListContentInit"] }, { type: i18.FsListDraggableListDirective, selector: "[fsListDraggableList]", inputs: ["rows"] }, { type: i19.FsListFooterDirective, selector: "[fs-list-footer]", inputs: ["colspan", "align", "class"] }], pipes: { "async": i9.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
325
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListComponent, decorators: [{
|
|
326
|
-
type: Component,
|
|
327
|
-
args: [{
|
|
328
|
-
selector: 'fs-list',
|
|
329
|
-
templateUrl: 'list.component.html',
|
|
330
|
-
styleUrls: ['./list.component.scss'],
|
|
331
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
332
|
-
providers: [
|
|
333
|
-
GroupExpandNotifierService,
|
|
334
|
-
PersistanceController,
|
|
335
|
-
ReorderController,
|
|
336
|
-
]
|
|
337
|
-
}]
|
|
338
|
-
}], ctorParameters: function () { return [{ type: i1.ReorderController }, { type: undefined, decorators: [{
|
|
339
|
-
type: Optional
|
|
340
|
-
}, {
|
|
341
|
-
type: Inject,
|
|
342
|
-
args: [FS_LIST_DEFAULT_CONFIG]
|
|
343
|
-
}] }, { type: i2.FsScrollService, decorators: [{
|
|
344
|
-
type: Optional
|
|
345
|
-
}] }, { type: i3.MatDialogRef, decorators: [{
|
|
346
|
-
type: Optional
|
|
347
|
-
}] }, { type: i4.DrawerRef, decorators: [{
|
|
348
|
-
type: Optional
|
|
349
|
-
}] }, { type: i0.ElementRef }, { type: i5.SelectionDialog }, { type: i3.MatDialog }, { type: i0.ChangeDetectorRef }, { type: i6.GroupExpandNotifierService }, { type: i7.Router }, { type: i7.ActivatedRoute }, { type: i8.PersistanceController }, { type: i9.Location }]; }, propDecorators: { classFsList: [{
|
|
350
|
-
type: HostBinding,
|
|
351
|
-
args: ['class.fs-list']
|
|
352
|
-
}], config: [{
|
|
353
|
-
type: Input,
|
|
354
|
-
args: ['config']
|
|
355
|
-
}], loaderLines: [{
|
|
356
|
-
type: Input
|
|
357
|
-
}], filtersReady: [{
|
|
358
|
-
type: Output
|
|
359
|
-
}], filterReference: [{
|
|
360
|
-
type: ViewChild,
|
|
361
|
-
args: [FilterComponent]
|
|
362
|
-
}], columnTemplates: [{
|
|
363
|
-
type: ContentChildren,
|
|
364
|
-
args: [FsListColumnDirective]
|
|
365
|
-
}], _emptyStateTemplate: [{
|
|
366
|
-
type: ContentChild,
|
|
367
|
-
args: [FsListEmptyStateDirective, { read: TemplateRef }]
|
|
368
|
-
}], headingTemplate: [{
|
|
369
|
-
type: ContentChild,
|
|
370
|
-
args: [FsListHeadingDirective, { read: TemplateRef }]
|
|
371
|
-
}], headingContainerTemplate: [{
|
|
372
|
-
type: ContentChild,
|
|
373
|
-
args: [FsListHeadingContainerDirective, { read: TemplateRef }]
|
|
374
|
-
}], subheadingTemplate: [{
|
|
375
|
-
type: ContentChild,
|
|
376
|
-
args: [FsListSubheadingDirective, { read: TemplateRef }]
|
|
377
|
-
}] } });
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Inject, Input, QueryList, ViewChild, HostBinding, Optional, ContentChild, TemplateRef, Output, } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
+
import { Location } from '@angular/common';
|
|
4
|
+
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
5
|
+
import { Subject } from 'rxjs';
|
|
6
|
+
import { filter, skip, take, takeUntil } from 'rxjs/operators';
|
|
7
|
+
import { FsScrollService } from '@firestitch/scroll';
|
|
8
|
+
import { FilterComponent } from '@firestitch/filter';
|
|
9
|
+
import { SelectionDialog } from '@firestitch/selection';
|
|
10
|
+
import { getNormalizedPath } from '@firestitch/common';
|
|
11
|
+
import { DrawerRef } from '@firestitch/drawer';
|
|
12
|
+
import { cloneDeep, mergeWith } from 'lodash-es';
|
|
13
|
+
import { List } from '../../classes/list-controller';
|
|
14
|
+
import { ReorderController } from '../../classes/reorder-controller';
|
|
15
|
+
import { FsListColumnDirective } from '../../directives/column/column.directive';
|
|
16
|
+
import { FsListEmptyStateDirective } from '../../directives/empty-state/empty-state.directive';
|
|
17
|
+
import { FS_LIST_DEFAULT_CONFIG } from '../../fs-list.providers';
|
|
18
|
+
import { CustomizeColsDialogComponent } from '../customize-cols/customize-cols.component';
|
|
19
|
+
import { GroupExpandNotifierService } from '../../services/group-expand-notifier.service';
|
|
20
|
+
import { PersistanceController } from '../../classes/persistance-controller';
|
|
21
|
+
import { FsListHeadingContainerDirective, FsListHeadingDirective, FsListSubheadingDirective } from '../../directives';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "../../classes/reorder-controller";
|
|
24
|
+
import * as i2 from "@firestitch/scroll";
|
|
25
|
+
import * as i3 from "@angular/material/dialog";
|
|
26
|
+
import * as i4 from "@firestitch/drawer";
|
|
27
|
+
import * as i5 from "@firestitch/selection";
|
|
28
|
+
import * as i6 from "../../services/group-expand-notifier.service";
|
|
29
|
+
import * as i7 from "@angular/router";
|
|
30
|
+
import * as i8 from "../../classes/persistance-controller";
|
|
31
|
+
import * as i9 from "@angular/common";
|
|
32
|
+
import * as i10 from "@firestitch/filter";
|
|
33
|
+
import * as i11 from "../status/status.component";
|
|
34
|
+
import * as i12 from "../head/head.component";
|
|
35
|
+
import * as i13 from "../body/body.component";
|
|
36
|
+
import * as i14 from "../footer/footer.component";
|
|
37
|
+
import * as i15 from "../loader/loader.component";
|
|
38
|
+
import * as i16 from "../pagination/pagination.component";
|
|
39
|
+
import * as i17 from "../../directives/content-init/content-init.directive";
|
|
40
|
+
import * as i18 from "../../directives/draggable-list/draggable-list.directive";
|
|
41
|
+
import * as i19 from "../../directives/footer/footer.directive";
|
|
42
|
+
export class FsListComponent {
|
|
43
|
+
constructor(reorderController, _defaultOptions, fsScroll, _dialogRef, _drawerRef, _el, selectionDialog, dialog, cdRef, _groupExpandNotifier, _router, _route, _persistance, _location) {
|
|
44
|
+
this.reorderController = reorderController;
|
|
45
|
+
this._defaultOptions = _defaultOptions;
|
|
46
|
+
this.fsScroll = fsScroll;
|
|
47
|
+
this._dialogRef = _dialogRef;
|
|
48
|
+
this._drawerRef = _drawerRef;
|
|
49
|
+
this._el = _el;
|
|
50
|
+
this.selectionDialog = selectionDialog;
|
|
51
|
+
this.dialog = dialog;
|
|
52
|
+
this.cdRef = cdRef;
|
|
53
|
+
this._groupExpandNotifier = _groupExpandNotifier;
|
|
54
|
+
this._router = _router;
|
|
55
|
+
this._route = _route;
|
|
56
|
+
this._persistance = _persistance;
|
|
57
|
+
this._location = _location;
|
|
58
|
+
this.classFsList = true;
|
|
59
|
+
this.loaderLines = 3;
|
|
60
|
+
this.filtersReady = new EventEmitter();
|
|
61
|
+
this.keywordVisible = true;
|
|
62
|
+
// Event will fired if action remove: true will clicked
|
|
63
|
+
this.rowRemoved = new EventEmitter();
|
|
64
|
+
this.firstLoad = true;
|
|
65
|
+
this._filterParamsReady = false;
|
|
66
|
+
this._inDialog = !!this._dialogRef || !!this._drawerRef;
|
|
67
|
+
this._destroy = new Subject();
|
|
68
|
+
}
|
|
69
|
+
set config(config) {
|
|
70
|
+
this._initWithConfig(config);
|
|
71
|
+
}
|
|
72
|
+
set filterReference(component) {
|
|
73
|
+
this._filterRef = component;
|
|
74
|
+
this.list.actions.setFilterRef(component);
|
|
75
|
+
this._emitFiltersReadyEvent();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Set columns to config
|
|
79
|
+
* Create Column Model instances
|
|
80
|
+
*
|
|
81
|
+
*/
|
|
82
|
+
set columnTemplates(listColumnDirectives) {
|
|
83
|
+
this.listColumnDirectives = listColumnDirectives;
|
|
84
|
+
if (this.list) {
|
|
85
|
+
this.list.tranformTemplatesToColumns(listColumnDirectives);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
set _emptyStateTemplate(template) {
|
|
89
|
+
if (this.list) {
|
|
90
|
+
this.list.emptyStateTemplate = template;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Return reference for filter
|
|
95
|
+
*/
|
|
96
|
+
get filterRef() {
|
|
97
|
+
return this._filterRef;
|
|
98
|
+
}
|
|
99
|
+
get groupEnabled() {
|
|
100
|
+
return this.list.dataController.groupEnabled;
|
|
101
|
+
}
|
|
102
|
+
get hasFilterKeyword() {
|
|
103
|
+
return this.list.filterInput && this.keywordVisible;
|
|
104
|
+
}
|
|
105
|
+
get hasStatus() {
|
|
106
|
+
return this.list.status &&
|
|
107
|
+
(this.list.sorting.isDefined || this.list.paging.enabled) &&
|
|
108
|
+
(!this.reorderController.enabled || (this.reorderController.enabled && this.reorderController.status)) &&
|
|
109
|
+
((this.list.scrollable && this.list.scrollable.status) || !this.list.scrollable);
|
|
110
|
+
}
|
|
111
|
+
get paginatorVisible() {
|
|
112
|
+
return this.list.paging.enabled
|
|
113
|
+
&& !this.firstLoad
|
|
114
|
+
&& !this.list.scrollable
|
|
115
|
+
&& !this.list.emptyStateEnabled
|
|
116
|
+
&& this.list.dataController.visibleRowsCount > 0
|
|
117
|
+
&& this.list.paging.pages > 1;
|
|
118
|
+
}
|
|
119
|
+
set groupEnabled(value) {
|
|
120
|
+
this.list.groupEnabled(value);
|
|
121
|
+
}
|
|
122
|
+
get filtersQuery() {
|
|
123
|
+
return this.list.filtersQuery;
|
|
124
|
+
}
|
|
125
|
+
ngOnInit() {
|
|
126
|
+
this._subscribeToRemoveRow();
|
|
127
|
+
this._subscribeToGroupExpandStatusChange();
|
|
128
|
+
}
|
|
129
|
+
ngOnDestroy() {
|
|
130
|
+
if (this.list) {
|
|
131
|
+
this.list.destroy();
|
|
132
|
+
}
|
|
133
|
+
this._destroy.next();
|
|
134
|
+
this._destroy.complete();
|
|
135
|
+
}
|
|
136
|
+
nextPage() {
|
|
137
|
+
this.list.paging.goNext();
|
|
138
|
+
}
|
|
139
|
+
prevPage() {
|
|
140
|
+
this.list.paging.goPrev();
|
|
141
|
+
}
|
|
142
|
+
firstPage() {
|
|
143
|
+
this.list.paging.goFirst();
|
|
144
|
+
}
|
|
145
|
+
lastPage() {
|
|
146
|
+
this.list.paging.goLast();
|
|
147
|
+
}
|
|
148
|
+
reload() {
|
|
149
|
+
this.list.reload();
|
|
150
|
+
}
|
|
151
|
+
getData(trackBy) {
|
|
152
|
+
return this.list.getData(trackBy);
|
|
153
|
+
}
|
|
154
|
+
hasData(trackBy) {
|
|
155
|
+
return this.list.hasData(trackBy);
|
|
156
|
+
}
|
|
157
|
+
updateData(rows, trackBy) {
|
|
158
|
+
return this.list.dataController.updateData(rows, trackBy);
|
|
159
|
+
}
|
|
160
|
+
replaceRow(row, trackBy) {
|
|
161
|
+
return this.list.dataController.replaceData(row, trackBy);
|
|
162
|
+
}
|
|
163
|
+
updateSelectionConfig(config) {
|
|
164
|
+
this.list.selection.updateConfig(config);
|
|
165
|
+
}
|
|
166
|
+
resetSelectionActions() {
|
|
167
|
+
this.list.selection.resetActions();
|
|
168
|
+
}
|
|
169
|
+
enableSelection() {
|
|
170
|
+
this.list.selection.enableSelection();
|
|
171
|
+
}
|
|
172
|
+
disableSelection() {
|
|
173
|
+
this.list.selection.disableSelection();
|
|
174
|
+
}
|
|
175
|
+
removeData(data) {
|
|
176
|
+
return this.list.dataController.removeData(data);
|
|
177
|
+
}
|
|
178
|
+
setHeading(heading) {
|
|
179
|
+
this.list.heading = heading;
|
|
180
|
+
}
|
|
181
|
+
setSubheading(subheading) {
|
|
182
|
+
this.list.subheading = subheading;
|
|
183
|
+
}
|
|
184
|
+
reorderStart() {
|
|
185
|
+
this.reorderController.enableReorder();
|
|
186
|
+
}
|
|
187
|
+
reorderFinish() {
|
|
188
|
+
this.reorderController.disableReorder();
|
|
189
|
+
}
|
|
190
|
+
setActions(actions) {
|
|
191
|
+
if (actions) {
|
|
192
|
+
this.list.actions.clearActions();
|
|
193
|
+
this.list.actions.setActions(actions);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
filterReady() {
|
|
197
|
+
this.list.filtersReady$.next();
|
|
198
|
+
this._filterParamsReady = true;
|
|
199
|
+
this._emitFiltersReadyEvent();
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Update visibility for specific column
|
|
203
|
+
*/
|
|
204
|
+
columnVisibility(name, show) {
|
|
205
|
+
this.columnsVisibility([{ name, show }]);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Update visibility for list of specific columns
|
|
209
|
+
*/
|
|
210
|
+
columnsVisibility(columns) {
|
|
211
|
+
this.list.columns.updateVisibilityForCols(columns);
|
|
212
|
+
}
|
|
213
|
+
_emitFiltersReadyEvent() {
|
|
214
|
+
if (!!this.filterRef && this._filterParamsReady) {
|
|
215
|
+
this.filtersReady.emit();
|
|
216
|
+
this.keywordVisible = this.filterRef.hasKeyword;
|
|
217
|
+
this.cdRef.markForCheck();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Initialize config for list
|
|
222
|
+
* @param config
|
|
223
|
+
*/
|
|
224
|
+
_initWithConfig(config) {
|
|
225
|
+
if (this.list) {
|
|
226
|
+
this.list.destroy();
|
|
227
|
+
}
|
|
228
|
+
const defaultOpts = this._defaultOptions
|
|
229
|
+
? cloneDeep(this._defaultOptions)
|
|
230
|
+
: {};
|
|
231
|
+
const listConfig = mergeWith(defaultOpts, config, this._configMergeCustomizer);
|
|
232
|
+
if (listConfig.persist !== false) {
|
|
233
|
+
this._restorePersistance(listConfig.persist);
|
|
234
|
+
}
|
|
235
|
+
this._updateCustomizeAction(listConfig.actions);
|
|
236
|
+
this.list = new List(this._el, listConfig, this.fsScroll, this.selectionDialog, this._router, this._route, this._persistance, this._inDialog);
|
|
237
|
+
this._waitFirstLoad();
|
|
238
|
+
this.reorderController.initWithConfig(config.reorder, this.list.dataController, this.list.actions, this.list.selection);
|
|
239
|
+
if (this.listColumnDirectives) {
|
|
240
|
+
this.list.tranformTemplatesToColumns(this.listColumnDirectives);
|
|
241
|
+
}
|
|
242
|
+
this._listenSortingChange();
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Find action with customize flag and re-declare click function for CustomizeColsDialog
|
|
246
|
+
* @param actions
|
|
247
|
+
*/
|
|
248
|
+
_updateCustomizeAction(actions) {
|
|
249
|
+
const customizeAction = actions === null || actions === void 0 ? void 0 : actions.find((action) => action.customize);
|
|
250
|
+
if (customizeAction) {
|
|
251
|
+
const actionClickFn = customizeAction.click;
|
|
252
|
+
customizeAction.click = () => {
|
|
253
|
+
if (actionClickFn) {
|
|
254
|
+
actionClickFn(null);
|
|
255
|
+
}
|
|
256
|
+
const dialogRef = this.dialog.open(CustomizeColsDialogComponent, {
|
|
257
|
+
data: {
|
|
258
|
+
columns: this.list.columns.columnsForDialog,
|
|
259
|
+
changeFn: this.list.columns.changeFn,
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
dialogRef
|
|
263
|
+
.afterClosed()
|
|
264
|
+
.pipe(takeUntil(this.list.onDestroy$), takeUntil(this._destroy))
|
|
265
|
+
.subscribe((data) => {
|
|
266
|
+
if (data) {
|
|
267
|
+
this.list.columns.updateVisibilityForCols(data);
|
|
268
|
+
this.cdRef.markForCheck();
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Update sorting in filter
|
|
276
|
+
*/
|
|
277
|
+
_listenSortingChange() {
|
|
278
|
+
this.list.sorting
|
|
279
|
+
.sortingChanged$
|
|
280
|
+
.pipe(takeUntil(this.list.onDestroy$), takeUntil(this._destroy))
|
|
281
|
+
.subscribe((sort) => {
|
|
282
|
+
this._filterRef.updateSort(sort);
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
_subscribeToRemoveRow() {
|
|
286
|
+
this.rowRemoved
|
|
287
|
+
.pipe(takeUntil(this._destroy))
|
|
288
|
+
.subscribe((row) => {
|
|
289
|
+
this.list.dataController.removeData(row);
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
_subscribeToGroupExpandStatusChange() {
|
|
293
|
+
if (this.list.dataController.hasGroups) {
|
|
294
|
+
this._groupExpandNotifier.expandStatusChange$
|
|
295
|
+
.pipe(takeUntil(this._destroy))
|
|
296
|
+
.subscribe((row) => {
|
|
297
|
+
this.list.dataController.toggleRowGroup(row);
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
_waitFirstLoad() {
|
|
302
|
+
this.list.loading$
|
|
303
|
+
.pipe(skip(1), filter((value) => value === false), take(1), takeUntil(this.list.onDestroy$), takeUntil(this._destroy))
|
|
304
|
+
.subscribe(() => {
|
|
305
|
+
this.firstLoad = false;
|
|
306
|
+
this.cdRef.markForCheck();
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
_configMergeCustomizer(objValue, srcValue) {
|
|
310
|
+
if (Array.isArray(objValue)) {
|
|
311
|
+
return objValue;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
_restorePersistance(persistConfig) {
|
|
315
|
+
const namespace = getNormalizedPath(this._location);
|
|
316
|
+
this._persistance.setConfig(persistConfig, namespace, this._inDialog);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
FsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListComponent, deps: [{ token: i1.ReorderController }, { token: FS_LIST_DEFAULT_CONFIG, optional: true }, { token: i2.FsScrollService, optional: true }, { token: i3.MatDialogRef, optional: true }, { token: i4.DrawerRef, optional: true }, { token: i0.ElementRef }, { token: i5.SelectionDialog }, { token: i3.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i6.GroupExpandNotifierService }, { token: i7.Router }, { token: i7.ActivatedRoute }, { token: i8.PersistanceController }, { token: i9.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
320
|
+
FsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsListComponent, selector: "fs-list", inputs: { config: "config", loaderLines: "loaderLines" }, outputs: { filtersReady: "filtersReady" }, host: { properties: { "class.fs-list": "this.classFsList" } }, providers: [
|
|
321
|
+
GroupExpandNotifierService,
|
|
322
|
+
PersistanceController,
|
|
323
|
+
ReorderController,
|
|
324
|
+
], 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 class=\"fs-list-table\" role=\"grid\" [fsListContentInit]=\"list.afterContentInit\">\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 >\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 >\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 >\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-pagination,.fs-list-container.loading .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-pagination,.fs-list-container.first-load .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 thead,::ng-deep .fs-list-table .fs-list-head{display:table-header-group}::ng-deep .fs-list-table thead th,::ng-deep .fs-list-table thead .fs-list-col,::ng-deep .fs-list-table .fs-list-head th,::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 thead th.fs-list-col-selection,::ng-deep .fs-list-table thead .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head th.fs-list-col-selection,::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 thead th.sorting,::ng-deep .fs-list-table thead .fs-list-col.sorting,::ng-deep .fs-list-table .fs-list-head th.sorting,::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting{cursor:pointer}::ng-deep .fs-list-table thead th.sorting:hover,::ng-deep .fs-list-table thead .fs-list-col.sorting:hover,::ng-deep .fs-list-table .fs-list-head th.sorting:hover,::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting:hover{background-color:#f6f6f6}::ng-deep .fs-list-table thead th .wrap,::ng-deep .fs-list-table thead .fs-list-col .wrap,::ng-deep .fs-list-table .fs-list-head th .wrap,::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 thead th .wrap mat-icon,::ng-deep .fs-list-table thead .fs-list-col .wrap mat-icon,::ng-deep .fs-list-table .fs-list-head th .wrap mat-icon,::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 thead th .wrap .direction,::ng-deep .fs-list-table thead .fs-list-col .wrap .direction,::ng-deep .fs-list-table .fs-list-head th .wrap .direction,::ng-deep .fs-list-table .fs-list-head .fs-list-col .wrap .direction{margin-left:5px}::ng-deep .fs-list-table thead th.sorting,::ng-deep .fs-list-table thead .fs-list-col.sorting,::ng-deep .fs-list-table .fs-list-head th.sorting,::ng-deep .fs-list-table .fs-list-head .fs-list-col.sorting{background-image:none}::ng-deep .fs-list-table tbody,::ng-deep .fs-list-table .fs-list-body{display:table-row-group;position:relative}::ng-deep .fs-list-table tbody.drag-hidden .drag-col,::ng-deep .fs-list-table .fs-list-body.drag-hidden .drag-col{opacity:0!important;cursor:default}::ng-deep .fs-list-table tbody.disabled,::ng-deep .fs-list-table .fs-list-body.disabled{opacity:.4;pointer-events:none}::ng-deep .fs-list-table tbody td,::ng-deep .fs-list-table tbody .fs-list-col,::ng-deep .fs-list-table .fs-list-body td,::ng-deep .fs-list-table .fs-list-body .fs-list-col{box-sizing:border-box;border-top:1px solid #ddd}::ng-deep .fs-list-table tbody tr:hover td,::ng-deep .fs-list-table tbody .fs-list-row:hover .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr:hover td,::ng-deep .fs-list-table .fs-list-body .fs-list-row:hover .fs-list-col{background-color:#f6f6f6}::ng-deep .fs-list-table tbody tr:hover td,::ng-deep .fs-list-table tbody tr:hover .fs-list-col,::ng-deep .fs-list-table tbody .fs-list-row:hover td,::ng-deep .fs-list-table tbody .fs-list-row:hover .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr:hover td,::ng-deep .fs-list-table .fs-list-body tr:hover .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row:hover td,::ng-deep .fs-list-table .fs-list-body .fs-list-row:hover .fs-list-col{background-color:#f6f6f6}::ng-deep .fs-list-table tbody tr:first-child td,::ng-deep .fs-list-table .fs-list-body tr:first-child td{border-top:2px solid #ddd}::ng-deep .fs-list-table tbody tr:last-child td,::ng-deep .fs-list-table .fs-list-body tr:last-child td{border-bottom:2px solid #ddd}::ng-deep .fs-list-table thead tr,::ng-deep .fs-list-table thead .fs-list-row,::ng-deep .fs-list-table tbody tr,::ng-deep .fs-list-table tbody .fs-list-row,::ng-deep .fs-list-table tfoot tr,::ng-deep .fs-list-table tfoot .fs-list-row,::ng-deep .fs-list-table .fs-list-head tr,::ng-deep .fs-list-table .fs-list-head .fs-list-row,::ng-deep .fs-list-table .fs-list-body tr,::ng-deep .fs-list-table .fs-list-body .fs-list-row,::ng-deep .fs-list-table .fs-list-footer tr,::ng-deep .fs-list-table .fs-list-footer .fs-list-row{display:table-row}::ng-deep .fs-list-table thead tr.drag-hidden,::ng-deep .fs-list-table thead .fs-list-row.drag-hidden,::ng-deep .fs-list-table tbody tr.drag-hidden,::ng-deep .fs-list-table tbody .fs-list-row.drag-hidden,::ng-deep .fs-list-table tfoot tr.drag-hidden,::ng-deep .fs-list-table tfoot .fs-list-row.drag-hidden,::ng-deep .fs-list-table .fs-list-head tr.drag-hidden,::ng-deep .fs-list-table .fs-list-head .fs-list-row.drag-hidden,::ng-deep .fs-list-table .fs-list-body tr.drag-hidden,::ng-deep .fs-list-table .fs-list-body .fs-list-row.drag-hidden,::ng-deep .fs-list-table .fs-list-footer tr.drag-hidden,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.drag-hidden{display:none}::ng-deep .fs-list-table thead tr.multiple-selection,::ng-deep .fs-list-table thead .fs-list-row.multiple-selection,::ng-deep .fs-list-table tbody tr.multiple-selection,::ng-deep .fs-list-table tbody .fs-list-row.multiple-selection,::ng-deep .fs-list-table tfoot tr.multiple-selection,::ng-deep .fs-list-table tfoot .fs-list-row.multiple-selection,::ng-deep .fs-list-table .fs-list-head tr.multiple-selection,::ng-deep .fs-list-table .fs-list-head .fs-list-row.multiple-selection,::ng-deep .fs-list-table .fs-list-body tr.multiple-selection,::ng-deep .fs-list-table .fs-list-body .fs-list-row.multiple-selection,::ng-deep .fs-list-table .fs-list-footer tr.multiple-selection,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.multiple-selection{background-color:#2196f380}::ng-deep .fs-list-table thead tr.multiple-selection .fs-list-col,::ng-deep .fs-list-table thead .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table tbody tr.multiple-selection .fs-list-col,::ng-deep .fs-list-table tbody .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table tfoot tr.multiple-selection .fs-list-col,::ng-deep .fs-list-table tfoot .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table .fs-list-head tr.multiple-selection .fs-list-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row.multiple-selection .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr.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 tr.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 thead tr td,::ng-deep .fs-list-table thead tr th,::ng-deep .fs-list-table thead tr .fs-list-col,::ng-deep .fs-list-table thead .fs-list-row td,::ng-deep .fs-list-table thead .fs-list-row th,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col,::ng-deep .fs-list-table tbody tr td,::ng-deep .fs-list-table tbody tr th,::ng-deep .fs-list-table tbody tr .fs-list-col,::ng-deep .fs-list-table tbody .fs-list-row td,::ng-deep .fs-list-table tbody .fs-list-row th,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col,::ng-deep .fs-list-table tfoot tr td,::ng-deep .fs-list-table tfoot tr th,::ng-deep .fs-list-table tfoot tr .fs-list-col,::ng-deep .fs-list-table tfoot .fs-list-row td,::ng-deep .fs-list-table tfoot .fs-list-row th,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col,::ng-deep .fs-list-table .fs-list-head tr td,::ng-deep .fs-list-table .fs-list-head tr th,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row td,::ng-deep .fs-list-table .fs-list-head .fs-list-row th,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr td,::ng-deep .fs-list-table .fs-list-body tr th,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row td,::ng-deep .fs-list-table .fs-list-body .fs-list-row th,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col,::ng-deep .fs-list-table .fs-list-footer tr td,::ng-deep .fs-list-table .fs-list-footer tr th,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th,::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 thead tr td.drag-col,::ng-deep .fs-list-table thead tr th.drag-col,::ng-deep .fs-list-table thead tr .fs-list-col.drag-col,::ng-deep .fs-list-table thead .fs-list-row td.drag-col,::ng-deep .fs-list-table thead .fs-list-row th.drag-col,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table tbody tr td.drag-col,::ng-deep .fs-list-table tbody tr th.drag-col,::ng-deep .fs-list-table tbody tr .fs-list-col.drag-col,::ng-deep .fs-list-table tbody .fs-list-row td.drag-col,::ng-deep .fs-list-table tbody .fs-list-row th.drag-col,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table tfoot tr td.drag-col,::ng-deep .fs-list-table tfoot tr th.drag-col,::ng-deep .fs-list-table tfoot tr .fs-list-col.drag-col,::ng-deep .fs-list-table tfoot .fs-list-row td.drag-col,::ng-deep .fs-list-table tfoot .fs-list-row th.drag-col,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-head tr td.drag-col,::ng-deep .fs-list-table .fs-list-head tr th.drag-col,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.drag-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.drag-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-body tr td.drag-col,::ng-deep .fs-list-table .fs-list-body tr th.drag-col,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.drag-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.drag-col,::ng-deep .fs-list-table .fs-list-footer tr th.drag-col,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.drag-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.drag-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.drag-col.drag-disabled,::ng-deep .fs-list-table thead tr th.drag-col.drag-disabled,::ng-deep .fs-list-table thead tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table thead .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table thead .fs-list-row th.drag-col.drag-disabled,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table tbody tr td.drag-col.drag-disabled,::ng-deep .fs-list-table tbody tr th.drag-col.drag-disabled,::ng-deep .fs-list-table tbody tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table tbody .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table tbody .fs-list-row th.drag-col.drag-disabled,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot tr td.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot tr th.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot .fs-list-row th.drag-col.drag-disabled,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head tr td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head tr th.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.drag-col.drag-disabled,::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 tr td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body tr th.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer tr th.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.drag-col.drag-disabled,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.drag-col mat-icon,::ng-deep .fs-list-table thead tr th.drag-col mat-icon,::ng-deep .fs-list-table thead tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table thead .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table thead .fs-list-row th.drag-col mat-icon,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table tbody tr td.drag-col mat-icon,::ng-deep .fs-list-table tbody tr th.drag-col mat-icon,::ng-deep .fs-list-table tbody tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table tbody .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table tbody .fs-list-row th.drag-col mat-icon,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table tfoot tr td.drag-col mat-icon,::ng-deep .fs-list-table tfoot tr th.drag-col mat-icon,::ng-deep .fs-list-table tfoot tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table tfoot .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table tfoot .fs-list-row th.drag-col mat-icon,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head tr td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head tr th.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.drag-col mat-icon,::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 tr td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body tr th.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer tr th.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.drag-col mat-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.fs-list-col-selection,::ng-deep .fs-list-table thead tr th.fs-list-col-selection,::ng-deep .fs-list-table thead tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table thead .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table thead .fs-list-row th.fs-list-col-selection,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table tbody tr td.fs-list-col-selection,::ng-deep .fs-list-table tbody tr th.fs-list-col-selection,::ng-deep .fs-list-table tbody tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table tbody .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table tbody .fs-list-row th.fs-list-col-selection,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table tfoot tr td.fs-list-col-selection,::ng-deep .fs-list-table tfoot tr th.fs-list-col-selection,::ng-deep .fs-list-table tfoot tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table tfoot .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table tfoot .fs-list-row th.fs-list-col-selection,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head tr td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head tr th.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.fs-list-col-selection,::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 tr td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body tr th.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer tr th.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.fs-list-col-selection,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.row-actions,::ng-deep .fs-list-table thead tr th.row-actions,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions,::ng-deep .fs-list-table thead .fs-list-row td.row-actions,::ng-deep .fs-list-table thead .fs-list-row th.row-actions,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table tbody tr td.row-actions,::ng-deep .fs-list-table tbody tr th.row-actions,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table tfoot tr td.row-actions,::ng-deep .fs-list-table tfoot tr th.row-actions,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-head tr td.row-actions,::ng-deep .fs-list-table .fs-list-head tr th.row-actions,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-body tr td.row-actions,::ng-deep .fs-list-table .fs-list-body tr th.row-actions,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.row-actions,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.row-actions .row-inline-action,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action,::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 tr td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action:first-child,::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 tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action:first-child,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead tr td.row-actions .row-menu-action,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead tr th.row-actions .row-menu-action,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead .fs-list-row th.row-actions .row-menu-action,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody tr td.row-actions .row-menu-action,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody tr th.row-actions .row-menu-action,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody .fs-list-row th.row-actions .row-menu-action,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot tr td.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot tr th.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot .fs-list-row th.row-actions .row-menu-action,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head tr td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head tr th.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.row-actions .row-menu-action,::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 tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body tr td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body tr th.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.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 tr td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer tr td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer tr td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer tr td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer tr th.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.row-actions .row-menu-action,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.row-actions .row-inline-action-icon,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.row-actions .row-inline-action-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.row-actions .row-inline-action-mini-fab,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.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 thead tr td.left,::ng-deep .fs-list-table thead tr th.left,::ng-deep .fs-list-table thead tr .fs-list-col.left,::ng-deep .fs-list-table thead .fs-list-row td.left,::ng-deep .fs-list-table thead .fs-list-row th.left,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table tbody tr td.left,::ng-deep .fs-list-table tbody tr th.left,::ng-deep .fs-list-table tbody tr .fs-list-col.left,::ng-deep .fs-list-table tbody .fs-list-row td.left,::ng-deep .fs-list-table tbody .fs-list-row th.left,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table tfoot tr td.left,::ng-deep .fs-list-table tfoot tr th.left,::ng-deep .fs-list-table tfoot tr .fs-list-col.left,::ng-deep .fs-list-table tfoot .fs-list-row td.left,::ng-deep .fs-list-table tfoot .fs-list-row th.left,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table .fs-list-head tr td.left,::ng-deep .fs-list-table .fs-list-head tr th.left,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.left,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.left,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.left,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table .fs-list-body tr td.left,::ng-deep .fs-list-table .fs-list-body tr th.left,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.left,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.left,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.left,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.left,::ng-deep .fs-list-table .fs-list-footer tr td.left,::ng-deep .fs-list-table .fs-list-footer tr th.left,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.left,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.left,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.left,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.left{text-align:left}::ng-deep .fs-list-table thead tr td.center,::ng-deep .fs-list-table thead tr th.center,::ng-deep .fs-list-table thead tr .fs-list-col.center,::ng-deep .fs-list-table thead .fs-list-row td.center,::ng-deep .fs-list-table thead .fs-list-row th.center,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table tbody tr td.center,::ng-deep .fs-list-table tbody tr th.center,::ng-deep .fs-list-table tbody tr .fs-list-col.center,::ng-deep .fs-list-table tbody .fs-list-row td.center,::ng-deep .fs-list-table tbody .fs-list-row th.center,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table tfoot tr td.center,::ng-deep .fs-list-table tfoot tr th.center,::ng-deep .fs-list-table tfoot tr .fs-list-col.center,::ng-deep .fs-list-table tfoot .fs-list-row td.center,::ng-deep .fs-list-table tfoot .fs-list-row th.center,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table .fs-list-head tr td.center,::ng-deep .fs-list-table .fs-list-head tr th.center,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.center,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.center,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.center,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table .fs-list-body tr td.center,::ng-deep .fs-list-table .fs-list-body tr th.center,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.center,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.center,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.center,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.center,::ng-deep .fs-list-table .fs-list-footer tr td.center,::ng-deep .fs-list-table .fs-list-footer tr th.center,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.center,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.center,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.center,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.center{text-align:center}::ng-deep .fs-list-table thead tr td.right,::ng-deep .fs-list-table thead tr th.right,::ng-deep .fs-list-table thead tr .fs-list-col.right,::ng-deep .fs-list-table thead .fs-list-row td.right,::ng-deep .fs-list-table thead .fs-list-row th.right,::ng-deep .fs-list-table thead .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table tbody tr td.right,::ng-deep .fs-list-table tbody tr th.right,::ng-deep .fs-list-table tbody tr .fs-list-col.right,::ng-deep .fs-list-table tbody .fs-list-row td.right,::ng-deep .fs-list-table tbody .fs-list-row th.right,::ng-deep .fs-list-table tbody .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table tfoot tr td.right,::ng-deep .fs-list-table tfoot tr th.right,::ng-deep .fs-list-table tfoot tr .fs-list-col.right,::ng-deep .fs-list-table tfoot .fs-list-row td.right,::ng-deep .fs-list-table tfoot .fs-list-row th.right,::ng-deep .fs-list-table tfoot .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table .fs-list-head tr td.right,::ng-deep .fs-list-table .fs-list-head tr th.right,::ng-deep .fs-list-table .fs-list-head tr .fs-list-col.right,::ng-deep .fs-list-table .fs-list-head .fs-list-row td.right,::ng-deep .fs-list-table .fs-list-head .fs-list-row th.right,::ng-deep .fs-list-table .fs-list-head .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table .fs-list-body tr td.right,::ng-deep .fs-list-table .fs-list-body tr th.right,::ng-deep .fs-list-table .fs-list-body tr .fs-list-col.right,::ng-deep .fs-list-table .fs-list-body .fs-list-row td.right,::ng-deep .fs-list-table .fs-list-body .fs-list-row th.right,::ng-deep .fs-list-table .fs-list-body .fs-list-row .fs-list-col.right,::ng-deep .fs-list-table .fs-list-footer tr td.right,::ng-deep .fs-list-table .fs-list-footer tr th.right,::ng-deep .fs-list-table .fs-list-footer tr .fs-list-col.right,::ng-deep .fs-list-table .fs-list-footer .fs-list-row td.right,::ng-deep .fs-list-table .fs-list-footer .fs-list-row th.right,::ng-deep .fs-list-table .fs-list-footer .fs-list-row .fs-list-col.right{text-align:right}::ng-deep .fs-list-table thead tr.draggable,::ng-deep .fs-list-table thead .fs-list-row.draggable,::ng-deep .fs-list-table tbody tr.draggable,::ng-deep .fs-list-table tbody .fs-list-row.draggable,::ng-deep .fs-list-table tfoot tr.draggable,::ng-deep .fs-list-table tfoot .fs-list-row.draggable,::ng-deep .fs-list-table .fs-list-head tr.draggable,::ng-deep .fs-list-table .fs-list-head .fs-list-row.draggable,::ng-deep .fs-list-table .fs-list-body tr.draggable,::ng-deep .fs-list-table .fs-list-body .fs-list-row.draggable,::ng-deep .fs-list-table .fs-list-footer tr.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 thead tr.draggable td,::ng-deep .fs-list-table thead tr.draggable .fs-list-col,::ng-deep .fs-list-table thead .fs-list-row.draggable td,::ng-deep .fs-list-table thead .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table tbody tr.draggable td,::ng-deep .fs-list-table tbody tr.draggable .fs-list-col,::ng-deep .fs-list-table tbody .fs-list-row.draggable td,::ng-deep .fs-list-table tbody .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table tfoot tr.draggable td,::ng-deep .fs-list-table tfoot tr.draggable .fs-list-col,::ng-deep .fs-list-table tfoot .fs-list-row.draggable td,::ng-deep .fs-list-table tfoot .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-head tr.draggable td,::ng-deep .fs-list-table .fs-list-head tr.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-head .fs-list-row.draggable td,::ng-deep .fs-list-table .fs-list-head .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-body tr.draggable td,::ng-deep .fs-list-table .fs-list-body tr.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-body .fs-list-row.draggable td,::ng-deep .fs-list-table .fs-list-body .fs-list-row.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-footer tr.draggable td,::ng-deep .fs-list-table .fs-list-footer tr.draggable .fs-list-col,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.draggable td,::ng-deep .fs-list-table .fs-list-footer .fs-list-row.draggable .fs-list-col{border:none}::ng-deep .fs-list-table .fs-list-container.has-dragging thead th{border-bottom:2px solid #ddd}::ng-deep .fs-list-table .fs-list-container.has-dragging tbody tr:nth-child(2) td{border-top: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}}\n"], components: [{ type: i10.FilterComponent, selector: "fs-filter", inputs: ["config", "filter", "showSortBy", "showFilterInput"], outputs: ["closed", "opened", "ready"] }, { type: i11.FsStatusComponent, selector: "fs-list-status", inputs: ["paging", "sorting", "rows", "scrollable", "firstLoad"] }, { type: i12.FsHeadComponent, selector: "[fs-list-head]", inputs: ["sorting", "columns", "hasRowActions", "selection", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }, { type: i13.FsBodyComponent, selector: "[fs-list-body]", inputs: ["rows", "columns", "hasFooter", "rowActionsRaw", "groupActionsRaw", "rowEvents", "rowClass", "hasRowActions", "selection", "restoreMode", "rowRemoved", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy", "reorderMultiple"] }, { type: i14.FsFooterComponent, selector: "[fs-list-footer]", inputs: ["hasRowActions", "columns", "selection", "activeFiltersCount", "reorderEnabled", "reorderPosition", "reorderStrategy"] }, { type: i15.FsListLoaderComponent, selector: "fs-list-loader", inputs: ["columns", "loaderLines"] }, { type: i16.FsPaginationComponent, selector: "fs-list-pagination", inputs: ["pagination", "rows"] }], directives: [{ type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.FilterStatusBarDirective, selector: "[fsFilterStatusBar]" }, { type: i17.FsListContentInitDirective, selector: "[fsListContentInit]", inputs: ["fsListContentInit"] }, { type: i18.FsListDraggableListDirective, selector: "[fsListDraggableList]", inputs: ["rows"] }, { type: i19.FsListFooterDirective, selector: "[fs-list-footer]", inputs: ["colspan", "align", "class"] }], pipes: { "async": i9.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListComponent, decorators: [{
|
|
326
|
+
type: Component,
|
|
327
|
+
args: [{
|
|
328
|
+
selector: 'fs-list',
|
|
329
|
+
templateUrl: 'list.component.html',
|
|
330
|
+
styleUrls: ['./list.component.scss'],
|
|
331
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
332
|
+
providers: [
|
|
333
|
+
GroupExpandNotifierService,
|
|
334
|
+
PersistanceController,
|
|
335
|
+
ReorderController,
|
|
336
|
+
]
|
|
337
|
+
}]
|
|
338
|
+
}], ctorParameters: function () { return [{ type: i1.ReorderController }, { type: undefined, decorators: [{
|
|
339
|
+
type: Optional
|
|
340
|
+
}, {
|
|
341
|
+
type: Inject,
|
|
342
|
+
args: [FS_LIST_DEFAULT_CONFIG]
|
|
343
|
+
}] }, { type: i2.FsScrollService, decorators: [{
|
|
344
|
+
type: Optional
|
|
345
|
+
}] }, { type: i3.MatDialogRef, decorators: [{
|
|
346
|
+
type: Optional
|
|
347
|
+
}] }, { type: i4.DrawerRef, decorators: [{
|
|
348
|
+
type: Optional
|
|
349
|
+
}] }, { type: i0.ElementRef }, { type: i5.SelectionDialog }, { type: i3.MatDialog }, { type: i0.ChangeDetectorRef }, { type: i6.GroupExpandNotifierService }, { type: i7.Router }, { type: i7.ActivatedRoute }, { type: i8.PersistanceController }, { type: i9.Location }]; }, propDecorators: { classFsList: [{
|
|
350
|
+
type: HostBinding,
|
|
351
|
+
args: ['class.fs-list']
|
|
352
|
+
}], config: [{
|
|
353
|
+
type: Input,
|
|
354
|
+
args: ['config']
|
|
355
|
+
}], loaderLines: [{
|
|
356
|
+
type: Input
|
|
357
|
+
}], filtersReady: [{
|
|
358
|
+
type: Output
|
|
359
|
+
}], filterReference: [{
|
|
360
|
+
type: ViewChild,
|
|
361
|
+
args: [FilterComponent]
|
|
362
|
+
}], columnTemplates: [{
|
|
363
|
+
type: ContentChildren,
|
|
364
|
+
args: [FsListColumnDirective]
|
|
365
|
+
}], _emptyStateTemplate: [{
|
|
366
|
+
type: ContentChild,
|
|
367
|
+
args: [FsListEmptyStateDirective, { read: TemplateRef }]
|
|
368
|
+
}], headingTemplate: [{
|
|
369
|
+
type: ContentChild,
|
|
370
|
+
args: [FsListHeadingDirective, { read: TemplateRef }]
|
|
371
|
+
}], headingContainerTemplate: [{
|
|
372
|
+
type: ContentChild,
|
|
373
|
+
args: [FsListHeadingContainerDirective, { read: TemplateRef }]
|
|
374
|
+
}], subheadingTemplate: [{
|
|
375
|
+
type: ContentChild,
|
|
376
|
+
args: [FsListSubheadingDirective, { read: TemplateRef }]
|
|
377
|
+
}] } });
|
|
378
378
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvbGlzdC9saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9saXN0L2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFdBQVcsRUFDWCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsT0FBTyxFQUFFLFNBQVMsRUFB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QUFxQiw4RUFiM0IsZUFBZSxnREM5RjVCLGsrTUFxS0E7NEZEdEdhLGVBQWU7a0JBWDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFdBQVcsRUFBRSxxQkFBcUI7b0JBQ2xDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNwQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNULDBCQUEwQjt3QkFDMUIscUJBQXFCO3dCQUNyQixpQkFBaUI7cUJBQ2xCO2lCQUNGOzswQkF1RUksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUN6QyxRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFRO2lUQXZFbUIsV0FBVztzQkFBeEMsV0FBVzt1QkFBQyxlQUFlO2dCQUd4QixNQUFNO3NCQURULEtBQUs7dUJBQUMsUUFBUTtnQkFNUixXQUFXO3NCQURqQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLE1BQU07Z0JBb0JLLGVBQWU7c0JBRDFCLFNBQVM7dUJBQUMsZUFBZTtnQkFjZCxlQUFlO3NCQUQxQixlQUFlO3VCQUFDLHFCQUFxQjtnQkFTMUIsbUJBQW1CO3NCQUQ5QixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFRdkQsZUFBZTtzQkFEckIsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBSXBELHdCQUF3QjtzQkFEOUIsWUFBWTt1QkFBQywrQkFBK0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBSTdELGtCQUFrQjtzQkFEeEIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgSG9zdEJpbmRpbmcsXG4gIE9wdGlvbmFsLFxuICBDb250ZW50Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc2tpcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGc1Njcm9sbFNlcnZpY2UgfSBmcm9tICdAZmlyZXN0aXRjaC9zY3JvbGwnO1xuaW1wb3J0IHsgRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkRpYWxvZyB9IGZyb20gJ0BmaXJlc3RpdGNoL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBnZXROb3JtYWxpemVkUGF0aCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5pbXBvcnQgeyBEcmF3ZXJSZWYgfSBmcm9tICdAZmlyZXN0aXRjaC9kcmF3ZXInO1xuXG5pbXBvcnQgeyBjbG9uZURlZXAsIG1lcmdlV2l0aCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IExpc3QgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2xpc3QtY29udHJvbGxlcic7XG5pbXBvcnQgeyBSZW9yZGVyQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcblxuaW1wb3J0IHsgRnNMaXN0Q29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb2x1bW4vY29sdW1uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0xpc3RFbXB0eVN0YXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRlNfTElTVF9ERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4uLy4uL2ZzLWxpc3QucHJvdmlkZXJzJztcbmltcG9ydCB7XG4gIEZzTGlzdEFic3RyYWN0Um93LFxuICBGc0xpc3RBY3Rpb24sXG4gIEZzTGlzdENvbmZpZywgRnNMaXN0UGVyc2l0YW5jZSwgRnNMaXN0U2VsZWN0aW9uQ29uZmlnLFxuICBGc0xpc3RUcmFja0J5Rm4sXG4gIEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGblxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbWl6ZUNvbHNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b21pemUtY29scy9jdXN0b21pemUtY29scy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JvdXBFeHBhbmROb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ncm91cC1leHBhbmQtbm90aWZpZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzaXN0YW5jZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3BlcnNpc3RhbmNlLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRnNMaXN0SGVhZGluZ0NvbnRhaW5lckRpcmVjdGl2ZSwgRnNMaXN0SGVhZGluZ0RpcmVjdGl2ZSwgRnNMaXN0U3ViaGVhZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJ2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBHcm91cEV4cGFuZE5vdGlmaWVyU2VydmljZSxcbiAgICBQZXJzaXN0YW5jZUNvbnRyb2xsZXIsXG4gICAgUmVvcmRlckNvbnRyb2xsZXIsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRnNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtbGlzdCcpIGNsYXNzRnNMaXN0ID0gdHJ1ZTtcblxuICBASW5wdXQoJ2NvbmZpZycpXG4gIHNldCBjb25maWcoY29uZmlnOiBGc0xpc3RDb25maWcpIHtcbiAgICB0aGlzLl9pbml0V2l0aENvbmZpZyhjb25maWcpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGVyTGluZXMgPSAzO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmlsdGVyc1JlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBsaXN0OiBMaXN0O1xuICBwdWJsaWMga2V5d29yZFZpc2libGUgPSB0cnVlO1xuICBwcml2YXRlIGxpc3RDb2x1bW5EaXJlY3RpdmVzOiBRdWVyeUxpc3Q8RnNMaXN0Q29sdW1uRGlyZWN0aXZlPjtcblxuICAvLyBFdmVudCB3aWxsIGZpcmVkIGlmIGFjdGlvbiByZW1vdmU6IHRydWUgd2lsbCBjbGlja2VkXG4gIHB1YmxpYyByb3dSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwdWJsaWMgZmlyc3RMb2FkID0gdHJ1ZTtcblxuICAvLyBwdWJsaWMgcmVhZG9ubHkgUmVvcmRlclN0cmF0ZWd5ID0gUmVvcmRlclN0cmF0ZWd5O1xuXG4gIHByaXZhdGUgX2ZpbHRlclJlZjogRmlsdGVyQ29tcG9uZW50O1xuICBwcml2YXRlIF9maWx0ZXJQYXJhbXNSZWFkeSA9IGZhbHNlO1xuICBwcml2YXRlIF9pbkRpYWxvZyA9ICEhdGhpcy5fZGlhbG9nUmVmIHx8ICEhdGhpcy5fZHJhd2VyUmVmO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xuXG4gIEBWaWV3Q2hpbGQoRmlsdGVyQ29tcG9uZW50KVxuICBwcml2YXRlIHNldCBmaWx0ZXJSZWZlcmVuY2UoY29tcG9uZW50KSB7XG4gICAgdGhpcy5fZmlsdGVyUmVmID0gY29tcG9uZW50O1xuICAgIHRoaXMubGlzdC5hY3Rpb25zLnNldEZpbHRlclJlZihjb21wb25lbnQpO1xuXG4gICAgdGhpcy5fZW1pdEZpbHRlcnNSZWFkeUV2ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvbHVtbnMgdG8gY29uZmlnXG4gICAqIENyZWF0ZSBDb2x1bW4gTW9kZWwgaW5zdGFuY2VzXG4gICAqXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEZzTGlzdENvbHVtbkRpcmVjdGl2ZSlcbiAgcHJpdmF0ZSBzZXQgY29sdW1uVGVtcGxhdGVzKGxpc3RDb2x1bW5EaXJlY3RpdmVzOiBRdWVyeUxpc3Q8RnNMaXN0Q29sdW1uRGlyZWN0aXZlPikge1xuICAgIHRoaXMubGlzdENvbHVtbkRpcmVjdGl2ZXMgPSBsaXN0Q29sdW1uRGlyZWN0aXZlcztcbiAgICBpZiAodGhpcy5saXN0KSB7XG4gICAgICB0aGlzLmxpc3QudHJhbmZvcm1UZW1wbGF0ZXNUb0NvbHVtbnMobGlzdENvbHVtbkRpcmVjdGl2ZXMpO1xuICAgIH1cbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRnNMaXN0RW1wdHlTdGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwcml2YXRlIHNldCBfZW1wdHlTdGF0ZVRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgaWYgKHRoaXMubGlzdCkge1xuICAgICAgdGhpcy5saXN0LmVtcHR5U3RhdGVUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgIH1cbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRnNMaXN0SGVhZGluZ0RpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwdWJsaWMgaGVhZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRnNMaXN0SGVhZGluZ0NvbnRhaW5lckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwdWJsaWMgaGVhZGluZ0NvbnRhaW5lclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRnNMaXN0U3ViaGVhZGluZ0RpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwdWJsaWMgc3ViaGVhZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZW9yZGVyQ29udHJvbGxlcjogUmVvcmRlckNvbnRyb2xsZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGU19MSVNUX0RFRkFVTFRfQ09ORklHKSBwcml2YXRlIF9kZWZhdWx0T3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGZzU2Nyb2xsOiBGc1Njcm9sbFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kcmF3ZXJSZWY6IERyYXdlclJlZjxhbnk+LFxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uRGlhbG9nOiBTZWxlY3Rpb25EaWFsb2csXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9ncm91cEV4cGFuZE5vdGlmaWVyOiBHcm91cEV4cGFuZE5vdGlmaWVyU2VydmljZSxcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBfcGVyc2lzdGFuY2U6IFBlcnNpc3RhbmNlQ29udHJvbGxlcixcbiAgICBwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICkge31cblxuICAvKipcbiAgICogUmV0dXJuIHJlZmVyZW5jZSBmb3IgZmlsdGVyXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZpbHRlclJlZigpOiBGaWx0ZXJDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJSZWY7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdyb3VwRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0LmRhdGFDb250cm9sbGVyLmdyb3VwRW5hYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzRmlsdGVyS2V5d29yZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5saXN0LmZpbHRlcklucHV0ICYmIHRoaXMua2V5d29yZFZpc2libGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1N0YXR1cygpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0LnN0YXR1cyAmJlxuICAgICAgKHRoaXMubGlzdC5zb3J0aW5nLmlzRGVmaW5lZCB8fCB0aGlzLmxpc3QucGFnaW5nLmVuYWJsZWQpICYmXG4gICAgICAoIXRoaXMucmVvcmRlckNvbnRyb2xsZXIuZW5hYmxlZCB8fCAodGhpcy5yZW9yZGVyQ29udHJvbGxlci5lbmFibGVkICYmIHRoaXMucmVvcmRlckNvbnRyb2xsZXIuc3RhdHVzKSkgJiZcbiAgICAgICgodGhpcy5saXN0LnNjcm9sbGFibGUgJiYgdGhpcy5saXN0LnNjcm9sbGFibGUuc3RhdHVzKSB8fCAhdGhpcy5saXN0LnNjcm9sbGFibGUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhZ2luYXRvclZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdC5wYWdpbmcuZW5hYmxlZFxuICAgICAgJiYgIXRoaXMuZmlyc3RMb2FkXG4gICAgICAmJiAhdGhpcy5saXN0LnNjcm9sbGFibGVcbiAgICAgICYmICF0aGlzLmxpc3QuZW1wdHlTdGF0ZUVuYWJsZWRcbiAgICAgICYmIHRoaXMubGlzdC5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0NvdW50ID4gMFxuICAgICAgJiYgdGhpcy5saXN0LnBhZ2luZy5wYWdlcyA+IDE7XG4gIH1cblxuICBwdWJsaWMgc2V0IGdyb3VwRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMubGlzdC5ncm91cEVuYWJsZWQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJzUXVlcnkoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmxpc3QuZmlsdGVyc1F1ZXJ5O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX3N1YnNjcmliZVRvUmVtb3ZlUm93KCk7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9Hcm91cEV4cGFuZFN0YXR1c0NoYW5nZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmxpc3QpIHtcbiAgICAgIHRoaXMubGlzdC5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5leHRQYWdlKCkge1xuICAgIHRoaXMubGlzdC5wYWdpbmcuZ29OZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcHJldlBhZ2UoKSB7XG4gICAgdGhpcy5saXN0LnBhZ2luZy5nb1ByZXYoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXJzdFBhZ2UoKSB7XG4gICAgdGhpcy5saXN0LnBhZ2luZy5nb0ZpcnN0KCk7XG4gIH1cblxuICBwdWJsaWMgbGFzdFBhZ2UoKSB7XG4gICAgdGhpcy5saXN0LnBhZ2luZy5nb0xhc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWQoKSB7XG4gICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIGdldERhdGEodHJhY2tCeT86IEZzTGlzdFRyYWNrQnlGbikge1xuICAgIHJldHVybiB0aGlzLmxpc3QuZ2V0RGF0YSh0cmFja0J5KTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNEYXRhKHRyYWNrQnk6IEZzTGlzdFRyYWNrQnlGbikge1xuICAgIHJldHVybiB0aGlzLmxpc3QuaGFzRGF0YSh0cmFja0J5KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEYXRhKFxuICAgIHJvd3M6IEZzTGlzdEFic3RyYWN0Um93IHwgRnNMaXN0QWJzdHJhY3RSb3dbXSxcbiAgICB0cmFja0J5PzogRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpc3QuZGF0YUNvbnRyb2xsZXIudXBkYXRlRGF0YShyb3dzLCB0cmFja0J5KTtcbiAgfVxuXG4gIHB1YmxpYyByZXBsYWNlUm93KFxuICAgIHJvdzogRnNMaXN0QWJzdHJhY3RSb3csXG4gICAgdHJhY2tCeT86IEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGblxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5saXN0LmRhdGFDb250cm9sbGVyLnJlcGxhY2VEYXRhKHJvdywgdHJhY2tCeSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU2VsZWN0aW9uQ29uZmlnKGNvbmZpZzogRnNMaXN0U2VsZWN0aW9uQ29uZmlnKSB7XG4gICAgdGhpcy5saXN0LnNlbGVjdGlvbi51cGRhdGVDb25maWcoY29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFNlbGVjdGlvbkFjdGlvbnMoKSB7XG4gICAgdGhpcy5saXN0LnNlbGVjdGlvbi5yZXNldEFjdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5saXN0LnNlbGVjdGlvbi5lbmFibGVTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlU2VsZWN0aW9uKCkge1xuICAgIHRoaXMubGlzdC5zZWxlY3Rpb24uZGlzYWJsZVNlbGVjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZURhdGEoZGF0YTogRnNMaXN0QWJzdHJhY3RSb3cgfCBGc0xpc3RBYnN0cmFjdFJvd1tdIHwgRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdC5kYXRhQ29udHJvbGxlci5yZW1vdmVEYXRhKGRhdGEpO1xuICB9XG5cbiAgcHVibGljIHNldEhlYWRpbmcoaGVhZGluZzogc3RyaW5nKSB7XG4gICAgdGhpcy5saXN0LmhlYWRpbmcgPSBoZWFkaW5nO1xuICB9XG5cbiAgcHVibGljIHNldFN1YmhlYWRpbmcoc3ViaGVhZGluZzogc3RyaW5nKSB7XG4gICAgdGhpcy5saXN0LnN1YmhlYWRpbmcgPSBzdWJoZWFkaW5nO1xuICB9XG5cbiAgcHVibGljIHJlb3JkZXJTdGFydCgpIHtcbiAgICB0aGlzLnJlb3JkZXJDb250cm9sbGVyLmVuYWJsZVJlb3JkZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW9yZGVyRmluaXNoKCkge1xuICAgIHRoaXMucmVvcmRlckNvbnRyb2xsZXIuZGlzYWJsZVJlb3JkZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3Rpb25zKGFjdGlvbnM6IEZzTGlzdEFjdGlvbltdKSB7XG4gICAgaWYgKGFjdGlvbnMpIHtcbiAgICAgIHRoaXMubGlzdC5hY3Rpb25zLmNsZWFyQWN0aW9ucygpO1xuICAgICAgdGhpcy5saXN0LmFjdGlvbnMuc2V0QWN0aW9ucyhhY3Rpb25zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyUmVhZHkoKSB7XG4gICAgdGhpcy5saXN0LmZpbHRlcnNSZWFkeSQubmV4dCgpO1xuICAgIHRoaXMuX2ZpbHRlclBhcmFtc1JlYWR5ID0gdHJ1ZTtcbiAgICB0aGlzLl9lbWl0RmlsdGVyc1JlYWR5RXZlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdmlzaWJpbGl0eSBmb3Igc3BlY2lmaWMgY29sdW1uXG4gICAqL1xuICBwdWJsaWMgY29sdW1uVmlzaWJpbGl0eShuYW1lOiBzdHJpbmcsIHNob3c6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbHVtbnNWaXNpYmlsaXR5KFsge25hbWUsIHNob3cgfSBdKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB2aXNpYmlsaXR5IGZvciBsaXN0IG9mIHNwZWNpZmljIGNvbHVtbnNcbiAgICovXG4gIHB1YmxpYyBjb2x1bW5zVmlzaWJpbGl0eShjb2x1bW5zOiB7IG5hbWU6IHN0cmluZywgc2hvdzogYm9vbGVhbiB9W10pIHtcbiAgICB0aGlzLmxpc3QuY29sdW1ucy51cGRhdGVWaXNpYmlsaXR5Rm9yQ29scyhjb2x1bW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRGaWx0ZXJzUmVhZHlFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoISF0aGlzLmZpbHRlclJlZiAmJiB0aGlzLl9maWx0ZXJQYXJhbXNSZWFkeSkge1xuICAgICAgdGhpcy5maWx0ZXJzUmVhZHkuZW1pdCgpO1xuXG4gICAgICB0aGlzLmtleXdvcmRWaXNpYmxlID0gdGhpcy5maWx0ZXJSZWYuaGFzS2V5d29yZDtcbiAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgY29uZmlnIGZvciBsaXN0XG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHByaXZhdGUgX2luaXRXaXRoQ29uZmlnKGNvbmZpZzogRnNMaXN0Q29uZmlnKSB7XG4gICAgaWYgKHRoaXMubGlzdCkge1xuICAgICAgdGhpcy5saXN0LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0T3B0cyA9IHRoaXMuX2RlZmF1bHRPcHRpb25zXG4gICAgICA/IGNsb25lRGVlcCh0aGlzLl9kZWZhdWx0T3B0aW9ucylcbiAgICAgIDoge307XG4gICAgY29uc3QgbGlzdENvbmZpZyA9IG1lcmdlV2l0aChkZWZhdWx0T3B0cywgY29uZmlnLCB0aGlzLl9jb25maWdNZXJnZUN1c3RvbWl6ZXIpO1xuXG4gICAgaWYgKGxpc3RDb25maWcucGVyc2lzdCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuX3Jlc3RvcmVQZXJzaXN0YW5jZShsaXN0Q29uZmlnLnBlcnNpc3QpO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZUN1c3RvbWl6ZUFjdGlvbihsaXN0Q29uZmlnLmFjdGlvbnMpO1xuXG4gICAgdGhpcy5saXN0ID0gbmV3IExpc3QoXG4gICAgICB0aGlzLl9lbCxcbiAgICAgIGxpc3RDb25maWcsXG4gICAgICB0aGlzLmZzU2Nyb2xsLFxuICAgICAgdGhpcy5zZWxlY3Rpb25EaWFsb2csXG4gICAgICB0aGlzLl9yb3V0ZXIsXG4gICAgICB0aGlzLl9yb3V0ZSxcbiAgICAgIHRoaXMuX3BlcnNpc3RhbmNlLFxuICAgICAgdGhpcy5faW5EaWFsb2csXG4gICAgKTtcblxuICAgIHRoaXMuX3dhaXRGaXJzdExvYWQoKTtcblxuICAgIHRoaXMucmVvcmRlckNvbnRyb2xsZXIuaW5pdFdpdGhDb25maWcoXG4gICAgICBjb25maWcucmVvcmRlcixcbiAgICAgIHRoaXMubGlzdC5kYXRhQ29udHJvbGxlcixcbiAgICAgIHRoaXMubGlzdC5hY3Rpb25zLFxuICAgICAgdGhpcy5saXN0LnNlbGVjdGlvbixcbiAgICApO1xuXG4gICAgaWYgKHRoaXMubGlzdENvbHVtbkRpcmVjdGl2ZXMpIHtcbiAgICAgIHRoaXMubGlzdC50cmFuZm9ybVRlbXBsYXRlc1RvQ29sdW1ucyh0aGlzLmxpc3RDb2x1bW5EaXJlY3RpdmVzKTtcbiAgICB9XG4gICAgdGhpcy5fbGlzdGVuU29ydGluZ0NoYW5nZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYWN0aW9uIHdpdGggY3VzdG9taXplIGZsYWcgYW5kIHJlLWRlY2xhcmUgY2xpY2sgZnVuY3Rpb24gZm9yIEN1c3RvbWl6ZUNvbHNEaWFsb2dcbiAgICogQHBhcmFtIGFjdGlvbnNcbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZUN1c3RvbWl6ZUFjdGlvbihhY3Rpb25zOiBGc0xpc3RBY3Rpb25bXSkge1xuICAgIGNvbnN0IGN1c3RvbWl6ZUFjdGlvbiA9IGFjdGlvbnM/LmZpbmQoKGFjdGlvbikgPT4gYWN0aW9uLmN1c3RvbWl6ZSk7XG5cbiAgICBpZiAoY3VzdG9taXplQWN0aW9uKSB7XG4gICAgICBjb25zdCBhY3Rpb25DbGlja0ZuID0gY3VzdG9taXplQWN0aW9uLmNsaWNrO1xuXG4gICAgICBjdXN0b21pemVBY3Rpb24uY2xpY2sgPSAoKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb25DbGlja0ZuKSB7XG4gICAgICAgICAgYWN0aW9uQ2xpY2tGbihudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ3VzdG9taXplQ29sc0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMubGlzdC5jb2x1bW5zLmNvbHVtbnNGb3JEaWFsb2csXG4gICAgICAgICAgICBjaGFuZ2VGbjogdGhpcy5saXN0LmNvbHVtbnMuY2hhbmdlRm4sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmxpc3Qub25EZXN0cm95JCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgIHRoaXMubGlzdC5jb2x1bW5zLnVwZGF0ZVZpc2liaWxpdHlGb3JDb2xzKGRhdGEpO1xuXG4gICAgICAgICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzb3J0aW5nIGluIGZpbHRlclxuICAgKi9cbiAgcHJpdmF0ZSBfbGlzdGVuU29ydGluZ0NoYW5nZSgpIHtcbiAgICB0aGlzLmxpc3Quc29ydGluZ1xuICAgICAgLnNvcnRpbmdDaGFuZ2VkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmxpc3Qub25EZXN0cm95JCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHNvcnQpID0+IHtcbiAgICAgICAgdGhpcy5fZmlsdGVyUmVmLnVwZGF0ZVNvcnQoc29ydCk7XG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9SZW1vdmVSb3coKSB7XG4gICAgdGhpcy5yb3dSZW1vdmVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKChyb3cpID0+IHtcbiAgICAgICAgdGhpcy5saXN0LmRhdGFDb250cm9sbGVyLnJlbW92ZURhdGEocm93KTtcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVUb0dyb3VwRXhwYW5kU3RhdHVzQ2hhbmdlKCkge1xuICAgIGlmICh0aGlzLmxpc3QuZGF0YUNvbnRyb2xsZXIuaGFzR3JvdXBzKSB7XG4gICAgICB0aGlzLl9ncm91cEV4cGFuZE5vdGlmaWVyLmV4cGFuZFN0YXR1c0NoYW5nZSRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgocm93KSA9PiB7XG4gICAgICAgICAgdGhpcy5saXN0LmRhdGFDb250cm9sbGVyLnRvZ2dsZVJvd0dyb3VwKHJvdyk7XG4gICAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfd2FpdEZpcnN0TG9hZCgpIHtcbiAgICB0aGlzLmxpc3QubG9hZGluZyRcbiAgICAgIC5waXBlKFxuICAgICAgICBza2lwKDEpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gZmFsc2UpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5saXN0Lm9uRGVzdHJveSQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5maXJzdExvYWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlnTWVyZ2VDdXN0b21pemVyKG9ialZhbHVlOiBhbnksIHNyY1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmpWYWx1ZSkpIHtcbiAgICAgIHJldHVybiBvYmpWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXN0b3JlUGVyc2lzdGFuY2UocGVyc2lzdENvbmZpZzogRnNMaXN0UGVyc2l0YW5jZSkge1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IGdldE5vcm1hbGl6ZWRQYXRoKHRoaXMuX2xvY2F0aW9uKTtcbiAgICB0aGlzLl9wZXJzaXN0YW5jZS5zZXRDb25maWcocGVyc2lzdENvbmZpZywgbmFtZXNwYWNlLCB0aGlzLl9pbkRpYWxvZyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmcy1saXN0LWNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2hhcy1maWx0ZXIta2V5d29yZCc6IGhhc0ZpbHRlcktleXdvcmQsXG4gICAgICAnaGFzLWZpbHRlcnMnOiBsaXN0LmZpbHRlckNvbmZpZz8uaXRlbXMubGVuZ3RoLFxuICAgICAgJ2hhcy1oZWFkaW5nJzogbGlzdC5oZWFkaW5nIHx8IGhlYWRpbmdUZW1wbGF0ZSxcbiAgICAgICdoYXMtc3RhdHVzJzogaGFzU3RhdHVzLFxuICAgICAgJ2hhcy1jaGlwcyc6IGxpc3QuY2hpcHMsXG4gICAgICAnaGFzLWFjdGlvbnMnOiBsaXN0LmFjdGlvbnMuaGFzQWN0aW9ucyxcbiAgICAgICdmaXJzdC1sb2FkJzogZmlyc3RMb2FkLFxuICAgICAgJ2xvYWRpbmcnOiBsaXN0LmxvYWRpbmckIHwgYXN5bmNcbiAgICB9XCI+XG4gIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0Q29udGFpbmVyQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsaXN0Q29udGFpbmVyQ29udGVudD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3QuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3MkIHwgYXN5bmMgYXMgbGlzdERhdGFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZnMtbGlzdC1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmcy1saXN0LWhlYWRlclwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnbm8td3JhcCc6IHJlb3JkZXJDb250cm9sbGVyLm1hbnVhbFJlb3JkZXJBY3RpdmF0ZWQgfHwgIWxpc3QuZmlsdGVyQ29uZmlnPy5pdGVtcy5sZW5ndGggfVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cImhhc0ZpbHRlcktleXdvcmRcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1wiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGZzLWZpbHRlclxuICAgICAgICAgICAgY2xhc3M9XCJmcy1saXN0LWZpbHRlclwiXG4gICAgICAgICAgICAqbmdJZj1cImxpc3QuZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgIFtmaWx0ZXJdPVwibGlzdC5maWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgW3Nob3dTb3J0QnldPVwiIWxpc3Quc3RhdHVzXCJcbiAgICAgICAgICAgIFtzaG93RmlsdGVySW5wdXRdPVwibGlzdC5maWx0ZXJJbnB1dFwiXG4gICAgICAgICAgICAocmVhZHkpPVwiZmlsdGVyUmVhZHkoKVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBmc0ZpbHRlclN0YXR1c0Jhcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFoYXNGaWx0ZXJLZXl3b3JkXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nXCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNTdGF0dXNcIj5cbiAgICAgICAgICAgICAgPGZzLWxpc3Qtc3RhdHVzXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmcy1saXN0LXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaGlkZGVuLW1vYmlsZSc6ICFsaXN0LnN0YXR1cyB9XCJcbiAgICAgICAgICAgICAgICBbcm93c109XCJsaXN0RGF0YVwiXG4gICAgICAgICAgICAgICAgW3NvcnRpbmddPVwibGlzdC5zb3J0aW5nXCJcbiAgICAgICAgICAgICAgICBbcGFnaW5nXT1cImxpc3QucGFnaW5nXCJcbiAgICAgICAgICAgICAgICBbZmlyc3RMb2FkXT1cImZpcnN0TG9hZFwiXG4gICAgICAgICAgICAgICAgW3Njcm9sbGFibGVdPVwibGlzdC5zY3JvbGxhYmxlIHx8IGxpc3QucGFnaW5nLmxvYWRNb3JlRW5hYmxlZFwiPlxuICAgICAgICAgICAgICA8L2ZzLWxpc3Qtc3RhdHVzPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9mcy1maWx0ZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmcy1saXN0LWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPCEtLSBUYWJsZSBpbXBsZW1lbnRhdGlvbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZnMtbGlzdC10YWJsZS1jb250YWluZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlyc3RMb2FkICYmIGxpc3REYXRhLmxlbmd0aCA+IDAgJiYgIWxpc3QuZW1wdHlTdGF0ZUVuYWJsZWRcIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwiZnMtbGlzdC10YWJsZVwiIHJvbGU9XCJncmlkXCIgW2ZzTGlzdENvbnRlbnRJbml0XT1cImxpc3QuYWZ0ZXJDb250ZW50SW5pdFwiPlxuICAgICAgICAgIDx0aGVhZFxuICAgICAgICAgICAgZnMtbGlzdC1oZWFkXG4gICAgICAgICAgICBjbGFzcz1cImZzLWxpc3QtaGVhZFwiXG4gICAgICAgICAgICByb2xlPVwicm93Z3JvdXBcIlxuICAgICAgICAgICAgKm5nSWY9XCJsaXN0LmNvbHVtbnMuaGFzSGVhZGVyXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImxpc3QuY29sdW1ucy50aGVhZENsYXNzXCJcbiAgICAgICAgICAgIFtjb2x1bW5zXT1cImxpc3QuY29sdW1ucy52aXNpYmxlQ29sdW1ucyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbc29ydGluZ109XCJsaXN0LnNvcnRpbmdcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJsaXN0LnNlbGVjdGlvblwiXG4gICAgICAgICAgICBbaGFzUm93QWN0aW9uc109XCJsaXN0Lmhhc1Jvd0FjdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUZpbHRlcnNDb3VudF09XCJsaXN0LmFjdGl2ZUZpbHRlcnNDb3VudCQgfCBhc3luY1wiXG4gICAgICAgICAgICBbcmVvcmRlckVuYWJsZWRdPVwicmVvcmRlckNvbnRyb2xsZXIuZW5hYmxlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICBbcmVvcmRlclBvc2l0aW9uXT1cInJlb3JkZXJDb250cm9sbGVyLnBvc2l0aW9uJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtyZW9yZGVyU3RyYXRlZ3ldPVwicmVvcmRlckNvbnRyb2xsZXIuc3RyYXRlZ3kkIHwgYXN5bmNcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3RoZWFkPlxuXG4gICAgICAgICAgPHRib2R5XG4gICAgICAgICAgICBmcy1saXN0LWJvZHlcbiAgICAgICAgICAgIGZzTGlzdERyYWdnYWJsZUxpc3RcbiAgICAgICAgICAgIGNsYXNzPVwiZnMtbGlzdC1ib2R5XCJcbiAgICAgICAgICAgIHJvbGU9XCJyb3dncm91cFwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiISEocmVvcmRlckNvbnRyb2xsZXIucmVvcmRlckRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICBbcm93c109XCJsaXN0RGF0YVwiXG4gICAgICAgICAgICBbcm93QWN0aW9uc1Jhd109XCJsaXN0LnJvd0FjdGlvbnNSYXdcIlxuICAgICAgICAgICAgW2dyb3VwQWN0aW9uc1Jhd109XCJsaXN0Lmdyb3VwQWN0aW9uc1Jhd1wiXG4gICAgICAgICAgICBbaGFzUm93QWN0aW9uc109XCJsaXN0Lmhhc1Jvd0FjdGlvbnNcIlxuICAgICAgICAgICAgW3Jvd0V2ZW50c109XCJsaXN0LnJvd0V2ZW50c1wiXG4gICAgICAgICAgICBbcm93Q2xhc3NdPVwibGlzdC5yb3dDbGFzc1wiXG4gICAgICAgICAgICBbY29sdW1uc109XCJsaXN0LmNvbHVtbnMudmlzaWJsZUNvbHVtbnMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW3Jlc3RvcmVNb2RlXT1cImxpc3QucmVzdG9yZU1vZGVcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJsaXN0LnNlbGVjdGlvblwiXG4gICAgICAgICAgICBbcm93UmVtb3ZlZF09XCJyb3dSZW1vdmVkXCJcbiAgICAgICAgICAgIFthY3RpdmVGaWx0ZXJzQ291bnRdPVwibGlzdC5hY3RpdmVGaWx0ZXJzQ291bnQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW3Jlb3JkZXJFbmFibGVkXT1cInJlb3JkZXJDb250cm9sbGVyLmVuYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW3Jlb3JkZXJQb3NpdGlvbl09XCJyZW9yZGVyQ29udHJvbGxlci5wb3NpdGlvbiQgfCBhc3luY1wiXG4gICAgICAgICAgICBbcmVvcmRlclN0cmF0ZWd5XT1cInJlb3JkZXJDb250cm9sbGVyLnN0cmF0ZWd5JCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtyZW9yZGVyTXVsdGlwbGVdPVwicmVvcmRlckNvbnRyb2xsZXIubXVsdGlwbGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3Rib2R5PlxuXG4gICAgICAgICAgPHRmb290XG4gICAgICAgICAgICBmcy1saXN0LWZvb3RlclxuICAgICAgICAgICAgY2xhc3M9XCJmcy1saXN0LWZvb3RlclwiXG4gICAgICAgICAgICAqbmdJZj1cImxpc3QuY29sdW1ucy5oYXNGb290ZXJcIlxuICAgICAgICAgICAgW2NvbHVtbnNdPVwibGlzdC5jb2x1bW5zLnZpc2libGVDb2x1bW5zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25dPVwibGlzdC5zZWxlY3Rpb25cIlxuICAgICAgICAgICAgW2hhc1Jvd0FjdGlvbnNdPVwibGlzdC5oYXNSb3dBY3Rpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVGaWx0ZXJzQ291bnRdPVwibGlzdC5hY3RpdmVGaWx0ZXJzQ291bnQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW3Jlb3JkZXJFbmFibGVkXT1cInJlb3JkZXJDb250cm9sbGVyLmVuYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW3Jlb3JkZXJQb3NpdGlvbl09XCJyZW9yZGVyQ29udHJvbGxlci5wb3NpdGlvbiQgfCBhc3luY1wiXG4gICAgICAgICAgICBbcmVvcmRlclN0cmF0ZWd5XT1cInJlb3JkZXJDb250cm9sbGVyLnN0cmF0ZWd5JCB8IGFzeW5jXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC90Zm9vdD5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGZzLWxpc3QtbG9hZGVyXG4gICAgICAgICpuZ0lmPVwiZmlyc3RMb2FkXCJcbiAgICAgICAgW2NvbHVtbnNdPVwibGlzdC5jb2x1bW5zLmNvbHVtbnNcIlxuICAgICAgICBbbG9hZGVyTGluZXNdPVwibG9hZGVyTGluZXNcIj5cbiAgICAgIDwvZnMtbGlzdC1sb2FkZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZnMtbGlzdC1wYWdpbmF0aW9uXG4gICAgICAqbmdJZj1cInBhZ2luYXRvclZpc2libGVcIlxuICAgICAgY2xhc3M9XCJmcy1saXN0LXBhZ2luYXRpb25cIlxuICAgICAgW3Jvd3NdPVwibGlzdERhdGFcIlxuICAgICAgW3BhZ2luYXRpb25dPVwibGlzdC5wYWdpbmdcIj5cbiAgICA8L2ZzLWxpc3QtcGFnaW5hdGlvbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlyc3RMb2FkXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJsaXN0RGF0YS5sZW5ndGggPT09IDBcIlxuICAgICAgICAgIGNsYXNzPVwiZnMtbGlzdC1uby1yZXN1bHRzLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImxpc3Qubm9SZXN1bHRzPy5tZXNzYWdlICYmICFsaXN0LmVtcHR5U3RhdGVFbmFibGVkXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZnMtbGlzdC1uby1yZXN1bHRzXCI+XG4gICAgICAgICAge3sgbGlzdC5ub1Jlc3VsdHM/Lm1lc3NhZ2UgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0LmVtcHR5U3RhdGVFbmFibGVkXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3QuZW1wdHlTdGF0ZVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJoZWFkaW5nLWNvbnRhaW5lclwiICpuZ0lmPVwiaGVhZGluZ0NvbnRhaW5lclRlbXBsYXRlIHx8IGxpc3QuaGVhZGluZyB8fCBsaXN0LnN1YmhlYWRpbmcgfHwgaGVhZGluZ1RlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRpbmdDb250YWluZXJUZW1wbGF0ZTsgZWxzZSBoZWFkaW5nQ29udGFpbmVyXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdDb250YWluZXJUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHRlbXBsYXRlOiBoZWFkaW5nQ29udGFpbmVyIH1cIj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGluZ0NvbnRhaW5lcj5cbiAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmdcIiAqbmdJZj1cImxpc3QuaGVhZGluZyB8fCBoZWFkaW5nVGVtcGxhdGVcIj5cbiAgICAgICAge3tsaXN0LmhlYWRpbmd9fVxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9oMj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbCBzdWJoZWFkaW5nXCIgKm5nSWY9XCJsaXN0LnN1YmhlYWRpbmcgfHwgc3ViaGVhZGluZ1RlbXBsYXRlXCI+XG4gICAgICAgIHt7bGlzdC5zdWJoZWFkaW5nfX1cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzdWJoZWFkaW5nVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|