@coolon/angular-ui-powerups 0.0.51 → 0.0.54

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 (38) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +382 -746
  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.metadata.json +1 -1
  6. package/esm2015/coolon-angular-ui-powerups.js +2 -2
  7. package/esm2015/index.js +2 -2
  8. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +2 -2
  9. package/esm2015/lib/place/guards/place-route.guard.js +2 -2
  10. package/esm2015/lib/place/index.js +2 -2
  11. package/esm2015/lib/place/route/parameter-definition.class.js +11 -35
  12. package/esm2015/lib/place/route/parameter-sanitiser.js +3 -4
  13. package/esm2015/lib/place/route/parameter-snapshot.js +65 -209
  14. package/esm2015/lib/place/route/route-parameter-value.js +223 -0
  15. package/esm2015/public_api.js +2 -2
  16. package/esm5/coolon-angular-ui-powerups.js +2 -2
  17. package/esm5/index.js +2 -2
  18. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +2 -2
  19. package/esm5/lib/place/guards/place-route.guard.js +2 -2
  20. package/esm5/lib/place/index.js +2 -2
  21. package/esm5/lib/place/route/parameter-definition.class.js +12 -44
  22. package/esm5/lib/place/route/parameter-sanitiser.js +3 -4
  23. package/esm5/lib/place/route/parameter-snapshot.js +69 -274
  24. package/esm5/lib/place/route/route-parameter-value.js +309 -0
  25. package/esm5/public_api.js +2 -2
  26. package/fesm2015/coolon-angular-ui-powerups.js +298 -539
  27. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  28. package/fesm5/coolon-angular-ui-powerups.js +385 -748
  29. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  30. package/lib/place/index.d.ts +1 -1
  31. package/lib/place/route/parameter-definition.class.d.ts +2 -2
  32. package/lib/place/route/parameter-sanitiser.d.ts +2 -2
  33. package/lib/place/route/parameter-snapshot.d.ts +5 -27
  34. package/lib/place/route/route-parameter-value.d.ts +42 -0
  35. package/package.json +1 -1
  36. package/esm2015/lib/place/route/route-parameter-sanitiser.js +0 -296
  37. package/esm5/lib/place/route/route-parameter-sanitiser.js +0 -435
  38. package/lib/place/route/route-parameter-sanitiser.d.ts +0 -44
