@coolon/angular-ui-powerups 3.17.1 → 3.17.3

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 (25) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/assets/table.scss +14 -9
  3. package/bundles/coolon-angular-ui-powerups.umd.js +57 -14
  4. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  6. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  7. package/coolon-angular-ui-powerups.metadata.json +1 -1
  8. package/esm2015/lib/components/card-container/card-container.component.js +1 -1
  9. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
  10. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  11. package/esm2015/lib/components/table/abstract-table-model.js +24 -2
  12. package/esm2015/lib/components/table/abstract-table-model.js.map +1 -1
  13. package/esm2015/lib/components/table/abstract-table-model.metadata.json +1 -1
  14. package/esm2015/lib/components/table/table.component.js +14 -4
  15. package/esm2015/lib/components/table/table.component.js.map +1 -1
  16. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  17. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +9 -6
  18. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  19. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  20. package/fesm2015/coolon-angular-ui-powerups.js +48 -13
  21. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  22. package/lib/components/table/abstract-table-model.d.ts +5 -1
  23. package/lib/components/table/table.component.d.ts +2 -0
  24. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +9 -6
  25. package/package.json +1 -1
@@ -19,7 +19,7 @@ import { MatTableModule } from '@angular/material/table';
19
19
  import { MatTooltipModule } from '@angular/material/tooltip';
20
20
  import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
21
21
  import { fas } from '@fortawesome/free-solid-svg-icons';
22
- import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, ValueModel, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, MutableValueModel, DelegatingListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, ListModel, MultipleSelectionModel, DelegatingSelectionModel, DirtyTrackingForm, ComputedListModel, PageController, Deferred, Trace, Functions } from '@coolon/pectin';
22
+ import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, ValueModel, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, MutableValueModel, DelegatingListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, ListModel, MultipleSelectionModel, DelegatingSelectionModel, AbstractComputedListModel, DirtyTrackingForm, ComputedListModel, PageController, Deferred, Trace, Functions } from '@coolon/pectin';
23
23
  import { __decorate, __metadata, __awaiter } from 'tslib';
24
24
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
25
25
  import _, { find, filter, each, isNil, isEqual } from 'lodash';
