@coolon/angular-ui-powerups 0.0.67 → 0.0.68

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 (121) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +2712 -2285
  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 +24 -22
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/coolon-angular-ui-powerups.js +24 -22
  8. package/esm2015/index.js +2 -2
  9. package/esm2015/lib/angular-ui-powerups.module.js +6 -3
  10. package/esm2015/lib/components/index.js +2 -1
  11. package/esm2015/lib/components/noop/noop.component.js +19 -0
  12. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +2 -2
  13. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +2 -2
  14. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -2
  15. package/esm2015/lib/interaction/components/interaction-outlet/interaction-outlet.component.js +19 -0
  16. package/esm2015/lib/interaction/guards/interaction-guard.service.js +85 -0
  17. package/esm2015/lib/interaction/index.js +3 -2
  18. package/esm2015/lib/interaction/interaction.module.js +8 -3
  19. package/esm2015/lib/interaction/services/dialog-interaction.service.js +30 -5
  20. package/esm2015/lib/place/components/abstract-place-navigation.component.js +5 -5
  21. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +2 -2
  22. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +60 -66
  23. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +2 -2
  24. package/esm2015/lib/place/index.js +9 -8
  25. package/esm2015/lib/place/navigation-session.js +147 -0
  26. package/esm2015/lib/place/place-component.js +18 -14
  27. package/esm2015/lib/place/place-definition.js +197 -5
  28. package/esm2015/lib/place/place-history.js +3 -2
  29. package/esm2015/lib/place/place-router.js +183 -89
  30. package/esm2015/lib/place/route/formatter.js +63 -0
  31. package/esm2015/lib/place/route/guards/leave-place.guard.js +193 -0
  32. package/esm2015/lib/place/route/guards/place-route.guard.js +243 -0
  33. package/esm2015/lib/place/route/parameter-decorators.js +35 -18
  34. package/esm2015/lib/place/route/parameter-definition.class.js +123 -67
  35. package/esm2015/lib/place/route/parameter-sanitiser.js +4 -3
  36. package/esm2015/lib/place/route/parameter-snapshot.js +11 -388
  37. package/esm2015/lib/place/route/visit-sanitiser.js +88 -0
  38. package/esm2015/lib/place/visit.js +107 -8
  39. package/esm2015/public_api.js +4 -4
  40. package/esm5/coolon-angular-ui-powerups.js +24 -22
  41. package/esm5/index.js +2 -2
  42. package/esm5/lib/angular-ui-powerups.module.js +6 -3
  43. package/esm5/lib/components/index.js +2 -1
  44. package/esm5/lib/components/noop/noop.component.js +21 -0
  45. package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +2 -2
  46. package/esm5/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +2 -2
  47. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -2
  48. package/esm5/lib/interaction/components/interaction-outlet/interaction-outlet.component.js +21 -0
  49. package/esm5/lib/interaction/guards/interaction-guard.service.js +94 -0
  50. package/esm5/lib/interaction/index.js +3 -2
  51. package/esm5/lib/interaction/interaction.module.js +8 -3
  52. package/esm5/lib/interaction/services/dialog-interaction.service.js +28 -5
  53. package/esm5/lib/place/components/abstract-place-navigation.component.js +5 -5
  54. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +2 -2
  55. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +70 -82
  56. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +2 -2
  57. package/esm5/lib/place/index.js +9 -8
  58. package/esm5/lib/place/navigation-session.js +193 -0
  59. package/esm5/lib/place/place-component.js +19 -15
  60. package/esm5/lib/place/place-definition.js +253 -5
  61. package/esm5/lib/place/place-history.js +7 -3
  62. package/esm5/lib/place/place-router.js +240 -108
  63. package/esm5/lib/place/route/formatter.js +96 -0
  64. package/esm5/lib/place/route/guards/leave-place.guard.js +152 -0
  65. package/esm5/lib/place/route/guards/place-route.guard.js +273 -0
  66. package/esm5/lib/place/route/parameter-decorators.js +35 -18
  67. package/esm5/lib/place/route/parameter-definition.class.js +179 -76
  68. package/esm5/lib/place/route/parameter-sanitiser.js +4 -3
  69. package/esm5/lib/place/route/parameter-snapshot.js +11 -480
  70. package/esm5/lib/place/route/visit-sanitiser.js +99 -0
  71. package/esm5/lib/place/visit.js +160 -8
  72. package/esm5/public_api.js +4 -4
  73. package/fesm2015/coolon-angular-ui-powerups.js +1441 -1108
  74. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  75. package/fesm5/coolon-angular-ui-powerups.js +2705 -2282
  76. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  77. package/lib/components/index.d.ts +1 -0
  78. package/lib/components/noop/noop.component.d.ts +3 -0
  79. package/lib/interaction/components/interaction-outlet/interaction-outlet.component.d.ts +3 -0
  80. package/lib/interaction/guards/interaction-guard.service.d.ts +13 -0
  81. package/lib/interaction/index.d.ts +2 -1
  82. package/lib/interaction/services/dialog-interaction.service.d.ts +5 -1
  83. package/lib/place/components/place-outlet/place-outlet.component.d.ts +12 -12
  84. package/lib/place/index.d.ts +5 -4
  85. package/lib/place/navigation-session.d.ts +26 -0
  86. package/lib/place/place-component.d.ts +3 -3
  87. package/lib/place/place-definition.d.ts +30 -3
  88. package/lib/place/place-history.d.ts +3 -3
  89. package/lib/place/place-router.d.ts +25 -19
  90. package/lib/place/route/{parameter-type.d.ts → formatter.d.ts} +5 -5
  91. package/lib/place/{guards → route/guards}/leave-place.guard.d.ts +3 -3
  92. package/lib/place/route/guards/place-route.guard.d.ts +27 -0
  93. package/lib/place/route/parameter-decorators.d.ts +14 -6
  94. package/lib/place/route/parameter-definition.class.d.ts +21 -17
  95. package/lib/place/route/parameter-sanitiser.d.ts +3 -2
  96. package/lib/place/route/parameter-snapshot.d.ts +4 -26
  97. package/lib/place/route/visit-sanitiser.d.ts +12 -0
  98. package/lib/place/visit.d.ts +24 -3
  99. package/package.json +1 -1
  100. package/schematics/place-routes/place-class-scanner.d.ts +2 -2
  101. package/schematics/place-routes/place-class-scanner.js +7 -7
  102. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  103. package/schematics/place-routes/place-def.d.ts +3 -2
  104. package/schematics/place-routes/place-def.js +21 -12
  105. package/schematics/place-routes/place-def.js.map +1 -1
  106. package/schematics/place-routes/templates/place-destinations.ts.template +5 -3
  107. package/schematics/place-routes/templates/place-routes.ts.template +10 -1
  108. package/schematics/place-routes/templates/place-visits.ts.template +21 -0
  109. package/esm2015/lib/interaction/guards/close-interaction.guard.js +0 -62
  110. package/esm2015/lib/place/guards/leave-place.guard.js +0 -194
  111. package/esm2015/lib/place/guards/place-route.guard.js +0 -74
  112. package/esm2015/lib/place/route/parameter-type.js +0 -61
  113. package/esm2015/lib/place/route/route-parameter-value.js +0 -230
  114. package/esm5/lib/interaction/guards/close-interaction.guard.js +0 -66
  115. package/esm5/lib/place/guards/leave-place.guard.js +0 -159
  116. package/esm5/lib/place/guards/place-route.guard.js +0 -78
  117. package/esm5/lib/place/route/parameter-type.js +0 -94
  118. package/esm5/lib/place/route/route-parameter-value.js +0 -316
  119. package/lib/interaction/guards/close-interaction.guard.d.ts +0 -12
  120. package/lib/place/guards/place-route.guard.d.ts +0 -10
  121. package/lib/place/route/route-parameter-value.d.ts +0 -42
