@coolon/angular-ui-powerups 0.0.98 → 0.0.102

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 (83) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +2036 -1518
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  5. package/coolon-angular-ui-powerups.d.ts +19 -19
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/coolon-angular-ui-powerups.js +19 -19
  8. package/esm2015/index.js +2 -2
  9. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +20 -5
  10. package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +13 -3
  11. package/esm2015/lib/interaction/index.js +5 -4
  12. package/esm2015/lib/interaction/interaction-context-base.js +21 -8
  13. package/esm2015/lib/interaction/interaction-context.js +53 -46
  14. package/esm2015/lib/interaction/interaction.module.js +3 -3
  15. package/esm2015/lib/interaction/services/interaction.service.js +232 -0
  16. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js +62 -0
  17. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js +145 -0
  18. package/esm2015/lib/interaction/services/modal-interaction-context.factory.js +17 -0
  19. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +3 -3
  20. package/esm2015/lib/place/guards/navigation-state.js +406 -262
  21. package/esm2015/lib/place/guards/place-component-deactivation-handler.js +63 -28
  22. package/esm2015/lib/place/guards/place.guard.js +215 -0
  23. package/esm2015/lib/place/index.js +2 -3
  24. package/esm2015/lib/place/place-router.js +161 -118
  25. package/esm2015/lib/place/url-snapshot.js +124 -36
  26. package/esm2015/public_api.js +3 -3
  27. package/esm5/coolon-angular-ui-powerups.js +19 -19
  28. package/esm5/index.js +2 -2
  29. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +24 -14
  30. package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +10 -3
  31. package/esm5/lib/interaction/index.js +5 -4
  32. package/esm5/lib/interaction/interaction-context-base.js +25 -8
  33. package/esm5/lib/interaction/interaction-context.js +81 -56
  34. package/esm5/lib/interaction/interaction.module.js +3 -3
  35. package/esm5/lib/interaction/services/interaction.service.js +280 -0
  36. package/esm5/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js +65 -0
  37. package/esm5/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js +170 -0
  38. package/esm5/lib/interaction/services/modal-interaction-context.factory.js +27 -0
  39. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +3 -3
  40. package/esm5/lib/place/guards/navigation-state.js +552 -304
  41. package/esm5/lib/place/guards/place-component-deactivation-handler.js +73 -27
  42. package/esm5/lib/place/guards/place.guard.js +300 -0
  43. package/esm5/lib/place/index.js +2 -3
  44. package/esm5/lib/place/place-router.js +199 -137
  45. package/esm5/lib/place/url-snapshot.js +153 -42
  46. package/esm5/public_api.js +3 -3
  47. package/fesm2015/coolon-angular-ui-powerups.js +1636 -1300
  48. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  49. package/fesm5/coolon-angular-ui-powerups.js +1985 -1466
  50. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  51. package/lib/interaction/components/activity-container/activity-container.component.d.ts +1 -0
  52. package/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.d.ts +3 -1
  53. package/lib/interaction/index.d.ts +4 -3
  54. package/lib/interaction/interaction-context-base.d.ts +3 -1
  55. package/lib/interaction/interaction-context.d.ts +11 -13
  56. package/lib/interaction/services/interaction.service.d.ts +46 -0
  57. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +15 -0
  58. package/lib/interaction/services/{dialog-interaction-context.d.ts → mat-dialog-interaction/dialog-interaction-context.d.ts} +2 -2
  59. package/lib/interaction/services/modal-interaction-context.factory.d.ts +4 -0
  60. package/lib/place/guards/navigation-state.d.ts +83 -49
  61. package/lib/place/guards/place-component-deactivation-handler.d.ts +7 -4
  62. package/lib/place/guards/{abstract-place.guard.d.ts → place.guard.d.ts} +9 -4
  63. package/lib/place/index.d.ts +1 -2
  64. package/lib/place/place-router.d.ts +17 -22
  65. package/lib/place/url-snapshot.d.ts +23 -6
  66. package/package.json +1 -1
  67. package/schematics/place-routes/place-def.js +1 -0
  68. package/schematics/place-routes/place-def.js.map +1 -1
  69. package/schematics/place-routes/templates/place-routes.ts.template +10 -11
  70. package/styles/styles.scss +1 -1
  71. package/esm2015/lib/interaction/services/dialog-interaction-context.js +0 -163
  72. package/esm2015/lib/interaction/services/dialog-interaction.service.js +0 -151
  73. package/esm2015/lib/interaction/services/modal-interaction.service.js +0 -109
  74. package/esm2015/lib/place/guards/abstract-place.guard.js +0 -165
  75. package/esm2015/lib/place/guards/interaction.guard.js +0 -113
  76. package/esm5/lib/interaction/services/dialog-interaction-context.js +0 -188
  77. package/esm5/lib/interaction/services/dialog-interaction.service.js +0 -179
  78. package/esm5/lib/interaction/services/modal-interaction.service.js +0 -153
  79. package/esm5/lib/place/guards/abstract-place.guard.js +0 -212
  80. package/esm5/lib/place/guards/interaction.guard.js +0 -125
  81. package/lib/interaction/services/dialog-interaction.service.d.ts +0 -24
  82. package/lib/interaction/services/modal-interaction.service.d.ts +0 -15
  83. package/lib/place/guards/interaction.guard.d.ts +0 -17
