@coolon/angular-ui-powerups 2.0.0-alpha.33 → 2.0.0-alpha.35

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 (71) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/assets/commands.scss +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.js +111 -52
  4. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  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/commands/command-face/command-face.component.js +9 -2
  11. package/esm2015/lib/components/commands/command-face/command-face.component.js.map +1 -1
  12. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -1
  13. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +1 -1
  14. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  15. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +2 -5
  16. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  17. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  18. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  19. package/esm2015/lib/place/components/abstract-place-navigation.component.js +4 -3
  20. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  21. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  22. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  23. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  24. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  25. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +56 -16
  26. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
  27. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  28. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
  29. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  30. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  31. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  32. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  33. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  34. package/esm2015/lib/place/place-component.js +12 -0
  35. package/esm2015/lib/place/place-component.js.map +1 -1
  36. package/esm2015/lib/place/place-component.metadata.json +1 -1
  37. package/esm2015/lib/place/place.module.js +3 -3
  38. package/esm2015/lib/place/place.module.js.map +1 -1
  39. package/esm2015/lib/place/place.module.metadata.json +1 -1
  40. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  41. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  42. package/esm5/lib/components/commands/command-face/command-face.component.js +9 -2
  43. package/esm5/lib/components/commands/command-face/command-face.component.js.map +1 -1
  44. package/esm5/lib/interaction/components/activity-actions/activity-actions.component.js +1 -1
  45. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +2 -5
  46. package/esm5/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  47. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  48. package/esm5/lib/place/components/abstract-place-navigation.component.js +4 -3
  49. package/esm5/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  50. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  51. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  52. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +56 -16
  53. package/esm5/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
  54. package/esm5/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
  55. package/esm5/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  56. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  57. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  58. package/esm5/lib/place/place-component.js +16 -0
  59. package/esm5/lib/place/place-component.js.map +1 -1
  60. package/esm5/lib/place/place.module.js +3 -3
  61. package/esm5/lib/place/place.module.js.map +1 -1
  62. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  63. package/fesm2015/coolon-angular-ui-powerups.js +103 -48
  64. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  65. package/fesm5/coolon-angular-ui-powerups.js +109 -50
  66. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  67. package/lib/components/commands/command-face/command-face.component.d.ts +8 -1
  68. package/lib/place/components/abstract-place-navigation.component.d.ts +2 -2
  69. package/lib/place/components/place-outlet/place-outlet.component.d.ts +8 -2
  70. package/lib/place/place-component.d.ts +6 -0
  71. package/package.json +1 -1
@@ -18,7 +18,7 @@ import { MatTableModule } from '@angular/material/table';
18
18
  import { MatTooltipModule } from '@angular/material/tooltip';
19
19
  import { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
20
20
  import { fas } from '@fortawesome/free-solid-svg-icons';
21
- import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, Command, MutableListModel, Disposable, MutableValueModel, StoreInValueModel, ListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, StoreInListModel, ValueModel, MultipleSelectionModel, DirtyTrackingForm, DelegatingCommand, Deferred, Functions } from '@coolon/pectin';
21
+ import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, Command, MutableListModel, Disposable, MutableValueModel, StoreInValueModel, ListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, StoreInListModel, ValueModel, MultipleSelectionModel, DirtyTrackingForm, DelegatingCommand, Deferred, Trace, Functions } from '@coolon/pectin';
22
22
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
23
23
  import ___default, { isEqual, isNil } from 'lodash';
24
24
  import { Enum } from 'typescript-string-enums';
