@firestitch/list 12.1.5 → 12.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/app/classes/data-controller.d.ts +1 -0
  2. package/app/classes/list-controller.d.ts +4 -7
  3. package/app/components/body/row/row.component.d.ts +3 -0
  4. package/app/directives/column/column.directive.d.ts +5 -3
  5. package/app/directives/group-footer/group-footer.directive.d.ts +6 -0
  6. package/app/directives/group-header/group-header.directive.d.ts +6 -0
  7. package/app/enums/row-type.enum.d.ts +2 -1
  8. package/app/fs-list.module.d.ts +26 -25
  9. package/app/interfaces/column-config.interface.d.ts +1 -1
  10. package/app/interfaces/listconfig.interface.d.ts +2 -1
  11. package/app/models/column.model.d.ts +6 -3
  12. package/app/models/row/group-footer-row.d.ts +10 -0
  13. package/app/models/row/group-row.d.ts +2 -1
  14. package/app/models/row-action.model.d.ts +2 -3
  15. package/app/models/row.d.ts +3 -1
  16. package/app/models/styleConfig.model.d.ts +2 -2
  17. package/bundles/firestitch-list.umd.js +252 -232
  18. package/bundles/firestitch-list.umd.js.map +1 -1
  19. package/esm2015/app/classes/columns-controller.js +3 -2
  20. package/esm2015/app/classes/data-controller.js +18 -2
  21. package/esm2015/app/classes/list-controller.js +21 -84
  22. package/esm2015/app/components/body/row/cell/cell.component.js +8 -4
  23. package/esm2015/app/components/body/row/row.component.js +11 -2
  24. package/esm2015/app/directives/column/column.directive.js +14 -7
  25. package/esm2015/app/directives/group-footer/group-footer.directive.js +14 -0
  26. package/esm2015/app/directives/group-header/group-header.directive.js +14 -0
  27. package/esm2015/app/enums/row-type.enum.js +3 -2
  28. package/esm2015/app/fs-list.module.js +11 -6
  29. package/esm2015/app/interfaces/column-config.interface.js +1 -1
  30. package/esm2015/app/interfaces/listconfig.interface.js +1 -1
  31. package/esm2015/app/models/column.model.js +15 -8
  32. package/esm2015/app/models/row/group-footer-row.js +21 -0
  33. package/esm2015/app/models/row/group-row.js +1 -1
  34. package/esm2015/app/models/row-action.model.js +13 -46
  35. package/esm2015/app/models/row.js +5 -1
  36. package/esm2015/app/models/styleConfig.model.js +8 -18
  37. package/esm2015/public_api.js +3 -2
  38. package/fesm2015/firestitch-list.js +148 -170
  39. package/fesm2015/firestitch-list.js.map +1 -1
  40. package/package.json +5 -5
  41. package/public_api.d.ts +2 -1
  42. package/app/directives/group-cell/group-cell.directive.d.ts +0 -6
  43. package/esm2015/app/directives/group-cell/group-cell.directive.js +0 -14
