@firestitch/list 12.1.5 → 12.2.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 (37) hide show
  1. package/app/classes/data-controller.d.ts +1 -0
  2. package/app/components/body/row/row.component.d.ts +3 -0
  3. package/app/directives/column/column.directive.d.ts +5 -3
  4. package/app/directives/group-footer/group-footer.directive.d.ts +6 -0
  5. package/app/directives/group-header/group-header.directive.d.ts +6 -0
  6. package/app/enums/row-type.enum.d.ts +2 -1
  7. package/app/fs-list.module.d.ts +26 -25
  8. package/app/interfaces/column-config.interface.d.ts +1 -1
  9. package/app/interfaces/listconfig.interface.d.ts +1 -0
  10. package/app/models/column.model.d.ts +6 -3
  11. package/app/models/row/group-footer-row.d.ts +10 -0
  12. package/app/models/row/group-row.d.ts +2 -1
  13. package/app/models/row.d.ts +3 -1
  14. package/bundles/firestitch-list.umd.js +158 -32
  15. package/bundles/firestitch-list.umd.js.map +1 -1
  16. package/esm2015/app/classes/columns-controller.js +3 -2
  17. package/esm2015/app/classes/data-controller.js +18 -2
  18. package/esm2015/app/components/body/row/cell/cell.component.js +8 -4
  19. package/esm2015/app/components/body/row/row.component.js +11 -2
  20. package/esm2015/app/directives/column/column.directive.js +14 -7
  21. package/esm2015/app/directives/group-footer/group-footer.directive.js +14 -0
  22. package/esm2015/app/directives/group-header/group-header.directive.js +14 -0
  23. package/esm2015/app/enums/row-type.enum.js +3 -2
  24. package/esm2015/app/fs-list.module.js +11 -6
  25. package/esm2015/app/interfaces/column-config.interface.js +1 -1
  26. package/esm2015/app/interfaces/listconfig.interface.js +1 -1
  27. package/esm2015/app/models/column.model.js +15 -8
  28. package/esm2015/app/models/row/group-footer-row.js +21 -0
  29. package/esm2015/app/models/row/group-row.js +1 -1
  30. package/esm2015/app/models/row.js +5 -1
  31. package/esm2015/public_api.js +3 -2
  32. package/fesm2015/firestitch-list.js +109 -29
  33. package/fesm2015/firestitch-list.js.map +1 -1
  34. package/package.json +1 -1
  35. package/public_api.d.ts +2 -1
  36. package/app/directives/group-cell/group-cell.directive.d.ts +0 -6
  37. package/esm2015/app/directives/group-cell/group-cell.directive.js +0 -14