@@ -5,46 +5,115 @@
5
5
  import * as tslib_1 from "tslib";
6
6
  import { Opts } from '@coolon/typescript-utilities';
7
7
  import _ from 'lodash';
8
- import { PlaceHistory } from '../place-history';
9
8
  /**
10
9
  * @abstract
11
- * @template T, S
10
+ * @template T, E
12
11
  */
13
12
  var /**
14
13
  * @abstract
15
- * @template T, S
14
+ * @template T, E
16
15
  */
17
16
  ParameterDefinition = /** @class */ (function () {
18
- function ParameterDefinition(propertyName, type, options) {
17
+ function ParameterDefinition(propertyName, options, urlFormat) {
19
18
  this.propertyName = propertyName;
20
- this.type = type;
21
- /** @type {?} */
22
- var opts = Opts.get(options);
23
- this.name = opts.getOptional('as', propertyName);
24
- this.remember = opts.getOptional('remember', false);
25
- this.defaultValue = opts.getOptional('defaultValue', null);
19
+ this.urlFormat = urlFormat;
20
+ this.options = Opts.get(options);
21
+ this.remember = this.options.getOptional('remember', false);
22
+ this.defaultValue = this.options.getOptional('defaultValue', null);
26
23
  }
24
+ Object.defineProperty(ParameterDefinition.prototype, "name", {
25
+ get: /**
26
+ * @return {?}
27
+ */
28
+ function () {
29
+ return this.options.getOptional('as', this.propertyName);
30
+ },
31
+ enumerable: true,
32
+ configurable: true
33
+ });
34
+ Object.defineProperty(ParameterDefinition.prototype, "isRouteParameter", {
35
+ // @Trace()
36
+ get:
37
+ // @Trace()
38
+ /**
39
+ * @return {?}
40
+ */
41
+ function () {
42
+ return !!this.urlFormat;
43
+ },
44
+ enumerable: true,
45
+ configurable: true
46
+ });
47
+ /**
48
+ * @protected
49
+ * @template K
50
+ * @param {?} key
51
+ * @return {?}
52
+ */
53
+ ParameterDefinition.prototype.getOptionValue = /**
54
+ * @protected
55
+ * @template K
56
+ * @param {?} key
57
+ * @return {?}
58
+ */
59
+ function (key) {
60
+ return this.options.getOptional(key, null);
61
+ };
62
+ // @Trace()
63
+ // @Trace()
27
64
  /**
65
+ * @param {?} value
66
+ * @param {?} visit
67
+ * @param {?} placeHistory
28
68
  * @param {?} injector
29
69
  * @return {?}
30
70
  */
31
- ParameterDefinition.prototype.getSanitiser = /**
71
+ ParameterDefinition.prototype.sanitise =
72
+ // @Trace()
73
+ /**
74
+ * @param {?} value
75
+ * @param {?} visit
76
+ * @param {?} placeHistory
32
77
  * @param {?} injector
33
78
  * @return {?}
34
79
  */
35
- function (injector) {
36
- if (this.remember || !_.isNil(this.defaultValue)) {
37
- return new ParameterDefinition.DefaultParameterSanitiser(this.remember, this.defaultValue, injector.get(PlaceHistory));
38
- }
39
- else {
40
- return null;
41
- }
80
+ function (value, visit, placeHistory, injector) {
81
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
82
+ var previousVisit;
83
+ return tslib_1.__generator(this, function (_a) {
84
+ if (this.isMissingFrom(visit)) {
85
+ previousVisit = _.first(placeHistory.getHistory(visit.placeDefinition));
86
+ if (this.remember && previousVisit) {
87
+ value = previousVisit.getParameter(this.name);
88
+ }
89
+ return [2 /*return*/, this.isEmptyValue(value) ? this.defaultValue : value];
90
+ }
91
+ else {
92
+ // todo: add custom sanitiser
93
+ return [2 /*return*/, value];
94
+ }
95
+ return [2 /*return*/];
96
+ });
97
+ });
98
+ };
99
+ /**
100
+ * @private
101
+ * @param {?} visit
102
+ * @return {?}
103
+ */
104
+ ParameterDefinition.prototype.isMissingFrom = /**
105
+ * @private
106
+ * @param {?} visit
107
+ * @return {?}
108
+ */
109
+ function (visit) {
110
+ return !visit.hasParameter(this.name) || (this.isRouteId && !visit.hasRouteId());
42
111
  };
43
112
  return ParameterDefinition;
44
113
  }());
