@coolon/angular-ui-powerups 0.0.43 → 0.0.46

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 (131) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +1499 -1188
  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 +16 -15
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/coolon-angular-ui-powerups.js +16 -15
  8. package/esm2015/index.js +2 -2
  9. package/esm2015/lib/components/disposable-component.js +1 -1
  10. package/esm2015/lib/components/forms/number-input/number-input.component.js +1 -1
  11. package/esm2015/lib/components/forms/password-input/password-input.component.js +1 -1
  12. package/esm2015/lib/components/forms/string-input/string-input.component.js +1 -1
  13. package/esm2015/lib/components/resize-aware.component.js +1 -1
  14. package/esm2015/lib/components/types/bounds.class.js +1 -1
  15. package/esm2015/lib/components/types/dimension.class.js +1 -1
  16. package/esm2015/lib/components/types/point.class.js +1 -1
  17. package/esm2015/lib/directives/command.directive.js +1 -1
  18. package/esm2015/lib/directives/focus-binding.directive.js +2 -2
  19. package/esm2015/lib/interaction/alert.js +1 -1
  20. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +2 -2
  21. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +6 -1
  22. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -2
  23. package/esm2015/lib/interaction/confirm.js +1 -1
  24. package/esm2015/lib/interaction/interaction.module.js +2 -2
  25. package/esm2015/lib/interaction/result.js +1 -1
  26. package/esm2015/lib/interaction/services/dialog-interaction.service.js +2 -2
  27. package/esm2015/lib/place/components/abstract-place-navigation.component.js +3 -2
  28. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +135 -84
  29. package/esm2015/lib/place/components/place-outlet/route-animations.js +2 -2
  30. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  31. package/esm2015/lib/place/guards/leave-place.guard.js +12 -10
  32. package/esm2015/lib/place/guards/place-route.guard.js +40 -33
  33. package/esm2015/lib/place/index.js +5 -6
  34. package/esm2015/lib/place/nav-item.js +1 -1
  35. package/esm2015/lib/place/place-component.js +39 -169
  36. package/esm2015/lib/place/place-definition.js +79 -0
  37. package/esm2015/lib/place/place-history.js +77 -0
  38. package/esm2015/lib/place/place-router.js +98 -0
  39. package/esm2015/lib/place/place.decorator.js +30 -3
  40. package/esm2015/lib/place/place.module.js +2 -5
  41. package/esm2015/lib/place/route/json-types.js +1 -1
  42. package/esm2015/lib/place/route/parameter-decorators.js +7 -60
  43. package/esm2015/lib/place/route/parameter-definition.class.js +187 -9
  44. package/esm2015/lib/place/route/parameter-sanitiser.js +4 -17
  45. package/esm2015/lib/place/route/parameter-snapshot.js +228 -72
  46. package/esm2015/lib/place/route/parameter-type.js +2 -2
  47. package/esm2015/lib/place/route/route-parameter-sanitiser.js +7 -21
  48. package/esm2015/lib/place/visit.js +3 -3
  49. package/esm2015/public_api.js +2 -2
  50. package/esm5/coolon-angular-ui-powerups.js +16 -15
  51. package/esm5/index.js +2 -2
  52. package/esm5/lib/components/disposable-component.js +1 -1
  53. package/esm5/lib/components/forms/number-input/number-input.component.js +1 -1
  54. package/esm5/lib/components/forms/password-input/password-input.component.js +1 -1
  55. package/esm5/lib/components/forms/string-input/string-input.component.js +1 -1
  56. package/esm5/lib/components/resize-aware.component.js +1 -1
  57. package/esm5/lib/components/types/bounds.class.js +1 -1
  58. package/esm5/lib/components/types/dimension.class.js +1 -1
  59. package/esm5/lib/components/types/point.class.js +1 -1
  60. package/esm5/lib/directives/command.directive.js +1 -1
  61. package/esm5/lib/directives/focus-binding.directive.js +2 -2
  62. package/esm5/lib/interaction/alert.js +1 -1
  63. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +2 -2
  64. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +6 -1
  65. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -2
  66. package/esm5/lib/interaction/confirm.js +1 -1
  67. package/esm5/lib/interaction/interaction.module.js +2 -2
  68. package/esm5/lib/interaction/result.js +1 -1
  69. package/esm5/lib/interaction/services/dialog-interaction.service.js +2 -2
  70. package/esm5/lib/place/components/abstract-place-navigation.component.js +3 -2
  71. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +153 -113
  72. package/esm5/lib/place/components/place-outlet/route-animations.js +2 -2
  73. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  74. package/esm5/lib/place/guards/leave-place.guard.js +12 -10
  75. package/esm5/lib/place/guards/place-route.guard.js +40 -32
  76. package/esm5/lib/place/index.js +5 -6
  77. package/esm5/lib/place/nav-item.js +1 -1
  78. package/esm5/lib/place/place-component.js +53 -199
  79. package/esm5/lib/place/place-definition.js +88 -0
  80. package/esm5/lib/place/place-history.js +90 -0
  81. package/esm5/lib/place/place-router.js +118 -0
  82. package/esm5/lib/place/place.decorator.js +30 -3
  83. package/esm5/lib/place/place.module.js +2 -5
  84. package/esm5/lib/place/route/json-types.js +1 -1
  85. package/esm5/lib/place/route/parameter-decorators.js +7 -60
  86. package/esm5/lib/place/route/parameter-definition.class.js +227 -9
  87. package/esm5/lib/place/route/parameter-sanitiser.js +4 -17
  88. package/esm5/lib/place/route/parameter-snapshot.js +295 -80
  89. package/esm5/lib/place/route/parameter-type.js +2 -2
  90. package/esm5/lib/place/route/route-parameter-sanitiser.js +7 -20
  91. package/esm5/lib/place/visit.js +3 -3
  92. package/esm5/public_api.js +2 -2
  93. package/fesm2015/coolon-angular-ui-powerups.js +1144 -904
  94. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  95. package/fesm5/coolon-angular-ui-powerups.js +1462 -1154
  96. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  97. package/index.d.ts +1 -1
  98. package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +7 -0
  99. package/lib/place/components/abstract-place-navigation.component.d.ts +3 -2
  100. package/lib/place/components/place-outlet/place-outlet.component.d.ts +30 -19
  101. package/lib/place/guards/place-route.guard.d.ts +7 -6
  102. package/lib/place/index.d.ts +3 -4
  103. package/lib/place/place-component.d.ts +13 -41
  104. package/lib/place/place-definition.d.ts +20 -0
  105. package/lib/place/place-history.d.ts +13 -0
  106. package/lib/place/place-router.d.ts +10 -0
  107. package/lib/place/place.decorator.d.ts +13 -1
  108. package/lib/place/route/parameter-decorators.d.ts +0 -4
  109. package/lib/place/route/parameter-definition.class.d.ts +39 -6
  110. package/lib/place/route/parameter-sanitiser.d.ts +3 -8
  111. package/lib/place/route/parameter-snapshot.d.ts +15 -12
  112. package/lib/place/route/route-parameter-sanitiser.d.ts +1 -3
  113. package/lib/place/visit.d.ts +4 -4
  114. package/package.json +1 -1
  115. package/schematics/place-routes/index.js.map +1 -1
  116. package/schematics/place-routes/place-def.js +1 -1
  117. package/schematics/place-routes/place-def.js.map +1 -1
  118. package/schematics/place-routes/templates/place-destinations.ts.template +21 -0
  119. package/schematics/place-routes/templates/{places.ts.template → place-routes.ts.template} +1 -13
  120. package/esm2015/lib/place/place-component-like.js +0 -17
  121. package/esm2015/lib/place/place-updates-service.js +0 -16
  122. package/esm2015/lib/place/place.service.js +0 -102
  123. package/esm2015/lib/place/route/default-parameter-sanitiser.js +0 -78
  124. package/esm5/lib/place/place-component-like.js +0 -17
  125. package/esm5/lib/place/place-updates-service.js +0 -16
  126. package/esm5/lib/place/place.service.js +0 -136
  127. package/esm5/lib/place/route/default-parameter-sanitiser.js +0 -85
  128. package/lib/place/place-component-like.d.ts +0 -5
  129. package/lib/place/place-updates-service.d.ts +0 -10
  130. package/lib/place/place.service.d.ts +0 -22
  131. package/lib/place/route/default-parameter-sanitiser.d.ts +0 -13
