@coolon/angular-ui-powerups 0.0.7 → 0.0.9

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 (54) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +552 -159
  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 +12 -11
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/coolon-angular-ui-powerups.js +12 -11
  8. package/esm2015/index.js +2 -2
  9. package/esm2015/lib/components/forms/abstract-input.component.js +8 -3
  10. package/esm2015/lib/directives/command.directive.js +48 -4
  11. package/esm2015/lib/directives/focus-binding.directive.js +30 -14
  12. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
  13. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
  14. package/esm2015/lib/place/components/empty-state/empty-state.component.js +1 -1
  15. package/esm2015/lib/place/components/nav/nav.component.js +31 -0
  16. package/esm2015/lib/place/guards/place-route.guard.js +3 -3
  17. package/esm2015/lib/place/index.js +4 -3
  18. package/esm2015/lib/place/place.module.js +16 -5
  19. package/esm2015/lib/place/route/parameter-decorators.js +77 -2
  20. package/esm2015/lib/place/route/parameter-definition.class.js +4 -2
  21. package/esm2015/lib/place/route/route-parameter-bindings.js +25 -13
  22. package/esm2015/lib/place/route/route-parameter-sanitiser.js +206 -74
  23. package/esm2015/public_api.js +2 -2
  24. package/esm5/coolon-angular-ui-powerups.js +12 -11
  25. package/esm5/index.js +2 -2
  26. package/esm5/lib/components/forms/abstract-input.component.js +8 -3
  27. package/esm5/lib/directives/command.directive.js +52 -4
  28. package/esm5/lib/directives/focus-binding.directive.js +34 -14
  29. package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
  30. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
  31. package/esm5/lib/place/components/empty-state/empty-state.component.js +1 -1
  32. package/esm5/lib/place/components/nav/nav.component.js +36 -0
  33. package/esm5/lib/place/guards/place-route.guard.js +3 -3
  34. package/esm5/lib/place/index.js +4 -3
  35. package/esm5/lib/place/place.module.js +16 -5
  36. package/esm5/lib/place/route/parameter-decorators.js +77 -2
  37. package/esm5/lib/place/route/parameter-definition.class.js +4 -2
  38. package/esm5/lib/place/route/route-parameter-bindings.js +25 -13
  39. package/esm5/lib/place/route/route-parameter-sanitiser.js +284 -92
  40. package/esm5/public_api.js +2 -2
  41. package/fesm2015/coolon-angular-ui-powerups.js +436 -112
  42. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  43. package/fesm5/coolon-angular-ui-powerups.js +521 -130
  44. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  45. package/lib/components/forms/abstract-input.component.d.ts +7 -7
  46. package/lib/directives/command.directive.d.ts +6 -3
  47. package/lib/directives/focus-binding.directive.d.ts +1 -0
  48. package/lib/place/components/nav/nav.component.d.ts +7 -0
  49. package/lib/place/index.d.ts +1 -0
  50. package/lib/place/route/parameter-decorators.d.ts +17 -0
  51. package/lib/place/route/parameter-definition.class.d.ts +4 -3
  52. package/lib/place/route/route-parameter-sanitiser.d.ts +33 -6
  53. package/package.json +2 -2
  54. package/styles/styles.scss +15 -0