@@ -35,20 +35,17 @@ import { takeUntil, tap, skip, distinctUntilChanged, take, map, debounceTime, sw
35
35
  import * as i3$3 from '@firestitch/selection';
36
36
  import { getNormalizedPath } from '@firestitch/common';
37
37
  import * as i9 from '@firestitch/drawer';
38
- import { __decorate, __metadata } from 'tslib';
39
- import { Model, Alias } from 'tsmodels';
40
38
  import * as i1 from '@firestitch/store';
41
39
  import { FsPersistanceStore } from '@firestitch/store';
42
40
  import * as i5 from '@angular/flex-layout/extended';
43
41
  import * as i3$2 from '@angular/flex-layout/flex';
44
42
 
45
- class StyleConfig extends Model {
43
+ class StyleConfig {
46
44
  constructor(config = {}) {
47
- super();
48
45
  this.className = []; // Can't be used in tempaltes!
49
46
  this.classesArray = []; // Can be used in tempaltes
50
47
  this.classesString = '';
51
- this._fromJSON(config);
48
+ this._init(config);
52
49
  }
53
50
  /**
54
51
  * Create static array of styles for using in templates
@@ -98,6 +95,11 @@ class StyleConfig extends Model {
98
95
  }
99
96
  this.className = targetValue;
100
97
  }
98
+ _init(config) {
99
+ this.colspan = config.colspan;
100
+ this.align = config.align;
101
+ this.className = config.className;
102
+ }
101
103
  /**
102
104
  * Merge params into array
103
105
  * @param to
@@ -112,18 +114,6 @@ class StyleConfig extends Model {
112
114
  }
113
115
  }
114
116
  }
115
- __decorate([
116
- Alias(),
117
- __metadata("design:type", Object)
118
- ], StyleConfig.prototype, "colspan", void 0);
119
- __decorate([
120
- Alias(),
121
- __metadata("design:type", String)
122
- ], StyleConfig.prototype, "align", void 0);
123
- __decorate([
124
- Alias(),
125
- __metadata("design:type", Object)
126
- ], StyleConfig.prototype, "className", void 0);
127
117
 
128
118
  var SortingDirection;
129
119
  (function (SortingDirection) {
@@ -139,11 +129,13 @@ const ALLOWED_DEFAULTS = [
139
129
  class Column {
140
130
  constructor(colConfig, colDefaults = false) {
141
131
  this.headerConfigs = new StyleConfig();
142
- this.groupCellConfigs = new StyleConfig();
132
+ this.groupHeaderConfigs = new StyleConfig();
133
+ this.groupFooterConfigs = new StyleConfig();
143
134
  this.cellConfigs = new StyleConfig();
144
135
  this.footerConfigs = new StyleConfig();
145
136
  this.headerColspanned = false;
146
- this.groupCellColspanned = false;
137
+ this.groupHeaderColspanned = false;
138
+ this.groupFooterColspanned = false;
147
139
  this.cellColspanned = false;
148
140
  this.footerColspanned = false;
149
141
  this._ordered = false;
@@ -235,7 +227,8 @@ class Column {
235
227
  case 'class':
236
228
  {
237
229
  this.headerConfigs.mergeClassByPriority(this.colStyles, defaults.header);
238
- this.groupCellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
230
+ this.groupHeaderConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
231
+ this.groupFooterConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
239
232
  this.cellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
240
233
  this.footerConfigs.mergeClassByPriority(this.colStyles, defaults.footer);
241
234
  }
@@ -243,7 +236,8 @@ class Column {
243
236
  case 'align':
244
237
  {
245
238
  this.headerConfigs.mergeAlignByPriority(this.colStyles, defaults.header);
246
- this.groupCellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
239
+ this.groupHeaderConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
240
+ this.groupFooterConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
247
241
  this.cellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
248
242
  this.footerConfigs.mergeAlignByPriority(this.colStyles, defaults.footer);
249
243
  }
@@ -251,7 +245,8 @@ class Column {
251
245
  }
252
246
  });
253
247
  this.headerConfigs.updateClasesArray();
254
- this.groupCellConfigs.updateClasesArray();
248
+ this.groupHeaderConfigs.updateClasesArray();
249
+ this.groupFooterConfigs.updateClasesArray();
255
250
  this.cellConfigs.updateClasesArray();
256
251
  this.footerConfigs.updateClasesArray();
257
252
  }
@@ -272,11 +267,13 @@ class Column {
272
267
  _parseConfig(config) {
273
268
  this._attributes = config.attributes;
274
269
  this.headerTemplate = config.headerTemplate;
275
- this.groupCellTemplate = config.groupCellTemplate;
270
+ this.groupHeaderTemplate = config.groupHeaderTemplate;
271
+ this.groupFooterTemplate = config.groupFooterTemplate;
276
272
  this.cellTemplate = config.cellTemplate;
277
273
  this.footerTemplate = config.footerTemplate;
278
274
  this.headerConfigs = new StyleConfig(config.headerConfigs);
279
- this.groupCellConfigs = new StyleConfig(config.groupCellConfigs);
275
+ this.groupHeaderConfigs = new StyleConfig(config.groupHeaderConfigs);
276
+ this.groupFooterConfigs = new StyleConfig(config.groupFooterConfigs);
280
277
  this.cellConfigs = new StyleConfig(config.cellConfigs);
281
278
  this.footerConfigs = new StyleConfig(config.footerConfigs);
282
279
  this.expandTrigger = config.expandTrigger;
@@ -292,14 +289,13 @@ var ActionType;
292
289
  ActionType["MiniFab"] = "mini-fab";
293
290
  })(ActionType || (ActionType = {}));
294
291
 
295
- class RowAction extends Model {
292
+ class RowAction {
296
293
  constructor(config = {}) {
297
- super();
298
294
  this.label = '';
299
295
  this.classArray = [];
300
296
  this.isShown = true;
301
297
  this._isGroup = false;
302
- this._fromJSON(config);
298
+ this._init(config);
303
299
  if (Array.isArray(this.rowActions)) {
304
300
  this._isGroup = true;
305
301
  }
@@ -307,14 +303,16 @@ class RowAction extends Model {
307
303
  get isGroup() {
308
304
  return this._isGroup;
309
305
  }
310
- _fromJSON(value) {
311
- super._fromJSON(value);
312
- if (value.type === void 0) {
313
- this.type = ActionType.Basic;
314
- }
315
- if (this.menu === void 0) {
316
- this.menu = true;
317
- }
306
+ _init(value) {
307
+ var _a, _b, _c;
308
+ this.icon = value.icon;
309
+ this.menu = (_a = value.menu) !== null && _a !== void 0 ? _a : true;
310
+ this.remove = value.remove;
311
+ this.className = value.className;
312
+ this.type = (_b = value.type) !== null && _b !== void 0 ? _b : ActionType.Basic;
313
+ this.show = value.show;
314
+ this.restore = value.restore;
315
+ this.rowActions = (_c = value.rowActions) === null || _c === void 0 ? void 0 : _c.map((action) => new RowAction(action));
318
316
  // Re-assign click function
319
317
  const clickFn = value.click;
320
318
  this.click = (row, event, index, rowActionsRef = null) => {
@@ -398,38 +396,6 @@ class RowAction extends Model {
398
396
  }
399
397
  }
400
398
  }
401
- __decorate([
402
- Alias(),
403
- __metadata("design:type", String)
404
- ], RowAction.prototype, "icon", void 0);
405
- __decorate([
406
- Alias(),
407
- __metadata("design:type", Boolean)
408
- ], RowAction.prototype, "menu", void 0);
409
- __decorate([
410
- Alias(),
411
- __metadata("design:type", Object)
412
- ], RowAction.prototype, "remove", void 0);
413
- __decorate([
414
- Alias(),
415
- __metadata("design:type", String)
416
- ], RowAction.prototype, "className", void 0);
417
- __decorate([
418
- Alias(),
419
- __metadata("design:type", String)
420
- ], RowAction.prototype, "type", void 0);
421
- __decorate([
422
- Alias(),
423
- __metadata("design:type", Function)
424
- ], RowAction.prototype, "show", void 0);
425
- __decorate([
426
- Alias(),
427
- __metadata("design:type", Boolean)
428
- ], RowAction.prototype, "restore", void 0);
429
- __decorate([
430
- Alias('rowActions', RowAction),
431
- __metadata("design:type", Array)
432
- ], RowAction.prototype, "rowActions", void 0);
433
399
 
434
400
  class ColumnsController {
435
401
  constructor() {
@@ -557,7 +523,8 @@ class ColumnsController {
557
523
  });
558
524
  this._theadClass = this.hasHeader ? 'has-header' : '';
559
525
  this._updateColspans('headerConfigs', 'headerColspanned');
560
- this._updateColspans('groupCellConfigs', 'groupCellColspanned');
526
+ this._updateColspans('groupHeaderConfigs', 'groupHeaderColspanned');
527
+ this._updateColspans('groupFooterConfigs', 'groupFooterColspanned');
561
528
  this._updateColspans('cellConfigs', 'cellColspanned');
562
529
  this._updateColspans('footerConfigs', 'footerColspanned');
563
530
  this.updateVisibleColumns();
@@ -707,7 +674,8 @@ var RowType;
707
674
  (function (RowType) {
708
675
  RowType[RowType["Simple"] = 0] = "Simple";
709
676
  RowType[RowType["Group"] = 1] = "Group";
710
- RowType[RowType["Child"] = 2] = "Child";
677
+ RowType[RowType["GroupFooter"] = 2] = "GroupFooter";
678
+ RowType[RowType["Child"] = 3] = "Child";
711
679
  })(RowType || (RowType = {}));
712
680
 
713
681
  class BaseRow {
@@ -804,6 +772,25 @@ class SimpleRow extends BaseRow {
804
772
  }
805
773
  }
806
774
 
775
+ class GroupFooterRow extends BaseRow {
776
+ constructor(data = {}, parent = null) {
777
+ super(data, RowType.GroupFooter);
778
+ this.visible = true;
779
+ this._parent = parent;
780
+ if (this.parent) {
781
+ this.visible = this._parent.expanded;
782
+ this.index = this.parent.children.length;
783
+ }
784
+ }
785
+ get parent() {
786
+ return this._parent;
787
+ }
788
+ get isFooter() {
789
+ return true;
790
+ }
791
+ destroy() { }
792
+ }
793
+
807
794
  class Row {
808
795
  constructor(data = {}, rowType = RowType.Simple, { parent, initialExpand } = {}) {
809
796
  switch (rowType) {
@@ -851,6 +838,9 @@ class Row {
851
838
  get isChild() {
852
839
  return this._row instanceof ChildRow;
853
840
  }
841
+ get isFooter() {
842
+ return this._row instanceof GroupFooterRow;
843
+ }
854
844
  get parent() {
855
845
  return this._row.parent;
856
846
  }
@@ -938,6 +928,7 @@ class DataController {
938
928
  if (group) {
939
929
  this._groupByFn = group.groupBy;
940
930
  this._compareByFn = group.compareBy;
931
+ this._footerRowFn = group.footer || (() => false);
941
932
  this._initialExpand = (_a = group.initialExpand) !== null && _a !== void 0 ? _a : true;
942
933
  // group mode enabled by default
943
934
  this._groupEnabled = (group.enabled !== void 0)
@@ -1081,6 +1072,7 @@ class DataController {
1081
1072
  const row = this.visibleRows.find((visibleRow) => visibleRow.data === rowData);
1082
1073
  row.toggleRowExpandStatus();
1083
1074
  this._updateVisibleRows();
1075
+ console.log(this._rowsStack);
1084
1076
  }
1085
1077
  _updateRowsStack(rows) {
1086
1078
  this._destroyRowsStack();
@@ -1112,7 +1104,7 @@ class DataController {
1112
1104
  _updateVisibleRows() {
1113
1105
  this.visibleRows = this._rowsStack
1114
1106
  .filter((row) => {
1115
- return !row.isChild || row.visible;
1107
+ return (!row.isChild && !row.isFooter) || row.visible;
1116
1108
  });
1117
1109
  }
1118
1110
  updateRow(targetRow, trackBy) {
@@ -1157,9 +1149,15 @@ class DataController {
1157
1149
  return rows;
1158
1150
  }
1159
1151
  let numberOfGroups = 0;
1152
+ const footerRows = new Map();
1160
1153
  rows.forEach((row) => {
1161
1154
  const mainGroup = this._groupByFn(row);
1155
+ const isFooterRow = this._footerRowFn(row);
1162
1156
  const mainGroupKey = this._compareByFn(mainGroup);
1157
+ if (isFooterRow) {
1158
+ footerRows.set(mainGroupKey, row);
1159
+ return;
1160
+ }
1163
1161
  if (!this._store.has(mainGroupKey)) {
1164
1162
  const group = new GroupRow(mainGroup, this._initialExpand);
1165
1163
  group.index = numberOfGroups;
@@ -1174,6 +1172,13 @@ class DataController {
1174
1172
  group.children.push(childRow);
1175
1173
  }
1176
1174
  });
1175
+ for (const [key, value] of footerRows) {
1176
+ const group = this._store.get(key);
1177
+ if (group) {
1178
+ const footerRow = new GroupFooterRow(value, group);
1179
+ group.children.push(footerRow);
1180
+ }
1181
+ }
1177
1182
  return Array.from(this._store.values())
1178
1183
  .reduce((acc, item) => {
1179
1184
  if (item.isGroup) {
@@ -2568,9 +2573,8 @@ class ExternalParamsController {
2568
2573
  }
2569
2574
 
2570
2575
  const SHOW_DELETED_FILTERS_KEY = '$$_show_deleted_$$';
2571
- class List extends Model {
2576
+ class List {
2572
2577
  constructor(el, config = {}, fsScroll, selectionDialog, router, route, persistance, inDialog) {
2573
- super();
2574
2578
  this.el = el;
2575
2579
  this.config = config;
2576
2580
  this.fsScroll = fsScroll;
@@ -2580,7 +2584,6 @@ class List extends Model {
2580
2584
  this.persistance = persistance;
2581
2585
  this.inDialog = inDialog;
2582
2586
  this.filters = [];
2583
- this.scrollable = false;
2584
2587
  // @Alias('rows') private _rows: any;
2585
2588
  this.initialized$ = new BehaviorSubject(false);
2586
2589
  this.loading$ = new BehaviorSubject(false);
@@ -2603,7 +2606,6 @@ class List extends Model {
2603
2606
  this.emptyStateEnabled = false;
2604
2607
  this.onDestroy$ = new Subject();
2605
2608
  this._filtersQuery = new BehaviorSubject(null);
2606
- this._fromJSON(config);
2607
2609
  this.initialize(config);
2608
2610
  this._headerConfig = new StyleConfig(config.header);
2609
2611
  this._groupCellConfig = new StyleConfig(config.cell);
@@ -2793,6 +2795,24 @@ class List extends Model {
2793
2795
  * @param config
2794
2796
  */
2795
2797
  initialize(config) {
2798
+ var _a;
2799
+ this.heading = config.heading;
2800
+ this.trackBy = config.trackBy;
2801
+ this.subheading = config.subheading;
2802
+ this.rowActionsRaw = config.rowActions;
2803
+ this.rowClass = config.rowClass;
2804
+ this.rowEvents = config.rowEvents;
2805
+ this.restore = config.restore;
2806
+ this.persist = config.persist;
2807
+ this.filters = (_a = config.filters) !== null && _a !== void 0 ? _a : [];
2808
+ this.filterInitCb = config.filterInit;
2809
+ this.filterChangeCb = config.filterChange;
2810
+ this.savedFilters = config.savedFilters;
2811
+ this.scrollable = config.scrollable;
2812
+ this.noResults = config.noResults;
2813
+ this.emptyState = config.emptyState;
2814
+ this.fetchFn = config.fetch;
2815
+ this.afterFetchFn = config.afterFetch;
2796
2816
  this.columns.initConfig(config.column);
2797
2817
  this.initDefaultOptions(config);
2798
2818
  this.initRestore();
@@ -3077,7 +3097,7 @@ class List extends Model {
3077
3097
  persist: this.persist,
3078
3098
  items: this.filters || [],
3079
3099
  savedFilters: this.savedFilters,
3080
- inline: this.inlineFilters,
3100
+ // inline: this.inlineFilters,
3081
3101
  actions: this.actions.actions,
3082
3102
  queryParam: this.queryParam,
3083
3103
  sorts: sortValues,
@@ -3233,82 +3253,6 @@ class List extends Model {
3233
3253
  }
3234
3254
  }
3235
3255
  }
3236
- __decorate([
3237
- Alias(),
3238
- __metadata("design:type", String)
3239
- ], List.prototype, "heading", void 0);
3240
- __decorate([
3241
- Alias(),
3242
- __metadata("design:type", String)
3243
- ], List.prototype, "trackBy", void 0);
3244
- __decorate([
3245
- Alias(),
3246
- __metadata("design:type", String)
3247
- ], List.prototype, "subheading", void 0);
3248
- __decorate([
3249
- Alias(),
3250
- __metadata("design:type", Object)
3251
- ], List.prototype, "inlineFilters", void 0);
3252
- __decorate([
3253
- Alias('rowActions'),
3254
- __metadata("design:type", Array)
3255
- ], List.prototype, "rowActionsRaw", void 0);
3256
- __decorate([
3257
- Alias('rowClass'),
3258
- __metadata("design:type", Object)
3259
- ], List.prototype, "rowClass", void 0);
3260
- __decorate([
3261
- Alias(),
3262
- __metadata("design:type", Object)
3263
- ], List.prototype, "rowEvents", void 0);
3264
- __decorate([
3265
- Alias(),
3266
- __metadata("design:type", Object)
3267
- ], List.prototype, "restore", void 0);
3268
- __decorate([
3269
- Alias(),
3270
- __metadata("design:type", Object)
3271
- ], List.prototype, "columnTemplates", void 0);
3272
- __decorate([
3273
- Alias(),
3274
- __metadata("design:type", Boolean)
3275
- ], List.prototype, "persist", void 0);
3276
- __decorate([
3277
- Alias(),
3278
- __metadata("design:type", Object)
3279
- ], List.prototype, "filters", void 0);
3280
- __decorate([
3281
- Alias('filterInit'),
3282
- __metadata("design:type", Function)
3283
- ], List.prototype, "filterInitCb", void 0);
3284
- __decorate([
3285
- Alias('filterChange'),
3286
- __metadata("design:type", Function)
3287
- ], List.prototype, "filterChangeCb", void 0);
3288
- __decorate([
3289
- Alias(),
3290
- __metadata("design:type", Object)
3291
- ], List.prototype, "savedFilters", void 0);
3292
- __decorate([
3293
- Alias(),
3294
- __metadata("design:type", Object)
3295
- ], List.prototype, "scrollable", void 0);
3296
- __decorate([
3297
- Alias(),
3298
- __metadata("design:type", Object)
3299
- ], List.prototype, "noResults", void 0);
3300
- __decorate([
3301
- Alias(),
3302
- __metadata("design:type", Object)
3303
- ], List.prototype, "emptyState", void 0);
3304
- __decorate([
3305
- Alias('fetch'),
3306
- __metadata("design:type", Function)
3307
- ], List.prototype, "fetchFn", void 0);
3308
- __decorate([
3309
- Alias('afterFetch'),
3310
- __metadata("design:type", Function)
3311
- ], List.prototype, "afterFetchFn", void 0);
3312
3256
 
3313
3257
  var ReorderPosition;
3314
3258
  (function (ReorderPosition) {
@@ -3524,14 +3468,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
3524
3468
  args: ['class']
3525
3469
  }] } });
