@coolon/angular-ui-powerups 11.0.0-alpha.17 → 11.0.0-alpha.2

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 (144) hide show
  1. package/assets/table.scss +6 -13
  2. package/bundles/coolon-angular-ui-powerups.umd.js +104 -266
  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/angular-ui-powerups.module.ngfactory.js.map +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/command.component.js +1 -5
  11. package/esm2015/lib/components/commands/command/command.component.js.map +1 -1
  12. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
  13. package/esm2015/lib/components/components.module.js +3 -0
  14. package/esm2015/lib/components/components.module.js.map +1 -1
  15. package/esm2015/lib/components/components.module.metadata.json +1 -1
  16. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  17. package/esm2015/lib/components/table/column-model.js +1 -2
  18. package/esm2015/lib/components/table/column-model.js.map +1 -1
  19. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  20. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js +1 -1
  21. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -1
  22. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.metadata.json +1 -1
  23. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  24. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.metadata.json +1 -1
  25. package/esm2015/lib/components/table/table-model.js +0 -9
  26. package/esm2015/lib/components/table/table-model.js.map +1 -1
  27. package/esm2015/lib/components/table/table-model.metadata.json +1 -1
  28. package/esm2015/lib/components/table/table.component.js +3 -30
  29. package/esm2015/lib/components/table/table.component.js.map +1 -1
  30. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  31. package/esm2015/lib/components/track-by.js +1 -5
  32. package/esm2015/lib/components/track-by.js.map +1 -1
  33. package/esm2015/lib/components/tree-table/decorated-tree-node.js +22 -19
  34. package/esm2015/lib/components/tree-table/decorated-tree-node.js.map +1 -1
  35. package/esm2015/lib/components/tree-table/tree-table-component.js +4 -21
  36. package/esm2015/lib/components/tree-table/tree-table-component.js.map +1 -1
  37. package/esm2015/lib/components/tree-table/tree-table-component.metadata.json +1 -1
  38. package/esm2015/lib/directives/directives.module.js +2 -8
  39. package/esm2015/lib/directives/directives.module.js.map +1 -1
  40. package/esm2015/lib/directives/directives.module.metadata.json +1 -1
  41. package/esm2015/lib/directives/directives.module.ngfactory.js.map +1 -1
  42. package/esm2015/lib/directives/exports.js +0 -2
  43. package/esm2015/lib/directives/exports.js.map +1 -1
  44. package/esm2015/lib/directives/exports.metadata.json +1 -1
  45. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  46. package/esm2015/lib/place/components/abstract-place-navigation.component.js +11 -21
  47. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  48. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  49. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  50. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  51. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  52. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +14 -23
  53. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
  54. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  55. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
  56. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  57. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  58. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  59. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  60. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  61. package/esm2015/lib/place/exports.js +0 -1
  62. package/esm2015/lib/place/exports.js.map +1 -1
  63. package/esm2015/lib/place/exports.metadata.json +1 -1
  64. package/esm2015/lib/place/guards/place.guard.js +8 -5
  65. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  66. package/esm2015/lib/place/navigation/place-component-deactivation-handler.js +0 -2
  67. package/esm2015/lib/place/navigation/place-component-deactivation-handler.js.map +1 -1
  68. package/esm2015/lib/place/place-component.js +3 -1
  69. package/esm2015/lib/place/place-component.js.map +1 -1
  70. package/esm2015/lib/place/place-component.metadata.json +1 -1
  71. package/esm2015/lib/place/place-router.js +4 -15
  72. package/esm2015/lib/place/place-router.js.map +1 -1
  73. package/esm2015/lib/place/place-router.metadata.json +1 -1
  74. package/esm2015/lib/place/place.module.js +2 -6
  75. package/esm2015/lib/place/place.module.js.map +1 -1
  76. package/esm2015/lib/place/place.module.metadata.json +1 -1
  77. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  78. package/fesm2015/coolon-angular-ui-powerups.js +84 -238
  79. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  80. package/lib/components/commands/command/command.component.d.ts +1 -2
  81. package/lib/components/table/column-model.d.ts +0 -1
  82. package/lib/components/table/table-model.d.ts +0 -9
  83. package/lib/components/table/table.component.d.ts +6 -24
  84. package/lib/components/track-by.d.ts +1 -3
  85. package/lib/components/tree-table/tree-table-component.d.ts +0 -9
  86. package/lib/directives/exports.d.ts +0 -2
  87. package/lib/place/components/abstract-place-navigation.component.d.ts +2 -9
  88. package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -10
  89. package/lib/place/exports.d.ts +0 -1
  90. package/lib/place/place-component.d.ts +1 -1
  91. package/lib/place/place-router.d.ts +6 -10
  92. package/package.json +1 -1
  93. package/schematics/aup-i18n/index.js +28 -8
  94. package/schematics/aup-i18n/index.js.map +1 -1
  95. package/schematics/aup-i18n/templates/i18n/aup/components.yml.template +69 -0
  96. package/schematics/bootstrap-app/index.js +4 -5
  97. package/schematics/bootstrap-app/index.js.map +1 -1
  98. package/schematics/bootstrap-app/templates/{i18n.config.json.template → i18n/config.json.template} +0 -2
  99. package/schematics/bootstrap-app/templates/i18n/notifications.yml.template +19 -0
  100. package/schematics/ng-add/index.js +2 -2
  101. package/schematics/ng-add/index.js.map +1 -1
  102. package/schematics/place-add/index.js +5 -4
  103. package/schematics/place-add/index.js.map +1 -1
  104. package/schematics/place-add/templates/component/__name@dasherize__.component.ts.template +1 -3
  105. package/schematics/place-add/templates/files/i18n/places/__name@dasherize__.yml.template +7 -0
  106. package/schematics/utils/build-context.d.ts +5 -4
  107. package/schematics/utils/workspace.d.ts +4 -3
  108. package/schematics/utils/workspace.js.map +1 -1
  109. package/esm2015/lib/directives/highlight-text-model.directive.js +0 -20
  110. package/esm2015/lib/directives/highlight-text-model.directive.js.map +0 -1
  111. package/esm2015/lib/directives/highlight-text-model.directive.metadata.json +0 -1
  112. package/esm2015/lib/directives/highlight-text-model.directive.ngfactory.js.map +0 -1
  113. package/esm2015/lib/directives/highlight.pipe.js +0 -43
  114. package/esm2015/lib/directives/highlight.pipe.js.map +0 -1
  115. package/esm2015/lib/directives/highlight.pipe.metadata.json +0 -1
  116. package/esm2015/lib/directives/highlight.pipe.ngfactory.js.map +0 -1
  117. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js +0 -14
  118. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js.map +0 -1
  119. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.metadata.json +0 -1
  120. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.ngfactory.js.map +0 -1
  121. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.scss.shim.ngstyle.js.map +0 -1
  122. package/lib/directives/highlight-text-model.directive.d.ts +0 -5
  123. package/lib/directives/highlight.pipe.d.ts +0 -11
  124. package/lib/place/components/not-authorised-notice/not-authorised-notice.component.d.ts +0 -3
  125. package/schematics/aup-i18n/templates/app/aup.i18n.yml.template +0 -80
  126. package/schematics/place-add/templates/component/__name@dasherize__.i18n.yml.template +0 -5
  127. /package/schematics/bootstrap-app/templates/{src/app → app}/app-routing.module.ts.template +0 -0
  128. /package/schematics/bootstrap-app/templates/{src/app → app}/app.component.html.template +0 -0
  129. /package/schematics/bootstrap-app/templates/{src/app → app}/app.component.scss.template +0 -0
  130. /package/schematics/bootstrap-app/templates/{src/app → app}/app.component.ts.template +0 -0
  131. /package/schematics/bootstrap-app/templates/{src/app → app}/app.module.ts.template +0 -0
  132. /package/schematics/bootstrap-app/templates/{src/app → app}/i18n.ts.template +0 -0
  133. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/MaterialIcons-Regular.eot +0 -0
  134. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/MaterialIcons-Regular.ijmap +0 -0
  135. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/MaterialIcons-Regular.svg +0 -0
  136. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/MaterialIcons-Regular.ttf +0 -0
  137. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/MaterialIcons-Regular.woff +0 -0
  138. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/MaterialIcons-Regular.woff2 +0 -0
  139. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/README.md +0 -0
  140. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/codepoints +0 -0
  141. /package/schematics/bootstrap-app/templates/{src/assets → assets}/fonts/material-design-icons/material-icons.css +0 -0
  142. /package/schematics/bootstrap-app/templates/{src/index.html.template → index.html.template} +0 -0
  143. /package/schematics/bootstrap-app/templates/{src/styles → styles}/global-variables.scss.template +0 -0
  144. /package/schematics/bootstrap-app/templates/{src/styles.scss.template → styles.scss.template} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { DOCUMENT, CommonModule, Location } from '@angular/common';