@@ -3,72 +3,150 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import * as tslib_1 from "tslib";
6
- import { assert, Trace } from '@coolon/pectin';
6
+ import { assert } from '@coolon/pectin';
7
7
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
8
+ import * as _ from 'lodash';
9
+ /**
10
+ * @abstract
11
+ * @template T, S
12
+ */
13
+ export class Sanitiser {
14
+ /**
15
+ * @param {?} parameterDef
16
+ * @param {?} snapshot
17
+ * @param {?} sanitiser
18
+ */
19
+ constructor(parameterDef, snapshot, sanitiser) {
20
+ this.parameterDef = parameterDef;
21
+ this.snapshot = snapshot;
22
+ this.sanitiser = sanitiser;
23
+ }
24
+ /**
25
+ * @return {?}
26
+ */
27
+ isRouteId() {
28
+ return this.parameterDef.isRouteId;
29
+ }
30
+ /**
31
+ * @return {?}
32
+ */
33
+ get valueChanged() {
34
+ return !_.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);
35
+ }
36
+ /**
37
+ * @return {?}
38
+ */
39
+ get sanitisedValue() {
40
+ return this._sanitisedValue;
41
+ }
42
+ /**
43
+ * @return {?}
44
+ */
45
+ sanitize() {
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ if (this.sanitiser) {
48
+ this.initialValue = this.readFrom(this.snapshot);
49
+ this._sanitisedValue = yield this.sanitiser.sanitise(this.initialValue);
50
+ if (this.initialValue !== this._sanitisedValue) {
51
+ return false;
52
+ }
53
+ }
54
+ return true;
55
+ });
56
+ }
57
+ }
58
+ if (false) {
59
+ /**
60
+ * @type {?}
61
+ * @private
62
+ */
63
+ Sanitiser.prototype.initialValue;
64
+ /**
65
+ * @type {?}
66
+ * @private
67
+ */
68
+ Sanitiser.prototype._sanitisedValue;
69
+ /** @type {?} */
70
+ Sanitiser.prototype.parameterDef;
71
+ /** @type {?} */
72
+ Sanitiser.prototype.snapshot;
73
+ /** @type {?} */
74
+ Sanitiser.prototype.sanitiser;
75
+ /**
76
+ * @abstract
77
+ * @protected
78
+ * @param {?} snapshot
79
+ * @return {?}
80
+ */
81
+ Sanitiser.prototype.readFrom = function (snapshot) { };
82
+ /**
83
+ * @abstract
84
+ * @protected
85
+ * @param {?} initialValue
86
+ * @param {?} sanitisedValue
87
+ * @return {?}
88
+ */
89
+ Sanitiser.prototype.hasChanged = function (initialValue, sanitisedValue) { };
90
+ /**
91
+ * @abstract
92
+ * @param {?} dest
93
+ * @return {?}
94
+ */
95
+ Sanitiser.prototype.injectRouteParam = function (dest) { };
96
+ }
8
97
  export class RouteParameterSanitiser {
9
98
  /**
10
99
  * @param {?} parameterDefs
100
+ * @param {?} snapshot
11
101
  * @param {?} injector
12
102
  */
13
- constructor(parameterDefs, injector) {
103
+ constructor(parameterDefs, snapshot, injector) {
14
104
  this.parameterDefs = parameterDefs;
105
+ this.snapshot = snapshot;
15
106
  this.injector = injector;
16
- this.sanitisedParameters = [];
17
- this.routeParameter = parameterDefs.find((/**
107
+ this.parameterSanitisers = [];
108
+ /** @type {?} */
109
+ const sanitisers = parameterDefs.map((/**
110
+ * @param {?} def
111
+ * @return {?}
112
+ */
113
+ def => {
114
+ return def.isArray ?
115
+ new Sanitiser.Array(def, snapshot, this.getSanitiser(def)) :
116
+ new Sanitiser.Value(def, snapshot, this.getSanitiser(def));
117
+ }));
118
+ this.routeIdSanitiser = sanitisers.find((/**
18
119
  * @param {?} p
19
120
  * @return {?}
20
121
  */
21
- p => p.isRouteId));
22
- this.queryParameters = parameterDefs.filter((/**
122
+ p => p.isRouteId()));
123
+ this.parameterSanitisers = sanitisers.filter((/**
23
124
  * @param {?} p
24
125
  * @return {?}
25
126
  */
26
- p => !p.isRouteId));
127
+ p => !p.isRouteId()));
27
128
  }
28
129
  /**
29
- * @param {?} snapshot
30
130
  * @return {?}
31
131
  */
32
- sanitise(snapshot) {
132
+ sanitise() {
33
133
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
- if (this.routeParameter) {
35
- /** @type {?} */
36
- const routeOk = yield this.sanitiseParameter(this.routeParameter, snapshot.paramMap.get(this.routeParameter.name));
37
- if (!routeOk) {
134
+ if (this.routeIdSanitiser) {
135
+ yield this.routeIdSanitiser.sanitize();
136
+ if (this.routeIdSanitiser.valueChanged) {
38
137
  // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the
39
138
  // context of the route id.
40
139
  return false;
41
140
  }
42
141
  }
43
- for (const param of this.queryParameters) {
44
- yield this.sanitiseParameter(param, snapshot.queryParamMap.get(param.name));
45
- }
46
- return this.sanitisedParameters.length === 0;
47
- });
48
- }
49
- /**
50
- * @template T
51
- * @param {?} def
52
- * @param {?} formattedInitialValue
53
- * @return {?}
54
- */
55
- sanitiseParameter(def, formattedInitialValue) {
56
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
- if (def) {
58
- /** @type {?} */
59
- const sanitiser = this.getSanitiser(def);
60
- if (sanitiser) {
61
- /** @type {?} */
62
- const initialValue = def.type.parse(formattedInitialValue);
63
- /** @type {?} */
64
- const sanitisedValue = yield sanitiser.sanitise(initialValue);
65
- if (initialValue !== sanitisedValue) {
66
- this.sanitisedParameters.push({ def, value: def.type.format(sanitisedValue) });
67
- return false;
68
- }
69
- }
142
+ for (const sanitiser of this.parameterSanitisers) {
143
+ yield sanitiser.sanitize();
70
144
  }
71
- return true;
145
+ return !this.parameterSanitisers.find((/**
146
+ * @param {?} s
147
+ * @return {?}
148
+ */
149
+ s => s.valueChanged));
72
150
  });
73
151
  }
74
152
  /**
@@ -76,35 +154,24 @@ export class RouteParameterSanitiser {
76
154
  * @return {?}
77
155
  */
78
156
  redirect(router) {
79
- assert.isTruthy(this.sanitisedParameters.length !== 0);
80
- /** @type {?} */
81
- const sanitisedRouteId = this.sanitisedParameters.find((/**
82
- * @param {?} s
83
- * @return {?}
84
- */
85
- s => s.def === this.routeParameter));
86
- if (sanitisedRouteId) {
87
- return router.navigate(['..', sanitisedRouteId.value]);
157
+ assert.isTruthy(this.parameterSanitisers.length !== 0);
158
+ if (this.routeIdSanitiser.valueChanged) {
159
+ return router.navigate(['..', this.routeIdSanitiser.sanitisedValue]);
88
160
  }
89
161
  else {
90
162
  /** @type {?} */
91
- const queryParams = this.sanitisedParameters.filter((/**
163
+ const routeParams = {};
164
+ this.parameterSanitisers.forEach((/**
92
165
  * @param {?} s
93
166
  * @return {?}
94
167
  */
95
- s => s.def !== this.routeParameter))
96
- .reduce((/**
97
- * @param {?} params
98
- * @param {?} item
99
- * @return {?}
100
- */
101
- (params, item) => (Object.assign({}, params, { [item.def.name]: item.value }))), {});
102
- return router.navigate(['.', queryParams]);
168
+ s => s.injectRouteParam(routeParams)));
169
+ return router.navigate(['.', routeParams]);
103
170
  }
104
171
  }
105
172
  /**
106
173
  * @private
107
- * @template T
174
+ * @template T, S
108
175
  * @param {?} def
109
176
  * @return {?}
110
177
  */
@@ -112,12 +179,6 @@ export class RouteParameterSanitiser {
112
179
  return def.sanitiser ? this.injector.get(def.sanitiser, new def.sanitiser()) : null;
113
180
  }
114
181
  }
