@firestitch/list 9.10.0 → 9.11.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.
Files changed (35) hide show
  1. package/app/classes/list-controller.d.ts +2 -1
  2. package/app/components/body/row/cell/cell.component.d.ts +1 -1
  3. package/app/components/footer/footer-row/footer-cell/footer-cell.component.d.ts +0 -3
  4. package/app/components/footer/footer-row/footer-row.component.d.ts +0 -2
  5. package/app/components/footer/footer.component.d.ts +0 -2
  6. package/app/interfaces/listconfig.interface.d.ts +6 -1
  7. package/app/models/row-action.model.d.ts +3 -1
  8. package/bundles/firestitch-list.umd.js +35 -25
  9. package/bundles/firestitch-list.umd.js.map +1 -1
  10. package/bundles/firestitch-list.umd.min.js +2 -2
  11. package/bundles/firestitch-list.umd.min.js.map +1 -1
  12. package/esm2015/app/classes/list-controller.js +9 -2
  13. package/esm2015/app/components/body/row/actions/actions.component.js +3 -1
  14. package/esm2015/app/components/body/row/cell/cell.component.js +1 -1
  15. package/esm2015/app/components/footer/footer-row/footer-cell/footer-cell.component.js +2 -11
  16. package/esm2015/app/components/footer/footer-row/footer-row.component.js +2 -6
  17. package/esm2015/app/components/footer/footer.component.js +2 -6
  18. package/esm2015/app/components/list/list.component.js +2 -2
  19. package/esm2015/app/interfaces/listconfig.interface.js +1 -1
  20. package/esm2015/app/models/row-action.model.js +22 -5
  21. package/esm5/app/classes/list-controller.js +9 -2
  22. package/esm5/app/components/body/row/actions/actions.component.js +4 -1
  23. package/esm5/app/components/body/row/cell/cell.component.js +1 -1
  24. package/esm5/app/components/footer/footer-row/footer-cell/footer-cell.component.js +2 -11
  25. package/esm5/app/components/footer/footer-row/footer-row.component.js +2 -6
  26. package/esm5/app/components/footer/footer.component.js +2 -6
  27. package/esm5/app/components/list/list.component.js +2 -2
  28. package/esm5/app/interfaces/listconfig.interface.js +1 -1
  29. package/esm5/app/models/row-action.model.js +22 -5
  30. package/fesm2015/firestitch-list.js +34 -25
  31. package/fesm2015/firestitch-list.js.map +1 -1
  32. package/fesm5/firestitch-list.js +35 -25
  33. package/fesm5/firestitch-list.js.map +1 -1
  34. package/firestitch-list.metadata.json +1 -1
  35. package/package.json +5 -5
@@ -5,7 +5,7 @@ import { FsScrollInstance, FsScrollService } from '@firestitch/scroll';
5
5
  import { SelectionDialog } from '@firestitch/selection';
6
6
  import { Model } from 'tsmodels';
7
7
  import { BehaviorSubject, Subject } from 'rxjs';
8
- import { FsListConfig, FsListEmptyStateConfig, FsListFetchFn, FsListFetchSubscription, FsListNoResultsConfig, FsListRestoreConfig, FsListScrollableConfig, FsListTrackByFn } from '../interfaces';
8
+ import { FsListAfterFetchFn, FsListConfig, FsListEmptyStateConfig, FsListFetchFn, FsListFetchSubscription, FsListNoResultsConfig, FsListRestoreConfig, FsListScrollableConfig, FsListTrackByFn } from '../interfaces';
9
9
  import { ColumnsController } from './columns-controller';
10
10
  import { ActionsController } from './index';
11
11
  import { DataController } from './data-controller';
