@coolon/angular-ui-powerups 11.0.0-alpha.6 → 11.0.0-alpha.9

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 (49) hide show
  1. package/assets/table.scss +13 -6
  2. package/bundles/coolon-angular-ui-powerups.umd.js +63 -18
  3. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/lib/components/commands/command/command.component.js +5 -1
  8. package/esm2015/lib/components/commands/command/command.component.js.map +1 -1
  9. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
  10. package/esm2015/lib/components/components.module.js +0 -3
  11. package/esm2015/lib/components/components.module.js.map +1 -1
  12. package/esm2015/lib/components/components.module.metadata.json +1 -1
  13. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  14. package/esm2015/lib/components/table/column-model.js +2 -1
  15. package/esm2015/lib/components/table/column-model.js.map +1 -1
  16. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  17. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  18. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.metadata.json +1 -1
  19. package/esm2015/lib/components/table/table-model.js +9 -0
  20. package/esm2015/lib/components/table/table-model.js.map +1 -1
  21. package/esm2015/lib/components/table/table-model.metadata.json +1 -1
  22. package/esm2015/lib/components/table/table.component.js +30 -3
  23. package/esm2015/lib/components/table/table.component.js.map +1 -1
  24. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  25. package/esm2015/lib/place/components/abstract-place-navigation.component.js +16 -2
  26. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  27. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  28. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  29. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  30. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  31. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
  32. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  33. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  34. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  35. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  36. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  37. package/esm2015/lib/place/place-component.js +1 -3
  38. package/esm2015/lib/place/place-component.js.map +1 -1
  39. package/esm2015/lib/place/place-component.metadata.json +1 -1
  40. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  41. package/fesm2015/coolon-angular-ui-powerups.js +65 -16
  42. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  43. package/lib/components/commands/command/command.component.d.ts +2 -1
  44. package/lib/components/table/column-model.d.ts +1 -0
  45. package/lib/components/table/table-model.d.ts +9 -0
  46. package/lib/components/table/table.component.d.ts +20 -2
  47. package/lib/place/components/abstract-place-navigation.component.d.ts +8 -1
  48. package/lib/place/place-component.d.ts +1 -1
  49. package/package.json +1 -1
