@coolon/angular-ui-powerups 3.5.3 → 3.7.0-alpha.0

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 (131) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bundles/coolon-angular-ui-powerups-cypress.umd.js +41 -1
  3. package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
  4. package/bundles/coolon-angular-ui-powerups-cypress.umd.min.js +1 -1
  5. package/bundles/coolon-angular-ui-powerups-cypress.umd.min.js.map +1 -1
  6. package/bundles/coolon-angular-ui-powerups.umd.js +248 -191
  7. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  8. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  9. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  10. package/coolon-angular-ui-powerups.metadata.json +1 -1
  11. package/cypress/components/aup-navigation.d.ts +9 -0
  12. package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
  13. package/cypress/exports.d.ts +1 -0
  14. package/cypress/package.json +2 -1
  15. package/cypress/page.d.ts +3 -0
  16. package/cypress/section.d.ts +5 -0
  17. package/esm2015/cypress/components/aup-navigation.js +21 -0
  18. package/esm2015/cypress/components/aup-navigation.js.map +1 -0
  19. package/esm2015/cypress/components/aup-navigation.metadata.json +1 -0
  20. package/esm2015/cypress/exports.js +1 -0
  21. package/esm2015/cypress/exports.js.map +1 -1
  22. package/esm2015/cypress/exports.metadata.json +1 -1
  23. package/esm2015/cypress/page.js +10 -1
  24. package/esm2015/cypress/page.js.map +1 -1
  25. package/esm2015/cypress/page.metadata.json +1 -1
  26. package/esm2015/cypress/section.js +7 -0
  27. package/esm2015/cypress/section.js.map +1 -1
  28. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  29. package/esm2015/lib/components/forms/number-input/number-input.component.js +2 -3
  30. package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
  31. package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
  32. package/esm2015/lib/components/forms/password-input/password-input.component.js +5 -4
  33. package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
  34. package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
  35. package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
  36. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  37. package/esm2015/lib/components/forms/string-input/string-input.component.js +2 -1
  38. package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
  39. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  40. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +12 -0
  41. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  42. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
  43. package/esm2015/lib/place/components/abstract-place-navigation.component.js +7 -5
  44. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  45. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  46. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +6 -6
  47. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  48. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  49. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +5 -5
  50. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  51. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  52. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +5 -5
  53. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  54. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  55. package/esm2015/lib/place/exports.js +1 -0
  56. package/esm2015/lib/place/exports.js.map +1 -1
  57. package/esm2015/lib/place/exports.metadata.json +1 -1
  58. package/esm2015/lib/place/guards/place.guard.js +94 -43
  59. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  60. package/esm2015/lib/place/guards/place.guard.metadata.json +1 -1
  61. package/esm2015/lib/place/guards/place.guard.ngfactory.js.map +1 -0
  62. package/esm2015/lib/place/place-auth-service.js +3 -0
  63. package/esm2015/lib/place/place-auth-service.js.map +1 -0
  64. package/esm2015/lib/place/place-auth-service.metadata.json +1 -0
  65. package/esm2015/lib/place/place-component.js +12 -2
  66. package/esm2015/lib/place/place-component.js.map +1 -1
  67. package/esm2015/lib/place/place-component.metadata.json +1 -1
  68. package/esm2015/lib/place/place-definition.js +2 -1
  69. package/esm2015/lib/place/place-definition.js.map +1 -1
  70. package/esm2015/lib/place/place-definition.metadata.json +1 -1
  71. package/esm2015/lib/place/place-router.js +6 -0
  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.decorator.js +1 -1
  75. package/esm2015/lib/place/place.decorator.js.map +1 -1
  76. package/fesm2015/coolon-angular-ui-powerups-cypress.js +36 -2
  77. package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
  78. package/fesm2015/coolon-angular-ui-powerups.js +205 -135
  79. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  80. package/lib/components/forms/number-input/number-input.component.d.ts +1 -0
  81. package/lib/components/forms/password-input/password-input.component.d.ts +1 -0
  82. package/lib/components/forms/string-input/string-input.component.d.ts +1 -0
  83. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +12 -0
  84. package/lib/place/components/abstract-place-navigation.component.d.ts +2 -2
  85. package/lib/place/components/list-place-nav/list-place-nav.component.d.ts +2 -2
  86. package/lib/place/components/side-place-navigation/side-place-navigation.component.d.ts +2 -2
  87. package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +2 -2
  88. package/lib/place/exports.d.ts +1 -0
  89. package/lib/place/guards/place.guard.d.ts +5 -7
  90. package/lib/place/place-auth-service.d.ts +36 -0
  91. package/lib/place/place-component.d.ts +2 -1
  92. package/lib/place/place-definition.d.ts +2 -1
  93. package/lib/place/place-router.d.ts +1 -0
  94. package/lib/place/place.decorator.d.ts +1 -0
  95. package/package.json +1 -1
  96. package/schematics/bootstrap-app/index.js +4 -0
  97. package/schematics/bootstrap-app/index.js.map +1 -1
  98. package/schematics/bootstrap-app/templates/app/app.module.ts.template +4 -2
  99. package/schematics/bootstrap-app/templates/app/auth/place-auth.service.ts.template +41 -0
  100. package/schematics/collection.json +5 -0
  101. package/schematics/ng-add/index.js +1 -1
  102. package/schematics/ng-add/index.js.map +1 -1
  103. package/schematics/place-add/index.js +2 -1
  104. package/schematics/place-add/index.js.map +1 -1
  105. package/schematics/place-add/templates/component/__name@dasherize__.component.scss.template +1 -0
  106. package/schematics/place-bootstrap/index.d.ts +3 -0
  107. package/schematics/place-bootstrap/index.js +21 -0
  108. package/schematics/place-bootstrap/index.js.map +1 -0
  109. package/schematics/place-bootstrap/schema.d.ts +4 -0
  110. package/schematics/place-bootstrap/schema.js +3 -0
  111. package/schematics/place-bootstrap/schema.js.map +1 -0
  112. package/schematics/place-bootstrap/schema.json +28 -0
  113. package/schematics/place-routes/place-builder.d.ts +0 -1
  114. package/schematics/place-routes/place-builder.js +34 -24
  115. package/schematics/place-routes/place-builder.js.map +1 -1
  116. package/schematics/place-routes/place-class-scanner.js +2 -1
  117. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  118. package/schematics/place-routes/place-def.d.ts +1 -0
  119. package/schematics/place-routes/place-def.js +2 -2
  120. package/schematics/place-routes/place-def.js.map +1 -1
  121. package/schematics/place-routes/schema.d.ts +1 -4
  122. package/schematics/place-routes/schema.json +9 -1
  123. package/schematics/place-routes/templates/place-destinations.ts.template +1 -9
  124. package/schematics/place-routes/templates/place-routes.ts.template +3 -39
  125. package/schematics/place-routes/templates/place-visits.ts.template +1 -10
  126. package/schematics/bootstrap-app/templates/app/auth/auth.guard.ts.template +0 -23
  127. package/schematics/bootstrap-app/templates/app/auth/auth.module.ts.template +0 -13
  128. package/schematics/bootstrap-app/templates/app/auth/auth.service.ts.template +0 -13
  129. package/schematics/bootstrap-app/templates/app/places/places.json5.template +0 -3
  130. /package/schematics/{bootstrap-app/templates/app/places → place-bootstrap/templates/__name@dasherize__}/place-routes.ts.template +0 -0
  131. /package/schematics/{bootstrap-app/templates/app/places → place-bootstrap/templates/__name@dasherize__}/places.module.ts.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, NgModule, Component, ContentChild, EventEmitter, SkipSelf, ViewChild, Output, ViewChildren, HostBinding, ViewEncapsulation, Self, TemplateRef, ChangeDetectorRef, ContentChildren, ViewContainerRef, InjectionToken, Injector, ComponentFactoryResolver } from '@angular/core';