2
- import { Directive, ElementRef, Inject, Host, Optional, Input, HostListener, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, Pipe, NgModule, Component, ContentChild, ViewEncapsulation, HostBinding, InjectionToken, ViewChildren, SkipSelf, EventEmitter, ViewChild, Output, Self, TemplateRef, ChangeDetectorRef, ContentChildren, ViewContainerRef, Injector, ComponentFactoryResolver, INJECTOR } from '@angular/core';
2
+ import { Directive, ElementRef, Inject, Host, Optional, Input, HostListener, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, Component, ContentChild, ViewEncapsulation, HostBinding, InjectionToken, ViewChildren, SkipSelf, EventEmitter, ViewChild, Output, Self, TemplateRef, ChangeDetectorRef, ContentChildren, ViewContainerRef, Injector, ComponentFactoryResolver, INJECTOR } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { MatFormFieldModule } from '@angular/material/form-field';
5
5
  import { MatInputModule } from '@angular/material/input';
@@ -21,12 +21,11 @@ import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontaweso
21
21
  import { fas } from '@fortawesome/free-solid-svg-icons';
22
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
- import { DomSanitizer } from '@angular/platform-browser';
25
- import _, { find, filter, each, isNil, isEqual } from 'lodash';
26
24
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
25
+ import _, { find, filter, each, isNil, isEqual } from 'lodash';
27
26
  import { Enum } from 'typescript-string-enums';
28
27
  import ResizeObserver from 'resize-observer-polyfill';
29
- import { assert as assert$1, Stringy, Mixin, Opts, lang as lang$1, Klass } from '@coolon/typescript-utilities';
28
+ import { assert as assert$1, Mixin, Opts, lang as lang$1, Klass } from '@coolon/typescript-utilities';
30
29
  import produce from 'immer';
31
30
  import { FlexModule, GridModule } from '@angular/flex-layout';
32
31
  import { MatDialogModule, MatDialog, MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig } from '@angular/material/dialog';
@@ -296,70 +295,13 @@ FocusBindingDirective.propDecorators = {
296
295
  onFocusOut: [{ type: HostListener, args: ['focusout',] }]
297
296
  };
298
297
 