package/assets/table.scss CHANGED
@@ -1,7 +1,9 @@
1
1
  aup-table {
2
- --default-column-gap: var(--column-gap, 24px); // material design table column padding
3
- --resolved-row-selected-background-color: var(--row-selected-background-color, rgba(0, 0, 255, 0.04));
4
- --resolved-row-hover-background-color: var(--row-hover-background-color, rgba(0, 0, 0, 0.05));
2
+ --resolved-column-gap: var(--column-gap, var(--aup-table-column-gap, 24px)); // material design table column padding
3
+ --resolved-row-selected-background-color: var(--row-selected-background-color, var(--aup-table-row-selected-background-color, rgba(0, 0, 255, 0.04)));
4
+ --resolved-row-hover-background-color: var(--row-hover-background-color, var(--aup-table-row-hover-background-color, rgba(0, 0, 0, 0.05)));
5
+ --resolved-first-column-padding-left: var(--first-column-padding-left, var(--aup-table-first-column-padding-left, var(--resolved-column-gap)));
6
+ --resolved-last-column-padding-right: var(--last-column-padding-right, var(--aup-table-last-column-padding-right, var(--resolved-column-gap)));
5
7
 
6
8
  &.hide-header {
7
9
  .mat-table thead {
@@ -64,9 +66,14 @@ aup-table {
64
66
  height: 100%;
65
67
  min-height: 47px; // same as mat table row height - border bottom.
66
68
 
67
- padding-left: var(--default-column-gap);
69
+ padding-left: var(--resolved-column-gap);
70
+
71
+ &.first-visible-column {
72
+ padding-left: var(--resolved-first-column-padding-left);
73
+ }
74
+
68
75
  &.last-visible-column {
69
- padding-right: var(--default-column-gap);
76
+ padding-right: var(--resolved-last-column-padding-right);
70
77
  }
71
78
  }
72
79
 
@@ -78,7 +85,7 @@ aup-table {
78
85
 
79
86
  &.padChild {
80
87
  > *:first-child {
81
- padding-left: var(--default-column-gap);
88
+ padding-left: var(--resolved-column-gap);
82
89
  flex: 1;
83
90
  }
84
91
  }
@@ -1009,6 +1009,9 @@
1009
1009
  _this.activeFace = _this.faces.first();
1010
1010
  _this.buttonStyle = chain(_this.activeFace).map(function (f) { return exports.CommandFace.getStyleOf(f); });
1011
1011
  _this.colorModel = chain(_this.activeFace).map(function (f) { return exports.CommandFace.getColorOf(f); });
1012
+ _this.iconOnly = _this.faces.select(function (face) {
1013
+ return ___default['default'].isEmpty(exports.CommandFace.getTextOf(face)) && !___default['default'].isEmpty(exports.CommandFace.getIconOf(face));
1014
+ }).count().equals(_this.faces.count());
1012
1015
  return _this;
1013
1016
  }
1014
1017
  CommandComponent.prototype.isActive = function (face) {
@@ -1027,7 +1030,7 @@
1027
1030
  CommandComponent.decorators = [
1028
1031
  { type: i0.Component, args: [{
1029
1032
  selector: 'aup-command',
1030
- template: "<ng-container [ngSwitch]=\"buttonStyle.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n</ng-container>\n",
1033
+ template: "<ng-container *ngIf=\"iconOnly.value\">\n <button mat-icon-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n</ng-container>\n<ng-container *ngIf=\"!iconOnly.value\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n</ng-container>\n",
1031
1034
  styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}button{flex:1}"]
1032
1035
  },] }
1033
1036
  ];
@@ -2707,6 +2710,7 @@
2707
2710
  this._flex = false;
2708
2711
  this._visibleModel = new pectin.DelegatingValueModel().withDefault(true);
2709
2712
  this.installHeaderRenderer();
2713
+ this.dasherisedColumnId = typescriptUtilities.Stringy.from(columnId).dasherize().toString();
2710
2714
  }
2711
2715
  ColumnModel.prototype.installHeaderRenderer = function () {
2712
2716
  this.cellHeaderRenderer(DefaultHeaderCellRendererComponent, function (component, column) {
@@ -3332,15 +3336,32 @@
3332
3336
  *
3333
3337
  * Styling
3334
3338
  * @example
3339
+ * // global settings
3340
+ * :root {
3341
+ * --aup-table-column-gap: 10px; // defaults to 24px
3342
+ * --aup-table-row-hover-background-color, rgba(0, 0, 0, 0.05)
3343
+ * --aup-table-row-selected-background-color: rebeccapurple; // defaults to transparent
3344
+ * --aup-table-first-column-padding-left: 18px // defaults to --column-gap
3345
+ * --aup-table-last-column-padding-right: 18px // defaults to --column-gap
3346
+ * }
3347
+ *
3348
+ * // per table settings.
3335
3349
  * aup-table {
3336
3350
  * --column-gap: 10px; // defaults to 24px
3337
3351
  * --row-hover-background-color, rgba(0, 0, 0, 0.05)
3338
3352
  * --row-selected-background-color: rebeccapurple; // defaults to transparent
3353
+ * --first-column-padding-left: 18px // defaults to --column-gap
3354
+ * --last-column-padding-right: 18px // defaults to --column-gap
3355
+ *
3356
+ * aup-table-header-cell-renderer,
3339
3357
  * aup-table-cell-renderer {
3340
- * &:first-column {
3358
+ * &.aup-col-my-dasherised-column-id {
3341
3359
  * // do stuff
3342
3360
  * }
3343
- * &:last-column {
3361
+ * &.first-visible-column {
3362
+ * // do stuff
3363
+ * }
3364
+ * &.last-visible-column {
3344
3365
  * // do stuff
3345
3366
  * }
3346
3367
  * }
@@ -3410,12 +3431,22 @@
3410
3431
  var _a;
3411
3432
  return ((_a = this.tableModel.lastVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
3412
3433
  };
3434
+ TableComponent.prototype.getColumnClasses = function (columnId) {
3435
+ var classes = ["aup-col-" + this.columnsById.get(columnId).dasherisedColumnId];
3436
+ if (this.isFirstVisibleColumn(columnId)) {
3437
+ classes.push('first-visible-column');
3438
+ }
3439
+ if (this.isLastVisibleColumn(columnId)) {
3440
+ classes.push('last-visible-column');
3441
+ }
3442
+ return classes;
3443
+ };
3413
3444
  return TableComponent;
3414
3445
  }(ResizeAwareComponent));
3415
3446
  TableComponent.decorators = [
3416
3447
  { type: i0.Component, args: [{
3417
3448
  selector: 'aup-table',
3418
- 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",
3449
+ 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]=\"getColumnClasses(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]=\"getColumnClasses(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",
3419
3450
  styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:scroll;display:flex;flex-direction:column;align-items:stretch}"]
3420
3451
  },] }
3421
3452
  ];
@@ -4481,12 +4512,9 @@
4481
4512
  TreeTableComponent,
4482
4513
  exports.TreeInheritanceIconComponent,
4483
4514
  TreeLabelCellRendererComponent,
4484
- exports.IconComponent,
4485
4515
  BusyOverlayComponent,
4486
4516
  EmptyStateComponent,
4487
4517
  PaginatorComponent,
4488
- exports.IconComponent,
4489
- exports.IconComponent
4490
4518
  ],
4491
4519
  imports: [
4492
4520
  i2.CommonModule,
@@ -5975,6 +6003,15 @@
5975
6003
  * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
5976
6004
  * });
5977
6005
  *
6006
+ * Template columns
6007
+ * @example
6008
+ * const model = TableModel.fromList(heroList, table => {
6009
+ * table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
6010
+ * table.addTemplateColumn("myTemplate");
6011
+ * });
6012
+ *
6013
+ * <div *aupColumnTemplate="let hero; columnId: 'myTemplate'">{{hero.age}}</div>
6014
+ *
5978
6015
  * I18n
5979
6016
  * @example
5980
6017
  * [table.yml]
@@ -6341,6 +6378,7 @@
6341
6378
  _this._active = new pectin.MutableValueModel(false);
6342
6379
  var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
6343
6380
  when(_this._active).becomesTruthy(function () { return _this.onPlaceReady(); });
6381
+ _this.childPlaces = _this.placeDefinition.children.map(function (d) { return d.component; });
6344
6382
  return _this;
6345
6383
  }
6346
6384
  // @Trace()
@@ -6390,13 +6428,6 @@
6390
6428
  enumerable: false,
6391
6429
  configurable: true
6392
6430
  });