@@ -520,7 +520,7 @@ CardContainerComponent.decorators = [
520
520
  { type: Component, args: [{
521
521
  selector: 'aup-card-container',
522
522
  template: "<div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n\n</div>\n",
523
- styles: [":root{--aup-default-background:#fff;--aup-default-padding:var(--default-padding,18px)}aup-activity-title{font-family:Roboto,Helvetica Neue,sans-serif;font-size:20px;letter-spacing:normal;line-height:32px}aup-activity-body{padding:var(--default-padding) 0}.router-outlet-container>*{bottom:0;left:0;position:absolute;right:0;top:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context,.dialog-interaction-context mat-dialog-container{max-height:95vh!important;max-width:95vw!important}.dialog-interaction-context mat-dialog-container{padding:0}.activity-outlet-wrapper{align-items:stretch;display:flex;flex-direction:column}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component mat-form-field .mat-form-field-prefix{align-items:center;align-self:flex-end;display:inline-flex;flex-direction:row;height:35px}.aup-input-component mat-form-field .mat-form-field-suffix .mat-icon-button{line-height:2.5em}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{border-bottom:0;padding-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap,24px);--resolved-row-hover-background-color:var(--row-hover-background-color,rgba(0,0,0,0.05));--resolved-row-selected-background-color:var(--row-selected-background-color,rgba(0,0,255,0.04))}aup-table.hide-header .mat-table thead,aup-table .mat-table td.hide,aup-table .mat-table th.hide{display:none}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table tr.aup-row-selected,aup-table .mat-table tr.aup-row-selected.enable-hover:hover{background-color:var(--resolved-row-selected-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table .mat-table .mat-cell:not(.flex),aup-table .mat-table .mat-header-cell:not(.flex){white-space:nowrap;width:1px}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{align-items:stretch;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{flex:1;padding-left:var(--default-column-gap)}:root{--aup-command-face-icon-gap:8px;--aup-fa-icon-width:18px;--aup-icon-width:24px}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width))/2);position:relative}aup-icon fa-icon .svg-inline--fa{height:var(--aup-fa-icon-width)!important;left:var(--fa-icon-offset);position:absolute;top:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-background:var(--card-background,#fcfcfb);--resolved-card-gap:var(--card-gap,16px);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-width:var(--card-width,300px);background:var(--resolved-card-background);display:block;flex:1}.card-container{box-sizing:border-box;display:-ms-grid;display:grid;grid-gap:var(--resolved-card-gap);grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(var(--resolved-card-min-height),var(--resolved-card-height)));max-width:100%;min-height:calc(var(--resolved-card-height) + 2*var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2*var(--resolved-card-gap));padding:var(--resolved-card-gap);width:calc((var(--resolved-card-width) + var(--resolved-card-gap))*2 + var(--grid-gap))}.add-card-container{align-items:center;background-color:hsla(0,0%,100%,.8);border:2px dashed rgba(0,0,0,.1);border-radius:6px;box-sizing:border-box;color:rgba(0,0,0,.54);cursor:pointer;display:flex;flex-direction:column;font-weight:300;height:var(--resolved-card-height);justify-content:center;min-height:var(--resolved-card-min-height);transition:all .28s cubic-bezier(.4,0,.2,1);width:var(--resolved-card-width)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{background-color:#fff;border-color:transparent;color:rgba(0,0,0,.54);transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{align-items:stretch;display:flex;flex-direction:column;height:var(--resolved-card-height);justify-content:stretch;width:var(--resolved-card-width)}"]
523
+ styles: [":root{--aup-default-background:#fff;--aup-default-padding:var(--default-padding,18px)}aup-activity-title{font-family:Roboto,Helvetica Neue,sans-serif;font-size:20px;letter-spacing:normal;line-height:32px}aup-activity-body{padding:var(--default-padding) 0}.router-outlet-container>*{bottom:0;left:0;position:absolute;right:0;top:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context,.dialog-interaction-context mat-dialog-container{max-height:95vh!important;max-width:95vw!important}.dialog-interaction-context mat-dialog-container{padding:0}.activity-outlet-wrapper{align-items:stretch;display:flex;flex-direction:column}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component mat-form-field .mat-form-field-prefix{align-items:center;align-self:flex-end;display:inline-flex;flex-direction:row;height:35px}.aup-input-component mat-form-field .mat-form-field-suffix .mat-icon-button{line-height:2.5em}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{border-bottom:0;padding-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap,24px);--resolved-row-hover-background-color:var(--row-hover-background-color,rgba(0,0,0,0.05));--resolved-row-selected-background-color:var(--row-selected-background-color,rgba(0,0,255,0.04))}aup-table.hide-header .mat-table thead,aup-table .mat-table td.hide,aup-table .mat-table th.hide{display:none}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table td.mat-cell:last-of-type,aup-table .mat-table td.mat-footer-cell:last-of-type,aup-table .mat-table th.mat-header-cell:last-of-type{padding-right:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table tr.aup-row-selected,aup-table .mat-table tr.aup-row-selected.enable-hover:hover{background-color:var(--resolved-row-selected-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table .mat-table .mat-cell:not(.flex),aup-table .mat-table .mat-header-cell:not(.flex){white-space:nowrap;width:1px}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{align-items:stretch;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:47px;padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.last-visible-column,aup-table aup-table-header-cell-renderer.last-visible-column{padding-right:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{flex:1;padding-left:var(--default-column-gap)}:root{--aup-command-face-icon-gap:8px;--aup-fa-icon-width:18px;--aup-icon-width:24px}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width))/2);position:relative}aup-icon fa-icon .svg-inline--fa{height:var(--aup-fa-icon-width)!important;left:var(--fa-icon-offset);position:absolute;top:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-background:var(--card-background,#fcfcfb);--resolved-card-gap:var(--card-gap,16px);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-width:var(--card-width,300px);background:var(--resolved-card-background);display:block;flex:1}.card-container{box-sizing:border-box;display:-ms-grid;display:grid;grid-gap:var(--resolved-card-gap);grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(var(--resolved-card-min-height),var(--resolved-card-height)));max-width:100%;min-height:calc(var(--resolved-card-height) + 2*var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2*var(--resolved-card-gap));padding:var(--resolved-card-gap);width:calc((var(--resolved-card-width) + var(--resolved-card-gap))*2 + var(--grid-gap))}.add-card-container{align-items:center;background-color:hsla(0,0%,100%,.8);border:2px dashed rgba(0,0,0,.1);border-radius:6px;box-sizing:border-box;color:rgba(0,0,0,.54);cursor:pointer;display:flex;flex-direction:column;font-weight:300;height:var(--resolved-card-height);justify-content:center;min-height:var(--resolved-card-min-height);transition:all .28s cubic-bezier(.4,0,.2,1);width:var(--resolved-card-width)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{background-color:#fff;border-color:transparent;color:rgba(0,0,0,.54);transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{align-items:stretch;display:flex;flex-direction:column;height:var(--resolved-card-height);justify-content:stretch;width:var(--resolved-card-width)}"]
524
524
  },] }
525
525
  ];