2
+ import { Directive, ElementRef, Inject, Host, Optional, Input, HostListener, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, Component, ContentChild, EventEmitter, SkipSelf, ViewChild, Output, ViewChildren, HostBinding, ViewEncapsulation, Self, TemplateRef, ChangeDetectorRef, ContentChildren, ViewContainerRef, InjectionToken, 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,13 +21,13 @@ import { fas } from '@fortawesome/free-solid-svg-icons';
21
21
  import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, Command, MutableValueModel, StoreInValueModel, ValueModel, MutableListModel, ListModel, StoreInListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, MultipleSelectionModel, DirtyTrackingForm, DelegatingCommand, Deferred, Trace, Functions } from '@coolon/pectin';
22
22
  import { __decorate, __metadata, __awaiter } from 'tslib';
23
23
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
24
- import _, { isEqual, isNil } from 'lodash';
24
+ import _, { isNil, isEqual } from 'lodash';
25
25
  import { Enum } from 'typescript-string-enums';
26
26
  import { assert as assert$1, Opts, lang as lang$1, Klass } from '@coolon/typescript-utilities';
27
27
  import produce from 'immer';
28
28
  import { FlexModule, GridModule } from '@angular/flex-layout';
29
29
  import { MatDialogModule, MatDialog, MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig } from '@angular/material/dialog';
30
- import { RouterModule, NavigationStart, NavigationCancel, UrlSegment, Router, UrlSerializer, NavigationEnd, NavigationError, RouterOutlet } from '@angular/router';
30
+ import { RouterModule, ActivatedRouteSnapshot, NavigationStart, NavigationCancel, UrlSegment, Router, UrlSerializer, NavigationEnd, NavigationError, RouterOutlet, RouterStateSnapshot } from '@angular/router';
31
31
  import { Overlay, CdkScrollable } from '@angular/cdk/overlay';