@@ -1,435 +0,0 @@
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, lang } from '@coolon/pectin';
7
- import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
8
- import _ from 'lodash';
9
- import { ParameterDefinition } from './parameter-definition.class';
10
- /**
11
- * @template T, S
12
- */
13
- var /**
14
- * @template T, S
15
- */
16
- Sanitiser = /** @class */ (function () {
17
- function Sanitiser(parameterDef, snapshot, sanitiser) {
18
- this.parameterDef = parameterDef;
19
- this.snapshot = snapshot;
20
- this.sanitiser = sanitiser;
21
- }
22
- /**
23
- * @return {?}
24
- */
25
- Sanitiser.prototype.isRouteId = /**
26
- * @return {?}
27
- */
28
- function () {
29
- return this.parameterDef.isRouteId;
30
- };
31
- Object.defineProperty(Sanitiser.prototype, "valueChanged", {
32
- get: /**
33
- * @return {?}
34
- */
35
- function () {
36
- return !_.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);
37
- },
38
- enumerable: true,
39
- configurable: true
40
- });
41
- Object.defineProperty(Sanitiser.prototype, "sanitisedValue", {
42
- get: /**
43
- * @return {?}
44
- */
45
- function () {
46
- return this._sanitisedValue;
47
- },
48
- enumerable: true,
49
- configurable: true
50
- });
51
- /**
52
- * @protected
53
- * @param {?} snapshot
54
- * @return {?}
55
- */
56
- Sanitiser.prototype.readFrom = /**
57
- * @protected
58
- * @param {?} snapshot
59
- * @return {?}
60
- */
61
- function (snapshot) {
62
- return lang.abstractMethod(this.constructor);
63
- };
64
- /**
65
- * @protected
66
- * @param {?} initialValue
67
- * @param {?} sanitisedValue
68
- * @return {?}
69
- */
70
- Sanitiser.prototype.hasChanged = /**
71
- * @protected
72
- * @param {?} initialValue
73
- * @param {?} sanitisedValue
74
- * @return {?}
75
- */
76
- function (initialValue, sanitisedValue) {
77
- return lang.abstractMethod(this.constructor);
78
- };
79
- /**
80
- * @param {?} dest
81
- * @return {?}
82
- */
83
- Sanitiser.prototype.injectRouteParam = /**
84
- * @param {?} dest
85
- * @return {?}
86
- */
87
- function (dest) {
88
- lang.abstractMethod(this.constructor);
89
- };
90
- /**
91
- * @return {?}
92
- */
93
- Sanitiser.prototype.sanitize = /**
94
- * @return {?}
95
- */
96
- function () {
97
- return tslib_1.__awaiter(this, void 0, void 0, function () {
98
- var _a;
99
- return tslib_1.__generator(this, function (_b) {
100
- switch (_b.label) {
101
- case 0:
102
- if (!this.sanitiser) return [3 /*break*/, 2];
103
- this.initialValue = this.readFrom(this.snapshot);
104
- _a = this;
105
- return [4 /*yield*/, this.sanitiser.sanitise(null, this.initialValue)];
106
- case 1:
107
- _a._sanitisedValue = _b.sent();
108
- if (this.initialValue !== this._sanitisedValue) {
109
- return [2 /*return*/, false];
110
- }
111
- _b.label = 2;
112
- case 2: return [2 /*return*/, true];
113
- }
114
- });
115
- });
116
- };
117
- return Sanitiser;
118
- }());
119
- /**
120
- * @template T, S
121
- */
122
- export { Sanitiser };
123
- if (false) {
124
- /**
125
- * @type {?}
126
- * @private
127
- */
128
- Sanitiser.prototype.initialValue;
129
- /**
130
- * @type {?}
131
- * @private
132
- */
133
- Sanitiser.prototype._sanitisedValue;
134
- /** @type {?} */
135
- Sanitiser.prototype.parameterDef;
136
- /** @type {?} */
137
- Sanitiser.prototype.snapshot;
138
- /** @type {?} */
139
- Sanitiser.prototype.sanitiser;
140
- }
141
- var RouteParameterSanitiser = /** @class */ (function () {
142
- function RouteParameterSanitiser(parameterDefs, snapshot, injector) {
143
- var _this = this;
144
- this.parameterDefs = parameterDefs;
145
- this.snapshot = snapshot;
146
- this.injector = injector;
147
- this.parameterSanitisers = [];
148
- /** @type {?} */
149
- var sanitisers = parameterDefs.map((/**
150
- * @param {?} def
151
- * @return {?}
152
- */
153
- function (def) {
154
- return def.isArray ?
155
- new Sanitiser.Array(def, snapshot, _this.getSanitiser(def)) :
156
- new Sanitiser.Value(def, snapshot, _this.getSanitiser(def));
157
- }));
158
- this.routeIdSanitiser = sanitisers.find((/**
159
- * @param {?} p
160
- * @return {?}
161
- */
162
- function (p) { return p.isRouteId(); }));
163
- this.parameterSanitisers = sanitisers.filter((/**
164
- * @param {?} p
165
- * @return {?}
166
- */
167
- function (p) { return !p.isRouteId(); }));
168
- }
169
- /**
170
- * @return {?}
171
- */
172
- RouteParameterSanitiser.prototype.sanitise = /**
173
- * @return {?}
174
- */
175
- function () {
176
- return tslib_1.__awaiter(this, void 0, void 0, function () {
177
- var e_1, _a, _b, _c, sanitiser, e_1_1;
178
- return tslib_1.__generator(this, function (_d) {
179
- switch (_d.label) {
180
- case 0:
181
- if (!this.routeIdSanitiser) return [3 /*break*/, 2];
182
- return [4 /*yield*/, this.routeIdSanitiser.sanitize()];
183
- case 1:
184
- _d.sent();
185
- if (this.routeIdSanitiser.valueChanged) {
186
- // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the
187
- // context of the route id.
188
- return [2 /*return*/, false];
189
- }
190
- _d.label = 2;
191
- case 2:
192
- _d.trys.push([2, 7, 8, 9]);
193
- _b = tslib_1.__values(this.parameterSanitisers), _c = _b.next();
194
- _d.label = 3;
195
- case 3:
196
- if (!!_c.done) return [3 /*break*/, 6];
197
- sanitiser = _c.value;
198
- return [4 /*yield*/, sanitiser.sanitize()];
199
- case 4:
200
- _d.sent();
201
- _d.label = 5;
202
- case 5:
203
- _c = _b.next();
204
- return [3 /*break*/, 3];
205
- case 6: return [3 /*break*/, 9];
206
- case 7:
207
- e_1_1 = _d.sent();
208
- e_1 = { error: e_1_1 };
209
- return [3 /*break*/, 9];
210
- case 8:
211
- try {
212
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
213
- }
214
- finally { if (e_1) throw e_1.error; }
215
- return [7 /*endfinally*/];
216
- case 9: return [2 /*return*/, !this.parameterSanitisers.find((/**
217
- * @param {?} s
218
- * @return {?}
219
- */
220
- function (s) { return s.valueChanged; }))];
221
- }
222
- });
223
- });
224
- };
225
- /**
226
- * @private
227
- * @template T, S
228
- * @param {?} def
229
- * @return {?}
230
- */
231
- RouteParameterSanitiser.prototype.getSanitiser = /**
232
- * @private
233
- * @template T, S
234
- * @param {?} def
235
- * @return {?}
236
- */
237
- function (def) {
238
- return def.getSanitiser(this.injector);
239
- };
240
- /**
241
- * @return {?}
242
- */
243
- RouteParameterSanitiser.prototype.routeIdHasChanged = /**
244
- * @return {?}
245
- */
246
- function () {
247
- assert.isTruthy(this.parameterSanitisers.length !== 0);
248
- return this.routeIdSanitiser && this.routeIdSanitiser.valueChanged;
249
- };
250
- // @Trace()
251
- // @Trace()
252
- /**
253
- * @return {?}
254
- */
255
- RouteParameterSanitiser.prototype.getRedirectParams =
256
- // @Trace()
257
- /**
258
- * @return {?}
259
- */
260
- function () {
261
- if (this.routeIdHasChanged()) {
262
- return [this.routeIdSanitiser.sanitisedValue];
263
- }
264
- else {
265
- /** @type {?} */
266
- var routeParams_1 = {};
267
- this.parameterSanitisers.forEach((/**
268
- * @param {?} s
269
- * @return {?}
270
- */
271
- function (s) { return s.injectRouteParam(routeParams_1); }));
272
- return [routeParams_1];
273
- }
274
- };
275
- /**
276
- * @private
277
- * @template S
278
- * @param {?} value
279
- * @return {?}
280
- */
281
- RouteParameterSanitiser.prototype.isSanitiserContructor = /**
282
- * @private
283
- * @template S
284
- * @param {?} value
285
- * @return {?}
286
- */
287
- function (value) {
288
- return _.isFunction(value) && lang.constructorChain((/** @type {?} */ ((/** @type {?} */ (value))))).includes(Sanitiser);
289
- };
290
- tslib_1.__decorate([
291
- Memoize(),
292
- tslib_1.__metadata("design:type", Function),
293
- tslib_1.__metadata("design:paramtypes", [ParameterDefinition]),
294
- tslib_1.__metadata("design:returntype", Object)
295
- ], RouteParameterSanitiser.prototype, "getSanitiser", null);
296
- return RouteParameterSanitiser;
297
- }());
298
- export { RouteParameterSanitiser };
299
- if (false) {
300
- /**
301
- * @type {?}
302
- * @private
303
- */
304
- RouteParameterSanitiser.prototype.routeIdSanitiser;
305
- /**
306
- * @type {?}
307
- * @private
308
- */
309
- RouteParameterSanitiser.prototype.parameterSanitisers;
310
- /** @type {?} */
311
- RouteParameterSanitiser.prototype.parameterDefs;
312
- /** @type {?} */
313
- RouteParameterSanitiser.prototype.snapshot;
314
- /** @type {?} */
315
- RouteParameterSanitiser.prototype.injector;
316
- }
317
- (function (Sanitiser) {
318
- /**
319
- * @template T
320
- */
321
- var /**
322
- * @template T
323
- */
324
- Value = /** @class */ (function (_super) {
325
- tslib_1.__extends(Value, _super);
326
- function Value() {
327
- return _super !== null && _super.apply(this, arguments) || this;
328
- }
329
- /**
330
- * @param {?} snapshot
331
- * @return {?}
332
- */
333
- Value.prototype.readFrom = /**
334
- * @param {?} snapshot
335
- * @return {?}
336
- */
337
- function (snapshot) {
338
- /** @type {?} */
339
- var rawValue = snapshot.paramMap.get(this.parameterDef.name);
340
- return this.parameterDef.type.parse(rawValue);
341
- };
342
- /**
343
- * @protected
344
- * @param {?} initialValue
345
- * @param {?} sanitisedValue
346
- * @return {?}
347
- */
348
- Value.prototype.hasChanged = /**
349
- * @protected
350
- * @param {?} initialValue
351
- * @param {?} sanitisedValue
352
- * @return {?}
353
- */
354
- function (initialValue, sanitisedValue) {
355
- return initialValue !== sanitisedValue;
356
- };
357
- /**
358
- * @param {?} dest
359
- * @return {?}
360
- */
361
- Value.prototype.injectRouteParam = /**
362
- * @param {?} dest
363
- * @return {?}
364
- */
365
- function (dest) {
366
- dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);
367
- };
368
- return Value;
369
- }(Sanitiser));
370
- Sanitiser.Value = Value;
371
- /**
372
- * @template T
373
- */
374
- var /**
375
- * @template T
376
- */
377
- Array = /** @class */ (function (_super) {
378
- tslib_1.__extends(Array, _super);
379
- function Array() {
380
- return _super !== null && _super.apply(this, arguments) || this;
381
- }
382
- /**
383
- * @param {?} snapshot
384
- * @return {?}
385
- */
386
- Array.prototype.readFrom = /**
387
- * @param {?} snapshot
388
- * @return {?}
389
- */
390
- function (snapshot) {
391
- var _this = this;
392
- /** @type {?} */
393
- var rawValues = snapshot.paramMap.getAll(this.parameterDef.name);
394
- return rawValues.map((/**
395
- * @param {?} value
396
- * @return {?}
397
- */
398
- function (value) { return _this.parameterDef.type.parse(value); }));
399
- };
400
- /**
401
- * @protected
402
- * @param {?} initialValue
403
- * @param {?} sanitisedValue
404
- * @return {?}
405
- */
406
- Array.prototype.hasChanged = /**
407
- * @protected
408
- * @param {?} initialValue
409
- * @param {?} sanitisedValue
410
- * @return {?}
411
- */
412
- function (initialValue, sanitisedValue) {
413
- return initialValue !== sanitisedValue;
414
- };
415
- /**
416
- * @param {?} dest
417
- * @return {?}
418
- */
419
- Array.prototype.injectRouteParam = /**
420
- * @param {?} dest
421
- * @return {?}
422
- */
423
- function (dest) {
424
- var _this = this;
425
- dest[this.parameterDef.name] = this.sanitisedValue.map((/**
426
- * @param {?} v
427
- * @return {?}
428
- */
429
- function (v) { return _this.parameterDef.type.format(v); }));
430
- };
431
- return Array;
432
- }(Sanitiser));
433
- Sanitiser.Array = Array;
434
- })(Sanitiser || (Sanitiser = {}));
435
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsSUFBSSxFQUFTLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUduRTs7OztJQUtFLG1CQUFxQixZQUF1QyxFQUFXLFFBQWdDLEVBQVcsU0FBZ0M7UUFBN0gsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7UUFBVyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtJQUNsSixDQUFDOzs7O0lBRUQsNkJBQVM7OztJQUFUO1FBQ0UsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsc0JBQUksbUNBQVk7Ozs7UUFBaEI7WUFDRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLHFDQUFjOzs7O1FBQWxCO1lBQ0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzlCLENBQUM7OztPQUFBOzs7Ozs7SUFFUyw0QkFBUTs7Ozs7SUFBbEIsVUFBbUIsUUFBZ0M7UUFDakQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDOzs7Ozs7O0lBRVMsOEJBQVU7Ozs7OztJQUFwQixVQUFxQixZQUFlLEVBQUUsY0FBaUI7UUFDckQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDOzs7OztJQUVELG9DQUFnQjs7OztJQUFoQixVQUFpQixJQUFRO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Ozs7SUFFSyw0QkFBUTs7O0lBQWQ7Ozs7Ozs2QkFDTSxJQUFJLENBQUMsU0FBUyxFQUFkLHdCQUFjO3dCQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUNqRCxLQUFBLElBQUksQ0FBQTt3QkFBbUIscUJBQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBQTs7d0JBQTdFLEdBQUssZUFBZSxHQUFHLFNBQXNELENBQUM7d0JBQzlFLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFOzRCQUM5QyxzQkFBTyxLQUFLLEVBQUM7eUJBQ2Q7OzRCQUVILHNCQUFPLElBQUksRUFBQzs7OztLQUNiO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBMUNELElBMENDOzs7Ozs7Ozs7O0lBeENDLGlDQUF3Qjs7Ozs7SUFDeEIsb0NBQTJCOztJQUVmLGlDQUFnRDs7SUFBRSw2QkFBeUM7O0lBQUUsOEJBQXlDOztBQXdDcEo7SUFLRSxpQ0FBcUIsYUFBeUMsRUFDekMsUUFBZ0MsRUFDaEMsUUFBa0I7UUFGdkMsaUJBVUM7UUFWb0Isa0JBQWEsR0FBYixhQUFhLENBQTRCO1FBQ3pDLGFBQVEsR0FBUixRQUFRLENBQXdCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFKdEIsd0JBQW1CLEdBQTBCLEVBQUUsQ0FBQzs7WUFLekQsVUFBVSxHQUFHLGFBQWEsQ0FBQyxHQUFHOzs7O1FBQUMsVUFBQSxHQUFHO1lBQ3RDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQixJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUMsRUFBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsSUFBSTs7OztRQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFiLENBQWEsRUFBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUMsTUFBTTs7OztRQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQWQsQ0FBYyxFQUFDLENBQUM7SUFDcEUsQ0FBQzs7OztJQUVLLDBDQUFROzs7SUFBZDs7Ozs7OzZCQUNNLElBQUksQ0FBQyxnQkFBZ0IsRUFBckIsd0JBQXFCO3dCQUN2QixxQkFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEVBQUE7O3dCQUF0QyxTQUFzQyxDQUFDO3dCQUN2QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUU7NEJBQ3RDLHVHQUF1Rzs0QkFDdkcsMkJBQTJCOzRCQUMzQixzQkFBTyxLQUFLLEVBQUM7eUJBQ2Q7Ozs7d0JBRXFCLEtBQUEsaUJBQUEsSUFBSSxDQUFDLG1CQUFtQixDQUFBOzs7O3dCQUFyQyxTQUFTO3dCQUNsQixxQkFBTSxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUE7O3dCQUExQixTQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OzRCQUU3QixzQkFBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJOzs7O3dCQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLFlBQVksRUFBZCxDQUFjLEVBQUMsRUFBQzs7OztLQUM1RDs7Ozs7OztJQUdPLDhDQUFZOzs7Ozs7SUFBcEIsVUFBMkIsR0FBOEI7UUFDdkQsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7O0lBRUQsbURBQWlCOzs7SUFBakI7UUFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQztJQUNyRSxDQUFDO0lBRUQsV0FBVzs7Ozs7SUFDWCxtREFBaUI7Ozs7O0lBQWpCO1FBQ0UsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQy9DO2FBQU07O2dCQUNDLGFBQVcsR0FBRyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBVyxDQUFDLEVBQS9CLENBQStCLEVBQUMsQ0FBQztZQUN2RSxPQUFPLENBQUMsYUFBVyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDOzs7Ozs7O0lBRU8sdURBQXFCOzs7Ozs7SUFBN0IsVUFBaUMsS0FBVTtRQUN6QyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFBLG1CQUFBLEtBQUssRUFBVyxFQUFzQixDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUF0QkQ7UUFEQyxPQUFPLEVBQUU7O2lEQUNzQixtQkFBbUI7OytEQUVsRDtJQXFCSCw4QkFBQztDQUFBLEFBeERELElBd0RDO1NBeERZLHVCQUF1Qjs7Ozs7O0lBRWxDLG1EQUF1RDs7Ozs7SUFDdkQsc0RBQWlFOztJQUVyRCxnREFBa0Q7O0lBQ2xELDJDQUF5Qzs7SUFDekMsMkNBQTJCOztBQW1EekMsV0FBaUIsU0FBUzs7OztJQUV4Qjs7OztRQUE4QixpQ0FBZTtRQUE3Qzs7UUFlQSxDQUFDOzs7OztRQWJDLHdCQUFROzs7O1FBQVIsVUFBUyxRQUFnQzs7Z0JBQ2pDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUM5RCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDOzs7Ozs7O1FBRVMsMEJBQVU7Ozs7OztRQUFwQixVQUFxQixZQUFlLEVBQUUsY0FBaUI7WUFDckQsT0FBTyxZQUFZLEtBQUssY0FBYyxDQUFDO1FBQ3pDLENBQUM7Ozs7O1FBRUQsZ0NBQWdCOzs7O1FBQWhCLFVBQWlCLElBQVE7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBRUgsWUFBQztJQUFELENBQUMsQUFmRCxDQUE4QixTQUFTLEdBZXRDO0lBZlksZUFBSyxRQWVqQixDQUFBOzs7O0lBRUQ7Ozs7UUFBOEIsaUNBQWlCO1FBQS9DOztRQWdCQSxDQUFDOzs7OztRQWRDLHdCQUFROzs7O1FBQVIsVUFBUyxRQUFnQztZQUF6QyxpQkFHQzs7Z0JBRk8sU0FBUyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ2xFLE9BQU8sU0FBUyxDQUFDLEdBQUc7Ozs7WUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBbkMsQ0FBbUMsRUFBQyxDQUFDO1FBQ3JFLENBQUM7Ozs7Ozs7UUFFUywwQkFBVTs7Ozs7O1FBQXBCLFVBQXFCLFlBQWlCLEVBQUUsY0FBbUI7WUFDekQsT0FBTyxZQUFZLEtBQUssY0FBYyxDQUFDO1FBQ3pDLENBQUM7Ozs7O1FBRUQsZ0NBQWdCOzs7O1FBQWhCLFVBQWlCLElBQVE7WUFBekIsaUJBRUM7WUFEQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUc7Ozs7WUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBaEMsQ0FBZ0MsRUFBQyxDQUFDO1FBQ2hHLENBQUM7UUFHSCxZQUFDO0lBQUQsQ0FBQyxBQWhCRCxDQUE4QixTQUFTLEdBZ0J0QztJQWhCWSxlQUFLLFFBZ0JqQixDQUFBO0FBRUgsQ0FBQyxFQXJDZ0IsU0FBUyxLQUFULFNBQVMsUUFxQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzZXJ0LCBDb25zdHJ1Y3RhYmxlLCBsYW5nLCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3IvZGlzdC9zcmMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcbmltcG9ydCB7IFBhcmFtZXRlclNhbml0aXNlciB9IGZyb20gJy4vcGFyYW1ldGVyLXNhbml0aXNlcic7XG5cbmV4cG9ydCBjbGFzcyBTYW5pdGlzZXI8VCwgUz4ge1xuXG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlOiBTO1xuICBwcml2YXRlIF9zYW5pdGlzZWRWYWx1ZTogUztcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4sIHJlYWRvbmx5IHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCByZWFkb25seSBzYW5pdGlzZXI6IFBhcmFtZXRlclNhbml0aXNlcjxTPikge1xuICB9XG5cbiAgaXNSb3V0ZUlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQ7XG4gIH1cblxuICBnZXQgdmFsdWVDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhXy5pc05pbCh0aGlzLmluaXRpYWxWYWx1ZSkgJiYgdGhpcy5oYXNDaGFuZ2VkKHRoaXMuaW5pdGlhbFZhbHVlLCB0aGlzLnNhbml0aXNlZFZhbHVlKTtcbiAgfVxuXG4gIGdldCBzYW5pdGlzZWRWYWx1ZSgpOiBTIHtcbiAgICByZXR1cm4gdGhpcy5fc2FuaXRpc2VkVmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBTIHtcbiAgICByZXR1cm4gbGFuZy5hYnN0cmFjdE1ldGhvZCh0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNDaGFuZ2VkKGluaXRpYWxWYWx1ZTogUywgc2FuaXRpc2VkVmFsdWU6IFMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbGFuZy5hYnN0cmFjdE1ldGhvZCh0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIGluamVjdFJvdXRlUGFyYW0oZGVzdDoge30pIHtcbiAgICBsYW5nLmFic3RyYWN0TWV0aG9kKHRoaXMuY29uc3RydWN0b3IpO1xuICB9XG5cbiAgYXN5bmMgc2FuaXRpemUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuc2FuaXRpc2VyKSB7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHRoaXMucmVhZEZyb20odGhpcy5zbmFwc2hvdCk7XG4gICAgICB0aGlzLl9zYW5pdGlzZWRWYWx1ZSA9IGF3YWl0IHRoaXMuc2FuaXRpc2VyLnNhbml0aXNlKG51bGwsIHRoaXMuaW5pdGlhbFZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxWYWx1ZSAhPT0gdGhpcy5fc2FuaXRpc2VkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBSb3V0ZVBhcmFtZXRlclNhbml0aXNlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZUlkU2FuaXRpc2VyOiBTYW5pdGlzZXI8YW55LCBhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlclNhbml0aXNlcnM6IFNhbml0aXNlcjxhbnksIGFueT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmFtZXRlckRlZnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLFxuICAgICAgICAgICAgICByZWFkb25seSBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgY29uc3Qgc2FuaXRpc2VycyA9IHBhcmFtZXRlckRlZnMubWFwKGRlZiA9PiB7XG4gICAgICByZXR1cm4gZGVmLmlzQXJyYXkgP1xuICAgICAgICBuZXcgU2FuaXRpc2VyLkFycmF5KGRlZiwgc25hcHNob3QsIHRoaXMuZ2V0U2FuaXRpc2VyKGRlZikpIDpcbiAgICAgICAgbmV3IFNhbml0aXNlci5WYWx1ZShkZWYsIHNuYXBzaG90LCB0aGlzLmdldFNhbml0aXNlcihkZWYpKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlSWRTYW5pdGlzZXIgPSBzYW5pdGlzZXJzLmZpbmQocCA9PiBwLmlzUm91dGVJZCgpKTtcbiAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMgPSBzYW5pdGlzZXJzLmZpbHRlcihwID0+ICFwLmlzUm91dGVJZCgpKTtcbiAgfVxuXG4gIGFzeW5jIHNhbml0aXNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJvdXRlSWRTYW5pdGlzZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVJZFNhbml0aXNlci5zYW5pdGl6ZSgpO1xuICAgICAgaWYgKHRoaXMucm91dGVJZFNhbml0aXNlci52YWx1ZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzbid0IG9rIHdlIHJlZGlyZWN0IGltbWVkaWF0ZWx5IGFzIHRoZSBxdWVyeSBwYXJhbXMgbWF5IG5lZWQgdG8gYmUgc2FuaXRpc2VkIGluIHRoZVxuICAgICAgICAvLyBjb250ZXh0IG9mIHRoZSByb3V0ZSBpZC5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHNhbml0aXNlciBvZiB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMpIHtcbiAgICAgIGF3YWl0IHNhbml0aXNlci5zYW5pdGl6ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMucGFyYW1ldGVyU2FuaXRpc2Vycy5maW5kKHMgPT4gcy52YWx1ZUNoYW5nZWQpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBwcml2YXRlIGdldFNhbml0aXNlcjxULCBTPihkZWY6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4pOiBQYXJhbWV0ZXJTYW5pdGlzZXI8Uz4ge1xuICAgIHJldHVybiBkZWYuZ2V0U2FuaXRpc2VyKHRoaXMuaW5qZWN0b3IpO1xuICB9XG5cbiAgcm91dGVJZEhhc0NoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMucGFyYW1ldGVyU2FuaXRpc2Vycy5sZW5ndGggIT09IDApO1xuICAgIHJldHVybiB0aGlzLnJvdXRlSWRTYW5pdGlzZXIgJiYgdGhpcy5yb3V0ZUlkU2FuaXRpc2VyLnZhbHVlQ2hhbmdlZDtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGdldFJlZGlyZWN0UGFyYW1zKCk6IGFueVtdIHtcbiAgICBpZiAodGhpcy5yb3V0ZUlkSGFzQ2hhbmdlZCgpKSB7XG4gICAgICByZXR1cm4gW3RoaXMucm91dGVJZFNhbml0aXNlci5zYW5pdGlzZWRWYWx1ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJvdXRlUGFyYW1zID0ge307XG4gICAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMuZm9yRWFjaChzID0+IHMuaW5qZWN0Um91dGVQYXJhbShyb3V0ZVBhcmFtcykpO1xuICAgICAgcmV0dXJuIFtyb3V0ZVBhcmFtc107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1Nhbml0aXNlckNvbnRydWN0b3I8Uz4odmFsdWU6IGFueSk6IHZhbHVlIGlzIFR5cGU8UGFyYW1ldGVyU2FuaXRpc2VyPFM+PiB7XG4gICAgcmV0dXJuIF8uaXNGdW5jdGlvbih2YWx1ZSkgJiYgbGFuZy5jb25zdHJ1Y3RvckNoYWluKHZhbHVlIGFzIHVua25vd24gYXMgQ29uc3RydWN0YWJsZTxhbnk+KS5pbmNsdWRlcyhTYW5pdGlzZXIpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgU2FuaXRpc2VyIHtcblxuICBleHBvcnQgY2xhc3MgVmFsdWU8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVD4ge1xuXG4gICAgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBUIHtcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gc25hcHNob3QucGFyYW1NYXAuZ2V0KHRoaXMucGFyYW1ldGVyRGVmLm5hbWUpO1xuICAgICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyRGVmLnR5cGUucGFyc2UocmF3VmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYXNDaGFuZ2VkKGluaXRpYWxWYWx1ZTogVCwgc2FuaXRpc2VkVmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpbml0aWFsVmFsdWUgIT09IHNhbml0aXNlZFZhbHVlO1xuICAgIH1cblxuICAgIGluamVjdFJvdXRlUGFyYW0oZGVzdDoge30pIHtcbiAgICAgIGRlc3RbdGhpcy5wYXJhbWV0ZXJEZWYubmFtZV0gPSB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh0aGlzLnNhbml0aXNlZFZhbHVlKTtcbiAgICB9XG5cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBBcnJheTxUPiBleHRlbmRzIFNhbml0aXNlcjxULCBUW10+IHtcblxuICAgIHJlYWRGcm9tKHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogVFtdIHtcbiAgICAgIGNvbnN0IHJhd1ZhbHVlcyA9IHNuYXBzaG90LnBhcmFtTWFwLmdldEFsbCh0aGlzLnBhcmFtZXRlckRlZi5uYW1lKTtcbiAgICAgIHJldHVybiByYXdWYWx1ZXMubWFwKHZhbHVlID0+IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFRbXSwgc2FuaXRpc2VkVmFsdWU6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZSAhPT0gc2FuaXRpc2VkVmFsdWU7XG4gICAgfVxuXG4gICAgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSkge1xuICAgICAgZGVzdFt0aGlzLnBhcmFtZXRlckRlZi5uYW1lXSA9IHRoaXMuc2FuaXRpc2VkVmFsdWUubWFwKHYgPT4gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodikpO1xuICAgIH1cblxuXG4gIH1cblxufVxuIl19
@@ -1,44 +0,0 @@
1
- import { Injector } from '@angular/core';
2
- import { ActivatedRouteSnapshot } from '@angular/router';
3
- import { ParameterDefinition } from './parameter-definition.class';
4
- import { ParameterSanitiser } from './parameter-sanitiser';
5
- export declare class Sanitiser<T, S> {
6
- readonly parameterDef: ParameterDefinition<T, S>;
7
- readonly snapshot: ActivatedRouteSnapshot;
8
- readonly sanitiser: ParameterSanitiser<S>;
9
- private initialValue;
10
- private _sanitisedValue;
11
- constructor(parameterDef: ParameterDefinition<T, S>, snapshot: ActivatedRouteSnapshot, sanitiser: ParameterSanitiser<S>);
12
- isRouteId(): boolean;
13
- readonly valueChanged: boolean;
14
- readonly sanitisedValue: S;
15
- protected readFrom(snapshot: ActivatedRouteSnapshot): S;
16
- protected hasChanged(initialValue: S, sanitisedValue: S): boolean;
17
- injectRouteParam(dest: {}): void;
18
- sanitize(): Promise<boolean>;
19
- }
20
- export declare class RouteParameterSanitiser {
21
- readonly parameterDefs: ParameterDefinition<any>[];
22
- readonly snapshot: ActivatedRouteSnapshot;
23
- readonly injector: Injector;
24
- private readonly routeIdSanitiser;
25
- private readonly parameterSanitisers;
26
- constructor(parameterDefs: ParameterDefinition<any>[], snapshot: ActivatedRouteSnapshot, injector: Injector);
27
- sanitise(): Promise<boolean>;
28
- private getSanitiser;
29
- routeIdHasChanged(): boolean;
30
- getRedirectParams(): any[];
31
- private isSanitiserContructor;
32
- }
33
- export declare namespace Sanitiser {
34
- class Value<T> extends Sanitiser<T, T> {
35
- readFrom(snapshot: ActivatedRouteSnapshot): T;
36
- protected hasChanged(initialValue: T, sanitisedValue: T): boolean;
37
- injectRouteParam(dest: {}): void;
38
- }
39
- class Array<T> extends Sanitiser<T, T[]> {
40
- readFrom(snapshot: ActivatedRouteSnapshot): T[];
41
- protected hasChanged(initialValue: T[], sanitisedValue: T[]): boolean;
42
- injectRouteParam(dest: {}): void;
43
- }
44
- }