115
- tslib_1.__decorate([
116
- Trace(),
117
- tslib_1.__metadata("design:type", Function),
118
- tslib_1.__metadata("design:paramtypes", [Object, String]),
119
- tslib_1.__metadata("design:returntype", Promise)
120
- ], RouteParameterSanitiser.prototype, "sanitiseParameter", null);
121
182
  tslib_1.__decorate([
122
183
  Memoize(),
123
184
  tslib_1.__metadata("design:type", Function),
@@ -129,20 +190,91 @@ if (false) {
129
190
  * @type {?}
130
191
  * @private
131
192
  */
132
- RouteParameterSanitiser.prototype.routeParameter;
133
- /**
134
- * @type {?}
135
- * @private
136
- */
137
- RouteParameterSanitiser.prototype.queryParameters;
193
+ RouteParameterSanitiser.prototype.routeIdSanitiser;
138
194
  /**
139
195
  * @type {?}
140
196
  * @private
141
197
  */
142
- RouteParameterSanitiser.prototype.sanitisedParameters;
198
+ RouteParameterSanitiser.prototype.parameterSanitisers;
143
199
  /** @type {?} */
144
200
  RouteParameterSanitiser.prototype.parameterDefs;
145
201
  /** @type {?} */
202
+ RouteParameterSanitiser.prototype.snapshot;
203
+ /** @type {?} */
146
204
  RouteParameterSanitiser.prototype.injector;
147
205
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFJM0UsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7SUFPbEMsWUFBcUIsYUFBeUMsRUFBVyxRQUFrQjtRQUF0RSxrQkFBYSxHQUFiLGFBQWEsQ0FBNEI7UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRjFFLHdCQUFtQixHQUF1RCxFQUFFLENBQUM7UUFHNUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLE1BQU07Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDO0lBQ2pFLENBQUM7Ozs7O0lBRUssUUFBUSxDQUFDLFFBQWdDOztZQUM3QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7O3NCQUNqQixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsSCxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNaLHVHQUF1RztvQkFDdkcsMkJBQTJCO29CQUMzQixPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGO1lBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4QyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDN0U7WUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUM7S0FBQTs7Ozs7OztJQUdLLGlCQUFpQixDQUFJLEdBQTJCLEVBQUUscUJBQTZCOztZQUNuRixJQUFJLEdBQUcsRUFBRTs7c0JBQ0QsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO2dCQUN4QyxJQUFJLFNBQVMsRUFBRTs7MEJBQ1AsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDOzswQkFDcEQsY0FBYyxHQUFHLE1BQU0sU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7b0JBQzdELElBQUksWUFBWSxLQUFLLGNBQWMsRUFBRTt3QkFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUMvRSxPQUFPLEtBQUssQ0FBQztxQkFDZDtpQkFDRjthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQUE7Ozs7O0lBRUQsUUFBUSxDQUFDLE1BQWM7UUFDckIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDOztjQUNqRCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFDO1FBQzFGLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDeEQ7YUFBTTs7a0JBQ0MsV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUM7aUJBQ3BGLE1BQU07Ozs7O1lBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxtQkFBTSxNQUFNLElBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUcsR0FBRSxFQUFFLENBQUM7WUFDN0UsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDOzs7Ozs7O0lBR08sWUFBWSxDQUFJLEdBQTJCO1FBQ2pELE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQXdCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdHLENBQUM7Q0FDRjtBQS9CQztJQURDLEtBQUssRUFBRTs7OztnRUFjUDtBQWVEO0lBREMsT0FBTyxFQUFFOzs7OzJEQUdUOzs7Ozs7SUF4REQsaURBQTBEOzs7OztJQUMxRCxrREFBNkQ7Ozs7O0lBRTdELHNEQUE4Rjs7SUFFbEYsZ0RBQWtEOztJQUFFLDJDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzZXJ0LCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3IvZGlzdC9zcmMnO1xuaW1wb3J0IHsgUGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MnO1xuaW1wb3J0IHsgUGFyYW1ldGVyU2FuaXRpc2VyIH0gZnJvbSAnLi9wYXJhbWV0ZXItc2FuaXRpc2VyJztcblxuZXhwb3J0IGNsYXNzIFJvdXRlUGFyYW1ldGVyU2FuaXRpc2VyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlUGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT47XG4gIHByaXZhdGUgcmVhZG9ubHkgcXVlcnlQYXJhbWV0ZXJzOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXNlZFBhcmFtZXRlcnM6IHsgZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT4sIHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGFyYW1ldGVyRGVmczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10sIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMucm91dGVQYXJhbWV0ZXIgPSBwYXJhbWV0ZXJEZWZzLmZpbmQocCA9PiBwLmlzUm91dGVJZCk7XG4gICAgdGhpcy5xdWVyeVBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJEZWZzLmZpbHRlcihwID0+ICFwLmlzUm91dGVJZCk7XG4gIH1cblxuICBhc3luYyBzYW5pdGlzZShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJvdXRlUGFyYW1ldGVyKSB7XG4gICAgICBjb25zdCByb3V0ZU9rID0gYXdhaXQgdGhpcy5zYW5pdGlzZVBhcmFtZXRlcih0aGlzLnJvdXRlUGFyYW1ldGVyLCBzbmFwc2hvdC5wYXJhbU1hcC5nZXQodGhpcy5yb3V0ZVBhcmFtZXRlci5uYW1lKSk7XG4gICAgICBpZiAoIXJvdXRlT2spIHtcbiAgICAgICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzbid0IG9rIHdlIHJlZGlyZWN0IGltbWVkaWF0ZWx5IGFzIHRoZSBxdWVyeSBwYXJhbXMgbWF5IG5lZWQgdG8gYmUgc2FuaXRpc2VkIGluIHRoZVxuICAgICAgICAvLyBjb250ZXh0IG9mIHRoZSByb3V0ZSBpZC5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIHRoaXMucXVlcnlQYXJhbWV0ZXJzKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhbml0aXNlUGFyYW1ldGVyKHBhcmFtLCBzbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldChwYXJhbS5uYW1lKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNhbml0aXNlZFBhcmFtZXRlcnMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgYXN5bmMgc2FuaXRpc2VQYXJhbWV0ZXI8VD4oZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+LCBmb3JtYXR0ZWRJbml0aWFsVmFsdWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChkZWYpIHtcbiAgICAgIGNvbnN0IHNhbml0aXNlciA9IHRoaXMuZ2V0U2FuaXRpc2VyKGRlZik7XG4gICAgICBpZiAoc2FuaXRpc2VyKSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IGRlZi50eXBlLnBhcnNlKGZvcm1hdHRlZEluaXRpYWxWYWx1ZSk7XG4gICAgICAgIGNvbnN0IHNhbml0aXNlZFZhbHVlID0gYXdhaXQgc2FuaXRpc2VyLnNhbml0aXNlKGluaXRpYWxWYWx1ZSk7XG4gICAgICAgIGlmIChpbml0aWFsVmFsdWUgIT09IHNhbml0aXNlZFZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5zYW5pdGlzZWRQYXJhbWV0ZXJzLnB1c2goeyBkZWYsIHZhbHVlOiBkZWYudHlwZS5mb3JtYXQoc2FuaXRpc2VkVmFsdWUpIH0pO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJlZGlyZWN0KHJvdXRlcjogUm91dGVyKSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuc2FuaXRpc2VkUGFyYW1ldGVycy5sZW5ndGggIT09IDApO1xuICAgIGNvbnN0IHNhbml0aXNlZFJvdXRlSWQgPSB0aGlzLnNhbml0aXNlZFBhcmFtZXRlcnMuZmluZChzID0+IHMuZGVmID09PSB0aGlzLnJvdXRlUGFyYW1ldGVyKTtcbiAgICBpZiAoc2FuaXRpc2VkUm91dGVJZCkge1xuICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShbJy4uJywgc2FuaXRpc2VkUm91dGVJZC52YWx1ZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMuc2FuaXRpc2VkUGFyYW1ldGVycy5maWx0ZXIocyA9PiBzLmRlZiAhPT0gdGhpcy5yb3V0ZVBhcmFtZXRlcilcbiAgICAgICAgLnJlZHVjZSgocGFyYW1zLCBpdGVtKSA9PiAoeyAuLi5wYXJhbXMsIFtpdGVtLmRlZi5uYW1lXTogaXRlbS52YWx1ZSB9KSwge30pO1xuICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShbJy4nLCBxdWVyeVBhcmFtc10pO1xuICAgIH1cbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRTYW5pdGlzZXI8VD4oZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KTogUGFyYW1ldGVyU2FuaXRpc2VyPFQ+IHtcbiAgICByZXR1cm4gZGVmLnNhbml0aXNlciA/IHRoaXMuaW5qZWN0b3IuZ2V0PFBhcmFtZXRlclNhbml0aXNlcjxUPj4oZGVmLnNhbml0aXNlciwgbmV3IGRlZi5zYW5pdGlzZXIoKSkgOiBudWxsO1xuICB9XG59XG4iXX0=
206
+ (function (Sanitiser) {
207
+ /**
208
+ * @template T
209
+ */
210
+ class Value extends Sanitiser {
211
+ /**
212
+ * @param {?} snapshot
213
+ * @return {?}
214
+ */
215
+ readFrom(snapshot) {
216
+ /** @type {?} */
217
+ const rawValue = this.parameterDef.isRouteId ?
218
+ snapshot.paramMap.get(this.parameterDef.name) :
219
+ snapshot.queryParamMap.get(this.parameterDef.name);
220
+ return this.parameterDef.type.parse(rawValue);
221
+ }
222
+ /**
223
+ * @protected
224
+ * @param {?} initialValue
225
+ * @param {?} sanitisedValue
226
+ * @return {?}
227
+ */
228
+ hasChanged(initialValue, sanitisedValue) {
229
+ return initialValue !== sanitisedValue;
230
+ }
231
+ /**
232
+ * @param {?} dest
233
+ * @return {?}
234
+ */
235
+ injectRouteParam(dest) {
236
+ dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);
237
+ }
238
+ }
239
+ Sanitiser.Value = Value;
240
+ /**
241
+ * @template T
242
+ */
243
+ class Array extends Sanitiser {
244
+ /**
245
+ * @param {?} snapshot
246
+ * @return {?}
247
+ */
248
+ readFrom(snapshot) {
249
+ /** @type {?} */
250
+ const rawValues = snapshot.queryParamMap.getAll(this.parameterDef.name);
251
+ return rawValues.map((/**
252
+ * @param {?} value
253
+ * @return {?}
254
+ */
255
+ value => this.parameterDef.type.parse(value)));
256
+ }
257
+ /**
258
+ * @protected
259
+ * @param {?} initialValue
260
+ * @param {?} sanitisedValue
261
+ * @return {?}
262
+ */
263
+ hasChanged(initialValue, sanitisedValue) {
264
+ return initialValue !== sanitisedValue;
265
+ }
266
+ /**
267
+ * @param {?} dest
268
+ * @return {?}
269
+ */
270
+ injectRouteParam(dest) {
271
+ dest[this.parameterDef.name] = this.sanitisedValue.map((/**
272
+ * @param {?} v
273
+ * @return {?}
274
+ */
275
+ v => this.parameterDef.type.format(v)));
276
+ }
277
+ }
278
+ Sanitiser.Array = Array;
279
+ })(Sanitiser || (Sanitiser = {}));
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUczRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFFNUIsTUFBTSxPQUFnQixTQUFTOzs7Ozs7SUFLN0IsWUFBcUIsWUFBb0MsRUFBVyxRQUErQixFQUFXLFNBQWdDO1FBQXpILGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUFXLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVcsY0FBUyxHQUFULFNBQVMsQ0FBdUI7SUFDOUksQ0FBQzs7OztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7Ozs7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRyxDQUFDOzs7O0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDOzs7O0lBT0ssUUFBUTs7WUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxJQUFJ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QyxDQUFDO1FBQ3BGLENBQUM7S0FFRjtJQWxCWSxlQUFLLFFBa0JqQixDQUFBOzs7O0lBRUQsTUFBYSxLQUFTLFNBQVEsU0FBaUI7Ozs7O1FBRTdDLFFBQVEsQ0FBQyxRQUFnQzs7a0JBQ2pDLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2RSxPQUFPLFNBQVMsQ0FBQyxHQUFHOzs7O1lBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztRQUNyRSxDQUFDOzs7Ozs7O1FBRVMsVUFBVSxDQUFDLFlBQWlCLEVBQUUsY0FBbUI7WUFDekQsT0FBTyxZQUFZLEtBQUssY0FBYyxDQUFDO1FBQ3pDLENBQUM7Ozs7O1FBR0QsZ0JBQWdCLENBQUMsSUFBUTtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUc7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQ2hHLENBQUM7S0FHRjtJQWpCWSxlQUFLLFFBaUJqQixDQUFBO0FBRUgsQ0FBQyxFQXpDZ0IsU0FBUyxLQUFULFNBQVMsUUF5Q3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBNZW1vaXplIH0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yL2Rpc3Qvc3JjJztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcbmltcG9ydCB7IFBhcmFtZXRlclNhbml0aXNlciB9IGZyb20gJy4vcGFyYW1ldGVyLXNhbml0aXNlcic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYW5pdGlzZXI8VCwgUz4ge1xuXG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlOiBTO1xuICBwcml2YXRlIF9zYW5pdGlzZWRWYWx1ZTogUztcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VD4sIHJlYWRvbmx5IHNuYXBzaG90OkFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHJlYWRvbmx5IHNhbml0aXNlcjogUGFyYW1ldGVyU2FuaXRpc2VyPFM+KSB7XG4gIH1cblxuICBpc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyRGVmLmlzUm91dGVJZDtcbiAgfVxuXG4gIGdldCB2YWx1ZUNoYW5nZWQoKTpib29sZWFuIHtcbiAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5pbml0aWFsVmFsdWUpICYmIHRoaXMuaGFzQ2hhbmdlZCh0aGlzLmluaXRpYWxWYWx1ZSwgdGhpcy5zYW5pdGlzZWRWYWx1ZSk7XG4gIH1cblxuICBnZXQgc2FuaXRpc2VkVmFsdWUoKTpTIHtcbiAgICByZXR1cm4gdGhpcy5fc2FuaXRpc2VkVmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBTO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6Uywgc2FuaXRpc2VkVmFsdWU6Uyk6IGJvb2xlYW47XG5cbiAgYWJzdHJhY3QgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSk7XG5cbiAgYXN5bmMgc2FuaXRpemUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuc2FuaXRpc2VyKSB7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHRoaXMucmVhZEZyb20odGhpcy5zbmFwc2hvdCk7XG4gICAgICB0aGlzLl9zYW5pdGlzZWRWYWx1ZSA9IGF3YWl0IHRoaXMuc2FuaXRpc2VyLnNhbml0aXNlKHRoaXMuaW5pdGlhbFZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxWYWx1ZSAhPT0gdGhpcy5fc2FuaXRpc2VkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBSb3V0ZVBhcmFtZXRlclNhbml0aXNlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZUlkU2FuaXRpc2VyOiBTYW5pdGlzZXI8YW55LCBhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlclNhbml0aXNlcnM6IFNhbml0aXNlcjxhbnksIGFueT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmFtZXRlckRlZnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLCByZWFkb25seSBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgY29uc3Qgc2FuaXRpc2VycyA9IHBhcmFtZXRlckRlZnMubWFwKGRlZiA9PiB7XG4gICAgICByZXR1cm4gZGVmLmlzQXJyYXkgP1xuICAgICAgICBuZXcgU2FuaXRpc2VyLkFycmF5KGRlZiwgc25hcHNob3QsIHRoaXMuZ2V0U2FuaXRpc2VyKGRlZikpIDpcbiAgICAgICAgbmV3IFNhbml0aXNlci5WYWx1ZShkZWYsIHNuYXBzaG90LCB0aGlzLmdldFNhbml0aXNlcihkZWYpKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlSWRTYW5pdGlzZXIgPSBzYW5pdGlzZXJzLmZpbmQocCA9PiBwLmlzUm91dGVJZCgpKTtcbiAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMgPSBzYW5pdGlzZXJzLmZpbHRlcihwID0+ICFwLmlzUm91dGVJZCgpKTtcbiAgfVxuXG4gIGFzeW5jIHNhbml0aXNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJvdXRlSWRTYW5pdGlzZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVJZFNhbml0aXNlci5zYW5pdGl6ZSgpO1xuICAgICAgaWYgKHRoaXMucm91dGVJZFNhbml0aXNlci52YWx1ZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzbid0IG9rIHdlIHJlZGlyZWN0IGltbWVkaWF0ZWx5IGFzIHRoZSBxdWVyeSBwYXJhbXMgbWF5IG5lZWQgdG8gYmUgc2FuaXRpc2VkIGluIHRoZVxuICAgICAgICAvLyBjb250ZXh0IG9mIHRoZSByb3V0ZSBpZC5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHNhbml0aXNlciBvZiB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMpIHtcbiAgICAgICAgYXdhaXQgc2FuaXRpc2VyLnNhbml0aXplKCk7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5wYXJhbWV0ZXJTYW5pdGlzZXJzLmZpbmQocyA9PiBzLnZhbHVlQ2hhbmdlZCk7XG4gIH1cblxuICByZWRpcmVjdChyb3V0ZXI6IFJvdXRlcikge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMubGVuZ3RoICE9PSAwKTtcbiAgICBpZiAodGhpcy5yb3V0ZUlkU2FuaXRpc2VyLnZhbHVlQ2hhbmdlZCkge1xuICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShbJy4uJywgdGhpcy5yb3V0ZUlkU2FuaXRpc2VyLnNhbml0aXNlZFZhbHVlXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJvdXRlUGFyYW1zID0ge307XG4gICAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMuZm9yRWFjaChzID0+IHMuaW5qZWN0Um91dGVQYXJhbShyb3V0ZVBhcmFtcykpO1xuICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShbJy4nLCByb3V0ZVBhcmFtc10pO1xuICAgIH1cbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRTYW5pdGlzZXI8VCwgUz4oZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KTogUGFyYW1ldGVyU2FuaXRpc2VyPFM+IHtcbiAgICByZXR1cm4gZGVmLnNhbml0aXNlciA/IHRoaXMuaW5qZWN0b3IuZ2V0PFBhcmFtZXRlclNhbml0aXNlcjxTPj4oZGVmLnNhbml0aXNlciwgbmV3IGRlZi5zYW5pdGlzZXIoKSkgOiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgU2FuaXRpc2VyIHtcblxuICBleHBvcnQgY2xhc3MgVmFsdWU8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVD4ge1xuXG4gICAgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBUIHtcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkID9cbiAgICAgICAgc25hcHNob3QucGFyYW1NYXAuZ2V0KHRoaXMucGFyYW1ldGVyRGVmLm5hbWUpIDpcbiAgICAgICAgc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQodGhpcy5wYXJhbWV0ZXJEZWYubmFtZSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLnBhcnNlKHJhd1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFQsIHNhbml0aXNlZFZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gaW5pdGlhbFZhbHVlICE9PSBzYW5pdGlzZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KSB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodGhpcy5zYW5pdGlzZWRWYWx1ZSk7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXk8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVFtdPiB7XG5cbiAgICByZWFkRnJvbShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFRbXSB7XG4gICAgICBjb25zdCByYXdWYWx1ZXMgPSBzbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldEFsbCh0aGlzLnBhcmFtZXRlckRlZi5uYW1lKTtcbiAgICAgIHJldHVybiByYXdWYWx1ZXMubWFwKHZhbHVlID0+IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFRbXSwgc2FuaXRpc2VkVmFsdWU6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZSAhPT0gc2FuaXRpc2VkVmFsdWU7XG4gICAgfVxuXG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KSB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy5zYW5pdGlzZWRWYWx1ZS5tYXAodiA9PiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh2KSk7XG4gICAgfVxuXG5cbiAgfVxuXG59XG4iXX0=
@@ -7,5 +7,5 @@ export { slideDownAndUpAnimation } from './lib/animations';
7
7
  export { DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point } from './lib/components';
8
8
  export { CommandDirective, FocusBindingDirective } from './lib/directives';
9
9
  export { AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService } from './lib/interaction';
10
- export { AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, ParameterType, RouteParameterBindings, RouteParameterSanitiser } from './lib/place';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHdDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHNNQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHdEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDhPQUFjLG1CQUFtQixDQUFDO0FBQ2xDLHFRQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdWktcG93ZXJ1cHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsYWNlJztcbiJdfQ==
10
+ export { AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, NavComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParameterList, ParameterType, RouteParameterBindings, Sanitiser, RouteParameterSanitiser } from './lib/place';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHdDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHNNQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHdEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDhPQUFjLG1CQUFtQixDQUFDO0FBQ2xDLHNWQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdWktcG93ZXJ1cHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsYWNlJztcbiJdfQ==
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
7
7
  */
8
- export { AngularUiPowerupsModule, slideDownAndUpAnimation, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point, CommandDirective, FocusBindingDirective, AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService, AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, ParameterType, RouteParameterBindings, RouteParameterSanitiser } from './index';
8
+ export { AngularUiPowerupsModule, slideDownAndUpAnimation, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point, CommandDirective, FocusBindingDirective, AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService, AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, NavComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParameterList, ParameterType, RouteParameterBindings, Sanitiser, RouteParameterSanitiser } from './index';
9
9
  export { DisposableComponent as ɵc } from './lib/components/disposable-component';
10
10
  export { AbstractInputComponent as ɵe } from './lib/components/forms/abstract-input.component';
11
11
  export { NumberInputComponent as ɵd } from './lib/components/forms/number-input/number-input.component';
@@ -14,18 +14,19 @@ export { SelectInputComponent as ɵh } from './lib/components/forms/select-input
14
14
  export { StringInputComponent as ɵf } from './lib/components/forms/string-input/string-input.component';
15
15
  export { CommandDirective as ɵa } from './lib/directives/command.directive';
16
16
  export { FocusBindingDirective as ɵb } from './lib/directives/focus-binding.directive';
17
- export { AbstractActivity as ɵq } from './lib/interaction/abstract-activity';
18
- export { ACTIVITY_DATA as ɵr } from './lib/interaction/activity';
19
- export { ActivityContainerComponent as ɵo } from './lib/interaction/components/activity-container/activity-container.component';
20
- export { ActivityOutletComponent as ɵv } from './lib/interaction/components/activity-outlet/activity-outlet.component';
21
- export { AlertDialogComponent as ɵt } from './lib/interaction/components/alert-dialog/alert-dialog.component';
22
- export { ConfirmationDialogComponent as ɵp } from './lib/interaction/components/confirmation-dialog/confirmation-dialog.component';
23
- export { InteractionContext as ɵx } from './lib/interaction/interaction-context';
24
- export { InteractionModule as ɵn } from './lib/interaction/interaction.module';
25
- export { DialogInteractionService as ɵw } from './lib/interaction/services/dialog-interaction.service';
17
+ export { AbstractActivity as ɵr } from './lib/interaction/abstract-activity';
18
+ export { ACTIVITY_DATA as ɵs } from './lib/interaction/activity';
19
+ export { ActivityContainerComponent as ɵp } from './lib/interaction/components/activity-container/activity-container.component';
20
+ export { ActivityOutletComponent as ɵw } from './lib/interaction/components/activity-outlet/activity-outlet.component';
21
+ export { AlertDialogComponent as ɵu } from './lib/interaction/components/alert-dialog/alert-dialog.component';
22
+ export { ConfirmationDialogComponent as ɵq } from './lib/interaction/components/confirmation-dialog/confirmation-dialog.component';
23
+ export { InteractionContext as ɵy } from './lib/interaction/interaction-context';
24
+ export { InteractionModule as ɵo } from './lib/interaction/interaction.module';
25
+ export { DialogInteractionService as ɵx } from './lib/interaction/services/dialog-interaction.service';
26
26
  export { BusyOverlayComponent as ɵk } from './lib/place/components/busy-overlay/busy-overlay.component';
27
27
  export { EmptyStateComponent as ɵj } from './lib/place/components/empty-state/empty-state.component';
28
+ export { NavComponent as ɵn } from './lib/place/components/nav/nav.component';
28
29
  export { PlaceOutletComponent as ɵl } from './lib/place/components/place-outlet/place-outlet.component';
29
30
  export { PlaceModule as ɵi } from './lib/place/place.module';
30
31
  export { PlaceService as ɵm } from './lib/place/place.service';
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vbG9uLWFuZ3VsYXItdWktcG93ZXJ1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJjb29sb24tYW5ndWxhci11aS1wb3dlcnVwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsc3ZCQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDckgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzVHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUVqSSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmV4cG9ydCB7QWJzdHJhY3RJbnB1dENvbXBvbmVudCBhcyDJtWV9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7TnVtYmVySW5wdXRDb21wb25lbnQgYXMgybVkfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7UGFzc3dvcmRJbnB1dENvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7U2VsZWN0SW5wdXRDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7U3RyaW5nSW5wdXRDb21wb25lbnQgYXMgybVmfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL3N0cmluZy1pbnB1dC9zdHJpbmctaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7Q29tbWFuZERpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvY29tbWFuZC5kaXJlY3RpdmUnO1xuZXhwb3J0IHtGb2N1c0JpbmRpbmdEaXJlY3RpdmUgYXMgybVifSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2ZvY3VzLWJpbmRpbmcuZGlyZWN0aXZlJztcbmV4cG9ydCB7QWJzdHJhY3RBY3Rpdml0eSBhcyDJtXF9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2Fic3RyYWN0LWFjdGl2aXR5JztcbmV4cG9ydCB7QUNUSVZJVFlfREFUQSBhcyDJtXJ9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2FjdGl2aXR5JztcbmV4cG9ydCB7QWxlcnQgYXMgybV1fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9hbGVydCc7XG5leHBvcnQge0FjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50IGFzIMm1b30gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQge0FjdGl2aXR5T3V0bGV0Q29tcG9uZW50IGFzIMm1dn0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQge0FsZXJ0RGlhbG9nQ29tcG9uZW50IGFzIMm1dH0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCBhcyDJtXB9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbmZpcm0gYXMgybVzfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb25maXJtJztcbmV4cG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0IGFzIMm1eH0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5leHBvcnQge0ludGVyYWN0aW9uTW9kdWxlIGFzIMm1bn0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24ubW9kdWxlJztcbmV4cG9ydCB7RGlhbG9nSW50ZXJhY3Rpb25TZXJ2aWNlIGFzIMm1d30gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vc2VydmljZXMvZGlhbG9nLWludGVyYWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtCdXN5T3ZlcmxheUNvbXBvbmVudCBhcyDJtWt9IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvYnVzeS1vdmVybGF5L2J1c3ktb3ZlcmxheS5jb21wb25lbnQnO1xuZXhwb3J0IHtFbXB0eVN0YXRlQ29tcG9uZW50IGFzIMm1an0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0IHtQbGFjZU91dGxldENvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0IHtQbGFjZU1vZHVsZSBhcyDJtWl9IGZyb20gJy4vbGliL3BsYWNlL3BsYWNlLm1vZHVsZSc7XG5leHBvcnQge1BsYWNlU2VydmljZSBhcyDJtW19IGZyb20gJy4vbGliL3BsYWNlL3BsYWNlLnNlcnZpY2UnOyJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vbG9uLWFuZ3VsYXItdWktcG93ZXJ1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJjb29sb24tYW5ndWxhci11aS1wb3dlcnVwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsdTBCQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDckgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzVHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUVqSSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuZXhwb3J0IHtBYnN0cmFjdElucHV0Q29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9hYnN0cmFjdC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJJbnB1dENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtQYXNzd29yZElucHV0Q29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZWxlY3RJbnB1dENvbXBvbmVudCBhcyDJtWh9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtTdHJpbmdJbnB1dENvbXBvbmVudCBhcyDJtWZ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvc3RyaW5nLWlucHV0L3N0cmluZy1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb21tYW5kRGlyZWN0aXZlIGFzIMm1YX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9jb21tYW5kLmRpcmVjdGl2ZSc7XG5leHBvcnQge0ZvY3VzQmluZGluZ0RpcmVjdGl2ZSBhcyDJtWJ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9jdXMtYmluZGluZy5kaXJlY3RpdmUnO1xuZXhwb3J0IHtBYnN0cmFjdEFjdGl2aXR5IGFzIMm1cn0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vYWJzdHJhY3QtYWN0aXZpdHknO1xuZXhwb3J0IHtBQ1RJVklUWV9EQVRBIGFzIMm1c30gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHknO1xuZXhwb3J0IHtBbGVydCBhcyDJtXZ9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2FsZXJ0JztcbmV4cG9ydCB7QWN0aXZpdHlDb250YWluZXJDb21wb25lbnQgYXMgybVwfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7QWN0aXZpdHlPdXRsZXRDb21wb25lbnQgYXMgybV3fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50JztcbmV4cG9ydCB7QWxlcnREaWFsb2dDb21wb25lbnQgYXMgybV1fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZy9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IGFzIMm1cX0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybSBhcyDJtXR9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbmZpcm0nO1xuZXhwb3J0IHtJbnRlcmFjdGlvbkNvbnRleHQgYXMgybV5fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmV4cG9ydCB7SW50ZXJhY3Rpb25Nb2R1bGUgYXMgybVvfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi5tb2R1bGUnO1xuZXhwb3J0IHtEaWFsb2dJbnRlcmFjdGlvblNlcnZpY2UgYXMgybV4fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9kaWFsb2ctaW50ZXJhY3Rpb24uc2VydmljZSc7XG5leHBvcnQge0J1c3lPdmVybGF5Q29tcG9uZW50IGFzIMm1a30gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9idXN5LW92ZXJsYXkvYnVzeS1vdmVybGF5LmNvbXBvbmVudCc7XG5leHBvcnQge0VtcHR5U3RhdGVDb21wb25lbnQgYXMgybVqfSBmcm9tICcuL2xpYi9wbGFjZS9jb21wb25lbnRzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5leHBvcnQge05hdkNvbXBvbmVudCBhcyDJtW59IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQnO1xuZXhwb3J0IHtQbGFjZU91dGxldENvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0IHtQbGFjZU1vZHVsZSBhcyDJtWl9IGZyb20gJy4vbGliL3BsYWNlL3BsYWNlLm1vZHVsZSc7XG5leHBvcnQge1BsYWNlU2VydmljZSBhcyDJtW19IGZyb20gJy4vbGliL3BsYWNlL3BsYWNlLnNlcnZpY2UnOyJdfQ==
package/esm5/index.js CHANGED
@@ -2,5 +2,5 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- export { AngularUiPowerupsModule, slideDownAndUpAnimation, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point, CommandDirective, FocusBindingDirective, AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService, AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, ParameterType, RouteParameterBindings, RouteParameterSanitiser } from "./public_api";
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsc3ZCQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3B1YmxpY19hcGlcIjtcbiJdfQ==
5
+ export { AngularUiPowerupsModule, slideDownAndUpAnimation, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point, CommandDirective, FocusBindingDirective, AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService, AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, NavComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParameterList, ParameterType, RouteParameterBindings, Sanitiser, RouteParameterSanitiser } from "./public_api";
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsdTBCQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3B1YmxpY19hcGlcIjtcbiJdfQ==
@@ -5,7 +5,7 @@
5
5
  import * as tslib_1 from "tslib";
6
6
  /* tslint:disable:no-input-rename */
7
7
  import { EventEmitter, HostListener, Input, Output } from '@angular/core';
8
- import { Constant, MutableListModel, MutableValueModel, UiCommand, UseDelegate } from '@coolon/pectin';
8
+ import { Command, Constant, MutableListModel, MutableValueModel, UseDelegate } from '@coolon/pectin';
9
9
  import { DisposableComponent } from '../disposable-component';
10
10
  /** @type {?} */
11
11
  var EMPTY_ERRORS = new MutableListModel().readonly;
@@ -17,9 +17,14 @@ var AbstractInputComponent = /** @class */ (function (_super) {
17
17
  tslib_1.__extends(AbstractInputComponent, _super);
18
18
  function AbstractInputComponent() {
19
19
  var _this = _super.call(this) || this;
20
+ // TODO: fix this.
21
+ // tslint:disable-next-line:no-output-native
20
22
  _this.focus = new EventEmitter();
23
+ // tslint:disable-next-line:no-output-native
21
24
  _this.blur = new EventEmitter();
25
+ // tslint:disable-next-line:no-output-native
22
26
  _this.enterKey = new EventEmitter();
27
+ // tslint:disable-next-line:no-output-native
23
28
  _this.escapeKey = new EventEmitter();
24
29
  /** @type {?} */
25
30
  var self = _this;
@@ -95,7 +100,7 @@ var AbstractInputComponent = /** @class */ (function (_super) {
95
100
  * @return {?}
96
101
  */
97
102
  function (command) {
98
- if (command && command.isEnabled()) {
103
+ if (command && command.enabled.value) {
99
104
  command.execute();
100
105
  }
101
106
  };
@@ -215,4 +220,4 @@ if (false) {
215
220
  /** @type {?} */
216
221
  AbstractInputComponent.prototype.errorStateMatcher;
217
222
  }
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUNMLFFBQVEsRUFFUixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBRVosTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7SUFHeEQsWUFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQVUsQ0FBQyxRQUFROzs7OztBQUU1RDtJQUF3RCxrREFBbUI7SUF5RHpFO1FBQUEsWUFDRSxpQkFBTyxTQU9SO1FBakRTLFdBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLFVBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFCLGNBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLGVBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztZQXdDakMsSUFBSSxHQUFHLEtBQUk7UUFDakIsS0FBSSxDQUFDLGlCQUFpQixHQUFHO1lBQ3ZCLFlBQVk7Ozs7O1lBQVosVUFBYSxPQUEyQixFQUFFLElBQXdDO2dCQUNoRixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQzs7SUFDSixDQUFDOzs7O0lBekNELDRDQUFXOzs7SUFEWDtRQUVFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Ozs7SUFHRCw4Q0FBYTs7O0lBRGI7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QUE4QyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOm5vLWlucHV0LXJlbmFtZSAqL1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQge1xuICBDb25zdGFudCxcbiAgTGlzdE1vZGVsLFxuICBNdXRhYmxlTGlzdE1vZGVsLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgVWlDb21tYW5kLFxuICBVc2VEZWxlZ2F0ZSxcbiAgVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuXG5cbmNvbnN0IEVNUFRZX0VSUk9SUyA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPHN0cmluZz4oKS5yZWFkb25seTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SW5wdXRDb21wb25lbnQ8VD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBAVXNlRGVsZWdhdGUoKVxuICB2YWx1ZU1vZGVsOiBNdXRhYmxlVmFsdWVNb2RlbDxUPjtcblxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBmbG9hdExhYmVsOiAnYXV0bycgfCAnYWx3YXlzJyB8ICduZXZlcic7XG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoJ2NvbW1hbmQuZm9jdXMnKSBmb2N1c0NvbW1hbmQ6IFVpQ29tbWFuZC5OdWxsYXJ5O1xuICBASW5wdXQoJ2NvbW1hbmQuYmx1cicpIGJsdXJDb21tYW5kOiBVaUNvbW1hbmQuTnVsbGFyeTtcbiAgQElucHV0KCdjb21tYW5kLmVudGVyJykgZW50ZXJDb21tYW5kOiBVaUNvbW1hbmQuTnVsbGFyeTtcbiAgQElucHV0KCdjb21tYW5kLmVzY2FwZScpIGVzY2FwZUNvbW1hbmQ6IFVpQ29tbWFuZC5OdWxsYXJ5O1xuICBASW5wdXQoJ2NvbW1hbmQuY2xpY2snKSBjbGlja0NvbW1hbmQ6IFVpQ29tbWFuZC5OdWxsYXJ5O1xuXG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlbnRlcktleSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGVzY2FwZUtleSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBub3RpZnlDbGljaygpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmNsaWNrQ29tbWFuZCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgbm90aWZ5Rm9jdXNJbigpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmZvY3VzQ29tbWFuZCk7XG4gICAgdGhpcy5mb2N1cy5lbWl0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIG5vdGlmeUZvY3VzT3V0KCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuYmx1ckNvbW1hbmQpO1xuICAgIHRoaXMuYmx1ci5lbWl0KCk7XG4gIH1cblxuXG4gIG5vdGlmeUVudGVyS2V5KCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuZW50ZXJDb21tYW5kKTtcbiAgICB0aGlzLmVudGVyS2V5LmVtaXQoKTtcbiAgfVxuXG4gIG5vdGlmeUVzY2FwZUtleSgpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmVzY2FwZUNvbW1hbmQpO1xuICAgIHRoaXMuZXNjYXBlS2V5LmVtaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzYWZlbHlJbnZva2UoY29tbWFuZDogVWlDb21tYW5kLk51bGxhcnkpIHtcbiAgICBpZiAoY29tbWFuZCAmJiBjb21tYW5kLmlzRW5hYmxlZCgpKSB7XG4gICAgICBjb21tYW5kLmV4ZWN1dGUoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXIgPSB7XG4gICAgICBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzZWxmLmhhc0Vycm9ycygpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLl9mb2N1c2VkID0gdGhpcy52YWx1ZU1vZGVsWydmb2N1c2VkJ10gfHwgbmV3IFZhbHVlSG9sZGVyKCk7XG4gIH1cblxuICBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZC52YWx1ZTtcbiAgfVxuXG4gIGdldCBlbmFibGVkKCk6IFZhbHVlTW9kZWw8Ym9vbGVhbj4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gKHRoaXMudmFsdWVNb2RlbCBhcyBhbnkpLmVuYWJsZWQgfHwgQ29uc3RhbnQuVFJVRTtcbiAgfVxuXG4gIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZXJyb3JMaXN0LnF1ZXJ5KCkuaXNFbXB0eSgpO1xuICB9XG5cbiAgZ2V0IGVycm9yTGlzdCgpOiBMaXN0TW9kZWw8c3RyaW5nPiB7XG4gICAgcmV0dXJuICh0aGlzLnZhbHVlTW9kZWwgYXMgYW55KS5lcnJvckxpc3QgfHwgRU1QVFlfRVJST1JTO1xuICB9XG5cbiAgZ2V0IGZpcnN0RXJyb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRXJyb3JzKCkgPyB0aGlzLmVycm9yTGlzdC52YWx1ZVswXSA6IG51bGw7XG4gIH1cblxuXG59XG4iXX0=
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBRVIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixXQUFXLEVBRVosTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7SUFHeEQsWUFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQVUsQ0FBQyxRQUFROzs7OztBQUU1RDtJQUF3RCxrREFBbUI7SUE4RHpFO1FBQUEsWUFDRSxpQkFBTyxTQU9SOzs7UUFwRFMsV0FBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7O1FBRTNCLFVBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQUUxQixjQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFFOUIsZUFBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7O1lBd0NqQyxJQUFJLEdBQUcsS0FBSTtRQUNqQixLQUFJLENBQUMsaUJBQWlCLEdBQUc7WUFDdkIsWUFBWTs7Ozs7WUFBWixVQUFhLE9BQTJCLEVBQUUsSUFBd0M7Z0JBQ2hGLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDOztJQUNKLENBQUM7Ozs7SUF6Q0QsNENBQVc7OztJQURYO1FBRUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7OztJQUdELDhDQUFhOzs7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OztJQUV6QyxtREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHtcbiAgQ29tbWFuZCxcbiAgQ29uc3RhbnQsXG4gIExpc3RNb2RlbCxcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFVzZURlbGVnYXRlLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cblxuY29uc3QgRU1QVFlfRVJST1JTID0gbmV3IE11dGFibGVMaXN0TW9kZWw8c3RyaW5nPigpLnJlYWRvbmx5O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RJbnB1dENvbXBvbmVudDxUPiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIEBVc2VEZWxlZ2F0ZSgpXG4gIHZhbHVlTW9kZWw6IE11dGFibGVWYWx1ZU1vZGVsPFQ+O1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw6ICdhdXRvJyB8ICdhbHdheXMnIHwgJ25ldmVyJztcbiAgQElucHV0KCkgaGludDogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgnY29tbWFuZC5mb2N1cycpIGZvY3VzQ29tbWFuZDogQ29tbWFuZDxhbnk+O1xuICBASW5wdXQoJ2NvbW1hbmQuYmx1cicpIGJsdXJDb21tYW5kOiBDb21tYW5kPGFueT47XG4gIEBJbnB1dCgnY29tbWFuZC5lbnRlcicpIGVudGVyQ29tbWFuZDogQ29tbWFuZDxhbnk+O1xuICBASW5wdXQoJ2NvbW1hbmQuZXNjYXBlJykgZXNjYXBlQ29tbWFuZDogQ29tbWFuZDxhbnk+O1xuICBASW5wdXQoJ2NvbW1hbmQuY2xpY2snKSBjbGlja0NvbW1hbmQ6IENvbW1hbmQ8YW55PjtcblxuICAvLyBUT0RPOiBmaXggdGhpcy5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGVudGVyS2V5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgZXNjYXBlS2V5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHJlYWRvbmx5IGVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcjtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG5vdGlmeUNsaWNrKCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuY2xpY2tDb21tYW5kKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICBub3RpZnlGb2N1c0luKCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuZm9jdXNDb21tYW5kKTtcbiAgICB0aGlzLmZvY3VzLmVtaXQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgbm90aWZ5Rm9jdXNPdXQoKSB7XG4gICAgdGhpcy5zYWZlbHlJbnZva2UodGhpcy5ibHVyQ29tbWFuZCk7XG4gICAgdGhpcy5ibHVyLmVtaXQoKTtcbiAgfVxuXG5cbiAgbm90aWZ5RW50ZXJLZXkoKSB7XG4gICAgdGhpcy5zYWZlbHlJbnZva2UodGhpcy5lbnRlckNvbW1hbmQpO1xuICAgIHRoaXMuZW50ZXJLZXkuZW1pdCgpO1xuICB9XG5cbiAgbm90aWZ5RXNjYXBlS2V5KCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuZXNjYXBlQ29tbWFuZCk7XG4gICAgdGhpcy5lc2NhcGVLZXkuZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNhZmVseUludm9rZShjb21tYW5kOiBDb21tYW5kPGFueT4pIHtcbiAgICBpZiAoY29tbWFuZCAmJiBjb21tYW5kLmVuYWJsZWQudmFsdWUpIHtcbiAgICAgIGNvbW1hbmQuZXhlY3V0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5lcnJvclN0YXRlTWF0Y2hlciA9IHtcbiAgICAgIGlzRXJyb3JTdGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHNlbGYuaGFzRXJyb3JzKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMuX2ZvY3VzZWQgPSB0aGlzLnZhbHVlTW9kZWxbJ2ZvY3VzZWQnXSB8fCBuZXcgVmFsdWVIb2xkZXIoKTtcbiAgfVxuXG4gIGlzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVkLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWQoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiAodGhpcy52YWx1ZU1vZGVsIGFzIGFueSkuZW5hYmxlZCB8fCBDb25zdGFudC5UUlVFO1xuICB9XG5cbiAgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5lcnJvckxpc3QucXVlcnkoKS5pc0VtcHR5KCk7XG4gIH1cblxuICBnZXQgZXJyb3JMaXN0KCk6IExpc3RNb2RlbDxzdHJpbmc+IHtcbiAgICByZXR1cm4gKHRoaXMudmFsdWVNb2RlbCBhcyBhbnkpLmVycm9yTGlzdCB8fCBFTVBUWV9FUlJPUlM7XG4gIH1cblxuICBnZXQgZmlyc3RFcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvcnMoKSA/IHRoaXMuZXJyb3JMaXN0LnZhbHVlWzBdIDogbnVsbDtcbiAgfVxuXG5cbn1cbiJdfQ==