@coolon/angular-ui-powerups 0.0.1

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 (179) hide show
  1. package/README.md +7 -0
  2. package/bundles/coolon-angular-ui-powerups.umd.js +3373 -0
  3. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -0
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -0
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -0
  6. package/coolon-angular-ui-powerups.d.ts +12 -0
  7. package/coolon-angular-ui-powerups.metadata.json +1 -0
  8. package/esm2015/coolon-angular-ui-powerups.js +17 -0
  9. package/esm2015/index.js +6 -0
  10. package/esm2015/lib/angular-ui-powerups.module.js +48 -0
  11. package/esm2015/lib/components/disposable-component.js +14 -0
  12. package/esm2015/lib/components/forms/abstract-input.component.js +173 -0
  13. package/esm2015/lib/components/forms/number-input/number-input.component.js +26 -0
  14. package/esm2015/lib/components/forms/password-input/password-input.component.js +26 -0
  15. package/esm2015/lib/components/forms/select-input/select-input.component.js +60 -0
  16. package/esm2015/lib/components/forms/string-input/string-input.component.js +26 -0
  17. package/esm2015/lib/components/index.js +18 -0
  18. package/esm2015/lib/components/resize-aware.component.js +96 -0
  19. package/esm2015/lib/components/types/bounds.class.js +56 -0
  20. package/esm2015/lib/components/types/dimension.class.js +21 -0
  21. package/esm2015/lib/components/types/point.class.js +36 -0
  22. package/esm2015/lib/directives/command.directive.js +91 -0
  23. package/esm2015/lib/directives/focus-binding.directive.js +163 -0
  24. package/esm2015/lib/directives/index.js +10 -0
  25. package/esm2015/lib/interaction/abstract-activity.js +129 -0
  26. package/esm2015/lib/interaction/activity.js +27 -0
  27. package/esm2015/lib/interaction/alert.js +23 -0
  28. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +144 -0
  29. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
  30. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +169 -0
  31. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +37 -0
  32. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +46 -0
  33. package/esm2015/lib/interaction/confirm.js +17 -0
  34. package/esm2015/lib/interaction/index.js +21 -0
  35. package/esm2015/lib/interaction/interaction-context.js +35 -0
  36. package/esm2015/lib/interaction/interaction.module.js +41 -0
  37. package/esm2015/lib/interaction/result.js +24 -0
  38. package/esm2015/lib/interaction/services/dialog-interaction.service.js +112 -0
  39. package/esm2015/lib/place/abstract-place-component.js +59 -0
  40. package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +44 -0
  41. package/esm2015/lib/place/components/empty-state/empty-state.component.js +28 -0
  42. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +52 -0
  43. package/esm2015/lib/place/guards/leave-place.guard.js +52 -0
  44. package/esm2015/lib/place/guards/place-route.guard.js +74 -0
  45. package/esm2015/lib/place/index.js +25 -0
  46. package/esm2015/lib/place/place-component.js +17 -0
  47. package/esm2015/lib/place/place.decorator.js +67 -0
  48. package/esm2015/lib/place/place.module.js +38 -0
  49. package/esm2015/lib/place/place.service.js +61 -0
  50. package/esm2015/lib/place/route/json-types.js +13 -0
  51. package/esm2015/lib/place/route/parameter-decorators.js +82 -0
  52. package/esm2015/lib/place/route/parameter-definition.class.js +22 -0
  53. package/esm2015/lib/place/route/parameter-sanitiser.js +17 -0
  54. package/esm2015/lib/place/route/parameter-type.js +43 -0
  55. package/esm2015/lib/place/route/route-parameter-bindings.js +282 -0
  56. package/esm2015/lib/place/route/route-parameter-sanitiser.js +148 -0
  57. package/esm2015/public_api.js +10 -0
  58. package/esm5/coolon-angular-ui-powerups.js +17 -0
  59. package/esm5/index.js +6 -0
  60. package/esm5/lib/angular-ui-powerups.module.js +52 -0
  61. package/esm5/lib/components/disposable-component.js +24 -0
  62. package/esm5/lib/components/forms/abstract-input.component.js +218 -0
  63. package/esm5/lib/components/forms/number-input/number-input.component.js +33 -0
  64. package/esm5/lib/components/forms/password-input/password-input.component.js +33 -0
  65. package/esm5/lib/components/forms/select-input/select-input.component.js +67 -0
  66. package/esm5/lib/components/forms/string-input/string-input.component.js +33 -0
  67. package/esm5/lib/components/index.js +18 -0
  68. package/esm5/lib/components/resize-aware.component.js +124 -0
  69. package/esm5/lib/components/types/bounds.class.js +59 -0
  70. package/esm5/lib/components/types/dimension.class.js +19 -0
  71. package/esm5/lib/components/types/point.class.js +43 -0
  72. package/esm5/lib/directives/command.directive.js +107 -0
  73. package/esm5/lib/directives/focus-binding.directive.js +211 -0
  74. package/esm5/lib/directives/index.js +10 -0
  75. package/esm5/lib/interaction/abstract-activity.js +173 -0
  76. package/esm5/lib/interaction/activity.js +27 -0
  77. package/esm5/lib/interaction/alert.js +23 -0
  78. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +181 -0
  79. package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
  80. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +206 -0
  81. package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +42 -0
  82. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +54 -0
  83. package/esm5/lib/interaction/confirm.js +17 -0
  84. package/esm5/lib/interaction/index.js +21 -0
  85. package/esm5/lib/interaction/interaction-context.js +45 -0
  86. package/esm5/lib/interaction/interaction.module.js +45 -0
  87. package/esm5/lib/interaction/result.js +24 -0
  88. package/esm5/lib/interaction/services/dialog-interaction.service.js +138 -0
  89. package/esm5/lib/place/abstract-place-component.js +66 -0
  90. package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +49 -0
  91. package/esm5/lib/place/components/empty-state/empty-state.component.js +29 -0
  92. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +62 -0
  93. package/esm5/lib/place/guards/leave-place.guard.js +57 -0
  94. package/esm5/lib/place/guards/place-route.guard.js +78 -0
  95. package/esm5/lib/place/index.js +25 -0
  96. package/esm5/lib/place/place-component.js +17 -0
  97. package/esm5/lib/place/place.decorator.js +64 -0
  98. package/esm5/lib/place/place.module.js +42 -0
  99. package/esm5/lib/place/place.service.js +75 -0
  100. package/esm5/lib/place/route/json-types.js +13 -0
  101. package/esm5/lib/place/route/parameter-decorators.js +82 -0
  102. package/esm5/lib/place/route/parameter-definition.class.js +22 -0
  103. package/esm5/lib/place/route/parameter-sanitiser.js +17 -0
  104. package/esm5/lib/place/route/parameter-type.js +65 -0
  105. package/esm5/lib/place/route/route-parameter-bindings.js +327 -0
  106. package/esm5/lib/place/route/route-parameter-sanitiser.js +203 -0
  107. package/esm5/public_api.js +10 -0
  108. package/fesm2015/coolon-angular-ui-powerups.js +2687 -0
  109. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -0
  110. package/fesm5/coolon-angular-ui-powerups.js +3164 -0
  111. package/fesm5/coolon-angular-ui-powerups.js.map +1 -0
  112. package/index.d.ts +1 -0
  113. package/lib/angular-ui-powerups.module.d.ts +2 -0
  114. package/lib/components/disposable-component.d.ts +5 -0
  115. package/lib/components/forms/abstract-input.component.d.ts +34 -0
  116. package/lib/components/forms/number-input/number-input.component.d.ts +6 -0
  117. package/lib/components/forms/password-input/password-input.component.d.ts +6 -0
  118. package/lib/components/forms/select-input/select-input.component.d.ts +11 -0
  119. package/lib/components/forms/string-input/string-input.component.d.ts +6 -0
  120. package/lib/components/index.d.ts +13 -0
  121. package/lib/components/resize-aware.component.d.ts +22 -0
  122. package/lib/components/types/bounds.class.d.ts +16 -0
  123. package/lib/components/types/dimension.class.d.ts +5 -0
  124. package/lib/components/types/point.class.d.ts +10 -0
  125. package/lib/directives/command.directive.d.ts +11 -0
  126. package/lib/directives/focus-binding.directive.d.ts +21 -0
  127. package/lib/directives/index.d.ts +5 -0
  128. package/lib/interaction/abstract-activity.d.ts +17 -0
  129. package/lib/interaction/activity.d.ts +11 -0
  130. package/lib/interaction/alert.d.ts +5 -0
  131. package/lib/interaction/components/activity-container/activity-container.component.d.ts +32 -0
  132. package/lib/interaction/components/activity-outlet/activity-outlet-context.d.ts +10 -0
  133. package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +30 -0
  134. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +8 -0
  135. package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +9 -0
  136. package/lib/interaction/confirm.d.ts +5 -0
  137. package/lib/interaction/index.d.ts +16 -0
  138. package/lib/interaction/interaction-context.d.ts +11 -0
  139. package/lib/interaction/interaction.module.d.ts +2 -0
  140. package/lib/interaction/result.d.ts +8 -0
  141. package/lib/interaction/services/dialog-interaction.service.d.ts +14 -0
  142. package/lib/place/abstract-place-component.d.ts +13 -0
  143. package/lib/place/components/busy-overlay/busy-overlay.component.d.ts +8 -0
  144. package/lib/place/components/empty-state/empty-state.component.d.ts +5 -0
  145. package/lib/place/components/place-outlet/place-outlet.component.d.ts +10 -0
  146. package/lib/place/guards/leave-place.guard.d.ts +10 -0
  147. package/lib/place/guards/place-route.guard.d.ts +9 -0
  148. package/lib/place/index.d.ts +20 -0
  149. package/lib/place/place-component.d.ts +5 -0
  150. package/lib/place/place.decorator.d.ts +18 -0
  151. package/lib/place/place.module.d.ts +2 -0
  152. package/lib/place/place.service.d.ts +8 -0
  153. package/lib/place/route/json-types.d.ts +7 -0
  154. package/lib/place/route/parameter-decorators.d.ts +9 -0
  155. package/lib/place/route/parameter-definition.class.d.ts +10 -0
  156. package/lib/place/route/parameter-sanitiser.d.ts +3 -0
  157. package/lib/place/route/parameter-type.d.ts +16 -0
  158. package/lib/place/route/route-parameter-bindings.d.ts +18 -0
  159. package/lib/place/route/route-parameter-sanitiser.d.ts +15 -0
  160. package/package.json +31 -0
  161. package/public_api.d.ts +5 -0
  162. package/schematics/collection.json +14 -0
  163. package/schematics/ng-add/index.d.ts +2 -0
  164. package/schematics/ng-add/index.js +12 -0
  165. package/schematics/ng-add/index.js.map +1 -0
  166. package/schematics/place-routes/index.d.ts +3 -0
  167. package/schematics/place-routes/index.js +92 -0
  168. package/schematics/place-routes/index.js.map +1 -0
  169. package/schematics/place-routes/place-def.d.ts +31 -0
  170. package/schematics/place-routes/place-def.js +75 -0
  171. package/schematics/place-routes/place-def.js.map +1 -0
  172. package/schematics/place-routes/scanner.d.ts +26 -0
  173. package/schematics/place-routes/scanner.js +124 -0
  174. package/schematics/place-routes/scanner.js.map +1 -0
  175. package/schematics/place-routes/schema.d.ts +7 -0
  176. package/schematics/place-routes/schema.js +3 -0
  177. package/schematics/place-routes/schema.js.map +1 -0
  178. package/schematics/place-routes/schema.json +17 -0
  179. package/schematics/place-routes/templates/apps/__project__/src/app/place-routes.ts.template +31 -0