6393
- Object.defineProperty(PlaceComponent.prototype, "childPlaces", {
6394
- get: function () {
6395
- return this.placeDefinition.children.map(function (d) { return d.component; });
6396
- },
6397
- enumerable: false,
6398
- configurable: true
6399
- });
6400
6431
  Object.defineProperty(PlaceComponent.prototype, "active", {
6401
6432
  get: function () {
6402
6433
  return this._active.readonly;
@@ -8369,6 +8400,7 @@
8369
8400
  var _this = _super.call(this) || this;
8370
8401
  _this.placeRouter = placeRouter;
8371
8402
  _this._activePlaceComponent = new pectin.DelegatingValueModel();
8403
+ _this.trackByPlaceDef = function (data) { return data.place; };
8372
8404
  var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
8373
8405
  _this.placeDefinitions = chain(_this.placesModel)
8374
8406
  .map(function (c) { return exports.PlaceComponent.getDefinition(c); })
@@ -8387,6 +8419,19 @@
8387
8419
  setTimeout(function () { return _this._activePlaceComponent.setDelegate(outlet ? outlet.activePlaceModel : null); });
8388
8420
  });
8389
8421
  _this.activePlaceDefinition = chain(_this._activePlaceComponent).pluck('placeDefinition');
8422
+ _this.menuItems = chain(_this.placeDefinitions).map(function (d) {
8423
+ return {
8424
+ place: d,
8425
+ active: _this.activePlaceDefinition.value === d
8426
+ };
8427
+ }, {
8428
+ dependsOn: _this.activePlaceDefinition
8429
+ });
8430
+ var txo = new pectin.TransactionObserver({ verbose: true }).onEvent(function (e) { return console.log(e.name, e.payload); });
8431
+ txo.observe('this.placesModel', _this.placesModel);
8432
+ txo.observe('this.placeDefinitions', _this.placeDefinitions);
8433
+ txo.observe('this.activePlaceDefinition', _this.activePlaceDefinition);
8434
+ txo.observe('this.menuItems', _this.menuItems);
8390
8435
  return _this;
8391
8436
  }