45
114
  /**
46
115
  * @abstract
47
- * @template T, S
116
+ * @template T, E
48
117
  */
49
118
  export { ParameterDefinition };
50
119
  if (false) {
@@ -53,21 +122,31 @@ if (false) {
53
122
  /** @type {?} */
54
123
  ParameterDefinition.prototype.isArray;
55
124
  /** @type {?} */
56
- ParameterDefinition.prototype.name;
57
- /**
58
- * @type {?}
59
- * @private
60
- */
61
125
  ParameterDefinition.prototype.remember;
126
+ /** @type {?} */
127
+ ParameterDefinition.prototype.defaultValue;
62
128
  /**
63
129
  * @type {?}
64
130
  * @private
65
131
  */
66
- ParameterDefinition.prototype.defaultValue;
132
+ ParameterDefinition.prototype.options;
67
133
  /** @type {?} */
68
134
  ParameterDefinition.prototype.propertyName;
69
135
  /** @type {?} */
70
- ParameterDefinition.prototype.type;
136
+ ParameterDefinition.prototype.urlFormat;
137
+ /**
138
+ * @abstract
139
+ * @param {?} value
140
+ * @return {?}
141
+ */
142
+ ParameterDefinition.prototype.isEmptyValue = function (value) { };
143
+ /**
144
+ * @abstract
145
+ * @param {?} a
146
+ * @param {?} b
147
+ * @return {?}
148
+ */
149
+ ParameterDefinition.prototype.hasChanged = function (a, b) { };
71
150
  }
72
151
  (function (ParameterDefinition) {
73
152
  /**
@@ -100,6 +179,30 @@ if (false) {
100
179
  _this.isArray = false;
101
180
  return _this;
102
181
  }
182
+ /**
183
+ * @param {?} value
184
+ * @return {?}
185
+ */
186
+ RouteId.prototype.isEmptyValue = /**
187
+ * @param {?} value
188
+ * @return {?}
189
+ */
190
+ function (value) {
191
+ return _.isNil(value);
192
+ };
193
+ /**
194
+ * @param {?} a
195
+ * @param {?} b
196
+ * @return {?}
197
+ */
198
+ RouteId.prototype.hasChanged = /**
199
+ * @param {?} a
200
+ * @param {?} b
201
+ * @return {?}
202
+ */
203
+ function (a, b) {
204
+ return a !== b;
205
+ };
103
206
  return RouteId;
104
207
  }(ParameterDefinition));
105
208
  ParameterDefinition.RouteId = RouteId;
@@ -123,6 +226,30 @@ if (false) {
123
226
  _this.isArray = false;
124
227
  return _this;
125
228
  }
229
+ /**
230
+ * @param {?} value
231
+ * @return {?}
232
+ */
233
+ ValueParameter.prototype.isEmptyValue = /**
234
+ * @param {?} value
235
+ * @return {?}
236
+ */
237
+ function (value) {
238
+ return _.isNil(value);
239
+ };
240
+ /**
241
+ * @param {?} a
242
+ * @param {?} b
243
+ * @return {?}
244
+ */
245
+ ValueParameter.prototype.hasChanged = /**
246
+ * @param {?} a
247
+ * @param {?} b
248
+ * @return {?}
249
+ */
250
+ function (a, b) {
251
+ return a !== b;
252
+ };
126
253
  return ValueParameter;
127
254
  }(ParameterDefinition));