3526
3470
 
3527
- class FsListGroupCellDirective extends FsListCellDirective {
3471
+ class FsListGroupHeaderDirective extends FsListCellDirective {
3528
3472
  }
3529
- FsListGroupCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupCellDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3530
- FsListGroupCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListGroupCellDirective, selector: "[fs-list-group-cell]", usesInheritance: true, ngImport: i0 });
3531
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupCellDirective, decorators: [{
3473
+ FsListGroupHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupHeaderDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3474
+ FsListGroupHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListGroupHeaderDirective, selector: "[fs-list-group-cell],[fs-list-group-header]", usesInheritance: true, ngImport: i0 });
3475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupHeaderDirective, decorators: [{
3532
3476
  type: Directive,
3533
3477
  args: [{
3534
- selector: '[fs-list-group-cell]'
3478
+ selector: '[fs-list-group-cell],[fs-list-group-header]'
3479
+ }]
3480
+ }] });
3481
+
3482
+ class FsListGroupFooterDirective extends FsListCellDirective {
3483
+ }
3484
+ FsListGroupFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupFooterDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3485
+ FsListGroupFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListGroupFooterDirective, selector: "[fs-list-group-footer]", usesInheritance: true, ngImport: i0 });
3486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupFooterDirective, decorators: [{
3487
+ type: Directive,
3488
+ args: [{
3489
+ selector: '[fs-list-group-footer]'
3535
3490
  }]
3536
3491
  }] });