299
- class HighlightTextModelDirective {
300
- constructor() { }
301
- }
302
- HighlightTextModelDirective.decorators = [
303
- { type: Directive, args: [{
304
- selector: '[aupHighlightTextModel]'
305
- },] }
306
- ];
307
- HighlightTextModelDirective.ctorParameters = () => [];
308
- HighlightTextModelDirective.propDecorators = {
309
- aupHighlightTextModel: [{ type: Input }]
310
- };
311
- __decorate([
312
- TrackExternal(),
313
- __metadata("design:type", ValueModel)
314
- ], HighlightTextModelDirective.prototype, "aupHighlightTextModel", void 0);
315
-
316
- class HighlightPipe extends GarbageCollector {
317
- constructor(sanitizer, highlightContext) {
318
- super();
319
- this.sanitizer = sanitizer;
320
- this.highlightContext = highlightContext;
321
- }
322
- ngOnDestroy() {
323
- this.dispose();
324
- }
325
- transform(value, searchModel) {
326
- var _a;
327
- const model = searchModel !== null && searchModel !== void 0 ? searchModel : (_a = this.highlightContext) === null || _a === void 0 ? void 0 : _a.aupHighlightTextModel;
328
- const searchText = model === null || model === void 0 ? void 0 : model.value;
329
- if (_.isEmpty(searchText) || !_.isString(value)) {
330
- return value;
331
- }
332
- // Match in a case insensitive manner
333
- const re = new RegExp(searchText, 'gi');
334
- const match = value.match(re);
335
- // If there's no match, just return the original value.
336
- if (!match) {
337
- return value;
338
- }
339
- const result = value.replace(re, '<mark>' + match[0] + '</mark>');
340
- return this.sanitizer.bypassSecurityTrustHtml(result);
341
- }
342
- }
343
- HighlightPipe.decorators = [
344
- { type: Pipe, args: [{
345
- name: 'aupHighlight',
346
- pure: false
347
- },] }
348
- ];
349
- HighlightPipe.ctorParameters = () => [
350
- { type: DomSanitizer },
351
- { type: HighlightTextModelDirective, decorators: [{ type: Optional }] }
352
- ];
353
-
354
298
  class DirectivesModule {
355
299
  }