@@ -42,6 +42,7 @@ export declare class List extends Model {
42
42
  noResults: FsListNoResultsConfig;
43
43
  emptyState: FsListEmptyStateConfig;
44
44
  fetchFn: FsListFetchFn;
45
+ afterFetchFn: FsListAfterFetchFn;
45
46
  initialized$: BehaviorSubject<boolean>;
46
47
  loading$: BehaviorSubject<boolean>;
47
48
  filtersQuery: any;
@@ -14,7 +14,7 @@ export declare class FsCellComponent implements OnInit, OnChanges, OnDestroy {
14
14
  ngOnInit(): void;
15
15
  ngOnChanges(changes: SimpleChanges): void;
16
16
  ngOnDestroy(): void;
17
- protected _initCellContext(): void;
17
+ private _initCellContext;
18
18
  private _initCellTemplate;
19
19
  private _listenGroupOpen;
20
20
  }
@@ -1,7 +1,4 @@
1
1
  import { FsCellComponent } from '../../../body/row/cell/cell.component';
2
- import { Row } from '../../../../models/row';
3
2
  export declare class FsFooterCellComponent extends FsCellComponent {
4
- rows: Row[];
5
3
  constructor();
6
- protected _initCellContext(): void;
7
4
  }
@@ -1,10 +1,8 @@
1
1
  import { ChangeDetectorRef, ElementRef, KeyValueDiffers, Renderer2 } from '@angular/core';
2
2
  import { FsRowComponent } from '../../body/row/row.component';
3
3
  import { ReorderController, ReorderPosition } from '../../../classes/reorder-controller';
4
- import { Row } from '../../../models/row';
5
4
  export declare class FsFooterRowComponent extends FsRowComponent {
6
5
  hasRowActions: boolean;
7
- rows: Row[];
8
6
  readonly ReorderPosition: typeof ReorderPosition;
9
7
  constructor(el: ElementRef, reorderController: ReorderController, cdRef: ChangeDetectorRef, differs: KeyValueDiffers, renderer: Renderer2);
10
8
  }
@@ -1,10 +1,8 @@
1
1
  import { Column } from '../../models/column.model';
2
2
  import { SelectionController } from '../../classes/selection-controller';
3
- import { Row } from '../../models/row';
4
3
  export declare class FsFooterComponent {
5
4
  hasRowActions: boolean;
6
5
  columns: Column[];
7
6
  selection: SelectionController;
8
- rows: Row[];
9
7
  constructor();
10
8
  }
@@ -33,6 +33,7 @@ export interface FsListConfig {
33
33
  rowClass?: (row: any) => string;
34
34
  actions?: FsListAction[];
35
35
  fetch?: FsListFetchFn;
36
+ afterFetch?: FsListAfterFetchFn;
36
37
  scrollable?: FsListScrollableConfig | boolean;
37
38
  selection?: FsListSelectionConfig;
38
39
  initialFetch?: boolean;
@@ -142,7 +143,7 @@ export interface FsListRowActionGroup {
142
143
  rowActions: FsListRowAction[];
143
144
  }
144
145
  export interface FsListRowAction {
145
- label?: string;
146
+ label?: string | FsListRowActionLabelFn;
146
147
  type?: ActionType;
147
148
  className?: string;
148
149
  icon?: string;
@@ -159,6 +160,9 @@ export interface FsListRowAction {
159
160
  export interface FsListRowActionLinkFn {
160
161
  (row: FsListAbstractRow): FsListRowActionLink;
161
162
  }
163
+ export interface FsListRowActionLabelFn {
164
+ (row: FsListAbstractRow): string;
165
+ }
162
166
  export interface FsListRowActionLink {
163
167
  link: any[] | string;
164
168
  queryParams?: Record<string, any>;
@@ -218,3 +222,4 @@ export declare type FsListFetchFn = (query: Record<string, any>, options: FsList
218
222
  data: unknown[];
219
223
  paging?: FsPaging;
220
224
  }>;
225
+ export declare type FsListAfterFetchFn = (query: Record<string, any>, data: unknown[]) => void;
@@ -3,7 +3,6 @@ import { ActionType } from '../enums/button-type.enum';
3
3
  import { FsListRowActionLink } from '../interfaces';
4
4
  export declare class RowAction extends Model {
5
5
  icon: string;
6
- label: string;
7
6
  menu: boolean;
8
7
  remove: {
9
8
  title: string;
@@ -14,16 +13,19 @@ export declare class RowAction extends Model {
14
13
  show: Function;
15
14
  restore: boolean;
16
15
  rowActions: RowAction[];
16
+ label: string;
17
17
  routerLink: FsListRowActionLink;
18
18
  classArray: string[];
19
19
  isShown: boolean;
20
20
  click: Function;
21
21
  private _linkFn;
22
+ private _labelFn;
22
23
  private readonly _isGroup;
23
24
  constructor(config?: any);
24
25
  get isGroup(): boolean;
25
26
  _fromJSON(value: any): void;
26
27
  checkShowStatus(row: any, index: any): void;
27
28
  updateLink(row: any): void;
29
+ updateLabel(row: any): void;
28
30
  private clickEvent;
29
31
  }
@@ -517,6 +517,7 @@
517
517
  function RowAction(config) {
518
518
  if (config === void 0) { config = {}; }
519
519
  var _this = _super.call(this) || this;
520
+ _this.label = '';
520
521
  _this.classArray = [];
521
522
  _this.isShown = true;
522
523
  _this._isGroup = false;
@@ -549,6 +550,13 @@
549
550
  return _this.clickEvent(row, event, index, rowActionsRef, clickFn);
550
551
  };
551
552
  this._linkFn = value.link;
553
+ if (typeof value.label === 'function') {
554
+ this._labelFn = value.label;
555
+ this.label = '';
556
+ }
557
+ else {
558
+ this.label = value.label;
559
+ }
552
560
  if (this.className) {
553
561
  this.classArray = this.className.split(' ').reduce(function (acc, elem) {
554
562
  acc.push(elem);
@@ -583,6 +591,19 @@
583
591
  }
584
592
  }
585
593
  };
594
+ RowAction.prototype.updateLabel = function (row) {
595
+ if (!this.isShown) {
596
+ return;
597
+ }
598
+ if (this.isGroup) {
599
+ this.rowActions.forEach(function (action) {
600
+ action.updateLabel(row);
601
+ });
602
+ }
603
+ else if (this._labelFn) {
604
+ this.label = this._labelFn(row);
605
+ }
606
+ };
586
607
  RowAction.prototype.clickEvent = function (row, event, index, rowActionsRef, clickFn) {
587
608
  // Stop event propagation for parent
588
609
  event.stopPropagation();
@@ -599,10 +620,6 @@
599
620
  tsmodels.Alias(),
600
621
  __metadata("design:type", String)
601
622
  ], RowAction.prototype, "icon", void 0);
602
- __decorate([
603
- tsmodels.Alias(),
604
- __metadata("design:type", String)
605
- ], RowAction.prototype, "label", void 0);
606
623
  __decorate([
607
624
  tsmodels.Alias(),
608
625
  __metadata("design:type", Boolean)
@@ -3338,7 +3355,7 @@
3338
3355
  var _this = this;
3339
3356
  var fetch$ = this.fetch$.asObservable();
3340
3357
  // Should wait until saved filters not loaded
3341
- if (!!this.filters && !!this.savedFilters) {
3358
+ if (!!this.filters) {
3342
3359
  fetch$ = rxjs.combineLatest([fetch$, this.filtersReady$])
3343
3360
  .pipe(operators.map(function (_a) {
3344
3361
  var _b = __read(_a, 1), params = _b[0];
@@ -3598,6 +3615,9 @@
3598
3615
  if (((_c = this.emptyState) === null || _c === void 0 ? void 0 : _c.validate) && this.emptyStateTemplate) {
3599
3616
  this.emptyStateEnabled = this.emptyState.validate(query, lodashEs.cloneDeep(response.data));
3600
3617
  }
3618
+ if (this.afterFetchFn) {
3619
+ this.afterFetchFn(query, this.dataController.visibleRowsData);
3620
+ }
3601
3621
  this.fetchComplete$.next();
3602
3622
  this.loading$.next(false);
3603
3623
  };
@@ -3717,6 +3737,10 @@
3717
3737
  tsmodels.Alias('fetch'),
3718
3738
  __metadata("design:type", Function)
3719
3739
  ], List.prototype, "fetchFn", void 0);
3740
+ __decorate([
3741
+ tsmodels.Alias('afterFetch'),
3742
+ __metadata("design:type", Function)
3743
+ ], List.prototype, "afterFetchFn", void 0);
3720
3744
  return List;
3721
3745
  }(tsmodels.Model));
3722
3746
 
@@ -4566,7 +4590,7 @@
4566
4590
  FsListComponent = __decorate([
4567
4591
  core.Component({
4568
4592
  selector: 'fs-list',
4569
- template: "<div class=\"fs-list-container\"\n [ngClass]=\"{ 'has-filter-input': list.filterInput,\n 'has-filters': list.filterConfig?.items.length,\n 'has-heading': list.heading,\n 'has-status': list.status,\n 'has-chips': list.chips,\n 'has-actions': list.actions.hasActions,\n 'first-load': firstLoad,\n 'loading': list.loading$ | async }\">\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 <!-- Header -->\n <div class=\"fs-list-header-container\">\n\n <div class=\"fs-list-header\"\n [ngClass]=\"{ 'no-wrap': reorderController.manualReorderActivated$ || !list.filterConfig?.items.length }\">\n <div class=\"heading-container\">\n <h2 class=\"heading\" *ngIf=\"list.heading\">{{list.heading}}</h2>\n <span class=\"subheading\" *ngIf=\"list.subheading\">{{list.subheading}}</span>\n </div>\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\n <ng-template fsFilterStatusBar>\n <ng-container *ngIf=\"\n list.paging &&\n !(reorderController.manualReorderActivated$ | async) &&\n (!reorderController.enabled || reorderController.status) &&\n ((list.scrollable && list.scrollable.status) || !list.scrollable)\">\n <!-- Status -->\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\">\n </fs-list-status>\n </ng-container>\n </ng-template>\n </fs-filter>\n </div>\n </div>\n\n <!-- Table implementation -->\n <div class=\"fs-list-table-container\">\n <table class=\"fs-list-table\" role=\"grid\" *ngIf=\"!firstLoad && listData.length > 0 && !list.emptyStateEnabled\">\n <thead 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\"\n [sorting]=\"list.sorting\"\n [selection]=\"list.selection\"\n [hasRowActions]=\"list.hasRowActions\"\n >\n </thead>\n\n <tbody 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\"\n [restoreMode]=\"list.restoreMode\"\n [selection]=\"list.selection\"\n [rowRemoved]=\"rowRemoved\"\n >\n </tbody>\n\n <tfoot fs-list-footer\n class=\"fs-list-footer\"\n *ngIf=\"list.columns.hasFooter\"\n [columns]=\"list.columns.visibleColumns\"\n [selection]=\"list.selection\"\n [hasRowActions]=\"list.hasRowActions\"\n [rows]=\"list.dataController.visibleRows\">\n </tfoot>\n </table>\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\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",
4593
+ template: "<div class=\"fs-list-container\"\r\n [ngClass]=\"{ 'has-filter-input': list.filterInput,\r\n 'has-filters': list.filterConfig?.items.length,\r\n 'has-heading': list.heading,\r\n 'has-status': list.status,\r\n 'has-chips': list.chips,\r\n 'has-actions': list.actions.hasActions,\r\n 'first-load': firstLoad,\r\n 'loading': list.loading$ | async }\">\r\n <ng-template [ngTemplateOutlet]=\"listContainerContent\"></ng-template>\r\n</div>\r\n\r\n<ng-template #listContainerContent>\r\n <ng-container *ngIf=\"list.dataController.visibleRows$ | async as listData\">\r\n <!-- Header -->\r\n <div class=\"fs-list-header-container\">\r\n\r\n <div class=\"fs-list-header\"\r\n [ngClass]=\"{ 'no-wrap': reorderController.manualReorderActivated$ || !list.filterConfig?.items.length }\">\r\n <div class=\"heading-container\">\r\n <h2 class=\"heading\" *ngIf=\"list.heading\">{{list.heading}}</h2>\r\n <span class=\"subheading\" *ngIf=\"list.subheading\">{{list.subheading}}</span>\r\n </div>\r\n <fs-filter\r\n class=\"fs-list-filter\"\r\n *ngIf=\"list.filterConfig\"\r\n [filter]=\"list.filterConfig\"\r\n [showSortBy]=\"!list.status\"\r\n [showFilterInput]=\"list.filterInput\"\r\n (ready)=\"filterReady()\">\r\n\r\n <ng-template fsFilterStatusBar>\r\n <ng-container *ngIf=\"\r\n list.paging &&\r\n !(reorderController.manualReorderActivated$ | async) &&\r\n (!reorderController.enabled || reorderController.status) &&\r\n ((list.scrollable && list.scrollable.status) || !list.scrollable)\">\r\n <!-- Status -->\r\n <fs-list-status\r\n class=\"fs-list-status\"\r\n [ngClass]=\"{ 'hidden-mobile': !list.status }\"\r\n [rows]=\"listData\"\r\n [sorting]=\"list.sorting\"\r\n [paging]=\"list.paging\"\r\n [firstLoad]=\"firstLoad\"\r\n [scrollable]=\"list.scrollable\">\r\n </fs-list-status>\r\n </ng-container>\r\n </ng-template>\r\n </fs-filter>\r\n </div>\r\n </div>\r\n\r\n <!-- Table implementation -->\r\n <div class=\"fs-list-table-container\">\r\n <table class=\"fs-list-table\" role=\"grid\" *ngIf=\"!firstLoad && listData.length > 0 && !list.emptyStateEnabled\">\r\n <thead fs-list-head\r\n class=\"fs-list-head\"\r\n role=\"rowgroup\"\r\n *ngIf=\"list.columns.hasHeader\"\r\n [ngClass]=\"list.columns.theadClass\"\r\n [columns]=\"list.columns.visibleColumns\"\r\n [sorting]=\"list.sorting\"\r\n [selection]=\"list.selection\"\r\n [hasRowActions]=\"list.hasRowActions\"\r\n >\r\n </thead>\r\n\r\n <tbody fs-list-body\r\n fsListDraggableList\r\n class=\"fs-list-body\"\r\n role=\"rowgroup\"\r\n [class.disabled]=\"!!(reorderController.reorderDisabled$ | async)\"\r\n [rows]=\"listData\"\r\n [rowActionsRaw]=\"list.rowActionsRaw\"\r\n [groupActionsRaw]=\"list.groupActionsRaw\"\r\n [hasRowActions]=\"list.hasRowActions\"\r\n [rowEvents]=\"list.rowEvents\"\r\n [rowClass]=\"list.rowClass\"\r\n [columns]=\"list.columns.visibleColumns\"\r\n [restoreMode]=\"list.restoreMode\"\r\n [selection]=\"list.selection\"\r\n [rowRemoved]=\"rowRemoved\"\r\n >\r\n </tbody>\r\n\r\n <tfoot fs-list-footer\r\n class=\"fs-list-footer\"\r\n *ngIf=\"list.columns.hasFooter\"\r\n [columns]=\"list.columns.visibleColumns\"\r\n [selection]=\"list.selection\"\r\n [hasRowActions]=\"list.hasRowActions\">\r\n </tfoot>\r\n </table>\r\n <fs-list-loader\r\n *ngIf=\"firstLoad\"\r\n [columns]=\"list.columns.columns\"\r\n [loaderLines]=\"loaderLines\">\r\n </fs-list-loader>\r\n </div>\r\n\r\n <fs-list-pagination\r\n *ngIf=\"paginatorVisible\"\r\n class=\"fs-list-pagination\"\r\n [rows]=\"listData\"\r\n [pagination]=\"list.paging\">\r\n </fs-list-pagination>\r\n\r\n\r\n <ng-container *ngIf=\"!firstLoad\">\r\n <div \r\n *ngIf=\"listData.length === 0\" \r\n class=\"fs-list-no-results-container\">\r\n <div \r\n *ngIf=\"list.noResults?.message && !list.emptyStateEnabled\"\r\n class=\"fs-list-no-results\">\r\n {{ list.noResults?.message }}\r\n </div>\r\n <ng-container *ngIf=\"list.emptyStateEnabled\">\r\n <ng-template [ngTemplateOutlet]=\"list.emptyStateTemplate\"></ng-template>\r\n </ng-container> \r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n",
4570
4594
  changeDetection: core.ChangeDetectionStrategy.OnPush,
4571
4595
  providers: [
4572
4596
  GroupExpandNotifierService,
@@ -5488,14 +5512,10 @@
5488
5512
  core.Input(),
5489
5513
  __metadata("design:type", SelectionController)
5490
5514
  ], FsFooterComponent.prototype, "selection", void 0);
5491
- __decorate([
5492
- core.Input(),
5493
- __metadata("design:type", Array)
5494
- ], FsFooterComponent.prototype, "rows", void 0);
5495
5515
  FsFooterComponent = __decorate([
5496
5516
  core.Component({
5497
5517
  selector: '[fs-list-footer]',
5498
- template: "<tr fs-list-footer-row\n [columns]=\"columns\"\n [hasRowActions]=\"hasRowActions\"\n [selection]=\"selection\"\n [rows]=\"rows\"\n></tr>\n",
5518
+ template: "<tr fs-list-footer-row\n [columns]=\"columns\"\n [hasRowActions]=\"hasRowActions\"\n [selection]=\"selection\"\n></tr>\n",
5499
5519
  changeDetection: core.ChangeDetectionStrategy.OnPush
5500
5520
  }),
5501
5521
  __metadata("design:paramtypes", [])
@@ -5521,14 +5541,10 @@
5521
5541
  core.Input(),
5522
5542
  __metadata("design:type", Boolean)
5523
5543
  ], FsFooterRowComponent.prototype, "hasRowActions", void 0);
5524
- __decorate([
5525
- core.Input(),
5526
- __metadata("design:type", Array)
5527
- ], FsFooterRowComponent.prototype, "rows", void 0);
5528
5544
  FsFooterRowComponent = __decorate([
5529
5545
  core.Component({
5530
5546
  selector: '[fs-list-footer-row]',
5531
- template: "<td *ngIf=\"reorderController.leftReorderActivated$ | async\" class=\"fs-list-col drag-col\"></td>\n\n<td *ngIf=\"selection\" class=\"fs-list-col fs-list-col-selection\"></td>\n<ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td fs-list-footer-cell\n *ngIf=\"!column.footerColspanned\"\n [column]=\"column\"\n [rows]=\"rows\"\n [ngClass]=\"column.footerConfigs.classesArray\"\n [attr.colspan]=\"column.footerConfigs.colspan\"\n [attr.width]=\"column.width\">\n </td>\n</ng-container>\n\n<!-- Drag -->\n<td *ngIf=\"reorderController.rightReorderActivated$ | async\" class=\"fs-list-col row-actions\"></td>\n\n<!-- Row Actions -->\n<td *ngIf=\"hasRowActions && !(reorderController.enabled && reorderController.strategy === ReorderStrategy.Manual)\" class=\"fs-list-col drag-col\"></td>\n",
5547
+ template: "<td *ngIf=\"reorderController.leftReorderActivated$ | async\" class=\"fs-list-col drag-col\"></td>\n\n<td *ngIf=\"selection\" class=\"fs-list-col fs-list-col-selection\"></td>\n<ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td fs-list-footer-cell\n *ngIf=\"!column.footerColspanned\"\n [column]=\"column\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [ngClass]=\"column.footerConfigs.classesArray\"\n [attr.colspan]=\"column.footerConfigs.colspan\"\n [attr.width]=\"column.width\">\n </td>\n</ng-container>\n\n<!-- Drag -->\n<td *ngIf=\"reorderController.rightReorderActivated$ | async\" class=\"fs-list-col row-actions\"></td>\n\n<!-- Row Actions -->\n<td *ngIf=\"hasRowActions && !(reorderController.enabled && reorderController.strategy === ReorderStrategy.Manual)\" class=\"fs-list-col drag-col\"></td>\n",
5532
5548
  changeDetection: core.ChangeDetectionStrategy.OnPush
5533
5549
  }),
5534
5550
  __metadata("design:paramtypes", [core.ElementRef,
@@ -5545,15 +5561,6 @@
5545
5561
  function FsFooterCellComponent() {
5546
5562
  return _super.call(this) || this;
5547
5563
  }
5548
- FsFooterCellComponent.prototype._initCellContext = function () {
5549
- this.cellContext.column = this.column;
5550
- this.cellContext.$implicit = this.rows
5551
- .map(function (row) { return row.data; });
5552
- };
5553
- __decorate([
5554
- core.Input(),
5555
- __metadata("design:type", Array)
5556
- ], FsFooterCellComponent.prototype, "rows", void 0);
5557
5564
  FsFooterCellComponent = __decorate([
5558
5565
  core.Component({
5559
5566
  selector: '[fs-list-footer-cell]',
@@ -5758,7 +5765,10 @@
5758
5765
  return index;
5759
5766
  };
5760
5767
  FsRowActionsComponent.prototype.clickOnTrigger = function (event) {
5768
+ var _this = this;
5761
5769
  event.stopPropagation();
5770
+ this.rowActions
5771
+ .forEach(function (action) { return action.updateLabel(_this.row.data); });
5762
5772
  };
5763
5773
  /**
5764
5774
  * Emit that some row must be removed