@@ -3,68 +3,112 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import * as tslib_1 from "tslib";
6
+ import * as _ from 'lodash';
6
7
  var PlaceComponentDeactivationHandler = /** @class */ (function () {
7
- function PlaceComponentDeactivationHandler(component, navigationSession) {
8
+ function PlaceComponentDeactivationHandler(component, navigationState, isPrimaryComponent) {
8
9
  this.component = component;
9
- this.navigationSession = navigationSession;
10
+ this.navigationState = navigationState;
11
+ this.isPrimaryComponent = isPrimaryComponent;
10
12
  }
13
+ Object.defineProperty(PlaceComponentDeactivationHandler.prototype, "interactionService", {
14
+ get: /**
15
+ * @return {?}
16
+ */
17
+ function () {
18
+ return this.navigationState.interactionService;
19
+ },
20
+ enumerable: true,
21
+ configurable: true
22
+ });
23
+ Object.defineProperty(PlaceComponentDeactivationHandler.prototype, "placeRouter", {
24
+ get: /**
25
+ * @return {?}
26
+ */
27
+ function () {
28
+ return this.navigationState.placeRouter;
29
+ },
30
+ enumerable: true,
31
+ configurable: true
32
+ });
11
33
  /**
34
+ * @param {?} currentUrl
12
35
  * @param {?} nextState
13
36
  * @return {?}
14
37
  */
15
38
  PlaceComponentDeactivationHandler.prototype.canDeactivate = /**
39
+ * @param {?} currentUrl
16
40
  * @param {?} nextState
17
41
  * @return {?}
18
42
  */
19
- function (nextState) {
43
+ function (currentUrl, nextState) {
20
44
  return tslib_1.__awaiter(this, void 0, void 0, function () {
21
45
  return tslib_1.__generator(this, function (_a) {
22
46
  // We'll get called multiple times if there's any parameter sanitisation so
23
47
  // we always return true if we accepted promise from a previous cycle of the current
24
48
  // navigation session.
25
49
  if (!this.canDeactivatePromise) {
26
- this.canDeactivatePromise = this.canDeactivateComponent(nextState);
50
+ console.log("creating deactivate promise for -> " + this.component.constructor.name);
51
+ this.canDeactivatePromise = this.canDeactivateComponent(currentUrl, nextState);
27
52
  }
28
53
  return [2 /*return*/, this.canDeactivatePromise];
29
54
  });
30
55
  });
31
56
  };
57
+ // @Trace()
58
+ // @Trace()
32
59
  /**
33
60
  * @protected
61
+ * @param {?} currentUrl
34
62
  * @param {?} nextState
35
63
  * @return {?}
36
64
  */
37
- PlaceComponentDeactivationHandler.prototype.canDeactivateComponent = /**
65
+ PlaceComponentDeactivationHandler.prototype.canDeactivateComponent =
66
+ // @Trace()
67
+ /**
38
68
  * @protected
69
+ * @param {?} currentUrl
39
70
  * @param {?} nextState
40
71
  * @return {?}
41
72
  */
42
- function (nextState) {
73
+ function (currentUrl, nextState) {
43
74
  return tslib_1.__awaiter(this, void 0, void 0, function () {
44
- var activity;
75
+ var routeIds, currentIds;
45
76
  return tslib_1.__generator(this, function (_a) {
46
77
  switch (_a.label) {
47
78
  case 0:
48
- if (!(this.navigationSession.isPopState && this.component.interactionContext && this.component.interactionContext.isActive())) return [3 /*break*/, 2];
49
- // Note: Modal interactions are run in a different router outlet so we never get place deactivating while
50
- // a model interaction is active. This is because:
51
- // 1. the user can't click anything to navigate away
52
- // 2. clicking the back button will only change the outlet route portion of the URL. This
53
- // is all handled by the InteractionGuard and so the component guards will never run.
54
- //
55
- // Now we just cancel the current activity...
56
- return [4 /*yield*/, this.component.interactionContext.getCurrentActivity()];
79
+ console.log(this.navigationState.toString());
80
+ if (!this.navigationState.isPopState) return [3 /*break*/, 5];
81
+ if (!(this.isPrimaryComponent && this.interactionService.isModalActive())) return [3 /*break*/, 3];
82
+ routeIds = this.placeRouter.getActiveInteractionIdsFromUrl(nextState.url);
83
+ currentIds = this.interactionService.activeInteractionContextIds.value;
84
+ if (!!_.isEqual(currentIds, routeIds)) return [3 /*break*/, 2];
85
+ return [4 /*yield*/, this.interactionService.getActiveContext().cancelCurrentActivity()];
57
86
  case 1:
58
- activity = _a.sent();
59
- activity.cancel(null);
60
- return [2 /*return*/, false]; // ..and stay where we are.
61
- case 2:
87
+ _a.sent();
88
+ return [2 /*return*/, currentUrl.updateInteractionIds(this.interactionService.activeInteractionContextIds.value)];
89
+ case 2: return [3 /*break*/, 5];
90
+ case 3:
91
+ if (!(this.component.interactionContext && this.component.interactionContext.isActive())) return [3 /*break*/, 5];
92
+ return [4 /*yield*/, this.component.interactionContext.cancelCurrentActivity()];
93
+ case 4:
94
+ _a.sent();
95
+ return [2 /*return*/, currentUrl
96
+ .updateInteractionIds(this.interactionService.activeInteractionContextIds.value)];
97
+ case 5:
62
98
  // Ok, so now we're really leaving, so we ask the component if we should.;
63
- if (this.isNotJustAChangeInRouteId(nextState) && this.component.canDeactivate) {
64
- // No interaction in progress, so ask the component .
65
- // This may start an interaction, hence checking the interaction context before now. I.e. if the place pops up the dialog, and
66
- // the user clicks back again, we'll re-enter here and go bang when the component tries to open another dialog.
67
- return [2 /*return*/, this.component.canDeactivate(this.navigationSession.interactionContext)];
99
+ if (this.isNotJustAChangeInRouteId(nextState)) {
100
+ if (this.component.canDeactivate) {
101
+ // No interaction in progress, so ask the component .
102
+ // This may start an interaction, hence checking the interaction context before now. I.e. if the place pops up the dialog, and
103
+ // the user clicks back again, we'll re-enter here and go bang when the component tries to open another dialog.
104
+ return [2 /*return*/, this.component.canDeactivate(this.navigationState.interactionContext)];
105
+ }
106
+ // The component has an active interaction but no deactivation hook. Rather than guessing what to do
107
+ // we'll just cancel the navigation and print a warning.
108
+ if (this.component.interactionContext && this.component.interactionContext.isActive()) {
109
+ console.warn('Route changed while component has active interaction, cancelling navigation');
110
+ return [2 /*return*/, false];
111
+ }
68
112
  }
69
113
  return [2 /*return*/, true];
70
114
  }
@@ -99,6 +143,8 @@ if (false) {
99
143
  /** @type {?} */
100
144
  PlaceComponentDeactivationHandler.prototype.component;
101
145
  /** @type {?} */
102
- PlaceComponentDeactivationHandler.prototype.navigationSession;
146
+ PlaceComponentDeactivationHandler.prototype.navigationState;
147
+ /** @type {?} */
148
+ PlaceComponentDeactivationHandler.prototype.isPrimaryComponent;
103
149
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LWRlYWN0aXZhdGlvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2d1YXJkcy9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQTtJQUlFLDJDQUFxQixTQUF5QixFQUFXLGlCQUFrQztRQUF0RSxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUFXLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBaUI7SUFDM0YsQ0FBQzs7Ozs7SUFFSyx5REFBYTs7OztJQUFuQixVQUFvQixTQUFzQjs7O2dCQUN4QywyRUFBMkU7Z0JBQzNFLG9GQUFvRjtnQkFDcEYsc0JBQXNCO2dCQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO29CQUM5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNwRTtnQkFDRCxzQkFBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUM7OztLQUNsQzs7Ozs7O0lBRWUsa0VBQXNCOzs7OztJQUF0QyxVQUF1QyxTQUFzQjs7Ozs7OzZCQUt2RCxDQUFBLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFBLEVBQXRILHdCQUFzSDs7Ozs7Ozs7d0JBUXZHLHFCQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLEVBQUUsRUFBQTs7d0JBQXZFLFFBQVEsR0FBRyxTQUE0RDt3QkFDN0UsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDdEIsc0JBQU8sS0FBSyxFQUFDLENBQUMsMkJBQTJCOzt3QkFHM0MsMEVBQTBFO3dCQUMxRSxJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTs0QkFDN0UscURBQXFEOzRCQUNyRCw4SEFBOEg7NEJBQzlILCtHQUErRzs0QkFDL0csc0JBQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEVBQUM7eUJBQ2hGO3dCQUNELHNCQUFPLElBQUksRUFBQzs7OztLQUNiOzs7Ozs7SUFFUyxxRUFBeUI7Ozs7O0lBQW5DLFVBQW9DLFNBQXNCO1FBQ3hELHFGQUFxRjtRQUNyRixnRkFBZ0Y7UUFDaEYsMENBQTBDO1FBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNILHdDQUFDO0FBQUQsQ0FBQyxBQW5ERCxJQW1EQzs7Ozs7OztJQWpEQyxpRUFBK0M7O0lBRW5DLHNEQUFrQzs7SUFBRSw4REFBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcmFjdGlvbkNvbnRleHQgfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFVybFNuYXBzaG90IH0gZnJvbSAnLi4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7IE5hdmlnYXRpb25TdGF0ZSB9IGZyb20gJy4vbmF2aWdhdGlvbi1zdGF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIge1xuXG4gIHByaXZhdGUgY2FuRGVhY3RpdmF0ZVByb21pc2U6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgcmVhZG9ubHkgbmF2aWdhdGlvblNlc3Npb246IE5hdmlnYXRpb25TdGF0ZSkge1xuICB9XG5cbiAgYXN5bmMgY2FuRGVhY3RpdmF0ZShuZXh0U3RhdGU6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gV2UnbGwgZ2V0IGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB0aGVyZSdzIGFueSBwYXJhbWV0ZXIgc2FuaXRpc2F0aW9uIHNvXG4gICAgLy8gd2UgYWx3YXlzIHJldHVybiB0cnVlIGlmIHdlIGFjY2VwdGVkIHByb21pc2UgZnJvbSBhIHByZXZpb3VzIGN5Y2xlIG9mIHRoZSBjdXJyZW50XG4gICAgLy8gbmF2aWdhdGlvbiBzZXNzaW9uLlxuICAgIGlmICghdGhpcy5jYW5EZWFjdGl2YXRlUHJvbWlzZSkge1xuICAgICAgdGhpcy5jYW5EZWFjdGl2YXRlUHJvbWlzZSA9IHRoaXMuY2FuRGVhY3RpdmF0ZUNvbXBvbmVudChuZXh0U3RhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYW5EZWFjdGl2YXRlUHJvbWlzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjYW5EZWFjdGl2YXRlQ29tcG9uZW50KG5leHRTdGF0ZTogVXJsU25hcHNob3QpIHtcbiAgICAvLyBBdXRvbWF0aWNhbGx5IGNhbmNlbCBhbnkgYWN0aXZlIGFjdGl2aXRpZXMgaWYgdGhlIG5hdmlnYXRpb24gc2Vzc2lvbiB3YXMgdHJpZ2dlcmVkIGJ5IHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAvLyBhbnkgb3RoZXIgbmF2aWdhdGlvbnMgKHN1Y2ggYXMgdGhlIHVzZXIgY2xpY2tpbmcgYSBkaWZmZXJudCBwbGFjZSkgbXVzdCBiZSBoYW5kbGVkIGJ5IHRoZSBjb21wb25lbnQgaXRzZWxmXG4gICAgLy8gZHVyaW5nIHRoZSBjYW5EZWF0aXZhdGUgbWV0aG9kLiAgSWYgd2UgaGFuZGxlZCBtb3JlIHRoYW4ganVzdCB0aGUgcG9wIHN0YXRlIHRoZW4gaXQgbGVhZHMgdG8gdGhlIFVJIGlnbm9yaW5nXG4gICAgLy8gY2xpY2tzIGFuZCBqdXN0IGNhbmNlbGxpbmcgdGhpbmdzIHdoaWNoIGlzIGRlZXBseSBkaXNjb25jZXJ0aW5nLlxuICAgIGlmICh0aGlzLm5hdmlnYXRpb25TZXNzaW9uLmlzUG9wU3RhdGUgJiYgdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0ICYmIHRoaXMuY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAvLyBOb3RlOiBNb2RhbCBpbnRlcmFjdGlvbnMgYXJlIHJ1biBpbiBhIGRpZmZlcmVudCByb3V0ZXIgb3V0bGV0IHNvIHdlIG5ldmVyIGdldCBwbGFjZSBkZWFjdGl2YXRpbmcgd2hpbGVcbiAgICAgIC8vIGEgbW9kZWwgaW50ZXJhY3Rpb24gaXMgYWN0aXZlLiBUaGlzIGlzIGJlY2F1c2U6XG4gICAgICAvLyAxLiB0aGUgdXNlciBjYW4ndCBjbGljayBhbnl0aGluZyB0byBuYXZpZ2F0ZSBhd2F5XG4gICAgICAvLyAyLiBjbGlja2luZyB0aGUgYmFjayBidXR0b24gd2lsbCBvbmx5IGNoYW5nZSB0aGUgb3V0bGV0IHJvdXRlIHBvcnRpb24gb2YgdGhlIFVSTC4gVGhpc1xuICAgICAgLy8gICAgaXMgYWxsIGhhbmRsZWQgYnkgdGhlIEludGVyYWN0aW9uR3VhcmQgYW5kIHNvIHRoZSBjb21wb25lbnQgZ3VhcmRzIHdpbGwgbmV2ZXIgcnVuLlxuICAgICAgLy9cbiAgICAgIC8vIE5vdyB3ZSBqdXN0IGNhbmNlbCB0aGUgY3VycmVudCBhY3Rpdml0eS4uLlxuICAgICAgY29uc3QgYWN0aXZpdHkgPSBhd2FpdCB0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuZ2V0Q3VycmVudEFjdGl2aXR5KCk7XG4gICAgICBhY3Rpdml0eS5jYW5jZWwobnVsbCk7XG4gICAgICByZXR1cm4gZmFsc2U7IC8vIC4uYW5kIHN0YXkgd2hlcmUgd2UgYXJlLlxuICAgIH1cblxuICAgIC8vIE9rLCBzbyBub3cgd2UncmUgcmVhbGx5IGxlYXZpbmcsIHNvIHdlIGFzayB0aGUgY29tcG9uZW50IGlmIHdlIHNob3VsZC47XG4gICAgaWYgKHRoaXMuaXNOb3RKdXN0QUNoYW5nZUluUm91dGVJZChuZXh0U3RhdGUpICYmIHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUpIHtcbiAgICAgIC8vIE5vIGludGVyYWN0aW9uIGluIHByb2dyZXNzLCBzbyBhc2sgdGhlIGNvbXBvbmVudCAuXG4gICAgICAvLyBUaGlzIG1heSBzdGFydCBhbiBpbnRlcmFjdGlvbiwgaGVuY2UgY2hlY2tpbmcgdGhlIGludGVyYWN0aW9uIGNvbnRleHQgYmVmb3JlIG5vdy4gSS5lLiBpZiB0aGUgcGxhY2UgcG9wcyB1cCB0aGUgZGlhbG9nLCBhbmRcbiAgICAgIC8vIHRoZSB1c2VyIGNsaWNrcyBiYWNrIGFnYWluLCB3ZSdsbCByZS1lbnRlciBoZXJlIGFuZCBnbyBiYW5nIHdoZW4gdGhlIGNvbXBvbmVudCB0cmllcyB0byBvcGVuIGFub3RoZXIgZGlhbG9nLlxuICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUodGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbi5pbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc05vdEp1c3RBQ2hhbmdlSW5Sb3V0ZUlkKG5leHRTdGF0ZTogVXJsU25hcHNob3QpIHtcbiAgICAvLyBCZWNhdXNlIHBsYWNlcyB3aXRoIGEgcm91dGUtaWQgY292ZXIgdHdvIHJvdXRlIHNlZ21lbnRzIHdlIGdldCBhc2tlZCB0byBkZWFjdGl2YXRlXG4gICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzIGFkZGVkIG9yIHJlbW92ZWQuICBTbyBpZiBvdXIgcGF0aCBpcyBzdGlsbCBwcmVzZW50IHRoZSB1cmxcbiAgICAvLyB0aGVuIHdlIHNob3VsZG4ndCBkZWFjdGl2YXRlIHRoZSBwbGFjZS5cbiAgICByZXR1cm4gIW5leHRTdGF0ZS5pbmNsdWRlc1BhdGhPZih0aGlzLmNvbXBvbmVudC5wbGFjZURlZmluaXRpb24pO1xuICB9XG59XG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LWRlYWN0aXZhdGlvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2d1YXJkcy9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUs1QjtJQUlFLDJDQUFxQixTQUF5QixFQUFXLGVBQWdDLEVBQVcsa0JBQTJCO1FBQTFHLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQVcsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO0lBQy9ILENBQUM7SUFFRCxzQkFBSSxpRUFBa0I7Ozs7UUFBdEI7WUFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUM7UUFDakQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwwREFBVzs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxDQUFDOzs7T0FBQTs7Ozs7O0lBRUsseURBQWE7Ozs7O0lBQW5CLFVBQW9CLFVBQXVCLEVBQUUsU0FBc0I7OztnQkFDakUsMkVBQTJFO2dCQUMzRSxvRkFBb0Y7Z0JBQ3BGLHNCQUFzQjtnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBc0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBTSxDQUFDLENBQUM7b0JBQ3JGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2lCQUNoRjtnQkFDRCxzQkFBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUM7OztLQUNsQztJQUdELFdBQVc7Ozs7Ozs7O0lBQ0ssa0VBQXNCOzs7Ozs7OztJQUF0QyxVQUF1QyxVQUF1QixFQUFFLFNBQXNCOzs7Ozs7d0JBQ3BGLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDOzZCQUd6QyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBL0Isd0JBQStCOzZCQUM3QixDQUFBLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUEsRUFBbEUsd0JBQWtFO3dCQUM5RCxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO3dCQUN6RSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLEtBQUs7NkJBRXhFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQWhDLHdCQUFnQzt3QkFDbEMscUJBQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLENBQUMscUJBQXFCLEVBQUUsRUFBQTs7d0JBQXhFLFNBQXdFLENBQUM7d0JBQ3pFLHNCQUFPLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQUM7Ozs2QkFJaEcsQ0FBQSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUEsRUFBakYsd0JBQWlGO3dCQUNuRixxQkFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixFQUFFLEVBQUE7O3dCQUEvRCxTQUErRCxDQUFDO3dCQUNoRSxzQkFBTyxVQUFVO2lDQUNkLG9CQUFvQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsRUFBQTs7d0JBS3hGLDBFQUEwRTt3QkFDMUUsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLEVBQUU7NEJBRTdDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7Z0NBQ2hDLHFEQUFxRDtnQ0FDckQsOEhBQThIO2dDQUM5SCwrR0FBK0c7Z0NBQy9HLHNCQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBQzs2QkFDOUU7NEJBRUQscUdBQXFHOzRCQUNyRyx3REFBd0Q7NEJBQ3hELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFO2dDQUNyRixPQUFPLENBQUMsSUFBSSxDQUFDLDZFQUE2RSxDQUFDLENBQUM7Z0NBQzVGLHNCQUFPLEtBQUssRUFBQzs2QkFDZDt5QkFFRjt3QkFDRCxzQkFBTyxJQUFJLEVBQUM7Ozs7S0FDYjs7Ozs7O0lBRVMscUVBQXlCOzs7OztJQUFuQyxVQUFvQyxTQUFzQjtRQUN4RCxxRkFBcUY7UUFDckYsZ0ZBQWdGO1FBQ2hGLDBDQUEwQztRQUMxQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDSCx3Q0FBQztBQUFELENBQUMsQUE5RUQsSUE4RUM7Ozs7Ozs7SUE1RUMsaUVBQTZEOztJQUVqRCxzREFBa0M7O0lBQUUsNERBQXlDOztJQUFFLCtEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVXJsU25hcHNob3QgfSBmcm9tICcuLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXRlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXN0YXRlJztcblxuZXhwb3J0IGNsYXNzIFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlciB7XG5cbiAgcHJpdmF0ZSBjYW5EZWFjdGl2YXRlUHJvbWlzZTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIHJlYWRvbmx5IG5hdmlnYXRpb25TdGF0ZTogTmF2aWdhdGlvblN0YXRlLCByZWFkb25seSBpc1ByaW1hcnlDb21wb25lbnQ6IGJvb2xlYW4pIHtcbiAgfVxuXG4gIGdldCBpbnRlcmFjdGlvblNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvblN0YXRlLmludGVyYWN0aW9uU2VydmljZTtcbiAgfVxuXG4gIGdldCBwbGFjZVJvdXRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU3RhdGUucGxhY2VSb3V0ZXI7XG4gIH1cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlKGN1cnJlbnRVcmw6IFVybFNuYXBzaG90LCBuZXh0U3RhdGU6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAvLyB3ZSBhbHdheXMgcmV0dXJuIHRydWUgaWYgd2UgYWNjZXB0ZWQgcHJvbWlzZSBmcm9tIGEgcHJldmlvdXMgY3ljbGUgb2YgdGhlIGN1cnJlbnRcbiAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgaWYgKCF0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgY3JlYXRpbmcgZGVhY3RpdmF0ZSBwcm9taXNlIGZvciAtPiAke3RoaXMuY29tcG9uZW50LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgICB0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlID0gdGhpcy5jYW5EZWFjdGl2YXRlQ29tcG9uZW50KGN1cnJlbnRVcmwsIG5leHRTdGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlO1xuICB9XG5cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgYXN5bmMgY2FuRGVhY3RpdmF0ZUNvbXBvbmVudChjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFN0YXRlOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8VXJsU25hcHNob3QgfCBib29sZWFuPiB7XG4gICAgY29uc29sZS5sb2codGhpcy5uYXZpZ2F0aW9uU3RhdGUudG9TdHJpbmcoKSk7XG4gICAgLy8gQXV0b21hdGljYWxseSBjYW5jZWwgYW55IGFjdGl2ZSBhY3Rpdml0aWVzIGlmIHRoZSBuYXZpZ2F0aW9uIHNlc3Npb24gd2FzIHRyaWdnZXJlZCBieSB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gSWYgd2UgaGFuZGxlZCBtb3JlIHRoYW4ganVzdCB0aGUgcG9wIHN0YXRlIHRoZW4gaXQgbGVhZHMgdG8gdGhlIFVJIGlnbm9yaW5nIGNsaWNrcyBhbmQganVzdCBjYW5jZWxsaW5nIHRoaW5ncyB3aGljaCBpcyBkZWVwbHkgZGlzY29uY2VydGluZy5cbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uU3RhdGUuaXNQb3BTdGF0ZSkge1xuICAgICAgaWYgKHRoaXMuaXNQcmltYXJ5Q29tcG9uZW50ICYmIHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzTW9kYWxBY3RpdmUoKSkge1xuICAgICAgICBjb25zdCByb3V0ZUlkcyA9IHRoaXMucGxhY2VSb3V0ZXIuZ2V0QWN0aXZlSW50ZXJhY3Rpb25JZHNGcm9tVXJsKG5leHRTdGF0ZS51cmwpO1xuICAgICAgICBjb25zdCBjdXJyZW50SWRzID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLnZhbHVlO1xuXG4gICAgICAgIGlmICghXy5pc0VxdWFsKGN1cnJlbnRJZHMsIHJvdXRlSWRzKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmdldEFjdGl2ZUNvbnRleHQoKS5jYW5jZWxDdXJyZW50QWN0aXZpdHkoKTtcbiAgICAgICAgICByZXR1cm4gY3VycmVudFVybC51cGRhdGVJbnRlcmFjdGlvbklkcyh0aGlzLmludGVyYWN0aW9uU2VydmljZS5hY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjaGVjayBpZiB0aGUgY29tcG9uZW50IGhhcyBhbiBpbiBwbGFjZSBpbnRlcmFjdGlvblxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0ICYmIHRoaXMuY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEN1cnJlbnRBY3Rpdml0eSgpO1xuICAgICAgICAgIHJldHVybiBjdXJyZW50VXJsXG4gICAgICAgICAgICAudXBkYXRlSW50ZXJhY3Rpb25JZHModGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLnZhbHVlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT2ssIHNvIG5vdyB3ZSdyZSByZWFsbHkgbGVhdmluZywgc28gd2UgYXNrIHRoZSBjb21wb25lbnQgaWYgd2Ugc2hvdWxkLjtcbiAgICBpZiAodGhpcy5pc05vdEp1c3RBQ2hhbmdlSW5Sb3V0ZUlkKG5leHRTdGF0ZSkpIHtcblxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUpIHtcbiAgICAgICAgLy8gTm8gaW50ZXJhY3Rpb24gaW4gcHJvZ3Jlc3MsIHNvIGFzayB0aGUgY29tcG9uZW50IC5cbiAgICAgICAgLy8gVGhpcyBtYXkgc3RhcnQgYW4gaW50ZXJhY3Rpb24sIGhlbmNlIGNoZWNraW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGJlZm9yZSBub3cuIEkuZS4gaWYgdGhlIHBsYWNlIHBvcHMgdXAgdGhlIGRpYWxvZywgYW5kXG4gICAgICAgIC8vIHRoZSB1c2VyIGNsaWNrcyBiYWNrIGFnYWluLCB3ZSdsbCByZS1lbnRlciBoZXJlIGFuZCBnbyBiYW5nIHdoZW4gdGhlIGNvbXBvbmVudCB0cmllcyB0byBvcGVuIGFub3RoZXIgZGlhbG9nLlxuICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnQuY2FuRGVhY3RpdmF0ZSh0aGlzLm5hdmlnYXRpb25TdGF0ZS5pbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29tcG9uZW50IGhhcyBhbiBhY3RpdmUgaW50ZXJhY3Rpb24gYnV0IG5vIGRlYWN0aXZhdGlvbiBob29rLiAgUmF0aGVyIHRoYW4gZ3Vlc3Npbmcgd2hhdCB0byBkb1xuICAgICAgLy8gd2UnbGwganVzdCBjYW5jZWwgdGhlIG5hdmlnYXRpb24gYW5kIHByaW50IGEgd2FybmluZy5cbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdSb3V0ZSBjaGFuZ2VkIHdoaWxlIGNvbXBvbmVudCBoYXMgYWN0aXZlIGludGVyYWN0aW9uLCBjYW5jZWxsaW5nIG5hdmlnYXRpb24nKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzTm90SnVzdEFDaGFuZ2VJblJvdXRlSWQobmV4dFN0YXRlOiBVcmxTbmFwc2hvdCkge1xuICAgIC8vIEJlY2F1c2UgcGxhY2VzIHdpdGggYSByb3V0ZS1pZCBjb3ZlciB0d28gcm91dGUgc2VnbWVudHMgd2UgZ2V0IGFza2VkIHRvIGRlYWN0aXZhdGVcbiAgICAvLyBpZiB0aGUgcm91dGUgaWQgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gIFNvIGlmIG91ciBwYXRoIGlzIHN0aWxsIHByZXNlbnQgdGhlIHVybFxuICAgIC8vIHRoZW4gd2Ugc2hvdWxkbid0IGRlYWN0aXZhdGUgdGhlIHBsYWNlLlxuICAgIHJldHVybiAhbmV4dFN0YXRlLmluY2x1ZGVzUGF0aE9mKHRoaXMuY29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbik7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,300 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { lang } from '@coolon/pectin';
7
+ import { Observable } from 'rxjs';
8
+ import { PlaceComponent } from '../place-component';
9
+ import { VisitSanitiser } from '../route/visit-sanitiser';
10
+ import { UrlSnapshot } from '../url-snapshot';
11
+ import { Visit } from '../visit';
12
+ import { ConsolidatedParameterMap } from './consolidated-param-map';
13
+ /**
14
+ * @abstract
15
+ */
16
+ var /**
17
+ * @abstract
18
+ */
19
+ PlaceGuard = /** @class */ (function () {
20
+ function PlaceGuard(router, urlSerializer, placeRouter, placeHistory, interactionService, injector) {
21
+ this.router = router;
22
+ this.urlSerializer = urlSerializer;
23
+ this.placeRouter = placeRouter;
24
+ this.placeHistory = placeHistory;
25
+ this.interactionService = interactionService;
26
+ this.injector = injector;
27
+ }
28
+ // @Trace()
29
+ // @Trace()
30
+ /**
31
+ * @param {?} activatedRoute
32
+ * @param {?} state
33
+ * @return {?}
34
+ */
35
+ PlaceGuard.prototype.canActivate =
36
+ // @Trace()
37
+ /**
38
+ * @param {?} activatedRoute
39
+ * @param {?} state
40
+ * @return {?}
41
+ */
42
+ function (activatedRoute, state) {
43
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
44
+ var _this = this;
45
+ return tslib_1.__generator(this, function (_a) {
46
+ // TODO: this is ugly now that I'm return UrlSnapshots and not UrlTrees. It'd be better if the functions
47
+ // weren't nested or if I implemented a handler chain.
48
+ return [2 /*return*/, this.authorisePlaceThen(activatedRoute, state, (/**
49
+ * @param {?} placeDefinition
50
+ * @return {?}
51
+ */
52
+ function (placeDefinition) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
53
+ var result;
54
+ var _this = this;
55
+ return tslib_1.__generator(this, function (_a) {
56
+ switch (_a.label) {
57
+ case 0: return [4 /*yield*/, this.cleanInteractionState(activatedRoute, state, (/**
58
+ * @return {?}
59
+ */
60
+ function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
61
+ var params, parsedParams, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
62
+ return tslib_1.__generator(this, function (_a) {
63
+ switch (_a.label) {
64
+ case 0:
65
+ // Parse our route params.
66
+ params = new ConsolidatedParameterMap(activatedRoute.paramMap, activatedRoute.url);
67
+ parsedParams = placeDefinition.parseRouteParams(params);
68
+ initialVisit = this.placeRouter.navigationState.getVisitFor(placeDefinition) || new Visit(placeDefinition, parsedParams);
69
+ sanitiser = new VisitSanitiser(activatedRoute, this.router, this.placeHistory, this.injector);
70
+ return [4 /*yield*/, sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams))];
71
+ case 1:
72
+ sanitisedVisit = _a.sent();
73
+ // Save the visit with any updated parameters. We need to save it so we remember any non route parameters
74
+ this.placeRouter.navigationState.storeVisit(sanitisedVisit);
75
+ if (initialVisit.hasRoutingChangedFrom(sanitisedVisit)) {
76
+ // Regenerate the url
77
+ urlSnapshot = this.placeRouter.parseUrl(state.url).updateVisitSegments(sanitisedVisit);
78
+ console.log('##### Place Guard Redirect', urlSnapshot);
79
+ return [2 /*return*/, urlSnapshot];
80
+ }
81
+ else {
82
+ return [2 /*return*/, true];
83
+ }
84
+ return [2 /*return*/];
85
+ }
86
+ });
87
+ }); }))];
88
+ case 1:
89
+ result = _a.sent();
90
+ return [2 /*return*/, this.handleGuardResult(result)];
91
+ }
92
+ });
93
+ }); }))];
94
+ });
95
+ });
96
+ };
97
+ // @Trace()
98
+ // @Trace()
99
+ /**
100
+ * @param {?} component
101
+ * @param {?} currentRoute
102
+ * @param {?} currentState
103
+ * @param {?=} nextState
104
+ * @return {?}
105
+ */
106
+ PlaceGuard.prototype.canDeactivate =
107
+ // @Trace()
108
+ /**
109
+ * @param {?} component
110
+ * @param {?} currentRoute
111
+ * @param {?} currentState
112
+ * @param {?=} nextState
113
+ * @return {?}
114
+ */
115
+ function (component, currentRoute, currentState, nextState) {
116
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
117
+ var currentUrl, nextUrl, result;
118
+ return tslib_1.__generator(this, function (_a) {
119
+ switch (_a.label) {
120
+ case 0:
121
+ currentUrl = this.placeRouter.parseUrl(currentState.url);
122
+ nextUrl = this.placeRouter.parseUrl(nextState.url);
123
+ return [4 /*yield*/, this.placeRouter.navigationState.canDeactivatePlace(component, currentUrl, nextUrl)];
124
+ case 1:
125
+ result = _a.sent();
126
+ return [2 /*return*/, this.handleGuardResult(result)];
127
+ }
128
+ });
129
+ });
130
+ };
131
+ /**
132
+ * @private
133
+ * @param {?} result
134
+ * @return {?}
135
+ */
136
+ PlaceGuard.prototype.handleGuardResult = /**
137
+ * @private
138
+ * @param {?} result
139
+ * @return {?}
140
+ */
141
+ function (result) {
142
+ if (result instanceof UrlSnapshot) {
143
+ return result.urlTree;
144
+ }
145
+ else {
146
+ return result;
147
+ }
148
+ };
149
+ // @Trace()
150
+ // @Trace()
151
+ /**
152
+ * @protected
153
+ * @param {?} activatedRoute
154
+ * @param {?} state
155
+ * @param {?} runPlaceGuards
156
+ * @return {?}
157
+ */
158
+ PlaceGuard.prototype.authorisePlaceThen =
159
+ // @Trace()
160
+ /**
161
+ * @protected
162
+ * @param {?} activatedRoute
163
+ * @param {?} state
164
+ * @param {?} runPlaceGuards
165
+ * @return {?}
166
+ */
167
+ function (activatedRoute, state, runPlaceGuards) {
168
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
169
+ var placeDefinition, authoriseResult, _a;
170
+ return tslib_1.__generator(this, function (_b) {
171
+ switch (_b.label) {
172
+ case 0:
173
+ if (!PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) return [3 /*break*/, 4];
174
+ placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
175
+ if (!placeDefinition.authenticate) return [3 /*break*/, 2];
176
+ return [4 /*yield*/, this.isAuthorised(activatedRoute, state)];
177
+ case 1:
178
+ _a = _b.sent();
179
+ return [3 /*break*/, 3];
180
+ case 2:
181
+ _a = true;
182
+ _b.label = 3;
183
+ case 3:
184
+ authoriseResult = _a;
185
+ if (authoriseResult === true) {
186
+ // we're authorised, now run the place guards.
187
+ return [2 /*return*/, runPlaceGuards(placeDefinition)];
188
+ }
189
+ else {
190
+ console.log('not authorised result', authoriseResult);
191
+ return [2 /*return*/, authoriseResult];
192
+ }
193
+ return [3 /*break*/, 5];
194
+ case 4: return [2 /*return*/, lang.illegalState("expected component to be an instance of PlaceComponent, got " + activatedRoute.component)];
195
+ case 5: return [2 /*return*/];
196
+ }
197
+ });
198
+ });
199
+ };
200
+ // @Trace()
201
+ // @Trace()
202
+ /**
203
+ * @param {?} activatedRoute
204
+ * @param {?} state
205
+ * @return {?}
206
+ */
207
+ PlaceGuard.prototype.isAuthorised =
208
+ // @Trace()
209
+ /**
210
+ * @param {?} activatedRoute
211
+ * @param {?} state
212
+ * @return {?}
213
+ */
214
+ function (activatedRoute, state) {
215
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
216
+ var authorised;
217
+ return tslib_1.__generator(this, function (_a) {
218
+ authorised = this.getAuthGuard(this.injector).canActivate(activatedRoute, state);
219
+ return [2 /*return*/, (authorised instanceof Observable) ? authorised.toPromise() : authorised];
220
+ });
221
+ });
222
+ };
223
+ // @Trace()
224
+ // @Trace()
225
+ /**
226
+ * @param {?} route
227
+ * @param {?} state
228
+ * @param {?} then
229
+ * @return {?}
230
+ */
231
+ PlaceGuard.prototype.cleanInteractionState =
232
+ // @Trace()
233
+ /**
234
+ * @param {?} route
235
+ * @param {?} state
236
+ * @param {?} then
237
+ * @return {?}
238
+ */
239
+ function (route, state, then) {
240
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
241
+ var url;
242
+ return tslib_1.__generator(this, function (_a) {
243
+ url = this.placeRouter.parseUrl(state.url);
244
+ if (!this.interactionService.isActive() && url.hasInteractionIds()) {
245
+ // This happens if we reload the page or the url was pasted as the route should only be activated
246
+ // after the interaction context has become active.
247
+ return [2 /*return*/, url.removeInteractionIds()];
248
+ }
249
+ else {
250
+ return [2 /*return*/, then()];
251
+ }
252
+ return [2 /*return*/];
253
+ });
254
+ });
255
+ };
256
+ return PlaceGuard;
257
+ }());
258
+ /**
259
+ * @abstract
260
+ */
261
+ export { PlaceGuard };
262
+ if (false) {
263
+ /**
264
+ * @type {?}
265
+ * @private
266
+ */
267
+ PlaceGuard.prototype.router;
268
+ /**
269
+ * @type {?}
270
+ * @private
271
+ */
272
+ PlaceGuard.prototype.urlSerializer;
273
+ /**
274
+ * @type {?}
275
+ * @private
276
+ */
277
+ PlaceGuard.prototype.placeRouter;
278
+ /**
279
+ * @type {?}
280
+ * @private
281
+ */
282
+ PlaceGuard.prototype.placeHistory;
283
+ /**
284
+ * @type {?}
285
+ * @private
286
+ */
287
+ PlaceGuard.prototype.interactionService;
288
+ /**
289
+ * @type {?}
290
+ * @private
291
+ */
292
+ PlaceGuard.prototype.injector;
293
+ /**
294
+ * @abstract
295
+ * @param {?} injector
296
+ * @return {?}
297
+ */
298
+ PlaceGuard.prototype.getAuthGuard = function (injector) { };
299
+ }
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvZ3VhcmRzL3BsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBVUEsT0FBTyxFQUFFLElBQUksRUFBUyxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXBELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUdwRTs7OztJQUdFLG9CQUE2QixNQUFjLEVBQ3ZCLGFBQTRCLEVBQ25CLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLGtCQUFzQyxFQUN0QyxRQUFrQjtRQUxsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3ZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUMvQyxDQUFDO0lBRUQsV0FBVzs7Ozs7OztJQUNMLGdDQUFXOzs7Ozs7O0lBQWpCLFVBQWtCLGNBQXNDLEVBQUUsS0FBMEI7Ozs7Z0JBRWpGLHlHQUF5RztnQkFDMUcsNkRBQTZEO2dCQUM3RCxzQkFBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFLEtBQUs7Ozs7b0JBQUUsVUFBTyxlQUFlOzs7Ozt3Q0FFM0QscUJB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aUJBQ2Y7Ozs7S0FDRjtJQUVILGlCQUFDO0FBQUQsQ0FBQyxBQWhHRCxJQWdHQzs7Ozs7Ozs7OztJQTdGYSw0QkFBK0I7Ozs7O0lBQy9CLG1DQUFvQzs7Ozs7SUFDcEMsaUNBQXlDOzs7OztJQUN6QyxrQ0FBMkM7Ozs7O0lBQzNDLHdDQUF1RDs7Ozs7SUFDdkQsOEJBQW1DOzs7Ozs7SUEwRS9DLDREQUF1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBDYW5BY3RpdmF0ZSxcbiAgQ2FuRGVhY3RpdmF0ZSxcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxTZXJpYWxpemVyLFxuICBVcmxUcmVlXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBsYW5nLCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEludGVyYWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBQbGFjZUhpc3RvcnkgfSBmcm9tICcuLi9wbGFjZS1oaXN0b3J5JztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vcGxhY2Utcm91dGVyJztcbmltcG9ydCB7IFZpc2l0U2FuaXRpc2VyIH0gZnJvbSAnLi4vcm91dGUvdmlzaXQtc2FuaXRpc2VyJztcbmltcG9ydCB7IFVybFNuYXBzaG90IH0gZnJvbSAnLi4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi4vdmlzaXQnO1xuaW1wb3J0IHsgQ29uc29saWRhdGVkUGFyYW1ldGVyTWFwIH0gZnJvbSAnLi9jb25zb2xpZGF0ZWQtcGFyYW0tbWFwJztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGxhY2VHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlLCBDYW5EZWFjdGl2YXRlPFBsYWNlQ29tcG9uZW50PiB7XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHVybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlSGlzdG9yeTogUGxhY2VIaXN0b3J5LFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGludGVyYWN0aW9uU2VydmljZTogSW50ZXJhY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgY2FuQWN0aXZhdGUoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuXG4gICAgIC8vIFRPRE86IHRoaXMgaXMgdWdseSBub3cgdGhhdCBJJ20gcmV0dXJuIFVybFNuYXBzaG90cyBhbmQgbm90IFVybFRyZWVzLiAgSXQnZCBiZSBiZXR0ZXIgaWYgdGhlIGZ1bmN0aW9uc1xuICAgIC8vICAgICAgICB3ZXJlbid0IG5lc3RlZCBvciBpZiBJIGltcGxlbWVudGVkIGEgaGFuZGxlciBjaGFpbi5cbiAgICByZXR1cm4gdGhpcy5hdXRob3Jpc2VQbGFjZVRoZW4oYWN0aXZhdGVkUm91dGUsIHN0YXRlLCBhc3luYyAocGxhY2VEZWZpbml0aW9uKSA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2xlYW5JbnRlcmFjdGlvblN0YXRlKGFjdGl2YXRlZFJvdXRlLCBzdGF0ZSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBQYXJzZSBvdXIgcm91dGUgcGFyYW1zLlxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgQ29uc29saWRhdGVkUGFyYW1ldGVyTWFwKGFjdGl2YXRlZFJvdXRlLnBhcmFtTWFwLCBhY3RpdmF0ZWRSb3V0ZS51cmwpO1xuICAgICAgICBjb25zdCBwYXJzZWRQYXJhbXMgPSBwbGFjZURlZmluaXRpb24ucGFyc2VSb3V0ZVBhcmFtcyhwYXJhbXMpO1xuXG4gICAgICAgIGNvbnN0IGluaXRpYWxWaXNpdCA9IHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblN0YXRlLmdldFZpc2l0Rm9yKHBsYWNlRGVmaW5pdGlvbikgfHwgbmV3IFZpc2l0KHBsYWNlRGVmaW5pdGlvbiwgcGFyc2VkUGFyYW1zKTtcbiAgICAgICAgY29uc3Qgc2FuaXRpc2VyID0gbmV3IFZpc2l0U2FuaXRpc2VyKGFjdGl2YXRlZFJvdXRlLCB0aGlzLnJvdXRlciwgdGhpcy5wbGFjZUhpc3RvcnksIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBzYW5pdGlzZWRWaXNpdCA9IGF3YWl0IHNhbml0aXNlci5zYW5pdGlzZShpbml0aWFsVmlzaXQubWVyZ2VSb3V0ZVBhcmFtZXRlcnMocGFyc2VkUGFyYW1zKSk7XG5cbiAgICAgICAgLy8gU2F2ZSB0aGUgdmlzaXQgd2l0aCBhbnkgdXBkYXRlZCBwYXJhbWV0ZXJzLiAgV2UgbmVlZCB0byBzYXZlIGl0IHNvIHdlIHJlbWVtYmVyIGFueSBub24gcm91dGUgcGFyYW1ldGVyc1xuICAgICAgICB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TdGF0ZS5zdG9yZVZpc2l0KHNhbml0aXNlZFZpc2l0KTtcbiAgICAgICAgaWYgKGluaXRpYWxWaXNpdC5oYXNSb3V0aW5nQ2hhbmdlZEZyb20oc2FuaXRpc2VkVmlzaXQpKSB7XG4gICAgICAgICAgLy8gUmVnZW5lcmF0ZSB0aGUgdXJsXG4gICAgICAgICAgY29uc3QgdXJsU25hcHNob3QgPSB0aGlzLnBsYWNlUm91dGVyLnBhcnNlVXJsKHN0YXRlLnVybCkudXBkYXRlVmlzaXRTZWdtZW50cyhzYW5pdGlzZWRWaXNpdCk7XG4gICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIFBsYWNlIEd1YXJkIFJlZGlyZWN0JywgdXJsU25hcHNob3QpO1xuICAgICAgICAgIHJldHVybiB1cmxTbmFwc2hvdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVHdWFyZFJlc3VsdChyZXN1bHQpO1xuXG4gICAgfSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhc3luYyBjYW5EZWFjdGl2YXRlKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIGN1cnJlbnRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycmVudFN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBuZXh0U3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnBsYWNlUm91dGVyLnBhcnNlVXJsKGN1cnJlbnRTdGF0ZS51cmwpO1xuICAgIGNvbnN0IG5leHRVcmwgPSB0aGlzLnBsYWNlUm91dGVyLnBhcnNlVXJsKG5leHRTdGF0ZS51cmwpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvblN0YXRlLmNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQsIGN1cnJlbnRVcmwsIG5leHRVcmwpO1xuICAgIHJldHVybiB0aGlzLmhhbmRsZUd1YXJkUmVzdWx0KHJlc3VsdCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUd1YXJkUmVzdWx0KHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBVcmxTbmFwc2hvdCkge1xuICAgICAgcmV0dXJuIHJlc3VsdC51cmxUcmVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4vLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgYXN5bmMgYXV0aG9yaXNlUGxhY2VUaGVuKGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCwgcnVuUGxhY2VHdWFyZHM6IChwbGFjZURlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbikgPT4gUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4pIHtcbiAgICBpZiAoUGxhY2VDb21wb25lbnQuaXNQbGFjZUNvbXBvbmVudENvbnN0cnVjdG9yKGFjdGl2YXRlZFJvdXRlLmNvbXBvbmVudCkpIHtcbiAgICAgIGNvbnN0IHBsYWNlRGVmaW5pdGlvbiA9IFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24oYWN0aXZhdGVkUm91dGUuY29tcG9uZW50KTtcbiAgICAgIGNvbnN0IGF1dGhvcmlzZVJlc3VsdCA9IHBsYWNlRGVmaW5pdGlvbi5hdXRoZW50aWNhdGUgPyBhd2FpdCB0aGlzLmlzQXV0aG9yaXNlZChhY3RpdmF0ZWRSb3V0ZSwgc3RhdGUpIDogdHJ1ZTtcbiAgICAgIGlmIChhdXRob3Jpc2VSZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgLy8gd2UncmUgYXV0aG9yaXNlZCwgbm93IHJ1biB0aGUgcGxhY2UgZ3VhcmRzLlxuICAgICAgICByZXR1cm4gcnVuUGxhY2VHdWFyZHMocGxhY2VEZWZpbml0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdub3QgYXV0aG9yaXNlZCByZXN1bHQnLCBhdXRob3Jpc2VSZXN1bHQpO1xuICAgICAgICByZXR1cm4gYXV0aG9yaXNlUmVzdWx0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYGV4cGVjdGVkIGNvbXBvbmVudCB0byBiZSBhbiBpbnN0YW5jZSBvZiBQbGFjZUNvbXBvbmVudCwgZ290ICR7YWN0aXZhdGVkUm91dGUuY29tcG9uZW50fWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGlzQXV0aG9yaXNlZChhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XG4gICAgY29uc3QgYXV0aG9yaXNlZCA9IHRoaXMuZ2V0QXV0aEd1YXJkKHRoaXMuaW5qZWN0b3IpLmNhbkFjdGl2YXRlKGFjdGl2YXRlZFJvdXRlLCBzdGF0ZSk7XG4gICAgcmV0dXJuIChhdXRob3Jpc2VkIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkgPyBhdXRob3Jpc2VkLnRvUHJvbWlzZSgpIDogYXV0aG9yaXNlZDtcbiAgfVxuXG4gIGFic3RyYWN0IGdldEF1dGhHdWFyZChpbmplY3RvcjogSW5qZWN0b3IpOiBDYW5BY3RpdmF0ZTtcblxuICAvLyBAVHJhY2UoKVxuICBhc3luYyBjbGVhbkludGVyYWN0aW9uU3RhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCB0aGVuOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4pOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMucGxhY2VSb3V0ZXIucGFyc2VVcmwoc3RhdGUudXJsKTtcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzQWN0aXZlKCkgJiYgdXJsLmhhc0ludGVyYWN0aW9uSWRzKCkpIHtcbiAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiB3ZSByZWxvYWQgdGhlIHBhZ2Ugb3IgdGhlIHVybCB3YXMgcGFzdGVkIGFzIHRoZSByb3V0ZSBzaG91bGQgb25seSBiZSBhY3RpdmF0ZWRcbiAgICAgIC8vIGFmdGVyIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGhhcyBiZWNvbWUgYWN0aXZlLlxuICAgICAgcmV0dXJuIHVybC5yZW1vdmVJbnRlcmFjdGlvbklkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhlbigpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
@@ -22,12 +22,11 @@ export { ListPlaceNavComponent } from "./components/list-place-nav/list-place-na
22
22
  export { PlaceOutletComponent } from "./components/place-outlet/place-outlet.component";