128
255
  ParameterDefinition.ValueParameter = ValueParameter;
@@ -140,68 +267,44 @@ if (false) {
140
267
  */
141
268
  ArrayParameter = /** @class */ (function (_super) {
142
269
  tslib_1.__extends(ArrayParameter, _super);
143
- function ArrayParameter() {
144
- var _this = _super !== null && _super.apply(this, arguments) || this;
270
+ function ArrayParameter(parameterName, options, urlFormat) {
271
+ var _this = _super.call(this, parameterName, options, urlFormat) || this;
145
272
  _this.isRouteId = false;
146
273
  _this.isArray = true;
147
274
  return _this;
148
275
  }
149
- return ArrayParameter;
150
- }(ParameterDefinition));
151
- ParameterDefinition.ArrayParameter = ArrayParameter;
152
- if (false) {
153
- /** @type {?} */
154
- ArrayParameter.prototype.isRouteId;
155
- /** @type {?} */
156
- ArrayParameter.prototype.isArray;
157
- }
158
- /**
159
- * @template T, S
160
- */
161
- var /**
162
- * @template T, S
163
- */
164
- DefaultParameterSanitiser = /** @class */ (function () {
165
- function DefaultParameterSanitiser(remember, defaultValue, placeHistory) {
166
- this.remember = remember;
167
- this.defaultValue = defaultValue;
168
- this.placeHistory = placeHistory;
169
- }
170
276
  /**
171
- * @param {?} parameter
172
- * @param {?=} visit
277
+ * @param {?} value
173
278
  * @return {?}
174
279
  */
175
- DefaultParameterSanitiser.prototype.sanitise = /**
176
- * @param {?} parameter
177
- * @param {?=} visit
280
+ ArrayParameter.prototype.isEmptyValue = /**
281
+ * @param {?} value
178
282
  * @return {?}
179
283
  */
180
- function (parameter, visit) {
181
- /** @type {?} */
182
- var value = parameter.value;
183
- if (parameter.isMissing()) {
184
- /** @type {?} */
185
- var previousVisit = _.first(this.placeHistory.getHistory(visit.placeDefinition));
186
- if (this.remember && previousVisit) {
187
- value = previousVisit.getValueOf(parameter.definition);
188
- }
189
- return parameter.isEmptyValue(value) ? this.defaultValue : value;
190
- }
191
- else {
192
- return value;
193
- }
284
+ function (value) {
285
+ return _.isNil(value) || value.length < 1;
286
+ };
287
+ /**
288
+ * @param {?} a
289
+ * @param {?} b
290
+ * @return {?}
291
+ */
292
+ ArrayParameter.prototype.hasChanged = /**
293
+ * @param {?} a
294
+ * @param {?} b
295
+ * @return {?}
296
+ */
297
+ function (a, b) {
298
+ return !_.isEqual(a, b);
194
299
  };
195
- return DefaultParameterSanitiser;
196
- }());
197
- ParameterDefinition.DefaultParameterSanitiser = DefaultParameterSanitiser;
300
+ return ArrayParameter;
301
+ }(ParameterDefinition));
302
+ ParameterDefinition.ArrayParameter = ArrayParameter;
198
303
  if (false) {
199
304
  /** @type {?} */
200
- DefaultParameterSanitiser.prototype.remember;
201
- /** @type {?} */
202
- DefaultParameterSanitiser.prototype.defaultValue;
305
+ ArrayParameter.prototype.isRouteId;
203
306
  /** @type {?} */
204
- DefaultParameterSanitiser.prototype.placeHistory;
307
+ ArrayParameter.prototype.isArray;
205
308
  }
206
309
  })(ParameterDefinition || (ParameterDefinition = {}));
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFPaEQ7Ozs7O0lBUUUsNkJBQXFCLFlBQW9CLEVBQVcsSUFBc0IsRUFBRSxPQUF1QztRQUE5RixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFXLFNBQUksR0FBSixJQUFJLENBQWtCOztZQUNsRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7SUFFRCwwQ0FBWTs7OztJQUFaLFVBQWEsUUFBa0I7UUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDaEQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7U0FDeEg7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBdEJELElBc0JDOzs7Ozs7OztJQXJCQyx3Q0FBcUM7O0lBQ3JDLHNDQUFtQzs7SUFFbkMsbUNBQXNCOzs7OztJQUN0Qix1Q0FBMEI7Ozs7O0lBQzFCLDJDQUF3Qjs7SUFFWiwyQ0FBNkI7O0lBQUUsbUNBQStCOztBQWdCNUUsV0FBaUIsbUJBQW1COzs7OztJQUVsQyxzQkFNQzs7OztRQUxDLHFCQUFZOztRQUNaLDJCQUFtQjs7UUFDbkIsMkJBQW1COztRQUNuQiwrQkFBaUI7Ozs7O0lBSW5COzs7O1FBQWdDLG1DQUFzQjtRQUF0RDtZQUFBLHFFQUdDO1lBRlUsZUFBUyxHQUFHLElBQUksQ0FBQztZQUNqQixhQUFPLEdBQUcsS0FBSyxDQUFDOztRQUMzQixDQUFDO1FBQUQsY0FBQztJQUFELENBQUMsQUFIRCxDQUFnQyxtQkFBbUIsR0FHbEQ7SUFIWSwyQkFBTyxVQUduQixDQUFBOzs7UUFGQyw0QkFBMEI7O1FBQzFCLDBCQUF5Qjs7Ozs7SUFHM0I7Ozs7UUFBdUMsMENBQXNCO1FBQTdEO1lBQUEscUVBR0M7WUFGVSxlQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLGFBQU8sR0FBRyxLQUFLLENBQUM7O1FBQzNCLENBQUM7UUFBRCxxQkFBQztJQUFELENBQUMsQUFIRCxDQUF1QyxtQkFBbUIsR0FHekQ7SUFIWSxrQ0FBYyxpQkFHMUIsQ0FBQTs7O1FBRkMsbUNBQTJCOztRQUMzQixpQ0FBeUI7Ozs7O0lBRzNCOzs7O1FBQXVDLDBDQUEyQjtRQUFsRTtZQUFBLHFFQUdDO1lBRlUsZUFBUyxHQUFHLEtBQUssQ0FBQztZQUNsQixhQUFPLEdBQUcsSUFBSSxDQUFDOztRQUMxQixDQUFDO1FBQUQscUJBQUM7SUFBRCxDQUFDLEFBSEQsQ0FBdUMsbUJBQW1CLEdBR3pEO0lBSFksa0NBQWMsaUJBRzFCLENBQUE7OztRQUZDLG1DQUEyQjs7UUFDM0IsaUNBQXdCOzs7OztJQUkxQjs7OztRQUVFLG1DQUFxQixRQUFpQixFQUFXLFlBQWUsRUFBVyxZQUEwQjtZQUFoRixhQUFRLEdBQVIsUUFBUSxDQUFTO1lBQVcsaUJBQVksR0FBWixZQUFZLENBQUc7WUFBVyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNyRyxDQUFDOzs7Ozs7UUFFRCw0Q0FBUTs7Ozs7UUFBUixVQUFTLFNBQTJDLEVBQUUsS0FBYTs7Z0JBQzdELEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSztZQUMzQixJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRTs7b0JBQ25CLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDbEYsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLGFBQWEsRUFBRTtvQkFDbEMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN4RDtnQkFDRCxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUNsRTtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQztRQUNILGdDQUFDO0lBQUQsQ0FBQyxBQWpCRCxJQWlCQztJQWpCWSw2Q0FBeUIsNEJBaUJyQyxDQUFBOzs7UUFmYSw2Q0FBMEI7O1FBQUUsaURBQXdCOztRQUFFLGlEQUFtQzs7QUFpQnpHLENBQUMsRUE3Q2dCLG1CQUFtQixLQUFuQixtQkFBbUIsUUE2Q25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgT3B0cyB9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBsYWNlSGlzdG9yeSB9IGZyb20gJy4uL3BsYWNlLWhpc3RvcnknO1xuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuLi92aXNpdCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTYW5pdGlzZXIgfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuaW1wb3J0IHsgUGFyYW1ldGVyVHlwZSB9IGZyb20gJy4vcGFyYW1ldGVyLXR5cGUnO1xuaW1wb3J0IHsgUm91dGVQYXJhbWV0ZXJWYWx1ZSB9IGZyb20gJy4vcm91dGUtcGFyYW1ldGVyLXZhbHVlJztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBTID0gVD4ge1xuICBhYnN0cmFjdCByZWFkb25seSBpc1JvdXRlSWQ6IGJvb2xlYW47XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzQXJyYXk6IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlbWVtYmVyOiBib29sZWFuO1xuICBwcml2YXRlIGRlZmF1bHRWYWx1ZTogUztcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwcm9wZXJ0eU5hbWU6IHN0cmluZywgcmVhZG9ubHkgdHlwZTogUGFyYW1ldGVyVHlwZTxUPiwgb3B0aW9uczogUGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFM+KSB7XG4gICAgY29uc3Qgb3B0cyA9IE9wdHMuZ2V0KG9wdGlvbnMpO1xuICAgIHRoaXMubmFtZSA9IG9wdHMuZ2V0T3B0aW9uYWwoJ2FzJywgcHJvcGVydHlOYW1lKTtcbiAgICB0aGlzLnJlbWVtYmVyID0gb3B0cy5nZXRPcHRpb25hbCgncmVtZW1iZXInLCBmYWxzZSk7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBvcHRzLmdldE9wdGlvbmFsKCdkZWZhdWx0VmFsdWUnLCBudWxsKTtcbiAgfVxuXG4gIGdldFNhbml0aXNlcihpbmplY3RvcjogSW5qZWN0b3IpOiBQYXJhbWV0ZXJTYW5pdGlzZXI8Uz4ge1xuICAgIGlmICh0aGlzLnJlbWVtYmVyIHx8ICFfLmlzTmlsKHRoaXMuZGVmYXVsdFZhbHVlKSkge1xuICAgICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJEZWZpbml0aW9uLkRlZmF1bHRQYXJhbWV0ZXJTYW5pdGlzZXIodGhpcy5yZW1lbWJlciwgdGhpcy5kZWZhdWx0VmFsdWUsIGluamVjdG9yLmdldChQbGFjZUhpc3RvcnkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGFyYW1ldGVyRGVmaW5pdGlvbiB7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zPFQ+IHtcbiAgICBhcz86IHN0cmluZztcbiAgICBvcHRpb25hbD86IGJvb2xlYW47XG4gICAgcmVtZW1iZXI/OiBib29sZWFuO1xuICAgIGRlZmF1bHRWYWx1ZT86IFQ7XG4gICAgLy8gc2FuaXRpc2VyPzogQ29uc3RydWN0YWJsZTxQYXJhbWV0ZXJTYW5pdGlzZXI8VD4+IHwgUGFyYW1ldGVyU2FuaXRpc2VyLk9wdGlvbnM8VD47XG4gIH1cblxuICBleHBvcnQgY2xhc3MgUm91dGVJZDxUPiBleHRlbmRzIFBhcmFtZXRlckRlZmluaXRpb248VD4ge1xuICAgIHJlYWRvbmx5IGlzUm91dGVJZCA9IHRydWU7XG4gICAgcmVhZG9ubHkgaXNBcnJheSA9IGZhbHNlO1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIFZhbHVlUGFyYW1ldGVyPFQ+IGV4dGVuZHMgUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiB7XG4gICAgcmVhZG9ubHkgaXNSb3V0ZUlkID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgaXNBcnJheSA9IGZhbHNlO1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEFycmF5UGFyYW1ldGVyPFQ+IGV4dGVuZHMgUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBUW10+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gdHJ1ZTtcbiAgfVxuXG5cbiAgZXhwb3J0IGNsYXNzIERlZmF1bHRQYXJhbWV0ZXJTYW5pdGlzZXI8VCwgUz4gaW1wbGVtZW50cyBQYXJhbWV0ZXJTYW5pdGlzZXI8Uz4ge1xuXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgcmVtZW1iZXI6IGJvb2xlYW4sIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZTogUywgcmVhZG9ubHkgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnkpIHtcbiAgICB9XG5cbiAgICBzYW5pdGlzZShwYXJhbWV0ZXI6IFJvdXRlUGFyYW1ldGVyVmFsdWU8UywgYW55LCBhbnk+LCB2aXNpdD86IFZpc2l0KTogUHJvbWlzZTxTPiB8IFMge1xuICAgICAgbGV0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlO1xuICAgICAgaWYgKHBhcmFtZXRlci5pc01pc3NpbmcoKSkge1xuICAgICAgICBjb25zdCBwcmV2aW91c1Zpc2l0ID0gXy5maXJzdCh0aGlzLnBsYWNlSGlzdG9yeS5nZXRIaXN0b3J5KHZpc2l0LnBsYWNlRGVmaW5pdGlvbikpO1xuICAgICAgICBpZiAodGhpcy5yZW1lbWJlciAmJiBwcmV2aW91c1Zpc2l0KSB7XG4gICAgICAgICAgdmFsdWUgPSBwcmV2aW91c1Zpc2l0LmdldFZhbHVlT2YocGFyYW1ldGVyLmRlZmluaXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXIuaXNFbXB0eVZhbHVlKHZhbHVlKSA/IHRoaXMuZGVmYXVsdFZhbHVlIDogdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
310
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7OztBQUt2Qjs7Ozs7SUFTRSw2QkFBcUIsWUFBb0IsRUFBRSxPQUF1QyxFQUFXLFNBQXdCO1FBQWhHLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQW9ELGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDbkgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxzQkFBSSxxQ0FBSTs7OztRQUFSO1lBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNELENBQUM7OztPQUFBO0lBR0Qsc0JBQUksaURBQWdCO1FBRHBCLFdBQVc7Ozs7OztRQUNYO1lBQ0UsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDOzs7T0FBQTs7Ozs7OztJQU1TLDRDQUFjOzs7Ozs7SUFBeEIsVUFBeUUsR0FBTTtRQUM3RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdB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QWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLFNBQ3pDO1lBTFEsZUFBUyxHQUFHLEtBQUssQ0FBQztZQUNsQixhQUFPLEdBQUcsSUFBSSxDQUFDOztRQUl4QixDQUFDOzs7OztRQUVELHFDQUFZOzs7O1FBQVosVUFBYSxLQUFVO1lBQ3JCLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDOzs7Ozs7UUFFRCxtQ0FBVTs7Ozs7UUFBVixVQUFXLENBQU0sRUFBRSxDQUFNO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBRUgscUJBQUM7SUFBRCxDQUFDLEFBaEJELENBQXVDLG1CQUFtQixHQWdCekQ7SUFoQlksa0NBQWMsaUJBZ0IxQixDQUFBOzs7UUFmQyxtQ0FBMkI7O1FBQzNCLGlDQUF3Qjs7QUFlNUIsQ0FBQyxFQXJEZ0IsbUJBQW1CLEtBQW5CLG1CQUFtQixRQXFEbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBPcHRzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VIaXN0b3J5IH0gZnJvbSAnLi4vcGxhY2UtaGlzdG9yeSc7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4uL3Zpc2l0JztcbmltcG9ydCB7IEZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0dGVyJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBhcmFtZXRlckRlZmluaXRpb248VCwgRSA9IFQ+IHtcblxuICBhYnN0cmFjdCByZWFkb25seSBpc1JvdXRlSWQ6IGJvb2xlYW47XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzQXJyYXk6IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgcmVtZW1iZXI6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZTogVDtcbiAgcHJpdmF0ZSBvcHRpb25zOiBPcHRzPFBhcmFtZXRlckRlZmluaXRpb24uT3B0aW9uczxUPj47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcHJvcGVydHlOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IFBhcmFtZXRlckRlZmluaXRpb24uT3B0aW9uczxUPiwgcmVhZG9ubHkgdXJsRm9ybWF0PzogRm9ybWF0dGVyPEU+KSB7XG4gICAgdGhpcy5vcHRpb25zID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gICAgdGhpcy5yZW1lbWJlciA9IHRoaXMub3B0aW9ucy5nZXRPcHRpb25hbCgncmVtZW1iZXInLCBmYWxzZSk7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ2RlZmF1bHRWYWx1ZScsIG51bGwpO1xuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRPcHRpb25hbCgnYXMnLCB0aGlzLnByb3BlcnR5TmFtZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXQgaXNSb3V0ZVBhcmFtZXRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnVybEZvcm1hdDtcbiAgfVxuXG4gIGFic3RyYWN0IGlzRW1wdHlWYWx1ZSh2YWx1ZTogVCk6IGJvb2xlYW47XG5cbiAgYWJzdHJhY3QgaGFzQ2hhbmdlZChhOiBhbnksIGI6IGFueSk6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGdldE9wdGlvblZhbHVlPEsgZXh0ZW5kcyBrZXlvZiBQYXJhbWV0ZXJEZWZpbml0aW9uLk9wdGlvbnM8VD4+KGtleTogSyk6IFBhcmFtZXRlckRlZmluaXRpb24uT3B0aW9uczxUPltLXSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRPcHRpb25hbChrZXksIG51bGwpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgc2FuaXRpc2UodmFsdWU6VCwgdmlzaXQ6IFZpc2l0LCBwbGFjZUhpc3Rvcnk6IFBsYWNlSGlzdG9yeSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgaWYgKHRoaXMuaXNNaXNzaW5nRnJvbSh2aXNpdCkpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVmlzaXQgPSBfLmZpcnN0KHBsYWNlSGlzdG9yeS5nZXRIaXN0b3J5KHZpc2l0LnBsYWNlRGVmaW5pdGlvbikpO1xuICAgICAgaWYgKHRoaXMucmVtZW1iZXIgJiYgcHJldmlvdXNWaXNpdCkge1xuICAgICAgICB2YWx1ZSA9IHByZXZpb3VzVmlzaXQuZ2V0UGFyYW1ldGVyKHRoaXMubmFtZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5pc0VtcHR5VmFsdWUodmFsdWUpID8gdGhpcy5kZWZhdWx0VmFsdWUgOiB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdG9kbzogYWRkIGN1c3RvbSBzYW5pdGlzZXJcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzTWlzc2luZ0Zyb20odmlzaXQ6IFZpc2l0KSB7XG4gICAgcmV0dXJuICF2aXNpdC5oYXNQYXJhbWV0ZXIodGhpcy5uYW1lKSB8fCAodGhpcy5pc1JvdXRlSWQgJiYgIXZpc2l0Lmhhc1JvdXRlSWQoKSk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQYXJhbWV0ZXJEZWZpbml0aW9uIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnM8VD4ge1xuICAgIGFzPzogc3RyaW5nO1xuICAgIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgICByZW1lbWJlcj86IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlPzogVDtcbiAgICAvLyBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj4gfCBQYXJhbWV0ZXJTYW5pdGlzZXIuT3B0aW9uczxUPjtcbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBSb3V0ZUlkPFQ+IGV4dGVuZHMgUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiB7XG4gICAgcmVhZG9ubHkgaXNSb3V0ZUlkID0gdHJ1ZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gZmFsc2U7XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBfLmlzTmlsKHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gYSAhPT0gYjtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgVmFsdWVQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gZmFsc2U7XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBfLmlzTmlsKHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gYSAhPT0gYjtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXlQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFRbXSwgVD4ge1xuICAgIHJlYWRvbmx5IGlzUm91dGVJZCA9IGZhbHNlO1xuICAgIHJlYWRvbmx5IGlzQXJyYXkgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IocGFyYW1ldGVyTmFtZTogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zPFRbXT4sIHVybEZvcm1hdDogRm9ybWF0dGVyPFQ+KSB7XG4gICAgICBzdXBlcihwYXJhbWV0ZXJOYW1lLCBvcHRpb25zLCB1cmxGb3JtYXQpO1xuICAgIH1cblxuICAgIGlzRW1wdHlWYWx1ZSh2YWx1ZTogVFtdKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gXy5pc05pbCh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoIDwgMTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IFRbXSwgYjogVFtdKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIV8uaXNFcXVhbChhLCBiKTtcbiAgICB9XG5cbiAgfVxufVxuIl19
@@ -9,10 +9,11 @@
9
9
  export function ParameterSanitiser() { }