8392
8437
  AbstractPlaceNavigationComponent.prototype.getNavigationFace = function (placeDef) {
@@ -8398,7 +8443,7 @@
8398
8443
  };
8399
8444
  };
8400
8445
  AbstractPlaceNavigationComponent.prototype.isActive = function (place) {
8401
- return this.activePlaceDefinition.query().equals(place);
8446
+ return;
8402
8447
  };
8403
8448
  AbstractPlaceNavigationComponent.prototype.ngOnInit = function () {
8404
8449
  };
@@ -8451,7 +8496,7 @@
8451
8496
  ListPlaceNavComponent.decorators = [
8452
8497
  { type: i0.Component, args: [{
8453
8498
  selector: 'aup-list-place-nav',
8454
- template: "<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [class.active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNavigationFace(placeDefinition).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(placeDefinition)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n",
8499
+ template: "<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n",
8455
8500
  styles: [":host{display:flex;flex-direction:column;--selected-border-color:#838383;--selected-color:inherit;--selected-background:#f1f1f1}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}"]
8456
8501
  },] }
8457
8502
  ];
@@ -8522,7 +8567,7 @@
8522
8567
  SidePlaceNavigationComponent.decorators = [
8523
8568
  { type: i0.Component, args: [{
8524
8569
  selector: 'aup-side-place-navigation',
8525
- template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [class.active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNavigationFace(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNavigationFace(placeDefinition).icon()\" [icon]=\"getNavigationFace(placeDefinition).icon()\"></aup-icon>\n <span class=\"expanded-only\">{{getNavigationFace(placeDefinition).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n",
8570
+ template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-icon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n",
8526
8571
  styles: [":host{display:flex;flex-direction:column;--resolved-nav-item-width:var(--nav-width,56px);--resolved-nav-item-height:var(--nav-item-height,var(--resolved-nav-item-width));--resolved-expanded-width:var(--nav-expanded-width,235px);--resolved-color:var(--nav-color,hsla(0,0%,100%,0.9));--resolved-background-color:var(--nav-background-color,#555);width:var(--resolved-nav-item-width);transition:width 125ms linear;background-color:var(--resolved-background-color);color:var(--resolved-color)}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item aup-icon:not(.collapsed-only){margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--resolved-nav-item-width);height:var(--resolved-nav-item-height);color:inherit}.mat-list-item.active{background-color:#444}.mat-list-item.home{text-align:left}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}"]
8527
8572
  },] }
8528
8573
  ];
@@ -8544,7 +8589,7 @@
8544
8589
  TabbedPlaceNavigationComponent.decorators = [
8545
8590
  { type: i0.Component, args: [{
8546
8591
  selector: 'aup-tabbed-place-navigation',
8547
- template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNavigationFace(placeDefinition).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(placeDefinition)]\"></aup-command-face>\n </a>\n</nav>\n",
8592
+ template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n</nav>\n",
8548
8593
  styles: [""]
8549
8594
  },] }
8550
8595
  ];