3537
3492
 
@@ -3618,7 +3573,7 @@ class FsListColumnDirective {
3618
3573
  }
3619
3574
  }
3620
3575
  FsListColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3621
- FsListColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListColumnDirective, selector: "fs-list-column", inputs: { visible: ["show", "visible"], title: "title", name: "name", customize: "customize", sortable: "sortable", sortableDefault: "sortableDefault", direction: "direction", align: "align", width: "width", className: ["class", "className"] }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsListHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "headerConfigs", first: true, predicate: FsListHeaderDirective, descendants: true, static: true }, { propertyName: "groupCellTemplate", first: true, predicate: FsListGroupCellDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "groupCellConfigs", first: true, predicate: FsListGroupCellDirective, descendants: true, static: true }, { propertyName: "cellTemplate", first: true, predicate: FsListCellDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "cellConfigs", first: true, predicate: FsListCellDirective, descendants: true, static: true }, { propertyName: "footerTemplate", first: true, predicate: FsListFooterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "footerConfigs", first: true, predicate: FsListFooterDirective, descendants: true, static: true }, { propertyName: "expandTrigger", predicate: FsListGroupExpandTriggerDirective, descendants: true }], ngImport: i0 });
3576
+ FsListColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListColumnDirective, selector: "fs-list-column", inputs: { visible: ["show", "visible"], title: "title", name: "name", customize: "customize", sortable: "sortable", sortableDefault: "sortableDefault", direction: "direction", align: "align", width: "width", className: ["class", "className"] }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsListHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "headerConfigs", first: true, predicate: FsListHeaderDirective, descendants: true, static: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: FsListGroupHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "groupHeaderConfigs", first: true, predicate: FsListGroupHeaderDirective, descendants: true, static: true }, { propertyName: "groupFooterTemplate", first: true, predicate: FsListGroupFooterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "groupFooterConfigs", first: true, predicate: FsListGroupFooterDirective, descendants: true, static: true }, { propertyName: "cellTemplate", first: true, predicate: FsListCellDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "cellConfigs", first: true, predicate: FsListCellDirective, descendants: true, static: true }, { propertyName: "footerTemplate", first: true, predicate: FsListFooterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "footerConfigs", first: true, predicate: FsListFooterDirective, descendants: true, static: true }, { propertyName: "expandTrigger", predicate: FsListGroupExpandTriggerDirective, descendants: true }], ngImport: i0 });
3622
3577
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListColumnDirective, decorators: [{
3623
3578
  type: Directive,
3624
3579
  args: [{
@@ -3630,12 +3585,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
3630
3585
  }], headerConfigs: [{
3631
3586
  type: ContentChild,
3632
3587
  args: [FsListHeaderDirective, { static: true }]
3633
- }], groupCellTemplate: [{
3588
+ }], groupHeaderTemplate: [{
3589
+ type: ContentChild,
3590
+ args: [FsListGroupHeaderDirective, { read: TemplateRef, static: true }]
3591
+ }], groupHeaderConfigs: [{
3592
+ type: ContentChild,
3593
+ args: [FsListGroupHeaderDirective, { static: true }]
3594
+ }], groupFooterTemplate: [{
3634
3595
  type: ContentChild,
3635
- args: [FsListGroupCellDirective, { read: TemplateRef, static: true }]
3636
- }], groupCellConfigs: [{
3596
+ args: [FsListGroupFooterDirective, { read: TemplateRef, static: true }]
3597
+ }], groupFooterConfigs: [{
3637
3598
  type: ContentChild,
3638
- args: [FsListGroupCellDirective, { static: true }]
3599
+ args: [FsListGroupFooterDirective, { static: true }]
3639
3600
  }], expandTrigger: [{
3640
3601
  type: ContentChildren,
3641
3602
  args: [FsListGroupExpandTriggerDirective, { descendants: true }]
@@ -3880,7 +3841,7 @@ class FsCellComponent {
3880
3841
  if (this.row.isGroup) {
3881
3842
  this.cellContext.groupIndex = this.row.index;
3882
3843
  }
3883
- else if (this.row.isChild) {
3844
+ else if (this.row.isChild || this.row.isFooter) {
3884
3845
  this.cellContext.groupChildIndex = this.row.index;
3885
3846
  this.cellContext.groupRow = this.row.parent.data;
3886
3847
  }
@@ -3894,8 +3855,12 @@ class FsCellComponent {
3894
3855
  }
3895
3856
  }
3896
3857
  _initCellTemplate() {
3897
- if (this.row && this.row.isGroup) {
3898
- this.cellTemplate = this.column.groupCellTemplate || this.column.cellTemplate;
3858
+ var _a, _b;
3859
+ if ((_a = this.row) === null || _a === void 0 ? void 0 : _a.isGroup) {
3860
+ this.cellTemplate = this.column.groupHeaderTemplate || this.column.cellTemplate;
3861
+ }
3862
+ else if ((_b = this.row) === null || _b === void 0 ? void 0 : _b.isFooter) {
3863
+ this.cellTemplate = this.column.groupFooterTemplate || this.column.cellTemplate;
3899
3864
  }
3900
3865
  else {
3901
3866
  this.cellTemplate = this.column.cellTemplate;
@@ -4460,6 +4425,15 @@ class FsRowComponent {
4460
4425
  this._destroy$ = new Subject();
4461
4426
  this._rowDiffer = _differs.find({}).create();
4462
4427
  }
4428
+ get isGroupRow() {
4429
+ return this.row.isGroup;
4430
+ }
4431
+ get isChildRow() {
4432
+ return this.row.isChild;
4433
+ }
4434
+ get isGroupFooterRow() {
4435
+ return this.row.isFooter;
4436
+ }
4463
4437
  get rowCssClass() {
4464
4438
  let cls = 'fs-list-row';
4465
4439
  if (this.rowIndex % 2 !== 0)
@@ -4623,7 +4597,7 @@ class FsRowComponent {
4623
4597
  }
4624
4598
  }
4625
4599
  FsRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowComponent, deps: [{ token: i0.ElementRef }, { token: ReorderController }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: FsListDraggableListDirective }], target: i0.ɵɵFactoryTarget.Component });
4626
- FsRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowComponent, selector: "[fs-list-row]", inputs: { row: "row", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", hasRowActions: "hasRowActions", rowEvents: "rowEvents", rowClass: "rowClass", restoreMode: "restoreMode", rowIndex: "rowIndex", columns: "columns", selection: "selection", rowRemoved: "rowRemoved" }, host: { properties: { "attr.role": "this.role", "class": "this.rowCssClass" } }, viewQueries: [{ propertyName: "cellRefs", predicate: ["td"], descendants: true }], ngImport: i0, template: "<!-- Drag -->\n<ng-container *ngIf=\"reorderController.leftReorderActivated$ | async\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Selection -->\n<ng-container *ngIf=\"selection\">\n <td class=\"fs-list-col fs-list-col-selection\">\n <mat-checkbox (change)=\"selectRow($event)\"\n [checked]=\"selected\"\n [indeterminate]=\"indeterminateSelected\">\n </mat-checkbox>\n </td>\n</ng-container>\n\n<!-- Content -->\n<ng-container *ngFor=\"let column of columns; trackBy: trackByFn; let isFirst = first\">\n <td fs-cell\n *ngIf=\"(row.isGroup && !column.groupCellColspanned) || (!row.isGroup && !column.cellColspanned)\"\n [column]=\"column\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [class]=\"column.cellConfigs.classesString\"\n [ngClass]=\"{ 'primary-col': isFirst }\"\n [attr.colspan]=\"(row.isGroup && column.groupCellConfigs.colspan) || column.cellConfigs.colspan\"\n [attr.width]=\"column.width\"\n >\n </td>\n</ng-container>\n\n<!-- Drag -->\n<ng-container *ngIf=\"reorderController.rightReorderActivated$ | async\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Row Actions -->\n<td *ngIf=\"hasRowActions && !(reorderController.manualReorderActivated$ | async)\" class=\"fs-list-col row-actions\">\n <fs-list-row-actions [row]=\"row\"\n [index]=\"rowIndex\"\n [rowActions]=\"rowActions\"\n [menuRowActions]=\"menuRowActions\"\n [inlineRowActions]=\"inlineRowActions\"\n [restoreAction]=\"restoreAction\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n ></fs-list-row-actions>\n</td>\n\n<ng-template #dragCell>\n <ng-container *ngIf=\"dragCellVisible; else emptyCell\">\n <td class=\"fs-list-col drag-col\"\n (mousedown)=\"dragStart($event)\"\n (touchstart)=\"dragStart($event)\"\n >\n <mat-icon>drag_handle</mat-icon>\n </td>\n </ng-container>\n <ng-template #emptyCell>\n <td class=\"fs-list-col drag-col\"></td>\n </ng-template>\n</ng-template>\n", components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: FsCellComponent, selector: "[fs-cell]", inputs: ["column", "row", "rowIndex"] }, { type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: ["row", "index", "restoreMode", "rowActions", "rowRemoved", "menuRowActions", "inlineRowActions", "restoreAction"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4600
+ FsRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowComponent, selector: "[fs-list-row]", inputs: { row: "row", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", hasRowActions: "hasRowActions", rowEvents: "rowEvents", rowClass: "rowClass", restoreMode: "restoreMode", rowIndex: "rowIndex", columns: "columns", selection: "selection", rowRemoved: "rowRemoved" }, host: { properties: { "attr.role": "this.role", "class": "this.rowCssClass" } }, viewQueries: [{ propertyName: "cellRefs", predicate: ["td"], descendants: true }], ngImport: i0, template: "<!-- Drag -->\n<ng-container *ngIf=\"reorderController.leftReorderActivated$ | async\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Selection -->\n<ng-container *ngIf=\"selection\">\n <td class=\"fs-list-col fs-list-col-selection\">\n <ng-container *ngIf=\"!row.isFooter\">\n <mat-checkbox (change)=\"selectRow($event)\"\n [checked]=\"selected\"\n [indeterminate]=\"indeterminateSelected\">\n </mat-checkbox>\n </ng-container>\n </td>\n</ng-container>\n\n<!-- Content -->\n<ng-container *ngFor=\"let column of columns; trackBy: trackByFn; let isFirst = first\">\n <td fs-cell\n *ngIf=\"(isGroupRow && !column.groupHeaderColspanned)\n || (isGroupFooterRow && !column.groupFooterColspanned)\n || (!isGroupRow && !isGroupFooterRow && !column.cellColspanned)\"\n [column]=\"column\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [class]=\"(isGroupRow && column.groupHeaderConfigs.classesString)\n || (isGroupFooterRow && column.groupFooterConfigs.classesString)\n || (!isGroupFooterRow && column.cellConfigs.classesString)\"\n [ngClass]=\"{ 'primary-col': isFirst }\"\n [attr.colspan]=\"(isGroupRow && column.groupHeaderConfigs.colspan)\n || (isGroupFooterRow && column.groupFooterConfigs.colspan)\n || column.cellConfigs.colspan\"\n [attr.width]=\"column.width\"\n >\n </td>\n</ng-container>\n\n<!-- Drag -->\n<ng-container *ngIf=\"reorderController.rightReorderActivated$ | async\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Row Actions -->\n<td *ngIf=\"hasRowActions && !(reorderController.manualReorderActivated$ | async)\" class=\"fs-list-col row-actions\">\n <ng-container *ngIf=\"!isGroupFooterRow\">\n <fs-list-row-actions [row]=\"row\"\n [index]=\"rowIndex\"\n [rowActions]=\"rowActions\"\n [menuRowActions]=\"menuRowActions\"\n [inlineRowActions]=\"inlineRowActions\"\n [restoreAction]=\"restoreAction\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n ></fs-list-row-actions>\n </ng-container>\n</td>\n\n<ng-template #dragCell>\n <ng-container *ngIf=\"dragCellVisible && !isGroupFooterRow; else emptyCell\">\n <td class=\"fs-list-col drag-col\"\n (mousedown)=\"dragStart($event)\"\n (touchstart)=\"dragStart($event)\"\n >\n <mat-icon>drag_handle</mat-icon>\n </td>\n </ng-container>\n <ng-template #emptyCell>\n <td class=\"fs-list-col drag-col\"></td>\n </ng-template>\n</ng-template>\n", components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: FsCellComponent, selector: "[fs-cell]", inputs: ["column", "row", "rowIndex"] }, { type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: ["row", "index", "restoreMode", "rowActions", "rowRemoved", "menuRowActions", "inlineRowActions", "restoreAction"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4627
4601
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowComponent, decorators: [{
4628
4602
  type: Component,
4629
4603
  args: [{
@@ -5388,7 +5362,8 @@ FsListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
5388
5362
  FsListCellDirective,
5389
5363
  FsListHeaderDirective,
5390
5364
  FsListFooterDirective,
5391
- FsListGroupCellDirective,
5365
+ FsListGroupHeaderDirective,
5366
+ FsListGroupFooterDirective,
5392
5367
  FsListGroupExpandTriggerDirective,
5393
5368
  FsListDraggableListDirective,
5394
5369
  FsListDraggableRowDirective,
@@ -5419,7 +5394,8 @@ FsListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
5419
5394
  FsListCellDirective,
5420
5395
  FsListHeaderDirective,
5421
5396
  FsListFooterDirective,
5422
- FsListGroupCellDirective,
5397
+ FsListGroupHeaderDirective,
5398
+ FsListGroupFooterDirective,
5423
5399
  FsListGroupExpandTriggerDirective,
5424
5400
  FsListEmptyStateDirective,
5425
5401
  FsListContentDirective] });
@@ -5487,7 +5463,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
5487
5463
  FsListCellDirective,
5488
5464
  FsListHeaderDirective,
5489
5465
  FsListFooterDirective,
5490
- FsListGroupCellDirective,
5466
+ FsListGroupHeaderDirective,
5467
+ FsListGroupFooterDirective,
5491
5468
  FsListGroupExpandTriggerDirective,
5492
5469
  FsListDraggableListDirective,
5493
5470
  FsListDraggableRowDirective,
@@ -5507,7 +5484,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
5507
5484
  FsListCellDirective,
5508
5485
  FsListHeaderDirective,
5509
5486
  FsListFooterDirective,
5510
- FsListGroupCellDirective,
5487
+ FsListGroupHeaderDirective,
5488
+ FsListGroupFooterDirective,
5511
5489
  FsListGroupExpandTriggerDirective,
5512
5490
  FsListEmptyStateDirective,
5513
5491
  FsListContentDirective,
@@ -5526,5 +5504,5 @@ function FsListConfigFactory(config) {
5526
5504
  * Generated bundle index. Do not edit.
5527
5505
  */
5528
5506
 
5529
- export { ActionType, Column, FS_LIST_CONFIG, FS_LIST_DEFAULT_CONFIG, FsBodyComponent, FsCellComponent, FsFooterCellComponent, FsFooterComponent, FsFooterRowComponent, FsHeadCellComponent, FsHeadComponent, FsListCellDirective, FsListColumnDirective, FsListComponent, FsListContentDirective, FsListEmptyStateDirective, FsListFooterDirective, FsListGroupCellDirective, FsListGroupExpandTriggerDirective, FsListHeaderDirective, FsListLoaderComponent, FsListModule, FsListState, FsPaginationComponent, FsRowComponent, FsStatusComponent, List, PaginationController, PaginationStrategy, ReorderController, ReorderPosition, ReorderStrategy, RowAction, RowType, SelectionChangeType, SelectionController, SortingController, SortingDirection, StyleConfig };
5507
+ export { ActionType, Column, FS_LIST_CONFIG, FS_LIST_DEFAULT_CONFIG, FsBodyComponent, FsCellComponent, FsFooterCellComponent, FsFooterComponent, FsFooterRowComponent, FsHeadCellComponent, FsHeadComponent, FsListCellDirective, FsListColumnDirective, FsListComponent, FsListContentDirective, FsListEmptyStateDirective, FsListFooterDirective, FsListGroupExpandTriggerDirective, FsListGroupFooterDirective, FsListGroupHeaderDirective, FsListHeaderDirective, FsListLoaderComponent, FsListModule, FsListState, FsPaginationComponent, FsRowComponent, FsStatusComponent, List, PaginationController, PaginationStrategy, ReorderController, ReorderPosition, ReorderStrategy, RowAction, RowType, SelectionChangeType, SelectionController, SortingController, SortingDirection, StyleConfig };
5530
5508
  //# sourceMappingURL=firestitch-list.js.map