356
300
  DirectivesModule.decorators = [
357
301
  { type: NgModule, args: [{
358
302
  declarations: [
359
303
  CommandDirective,
360
- FocusBindingDirective,
361
- HighlightPipe,
362
- HighlightTextModelDirective
304
+ FocusBindingDirective
363
305
  ],
364
306
  imports: [
365
307
  CommonModule,
@@ -372,9 +314,7 @@ DirectivesModule.decorators = [
372
314
  ],
373
315
  exports: [
374
316
  CommandDirective,
375
- FocusBindingDirective,
376
- HighlightPipe,
377
- HighlightTextModelDirective
317
+ FocusBindingDirective
378
318
  ]
379
319
  },] }
380
320
  ];
@@ -580,7 +520,7 @@ CardContainerComponent.decorators = [
580
520
  { type: Component, args: [{
581
521
  selector: 'aup-card-container',
582
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",
583
- styles: [":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:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-auto-rows:minmax(var(--resolved-card-min-height),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:hsla(0,0%,100%,.8);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s 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}"]
523
+ styles: [":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:grid;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)));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:hsla(0,0%,100%,.8);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s 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}"]
584
524
  },] }
585
525
  ];
586
526
  CardContainerComponent.ctorParameters = () => [];
@@ -701,9 +641,6 @@ class CommandComponent extends PopupAwareComponent {
701
641
  this.activeFace = this.faces.first();
702
642
  this.buttonStyle = chain(this.activeFace).map(f => CommandFace.getStyleOf(f));
703
643
  this.colorModel = chain(this.activeFace).map(f => CommandFace.getColorOf(f));
704
- this.iconOnly = this.faces.select(face => {
705
- return _.isEmpty(CommandFace.getTextOf(face)) && !_.isEmpty(CommandFace.getIconOf(face));
706
- }).count().equals(this.faces.count());
707
644
  }
708
645
  isActive(face) {
709
646
  return this.activeFace.query().equals(face);
@@ -720,7 +657,7 @@ class CommandComponent extends PopupAwareComponent {
720
657
  CommandComponent.decorators = [
721
658
  { type: Component, args: [{
722
659
  selector: 'aup-command',
723
- 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",
660
+ 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",
724
661
  styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}button{flex:1}"]
725
662
  },] }
726
663
  ];
@@ -881,11 +818,7 @@ __decorate([
881
818
 
882
819
  var TrackBy;
883
820
  (function (TrackBy) {
884
- TrackBy.byIndex = (index, item) => index;
885
- function trackByProperty(property) {
886
- return (index, item) => item[property];
887
- }
888
- TrackBy.trackByProperty = trackByProperty;
821
+ TrackBy.byIndex = (data, index) => index;
889
822
  })(TrackBy || (TrackBy = {}));
890
823
 
891
824
  class CommandContainer extends GarbageCollector {
@@ -2071,7 +2004,7 @@ class DefaultCellRendererComponent {
2071
2004
  DefaultCellRendererComponent.decorators = [
2072
2005
  { type: Component, args: [{
2073
2006
  selector: 'aup-default-cell-renderer',
2074
- template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n",
2007
+ template: "{{value}}\n",
2075
2008
  styles: [""]
2076
2009
  },] }
2077
2010
  ];
@@ -2222,7 +2155,6 @@ class ColumnModel {
2222
2155
  this._flex = false;
2223
2156
  this._visibleModel = new DelegatingValueModel().withDefault(true);
2224
2157
  this.installHeaderRenderer();
2225
- this.dasherisedColumnId = Stringy.from(columnId).dasherize().toString();
2226
2158
  }
2227
2159
  installHeaderRenderer() {
2228
2160
  this.cellHeaderRenderer(DefaultHeaderCellRendererComponent, (component, column) => {
@@ -2765,32 +2697,15 @@ AbstractTableModel = __decorate([
2765
2697
  *
2766
2698
  * Styling
2767
2699
  * @example
2768
- * // global settings
2769
- * :root {
2770
- * --aup-table-column-gap: 10px; // defaults to 24px
2771
- * --aup-table-row-hover-background-color, rgba(0, 0, 0, 0.05)
2772
- * --aup-table-row-selected-background-color: rebeccapurple; // defaults to transparent
2773
- * --aup-table-first-column-padding-left: 18px // defaults to --column-gap
2774
- * --aup-table-last-column-padding-right: 18px // defaults to --column-gap
2775
- * }
2776
- *
2777
- * // per table settings.
2778
2700
  * aup-table {
2779
2701
  * --column-gap: 10px; // defaults to 24px
2780
2702
  * --row-hover-background-color, rgba(0, 0, 0, 0.05)
2781
2703
  * --row-selected-background-color: rebeccapurple; // defaults to transparent
2782
- * --first-column-padding-left: 18px // defaults to --column-gap
2783
- * --last-column-padding-right: 18px // defaults to --column-gap
2784
- *
2785
- * aup-table-header-cell-renderer,
2786
2704
  * aup-table-cell-renderer {
2787
- * &.aup-col-my-dasherised-column-id {
2705
+ * &:first-column {
2788
2706
  * // do stuff
2789
2707
  * }
2790
- * &.first-visible-column {
2791
- * // do stuff
2792
- * }
2793
- * &.last-visible-column {
2708
+ * &:last-column {
2794
2709
  * // do stuff
2795
2710
  * }
2796
2711
  * }
@@ -2854,21 +2769,11 @@ class TableComponent extends ResizeAwareComponent {
2854
2769
  var _a;
2855
2770
  return ((_a = this.tableModel.lastVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
2856
2771
  }
2857
- getColumnClasses(columnId) {
2858
- const classes = [`aup-col-${this.columnsById.get(columnId).dasherisedColumnId}`];
2859
- if (this.isFirstVisibleColumn(columnId)) {
2860
- classes.push('first-visible-column');
2861
- }
2862
- if (this.isLastVisibleColumn(columnId)) {
2863
- classes.push('last-visible-column');
2864
- }
2865
- return classes;
2866
- }
2867
2772
  }
2868
2773
  TableComponent.decorators = [
2869
2774
  { type: Component, args: [{
2870
2775
  selector: 'aup-table',
2871
- 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",
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",
2872
2777
  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}"]
2873
2778
  },] }
2874
2779
  ];
@@ -3190,26 +3095,26 @@ class DecoratedTreeNodeMixin {
3190
3095
  this.node = node;
3191
3096
  }
3192
3097
  get decoratedSelf() {
3193
- return this.memoize('decoratedSelf', () => {
3098
+ return this.memoize("decoratedSelf", () => {
3194
3099
  return this.parent ? this.parent.children.find(child => child.node === this.node) : DecoratedTreeNode.createRoot(this.node);
3195
3100
  });
3196
3101
  }
3197
3102
  get children() {
3198
- return this.memoize('children', () => {
3103
+ return this.memoize("children", () => {
3199
3104
  return this.node.children ? this.node.children.map(child => {
3200
3105
  return Mixin.createProxy(child, new DecoratedTreeNodeMixin(this.decoratedSelf, child));
3201
3106
  }) : [];
3202
3107
  });
3203
3108
  }
3204
3109
  descendants() {
3205
- return this.memoize('descendants', () => {
3110
+ return this.memoize("descendants", () => {
3206
3111
  const result = [];
3207
3112
  this.visitDescendants(child => result.push(child));
3208
3113
  return result;
3209
3114
  });
3210
3115
  }
3211
3116
  selfAndDescendants() {
3212
- return this.memoize('selfAndDescendants', () => {
3117
+ return this.memoize("selfAndDescendants", () => {
3213
3118
  const result = [];
3214
3119
  this.visitSelfAndDescendants(child => result.push(child));
3215
3120
  return result;
@@ -3272,24 +3177,27 @@ class DecoratedTreeNodeMixin {
3272
3177
  });
3273
3178
  }
3274
3179
  ancestorsAndSelf() {
3275
- return this.memoize('ancestorsAndSelf', () => {
3180
+ return this.memoize("ancestorsAndSelf", () => {
3276
3181
  return this.ancestors().concat([(this.decoratedSelf)]);
3277
3182
  });
3278
3183
  }
3279
3184
  pathToParent(parent) {
3280
- if (this.node === parent.node) {
3281
- return [];
3282
- }
3283
- else if (this.parent) {
3284
- const pathToParent = this.parent.pathToParent(parent);
3285
- return pathToParent.concat([this.parent]);
3286
- }
3287
- else {
3288
- throw new Error('parent is not an ancestor');
3289
- }
3185
+ return this.memoize("pathToParent", () => {
3186
+ if (this.node === parent.node) {
3187
+ return [];
3188
+ }
3189
+ else if (this.parent) {
3190
+ return this.parent.pathToParent(parent).concat([this.parent]);
3191
+ }
3192
+ else {
3193
+ throw new Error('parent is not an ancestor');
3194
+ }
3195
+ });
3290
3196
  }
3291
3197
  pathToParentAndSelf(parent) {
3292
- return this.pathToParent(parent).concat([this.decoratedSelf]);
3198
+ return this.memoize("pathToParentAndSelf", () => {
3199
+ return this.pathToParent(parent).concat([this.decoratedSelf]);
3200
+ });
3293
3201
  }
3294
3202
  isRoot() {
3295
3203
  return !this.parent;
@@ -3301,18 +3209,18 @@ class DecoratedTreeNodeMixin {
3301
3209
  return !this.isRoot() && this.node.children.length < 1;
3302
3210
  }
3303
3211
  hasChildren() {
3304
- return this.node.children && this.node.children.length > 0;
3212
+ return this.node.children.length > 0;
3305
3213
  }
3306
3214
  depthFromParent(parent) {
3307
3215
  return this.pathToParent(parent).length;
3308
3216
  }
3309
3217
  treeDepth() {
3310
- return this.memoize('treeDepth', () => {
3218
+ return this.memoize("treeDepth", () => {
3311
3219
  return 1 + this.descendants().map(child => child.depthFromParent(this)).reduce((prev, current) => Math.max(prev, current));
3312
3220
  });
3313
3221
  }
3314
3222
  flatten() {
3315
- return this.memoize('flatten', () => {
3223
+ return this.memoize("flatten", () => {
3316
3224
  return this.flattenInto([]);
3317
3225
  });
3318
3226
  }
@@ -3646,18 +3554,12 @@ class FlattenStrategy extends SelfAndDescendantsVisitor {
3646
3554
  class TreeTableComponent extends DisposableComponent {
3647
3555
  constructor() {
3648
3556
  super();
3649
- /**
3650
- * Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
3651
- * need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
3652
- * containment area.
3653
- */
3654
- this.enableScrolling = false;
3655
3557
  }
3656
3558
  }
3657
3559
  TreeTableComponent.decorators = [
3658
3560
  { type: Component, args: [{
3659
3561
  selector: "aup-tree-table",
3660
- template: "<aup-table [tableModel]=\"treeTableModel\" [showHeaderModel]=\"showHeaderModel\" [enableScrolling]=\"enableScrolling\"></aup-table>\n",
3562
+ template: "<aup-table [tableModel]=\"treeTableModel\"></aup-table>\n",
3661
3563
  encapsulation: ViewEncapsulation.None // allow us to target nested table styles
3662
3564
  ,
3663
3565
  styles: ["td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}td.mat-column-tree-label{width:1px}aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}aup-tree-label-cell-renderer{flex:1}"]
@@ -3665,23 +3567,12 @@ TreeTableComponent.decorators = [
3665
3567
  ];
3666
3568
  TreeTableComponent.ctorParameters = () => [];
3667
3569
  TreeTableComponent.propDecorators = {
3668
- treeTableModel: [{ type: Input }],
3669
- showHeaderModel: [{ type: Input }],
3670
- showHeader: [{ type: Input }],
3671
- enableScrolling: [{ type: Input }, { type: HostBinding, args: ['class.enable-scrolling',] }]
3570
+ treeTableModel: [{ type: Input }]
3672
3571
  };
3673
3572
  __decorate([
3674
3573
  TrackExternal(),
3675
3574
  __metadata("design:type", TreeTableModel)
3676
3575
  ], TreeTableComponent.prototype, "treeTableModel", void 0);
3677
- __decorate([
3678
- TrackExternal({ defaultValue: true }),
3679
- __metadata("design:type", ValueModel)
3680
- ], TreeTableComponent.prototype, "showHeaderModel", void 0);
3681
- __decorate([
3682
- StoreInValueModel('showHeaderModel'),
3683
- __metadata("design:type", Boolean)
3684
- ], TreeTableComponent.prototype, "showHeader", void 0);
3685
3576
 
3686
3577
  class VerticalFocusContainerComponent extends FocusContainerComponent {
3687
3578
  constructor(focusManager) {
@@ -3832,9 +3723,12 @@ ComponentsModule.decorators = [
3832
3723
  TreeTableComponent,
3833
3724
  TreeInheritanceIconComponent,
3834
3725
  TreeLabelCellRendererComponent,
3726
+ IconComponent,
3835
3727
  BusyOverlayComponent,
3836
3728
  EmptyStateComponent,
3837
3729
  PaginatorComponent,
3730
+ IconComponent,
3731
+ IconComponent
3838
3732
  ],
3839
3733
  imports: [
3840
3734
  CommonModule,
@@ -5156,15 +5050,6 @@ SelectInputActivity.decorators = [
5156
5050
  * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
5157
5051
  * });
5158
5052
  *
5159
- * Template columns
5160
- * @example
5161
- * const model = TableModel.fromList(heroList, table => {
5162
- * table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
5163
- * table.addTemplateColumn("myTemplate");
5164
- * });
5165
- *
5166
- * <div *aupColumnTemplate="let hero; columnId: 'myTemplate'">{{hero.age}}</div>
5167
- *
5168
5053
  * I18n
5169
5054
  * @example
5170
5055
  * [table.yml]
@@ -5496,7 +5381,6 @@ class PlaceComponent extends DisposableComponent {
5496
5381
  this._active = new MutableValueModel(false);
5497
5382
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
5498
5383
  when(this._active).becomesTruthy(() => this.onPlaceReady());
5499
- this.childPlaces = this.placeDefinition.children.map(d => d.component);
5500
5384
  }
5501
5385
  // @Trace()
5502
5386
  initialiseVisit(visit, notifyVisitChanged) {
@@ -5539,6 +5423,9 @@ class PlaceComponent extends DisposableComponent {
5539
5423
  get placeDefinition() {
5540
5424
  return PlaceComponent.getDefinition(this.constructor);
5541
5425
  }
5426
+ get childPlaces() {
5427
+ return this.placeDefinition.children.map(d => d.component);
5428
+ }
5542
5429
  get active() {
5543
5430
  return this._active.readonly;
5544
5431
  }
@@ -5600,7 +5487,6 @@ class PlaceComponentDeactivationHandler {
5600
5487
  this.component = component;
5601
5488
  this.navigationSession = navigationSession;
5602
5489
  this.isPrimaryComponent = isPrimaryComponent;
5603
- assert.notNil(component);
5604
5490
  }
5605
5491
  get routerInteractionAdapter() {
5606
5492
  return this.navigationSession.interactionServiceAdapter;
@@ -6696,7 +6582,7 @@ class PlaceRouter extends GarbageCollector {
6696
6582
  .pluck('name')
6697
6583
  .otherwise(idleStateName);
6698
6584
  DebugContext.tag(this._activeVisits, 'PlaceRouter.activeVisits');
6699
- this.state = chain(this._activeVisits).reduce(visits => new PlaceRouter.State(visits));
6585
+ this.activeVisitsByPlaceDefinition = chain(this._activeVisits).indexBy('placeDefinition');
6700
6586
  // TODO: make setup the callbacks in during module initiation to make this testable.
6701
6587
  angularRouter.events.subscribe(event => {
6702
6588
  // Routing event sequence
@@ -6755,6 +6641,9 @@ class PlaceRouter extends GarbageCollector {
6755
6641
  getAuthenticationFailureRedirect(activatedRoute, state) {
6756
6642
  return this.redirections.onAuthenticationFailure(activatedRoute, state);
6757
6643
  }
6644
+ getAuthorisationFailureRedirect(activatedRoute, state) {
6645
+ return this.redirections.onAuthorisationFailure(activatedRoute, state);
6646
+ }
6758
6647
  get navigationSession() {
6759
6648
  return this.navigationSessionModel.value;
6760
6649
  }
@@ -6964,20 +6853,6 @@ PlaceRouter.ctorParameters = () => [
6964
6853
  { type: UrlService },
6965
6854
  { type: PlaceHistory }
6966
6855
  ];
6967
- (function (PlaceRouter) {
6968
- class State {
6969
- constructor(activeVisits) {
6970
- this.activeVisits = activeVisits;
6971
- }
6972
- isPlaceActive(placeDefinition) {
6973
- return !!this.getVisitFor(placeDefinition);
6974
- }
6975
- getVisitFor(placeDefinition) {
6976
- return this.activeVisits.find(v => v.placeDefinition === placeDefinition);
6977
- }
6978
- }
6979
- PlaceRouter.State = State;
6980
- })(PlaceRouter || (PlaceRouter = {}));
6981
6856
 
6982
6857
  class Visit {
6983
6858
  constructor(placeDefinition, visitParameters = {}) {
@@ -7045,19 +6920,6 @@ class Visit {
7045
6920
 
7046
6921
  const AUP_PLACE_CONFIG = new InjectionToken('AUP_PLACE_CONFIG');
7047
6922
 
7048
- class NotAuthorisedNoticeComponent {
7049
- constructor() {
7050
- }
7051
- }
7052
- NotAuthorisedNoticeComponent.decorators = [
7053
- { type: Component, args: [{
7054
- selector: 'aup-not-authorised-notice',
7055
- template: "<p>You are not authorised to access this page</p>\n",
7056
- styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}"]
7057
- },] }
7058
- ];
7059
- NotAuthorisedNoticeComponent.ctorParameters = () => [];
7060
-
7061
6923
  // Freezes the state of the components at the start of the animation.
7062
6924
  const animationStartStyle = style({ position: 'absolute', top: '0', left: '0', bottom: '0', right: '0' });
7063
6925
  const left = [
@@ -7102,14 +6964,12 @@ function leftRightPlaceAnimation(duration) {
7102
6964
  }
7103
6965
  const LEFT_RIGHT_PLACE_ANIMATION = leftRightPlaceAnimation('0.3s');
7104
6966
 
7105
- const AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT = new InjectionToken('AUP_UNAUTHORISED_PLACE_COMPONENT');
7106
6967
  class PlaceOutletComponent extends DisposableComponent {
7107
- constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet, cdr) {
6968
+ constructor(router, placeRouter, placeConfig, parentOutlet) {
7108
6969
  super();
7109
6970
  this.router = router;
7110
6971
  this.placeRouter = placeRouter;
7111
6972
  this.placeConfig = placeConfig;
7112
- this.cdr = cdr;
7113
6973
  this.placeChanged = new EventEmitter();
7114
6974
  this.outletActivated = new MutableValueModel(false);
7115
6975
  this._activatedRouteModel = new MutableValueModel();
@@ -7142,7 +7002,7 @@ class PlaceOutletComponent extends DisposableComponent {
7142
7002
  this.animationEnabled = valueOf.all(this.animateModel, this.animationSupported).areTruthy();
7143
7003
  // Extract our visit model from the place router.
7144
7004
  this._activePlaceDefinition = chain(this._activePlaceModel).pluck('placeDefinition');
7145
- this.routerVisitModel = chain(placeRouter.state).map(state => state.getVisitFor(this._activePlaceDefinition.value), { dependsOn: this._activePlaceDefinition });
7005
+ this.routerVisitModel = this._activePlaceDefinition.findIn(chain(placeRouter.activeVisitsByPlaceDefinition));
7146
7006
  this.navigationInProgress = chain(this.placeRouter.navigationInProgress);
7147
7007
  when(this.navigationInProgress).becomesFalsey(() => {
7148
7008
  this.checkStateAndInitialise();
@@ -7153,11 +7013,13 @@ class PlaceOutletComponent extends DisposableComponent {
7153
7013
  chain(this._activePlaceModel)
7154
7014
  .postponeWhile(this.navigationInProgress)
7155
7015
  .subscribe(place => this.placeChanged.emit(place));
7156
- this.authorised = chain(placeRouter.accessGuard).map(guard => guard.isAuthorised(this._activePlaceDefinition.value), {
7157
- dependsOn: this._activePlaceDefinition,
7158
- postponeWhile: chain(this._activePlaceDefinition).isNil()
7159
- }).otherwise(true); // if we don't have a place def yet we need to show the outlet so we get one injected.
7160
- this.notAuthorisedNoticePortal = new ComponentPortal(unauthorisedPlaceNotice !== null && unauthorisedPlaceNotice !== void 0 ? unauthorisedPlaceNotice : NotAuthorisedNoticeComponent);
7016
+ when(placeRouter.accessGuard).changes(guard => {
7017
+ const activePlace = this._activePlaceModel.value;
7018
+ if (activePlace && !guard.isAuthorised(activePlace.placeDefinition)) {
7019
+ const visit = placeRouter.getAuthorisationFailureRedirect(this._activatedRouteModel.value.snapshot, this.router.routerState.snapshot);
7020
+ this.placeRouter.navigate(visit);
7021
+ }
7022
+ });
7161
7023
  }
7162
7024
  // @Trace()
7163
7025
  ngOnInit() {
@@ -7169,9 +7031,6 @@ class PlaceOutletComponent extends DisposableComponent {
7169
7031
  get animationDuration() {
7170
7032
  return this.placeConfig && this.placeConfig.animationDuration ? this.placeConfig.animationDuration : '500ms';
7171
7033
  }
7172
- get isAuthorised() {
7173
- return this.authorised.value;
7174
- }
7175
7034
  // @Trace()
7176
7035
  navigate(visit) {
7177
7036
  // const place = this.placesInAnimationOrder.query().findMatching(p => visit.placeDefinition.component === p);
@@ -7226,7 +7085,6 @@ class PlaceOutletComponent extends DisposableComponent {
7226
7085
  lang.illegalState('wrong visit!!!');
7227
7086
  }
7228
7087
  this.initialisePlace(routerVisit, activePlace);
7229
- this.cdr.detectChanges();
7230
7088
  }
7231
7089
  }
7232
7090
  initialisePlace(routerVisit, activePlace) {
@@ -7277,18 +7135,16 @@ class PlaceOutletComponent extends DisposableComponent {
7277
7135
  PlaceOutletComponent.decorators = [
7278
7136
  { type: Component, args: [{
7279
7137
  selector: 'aup-place-outlet',
7280
- template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n 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\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n",
7138
+ 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",
7281
7139
  animations: [LEFT_RIGHT_PLACE_ANIMATION],
7282
- styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:scroll}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}"]
7140
+ 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}"]
7283
7141
  },] }
7284
7142
  ];
7285
7143
  PlaceOutletComponent.ctorParameters = () => [
7286
7144
  { type: Router },
7287
7145
  { type: PlaceRouter },
7288
7146
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [AUP_PLACE_CONFIG,] }] },
7289
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT,] }] },
7290
- { type: PlaceOutletComponent, decorators: [{ type: SkipSelf }, { type: Optional }] },
7291
- { type: ChangeDetectorRef }
7147
+ { type: PlaceOutletComponent, decorators: [{ type: SkipSelf }, { type: Optional }] }
7292
7148
  ];
7293
7149
  PlaceOutletComponent.propDecorators = {
7294
7150
  animate: [{ type: Input }],
@@ -7296,8 +7152,7 @@ PlaceOutletComponent.propDecorators = {
7296
7152
  customPlaceAnimationOrderModel: [{ type: Input, args: ['placeAnimationOrderModel',] }],
7297
7153
  customPlaceAnimationOrder: [{ type: Input, args: ['placeAnimationOrder',] }],
7298
7154
  placeChanged: [{ type: Output }],
7299
- routerOut: [{ type: ViewChild, args: ['routeOutlet', { static: true },] }],
7300
- isAuthorised: [{ type: HostBinding, args: ["class.authorised",] }]
7155
+ routerOut: [{ type: ViewChild, args: ['routeOutlet', { static: true },] }]
7301
7156
  };
7302
7157
  __decorate([
7303
7158
  StoreInValueModel('animateModel'),
@@ -7321,36 +7176,23 @@ class AbstractPlaceNavigationComponent extends DisposableComponent {
7321
7176
  super();
7322
7177
  this.placeRouter = placeRouter;
7323
7178
  this._activePlaceComponent = new DelegatingValueModel();
7324
- this.trackByPlaceDef = (data) => data.place;
7325
7179
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
7326
7180
  this.placeDefinitions = chain(this.placesModel)
7327
7181
  .map(c => PlaceComponent.getDefinition(c))
7328
7182
  .select(d => {
7329
7183
  const guard = placeRouter.accessGuard.value;
7330
- const state = placeRouter.state.value;
7331
- return guard.isAuthorised(d) || state.isPlaceActive(d);
7332
- }, { dependsOn: [placeRouter.accessGuard, placeRouter.state] });
7184
+ return guard.isAuthorised(d);
7185
+ }, { dependsOn: placeRouter.accessGuard });
7333
7186
  this.commandFactory = Command.createFactory((placeDefinition) => {
7334
7187
  this.placeOutlet.navigate(new Visit(placeDefinition));
7335
7188
  });
7336
- when(this.placeOutletModel).changes(outlet => this.handlePlaceOutLetChanged(outlet), { initialValue: "triggerChange" });
7337
- this.activePlaceDefinition = chain(this._activePlaceComponent).pluck('placeDefinition');
7338
- this.menuItems = chain(this.placeDefinitions).map(d => {
7339
- return {
7340
- place: d,
7341
- active: this.activePlaceDefinition.value === d
7342
- };
7343
- }, {
7344
- dependsOn: this.activePlaceDefinition
7189
+ when(this.placeOutletModel).changes(outlet => {
7190
+ // NOTE: this updates during a change cycle and causes our isActiveMethod to return 2 different
7191
+ // values in the one change detection cycle. So instead we delay the update to a different
7192
+ // tick.
7193
+ setTimeout(() => this._activePlaceComponent.setDelegate(outlet ? outlet.activePlaceModel : null));
7345
7194
  });
7346
- // const txo = new TransactionObserver({ verbose: true }).onEvent(e => console.log(e.name, e.payload));
7347
- // txo.observe('this.placesModel', this.placesModel);
7348
- // txo.observe('this.placeDefinitions', this.placeDefinitions);
7349
- // txo.observe('this.activePlaceDefinition', this.activePlaceDefinition);
7350
- // txo.observe('this.menuItems', this.menuItems);
7351
- }
7352
- handlePlaceOutLetChanged(outlet) {
7353
- this._activePlaceComponent.setDelegate(outlet ? outlet.activePlaceModel : null);
7195
+ this.activePlaceDefinition = chain(this._activePlaceComponent).pluck('placeDefinition');
7354
7196
  }
7355
7197
  getNavigationFace(placeDef) {
7356
7198
  const navItem = placeDef.getPlaceData('nav');
@@ -7360,6 +7202,9 @@ class AbstractPlaceNavigationComponent extends DisposableComponent {
7360
7202
  icon: () => navItem && navItem.icon ? navItem.icon() : placeDef.getPlaceData('navIcon', null)
7361
7203
  };
7362
7204
  }
7205
+ isActive(place) {
7206
+ return this.activePlaceDefinition.query().equals(place);
7207
+ }
7363
7208
  ngOnInit() {
7364
7209
  }
7365
7210
  }
@@ -7408,7 +7253,7 @@ class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
7408
7253
  ListPlaceNavComponent.decorators = [
7409
7254
  { type: Component, args: [{
7410
7255
  selector: 'aup-list-place-nav',
7411
- 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",
7256
+ 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",
7412
7257
  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)}"]
7413
7258
  },] }
7414
7259
  ];
@@ -7476,7 +7321,7 @@ class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {
7476
7321
  SidePlaceNavigationComponent.decorators = [
7477
7322
  { type: Component, args: [{
7478
7323
  selector: 'aup-side-place-navigation',
7479
- 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",
7324
+ 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",
7480
7325
  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)}"]
7481
7326
  },] }
7482
7327
  ];
@@ -7496,7 +7341,7 @@ class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
7496
7341
  TabbedPlaceNavigationComponent.decorators = [
7497
7342
  { type: Component, args: [{
7498
7343
  selector: 'aup-tabbed-place-navigation',
7499
- 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",
7344
+ 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",
7500
7345
  styles: [""]
7501
7346
  },] }
7502
7347
  ];
@@ -7519,16 +7364,14 @@ PlaceModule.decorators = [
7519
7364
  MatIconModule,
7520
7365
  DirectivesModule,
7521
7366
  FlexModule,
7522
- ComponentsModule,
7523
- PortalModule
7367
+ ComponentsModule
7524
7368
  ],
7525
7369
  declarations: [
7526
7370
  PlaceOutletComponent,
7527
7371
  TabbedPlaceNavigationComponent,
7528
7372
  ListPlaceNavComponent,
7529
7373
  SidePlaceNavigationComponent,
7530
- AbstractPlaceNavigationComponent,
7531
- NotAuthorisedNoticeComponent
7374
+ AbstractPlaceNavigationComponent
7532
7375
  ],
7533
7376
  entryComponents: [],
7534
7377
  exports: [
@@ -7831,6 +7674,14 @@ class PlaceGuard {
7831
7674
  }
7832
7675
  return this.createUrlTree(redirectLocation);
7833
7676
  }
7677
+ if (!(this.placeRouter.accessGuard.value ? this.placeRouter.accessGuard.value.isAuthorised(placeDefinition) : true)) {
7678
+ const redirectLocation = this.placeRouter.getAuthorisationFailureRedirect(activatedRoute, state);
7679
+ const nextPlaceDef = this.getPlaceDefinition(redirectLocation);
7680
+ if (!(this.placeRouter.accessGuard.value ? this.placeRouter.accessGuard.value.isAuthorised(nextPlaceDef) : true)) {
7681
+ lang.illegalState(`handleNotAuthorised hook returned place ${nextPlaceDef.component.name} that is not authorised for the current user.`);
7682
+ }
7683
+ return this.createUrlTree(redirectLocation);
7684
+ }
7834
7685
  }
7835
7686
  const result = yield this.cleanInteractionState(activatedRoute, state, () => __awaiter(this, void 0, void 0, function* () {
7836
7687
  // Parse our route params.
@@ -7862,11 +7713,6 @@ class PlaceGuard {
7862
7713
  // @Trace()
7863
7714
  canDeactivate(component, currentRoute, currentState, nextState) {
7864
7715
  return __awaiter(this, void 0, void 0, function* () {
7865
- if (!component) {
7866
- // this happens when the place wasn't authorised and the associated
7867
- // router outlet was removed from the dom.
7868
- return true;
7869
- }
7870
7716
  const currentUrl = this.urlService.parseUrl(currentState.url);
7871
7717
  const nextUrl = this.urlService.parseUrl(nextState.url);
7872
7718
  const result = yield this.placeRouter.navigationSession.canDeactivatePlace(component, currentUrl, nextUrl);
@@ -8031,5 +7877,5 @@ function VisitParameterList(options) {
8031
7877
  * Generated bundle index. Do not edit.
8032
7878
  */
8033
7879
 
8034
- export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FlattenStrategy, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SelfAndDescendantsVisitor, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, TreeToListModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0 };
7880
+ export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FlattenStrategy, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SelfAndDescendantsVisitor, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, TreeToListModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0 };
8035
7881
  //# sourceMappingURL=coolon-angular-ui-powerups.js.map