10
10
  if (false) {
11
11
  /**
12
- * @param {?} paramter
12
+ * @param {?} parameterValue
13
13
  * @param {?=} visit
14
+ * @param {?=} injector
14
15
  * @return {?}
15
16
  */
16
- ParameterSanitiser.prototype.sanitise = function (paramter, visit) { };
17
+ ParameterSanitiser.prototype.sanitise = function (parameterValue, visit, injector) { };
17
18
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBR0Esd0NBRUM7Ozs7Ozs7SUFEQyx1RUFBb0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4uL3Zpc2l0JztcbmltcG9ydCB7IFJvdXRlUGFyYW1ldGVyVmFsdWUgfSBmcm9tICcuL3JvdXRlLXBhcmFtZXRlci12YWx1ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyU2FuaXRpc2VyPFM+IHtcbiAgc2FuaXRpc2UocGFyYW10ZXI6IFJvdXRlUGFyYW1ldGVyVmFsdWU8UywgYW55LCBhbnk+LCB2aXNpdD86IFZpc2l0KTogUHJvbWlzZTxTPiB8IFM7XG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsd0NBRUM7Ozs7Ozs7O0lBREMsdUZBQW1HIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi4vdmlzaXQnO1xuaW1wb3J0IHsgUGFyYW1ldGVyU25hcHNob3QgfSBmcm9tICcuL3BhcmFtZXRlci1zbmFwc2hvdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyU2FuaXRpc2VyPFM+IHtcbiAgc2FuaXRpc2UocGFyYW1ldGVyVmFsdWU6IFBhcmFtZXRlclNuYXBzaG90PFM+LCB2aXNpdD86IFZpc2l0LCBpbmplY3Rvcj86IEluamVjdG9yKTogUHJvbWlzZTxTPiB8IFM7XG59XG4iXX0=