526
526
  CardContainerComponent.ctorParameters = () => [];
@@ -2490,11 +2490,27 @@ class RowClass {
2490
2490
  this.matches = matches;
2491
2491
  }
2492
2492
  }
2493
+ class VisibleColumnListModel extends AbstractComputedListModel {
2494
+ constructor() {
2495
+ super(...arguments);
2496
+ this.columns = [];
2497
+ }
2498
+ addColumn(column) {
2499
+ this.runInTransaction(() => {
2500
+ this.columns.push(column);
2501
+ this.trackSource(column.visible);
2502
+ });
2503
+ }
2504
+ doComputeValue() {
2505
+ return this.columns.filter(c => c.visible.value);
2506
+ }
2507
+ }
2493
2508
  let AbstractTableModel = class AbstractTableModel extends GarbageCollector {
2494
2509
  constructor(sourceOfTruth) {
2495
2510
  super();
2496
2511
  this.sourceOfTruth = sourceOfTruth;
2497
2512
  this._columns = new MutableListModel();
2513
+ this._visibleColumnTracker = new VisibleColumnListModel();
2498
2514
  this._editorSessions = new MutableListModel();
2499
2515
  this.rowClassNamePredicates = [];
2500
2516
  this.rowClickListeners = new EventListenerList();
@@ -2513,6 +2529,8 @@ let AbstractTableModel = class AbstractTableModel extends GarbageCollector {
2513
2529
  this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
2514
2530
  this.firstEditableColumn = chain(this.columns).select(c => c.hasEditorPortal()).first();
2515
2531
  this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(column => column.isRowSelectionExplicitlyEnabled()).isGreaterThanOrEqualTo(0);
2532
+ this.firstVisibleColumn = chain(this._visibleColumnTracker).first();
2533
+ this.lastVisibleColumn = chain(this._visibleColumnTracker).last();
2516
2534
  }
2517
2535
  get rowsBeingEdited() {
2518
2536
  return this._rowsBeingEdited.readonly;
@@ -2520,6 +2538,9 @@ let AbstractTableModel = class AbstractTableModel extends GarbageCollector {
2520
2538
  get columns() {
2521
2539
  return this._columns.readonly;
2522
2540
  }
2541
+ get visibleColumns() {
2542
+ return this._visibleColumnTracker.readonly;
2543
+ }
2523
2544
  pluck(property, options) {
2524
2545
  const columnId = (options === null || options === void 0 ? void 0 : options.columnId) || property.toString();
2525
2546
  return this.addColumn(new PropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
@@ -2532,7 +2553,7 @@ let AbstractTableModel = class AbstractTableModel extends GarbageCollector {
2532
2553
  assert.isNil(this.selectionColumnModel);
2533
2554
  const columnId = 'selection-column';
2534
2555
  this.selectionColumnModel = new SelectionColumnModel(columnId, () => this.getColumnTextProperties(columnId), selectionModel);
2535
- this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
2556
+ this.addRowClass('aup-row-selected', row => this.selectionColumnModel.isSelected(row));
2536
2557
  return this.addColumn(this.selectionColumnModel);
2537
2558
  }
2538
2559
  addEditControls(saveCommand) {
@@ -2571,6 +2592,7 @@ let AbstractTableModel = class AbstractTableModel extends GarbageCollector {
2571
2592
  }
2572
2593
  else {
2573
2594
  this._columns.push(column);
2595
+ this._visibleColumnTracker.addColumn(column);
2574
2596
  }
2575
2597
  return column;
2576
2598
  }
@@ -2737,11 +2759,21 @@ class TableComponent extends ResizeAwareComponent {
2737
2759
  notifyCellClicked(columnModel, row) {
2738
2760
  this.tableModel._notifyCellClicked(columnModel, row);
2739
2761
  }
2762
+ // @Trace()
2763
+ isFirstVisibleColumn(columnId) {
2764
+ var _a;
2765
+ return ((_a = this.tableModel.firstVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
2766
+ }
2767
+ // @Trace()
2768
+ isLastVisibleColumn(columnId) {
2769
+ var _a;
2770
+ return ((_a = this.tableModel.lastVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
2771
+ }
2740
2772
  }
2741
2773
  TableComponent.decorators = [
2742
2774
  { type: Component, args: [{
2743
2775
  selector: 'aup-table',
2744
- template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n",
2776
+ template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-visible-column]=\"isFirstVisibleColumn(column.columnId)\"\n [class.last-visible-column]=\"isLastVisibleColumn(column.columnId)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-visible-column]=\"isFirstVisibleColumn(column.columnId)\"\n [class.last-visible-column]=\"isLastVisibleColumn(column.columnId)\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n",
2745
2777
  styles: [":host{align-items:stretch;display:flex;flex-direction:column}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{align-items:stretch;display:flex;flex:1;flex-basis:0;flex-direction:column;overflow-y:scroll}"]
2746
2778
  },] }
2747
2779
  ];
@@ -2753,8 +2785,8 @@ TableComponent.propDecorators = {
2753
2785
  tableModel: [{ type: Input }],
2754
2786
  showHeaderModel: [{ type: Input }],
2755
2787
  showHeader: [{ type: Input }],
2756
- enableScrolling: [{ type: Input }, { type: HostBinding, args: ["class.enable-scrolling",] }],
2757
- hideHeader: [{ type: HostBinding, args: ["class.hide-header",] }]
2788
+ enableScrolling: [{ type: Input }, { type: HostBinding, args: ['class.enable-scrolling',] }],
2789
+ hideHeader: [{ type: HostBinding, args: ['class.hide-header',] }]
2758
2790
  };
2759
2791
  __decorate([
2760
2792
  TrackExternal(),
@@ -2765,7 +2797,7 @@ __decorate([
2765
2797
  __metadata("design:type", ValueModel)
2766
2798
  ], TableComponent.prototype, "showHeaderModel", void 0);
2767
2799
  __decorate([
2768
- StoreInValueModel("showHeaderModel"),
2800
+ StoreInValueModel('showHeaderModel'),
2769
2801
  __metadata("design:type", Boolean)
2770
2802
  ], TableComponent.prototype, "showHeader", void 0);
2771
2803
 
@@ -3767,19 +3799,22 @@ ComponentsModule.ctorParameters = () => [
3767
3799
 
3768
3800
  /**
3769
3801
  * @example
3770
- * <aup-activity-actions [style]="{confirm: saveFace, cancel: cancelFace}">
3802
+ * <aup-activity-actions [confirmFace]="saveFace" [cancelFace]="cancelFace">
3771
3803
  * </aup-activity-actions>
3772
3804
  *
3805
+ * <aup-activity-actions [faces]="{confirm: saveFace, cancel: cancelFace}">
3806
+ * </aup-activity-actions>
3807
+ *
3773
3808
  * // Running `ng g @coolon/angular-ui-powerups:aup-i18n` will install default
3774
3809
  * // style definitions
3775
- * <aup-activity-actions [style]="I18n.aup.components.activityActions.styles.okCancelIcons">
3810
+ * <aup-activity-actions [faces]="I18n.aup.components.activityActions.styles.okCancelIcons">
3776
3811
  * </aup-activity-actions>
3777
3812
  *
3778
3813
  * // you can also add additional content that will be displayed along with the buttons.
3779
3814
  * // The location of the content depends on the alignment attribute.
3780
3815
  * <aup-activity-actions
3781
3816
  * align="stretch"
3782
- * [style]="I18n.aup.components.activityActions.styles.okCancelIcons">
3817
+ * [faces]="I18n.aup.components.activityActions.styles.okCancelIcons">
3783
3818
  * <span>This content will be between the two commands</span>
3784
3819
  * </aup-activity-actions>
3785
3820
  */
@@ -3794,7 +3829,7 @@ class ActivityActionsComponent extends DisposableComponent {
3794
3829
  this.cancelFace = faces.cancel;
3795
3830
  }
3796
3831
  /**
3797
- * @deprecated use #commandFaces instead.
3832
+ * @deprecated use #faces instead.
3798
3833
  */
3799
3834
  set style(style) {
3800
3835
  this.faces = style;
@@ -3808,10 +3843,10 @@ class ActivityActionsComponent extends DisposableComponent {
3808
3843
  ngOnInit() {
3809
3844
  }
3810
3845
  hasConfirmFace() {
3811
- return this.confirmFace;
3846
+ return !!this.confirmFace;
3812
3847
  }
3813
3848
  hasCancelFace() {
3814
- return this.cancelFace;
3849
+ return !!this.cancelFace;
3815
3850
  }
3816
3851
  initCommands(activity) {
3817
3852
  this.confirmCommand = activity.confirmCommand;