23
23
  export { leftRightPlaceAnimation, LEFT_RIGHT_PLACE_ANIMATION } from "./components/place-outlet/route-animations";
24
24
  export { TabbedPlaceNavigationComponent } from "./components/tabbed-place-navigation/tabbed-place-navigation.component";
25
- export { AbstractPlaceGuard } from "./guards/abstract-place.guard";
26
25
  export { ConsolidatedParameterMap } from "./guards/consolidated-param-map";
27
- export { InteractionGuard } from "./guards/interaction.guard";
28
26
  export { NavigationState } from "./guards/navigation-state";
29
27
  export { NoopAuthGuard } from "./guards/noop-auth-guard.service";
30
28
  export { PlaceComponentDeactivationHandler } from "./guards/place-component-deactivation-handler";
29
+ export { PlaceGuard } from "./guards/place.guard";
31
30
  export { Formatter } from "./route/formatter";
32
31
  export {} from "./route/json-types";
33
32
  export { RouteId, VisitParameter, VisitParameterList } from "./route/parameter-decorators";
@@ -35,4 +34,4 @@ export { ParameterDefinition } from "./route/parameter-definition.class";
35
34
  export {} from "./route/parameter-sanitiser";
36
35
  export {} from "./route/parameter-snapshot";
37
36
  export { VisitSanitiser } from "./route/visit-sanitiser";
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLGVBQWMsWUFBWSxDQUFDO0FBQzNCLG1GQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGlDQUFjLGdCQUFnQixDQUFDO0FBQy9CLGdDQUFjLG9CQUFvQixDQUFDO0FBQ25DLDZCQUFjLGlCQUFpQixDQUFDO0FBQ2hDLDRCQUFjLGdCQUFnQixDQUFDO0FBQy9CLHNCQUFjLG1CQUFtQixDQUFDO0FBQ2xDLDRCQUFjLGdCQUFnQixDQUFDO0FBQy9CLDRCQUFjLGdCQUFnQixDQUFDO0FBQy9CLHNCQUFjLFNBQVMsQ0FBQztBQUN4QixpREFBYyxrREFBa0QsQ0FBQztBQUNqRSxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSxvQ0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxzQ0FBYyxzREFBc0QsQ0FBQztBQUNyRSxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSxvRUFBYyw0Q0FBNEMsQ0FBQztBQUMzRCwrQ0FBYyx3RUFBd0UsQ0FBQztBQUN2RixtQ0FBYywrQkFBK0IsQ0FBQztBQUM5Qyx5Q0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxpQ0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxnQ0FBYywyQkFBMkIsQ0FBQztBQUMxQyw4QkFBYyxrQ0FBa0MsQ0FBQztBQUNqRCxrREFBYywrQ0FBK0MsQ0FBQztBQUM5RCwwQkFBYyxtQkFBbUIsQ0FBQztBQUNsQyxlQUFjLG9CQUFvQixDQUFDO0FBQ25DLDREQUFjLDhCQUE4QixDQUFDO0FBQzdDLG9DQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNkJBQTZCLENBQUM7QUFDNUMsZUFBYyw0QkFBNEIsQ0FBQztBQUMzQywrQkFBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGUgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYmFycmVsc2J5LlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL25hdi1pdGVtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UtZGVmaW5pdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UtaGlzdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2Utcm91dGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS5kZWNvcmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXJsLXNuYXBzaG90XCI7XG5leHBvcnQgKiBmcm9tIFwiLi92aXNpdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9hYnN0cmFjdC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9idXN5LW92ZXJsYXkvYnVzeS1vdmVybGF5LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvbGlzdC1wbGFjZS1uYXYvbGlzdC1wbGFjZS1uYXYuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9yb3V0ZS1hbmltYXRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ3VhcmRzL2Fic3RyYWN0LXBsYWNlLmd1YXJkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvY29uc29saWRhdGVkLXBhcmFtLW1hcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ3VhcmRzL2ludGVyYWN0aW9uLmd1YXJkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvbmF2aWdhdGlvbi1zdGF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ3VhcmRzL25vb3AtYXV0aC1ndWFyZC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvcGxhY2UtY29tcG9uZW50LWRlYWN0aXZhdGlvbi1oYW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9mb3JtYXR0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL2pzb24tdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLXNhbml0aXNlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLXNuYXBzaG90XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS92aXNpdC1zYW5pdGlzZXJcIjtcbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLGVBQWMsWUFBWSxDQUFDO0FBQzNCLG1GQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGlDQUFjLGdCQUFnQixDQUFDO0FBQy9CLGdDQUFjLG9CQUFvQixDQUFDO0FBQ25DLDZCQUFjLGlCQUFpQixDQUFDO0FBQ2hDLDRCQUFjLGdCQUFnQixDQUFDO0FBQy9CLHNCQUFjLG1CQUFtQixDQUFDO0FBQ2xDLDRCQUFjLGdCQUFnQixDQUFDO0FBQy9CLDRCQUFjLGdCQUFnQixDQUFDO0FBQy9CLHNCQUFjLFNBQVMsQ0FBQztBQUN4QixpREFBYyxrREFBa0QsQ0FBQztBQUNqRSxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSxvQ0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxzQ0FBYyxzREFBc0QsQ0FBQztBQUNyRSxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSxvRUFBYyw0Q0FBNEMsQ0FBQztBQUMzRCwrQ0FBYyx3RUFBd0UsQ0FBQztBQUN2Rix5Q0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxnQ0FBYywyQkFBMkIsQ0FBQztBQUMxQyw4QkFBYyxrQ0FBa0MsQ0FBQztBQUNqRCxrREFBYywrQ0FBK0MsQ0FBQztBQUM5RCwyQkFBYyxzQkFBc0IsQ0FBQztBQUNyQywwQkFBYyxtQkFBbUIsQ0FBQztBQUNsQyxlQUFjLG9CQUFvQixDQUFDO0FBQ25DLDREQUFjLDhCQUE4QixDQUFDO0FBQzdDLG9DQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNkJBQTZCLENBQUM7QUFDNUMsZUFBYyw0QkFBNEIsQ0FBQztBQUMzQywrQkFBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGUgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYmFycmVsc2J5LlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL25hdi1pdGVtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLWNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UtZGVmaW5pdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UtaGlzdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2Utcm91dGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS5kZWNvcmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXJsLXNuYXBzaG90XCI7XG5leHBvcnQgKiBmcm9tIFwiLi92aXNpdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9hYnN0cmFjdC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9idXN5LW92ZXJsYXkvYnVzeS1vdmVybGF5LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvbGlzdC1wbGFjZS1uYXYvbGlzdC1wbGFjZS1uYXYuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9yb3V0ZS1hbmltYXRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ3VhcmRzL2NvbnNvbGlkYXRlZC1wYXJhbS1tYXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2d1YXJkcy9uYXZpZ2F0aW9uLXN0YXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvbm9vcC1hdXRoLWd1YXJkLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2d1YXJkcy9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2d1YXJkcy9wbGFjZS5ndWFyZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvZm9ybWF0dGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9qc29uLXR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItZGVjb3JhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3NcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1zYW5pdGlzZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1zbmFwc2hvdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvdmlzaXQtc2FuaXRpc2VyXCI7XG4iXX0=