@@ -139,11 +139,13 @@ const ALLOWED_DEFAULTS = [
139
139
  class Column {
140
140
  constructor(colConfig, colDefaults = false) {
141
141
  this.headerConfigs = new StyleConfig();
142
- this.groupCellConfigs = new StyleConfig();
142
+ this.groupHeaderConfigs = new StyleConfig();
143
+ this.groupFooterConfigs = new StyleConfig();
143
144
  this.cellConfigs = new StyleConfig();
144
145
  this.footerConfigs = new StyleConfig();
145
146
  this.headerColspanned = false;
146
- this.groupCellColspanned = false;
147
+ this.groupHeaderColspanned = false;
148
+ this.groupFooterColspanned = false;
147
149
  this.cellColspanned = false;
148
150
  this.footerColspanned = false;
149
151
  this._ordered = false;
@@ -235,7 +237,8 @@ class Column {
235
237
  case 'class':
236
238
  {
237
239
  this.headerConfigs.mergeClassByPriority(this.colStyles, defaults.header);
238
- this.groupCellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
240
+ this.groupHeaderConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
241
+ this.groupFooterConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
239
242
  this.cellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
240
243
  this.footerConfigs.mergeClassByPriority(this.colStyles, defaults.footer);
241
244
  }
@@ -243,7 +246,8 @@ class Column {
243
246
  case 'align':
244
247
  {
245
248
  this.headerConfigs.mergeAlignByPriority(this.colStyles, defaults.header);
246
- this.groupCellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
249
+ this.groupHeaderConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
250
+ this.groupFooterConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
247
251
  this.cellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
248
252
  this.footerConfigs.mergeAlignByPriority(this.colStyles, defaults.footer);
249
253
  }
@@ -251,7 +255,8 @@ class Column {
251
255
  }
252
256
  });
253
257
  this.headerConfigs.updateClasesArray();
254
- this.groupCellConfigs.updateClasesArray();
258
+ this.groupHeaderConfigs.updateClasesArray();
259
+ this.groupFooterConfigs.updateClasesArray();
255
260
  this.cellConfigs.updateClasesArray();
256
261
  this.footerConfigs.updateClasesArray();
257
262
  }
@@ -272,11 +277,13 @@ class Column {
272
277
  _parseConfig(config) {
273
278
  this._attributes = config.attributes;
274
279
  this.headerTemplate = config.headerTemplate;
275
- this.groupCellTemplate = config.groupCellTemplate;
280
+ this.groupHeaderTemplate = config.groupHeaderTemplate;
281
+ this.groupFooterTemplate = config.groupFooterTemplate;
276
282
  this.cellTemplate = config.cellTemplate;
277
283
  this.footerTemplate = config.footerTemplate;
278
284
  this.headerConfigs = new StyleConfig(config.headerConfigs);
279
- this.groupCellConfigs = new StyleConfig(config.groupCellConfigs);
285
+ this.groupHeaderConfigs = new StyleConfig(config.groupHeaderConfigs);
286
+ this.groupFooterConfigs = new StyleConfig(config.groupFooterConfigs);
280
287
  this.cellConfigs = new StyleConfig(config.cellConfigs);
281
288
  this.footerConfigs = new StyleConfig(config.footerConfigs);
282
289
  this.expandTrigger = config.expandTrigger;
@@ -557,7 +564,8 @@ class ColumnsController {
557
564
  });
558
565
  this._theadClass = this.hasHeader ? 'has-header' : '';
559
566
  this._updateColspans('headerConfigs', 'headerColspanned');
560
- this._updateColspans('groupCellConfigs', 'groupCellColspanned');
567
+ this._updateColspans('groupHeaderConfigs', 'groupHeaderColspanned');
568
+ this._updateColspans('groupFooterConfigs', 'groupFooterColspanned');
561
569
  this._updateColspans('cellConfigs', 'cellColspanned');
562
570
  this._updateColspans('footerConfigs', 'footerColspanned');
563
571
  this.updateVisibleColumns();
@@ -707,7 +715,8 @@ var RowType;
707
715
  (function (RowType) {
708
716
  RowType[RowType["Simple"] = 0] = "Simple";
709
717
  RowType[RowType["Group"] = 1] = "Group";
710
- RowType[RowType["Child"] = 2] = "Child";
718
+ RowType[RowType["GroupFooter"] = 2] = "GroupFooter";
719
+ RowType[RowType["Child"] = 3] = "Child";
711
720
  })(RowType || (RowType = {}));
712
721
 
713
722
  class BaseRow {
@@ -804,6 +813,25 @@ class SimpleRow extends BaseRow {
804
813
  }
805
814
  }
806
815
 
816
+ class GroupFooterRow extends BaseRow {
817
+ constructor(data = {}, parent = null) {
818
+ super(data, RowType.GroupFooter);
819
+ this.visible = true;
820
+ this._parent = parent;
821
+ if (this.parent) {
822
+ this.visible = this._parent.expanded;
823
+ this.index = this.parent.children.length;
824
+ }
825
+ }
826
+ get parent() {
827
+ return this._parent;
828
+ }
829
+ get isFooter() {
830
+ return true;
831
+ }
832
+ destroy() { }
833
+ }
834
+
807
835
  class Row {
808
836
  constructor(data = {}, rowType = RowType.Simple, { parent, initialExpand } = {}) {
809
837
  switch (rowType) {
@@ -851,6 +879,9 @@ class Row {
851
879
  get isChild() {
852
880
  return this._row instanceof ChildRow;
853
881
  }
882
+ get isFooter() {
883
+ return this._row instanceof GroupFooterRow;
884
+ }
854
885
  get parent() {
855
886
  return this._row.parent;
856
887
  }
@@ -938,6 +969,7 @@ class DataController {
938
969
  if (group) {
939
970
  this._groupByFn = group.groupBy;
940
971
  this._compareByFn = group.compareBy;
972
+ this._footerRowFn = group.footer || (() => false);
941
973
  this._initialExpand = (_a = group.initialExpand) !== null && _a !== void 0 ? _a : true;
942
974
  // group mode enabled by default
943
975
  this._groupEnabled = (group.enabled !== void 0)
@@ -1081,6 +1113,7 @@ class DataController {
1081
1113
  const row = this.visibleRows.find((visibleRow) => visibleRow.data === rowData);
1082
1114
  row.toggleRowExpandStatus();
1083
1115
  this._updateVisibleRows();
1116
+ console.log(this._rowsStack);
1084
1117
  }
1085
1118
  _updateRowsStack(rows) {
1086
1119
  this._destroyRowsStack();
@@ -1112,7 +1145,7 @@ class DataController {
1112
1145
  _updateVisibleRows() {
1113
1146
  this.visibleRows = this._rowsStack
1114
1147
  .filter((row) => {
1115
- return !row.isChild || row.visible;
1148
+ return (!row.isChild && !row.isFooter) || row.visible;
1116
1149
  });
1117
1150
  }
1118
1151
  updateRow(targetRow, trackBy) {
@@ -1157,9 +1190,15 @@ class DataController {
1157
1190
  return rows;
1158
1191
  }
1159
1192
  let numberOfGroups = 0;
1193
+ const footerRows = new Map();
1160
1194
  rows.forEach((row) => {
1161
1195
  const mainGroup = this._groupByFn(row);
1196
+ const isFooterRow = this._footerRowFn(row);
1162
1197
  const mainGroupKey = this._compareByFn(mainGroup);
1198
+ if (isFooterRow) {
1199
+ footerRows.set(mainGroupKey, row);
1200
+ return;
1201
+ }
1163
1202
  if (!this._store.has(mainGroupKey)) {
1164
1203
  const group = new GroupRow(mainGroup, this._initialExpand);
1165
1204
  group.index = numberOfGroups;
@@ -1174,6 +1213,13 @@ class DataController {
1174
1213
  group.children.push(childRow);
1175
1214
  }
1176
1215
  });
1216
+ for (const [key, value] of footerRows) {
1217
+ const group = this._store.get(key);
1218
+ if (group) {
1219
+ const footerRow = new GroupFooterRow(value, group);
1220
+ group.children.push(footerRow);
1221
+ }
1222
+ }
1177
1223
  return Array.from(this._store.values())
1178
1224
  .reduce((acc, item) => {
1179
1225
  if (item.isGroup) {
@@ -3524,14 +3570,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
3524
3570
  args: ['class']
3525
3571
  }] } });
3526
3572
 
3527
- class FsListGroupCellDirective extends FsListCellDirective {
3573
+ class FsListGroupHeaderDirective extends FsListCellDirective {
3574
+ }
3575
+ FsListGroupHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupHeaderDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3576
+ 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 });
3577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupHeaderDirective, decorators: [{
3578
+ type: Directive,
3579
+ args: [{
3580
+ selector: '[fs-list-group-cell],[fs-list-group-header]'
3581
+ }]
3582
+ }] });
3583
+
3584
+ class FsListGroupFooterDirective extends FsListCellDirective {
3528
3585
  }
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: [{
3586
+ FsListGroupFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupFooterDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3587
+ FsListGroupFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListGroupFooterDirective, selector: "[fs-list-group-footer]", usesInheritance: true, ngImport: i0 });
3588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupFooterDirective, decorators: [{
3532
3589
  type: Directive,
3533
3590
  args: [{
3534
- selector: '[fs-list-group-cell]'
3591
+ selector: '[fs-list-group-footer]'
3535
3592
  }]
3536
3593
  }] });
3537
3594
 
@@ -3618,7 +3675,7 @@ class FsListColumnDirective {
3618
3675
  }
3619
3676
  }
3620
3677
  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 });
3678
+ 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
3679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListColumnDirective, decorators: [{
3623
3680
  type: Directive,
3624
3681
  args: [{
@@ -3630,12 +3687,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
3630
3687
  }], headerConfigs: [{
3631
3688
  type: ContentChild,
3632
3689
  args: [FsListHeaderDirective, { static: true }]
3633
- }], groupCellTemplate: [{
3690
+ }], groupHeaderTemplate: [{
3634
3691
  type: ContentChild,
3635
- args: [FsListGroupCellDirective, { read: TemplateRef, static: true }]
3636
- }], groupCellConfigs: [{
3692
+ args: [FsListGroupHeaderDirective, { read: TemplateRef, static: true }]
3693
+ }], groupHeaderConfigs: [{
3637
3694
  type: ContentChild,
3638
- args: [FsListGroupCellDirective, { static: true }]
3695
+ args: [FsListGroupHeaderDirective, { static: true }]
3696
+ }], groupFooterTemplate: [{
3697
+ type: ContentChild,
3698
+ args: [FsListGroupFooterDirective, { read: TemplateRef, static: true }]
3699
+ }], groupFooterConfigs: [{
3700
+ type: ContentChild,
3701
+ args: [FsListGroupFooterDirective, { static: true }]
3639
3702
  }], expandTrigger: [{
3640
3703
  type: ContentChildren,
3641
3704
  args: [FsListGroupExpandTriggerDirective, { descendants: true }]
@@ -3880,7 +3943,7 @@ class FsCellComponent {
3880
3943
  if (this.row.isGroup) {
3881
3944
  this.cellContext.groupIndex = this.row.index;
3882
3945
  }
3883
- else if (this.row.isChild) {
3946
+ else if (this.row.isChild || this.row.isFooter) {
3884
3947
  this.cellContext.groupChildIndex = this.row.index;
3885
3948
  this.cellContext.groupRow = this.row.parent.data;
3886
3949
  }
@@ -3894,8 +3957,12 @@ class FsCellComponent {
3894
3957
  }
3895
3958
  }
3896
3959
  _initCellTemplate() {
3897
- if (this.row && this.row.isGroup) {
3898
- this.cellTemplate = this.column.groupCellTemplate || this.column.cellTemplate;
3960
+ var _a, _b;
3961
+ if ((_a = this.row) === null || _a === void 0 ? void 0 : _a.isGroup) {
3962
+ this.cellTemplate = this.column.groupHeaderTemplate || this.column.cellTemplate;
3963
+ }
3964
+ else if ((_b = this.row) === null || _b === void 0 ? void 0 : _b.isFooter) {
3965
+ this.cellTemplate = this.column.groupFooterTemplate || this.column.cellTemplate;
3899
3966
  }
3900
3967
  else {
3901
3968
  this.cellTemplate = this.column.cellTemplate;
@@ -4460,6 +4527,15 @@ class FsRowComponent {
4460
4527
  this._destroy$ = new Subject();
4461
4528
  this._rowDiffer = _differs.find({}).create();
4462
4529
  }
4530
+ get isGroupRow() {
4531
+ return this.row.isGroup;
4532
+ }
4533
+ get isChildRow() {
4534
+ return this.row.isChild;
4535
+ }
4536
+ get isGroupFooterRow() {
4537
+ return this.row.isFooter;
4538
+ }
4463
4539
  get rowCssClass() {
4464
4540
  let cls = 'fs-list-row';
4465
4541
  if (this.rowIndex % 2 !== 0)
@@ -4623,7 +4699,7 @@ class FsRowComponent {
4623
4699
  }
4624
4700
  }
4625
4701
  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 });
4702
+ 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]=\"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
4703
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowComponent, decorators: [{
4628
4704
  type: Component,
4629
4705
  args: [{
@@ -5388,7 +5464,8 @@ FsListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
5388
5464
  FsListCellDirective,
5389
5465
  FsListHeaderDirective,
5390
5466
  FsListFooterDirective,
5391
- FsListGroupCellDirective,
5467
+ FsListGroupHeaderDirective,
5468
+ FsListGroupFooterDirective,
5392
5469
  FsListGroupExpandTriggerDirective,
5393
5470
  FsListDraggableListDirective,
5394
5471
  FsListDraggableRowDirective,
@@ -5419,7 +5496,8 @@ FsListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
5419
5496
  FsListCellDirective,
5420
5497
  FsListHeaderDirective,
5421
5498
  FsListFooterDirective,
5422
- FsListGroupCellDirective,
5499
+ FsListGroupHeaderDirective,
5500
+ FsListGroupFooterDirective,
5423
5501
  FsListGroupExpandTriggerDirective,
5424
5502
  FsListEmptyStateDirective,
5425
5503
  FsListContentDirective] });
@@ -5487,7 +5565,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
5487
5565
  FsListCellDirective,
5488
5566
  FsListHeaderDirective,
5489
5567
  FsListFooterDirective,
5490
- FsListGroupCellDirective,
5568
+ FsListGroupHeaderDirective,
5569
+ FsListGroupFooterDirective,
5491
5570
  FsListGroupExpandTriggerDirective,
5492
5571
  FsListDraggableListDirective,
5493
5572
  FsListDraggableRowDirective,
@@ -5507,7 +5586,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
5507
5586
  FsListCellDirective,
5508
5587
  FsListHeaderDirective,
5509
5588
  FsListFooterDirective,
5510
- FsListGroupCellDirective,
5589
+ FsListGroupHeaderDirective,
5590
+ FsListGroupFooterDirective,
5511
5591
  FsListGroupExpandTriggerDirective,
5512
5592
  FsListEmptyStateDirective,
5513
5593
  FsListContentDirective,
@@ -5526,5 +5606,5 @@ function FsListConfigFactory(config) {
5526
5606
  * Generated bundle index. Do not edit.
5527
5607
  */
5528
5608
 
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 };
5609
+ 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
5610
  //# sourceMappingURL=firestitch-list.js.map