32
32
  import ResizeObserver from 'resize-observer-polyfill';
33
33
  import { MatListModule } from '@angular/material/list';
@@ -35,7 +35,6 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
35
35
  import { Memoize as Memoize$1 } from '@typescript-plus/fast-memoize-decorator';
36
36
  import 'reflect-metadata';
37
37
  import { style, query, group, animate, trigger, transition } from '@angular/animations';
38
- import { Observable } from 'rxjs';
39
38
 
40
39
  class CommandDirective extends GarbageCollector {
41
40
  constructor(elementRef, matButton, matMenuItem) {
@@ -1617,8 +1616,6 @@ __decorate([
1617
1616
  class NumberInputComponent extends AbstractValueInputComponent {
1618
1617
  constructor() {
1619
1618
  super();
1620
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1621
- // valueModel: Form.ValueModelBase<number> | MutableValueModel<number>;
1622
1619
  this.min = Number.MIN_SAFE_INTEGER;
1623
1620
  this.max = Number.MAX_SAFE_INTEGER;
1624
1621
  }
@@ -1628,19 +1625,18 @@ class NumberInputComponent extends AbstractValueInputComponent {
1628
1625
  NumberInputComponent.decorators = [
1629
1626
  { type: Component, args: [{
1630
1627
  selector: 'aup-number-input',
1631
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1628
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1632
1629
  styles: [""]
1633
1630
  },] }
1634
1631
  ];
1635
1632
  NumberInputComponent.ctorParameters = () => [];
1636
1633
  NumberInputComponent.propDecorators = {
1634
+ autocomplete: [{ type: Input }],
1637
1635
  min: [{ type: Input }],
1638
1636
  max: [{ type: Input }]
1639
1637
  };
1640
1638
 
1641
1639
  class PasswordInputComponent extends AbstractValueInputComponent {
1642
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1643
- // valueModel: Form.ValueModelBase<string> | MutableValueModel<string>;
1644
1640
  constructor() {
1645
1641
  super();
1646
1642
  }
@@ -1650,11 +1646,14 @@ class PasswordInputComponent extends AbstractValueInputComponent {
1650
1646
  PasswordInputComponent.decorators = [
1651
1647
  { type: Component, args: [{
1652
1648
  selector: 'aup-password-input',
1653
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
1649
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
1654
1650
  styles: [""]
1655
1651
  },] }
1656
1652
  ];
1657
1653
  PasswordInputComponent.ctorParameters = () => [];
1654
+ PasswordInputComponent.propDecorators = {
1655
+ autocomplete: [{ type: Input }]
1656
+ };
1658
1657
 
1659
1658
  /**
1660
1659
  * Using templates:
@@ -1712,12 +1711,13 @@ class StringInputComponent extends AbstractValueInputComponent {
1712
1711
  StringInputComponent.decorators = [
1713
1712
  { type: Component, args: [{
1714
1713
  selector: 'aup-string-input',
1715
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
1714
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
1716
1715
  styles: ["button[disabled]{visibility:hidden}"]
1717
1716
  },] }
1718
1717
  ];
1719
1718
  StringInputComponent.ctorParameters = () => [];
1720
1719
  StringInputComponent.propDecorators = {
1720
+ autocomplete: [{ type: Input }],
1721
1721
  enableClearModel: [{ type: Input }],
1722
1722
  enableClear: [{ type: Input }]
1723
1723
  };
@@ -3867,6 +3867,18 @@ InteractionService.ctorParameters = () => [
3867
3867
  InteractionService.ApiAdapter = ApiAdapter;
3868
3868
  })(InteractionService || (InteractionService = {}));
3869
3869
 
3870
+ /**
3871
+ * @example
3872
+ * <aup-in-place-interaction-context #inPlaceInteractionContext>
3873
+ *
3874
+ * </aup-in-place-interaction-context>
3875
+ *
3876
+ * in your component
3877
+ * @ViewChild('inPlaceInteractionContext', { static: true })
3878
+ * interactionContext: InteractionContext;
3879
+ *
3880
+ *
3881
+ */
3870
3882
  class InPlaceInteractionContextComponent extends DisposableComponent {
3871
3883
  constructor(interactionService, tabConfig) {
3872
3884
  super();
@@ -4376,6 +4388,8 @@ InteractionModule.decorators = [
4376
4388
  },] }
4377
4389
  ];
4378
4390
 
4391
+ const PLACE_AUTH_SERVICE = new InjectionToken("PlaceAuthService");
4392
+
4379
4393
  class ParameterDefinition {
4380
4394
  constructor(propertyName, options, urlFormat) {
4381
4395
  this.propertyName = propertyName;
@@ -4461,10 +4475,11 @@ class ParameterDefinition {
4461
4475
  })(ParameterDefinition || (ParameterDefinition = {}));
4462
4476
 
4463
4477
  class PlaceDefinition {
4464
- constructor(component, path, authenticate, data, routeParameters, children) {
4478
+ constructor(component, path, authenticate, roles, data, routeParameters, children) {
4465
4479
  this.component = component;
4466
4480
  this.path = path;
4467
4481
  this.authenticate = authenticate;
4482
+ this.roles = roles;
4468
4483
  this.data = data;
4469
4484
  this.routeParameters = routeParameters;
4470
4485
  this.children = children;
@@ -4684,8 +4699,17 @@ __decorate([
4684
4699
  return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY);
4685
4700
  }
4686
4701
  PlaceComponent.getRouteParameters = getRouteParameters;
4687
- function getDefinition(klass) {
4688
- return Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);
4702
+ function getDefinition(snapshotOrConstructor) {
4703
+ if (snapshotOrConstructor instanceof ActivatedRouteSnapshot) {
4704
+ const component = snapshotOrConstructor.component;
4705
+ if (!isPlaceComponentConstructor(component)) {
4706
+ throw new Error(`ActivatedRouteSnapshot component is not a PlaceComponent, got ${component}`);
4707
+ }
4708
+ return Reflect.getMetadata(DEFINITION_META_DATA_KEY, component);
4709
+ }
4710
+ else {
4711
+ return Reflect.getMetadata(DEFINITION_META_DATA_KEY, snapshotOrConstructor);
4712
+ }
4689
4713
  }
4690
4714
  PlaceComponent.getDefinition = getDefinition;
4691
4715
  function injectDefinition(klass, definition) {
@@ -4694,6 +4718,72 @@ __decorate([
4694
4718
  PlaceComponent.injectDefinition = injectDefinition;
4695
4719
  })(PlaceComponent || (PlaceComponent = {}));
4696
4720
 
4721
+ class Visit {
4722
+ constructor(placeDefinition, visitParameters = {}) {
4723
+ this.placeDefinition = placeDefinition;
4724
+ this.visitParameters = visitParameters;
4725
+ }
4726
+ // @Trace()
4727
+ getRouteId() {
4728
+ return this.placeDefinition.getRouteIdFrom(this);
4729
+ }
4730
+ // @Trace()
4731
+ hasRouteId() {
4732
+ return !isNil(this.getRouteId());
4733
+ }
4734
+ /**
4735
+ * Returns the value of the place parameter with the specified name. The parameter
4736
+ * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
4737
+ * same as the the ValueModel property name.
4738
+ * @param parameterName the field name of the property model or the `as` option if specified.
4739
+ */
4740
+ getParameter(parameterName) {
4741
+ return this.visitParameters[parameterName];
4742
+ }
4743
+ // @Trace()
4744
+ hasParameter(parameterName) {
4745
+ return Object.keys(this.visitParameters).includes(parameterName);
4746
+ }
4747
+ replace(parameter, value) {
4748
+ return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), { [parameter.name]: value }));
4749
+ }
4750
+ mergeRouteParameters(routeParams) {
4751
+ // todo: whitelist parameters.
4752
+ const routeParameterKeys = Object.keys(routeParams);
4753
+ const params = {};
4754
+ this.placeDefinition.getVisitParameterDefs().forEach(def => {
4755
+ if (def.isRouteId || def.isRouteParameter) {
4756
+ if (routeParameterKeys.includes(def.name)) {
4757
+ params[def.name] = routeParams[def.name];
4758
+ }
4759
+ }
4760
+ else {
4761
+ // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
4762
+ // defaults and remember sanitisation process.
4763
+ const value = this.getParameter(def.name);
4764
+ if (this.hasParameter(def.name)) {
4765
+ params[def.name] = value;
4766
+ }
4767
+ }
4768
+ });
4769
+ return new Visit(this.placeDefinition, params);
4770
+ }
4771
+ hasRoutingChangedFrom(other) {
4772
+ const samePlace = other.placeDefinition === this.placeDefinition;
4773
+ const sameRouteParameters = isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
4774
+ return !samePlace || !sameRouteParameters;
4775
+ }
4776
+ hasChangedFrom(other) {
4777
+ const sameNonRouteParameters = isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
4778
+ return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
4779
+ }
4780
+ toDebugString() {
4781
+ return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(",");
4782
+ }
4783
+ }
4784
+
4785
+ const AUP_PLACE_CONFIG = new InjectionToken('AUP_PLACE_CONFIG');
4786
+
4697
4787
  /**
4698
4788
  * This class handles the logic around canDeactivate for a given router state transition. It's core responsibilities are:
4699
4789
  * 1. Ensure we only ask the component to deactivate once on a given navigation cycle (since visit sanitisation can result in multiple round trips to through the router.)
@@ -5762,6 +5852,9 @@ class PlaceRouter extends GarbageCollector {
5762
5852
  this.navigationSessionModel = new MutableValueModel();
5763
5853
  this._activeVisits = new MutableListModel();
5764
5854
  this.sessionFinishedJobs = [];
5855
+ if (window['Cypress']) {
5856
+ window['aup.PlaceRouter'] = this;
5857
+ }
5765
5858
  this.routerInteractionAdapter = interactionService.registerPlaceRouter(this);
5766
5859
  // TODO: Make this an interface and use 'this' instead.
5767
5860
  this.navigationContext = new NavigationContext.Impl(this.urlService, this.routerInteractionAdapter, (urlSnapshot, options) => {
@@ -5823,6 +5916,9 @@ class PlaceRouter extends GarbageCollector {
5823
5916
  get currentSession() {
5824
5917
  return this.navigationSessionModel.value;
5825
5918
  }
5919
+ isNavigating() {
5920
+ return this.navigationInProgress.value;
5921
+ }
5826
5922
  // @Trace()
5827
5923
  onPopState(event) {
5828
5924
  assert.isTruthy(event.navigationTrigger === 'popstate');
@@ -6015,72 +6111,6 @@ PlaceRouter.ctorParameters = () => [
6015
6111
  { type: PlaceHistory }
6016
6112
  ];
6017
6113
 
6018
- class Visit {
6019
- constructor(placeDefinition, visitParameters = {}) {
6020
- this.placeDefinition = placeDefinition;
6021
- this.visitParameters = visitParameters;
6022
- }
6023
- // @Trace()
6024
- getRouteId() {
6025
- return this.placeDefinition.getRouteIdFrom(this);
6026
- }
6027
- // @Trace()
6028
- hasRouteId() {
6029
- return !isNil(this.getRouteId());
6030
- }
6031
- /**
6032
- * Returns the value of the place parameter with the specified name. The parameter
6033
- * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
6034
- * same as the the ValueModel property name.
6035
- * @param parameterName the field name of the property model or the `as` option if specified.
6036
- */
6037
- getParameter(parameterName) {
6038
- return this.visitParameters[parameterName];
6039
- }
6040
- // @Trace()
6041
- hasParameter(parameterName) {
6042
- return Object.keys(this.visitParameters).includes(parameterName);
6043
- }
6044
- replace(parameter, value) {
6045
- return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), { [parameter.name]: value }));
6046
- }
6047
- mergeRouteParameters(routeParams) {
6048
- // todo: whitelist parameters.
6049
- const routeParameterKeys = Object.keys(routeParams);
6050
- const params = {};
6051
- this.placeDefinition.getVisitParameterDefs().forEach(def => {
6052
- if (def.isRouteId || def.isRouteParameter) {
6053
- if (routeParameterKeys.includes(def.name)) {
6054
- params[def.name] = routeParams[def.name];
6055
- }
6056
- }
6057
- else {
6058
- // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
6059
- // defaults and remember sanitisation process.
6060
- const value = this.getParameter(def.name);
6061
- if (this.hasParameter(def.name)) {
6062
- params[def.name] = value;
6063
- }
6064
- }
6065
- });
6066
- return new Visit(this.placeDefinition, params);
6067
- }
6068
- hasRoutingChangedFrom(other) {
6069
- const samePlace = other.placeDefinition === this.placeDefinition;
6070
- const sameRouteParameters = isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
6071
- return !samePlace || !sameRouteParameters;
6072
- }
6073
- hasChangedFrom(other) {
6074
- const sameNonRouteParameters = isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
6075
- return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
6076
- }
6077
- toDebugString() {
6078
- return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(",");
6079
- }
6080
- }
6081
-
6082
- const AUP_PLACE_CONFIG = new InjectionToken('AUP_PLACE_CONFIG');
6083
-
6084
6114
  // Freezes the state of the components at the start of the animation.
6085
6115
  const animationStartStyle = style({ position: 'absolute', top: '0', left: '0', bottom: '0', right: '0' });
6086
6116
  const left = [
@@ -6336,11 +6366,13 @@ __decorate([
6336
6366
  ], PlaceOutletComponent.prototype, "onOutletDeactivated", null);
6337
6367
 
6338
6368
  class AbstractPlaceNavigationComponent extends DisposableComponent {
6339
- constructor(placeRouter) {
6369
+ constructor(authService) {
6340
6370
  super();
6341
6371
  this._activePlaceComponent = new DelegatingValueModel();
6342
6372
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
6343
- this.placeDefinitions = chain(this.placesModel).map(c => PlaceComponent.getDefinition(c));
6373
+ this.placeDefinitions = chain(this.placesModel)
6374
+ .map(c => PlaceComponent.getDefinition(c))
6375
+ .select(d => authService.authoriserModel.value(d), { dependsOn: authService.authoriserModel });
6344
6376
  this.commandFactory = Command.createFactory((placeDefinition) => {
6345
6377
  this.placeOutlet.navigate(new Visit(placeDefinition));
6346
6378
  });
@@ -6372,7 +6404,7 @@ AbstractPlaceNavigationComponent.decorators = [
6372
6404
  },] }
6373
6405
  ];
6374
6406
  AbstractPlaceNavigationComponent.ctorParameters = () => [
6375
- { type: PlaceRouter }
6407
+ { type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] }
6376
6408
  ];
6377
6409
  AbstractPlaceNavigationComponent.propDecorators = {
6378
6410
  places: [{ type: Input }],
@@ -6450,19 +6482,19 @@ EmptyStateComponent.decorators = [
6450
6482
  EmptyStateComponent.ctorParameters = () => [];
6451
6483
 
6452
6484
  class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
6453
- constructor(placeRouter) {
6454
- super(placeRouter);
6485
+ constructor(authService) {
6486
+ super(authService);
6455
6487
  }
6456
6488
  }
6457
6489
  ListPlaceNavComponent.decorators = [
6458
6490
  { type: Component, args: [{
6459
6491
  selector: 'aup-list-place-nav',
6460
6492
  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",
6461
- styles: [":host{--selected-background:#f1f1f1;--selected-border-color:#838383;--selected-color:inherit;display:flex;flex-direction:column}mat-nav-list{padding-top:0}a.active{background:var(--selected-background);border-right:2px solid var(--selected-border-color);color:var(--selected-color)}"]
6493
+ styles: [":host{--selected-background:#f1f1f1;--selected-border-color:#838383;--selected-color:inherit;display:flex;flex-direction:column}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{background:var(--selected-background);border-right:2px solid var(--selected-border-color);color:var(--selected-color)}"]
6462
6494
  },] }
6463
6495
  ];
6464
6496
  ListPlaceNavComponent.ctorParameters = () => [
6465
- { type: PlaceRouter }
6497
+ { type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] }
6466
6498
  ];
6467
6499
 
6468
6500
  /**
@@ -6508,8 +6540,8 @@ ListPlaceNavComponent.ctorParameters = () => [
6508
6540
  * })
6509
6541
  */
6510
6542
  class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {
6511
- constructor(router, placeRouter) {
6512
- super(placeRouter);
6543
+ constructor(router, authService) {
6544
+ super(authService);
6513
6545
  this.router = router;
6514
6546
  this.expanded = false;
6515
6547
  }
@@ -6532,7 +6564,7 @@ SidePlaceNavigationComponent.decorators = [
6532
6564
  ];
6533
6565
  SidePlaceNavigationComponent.ctorParameters = () => [
6534
6566
  { type: Router },
6535
- { type: PlaceRouter }
6567
+ { type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] }
6536
6568
  ];
6537
6569
  SidePlaceNavigationComponent.propDecorators = {
6538
6570
  expanded: [{ type: HostBinding, args: ['class.expanded',] }],
@@ -6540,8 +6572,8 @@ SidePlaceNavigationComponent.propDecorators = {
6540
6572
  };
6541
6573
 
6542
6574
  class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
6543
- constructor(placeRouter) {
6544
- super(placeRouter);
6575
+ constructor(authService) {
6576
+ super(authService);
6545
6577
  }
6546
6578
  }
6547
6579
  TabbedPlaceNavigationComponent.decorators = [
@@ -6552,7 +6584,7 @@ TabbedPlaceNavigationComponent.decorators = [
6552
6584
  },] }
6553
6585
  ];
6554
6586
  TabbedPlaceNavigationComponent.ctorParameters = () => [
6555
- { type: PlaceRouter }
6587
+ { type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] }
6556
6588
  ];
6557
6589
 
6558
6590
  class PlaceModule {
@@ -6745,7 +6777,7 @@ DialogInteractionContextFactory.ctorParameters = () => [
6745
6777
  function Place(options) {
6746
6778
  return (target) => {
6747
6779
  if (PlaceComponent.isPlaceComponentConstructor(target)) {
6748
- PlaceComponent.injectDefinition(target, new PlaceDefinition(target, options.path, isNil(options.authenticate) ? true : options.authenticate, options.data, PlaceComponent.getRouteParameters(target), (options.children || []).map(c => PlaceComponent.getDefinition(c))));
6780
+ PlaceComponent.injectDefinition(target, new PlaceDefinition(target, options.path, isNil(options.authenticate) ? true : options.authenticate, isNil(options.roles) ? [] : options.roles, options.data, PlaceComponent.getRouteParameters(target), (options.children || []).map(c => PlaceComponent.getDefinition(c))));
6749
6781
  }
6750
6782
  else {
6751
6783
  lang.illegalState(`${target} must extend PlaceComponent to use the @Place decorator`);
@@ -6862,20 +6894,27 @@ class VisitSanitiser {
6862
6894
  }
6863
6895
 
6864
6896
  class PlaceGuard {
6865
- constructor(router, urlService, placeRouter, placeHistory, interactionService, injector) {
6897
+ constructor(router, urlService, placeRouter, placeHistory, placeAuthService, interactionService, injector) {
6866
6898
  this.router = router;
6867
6899
  this.urlService = urlService;
6868
6900
  this.placeRouter = placeRouter;
6869
6901
  this.placeHistory = placeHistory;
6902
+ this.placeAuthService = placeAuthService;
6870
6903
  this.interactionService = interactionService;
6871
6904
  this.injector = injector;
6872
6905
  }
6873
- // @Trace()
6874
6906
  canActivate(activatedRoute, state) {
6875
6907
  return __awaiter(this, void 0, void 0, function* () {
6876
- // TODO: this is ugly now that I'm return UrlSnapshots and not UrlTrees. It'd be better if the functions
6877
- // weren't nested or if I implemented a handler chain.
6878
- return this.authorisePlaceThen(activatedRoute, state, (placeDefinition) => __awaiter(this, void 0, void 0, function* () {
6908
+ if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
6909
+ const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
6910
+ const needsAuth = placeDefinition.authenticate;
6911
+ const proceed = !needsAuth || (yield this.placeAuthService.isAuthenticated());
6912
+ if (!proceed) {
6913
+ return this.handleGuardResult(this.placeAuthService.handleNotAuthenticated(activatedRoute, state));
6914
+ }
6915
+ if (!this.placeAuthService.isAuthorised(placeDefinition)) {
6916
+ return this.handleGuardResult(this.placeAuthService.handleNotAuthorisation(activatedRoute, state));
6917
+ }
6879
6918
  const result = yield this.cleanInteractionState(activatedRoute, state, () => __awaiter(this, void 0, void 0, function* () {
6880
6919
  // Parse our route params.
6881
6920
  const params = new ConsolidatedParameterMap(activatedRoute.paramMap, activatedRoute.url);
@@ -6896,57 +6935,51 @@ class PlaceGuard {
6896
6935
  return true;
6897
6936
  }
6898
6937
  }));
6899
- return this.handleGuardResult(result);
6900
- }));
6938
+ return result instanceof UrlSnapshot ? result.urlTree : result;
6939
+ }
6940
+ else {
6941
+ return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);
6942
+ }
6901
6943
  });
6902
6944
  }
6903
- // @Trace()
6904
6945
  canDeactivate(component, currentRoute, currentState, nextState) {
6905
6946
  return __awaiter(this, void 0, void 0, function* () {
6906
6947
  const currentUrl = this.urlService.parseUrl(currentState.url);
6907
6948
  const nextUrl = this.urlService.parseUrl(nextState.url);
6908
6949
  const result = yield this.placeRouter.navigationSession.canDeactivatePlace(component, currentUrl, nextUrl);
6909
- return this.handleGuardResult(result);
6950
+ return result instanceof UrlSnapshot ? result.urlTree : result;
6910
6951
  });
6911
6952
  }
6912
- // @Trace()
6913
6953
  handleGuardResult(result) {
6914
6954
  if (result instanceof UrlSnapshot) {
6915
6955
  return result.urlTree;
6916
6956
  }
6917
6957
  else {
6918
- return result;
6958
+ return this.urlService.createUrlSnapshot(result).urlTree;
6919
6959
  }
6920
6960
  }
6961
+ // protected async ensureAuthenticatedThen(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot, next: (placeDefinition: PlaceDefinition) => Promise<boolean | UrlTree>): Promise<boolean | UrlTree> {
6962
+ // const authoriseResult = placeDefinition.authenticate ? await this.isAuthorised(activatedRoute, state) : true;
6963
+ // if (authoriseResult === true) {
6964
+ // // we're authorised, now run the place guards.
6965
+ // return next(placeDefinition);
6966
+ // } else {
6967
+ // console.log('not authorised result', authoriseResult);
6968
+ // return authoriseResult;
6969
+ // }
6970
+ // }
6971
+ //
6972
+ // // @Trace()
6973
+ // protected async ensureAuthorisedThen(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot, next: (placeDefinition: PlaceDefinition) => Promise<boolean | UrlTree>): Promise<boolean | UrlTree> {
6974
+ //
6975
+ // }
6921
6976
  // @Trace()
6922
- authorisePlaceThen(activatedRoute, state, runPlaceGuards) {
6923
- return __awaiter(this, void 0, void 0, function* () {
6924
- if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
6925
- const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
6926
- const authoriseResult = placeDefinition.authenticate ? yield this.isAuthorised(activatedRoute, state) : true;
6927
- if (authoriseResult === true) {
6928
- // we're authorised, now run the place guards.
6929
- return runPlaceGuards(placeDefinition);
6930
- }
6931
- else {
6932
- console.log('not authorised result', authoriseResult);
6933
- return authoriseResult;
6934
- }
6935
- }
6936
- else {
6937
- return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);
6938
- }
6939
- });
6940
- }
6941
- // @Trace()
6942
- isAuthorised(activatedRoute, state) {
6943
- return __awaiter(this, void 0, void 0, function* () {
6944
- const authorised = this.getAuthGuard(this.injector).canActivate(activatedRoute, state);
6945
- return (authorised instanceof Observable) ? authorised.toPromise() : authorised;
6946
- });
6947
- }
6948
- // @Trace()
6949
- cleanInteractionState(route, state, then) {
6977
+ // async isAuthorised(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean | UrlTree> {
6978
+ // const authorised = this.getAuthGuard(this.injector).canActivate(activatedRoute, state);
6979
+ // return (authorised instanceof Observable) ? authorised.toPromise() : authorised;
6980
+ // }
6981
+ // abstract getAuthGuard(injector: Injector): CanActivate;
6982
+ cleanInteractionState(route, state, next) {
6950
6983
  return __awaiter(this, void 0, void 0, function* () {
6951
6984
  const url = this.urlService.parseUrl(state.url);
6952
6985
  if (!this.interactionService.isActive() && url.hasInteractions()) {
@@ -6955,11 +6988,48 @@ class PlaceGuard {
6955
6988
  return url.removeInteractionIds();
6956
6989
  }
6957
6990
  else {
6958
- return then();
6991
+ return next();
6959
6992
  }
6960
6993
  });
6961
6994
  }
6962
6995
  }
6996
+ PlaceGuard.ɵprov = ɵɵdefineInjectable({ factory: function PlaceGuard_Factory() { return new PlaceGuard(ɵɵinject(Router), ɵɵinject(UrlService), ɵɵinject(PlaceRouter), ɵɵinject(PlaceHistory), ɵɵinject(PLACE_AUTH_SERVICE), ɵɵinject(InteractionService), ɵɵinject(INJECTOR)); }, token: PlaceGuard, providedIn: "root" });
6997
+ PlaceGuard.decorators = [
6998
+ { type: Injectable, args: [{ providedIn: 'root' },] }
6999
+ ];
7000
+ PlaceGuard.ctorParameters = () => [
7001
+ { type: Router },
7002
+ { type: UrlService },
7003
+ { type: PlaceRouter },
7004
+ { type: PlaceHistory },
7005
+ { type: undefined, decorators: [{ type: Inject, args: [PLACE_AUTH_SERVICE,] }] },
7006
+ { type: InteractionService },
7007
+ { type: Injector }
7008
+ ];
7009
+ __decorate([
7010
+ Trace(),
7011
+ __metadata("design:type", Function),
7012
+ __metadata("design:paramtypes", [ActivatedRouteSnapshot, RouterStateSnapshot]),
7013
+ __metadata("design:returntype", Promise)
7014
+ ], PlaceGuard.prototype, "canActivate", null);
7015
+ __decorate([
7016
+ Trace(),
7017
+ __metadata("design:type", Function),
7018
+ __metadata("design:paramtypes", [PlaceComponent, ActivatedRouteSnapshot, RouterStateSnapshot, RouterStateSnapshot]),
7019
+ __metadata("design:returntype", Promise)
7020
+ ], PlaceGuard.prototype, "canDeactivate", null);
7021
+ __decorate([
7022
+ Trace(),
7023
+ __metadata("design:type", Function),
7024
+ __metadata("design:paramtypes", [Object]),
7025
+ __metadata("design:returntype", void 0)
7026
+ ], PlaceGuard.prototype, "handleGuardResult", null);
7027
+ __decorate([
7028
+ Trace(),
7029
+ __metadata("design:type", Function),
7030
+ __metadata("design:paramtypes", [ActivatedRouteSnapshot, RouterStateSnapshot, Function]),
7031
+ __metadata("design:returntype", Promise)
7032
+ ], PlaceGuard.prototype, "cleanInteractionState", null);
6963
7033
 
6964
7034
  var Formatter;
6965
7035
  (function (Formatter) {
@@ -7061,5 +7131,5 @@ function VisitParameterList(options) {
7061
7131
  * Generated bundle index. Do not edit.
7062
7132
  */
7063
7133
 
7064
- export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandDirective, CommandFace, CommandFaceComponent, CommandGroup, CommandGroupComponent, CommandGroupMenuRendererComponent, CommandGroupRendererComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, 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, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PopupMenuComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, Registration, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, UrlService, UrlSnapshot, VerticalFocusContainerComponent, ViewData, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0 };
7134
+ export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandDirective, CommandFace, CommandFaceComponent, CommandGroup, CommandGroupComponent, CommandGroupMenuRendererComponent, CommandGroupRendererComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, 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, PLACE_AUTH_SERVICE, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PopupMenuComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, Registration, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, UrlService, UrlSnapshot, VerticalFocusContainerComponent, ViewData, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0 };
7065
7135
  //# sourceMappingURL=coolon-angular-ui-powerups.js.map