@@ -0,0 +1,327 @@
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 { ActivatedRoute, Router } from '@angular/router';
7
+ import { Binding, Dsl, GarbageCollector, MutableValueModel, Trace, TransactionObserver } from '@coolon/pectin';
8
+ import { Klass } from '@coolon/typescript-utilities';
9
+ /**
10
+ * @record
11
+ * @template T
12
+ */
13
+ function ResolvedParameter() { }
14
+ if (false) {
15
+ /** @type {?} */
16
+ ResolvedParameter.prototype.parameter;
17
+ /** @type {?} */
18
+ ResolvedParameter.prototype.resolvedValue;
19
+ }
20
+ var ResolvedParameters = /** @class */ (function () {
21
+ function ResolvedParameters(parameters) {
22
+ this.parameters = parameters;
23
+ }
24
+ /**
25
+ * @template T
26
+ * @param {?} parameter
27
+ * @return {?}
28
+ */
29
+ ResolvedParameters.prototype.get = /**
30
+ * @template T
31
+ * @param {?} parameter
32
+ * @return {?}
33
+ */
34
+ function (parameter) {
35
+ /** @type {?} */
36
+ var resolved = this.parameters.find((/**
37
+ * @param {?} p
38
+ * @return {?}
39
+ */
40
+ function (p) { return p.parameter === parameter; }));
41
+ return resolved ? resolved.resolvedValue : null;
42
+ };
43
+ /**
44
+ * @template T
45
+ * @param {?} parameter
46
+ * @param {?} value
47
+ * @return {?}
48
+ */
49
+ ResolvedParameters.prototype.replace = /**
50
+ * @template T
51
+ * @param {?} parameter
52
+ * @param {?} value
53
+ * @return {?}
54
+ */
55
+ function (parameter, value) {
56
+ return new ResolvedParameters(this.parameters.filter((/**
57
+ * @param {?} p
58
+ * @return {?}
59
+ */
60
+ function (p) { return p.parameter !== parameter; })).concat({
61
+ parameter: parameter,
62
+ resolvedValue: value
63
+ }));
64
+ };
65
+ /**
66
+ * @protected
67
+ * @return {?}
68
+ */
69
+ ResolvedParameters.prototype.getFormattedRouteId = /**
70
+ * @protected
71
+ * @return {?}
72
+ */
73
+ function () {
74
+ /** @type {?} */
75
+ var routeIdParam = this.getRouteIdParam();
76
+ return routeIdParam ? routeIdParam.parameter.type.format(routeIdParam.resolvedValue) : null;
77
+ };
78
+ /**
79
+ * @private
80
+ * @return {?}
81
+ */
82
+ ResolvedParameters.prototype.getRouteIdParam = /**
83
+ * @private
84
+ * @return {?}
85
+ */
86
+ function () {
87
+ return this.parameters.find((/**
88
+ * @param {?} p
89
+ * @return {?}
90
+ */
91
+ function (p) { return p.parameter.isRouteId; }));
92
+ };
93
+ /**
94
+ * @protected
95
+ * @return {?}
96
+ */
97
+ ResolvedParameters.prototype.getFormattedParameters = /**
98
+ * @protected
99
+ * @return {?}
100
+ */
101
+ function () {
102
+ /** @type {?} */
103
+ var params = {};
104
+ /** @type {?} */
105
+ var routeIdParam = this.parameters.filter((/**
106
+ * @param {?} p
107
+ * @return {?}
108
+ */
109
+ function (p) { return !p.parameter.isRouteId; })).forEach((/**
110
+ * @param {?} p
111
+ * @return {?}
112
+ */
113
+ function (p) {
114
+ params[p.parameter.name] = p.parameter.type.format(p.resolvedValue);
115
+ }));
116
+ return params;
117
+ };
118
+ /**
119
+ * @return {?}
120
+ */
121
+ ResolvedParameters.prototype.hasRouteId = /**
122
+ * @return {?}
123
+ */
124
+ function () {
125
+ return !!this.getRouteIdParam();
126
+ };
127
+ /**
128
+ * @param {?} previous
129
+ * @param {?} router
130
+ * @param {?} activatedRoute
131
+ * @return {?}
132
+ */
133
+ ResolvedParameters.prototype.redirect = /**
134
+ * @param {?} previous
135
+ * @param {?} router
136
+ * @param {?} activatedRoute
137
+ * @return {?}
138
+ */
139
+ function (previous, router, activatedRoute) {
140
+ /** @type {?} */
141
+ var routeId = this.getFormattedRouteId();
142
+ /** @type {?} */
143
+ var relativePath = !!previous.hasRouteId() ? '..' : '.';
144
+ /** @type {?} */
145
+ var path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];
146
+ router.navigate(path, {
147
+ relativeTo: activatedRoute,
148
+ });
149
+ };
150
+ tslib_1.__decorate([
151
+ Trace(),
152
+ tslib_1.__metadata("design:type", Function),
153
+ tslib_1.__metadata("design:paramtypes", []),
154
+ tslib_1.__metadata("design:returntype", void 0)
155
+ ], ResolvedParameters.prototype, "getFormattedRouteId", null);
156
+ tslib_1.__decorate([
157
+ Trace(),
158
+ tslib_1.__metadata("design:type", Function),
159
+ tslib_1.__metadata("design:paramtypes", []),
160
+ tslib_1.__metadata("design:returntype", void 0)
161
+ ], ResolvedParameters.prototype, "getFormattedParameters", null);
162
+ tslib_1.__decorate([
163
+ Trace(),
164
+ tslib_1.__metadata("design:type", Function),
165
+ tslib_1.__metadata("design:paramtypes", [ResolvedParameters, Router, ActivatedRoute]),
166
+ tslib_1.__metadata("design:returntype", void 0)
167
+ ], ResolvedParameters.prototype, "redirect", null);
168
+ return ResolvedParameters;
169
+ }());
170
+ if (false) {
171
+ /** @type {?} */
172
+ ResolvedParameters.prototype.parameters;
173
+ }
174
+ var RouteParameterBindings = /** @class */ (function (_super) {
175
+ tslib_1.__extends(RouteParameterBindings, _super);
176
+ function RouteParameterBindings(component, router, activatedRoute) {
177
+ var _this = _super.call(this) || this;
178
+ _this.component = component;
179
+ _this.router = router;
180
+ _this.activatedRoute = activatedRoute;
181
+ _this._incomingRouteChange = new MutableValueModel(false);
182
+ _this.resolvedParameters = new MutableValueModel();
183
+ var _a = Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe;
184
+ _this.txo = new TransactionObserver(); //.onEvent(e => console.log(e.toString()));
185
+ //.onEvent(e => console.log(e.toString()));
186
+ /** @type {?} */
187
+ var routeParameterDefs = Klass.get(component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);
188
+ routeParameterDefs.forEach((/**
189
+ * @param {?} parameter
190
+ * @return {?}
191
+ */
192
+ function (parameter) { return _this.installBinding(parameter); }));
193
+ /** @type {?} */
194
+ var incomingResolvedRouteParameters = observe.valuesFrom(activatedRoute.paramMap)
195
+ .last()
196
+ .map((/**
197
+ * @param {?} params
198
+ * @return {?}
199
+ */
200
+ function (params) {
201
+ /** @type {?} */
202
+ var result = [];
203
+ routeParameterDefs.forEach((/**
204
+ * @param {?} parameter
205
+ * @return {?}
206
+ */
207
+ function (parameter) {
208
+ result.push({ parameter: parameter, resolvedValue: parameter.type.parse(params.get(parameter.name)) });
209
+ }));
210
+ return new ResolvedParameters(result);
211
+ }));
212
+ incomingResolvedRouteParameters.subscribe((/**
213
+ * @param {?} resolvedParameters
214
+ * @return {?}
215
+ */
216
+ function (resolvedParameters) {
217
+ _this._incomingRouteChange.value = true;
218
+ _this.resolvedParameters.value = resolvedParameters;
219
+ _this._incomingRouteChange.value = false;
220
+ }));
221
+ when.valueOf(_this.resolvedParameters).changes((/**
222
+ * @param {?} params
223
+ * @param {?} previous
224
+ * @return {?}
225
+ */
226
+ function (params, previous) {
227
+ params.redirect(previous, router, activatedRoute);
228
+ }), { unless: _this.incomingRouteChange });
229
+ _this.txo.observe('incomingResolvedRouteParameters', incomingResolvedRouteParameters);
230
+ _this.txo.observe('this.routeIsChanging', _this.incomingRouteChange);
231
+ return _this;
232
+ }
233
+ Object.defineProperty(RouteParameterBindings.prototype, "incomingRouteChange", {
234
+ get: /**
235
+ * @return {?}
236
+ */
237
+ function () {
238
+ return this._incomingRouteChange.readonly;
239
+ },
240
+ enumerable: true,
241
+ configurable: true
242
+ });
243
+ /**
244
+ * @protected
245
+ * @template T
246
+ * @param {?} parameter
247
+ * @return {?}
248
+ */
249
+ RouteParameterBindings.prototype.installBinding = /**
250
+ * @protected
251
+ * @template T
252
+ * @param {?} parameter
253
+ * @return {?}
254
+ */
255
+ function (parameter) {
256
+ /** @type {?} */
257
+ var model = this.getModelFor(parameter);
258
+ this.txo.observe(parameter.propertyName, model);
259
+ this.registerDisposable(new Binding(this.resolvedParameters, model, {
260
+ toRight: /**
261
+ * @param {?} parameters
262
+ * @return {?}
263
+ */
264
+ function (parameters) {
265
+ return parameters.get(parameter);
266
+ },
267
+ toLeft: /**
268
+ * @param {?} value
269
+ * @param {?=} currentParameters
270
+ * @return {?}
271
+ */
272
+ function (value, currentParameters) {
273
+ return currentParameters.replace(parameter, value);
274
+ }
275
+ }));
276
+ };
277
+ /**
278
+ * @private
279
+ * @template T
280
+ * @param {?} parameter
281
+ * @return {?}
282
+ */
283
+ RouteParameterBindings.prototype.getModelFor = /**
284
+ * @private
285
+ * @template T
286
+ * @param {?} parameter
287
+ * @return {?}
288
+ */
289
+ function (parameter) {
290
+ return this.component[parameter.propertyName];
291
+ };
292
+ return RouteParameterBindings;
293
+ }(GarbageCollector));
294
+ export { RouteParameterBindings };
295
+ if (false) {
296
+ /** @type {?} */
297
+ RouteParameterBindings.prototype._incomingRouteChange;
298
+ /**
299
+ * @type {?}
300
+ * @private
301
+ */
302
+ RouteParameterBindings.prototype.txo;
303
+ /**
304
+ * @type {?}
305
+ * @private
306
+ */
307
+ RouteParameterBindings.prototype.resolvedParameters;
308
+ /**
309
+ * @type {?}
310
+ * @private
311
+ */
312
+ RouteParameterBindings.prototype.component;
313
+ /**
314
+ * @type {?}
315
+ * @private
316
+ */
317
+ RouteParameterBindings.prototype.router;
318
+ /**
319
+ * @type {?}
320
+ * @private
321
+ */
322
+ RouteParameterBindings.prototype.activatedRoute;
323
+ }
324
+ (function (RouteParameterBindings) {
325
+ RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
326
+ })(RouteParameterBindings || (RouteParameterBindings = {}));
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLE9BQU8sRUFDUCxHQUFHLEVBQ0gsZ0JBQWdCLEVBRWhCLGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUlyRCxnQ0FHQzs7O0lBRkMsc0NBQWtDOztJQUNsQywwQ0FBaUI7O0FBR25CO0lBQ0UsNEJBQXFCLFVBQW9DO1FBQXBDLGVBQVUsR0FBVixVQUFVLENBQTBCO0lBQ3pELENBQUM7Ozs7OztJQUVELGdDQUFHOzs7OztJQUFILFVBQU8sU0FBaUM7O1lBQ2hDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUF6QixDQUF5QixFQUFDO1FBQ3JFLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEQsQ0FBQzs7Ozs7OztJQUVELG9DQUFPOzs7Ozs7SUFBUCxVQUFXLFNBQWlDLEVBQUUsS0FBUTtRQUNwRCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBekIsQ0FBeUIsRUFBQyxDQUFDLE1BQU0s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QyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0gsNkJBQUM7QUFBRCxDQUFDLEFBN0RELENBQTRDLGdCQUFnQixHQTZEM0Q7Ozs7SUEzREMsc0RBQTZFOzs7OztJQUU3RSxxQ0FBaUM7Ozs7O0lBRWpDLG9EQUFrRjs7Ozs7SUFFdEUsMkNBQStCOzs7OztJQUFFLHdDQUErQjs7Ozs7SUFBRSxnREFBK0M7O0FBdUQvSCxXQUFpQixzQkFBc0I7SUFDeEIsK0NBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDO0FBQzFFLENBQUMsRUFGZ0Isc0JBQXNCLEtBQXRCLHNCQUFzQixRQUV0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQmluZGluZyxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBNdXRhYmxlSGFzVmFsdWUsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBUcmFjZSxcbiAgVHJhbnNhY3Rpb25PYnNlcnZlclxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBLbGFzcyB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LXBsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5cbmludGVyZmFjZSBSZXNvbHZlZFBhcmFtZXRlcjxUPiB7XG4gIHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPjtcbiAgcmVzb2x2ZWRWYWx1ZTogVDtcbn1cblxuY2xhc3MgUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGFyYW1ldGVyczogUmVzb2x2ZWRQYXJhbWV0ZXI8YW55PltdKSB7XG4gIH1cblxuICBnZXQ8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KTogVCB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB0aGlzLnBhcmFtZXRlcnMuZmluZChwID0+IHAucGFyYW1ldGVyID09PSBwYXJhbWV0ZXIpO1xuICAgIHJldHVybiByZXNvbHZlZCA/IHJlc29sdmVkLnJlc29sdmVkVmFsdWUgOiBudWxsO1xuICB9XG5cbiAgcmVwbGFjZTxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VD4sIHZhbHVlOiBUKTogUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgICByZXR1cm4gbmV3IFJlc29sdmVkUGFyYW1ldGVycyh0aGlzLnBhcmFtZXRlcnMuZmlsdGVyKHAgPT4gcC5wYXJhbWV0ZXIgIT09IHBhcmFtZXRlcikuY29uY2F0KHtcbiAgICAgIHBhcmFtZXRlcixcbiAgICAgIHJlc29sdmVkVmFsdWU6IHZhbHVlXG4gICAgfSkpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgcHJvdGVjdGVkIGdldEZvcm1hdHRlZFJvdXRlSWQoKSB7XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtID0gdGhpcy5nZXRSb3V0ZUlkUGFyYW0oKTtcbiAgICByZXR1cm4gcm91dGVJZFBhcmFtID8gcm91dGVJZFBhcmFtLnBhcmFtZXRlci50eXBlLmZvcm1hdChyb3V0ZUlkUGFyYW0ucmVzb2x2ZWRWYWx1ZSkgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3V0ZUlkUGFyYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycy5maW5kKHAgPT4gcC5wYXJhbWV0ZXIuaXNSb3V0ZUlkKTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIHByb3RlY3RlZCBnZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbSA9IHRoaXMucGFyYW1ldGVycy5maWx0ZXIocCA9PiAhcC5wYXJhbWV0ZXIuaXNSb3V0ZUlkKS5mb3JFYWNoKHAgPT4ge1xuICAgICAgcGFyYW1zW3AucGFyYW1ldGVyLm5hbWVdID0gcC5wYXJhbWV0ZXIudHlwZS5mb3JtYXQocC5yZXNvbHZlZFZhbHVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgaGFzUm91dGVJZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFJvdXRlSWRQYXJhbSgpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgcmVkaXJlY3QocHJldmlvdXM6IFJlc29sdmVkUGFyYW1ldGVycywgcm91dGVyOiBSb3V0ZXIsIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIGNvbnN0IHJvdXRlSWQgPSB0aGlzLmdldEZvcm1hdHRlZFJvdXRlSWQoKTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSAhIXByZXZpb3VzLmhhc1JvdXRlSWQoKSA/ICcuLicgOiAnLic7XG4gICAgY29uc3QgcGF0aCA9IHJvdXRlSWQgPyBbcmVsYXRpdmVQYXRoLCByb3V0ZUlkLCB0aGlzLmdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKV0gOiBbcmVsYXRpdmVQYXRoLCB0aGlzLmdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKV07XG4gICAgcm91dGVyLm5hdmlnYXRlKHBhdGgsIHtcbiAgICAgIHJlbGF0aXZlVG86IGFjdGl2YXRlZFJvdXRlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSb3V0ZVBhcmFtZXRlckJpbmRpbmdzIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHVibGljIHJlYWRvbmx5IF9pbmNvbWluZ1JvdXRlQ2hhbmdlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIHR4bzogVHJhbnNhY3Rpb25PYnNlcnZlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVkUGFyYW1ldGVycyA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxSZXNvbHZlZFBhcmFtZXRlcnM+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb21wb25lbnQ6IGFueSwgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUgfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLnR4byA9IG5ldyBUcmFuc2FjdGlvbk9ic2VydmVyKCk7Ly8ub25FdmVudChlID0+IGNvbnNvbGUubG9nKGUudG9TdHJpbmcoKSkpO1xuXG4gICAgY29uc3Qgcm91dGVQYXJhbWV0ZXJEZWZzID0gS2xhc3MuZ2V0KGNvbXBvbmVudCkuZ2V0TWV0YWRhdGFMaXN0KFJvdXRlUGFyYW1ldGVyQmluZGluZ3MuUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZKTtcbiAgICByb3V0ZVBhcmFtZXRlckRlZnMuZm9yRWFjaChwYXJhbWV0ZXIgPT4gdGhpcy5pbnN0YWxsQmluZGluZyhwYXJhbWV0ZXIpKTtcblxuICAgIGNvbnN0IGluY29taW5nUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlcnMgPSBvYnNlcnZlLnZhbHVlc0Zyb20oYWN0aXZhdGVkUm91dGUucGFyYW1NYXApXG4gICAgICAubGFzdCgpXG4gICAgICAubWFwKHBhcmFtcyA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogUmVzb2x2ZWRQYXJhbWV0ZXI8YW55PltdID0gW107XG4gICAgICAgIHJvdXRlUGFyYW1ldGVyRGVmcy5mb3JFYWNoKHBhcmFtZXRlciA9PiB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goeyBwYXJhbWV0ZXIsIHJlc29sdmVkVmFsdWU6IHBhcmFtZXRlci50eXBlLnBhcnNlKHBhcmFtcy5nZXQocGFyYW1ldGVyLm5hbWUpKSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgUmVzb2x2ZWRQYXJhbWV0ZXJzKHJlc3VsdCk7XG4gICAgICB9KTtcblxuICAgIGluY29taW5nUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlcnMuc3Vic2NyaWJlKHJlc29sdmVkUGFyYW1ldGVycyA9PiB7XG4gICAgICB0aGlzLl9pbmNvbWluZ1JvdXRlQ2hhbmdlLnZhbHVlID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzb2x2ZWRQYXJhbWV0ZXJzLnZhbHVlID0gcmVzb2x2ZWRQYXJhbWV0ZXJzO1xuICAgICAgdGhpcy5faW5jb21pbmdSb3V0ZUNoYW5nZS52YWx1ZSA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgd2hlbi52YWx1ZU9mKHRoaXMucmVzb2x2ZWRQYXJhbWV0ZXJzKS5jaGFuZ2VzKChwYXJhbXMsIHByZXZpb3VzKSA9PiB7XG4gICAgICBwYXJhbXMucmVkaXJlY3QocHJldmlvdXMsIHJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgIH0sIHsgdW5sZXNzOiB0aGlzLmluY29taW5nUm91dGVDaGFuZ2UgfSk7XG5cbiAgICB0aGlzLnR4by5vYnNlcnZlKCdpbmNvbWluZ1Jlc29sdmVkUm91dGVQYXJhbWV0ZXJzJywgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycyk7XG4gICAgdGhpcy50eG8ub2JzZXJ2ZSgndGhpcy5yb3V0ZUlzQ2hhbmdpbmcnLCB0aGlzLmluY29taW5nUm91dGVDaGFuZ2UpO1xuICB9XG5cbiAgZ2V0IGluY29taW5nUm91dGVDaGFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luY29taW5nUm91dGVDaGFuZ2UucmVhZG9ubHk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEJpbmRpbmc8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmdldE1vZGVsRm9yKHBhcmFtZXRlcik7XG4gICAgdGhpcy50eG8ub2JzZXJ2ZShwYXJhbWV0ZXIucHJvcGVydHlOYW1lLCBtb2RlbCk7XG4gICAgdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEJpbmRpbmcodGhpcy5yZXNvbHZlZFBhcmFtZXRlcnMsIG1vZGVsLCB7XG4gICAgICB0b1JpZ2h0KHBhcmFtZXRlcnM6IFJlc29sdmVkUGFyYW1ldGVycyk6IFQge1xuICAgICAgICByZXR1cm4gcGFyYW1ldGVycy5nZXQocGFyYW1ldGVyKTtcbiAgICAgIH0sXG4gICAgICB0b0xlZnQodmFsdWU6IFQsIGN1cnJlbnRQYXJhbWV0ZXJzPzogUmVzb2x2ZWRQYXJhbWV0ZXJzKTogUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQYXJhbWV0ZXJzLnJlcGxhY2UocGFyYW1ldGVyLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cblxuICBwcml2YXRlIGdldE1vZGVsRm9yPFQ+KHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPik6IE11dGFibGVIYXNWYWx1ZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50W3BhcmFtZXRlci5wcm9wZXJ0eU5hbWVdO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyB7XG4gIGV4cG9ydCBjb25zdCBST1VURV9QQVJBTUVURVJfTElTVF9LRVkgPSBTeW1ib2woJ3BsYWNlOnJvdXRlOnBhcmFtZXRlcnMnKTtcbn1cbiJdfQ==
@@ -0,0 +1,203 @@
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 { assert, Trace } from '@coolon/pectin';
7
+ import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
8
+ var RouteParameterSanitiser = /** @class */ (function () {
9
+ function RouteParameterSanitiser(parameterDefs, injector) {
10
+ this.parameterDefs = parameterDefs;
11
+ this.injector = injector;
12
+ this.sanitisedParameters = [];
13
+ this.routeParameter = parameterDefs.find((/**
14
+ * @param {?} p
15
+ * @return {?}
16
+ */
17
+ function (p) { return p.isRouteId; }));
18
+ this.queryParameters = parameterDefs.filter((/**
19
+ * @param {?} p
20
+ * @return {?}
21
+ */
22
+ function (p) { return !p.isRouteId; }));
23
+ }
24
+ /**
25
+ * @param {?} snapshot
26
+ * @return {?}
27
+ */
28
+ RouteParameterSanitiser.prototype.sanitise = /**
29
+ * @param {?} snapshot
30
+ * @return {?}
31
+ */
32
+ function (snapshot) {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
34
+ var e_1, _a, routeOk, _b, _c, param, e_1_1;
35
+ return tslib_1.__generator(this, function (_d) {
36
+ switch (_d.label) {
37
+ case 0:
38
+ if (!this.routeParameter) return [3 /*break*/, 2];
39
+ return [4 /*yield*/, this.sanitiseParameter(this.routeParameter, snapshot.paramMap.get(this.routeParameter.name))];
40
+ case 1:
41
+ routeOk = _d.sent();
42
+ if (!routeOk) {
43
+ // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the
44
+ // context of the route id.
45
+ return [2 /*return*/, false];
46
+ }
47
+ _d.label = 2;
48
+ case 2:
49
+ _d.trys.push([2, 7, 8, 9]);
50
+ _b = tslib_1.__values(this.queryParameters), _c = _b.next();
51
+ _d.label = 3;
52
+ case 3:
53
+ if (!!_c.done) return [3 /*break*/, 6];
54
+ param = _c.value;
55
+ return [4 /*yield*/, this.sanitiseParameter(param, snapshot.queryParamMap.get(param.name))];
56
+ case 4:
57
+ _d.sent();
58
+ _d.label = 5;
59
+ case 5:
60
+ _c = _b.next();
61
+ return [3 /*break*/, 3];
62
+ case 6: return [3 /*break*/, 9];
63
+ case 7:
64
+ e_1_1 = _d.sent();
65
+ e_1 = { error: e_1_1 };
66
+ return [3 /*break*/, 9];
67
+ case 8:
68
+ try {
69
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
70
+ }
71
+ finally { if (e_1) throw e_1.error; }
72
+ return [7 /*endfinally*/];
73
+ case 9: return [2 /*return*/, this.sanitisedParameters.length === 0];
74
+ }
75
+ });
76
+ });
77
+ };
78
+ /**
79
+ * @template T
80
+ * @param {?} def
81
+ * @param {?} formattedInitialValue
82
+ * @return {?}
83
+ */
84
+ RouteParameterSanitiser.prototype.sanitiseParameter = /**
85
+ * @template T
86
+ * @param {?} def
87
+ * @param {?} formattedInitialValue
88
+ * @return {?}
89
+ */
90
+ function (def, formattedInitialValue) {
91
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
92
+ var sanitiser, initialValue, sanitisedValue;
93
+ return tslib_1.__generator(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0:
96
+ if (!def) return [3 /*break*/, 2];
97
+ sanitiser = this.getSanitiser(def);
98
+ if (!sanitiser) return [3 /*break*/, 2];
99
+ initialValue = def.type.parse(formattedInitialValue);
100
+ return [4 /*yield*/, sanitiser.sanitise(initialValue)];
101
+ case 1:
102
+ sanitisedValue = _a.sent();
103
+ if (initialValue !== sanitisedValue) {
104
+ this.sanitisedParameters.push({ def: def, value: def.type.format(sanitisedValue) });
105
+ return [2 /*return*/, false];
106
+ }
107
+ _a.label = 2;
108
+ case 2: return [2 /*return*/, true];
109
+ }
110
+ });
111
+ });
112
+ };
113
+ /**
114
+ * @param {?} router
115
+ * @return {?}
116
+ */
117
+ RouteParameterSanitiser.prototype.redirect = /**
118
+ * @param {?} router
119
+ * @return {?}
120
+ */
121
+ function (router) {
122
+ var _this = this;
123
+ assert.isTruthy(this.sanitisedParameters.length !== 0);
124
+ /** @type {?} */
125
+ var sanitisedRouteId = this.sanitisedParameters.find((/**
126
+ * @param {?} s
127
+ * @return {?}
128
+ */
129
+ function (s) { return s.def === _this.routeParameter; }));
130
+ if (sanitisedRouteId) {
131
+ return router.navigate(['..', sanitisedRouteId.value]);
132
+ }
133
+ else {
134
+ /** @type {?} */
135
+ var queryParams = this.sanitisedParameters.filter((/**
136
+ * @param {?} s
137
+ * @return {?}
138
+ */
139
+ function (s) { return s.def !== _this.routeParameter; }))
140
+ .reduce((/**
141
+ * @param {?} params
142
+ * @param {?} item
143
+ * @return {?}
144
+ */
145
+ function (params, item) {
146
+ var _a;
147
+ return (tslib_1.__assign({}, params, (_a = {}, _a[item.def.name] = item.value, _a)));
148
+ }), {});
149
+ return router.navigate(['.', queryParams]);
150
+ }
151
+ };
152
+ /**
153
+ * @private
154
+ * @template T
155
+ * @param {?} def
156
+ * @return {?}
157
+ */
158
+ RouteParameterSanitiser.prototype.getSanitiser = /**
159
+ * @private
160
+ * @template T
161
+ * @param {?} def
162
+ * @return {?}
163
+ */
164
+ function (def) {
165
+ return def.sanitiser ? this.injector.get(def.sanitiser, new def.sanitiser()) : null;
166
+ };
167
+ tslib_1.__decorate([
168
+ Trace(),
169
+ tslib_1.__metadata("design:type", Function),
170
+ tslib_1.__metadata("design:paramtypes", [Object, String]),
171
+ tslib_1.__metadata("design:returntype", Promise)
172
+ ], RouteParameterSanitiser.prototype, "sanitiseParameter", null);
173
+ tslib_1.__decorate([
174
+ Memoize(),
175
+ tslib_1.__metadata("design:type", Function),
176
+ tslib_1.__metadata("design:paramtypes", [Object]),
177
+ tslib_1.__metadata("design:returntype", Object)
178
+ ], RouteParameterSanitiser.prototype, "getSanitiser", null);
179
+ return RouteParameterSanitiser;
180
+ }());
181
+ export { RouteParameterSanitiser };
182
+ if (false) {
183
+ /**
184
+ * @type {?}
185
+ * @private
186
+ */
187
+ RouteParameterSanitiser.prototype.routeParameter;
188
+ /**
189
+ * @type {?}
190
+ * @private
191
+ */
192
+ RouteParameterSanitiser.prototype.queryParameters;
193
+ /**
194
+ * @type {?}
195
+ * @private
196
+ */
197
+ RouteParameterSanitiser.prototype.sanitisedParameters;
198
+ /** @type {?} */
199
+ RouteParameterSanitiser.prototype.parameterDefs;
200
+ /** @type {?} */
201
+ RouteParameterSanitiser.prototype.injector;
202
+ }
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFJM0U7SUFPRSxpQ0FBcUIsYUFBeUMsRUFBVyxRQUFrQjtRQUF0RSxrQkFBYSxHQUFiLGFBQWEsQ0FBNEI7UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRjFFLHdCQUFtQixHQUF1RCxFQUFFLENBQUM7UUFHNUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsSUFBSTs7OztRQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLFNBQVMsRUFBWCxDQUFXLEVBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQyxNQUFNOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQVosQ0FBWSxFQUFDLENBQUM7SUFDakUsQ0FBQzs7Ozs7SUFFSywwQ0FBUTs7OztJQUFkLFVBQWUsUUFBZ0M7Ozs7Ozs2QkFDekMsSUFBSSxDQUFDLGNBQWMsRUFBbkIsd0JBQW1CO3dCQUNMLHFCQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQTs7d0JBQTVHLE9BQU8sR0FBRyxTQUFrRzt3QkFDbEgsSUFBSSxDQUFDLE9BQU8sRUFBRTs0QkFDWix1R0FBdUc7NEJBQ3ZHLDJCQUEyQjs0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QUEwRDs7Ozs7SUFDMUQsa0RBQTZEOzs7OztJQUU3RCxzREFBOEY7O0lBRWxGLGdEQUFrRDs7SUFBRSwyQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGFzc2VydCwgVHJhY2UgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBNZW1vaXplIH0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yL2Rpc3Qvc3JjJztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcbmltcG9ydCB7IFBhcmFtZXRlclNhbml0aXNlciB9IGZyb20gJy4vcGFyYW1ldGVyLXNhbml0aXNlcic7XG5cbmV4cG9ydCBjbGFzcyBSb3V0ZVBhcmFtZXRlclNhbml0aXNlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZVBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5UGFyYW1ldGVyczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGlzZWRQYXJhbWV0ZXJzOiB7IGRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+LCB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmFtZXRlckRlZnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLCByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLnJvdXRlUGFyYW1ldGVyID0gcGFyYW1ldGVyRGVmcy5maW5kKHAgPT4gcC5pc1JvdXRlSWQpO1xuICAgIHRoaXMucXVlcnlQYXJhbWV0ZXJzID0gcGFyYW1ldGVyRGVmcy5maWx0ZXIocCA9PiAhcC5pc1JvdXRlSWQpO1xuICB9XG5cbiAgYXN5bmMgc2FuaXRpc2Uoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5yb3V0ZVBhcmFtZXRlcikge1xuICAgICAgY29uc3Qgcm91dGVPayA9IGF3YWl0IHRoaXMuc2FuaXRpc2VQYXJhbWV0ZXIodGhpcy5yb3V0ZVBhcmFtZXRlciwgc25hcHNob3QucGFyYW1NYXAuZ2V0KHRoaXMucm91dGVQYXJhbWV0ZXIubmFtZSkpO1xuICAgICAgaWYgKCFyb3V0ZU9rKSB7XG4gICAgICAgIC8vIGlmIHRoZSByb3V0ZSBpZCBpc24ndCBvayB3ZSByZWRpcmVjdCBpbW1lZGlhdGVseSBhcyB0aGUgcXVlcnkgcGFyYW1zIG1heSBuZWVkIHRvIGJlIHNhbml0aXNlZCBpbiB0aGVcbiAgICAgICAgLy8gY29udGV4dCBvZiB0aGUgcm91dGUgaWQuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBwYXJhbSBvZiB0aGlzLnF1ZXJ5UGFyYW1ldGVycykge1xuICAgICAgYXdhaXQgdGhpcy5zYW5pdGlzZVBhcmFtZXRlcihwYXJhbSwgc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQocGFyYW0ubmFtZSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zYW5pdGlzZWRQYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIGFzeW5jIHNhbml0aXNlUGFyYW1ldGVyPFQ+KGRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiwgZm9ybWF0dGVkSW5pdGlhbFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoZGVmKSB7XG4gICAgICBjb25zdCBzYW5pdGlzZXIgPSB0aGlzLmdldFNhbml0aXNlcihkZWYpO1xuICAgICAgaWYgKHNhbml0aXNlcikge1xuICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSBkZWYudHlwZS5wYXJzZShmb3JtYXR0ZWRJbml0aWFsVmFsdWUpO1xuICAgICAgICBjb25zdCBzYW5pdGlzZWRWYWx1ZSA9IGF3YWl0IHNhbml0aXNlci5zYW5pdGlzZShpbml0aWFsVmFsdWUpO1xuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlICE9PSBzYW5pdGlzZWRWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuc2FuaXRpc2VkUGFyYW1ldGVycy5wdXNoKHsgZGVmLCB2YWx1ZTogZGVmLnR5cGUuZm9ybWF0KHNhbml0aXNlZFZhbHVlKSB9KTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZWRpcmVjdChyb3V0ZXI6IFJvdXRlcikge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLnNhbml0aXNlZFBhcmFtZXRlcnMubGVuZ3RoICE9PSAwKTtcbiAgICBjb25zdCBzYW5pdGlzZWRSb3V0ZUlkID0gdGhpcy5zYW5pdGlzZWRQYXJhbWV0ZXJzLmZpbmQocyA9PiBzLmRlZiA9PT0gdGhpcy5yb3V0ZVBhcmFtZXRlcik7XG4gICAgaWYgKHNhbml0aXNlZFJvdXRlSWQpIHtcbiAgICAgIHJldHVybiByb3V0ZXIubmF2aWdhdGUoWycuLicsIHNhbml0aXNlZFJvdXRlSWQudmFsdWVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnNhbml0aXNlZFBhcmFtZXRlcnMuZmlsdGVyKHMgPT4gcy5kZWYgIT09IHRoaXMucm91dGVQYXJhbWV0ZXIpXG4gICAgICAgIC5yZWR1Y2UoKHBhcmFtcywgaXRlbSkgPT4gKHsgLi4ucGFyYW1zLCBbaXRlbS5kZWYubmFtZV06IGl0ZW0udmFsdWUgfSksIHt9KTtcbiAgICAgIHJldHVybiByb3V0ZXIubmF2aWdhdGUoWycuJywgcXVlcnlQYXJhbXNdKTtcbiAgICB9XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIHByaXZhdGUgZ2V0U2FuaXRpc2VyPFQ+KGRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPik6IFBhcmFtZXRlclNhbml0aXNlcjxUPiB7XG4gICAgcmV0dXJuIGRlZi5zYW5pdGlzZXIgPyB0aGlzLmluamVjdG9yLmdldDxQYXJhbWV0ZXJTYW5pdGlzZXI8VD4+KGRlZi5zYW5pdGlzZXIsIG5ldyBkZWYuc2FuaXRpc2VyKCkpIDogbnVsbDtcbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ export { AngularUiPowerupsModule } from './lib/angular-ui-powerups.module';
6
+ export { DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point } from './lib/components';
7
+ export { CommandDirective, FocusBindingDirective } from './lib/directives';
8
+ export { AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService } from './lib/interaction';
9
+ export { AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, ParameterType, RouteParameterBindings, RouteParameterSanitiser } from './lib/place';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHNNQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHdEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDhPQUFjLG1CQUFtQixDQUFDO0FBQ2xDLHFRQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdWktcG93ZXJ1cHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbGFjZSc7XG4iXX0=