@@ -5,8 +5,8 @@
5
5
  import * as tslib_1 from "tslib";
6
6
  import { assert, lang, Trace } from '@coolon/pectin';
7
7
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
8
- import * as _ from 'lodash';
9
- import { DefaultParameterSanitiser } from './default-parameter-sanitiser';
8
+ import _ from 'lodash';
9
+ import { ParameterDefinition } from './parameter-definition.class';
10
10
  /**
11
11
  * @template T, S
12
12
  */
@@ -102,7 +102,7 @@ Sanitiser = /** @class */ (function () {
102
102
  if (!this.sanitiser) return [3 /*break*/, 2];
103
103
  this.initialValue = this.readFrom(this.snapshot);
104
104
  _a = this;
105
- return [4 /*yield*/, this.sanitiser.sanitise(this.initialValue)];
105
+ return [4 /*yield*/, this.sanitiser.sanitise(null, this.initialValue)];
106
106
  case 1:
107
107
  _a._sanitisedValue = _b.sent();
108
108
  if (this.initialValue !== this._sanitisedValue) {
@@ -139,11 +139,10 @@ if (false) {
139
139
  Sanitiser.prototype.sanitiser;
140
140
  }
141
141
  var RouteParameterSanitiser = /** @class */ (function () {
142
- function RouteParameterSanitiser(parameterDefs, snapshot, placeService, injector) {
142
+ function RouteParameterSanitiser(parameterDefs, snapshot, injector) {
143
143
  var _this = this;
144
144
  this.parameterDefs = parameterDefs;
145
145
  this.snapshot = snapshot;
146
- this.placeService = placeService;
147
146
  this.injector = injector;
148
147
  this.parameterSanitisers = [];
149
148
  /** @type {?} */
@@ -236,17 +235,7 @@ var RouteParameterSanitiser = /** @class */ (function () {
236
235
  * @return {?}
237
236
  */
238
237
  function (def) {
239
- if (def.sanitiser) {
240
- if (this.isSanitiserContructor(def.sanitiser)) {
241
- return this.injector.get(def.sanitiser, new def.sanitiser());
242
- }
243
- else {
244
- return new DefaultParameterSanitiser(def, this.placeService, def.sanitiser);
245
- }
246
- }
247
- else {
248
- return null;
249
- }
238
+ return def.getSanitiser(this.injector);
250
239
  };
251
240
  /**
252
241
  * @return {?}
@@ -297,7 +286,7 @@ var RouteParameterSanitiser = /** @class */ (function () {
297
286
  tslib_1.__decorate([
298
287
  Memoize(),
299
288
  tslib_1.__metadata("design:type", Function),
300
- tslib_1.__metadata("design:paramtypes", [Object]),
289
+ tslib_1.__metadata("design:paramtypes", [ParameterDefinition]),
301
290
  tslib_1.__metadata("design:returntype", Object)
302
291
  ], RouteParameterSanitiser.prototype, "getSanitiser", null);
303
292
  tslib_1.__decorate([
@@ -325,8 +314,6 @@ if (false) {
325
314
  /** @type {?} */
326
315
  RouteParameterSanitiser.prototype.snapshot;
327
316
  /** @type {?} */
328
- RouteParameterSanitiser.prototype.placeService;
329
- /** @type {?} */
330
317
  RouteParameterSanitiser.prototype.injector;
331
318
  }
332
319
  (function (Sanitiser) {
@@ -447,4 +434,4 @@ if (false) {
447
434
  }(Sanitiser));
448
435
  Sanitiser.Array = Array;
449
436
  })(Sanitiser || (Sanitiser = {}));
450
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUkxRTs7OztJQUtFLG1CQUFxQixZQUF1QyxFQUFXLFFBQWdDLEVBQVcsU0FBZ0M7UUFBN0gsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7UUFBVyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtJQUNsSixDQUFDOzs7O0lBRUQsNkJBQVM7OztJQUFUO1FBQ0UsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsc0JBQUksbUNBQVk7Ozs7UUFBaEI7WUFDRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLHFDQUFjOzs7O1FBQWxCO1lBQ0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzlCLENBQUM7OztPQUFBOzs7Ozs7SUFFUyw0QkFBUTs7Ozs7SUFBbEIsVUFBbUIsUUFBZ0M7UUFDakQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFD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dCB7IEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzZXJ0LCBDb25zdHJ1Y3RhYmxlLCBsYW5nLCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3IvZGlzdC9zcmMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VTZXJ2aWNlIH0gZnJvbSAnLi4vcGxhY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEZWZhdWx0UGFyYW1ldGVyU2FuaXRpc2VyIH0gZnJvbSAnLi9kZWZhdWx0LXBhcmFtZXRlci1zYW5pdGlzZXInO1xuaW1wb3J0IHsgUGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MnO1xuaW1wb3J0IHsgUGFyYW1ldGVyU2FuaXRpc2VyIH0gZnJvbSAnLi9wYXJhbWV0ZXItc2FuaXRpc2VyJztcblxuZXhwb3J0IGNsYXNzIFNhbml0aXNlcjxULCBTPiB7XG5cbiAgcHJpdmF0ZSBpbml0aWFsVmFsdWU6IFM7XG4gIHByaXZhdGUgX3Nhbml0aXNlZFZhbHVlOiBTO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBTPiwgcmVhZG9ubHkgc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHJlYWRvbmx5IHNhbml0aXNlcjogUGFyYW1ldGVyU2FuaXRpc2VyPFM+KSB7XG4gIH1cblxuICBpc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyRGVmLmlzUm91dGVJZDtcbiAgfVxuXG4gIGdldCB2YWx1ZUNoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFfLmlzTmlsKHRoaXMuaW5pdGlhbFZhbHVlKSAmJiB0aGlzLmhhc0NoYW5nZWQodGhpcy5pbml0aWFsVmFsdWUsIHRoaXMuc2FuaXRpc2VkVmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNhbml0aXNlZFZhbHVlKCk6IFMge1xuICAgIHJldHVybiB0aGlzLl9zYW5pdGlzZWRWYWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkRnJvbShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFMge1xuICAgIHJldHVybiBsYW5nLmFic3RyYWN0TWV0aG9kKHRoaXMuY29uc3RydWN0b3IpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhc0NoYW5nZWQoaW5pdGlhbFZhbHVlOiBTLCBzYW5pdGlzZWRWYWx1ZTogUyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBsYW5nLmFic3RyYWN0TWV0aG9kKHRoaXMuY29uc3RydWN0b3IpO1xuICB9XG5cbiAgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSkge1xuICAgIGxhbmcuYWJzdHJhY3RNZXRob2QodGhpcy5jb25zdHJ1Y3Rvcik7XG4gIH1cblxuICBhc3luYyBzYW5pdGl6ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5zYW5pdGlzZXIpIHtcbiAgICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gdGhpcy5yZWFkRnJvbSh0aGlzLnNuYXBzaG90KTtcbiAgICAgIHRoaXMuX3Nhbml0aXNlZFZhbHVlID0gYXdhaXQgdGhpcy5zYW5pdGlzZXIuc2FuaXRpc2UodGhpcy5pbml0aWFsVmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlICE9PSB0aGlzLl9zYW5pdGlzZWRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFJvdXRlUGFyYW1ldGVyU2FuaXRpc2VyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlSWRTYW5pdGlzZXI6IFNhbml0aXNlcjxhbnksIGFueT47XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyYW1ldGVyU2FuaXRpc2VyczogU2FuaXRpc2VyPGFueSwgYW55PltdID0gW107XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGFyYW1ldGVyRGVmczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgICAgICAgICAgICByZWFkb25seSBwbGFjZVNlcnZpY2U6IFBsYWNlU2VydmljZSxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgY29uc3Qgc2FuaXRpc2VycyA9IHBhcmFtZXRlckRlZnMubWFwKGRlZiA9PiB7XG4gICAgICByZXR1cm4gZGVmLmlzQXJyYXkgP1xuICAgICAgICBuZXcgU2FuaXRpc2VyLkFycmF5KGRlZiwgc25hcHNob3QsIHRoaXMuZ2V0U2FuaXRpc2VyKGRlZikpIDpcbiAgICAgICAgbmV3IFNhbml0aXNlci5WYWx1ZShkZWYsIHNuYXBzaG90LCB0aGlzLmdldFNhbml0aXNlcihkZWYpKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlSWRTYW5pdGlzZXIgPSBzYW5pdGlzZXJzLmZpbmQocCA9PiBwLmlzUm91dGVJZCgpKTtcbiAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMgPSBzYW5pdGlzZXJzLmZpbHRlcihwID0+ICFwLmlzUm91dGVJZCgpKTtcbiAgfVxuXG4gIGFzeW5jIHNhbml0aXNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJvdXRlSWRTYW5pdGlzZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVJZFNhbml0aXNlci5zYW5pdGl6ZSgpO1xuICAgICAgaWYgKHRoaXMucm91dGVJZFNhbml0aXNlci52YWx1ZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzbid0IG9rIHdlIHJlZGlyZWN0IGltbWVkaWF0ZWx5IGFzIHRoZSBxdWVyeSBwYXJhbXMgbWF5IG5lZWQgdG8gYmUgc2FuaXRpc2VkIGluIHRoZVxuICAgICAgICAvLyBjb250ZXh0IG9mIHRoZSByb3V0ZSBpZC5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHNhbml0aXNlciBvZiB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMpIHtcbiAgICAgIGF3YWl0IHNhbml0aXNlci5zYW5pdGl6ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMucGFyYW1ldGVyU2FuaXRpc2Vycy5maW5kKHMgPT4gcy52YWx1ZUNoYW5nZWQpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBwcml2YXRlIGdldFNhbml0aXNlcjxULCBTPihkZWY6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4pOiBQYXJhbWV0ZXJTYW5pdGlzZXI8Uz4ge1xuICAgIGlmIChkZWYuc2FuaXRpc2VyKSB7XG4gICAgICBpZiAodGhpcy5pc1Nhbml0aXNlckNvbnRydWN0b3I8Uz4oZGVmLnNhbml0aXNlcikpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0PFBhcmFtZXRlclNhbml0aXNlcjxTPj4oZGVmLnNhbml0aXNlciwgbmV3IGRlZi5zYW5pdGlzZXIoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IERlZmF1bHRQYXJhbWV0ZXJTYW5pdGlzZXIoZGVmLCB0aGlzLnBsYWNlU2VydmljZSwgZGVmLnNhbml0aXNlcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJvdXRlSWRIYXNDaGFuZ2VkKCk6Ym9vbGVhbiB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMucGFyYW1ldGVyU2FuaXRpc2Vycy5sZW5ndGggIT09IDApO1xuICAgIHJldHVybiB0aGlzLnJvdXRlSWRTYW5pdGlzZXIgJiYgdGhpcy5yb3V0ZUlkU2FuaXRpc2VyLnZhbHVlQ2hhbmdlZDtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIGdldFJlZGlyZWN0UGFyYW1zKCk6IGFueVtdIHtcbiAgICBpZiAodGhpcy5yb3V0ZUlkSGFzQ2hhbmdlZCgpKSB7XG4gICAgICByZXR1cm4gW3RoaXMucm91dGVJZFNhbml0aXNlci5zYW5pdGlzZWRWYWx1ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJvdXRlUGFyYW1zID0ge307XG4gICAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMuZm9yRWFjaChzID0+IHMuaW5qZWN0Um91dGVQYXJhbShyb3V0ZVBhcmFtcykpO1xuICAgICAgcmV0dXJuIFtyb3V0ZVBhcmFtc107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1Nhbml0aXNlckNvbnRydWN0b3I8Uz4odmFsdWU6IGFueSk6IHZhbHVlIGlzIFR5cGU8UGFyYW1ldGVyU2FuaXRpc2VyPFM+PiB7XG4gICAgcmV0dXJuIF8uaXNGdW5jdGlvbih2YWx1ZSkgJiYgbGFuZy5jb25zdHJ1Y3RvckNoYWluKHZhbHVlIGFzIHVua25vd24gYXMgQ29uc3RydWN0YWJsZTxhbnk+KS5pbmNsdWRlcyhTYW5pdGlzZXIpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgU2FuaXRpc2VyIHtcblxuICBleHBvcnQgY2xhc3MgVmFsdWU8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVD4ge1xuXG4gICAgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBUIHtcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gc25hcHNob3QucGFyYW1NYXAuZ2V0KHRoaXMucGFyYW1ldGVyRGVmLm5hbWUpO1xuICAgICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyRGVmLnR5cGUucGFyc2UocmF3VmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYXNDaGFuZ2VkKGluaXRpYWxWYWx1ZTogVCwgc2FuaXRpc2VkVmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpbml0aWFsVmFsdWUgIT09IHNhbml0aXNlZFZhbHVlO1xuICAgIH1cblxuICAgIGluamVjdFJvdXRlUGFyYW0oZGVzdDoge30pIHtcbiAgICAgIGRlc3RbdGhpcy5wYXJhbWV0ZXJEZWYubmFtZV0gPSB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh0aGlzLnNhbml0aXNlZFZhbHVlKTtcbiAgICB9XG5cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBBcnJheTxUPiBleHRlbmRzIFNhbml0aXNlcjxULCBUW10+IHtcblxuICAgIHJlYWRGcm9tKHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogVFtdIHtcbiAgICAgIGNvbnN0IHJhd1ZhbHVlcyA9IHNuYXBzaG90LnBhcmFtTWFwLmdldEFsbCh0aGlzLnBhcmFtZXRlckRlZi5uYW1lKTtcbiAgICAgIHJldHVybiByYXdWYWx1ZXMubWFwKHZhbHVlID0+IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFRbXSwgc2FuaXRpc2VkVmFsdWU6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZSAhPT0gc2FuaXRpc2VkVmFsdWU7XG4gICAgfVxuXG4gICAgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSkge1xuICAgICAgZGVzdFt0aGlzLnBhcmFtZXRlckRlZi5uYW1lXSA9IHRoaXMuc2FuaXRpc2VkVmFsdWUubWFwKHYgPT4gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodikpO1xuICAgIH1cblxuXG4gIH1cblxufVxuIl19
437
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFHbkU7Ozs7SUFLRSxtQkFBcUIsWUFBdUMsRUFBVyxRQUFnQyxFQUFXLFNBQWdDO1FBQTdILGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQUFXLGFBQVEsR0FBUixRQUFRLENBQXdCO1FBQVcsY0FBUyxHQUFULFNBQVMsQ0FBdUI7SUFDbEosQ0FBQzs7OztJQUVELDZCQUFTOzs7SUFBVDtRQUNFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELHNCQUFJLG1DQUFZOzs7O1FBQWhCO1lBQ0UsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEcsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxxQ0FBYzs7OztRQUFsQjtZQUNFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM5QixDQUFDOzs7T0FBQTs7Ozs7O0lBRVMsNEJBQVE7Ozs7O0lBQWxCLFVBQW1CLFFBQWdDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7Ozs7OztJQUVTLDhCQUFVOzs7Ozs7SUFBcEIsVUFBcUIsWUFBZSxFQUFFLGNBQWlCO1FBQ3JELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7Ozs7SUFFRCxvQ0FBZ0I7Ozs7SUFBaEIsVUFBaUIsSUFBUTtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxDQUFDOzs7O0lBRUssNEJBQVE7OztJQUFkOzs7Ozs7NkJBQ00sSUFBSSxDQUFDLFNBQVMsRUFBZCx3QkFBYzt3QkFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDakQsS0FBQSxJQUFJLENBQUE7d0JBQW1CLHFCQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUE7O3dCQUE3RSxHQUFLLGVBQWUsR0FBRyxTQUFzRCxDQUFDO3dCQUM5RSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTs0QkFDOUMsc0JBQU8sS0FBSyxFQUFDO3lCQUNkOzs0QkFFSCxzQkFBTyxJQUFJLEVBQUM7Ozs7S0FDYjtJQUNILGdCQUFDO0FBQUQsQ0FBQyxBQTFDRCxJQTBDQzs7Ozs7Ozs7OztJQXhDQyxpQ0FBd0I7Ozs7O0lBQ3hCLG9DQUEyQjs7SUFFZixpQ0FBZ0Q7O0lBQUUsNkJBQXlDOztJQUFFLDhCQUF5Qzs7QUF3Q3BKO0lBS0UsaUNBQXFCLGFBQXlDLEVBQ3pDLFFBQWdDLEVBQ2hDLFFBQWtCO1FBRnZDLGlCQVVDO1FBVm9CLGtCQUFhLEdBQWIsYUFBYSxDQUE0QjtRQUN6QyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUNoQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSnRCLHdCQUFtQixHQUEwQixFQUFFLENBQUM7O1lBS3pELFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRzs7OztRQUFDLFVBQUEsR0FBRztZQUN0QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDLEVBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBYixDQUFhLEVBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFkLENBQWMsRUFBQyxDQUFDO0lBQ3BFLENBQUM7Ozs7SUFFSywwQ0FBUTs7O0lBQWQ7Ozs7Ozs2QkFDTSxJQUFJLENBQUMsZ0JBQWdCLEVBQXJCLHdCQUFxQjt3QkFDdkIscUJBQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxFQUFBOzt3QkFBdEMsU0FBc0MsQ0FBQzt3QkFDdkMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFOzRCQUN0Qyx1R0FBdUc7NEJBQ3ZHLDJCQUEyQjs0QkFDM0Isc0JBQU8sS0FBSyxFQUFDO3lCQUNkOzs7O3dCQUVxQixLQUFBLGlCQUFBLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTs7Ozt3QkFBckMsU0FBUzt3QkFDbEIscUJBQU0sU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFBOzt3QkFBMUIsU0FBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs0QkFFN0Isc0JBQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSTs7Ozt3QkFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxZQUFZLEVBQWQsQ0FBYyxFQUFDLEVBQUM7Ozs7S0FDNUQ7Ozs7Ozs7SUFHTyw4Q0FBWTs7Ozs7O0lBQXBCLFVBQTJCLEdBQThCO1FBQ3ZELE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7OztJQUVELG1EQUFpQjs7O0lBQWpCO1FBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7SUFDckUsQ0FBQzs7OztJQUdELG1EQUFpQjs7O0lBQWpCO1FBQ0UsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQy9DO2FBQU07O2dCQUNDLGFBQVcsR0FBRyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBVyxDQUFDLEVBQS9CLENBQStCLEVBQUMsQ0FBQztZQUN2RSxPQUFPLENBQUMsYUFBVyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDOzs7Ozs7O0lBRU8sdURBQXFCOzs7Ozs7SUFBN0IsVUFBaUMsS0FBVTtRQUN6QyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFBLG1CQUFBLEtBQUssRUFBVyxFQUFzQixDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUF0QkQ7UUFEQyxPQUFPLEVBQUU7O2lEQUNzQixtQkFBbUI7OytEQUVsRDtJQVFEO1FBREMsS0FBSyxFQUFFOzs7O29FQVNQO0lBS0gsOEJBQUM7Q0FBQSxBQXhERCxJQXdEQztTQXhEWSx1QkFBdUI7Ozs7OztJQUVsQyxtREFBdUQ7Ozs7O0lBQ3ZELHNEQUFpRTs7SUFFckQsZ0RBQWtEOztJQUNsRCwyQ0FBeUM7O0lBQ3pDLDJDQUEyQjs7QUFtRHpDLFdBQWlCLFNBQVM7Ozs7SUFFeEI7Ozs7UUFBOEIsaUNBQWU7UUFBN0M7O1FBZUEsQ0FBQzs7Ozs7UUFiQyx3QkFBUTs7OztRQUFSLFVBQVMsUUFBZ0M7O2dCQUNqQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQzs7Ozs7OztRQUVTLDBCQUFVOzs7Ozs7UUFBcEIsVUFBcUIsWUFBZSxFQUFFLGNBQWlCO1lBQ3JELE9BQU8sWUFBWSxLQUFLLGNBQWMsQ0FBQztRQUN6QyxDQUFDOzs7OztRQUVELGdDQUFnQjs7OztRQUFoQixVQUFpQixJQUFRO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUVILFlBQUM7SUFBRCxDQUFDLEFBZkQsQ0FBOEIsU0FBUyxHQWV0QztJQWZZLGVBQUssUUFlakIsQ0FBQTs7OztJQUVEOzs7O1FBQThCLGlDQUFpQjtRQUEvQzs7UUFnQkEsQ0FBQzs7Ozs7UUFkQyx3QkFBUTs7OztRQUFSLFVBQVMsUUFBZ0M7WUFBekMsaUJBR0M7O2dCQUZPLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNsRSxPQUFPLFNBQVMsQ0FBQyxHQUFHOzs7O1lBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQW5DLENBQW1DLEVBQUMsQ0FBQztRQUNyRSxDQUFDOzs7Ozs7O1FBRVMsMEJBQVU7Ozs7OztRQUFwQixVQUFxQixZQUFpQixFQUFFLGNBQW1CO1lBQ3pELE9BQU8sWUFBWSxLQUFLLGNBQWMsQ0FBQztRQUN6QyxDQUFDOzs7OztRQUVELGdDQUFnQjs7OztRQUFoQixVQUFpQixJQUFRO1lBQXpCLGlCQUVDO1lBREMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHOzs7O1lBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWhDLENBQWdDLEVBQUMsQ0FBQztRQUNoRyxDQUFDO1FBR0gsWUFBQztJQUFELENBQUMsQUFoQkQsQ0FBOEIsU0FBUyxHQWdCdEM7SUFoQlksZUFBSyxRQWdCakIsQ0FBQTtBQUVILENBQUMsRUFyQ2dCLFNBQVMsS0FBVCxTQUFTLFFBcUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGFzc2VydCwgQ29uc3RydWN0YWJsZSwgbGFuZywgVHJhY2UgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBNZW1vaXplIH0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yL2Rpc3Qvc3JjJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTYW5pdGlzZXIgfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuXG5leHBvcnQgY2xhc3MgU2FuaXRpc2VyPFQsIFM+IHtcblxuICBwcml2YXRlIGluaXRpYWxWYWx1ZTogUztcbiAgcHJpdmF0ZSBfc2FuaXRpc2VkVmFsdWU6IFM7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+LCByZWFkb25seSBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgcmVhZG9ubHkgc2FuaXRpc2VyOiBQYXJhbWV0ZXJTYW5pdGlzZXI8Uz4pIHtcbiAgfVxuXG4gIGlzUm91dGVJZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkO1xuICB9XG5cbiAgZ2V0IHZhbHVlQ2hhbmdlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5pbml0aWFsVmFsdWUpICYmIHRoaXMuaGFzQ2hhbmdlZCh0aGlzLmluaXRpYWxWYWx1ZSwgdGhpcy5zYW5pdGlzZWRWYWx1ZSk7XG4gIH1cblxuICBnZXQgc2FuaXRpc2VkVmFsdWUoKTogUyB7XG4gICAgcmV0dXJuIHRoaXMuX3Nhbml0aXNlZFZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRGcm9tKHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogUyB7XG4gICAgcmV0dXJuIGxhbmcuYWJzdHJhY3RNZXRob2QodGhpcy5jb25zdHJ1Y3Rvcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFMsIHNhbml0aXNlZFZhbHVlOiBTKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxhbmcuYWJzdHJhY3RNZXRob2QodGhpcy5jb25zdHJ1Y3Rvcik7XG4gIH1cblxuICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KSB7XG4gICAgbGFuZy5hYnN0cmFjdE1ldGhvZCh0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIGFzeW5jIHNhbml0aXplKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnNhbml0aXNlcikge1xuICAgICAgdGhpcy5pbml0aWFsVmFsdWUgPSB0aGlzLnJlYWRGcm9tKHRoaXMuc25hcHNob3QpO1xuICAgICAgdGhpcy5fc2FuaXRpc2VkVmFsdWUgPSBhd2FpdCB0aGlzLnNhbml0aXNlci5zYW5pdGlzZShudWxsLCB0aGlzLmluaXRpYWxWYWx1ZSk7XG4gICAgICBpZiAodGhpcy5pbml0aWFsVmFsdWUgIT09IHRoaXMuX3Nhbml0aXNlZFZhbHVlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgUm91dGVQYXJhbWV0ZXJTYW5pdGlzZXIge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVJZFNhbml0aXNlcjogU2FuaXRpc2VyPGFueSwgYW55PjtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbWV0ZXJTYW5pdGlzZXJzOiBTYW5pdGlzZXI8YW55LCBhbnk+W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJEZWZzOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXSxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIGNvbnN0IHNhbml0aXNlcnMgPSBwYXJhbWV0ZXJEZWZzLm1hcChkZWYgPT4ge1xuICAgICAgcmV0dXJuIGRlZi5pc0FycmF5ID9cbiAgICAgICAgbmV3IFNhbml0aXNlci5BcnJheShkZWYsIHNuYXBzaG90LCB0aGlzLmdldFNhbml0aXNlcihkZWYpKSA6XG4gICAgICAgIG5ldyBTYW5pdGlzZXIuVmFsdWUoZGVmLCBzbmFwc2hvdCwgdGhpcy5nZXRTYW5pdGlzZXIoZGVmKSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZUlkU2FuaXRpc2VyID0gc2FuaXRpc2Vycy5maW5kKHAgPT4gcC5pc1JvdXRlSWQoKSk7XG4gICAgdGhpcy5wYXJhbWV0ZXJTYW5pdGlzZXJzID0gc2FuaXRpc2Vycy5maWx0ZXIocCA9PiAhcC5pc1JvdXRlSWQoKSk7XG4gIH1cblxuICBhc3luYyBzYW5pdGlzZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5yb3V0ZUlkU2FuaXRpc2VyKSB7XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlSWRTYW5pdGlzZXIuc2FuaXRpemUoKTtcbiAgICAgIGlmICh0aGlzLnJvdXRlSWRTYW5pdGlzZXIudmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgIC8vIGlmIHRoZSByb3V0ZSBpZCBpc24ndCBvayB3ZSByZWRpcmVjdCBpbW1lZGlhdGVseSBhcyB0aGUgcXVlcnkgcGFyYW1zIG1heSBuZWVkIHRvIGJlIHNhbml0aXNlZCBpbiB0aGVcbiAgICAgICAgLy8gY29udGV4dCBvZiB0aGUgcm91dGUgaWQuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBzYW5pdGlzZXIgb2YgdGhpcy5wYXJhbWV0ZXJTYW5pdGlzZXJzKSB7XG4gICAgICBhd2FpdCBzYW5pdGlzZXIuc2FuaXRpemUoKTtcbiAgICB9XG4gICAgcmV0dXJuICF0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMuZmluZChzID0+IHMudmFsdWVDaGFuZ2VkKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRTYW5pdGlzZXI8VCwgUz4oZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KTogUGFyYW1ldGVyU2FuaXRpc2VyPFM+IHtcbiAgICByZXR1cm4gZGVmLmdldFNhbml0aXNlcih0aGlzLmluamVjdG9yKTtcbiAgfVxuXG4gIHJvdXRlSWRIYXNDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMubGVuZ3RoICE9PSAwKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZUlkU2FuaXRpc2VyICYmIHRoaXMucm91dGVJZFNhbml0aXNlci52YWx1ZUNoYW5nZWQ7XG4gIH1cblxuICBAVHJhY2UoKVxuICBnZXRSZWRpcmVjdFBhcmFtcygpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMucm91dGVJZEhhc0NoYW5nZWQoKSkge1xuICAgICAgcmV0dXJuIFt0aGlzLnJvdXRlSWRTYW5pdGlzZXIuc2FuaXRpc2VkVmFsdWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByb3V0ZVBhcmFtcyA9IHt9O1xuICAgICAgdGhpcy5wYXJhbWV0ZXJTYW5pdGlzZXJzLmZvckVhY2gocyA9PiBzLmluamVjdFJvdXRlUGFyYW0ocm91dGVQYXJhbXMpKTtcbiAgICAgIHJldHVybiBbcm91dGVQYXJhbXNdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNTYW5pdGlzZXJDb250cnVjdG9yPFM+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUeXBlPFBhcmFtZXRlclNhbml0aXNlcjxTPj4ge1xuICAgIHJldHVybiBfLmlzRnVuY3Rpb24odmFsdWUpICYmIGxhbmcuY29uc3RydWN0b3JDaGFpbih2YWx1ZSBhcyB1bmtub3duIGFzIENvbnN0cnVjdGFibGU8YW55PikuaW5jbHVkZXMoU2FuaXRpc2VyKTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFNhbml0aXNlciB7XG5cbiAgZXhwb3J0IGNsYXNzIFZhbHVlPFQ+IGV4dGVuZHMgU2FuaXRpc2VyPFQsIFQ+IHtcblxuICAgIHJlYWRGcm9tKHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogVCB7XG4gICAgICBjb25zdCByYXdWYWx1ZSA9IHNuYXBzaG90LnBhcmFtTWFwLmdldCh0aGlzLnBhcmFtZXRlckRlZi5uYW1lKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLnBhcnNlKHJhd1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFQsIHNhbml0aXNlZFZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gaW5pdGlhbFZhbHVlICE9PSBzYW5pdGlzZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KSB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodGhpcy5zYW5pdGlzZWRWYWx1ZSk7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXk8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVFtdPiB7XG5cbiAgICByZWFkRnJvbShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFRbXSB7XG4gICAgICBjb25zdCByYXdWYWx1ZXMgPSBzbmFwc2hvdC5wYXJhbU1hcC5nZXRBbGwodGhpcy5wYXJhbWV0ZXJEZWYubmFtZSk7XG4gICAgICByZXR1cm4gcmF3VmFsdWVzLm1hcCh2YWx1ZSA9PiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGhhc0NoYW5nZWQoaW5pdGlhbFZhbHVlOiBUW10sIHNhbml0aXNlZFZhbHVlOiBUW10pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpbml0aWFsVmFsdWUgIT09IHNhbml0aXNlZFZhbHVlO1xuICAgIH1cblxuICAgIGluamVjdFJvdXRlUGFyYW0oZGVzdDoge30pIHtcbiAgICAgIGRlc3RbdGhpcy5wYXJhbWV0ZXJEZWYubmFtZV0gPSB0aGlzLnNhbml0aXNlZFZhbHVlLm1hcCh2ID0+IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUuZm9ybWF0KHYpKTtcbiAgICB9XG5cblxuICB9XG5cbn1cbiJdfQ==
@@ -12,11 +12,11 @@ if (false) {
12
12
  /**
13
13
  * @return {?}
14
14
  */
15
- Visit.prototype.getRouteId = function () { };
15
+ Visit.prototype.getRouteIdValue = function () { };
16
16
  /**
17
17
  * @param {?} name
18
18
  * @return {?}
19
19
  */
20
- Visit.prototype.getRouteParameter = function (name) { };
20
+ Visit.prototype.getParameterValue = function (name) { };
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvdmlzaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLDJCQU1DOzs7SUFMQyxnQ0FBb0Q7Ozs7SUFFcEQsNkNBQWtCOzs7OztJQUVsQix3REFBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcblxuLy8gVE9ETzogSXQnZCBiZSBuaWNlIGlmIHdlIGdlbmVyYXRlZCBhIHR5cGUgZm9yIHRoaXMuLi5cbmV4cG9ydCBpbnRlcmZhY2UgVmlzaXQge1xuICByZWFkb25seSBwbGFjZURlZmluaXRpb246IFBsYWNlQ29tcG9uZW50LkRlZmluaXRpb247XG5cbiAgZ2V0Um91dGVJZCgpOiBhbnk7XG5cbiAgZ2V0Um91dGVQYXJhbWV0ZXIobmFtZTogc3RyaW5nKTogYW55O1xufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvdmlzaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLDJCQU1DOzs7SUFMQyxnQ0FBMEM7Ozs7SUFFMUMsa0RBQXVCOzs7OztJQUV2Qix3REFBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFjZURlZmluaXRpb24gfSBmcm9tICcuL3BsYWNlLWRlZmluaXRpb24nO1xuXG4vLyBUT0RPOiBJdCdkIGJlIG5pY2UgaWYgd2UgZ2VuZXJhdGVkIGEgdHlwZSBmb3IgdGhpcy4uLlxuZXhwb3J0IGludGVyZmFjZSBWaXNpdCB7XG4gIHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uO1xuXG4gIGdldFJvdXRlSWRWYWx1ZSgpOiBhbnk7XG5cbiAgZ2V0UGFyYW1ldGVyVmFsdWUobmFtZTogc3RyaW5nKTogYW55O1xufVxuIl19
@@ -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 { DEFINITION_META_DATA_KEY, ROUTE_PARAMETER_LIST_KEY, PlaceComponent, Place, PlaceModule, PlaceService, AbstractPlaceNavigationComponent, BusyOverlayComponent, EmptyStateComponent, ListPlaceNavComponent, PlaceOutletComponent, leftRightPlaceAnimation, LEFT_RIGHT_PLACE_ANIMATION, TabbedPlaceNavigationComponent, LeavePlaceGuard, PlaceRouteGuard, DefaultParameterSanitiser, RouteId, RouteParameter, RouteParameterList, ParameterSnapshot, ParameterType, Sanitiser, RouteParameterSanitiser } from './lib/place';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHdDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHNNQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHdEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDhPQUFjLG1CQUFtQixDQUFDO0FBQ2xDLG9mQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdWktcG93ZXJ1cHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsYWNlJztcbiJdfQ==
10
+ export { DEFINITION_META_DATA_KEY, ROUTE_PARAMETER_LIST_KEY, PlaceComponent, PlaceDefinition, PlaceHistory, PlaceRouter, Place, PlaceModule, AbstractPlaceNavigationComponent, BusyOverlayComponent, EmptyStateComponent, ListPlaceNavComponent, PlaceOutletComponent, leftRightPlaceAnimation, LEFT_RIGHT_PLACE_ANIMATION, TabbedPlaceNavigationComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, RouteParameter, RouteParameterList, ParameterDefinition, ParameterSnapshot, ParameterType, Sanitiser, RouteParameterSanitiser } from './lib/place';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHdDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHNNQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHdEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDhPQUFjLG1CQUFtQixDQUFDO0FBQ2xDLDRnQkFBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLXVpLXBvd2VydXBzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmltYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbGFjZSc7XG4iXX0=