@@ -29,8 +29,8 @@ import { MatDialogModule, MatDialog, MatDialogConfig, MAT_DIALOG_DEFAULT_OPTIONS
29
29
  import { RouterModule, UrlSegment, Router, UrlSerializer, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterOutlet } from '@angular/router';
30
30
  import { Overlay, CdkScrollable } from '@angular/cdk/overlay';
31
31
  import ResizeObserver from 'resize-observer-polyfill';
32
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
33
32
  import { MatListModule } from '@angular/material/list';
33
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
34
34
  import { Memoize as Memoize$1 } from '@typescript-plus/fast-memoize-decorator';
35
35
  import 'reflect-metadata';
36
36
  import { style, query, group, animate, trigger, transition } from '@angular/animations';
@@ -372,7 +372,7 @@ CardContainerComponent = __decorate([
372
372
  Component({
373
373
  selector: 'aup-card-container',
374
374
  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-icon 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",
375
- styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white;--command-face-icon-gap:8px;--aup-icon-width:24px;--aup-fa-icon-width:18px}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right: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{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.activity-outlet-wrapper{display:flex;flex-direction:column;align-items:stretch}.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 280ms 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.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{padding-bottom:0;border-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))}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 td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;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{padding-left:var(--default-column-gap);flex:1}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{position:absolute;top:var(--fa-icon-offset);left:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important;height:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-gap:var(--card-gap, 16px);--resolved-card-width:var(--card-width, 300px);--resolved-card-height:var(--card-height, auto);--resolved-card-min-height:var(--card-min-height, auto);--resolved-card-background:var(--card-background, #fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,var(--resolved-card-height)));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap));max-width:100%}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.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{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
375
+ styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white;--aup-command-face-icon-gap:8px;--aup-icon-width:24px;--aup-fa-icon-width:18px}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right: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{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.activity-outlet-wrapper{display:flex;flex-direction:column;align-items:stretch}.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 280ms 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.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{padding-bottom:0;border-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))}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 td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;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{padding-left:var(--default-column-gap);flex:1}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{position:absolute;top:var(--fa-icon-offset);left:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important;height:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-gap:var(--card-gap, 16px);--resolved-card-width:var(--card-width, 300px);--resolved-card-height:var(--card-height, auto);--resolved-card-min-height:var(--card-min-height, auto);--resolved-card-background:var(--card-background, #fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,var(--resolved-card-height)));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap));max-width:100%}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.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{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
376
376
  }),
377
377
  __metadata("design:paramtypes", [])
378
378
  ], CardContainerComponent);
@@ -514,7 +514,14 @@ CommandBarComponent = CommandBarComponent_1 = __decorate([
514
514
  ], CommandBarComponent);
515
515
 
516
516
  /**
517
- *
517
+ * Custom CSS:
518
+ * @example
519
+ * root: { // globally
520
+ * --aup-command-face-icon-gap: 8px;
521
+ * }
522
+ * aup-command-face { // per instance
523
+ * --icon-gap: 4px;
524
+ * }
518
525
  */
519
526
  let CommandFaceComponent = class CommandFaceComponent extends DisposableComponent {
520
527
  constructor(commandContainer) {
@@ -591,7 +598,7 @@ CommandFaceComponent = __decorate([
591
598
  selector: 'aup-command-face',
592
599
  template: "<aup-icon *ngIf=\"iconStart\" [icon]=\"iconModel.value\"></aup-icon>\n<span *ngIf=\"this.text\">{{this.text}}</span>\n<aup-icon *ngIf=\"iconEnd\" [icon]=\"iconModel.value\"></aup-icon>\n",
593
600
  encapsulation: ViewEncapsulation.None,
594
- styles: ["aup-command-face{--icon-gap:var(--command-face-icon-gap);display:inline-flex;flex-direction:row;align-items:center}aup-command-face *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}"]
601
+ styles: ["aup-command-face{--icon-gap:var(--aup-command-face-icon-gap);display:inline-flex;flex-direction:row;align-items:center}aup-command-face *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}"]
595
602
  }),
596
603
  __param(0, Optional()),
597
604
  __metadata("design:paramtypes", [CommandContainer])
@@ -3048,7 +3055,7 @@ ActivityActionsComponent = __decorate([
3048
3055
  Component({
3049
3056
  selector: 'aup-activity-actions',
3050
3057
  template: "<ng-container *ngIf=\"hasCancelCommand()\">\n <button class=\"cancel\" *ngIf=\"!hasCancelText()\" mat-icon-button [pectinCommand]=\"cancelCommand\">\n <aup-icon icon=\"mat:clear\"></aup-icon>\n </button>\n <button class=\"cancel\" *ngIf=\"hasCancelText()\" mat-button [pectinCommand]=\"cancelCommand\">{{cancelText}}</button>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmCommand()\">\n <button class=\"confirm\" *ngIf=\"!hasConfirmText()\" mat-icon-button [pectinCommand]=\"confirmCommand\">\n <aup-icon icon=\"mat:done\"></aup-icon>\n </button>\n <button class=\"confirm\" *ngIf=\"hasConfirmText()\" mat-button [pectinCommand]=\"confirmCommand\">{{confirmText}}</button>\n</ng-container>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n",
3051
- styles: [":host{display:-ms-grid;display:grid;grid-template-areas:\"cancel confirm content\";-ms-grid-columns:auto auto 1fr;grid-template-columns:auto auto 1fr;-ms-grid-rows:auto;grid-template-rows:auto;align-items:center;justify-content:end}:host.align-end{grid-template-areas:\"content cancel confirm\";-ms-grid-columns:1fr auto auto;grid-template-columns:1fr auto auto}:host.align-stretch{grid-template-areas:\"cancel content confirm\";-ms-grid-columns:auto 1fr auto;grid-template-columns:auto 1fr auto}.cancel{-ms-grid-row:1;-ms-grid-column:1;grid-area:cancel}:host.align-end>.cancel{-ms-grid-row:1;-ms-grid-column:2}:host.align-stretch>.cancel{-ms-grid-row:1;-ms-grid-column:1}.confirm{-ms-grid-row:1;-ms-grid-column:2;grid-area:confirm}:host.align-end>.confirm{-ms-grid-row:1;-ms-grid-column:3}:host.align-stretch>.confirm{-ms-grid-row:1;-ms-grid-column:3}.content{-ms-grid-row:1;-ms-grid-column:3;grid-area:content;text-align:left}:host.align-end>.content{-ms-grid-row:1;-ms-grid-column:1}:host.align-stretch>.content{-ms-grid-row:1;-ms-grid-column:2}"]
3058
+ styles: [":host{display:-ms-grid;display:grid;grid-template-areas:\"cancel confirm content\";-ms-grid-columns:auto auto 1fr;grid-template-columns:auto auto 1fr;-ms-grid-rows:auto;grid-template-rows:auto;align-items:center;justify-content:end}:host.align-end{grid-template-areas:\"content cancel confirm\";-ms-grid-columns:1fr auto auto;grid-template-columns:1fr auto auto}:host.align-stretch{grid-template-areas:\"cancel content confirm\";-ms-grid-columns:auto 1fr auto;grid-template-columns:auto 1fr auto}.cancel{-ms-grid-row:1;-ms-grid-column:1;grid-area:cancel}:host.align-end>.cancel{-ms-grid-row:1;-ms-grid-column:2}:host.align-stretch>.cancel{-ms-grid-row:1;-ms-grid-column:1}.confirm{-ms-grid-row:1;-ms-grid-column:2;grid-area:confirm}:host.align-end>.confirm{-ms-grid-row:1;-ms-grid-column:3}:host.align-stretch>.confirm{-ms-grid-row:1;-ms-grid-column:3}.column{-ms-grid-row:1;-ms-grid-column:3;grid-area:content;text-align:left}:host.align-end>.column{-ms-grid-row:1;-ms-grid-column:1}:host.align-stretch>.column{-ms-grid-row:1;-ms-grid-column:2}"]
3052
3059
  })
3053
3060
  ], ActivityActionsComponent);
3054
3061
 
@@ -3347,10 +3354,6 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
3347
3354
  this.dynamicHeight = false;
3348
3355
  this.activityRefs = [];
3349
3356
  this.garbage = new GarbageCollector();
3350
- // We have issues where angular is triggering a leave animation when an
3351
- // new activity is started, but is not running the enter animation
3352
- // when it is scrolled back into view. So we track the tab changes and
3353
- // disable all animations inside the tab while we're animating.
3354
3357
  this.inAnimation = new MutableValueModel(false);
3355
3358
  }
3356
3359
  ngOnInit() {
@@ -3493,6 +3496,7 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
3493
3496
  const newIndex = this.getActiveActivityCount() - 1;
3494
3497
  if (previousIndex !== newIndex) {
3495
3498
  this.inAnimation.value = true;
3499
+ this.activityRefs[newIndex].setFocused(false);
3496
3500
  this.tabs.selectedIndex = newIndex;
3497
3501
  this.onAnimationFinishedJob = () => {
3498
3502
  this.activityRefs = this.activityRefs.filter(tab => !tab.isComplete());
@@ -3536,7 +3540,7 @@ __decorate([
3536
3540
  ActivityContainerComponent = __decorate([
3537
3541
  Component({
3538
3542
  selector: 'aup-activity-container',
3539
- template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let tab of activityRefs; let i = index; trackBy: activityIndex\">\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"inAnimation.value || !tab.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\"\n [activityRef]=\"tab\"></aup-activity-outlet>\n </div>\n </mat-tab>\n</mat-tab-group>\n",
3543
+ template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </mat-tab>\n</mat-tab-group>\n",
3540
3544
  styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
3541
3545
  }),
3542
3546
  __metadata("design:paramtypes", [])
@@ -4513,6 +4517,9 @@ let PlaceComponent = PlaceComponent_1 = class PlaceComponent extends DisposableC
4513
4517
  super();
4514
4518
  this.visitModel = new MutableValueModel();
4515
4519
  this._inVisitUpdate = new Guard();
4520
+ this._active = new MutableValueModel(false);
4521
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
4522
+ when(this._active).becomesTruthy(() => this.onPlaceReady());
4516
4523
  }
4517
4524
  // @Trace()
4518
4525
  initialiseVisit(visit, notifyVisitChanged) {
@@ -4558,6 +4565,15 @@ let PlaceComponent = PlaceComponent_1 = class PlaceComponent extends DisposableC
4558
4565
  get childPlaces() {
4559
4566
  return this.placeDefinition.children.map(d => d.component);
4560
4567
  }
4568
+ get active() {
4569
+ return this._active.readonly;
4570
+ }
4571
+ /**
4572
+ * Called by the router when the place is ready to interact after any animations have run.
4573
+ */
4574
+ _notifyActive(active) {
4575
+ this._active.value = active;
4576
+ }
4561
4577
  onPlaceReady() {
4562
4578
  }
4563
4579
  };
@@ -5950,6 +5966,7 @@ let PlaceOutletComponent = class PlaceOutletComponent extends DisposableComponen
5950
5966
  this._activePlaceModel = new MutableValueModel();
5951
5967
  this.initialPlaceIndex = null;
5952
5968
  this._isPushingVisitToRoute = new MutableValueModel(false);
5969
+ this.isVeryFirstLoad = true;
5953
5970
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
5954
5971
  this.parentOutletModel = new MutableValueModel(parentOutlet);
5955
5972
  const defaultPlaceAnimationOrder = chain(this.parentOutletModel)
@@ -5958,8 +5975,9 @@ let PlaceOutletComponent = class PlaceOutletComponent extends DisposableComponen
5958
5975
  .pluckList('children')
5959
5976
  .pluck('component');
5960
5977
  const activatePlaceType = chain(this.activePlaceModel).map(p => p.constructor);
5961
- this.placeAnimationOrder = chain(this.customPlaceAnimationOrderModel)
5962
- .otherwise(defaultPlaceAnimationOrder)
5978
+ this.placesInAnimationOrder = chain(this.customPlaceAnimationOrderModel)
5979
+ .otherwise(defaultPlaceAnimationOrder);
5980
+ this.activePlaceAnimationPosition = this.placesInAnimationOrder
5963
5981
  .reduce((placesInOrder) => {
5964
5982
  let placeIndex = 0;
5965
5983
  if (activatePlaceType.value) {
@@ -5970,14 +5988,16 @@ let PlaceOutletComponent = class PlaceOutletComponent extends DisposableComponen
5970
5988
  }
5971
5989
  return isNil(this.initialPlaceIndex) ? 0 : placeIndex - this.initialPlaceIndex;
5972
5990
  }, { dependsOn: activatePlaceType });
5991
+ this.animationSupported = this.placesInAnimationOrder.count().isGreaterThan(0);
5992
+ this.animationEnabled = valueOf.all(this.animateModel, this.animationSupported).areTruthy();
5973
5993
  // Extract our visit model from the place router.
5974
5994
  this._activePlaceDefinition = chain(this._activePlaceModel).pluck('placeDefinition');
5975
5995
  this.routerVisitModel = this._activePlaceDefinition.findIn(chain(placeRouter.activeVisitsByPlaceDefinition));
5976
5996
  this.navigationInProgress = chain(this.placeRouter.navigationInProgress);
5977
- when.valueOf(this.navigationInProgress).becomesFalsey(() => {
5997
+ when(this.navigationInProgress).becomesFalsey(() => {
5978
5998
  this.checkStateAndInitialise();
5979
5999
  });
5980
- when.valueOf(this.outletActivated).becomesTruthy(() => {
6000
+ when(this.outletActivated).becomesTruthy(() => {
5981
6001
  this.checkStateAndInitialise();
5982
6002
  });
5983
6003
  chain(this._activePlaceModel)
@@ -5989,14 +6009,17 @@ let PlaceOutletComponent = class PlaceOutletComponent extends DisposableComponen
5989
6009
  }
5990
6010
  // @Trace()
5991
6011
  getAnimationOrder() {
5992
- return this.placeAnimationOrder.value;
6012
+ return this.activePlaceAnimationPosition.value;
5993
6013
  }
5994
6014
  get animationDuration() {
5995
6015
  return this.placeConfig && this.placeConfig.animationDuration ? this.placeConfig.animationDuration : '500ms';
5996
6016
  }
5997
6017
  // @Trace()
5998
6018
  navigate(visit) {
5999
- // console.log({ activatedRoute: this._activatedRouteModel.value });
6019
+ // const place = this.placesInAnimationOrder.query().findMatching(p => visit.placeDefinition.component === p);
6020
+ // if (!place) {
6021
+ // lang.illegalState()
6022
+ // }
6000
6023
  this.placeRouter.navigate(visit, {
6001
6024
  relativeTo: this.parentOutlet ? this.parentOutlet.activatedRouteModel.value : null
6002
6025
  });
@@ -6010,14 +6033,25 @@ let PlaceOutletComponent = class PlaceOutletComponent extends DisposableComponen
6010
6033
  get activatedRouteModel() {
6011
6034
  return this._activatedRouteModel.readonly;
6012
6035
  }
6013
- // @Trace()
6014
6036
  onOutletActivated(routerOutlet, place) {
6015
6037
  this._activatedRouteModel.value = routerOutlet.activatedRoute;
6016
6038
  this._activePlaceModel.value = place;
6039
+ this.validateAnimationState(place);
6017
6040
  this.outletActivated.value = true;
6018
6041
  this.checkStateAndInitialise();
6019
6042
  }
6020
- // @Trace()
6043
+ validateAnimationState(place) {
6044
+ if (this.animateModel.value) {
6045
+ if (this.placesInAnimationOrder.length < 1) {
6046
+ console.error('PlaceOutlet.animate === true but placeAnimationOrder has not been set. Animation is disabled.');
6047
+ }
6048
+ else {
6049
+ if (!this.placesInAnimationOrder.query().includes(place.placeDefinition.component)) {
6050
+ console.error(`PlaceOutlet.animate === true but placeAnimationOrder doesn't contain ${place.placeDefinition.component.name}.`);
6051
+ }
6052
+ }
6053
+ }
6054
+ }
6021
6055
  onOutletDeactivated() {
6022
6056
  this.outletActivated.value = false;
6023
6057
  this._activePlaceModel.value = null;
@@ -6034,16 +6068,24 @@ let PlaceOutletComponent = class PlaceOutletComponent extends DisposableComponen
6034
6068
  this.initialisePlace(routerVisit, activePlace);
6035
6069
  }
6036
6070
  }
6037
- // @Trace()
6038
6071
  initialisePlace(routerVisit, activePlace) {
6039
6072
  const visitModel = new MutableValueModel(routerVisit);
6040
6073
  DebugContext.tag(visitModel, `PlaceOutletComponent[${activePlace.constructor.name})].visitModel`);
6041
6074
  activePlace.initialiseVisit(routerVisit, (current, previous) => {
6042
6075
  this.pushVisitChangeToRoute(previous, current);
6043
6076
  });
6044
- if (!this.animateModel.value) {
6045
- // we're not animating so trigger any post animation callbacks now.
6046
- this.animationDone();
6077
+ const finishPlaceLoad = () => {
6078
+ this._activePlaceModel.value._notifyActive(true);
6079
+ };
6080
+ if (!this.animationEnabled.value || this.isVeryFirstLoad) {
6081
+ // if animation is disabled or this is the very first load then
6082
+ // we won't get our animation done callback so we finish the
6083
+ // process here and now.
6084
+ this.isVeryFirstLoad = false;
6085
+ finishPlaceLoad();
6086
+ }
6087
+ else {
6088
+ this.onAnimationFinishedJob = finishPlaceLoad;
6047
6089
  }
6048
6090
  const { when, chain, valueOf } = Dsl.disposeWith(activePlace);
6049
6091
  when.valueOf(this.routerVisitModel)
@@ -6065,8 +6107,9 @@ let PlaceOutletComponent = class PlaceOutletComponent extends DisposableComponen
6065
6107
  }
6066
6108
  // @Trace()
6067
6109
  animationDone() {
6068
- if (this._activePlaceModel.value) {
6069
- this._activePlaceModel.value.onPlaceReady();
6110
+ if (this.onAnimationFinishedJob) {
6111
+ this.onAnimationFinishedJob();
6112
+ this.onAnimationFinishedJob = undefined;
6070
6113
  }
6071
6114
  }
6072
6115
  };
@@ -6100,10 +6143,22 @@ __decorate([
6100
6143
  ViewChild('routeOutlet', { static: true }),
6101
6144
  __metadata("design:type", RouterOutlet)
6102
6145
  ], PlaceOutletComponent.prototype, "routerOut", void 0);
6146
+ __decorate([
6147
+ Trace(),
6148
+ __metadata("design:type", Function),
6149
+ __metadata("design:paramtypes", [RouterOutlet, PlaceComponent]),
6150
+ __metadata("design:returntype", void 0)
6151
+ ], PlaceOutletComponent.prototype, "onOutletActivated", null);
6152
+ __decorate([
6153
+ Trace(),
6154
+ __metadata("design:type", Function),
6155
+ __metadata("design:paramtypes", []),
6156
+ __metadata("design:returntype", void 0)
6157
+ ], PlaceOutletComponent.prototype, "onOutletDeactivated", null);
6103
6158
  PlaceOutletComponent = __decorate([
6104
6159
  Component({
6105
6160
  selector: 'aup-place-outlet',
6106
- template: "<ng-container *ngIf=\"animateModel.value\">\n <div class=\"router-outlet-container\" cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animateModel.value\">\n <div class=\"router-outlet-container\" cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n",
6161
+ template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\" cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\" cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n",
6107
6162
  animations: [LEFT_RIGHT_PLACE_ANIMATION],
6108
6163
  styles: [":host{display:flex;flex-direction:column;min-height:0}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:scroll}router-outlet{display:none}"]
6109
6164
  }),
@@ -6130,10 +6185,10 @@ let AbstractPlaceNavigationComponent = class AbstractPlaceNavigationComponent ex
6130
6185
  });
6131
6186
  this.activePlaceDefinition = chain(this._activePlaceComponent).pluck('placeDefinition');
6132
6187
  }
6133
- getNav(placeDef) {
6188
+ getNavigationFace(placeDef) {
6134
6189
  const navItem = placeDef.getPlaceData('nav');
6135
6190
  return {
6136
- title: () => navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']),
6191
+ text: () => navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']),
6137
6192
  tooltip: () => navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getPlaceData('navTooltip', null),
6138
6193
  icon: () => navItem && navItem.icon ? navItem.icon() : placeDef.getPlaceData('navIcon', null)
6139
6194
  };
@@ -6168,7 +6223,7 @@ __decorate([
6168
6223
  __metadata("design:type", Function),
6169
6224
  __metadata("design:paramtypes", [PlaceDefinition]),
6170
6225
  __metadata("design:returntype", Object)
6171
- ], AbstractPlaceNavigationComponent.prototype, "getNav", null);
6226
+ ], AbstractPlaceNavigationComponent.prototype, "getNavigationFace", null);
6172
6227
  AbstractPlaceNavigationComponent = __decorate([
6173
6228
  Component({
6174
6229
  template: ''
@@ -6229,29 +6284,12 @@ ListPlaceNavComponent.ctorParameters = () => [
6229
6284
  ListPlaceNavComponent = __decorate([
6230
6285
  Component({
6231
6286
  selector: 'aup-list-place-nav',
6232
- 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]=\"getNav(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNav(placeDefinition).icon()\" [icon]=\"getNav(placeDefinition).icon()\"></aup-icon>\n <span>{{getNav(placeDefinition).title()}}</span>\n </a>\n</mat-nav-list>\n",
6287
+ 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 [face]=\"getNavigationFace(placeDefinition)\"></aup-command-face>\n </a>\n</mat-nav-list>\n",
6233
6288
  styles: [":host{display:flex;flex-direction:column;--selected-border-color:#838383;--selected-color:inherit;--selected-background:#f1f1f1}mat-nav-list{padding-top:0}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}"]
6234
6289
  }),
6235
6290
  __metadata("design:paramtypes", [PlaceRouter])
6236
6291
  ], ListPlaceNavComponent);
6237
6292
 
6238
- let TabbedPlaceNavigationComponent = class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
6239
- constructor(placeRouter) {
6240
- super(placeRouter);
6241
- }
6242
- };
6243
- TabbedPlaceNavigationComponent.ctorParameters = () => [
6244
- { type: PlaceRouter }
6245
- ];
6246
- TabbedPlaceNavigationComponent = __decorate([
6247
- Component({
6248
- selector: 'aup-tabbed-place-navigation',
6249
- 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]=\"getNav(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNav(placeDefinition).icon()\" [icon]=\"getNav(placeDefinition).icon()\"></aup-icon>\n <span>{{getNav(placeDefinition).title()}}</span>\n </a>\n</nav>\n",
6250
- styles: [""]
6251
- }),
6252
- __metadata("design:paramtypes", [PlaceRouter])
6253
- ], TabbedPlaceNavigationComponent);
6254
-
6255
6293
  /**
6256
6294
  * @example
6257
6295
  * // Usage
@@ -6325,12 +6363,29 @@ __decorate([
6325
6363
  SidePlaceNavigationComponent = __decorate([
6326
6364
  Component({
6327
6365
  selector: 'aup-side-place-navigation',
6328
- 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]=\"getNav(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNav(placeDefinition).icon()\" [icon]=\"getNav(placeDefinition).icon()\"></aup-icon>\n <span\n class=\"expanded-only\">{{getNav(placeDefinition).title()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n",
6366
+ 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",
6329
6367
  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, rgba(255, 255, 255, 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)}"]
6330
6368
  }),
6331
6369
  __metadata("design:paramtypes", [Router, PlaceRouter])
6332
6370
  ], SidePlaceNavigationComponent);
6333
6371
 
6372
+ let TabbedPlaceNavigationComponent = class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
6373
+ constructor(placeRouter) {
6374
+ super(placeRouter);
6375
+ }
6376
+ };
6377
+ TabbedPlaceNavigationComponent.ctorParameters = () => [
6378
+ { type: PlaceRouter }
6379
+ ];
6380
+ TabbedPlaceNavigationComponent = __decorate([
6381
+ Component({
6382
+ selector: 'aup-tabbed-place-navigation',
6383
+ 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 [face]=\"getNavigationFace(placeDefinition)\"></aup-command-face>\n </a>\n</nav>\n",
6384
+ styles: [""]
6385
+ }),
6386
+ __metadata("design:paramtypes", [PlaceRouter])
6387
+ ], TabbedPlaceNavigationComponent);
6388
+
6334
6389
  let PlaceModule = class PlaceModule {
6335
6390
  };
6336
6391
  PlaceModule = __decorate([