@coolon/angular-ui-powerups 0.0.8 → 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 (47) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +549 -156
  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/place/components/nav/nav.component.js +31 -0
  13. package/esm2015/lib/place/guards/place-route.guard.js +3 -3
  14. package/esm2015/lib/place/index.js +4 -3
  15. package/esm2015/lib/place/place.module.js +16 -5
  16. package/esm2015/lib/place/route/parameter-decorators.js +77 -2
  17. package/esm2015/lib/place/route/parameter-definition.class.js +4 -2
  18. package/esm2015/lib/place/route/route-parameter-bindings.js +25 -13
  19. package/esm2015/lib/place/route/route-parameter-sanitiser.js +206 -74
  20. package/esm2015/public_api.js +2 -2
  21. package/esm5/coolon-angular-ui-powerups.js +12 -11
  22. package/esm5/index.js +2 -2
  23. package/esm5/lib/components/forms/abstract-input.component.js +8 -3
  24. package/esm5/lib/directives/command.directive.js +52 -4
  25. package/esm5/lib/directives/focus-binding.directive.js +34 -14
  26. package/esm5/lib/place/components/nav/nav.component.js +36 -0
  27. package/esm5/lib/place/guards/place-route.guard.js +3 -3
  28. package/esm5/lib/place/index.js +4 -3
  29. package/esm5/lib/place/place.module.js +16 -5
  30. package/esm5/lib/place/route/parameter-decorators.js +77 -2
  31. package/esm5/lib/place/route/parameter-definition.class.js +4 -2
  32. package/esm5/lib/place/route/route-parameter-bindings.js +25 -13
  33. package/esm5/lib/place/route/route-parameter-sanitiser.js +284 -92
  34. package/esm5/public_api.js +2 -2
  35. package/fesm2015/coolon-angular-ui-powerups.js +433 -109
  36. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  37. package/fesm5/coolon-angular-ui-powerups.js +518 -127
  38. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  39. package/lib/components/forms/abstract-input.component.d.ts +7 -7
  40. package/lib/directives/command.directive.d.ts +6 -3
  41. package/lib/directives/focus-binding.directive.d.ts +1 -0
  42. package/lib/place/components/nav/nav.component.d.ts +7 -0
  43. package/lib/place/index.d.ts +1 -0
  44. package/lib/place/route/parameter-decorators.d.ts +17 -0
  45. package/lib/place/route/parameter-definition.class.d.ts +4 -3
  46. package/lib/place/route/route-parameter-sanitiser.d.ts +33 -6
  47. package/package.json +2 -2
@@ -23,13 +23,17 @@ export class FocusBindingDirective extends DisposableComponent {
23
23
  * @return {?}
24
24
  */
25
25
  onFocusIn() {
26
- this.pectinFocusBinding.focusCallbacks.notifyFocusIn();
26
+ if (this.hasBinding()) {
27
+ this.pectinFocusBinding.focusCallbacks.notifyFocusIn();
28
+ }
27
29
  }
28
30
  /**
29
31
  * @return {?}
30
32
  */
31
33
  onFocusOut() {
32
- this.pectinFocusBinding.focusCallbacks.notifyFocusOut();
34
+ if (this.hasBinding()) {
35
+ this.pectinFocusBinding.focusCallbacks.notifyFocusOut();
36
+ }
33
37
  }
34
38
  /**
35
39
  * @return {?}
@@ -41,16 +45,28 @@ export class FocusBindingDirective extends DisposableComponent {
41
45
  */
42
46
  ngAfterViewInit() {
43
47
  // TODO: Make this also track the current enabled/disabled state.
44
- const { chain } = Dsl.disposeWith(this);
45
- chain.value(this.pectinFocusBinding.focused).subscribe((/**
46
- * @param {?} focused
47
- * @return {?}
48
- */
49
- (focused) => {
50
- if (focused && !this.alreadyHasFocus()) {
51
- this.tryAndFocus();
52
- }
53
- }));
48
+ if (this.hasBinding()) {
49
+ const { chain } = Dsl.disposeWith(this);
50
+ chain.value(this.pectinFocusBinding.focused).subscribe((/**
51
+ * @param {?} focused
52
+ * @return {?}
53
+ */
54
+ (focused) => {
55
+ if (focused && !this.alreadyHasFocus()) {
56
+ this.tryAndFocus();
57
+ }
58
+ }));
59
+ }
60
+ else {
61
+ Logger.get(this).warn("pectinFocusBinding was nil");
62
+ }
63
+ }
64
+ /**
65
+ * @private
66
+ * @return {?}
67
+ */
68
+ hasBinding() {
69
+ return this.pectinFocusBinding && this.pectinFocusBinding.focused;
54
70
  }
55
71
  // Hook method for debugging via tracing.
56
72
  /**
@@ -106,7 +122,7 @@ export class FocusBindingDirective extends DisposableComponent {
106
122
  * @return {?}
107
123
  */
108
124
  modelShouldStillHaveFocus() {
109
- return this.pectinFocusBinding.focused.value;
125
+ return this.hasBinding() && this.pectinFocusBinding.focused.value;
110
126
  }
111
127
  // Hook method for debugging via tracing.
112
128
  /**
@@ -160,4 +176,4 @@ if (false) {
160
176
  */
161
177
  FocusBindingDirective.prototype.ngZone;
162
178
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtYmluZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9mb2N1cy1iaW5kaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQU92RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1COzs7Ozs7SUFpQjVELFlBQWlELEVBQWMsRUFDbEIsTUFBYyxFQUM3QixRQUFhO1FBQ3pDLEtBQUssRUFBRSxDQUFDO1FBSHVDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUd6RCxrSEFBa0g7UUFDbEgsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBQSxRQUFRLEVBQVksQ0FBQztJQUN2QyxDQUFDOzs7O0lBZkQsU0FBUztRQUNQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekQsQ0FBQzs7OztJQUdELFVBQVU7UUFDUixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFELENBQUM7Ozs7SUFVRCxRQUFRO0lBQ1IsQ0FBQzs7OztJQUVELGVBQWU7O2NBRVAsRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqRSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUdELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Ozs7OztJQUdELFNBQVMsQ0FBQyxPQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLE9BQU8sQ0FBQztJQUNqRCxDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxVQUFrQixDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDMUI7WUFDRCxpREFBaUQ7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDM0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLE9BQU8sYUFBYSxDQUFDLENBQUM7Z0JBQ25FLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtvQkFDZiw4QkFBOEI7b0JBQzlCLGlGQUFpRjtvQkFDakYscUJBQXFCOzs7b0JBQUMsR0FBRyxFQUFFO3dCQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDaEMsQ0FBQyxFQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztpQkFDakc7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7OztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQzFELENBQUM7Ozs7O0lBR0QseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQzs7Ozs7SUFHRCxRQUFROztjQUNBLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFOztjQUNwRCxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDO1FBQzlELDZDQUE2QztRQUM3QyxPQUFPLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7O1lBeEZGLFNBQVMsU0FBQzs7Z0JBRVQsUUFBUSxFQUFFLHNCQUFzQjthQUNqQzs7OztZQVJpQyxVQUFVLHVCQTBCN0IsTUFBTSxTQUFDLFVBQVU7WUExQjJDLE1BQU0sdUJBMkJsRSxNQUFNLFNBQUMsTUFBTTs0Q0FDYixNQUFNLFNBQUMsUUFBUTs7O2lDQWYzQixLQUFLO2lDQUNMLEtBQUs7d0JBRUwsWUFBWSxTQUFDLFNBQVM7eUJBS3RCLFlBQVksU0FBQyxVQUFVOzs7Ozs7O0lBVnhCLHlDQUFvQzs7SUFFcEMsbURBQThDOztJQUM5QyxtREFBeUM7Ozs7O0lBWTdCLG1DQUFtRDs7Ozs7SUFDbkQsdUNBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHNsLCBIYXNGb2N1c1RyYWNraW5nLCBMb2dnZXJ9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbcGVjdGluRm9jdXNCaW5kaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNCaW5kaW5nRGlyZWN0aXZlIGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgQElucHV0KCkgcGVjdGluRm9jdXNCaW5kaW5nOiBIYXNGb2N1c1RyYWNraW5nO1xuICBASW5wdXQoKSBmb2N1c0JpbmRpbmdUYXJnZXQ6IEhUTUxFbGVtZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICBvbkZvY3VzSW4oKSB7XG4gICAgdGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcuZm9jdXNDYWxsYmFja3Mubm90aWZ5Rm9jdXNJbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBvbkZvY3VzT3V0KCkge1xuICAgIHRoaXMucGVjdGluRm9jdXNCaW5kaW5nLmZvY3VzQ2FsbGJhY2tzLm5vdGlmeUZvY3VzT3V0KCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5NTEzMzU5L2NvdWxkLW5vdC1yZXNvbHZlLXR5cGUtZG9jdW1lbnQtaW4tYW5ndWxhcjUvNTM3MTU2NDIjNTM3MTU2NDJcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgYWxzbyB0cmFjayB0aGUgY3VycmVudCBlbmFibGVkL2Rpc2FibGVkIHN0YXRlLlxuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgY2hhaW4udmFsdWUodGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcuZm9jdXNlZCkuc3Vic2NyaWJlKChmb2N1c2VkKSA9PiB7XG4gICAgICBpZiAoZm9jdXNlZCAmJiAhdGhpcy5hbHJlYWR5SGFzRm9jdXMoKSkge1xuICAgICAgICB0aGlzLnRyeUFuZEZvY3VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBIb29rIG1ldGhvZCBmb3IgZGVidWdnaW5nIHZpYSB0cmFjaW5nLlxuICBhbHJlYWR5SGFzRm9jdXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNGb2N1c2VkKHRoaXMuZm9jdXNUYXJnZXQpO1xuICB9XG5cbiAgLy8gSG9vayBtZXRob2QgZm9yIGRlYnVnZ2luZyB2aWEgdHJhY2luZy5cbiAgaXNGb2N1c2VkKGVsZW1lbnQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50O1xuICB9XG5cbiAgdHJ5QW5kRm9jdXMocmV0cmllczogbnVtYmVyID0gNSkge1xuICAgIGlmICh0aGlzLm1vZGVsU2hvdWxkU3RpbGxIYXZlRm9jdXMoKSAmJiB0aGlzLmNhbkZvY3VzKCkpIHtcbiAgICAgIGlmICghdGhpcy5hbHJlYWR5SGFzRm9jdXMoKSkge1xuICAgICAgICB0aGlzLmZvY3VzVGFyZ2V0LmZvY3VzKCk7XG4gICAgICB9XG4gICAgICAvLyBpZiB3ZSBkaWRuJ3QgZ2V0IHRoZSBmb2N1cyB3ZSB0cnkgYWdhaW4gbGF0ZXIuXG4gICAgICBpZiAoIXRoaXMuYWxyZWFkeUhhc0ZvY3VzKCkpIHtcbiAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS5sb2coYGZvY3VzIGZhaWxlZCwgdHJ5aW5nICR7cmV0cmllc30gbW9yZSB0aW1lc2ApO1xuICAgICAgICBpZiAocmV0cmllcyA+IDApIHtcbiAgICAgICAgICAvLyB0cnkgYWdhaW4gb24gdGhlIG5leHQgcGFpbnRcbiAgICAgICAgICAvLyBUT0RPOiBpcyB0aGVyZSBhbiBhbmd1bGFyIHdheSBvZiBkb2luZyB0aGlzIHdpdGhvdXQgY2FsbGluZyBhIHdpbmRvdyBmdW5jdGlvbi5cbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cnlBbmRGb2N1cyhyZXRyaWVzIC0gMSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS53YXJuKGBUcmllZCB0byBmb2N1cyBidXQgZ2F2ZSB1cCBhcyB0aGUgY29tcG9uZW50IHdhc24ndCBlbmFibGVkIG9yIHZpc2libGUuYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgZm9jdXNUYXJnZXQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZvY3VzQmluZGluZ1RhcmdldCB8fCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICAvLyBIb29rIG1ldGhvZCBmb3IgZGVidWdnaW5nIHZpYSB0cmFjaW5nLlxuICBtb2RlbFNob3VsZFN0aWxsSGF2ZUZvY3VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlY3RpbkZvY3VzQmluZGluZy5mb2N1c2VkLnZhbHVlO1xuICB9XG5cbiAgLy8gSG9vayBtZXRob2QgZm9yIGRlYnVnZ2luZyB2aWEgdHJhY2luZy5cbiAgY2FuRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5mb2N1c1RhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBoYXNTaXplID0gZGltZW5zaW9uLmhlaWdodCA+PSAwICYmIGRpbWVuc2lvbi5oZWlnaHQgPj0gMDtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tc3RyaW5nLWxpdGVyYWxcbiAgICByZXR1cm4gaGFzU2l6ZSAmJiAhdGhpcy5mb2N1c1RhcmdldFsnZGlzYWJsZWQnXTtcbiAgfVxufVxuIl19
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtYmluZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9mb2N1cy1iaW5kaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQU92RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1COzs7Ozs7SUFxQjVELFlBQWlELEVBQWMsRUFDbEIsTUFBYyxFQUM3QixRQUFhO1FBQ3pDLEtBQUssRUFBRSxDQUFDO1FBSHVDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUd6RCxrSEFBa0g7UUFDbEgsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBQSxRQUFRLEVBQVksQ0FBQztJQUN2QyxDQUFDOzs7O0lBbkJELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQzs7OztJQUdELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQzs7OztJQVVELFFBQVE7SUFD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QU07NENBQ2IsTUFBTSxTQUFDLFFBQVE7OztpQ0FuQjNCLEtBQUs7aUNBQ0wsS0FBSzt3QkFFTCxZQUFZLFNBQUMsU0FBUzt5QkFPdEIsWUFBWSxTQUFDLFVBQVU7Ozs7Ozs7SUFaeEIseUNBQW9DOztJQUVwQyxtREFBOEM7O0lBQzlDLG1EQUF5Qzs7Ozs7SUFnQjdCLG1DQUFtRDs7Ozs7SUFDbkQsdUNBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHNsLCBIYXNGb2N1c1RyYWNraW5nLCBMb2dnZXJ9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbcGVjdGluRm9jdXNCaW5kaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNCaW5kaW5nRGlyZWN0aXZlIGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgQElucHV0KCkgcGVjdGluRm9jdXNCaW5kaW5nOiBIYXNGb2N1c1RyYWNraW5nO1xuICBASW5wdXQoKSBmb2N1c0JpbmRpbmdUYXJnZXQ6IEhUTUxFbGVtZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICBvbkZvY3VzSW4oKSB7XG4gICAgaWYgKHRoaXMuaGFzQmluZGluZygpKSB7XG4gICAgICB0aGlzLnBlY3RpbkZvY3VzQmluZGluZy5mb2N1c0NhbGxiYWNrcy5ub3RpZnlGb2N1c0luKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBvbkZvY3VzT3V0KCkge1xuICAgIGlmICh0aGlzLmhhc0JpbmRpbmcoKSkge1xuICAgICAgdGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcuZm9jdXNDYWxsYmFja3Mubm90aWZ5Rm9jdXNPdXQoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5NTEzMzU5L2NvdWxkLW5vdC1yZXNvbHZlLXR5cGUtZG9jdW1lbnQtaW4tYW5ndWxhcjUvNTM3MTU2NDIjNTM3MTU2NDJcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgYWxzbyB0cmFjayB0aGUgY3VycmVudCBlbmFibGVkL2Rpc2FibGVkIHN0YXRlLlxuICAgIGlmICh0aGlzLmhhc0JpbmRpbmcoKSkge1xuICAgICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIGNoYWluLnZhbHVlKHRoaXMucGVjdGluRm9jdXNCaW5kaW5nLmZvY3VzZWQpLnN1YnNjcmliZSgoZm9jdXNlZCkgPT4ge1xuICAgICAgICBpZiAoZm9jdXNlZCAmJiAhdGhpcy5hbHJlYWR5SGFzRm9jdXMoKSkge1xuICAgICAgICAgIHRoaXMudHJ5QW5kRm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIExvZ2dlci5nZXQodGhpcykud2FybihcInBlY3RpbkZvY3VzQmluZGluZyB3YXMgbmlsXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzQmluZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcgJiYgdGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcuZm9jdXNlZDtcbiAgfVxuXG4vLyBIb29rIG1ldGhvZCBmb3IgZGVidWdnaW5nIHZpYSB0cmFjaW5nLlxuICBhbHJlYWR5SGFzRm9jdXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNGb2N1c2VkKHRoaXMuZm9jdXNUYXJnZXQpO1xuICB9XG5cbiAgLy8gSG9vayBtZXRob2QgZm9yIGRlYnVnZ2luZyB2aWEgdHJhY2luZy5cbiAgaXNGb2N1c2VkKGVsZW1lbnQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50O1xuICB9XG5cbiAgdHJ5QW5kRm9jdXMocmV0cmllczogbnVtYmVyID0gNSkge1xuICAgIGlmICh0aGlzLm1vZGVsU2hvdWxkU3RpbGxIYXZlRm9jdXMoKSAmJiB0aGlzLmNhbkZvY3VzKCkpIHtcbiAgICAgIGlmICghdGhpcy5hbHJlYWR5SGFzRm9jdXMoKSkge1xuICAgICAgICB0aGlzLmZvY3VzVGFyZ2V0LmZvY3VzKCk7XG4gICAgICB9XG4gICAgICAvLyBpZiB3ZSBkaWRuJ3QgZ2V0IHRoZSBmb2N1cyB3ZSB0cnkgYWdhaW4gbGF0ZXIuXG4gICAgICBpZiAoIXRoaXMuYWxyZWFkeUhhc0ZvY3VzKCkpIHtcbiAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS5sb2coYGZvY3VzIGZhaWxlZCwgdHJ5aW5nICR7cmV0cmllc30gbW9yZSB0aW1lc2ApO1xuICAgICAgICBpZiAocmV0cmllcyA+IDApIHtcbiAgICAgICAgICAvLyB0cnkgYWdhaW4gb24gdGhlIG5leHQgcGFpbnRcbiAgICAgICAgICAvLyBUT0RPOiBpcyB0aGVyZSBhbiBhbmd1bGFyIHdheSBvZiBkb2luZyB0aGlzIHdpdGhvdXQgY2FsbGluZyBhIHdpbmRvdyBmdW5jdGlvbi5cbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cnlBbmRGb2N1cyhyZXRyaWVzIC0gMSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS53YXJuKGBUcmllZCB0byBmb2N1cyBidXQgZ2F2ZSB1cCBhcyB0aGUgY29tcG9uZW50IHdhc24ndCBlbmFibGVkIG9yIHZpc2libGUuYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgZm9jdXNUYXJnZXQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZvY3VzQmluZGluZ1RhcmdldCB8fCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICAvLyBIb29rIG1ldGhvZCBmb3IgZGVidWdnaW5nIHZpYSB0cmFjaW5nLlxuICBtb2RlbFNob3VsZFN0aWxsSGF2ZUZvY3VzKCkge1xuICAgIHJldHVybiB0aGlzLmhhc0JpbmRpbmcoKSAmJiB0aGlzLnBlY3RpbkZvY3VzQmluZGluZy5mb2N1c2VkLnZhbHVlO1xuICB9XG5cbiAgLy8gSG9vayBtZXRob2QgZm9yIGRlYnVnZ2luZyB2aWEgdHJhY2luZy5cbiAgY2FuRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5mb2N1c1RhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBoYXNTaXplID0gZGltZW5zaW9uLmhlaWdodCA+PSAwICYmIGRpbWVuc2lvbi5oZWlnaHQgPj0gMDtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tc3RyaW5nLWxpdGVyYWxcbiAgICByZXR1cm4gaGFzU2l6ZSAmJiAhdGhpcy5mb2N1c1RhcmdldFsnZGlzYWJsZWQnXTtcbiAgfVxufVxuIl19
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component, Input } from '@angular/core';
6
+ export class NavComponent {
7
+ constructor() {
8
+ }
9
+ /**
10
+ * @return {?}
11
+ */
12
+ ngOnInit() {
13
+ }
14
+ }
15
+ NavComponent.decorators = [
16
+ { type: Component, args: [{
17
+ selector: 'angular-ui-powerups-nav',
18
+ template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let place of places\" [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"place.title\">{{place.title}}</a>\n</nav>\n\n",
19
+ styles: [""]
20
+ }] }
21
+ ];
22
+ /** @nocollapse */
23
+ NavComponent.ctorParameters = () => [];
24
+ NavComponent.propDecorators = {
25
+ places: [{ type: Input }]
26
+ };
27
+ if (false) {
28
+ /** @type {?} */
29
+ NavComponent.prototype.places;
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQVN0RSxNQUFNLE9BQU8sWUFBWTtJQUt2QjtJQUNBLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7O1lBZEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLGtRQUFtQzs7YUFFcEM7Ozs7O3FCQUdFLEtBQUs7Ozs7SUFBTiw4QkFDMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZSB9IGZyb20gJy4uLy4uL3BsYWNlLmRlY29yYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FuZ3VsYXItdWktcG93ZXJ1cHMtbmF2JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgcGxhY2VzOiBQbGFjZS5EZXNjcmlwdG9yW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iXX0=
@@ -29,8 +29,8 @@ export class PlaceRouteGuard {
29
29
  /** @type {?} */
30
30
  const routeParameters = Klass.get(route.component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);
31
31
  /** @type {?} */
32
- const sanitiser = new RouteParameterSanitiser(routeParameters, this.injector);
33
- return sanitiser.sanitise(route).then((/**
32
+ const sanitiser = new RouteParameterSanitiser(routeParameters, route, this.injector);
33
+ return sanitiser.sanitise().then((/**
34
34
  * @param {?} proceed
35
35
  * @return {?}
36
36
  */
@@ -71,4 +71,4 @@ if (false) {
71
71
  */
72
72
  PlaceRouteGuard.prototype.injector;
73
73
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGUuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvZ3VhcmRzL3BsYWNlLXJvdXRlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUNMLHNCQUFzQixFQUd0QixNQUFNLEVBQ04sbUJBQW1CLEVBRXBCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBSzdFLE1BQU0sT0FBTyxlQUFlOzs7OztJQUUxQixZQUFvQixNQUFjLEVBQVUsUUFBa0I7UUFBMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDOUQsQ0FBQzs7Ozs7O0lBR0QsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7O2NBQzdELGVBQWUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLENBQUM7O2NBQzdHLFNBQVMsR0FBRyxJQUFJLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdFLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJOzs7O1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqQztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBbEJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQWJDLE1BQU07WUFMYSxRQUFROzs7QUF5QjNCO0lBREMsS0FBSyxFQUFFOzs2Q0FDVyxzQkFBc0IsRUFBUyxtQkFBbUI7O2tEQVNwRTs7Ozs7O0lBYlcsaUNBQXNCOzs7OztJQUFFLG1DQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBDYW5BY3RpdmF0ZSxcbiAgQ2FuRGVhY3RpdmF0ZSxcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxUcmVlXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEtsYXNzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZVBhcmFtZXRlckJpbmRpbmdzIH0gZnJvbSAnLi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzJztcbmltcG9ydCB7IFJvdXRlUGFyYW1ldGVyU2FuaXRpc2VyIH0gZnJvbSAnLi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLXNhbml0aXNlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlUm91dGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgQFRyYWNlKClcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gfCBQcm9taXNlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IGJvb2xlYW4gfCBVcmxUcmVlIHtcbiAgICBjb25zdCByb3V0ZVBhcmFtZXRlcnMgPSBLbGFzcy5nZXQocm91dGUuY29tcG9uZW50KS5nZXRNZXRhZGF0YUxpc3QoUm91dGVQYXJhbWV0ZXJCaW5kaW5ncy5ST1VURV9QQVJBTUVURVJfTElTVF9LRVkpO1xuICAgIGNvbnN0IHNhbml0aXNlciA9IG5ldyBSb3V0ZVBhcmFtZXRlclNhbml0aXNlcihyb3V0ZVBhcmFtZXRlcnMsIHRoaXMuaW5qZWN0b3IpO1xuICAgIHJldHVybiBzYW5pdGlzZXIuc2FuaXRpc2Uocm91dGUpLnRoZW4ocHJvY2VlZCA9PiB7XG4gICAgICBpZiAoIXByb2NlZWQpIHtcbiAgICAgICAgc2FuaXRpc2VyLnJlZGlyZWN0KHRoaXMucm91dGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm9jZWVkO1xuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utcm91dGUuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvZ3VhcmRzL3BsYWNlLXJvdXRlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUNMLHNCQUFzQixFQUd0QixNQUFNLEVBQ04sbUJBQW1CLEVBRXBCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBSzdFLE1BQU0sT0FBTyxlQUFlOzs7OztJQUUxQixZQUFvQixNQUFjLEVBQVUsUUFBa0I7UUFBMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDOUQsQ0FBQzs7Ozs7O0lBR0QsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7O2NBQzdELGVBQWUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLENBQUM7O2NBQzdHLFNBQVMsR0FBRyxJQUFJLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRixPQUFPLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJOzs7O1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqQztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBbEJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQWJDLE1BQU07WUFMYSxRQUFROzs7QUF5QjNCO0lBREMsS0FBSyxFQUFFOzs2Q0FDVyxzQkFBc0IsRUFBUyxtQkFBbUI7O2tEQVNwRTs7Ozs7O0lBYlcsaUNBQXNCOzs7OztJQUFFLG1DQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBDYW5BY3RpdmF0ZSxcbiAgQ2FuRGVhY3RpdmF0ZSxcbiAgUm91dGVyLFxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBVcmxUcmVlXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEtsYXNzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZVBhcmFtZXRlckJpbmRpbmdzIH0gZnJvbSAnLi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzJztcbmltcG9ydCB7IFJvdXRlUGFyYW1ldGVyU2FuaXRpc2VyIH0gZnJvbSAnLi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLXNhbml0aXNlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlUm91dGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgQFRyYWNlKClcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gfCBQcm9taXNlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IGJvb2xlYW4gfCBVcmxUcmVlIHtcbiAgICBjb25zdCByb3V0ZVBhcmFtZXRlcnMgPSBLbGFzcy5nZXQocm91dGUuY29tcG9uZW50KS5nZXRNZXRhZGF0YUxpc3QoUm91dGVQYXJhbWV0ZXJCaW5kaW5ncy5ST1VURV9QQVJBTUVURVJfTElTVF9LRVkpO1xuICAgIGNvbnN0IHNhbml0aXNlciA9IG5ldyBSb3V0ZVBhcmFtZXRlclNhbml0aXNlcihyb3V0ZVBhcmFtZXRlcnMsIHJvdXRlLCB0aGlzLmluamVjdG9yKTtcbiAgICByZXR1cm4gc2FuaXRpc2VyLnNhbml0aXNlKCkudGhlbihwcm9jZWVkID0+IHtcbiAgICAgIGlmICghcHJvY2VlZCkge1xuICAgICAgICBzYW5pdGlzZXIucmVkaXJlY3QodGhpcy5yb3V0ZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb2NlZWQ7XG4gICAgfSk7XG4gIH1cblxufVxuIl19
@@ -12,14 +12,15 @@ export { PlaceModule } from "./place.module";
12
12
  export { PlaceService } from "./place.service";
13
13
  export { BusyOverlayComponent } from "./components/busy-overlay/busy-overlay.component";
14
14
  export { EmptyStateComponent } from "./components/empty-state/empty-state.component";
15
+ export { NavComponent } from "./components/nav/nav.component";
15
16
  export { PlaceOutletComponent } from "./components/place-outlet/place-outlet.component";
16
17
  export { LeavePlaceGuard } from "./guards/leave-place.guard";
17
18
  export { PlaceRouteGuard } from "./guards/place-route.guard";
18
19
  export {} from "./route/json-types";
19
- export { RouteId, QueryParameter } from "./route/parameter-decorators";
20
+ export { RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParameterList } from "./route/parameter-decorators";
20
21
  export {} from "./route/parameter-definition.class";
21
22
  export {} from "./route/parameter-sanitiser";
22
23
  export { ParameterType } from "./route/parameter-type";
23
24
  export { RouteParameterBindings } from "./route/route-parameter-bindings";
24
- export { RouteParameterSanitiser } from "./route/route-parameter-sanitiser";
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLHVDQUFjLDRCQUE0QixDQUFDO0FBQzNDLGVBQWMsbUJBQW1CLENBQUM7QUFDbEMsc0JBQWMsbUJBQW1CLENBQUM7QUFDbEMsNEJBQWMsZ0JBQWdCLENBQUM7QUFDL0IsNkJBQWMsaUJBQWlCLENBQUM7QUFDaEMscUNBQWMsa0RBQWtELENBQUM7QUFDakUsb0NBQWMsZ0RBQWdELENBQUM7QUFDL0QscUNBQWMsa0RBQWtELENBQUM7QUFDakUsZ0NBQWMsNEJBQTRCLENBQUM7QUFDM0MsZ0NBQWMsNEJBQTRCLENBQUM7QUFDM0MsZUFBYyxvQkFBb0IsQ0FBQztBQUNuQyx3Q0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxlQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNkJBQTZCLENBQUM7QUFDNUMsOEJBQWMsd0JBQXdCLENBQUM7QUFDdkMsdUNBQWMsa0NBQWtDLENBQUM7QUFDakQsd0NBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGJhcnJlbHNieS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9hYnN0cmFjdC1wbGFjZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UuZGVjb3JhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvYnVzeS1vdmVybGF5L2J1c3ktb3ZlcmxheS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvbGVhdmUtcGxhY2UuZ3VhcmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2d1YXJkcy9wbGFjZS1yb3V0ZS5ndWFyZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvanNvbi10eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLWRlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItc2FuaXRpc2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItdHlwZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyXCI7XG4iXX0=
25
+ export { Sanitiser, RouteParameterSanitiser } from "./route/route-parameter-sanitiser";
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLHVDQUFjLDRCQUE0QixDQUFDO0FBQzNDLGVBQWMsbUJBQW1CLENBQUM7QUFDbEMsc0JBQWMsbUJBQW1CLENBQUM7QUFDbEMsNEJBQWMsZ0JBQWdCLENBQUM7QUFDL0IsNkJBQWMsaUJBQWlCLENBQUM7QUFDaEMscUNBQWMsa0RBQWtELENBQUM7QUFDakUsb0NBQWMsZ0RBQWdELENBQUM7QUFDL0QsNkJBQWMsZ0NBQWdDLENBQUM7QUFDL0MscUNBQWMsa0RBQWtELENBQUM7QUFDakUsZ0NBQWMsNEJBQTRCLENBQUM7QUFDM0MsZ0NBQWMsNEJBQTRCLENBQUM7QUFDM0MsZUFBYyxvQkFBb0IsQ0FBQztBQUNuQyxnR0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxlQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNkJBQTZCLENBQUM7QUFDNUMsOEJBQWMsd0JBQXdCLENBQUM7QUFDdkMsdUNBQWMsa0NBQWtDLENBQUM7QUFDakQsbURBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGJhcnJlbHNieS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9hYnN0cmFjdC1wbGFjZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UuZGVjb3JhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvYnVzeS1vdmVybGF5L2J1c3ktb3ZlcmxheS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvbGVhdmUtcGxhY2UuZ3VhcmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2d1YXJkcy9wbGFjZS1yb3V0ZS5ndWFyZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvanNvbi10eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLWRlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItc2FuaXRpc2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItdHlwZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyXCI7XG4iXX0=
@@ -5,34 +5,45 @@
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { NgModule } from '@angular/core';
7
7
  import { MatProgressSpinnerModule } from '@angular/material';
8
+ import { MatListModule } from '@angular/material/list';
9
+ import { MatTabsModule } from '@angular/material/tabs';
10
+ import { MatTooltipModule } from '@angular/material/tooltip';
11
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
8
12
  import { RouterModule } from '@angular/router';
9
13
  import { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';
10
14
  import { EmptyStateComponent } from './components/empty-state/empty-state.component';
11
- import { PlaceService } from './place.service';
15
+ import { NavComponent } from './components/nav/nav.component';
12
16
  import { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';
17
+ import { PlaceService } from './place.service';
13
18
  export class PlaceModule {
14
19
  }
15
20
  PlaceModule.decorators = [
16
21
  { type: NgModule, args: [{
17
22
  imports: [
18
23
  CommonModule,
24
+ BrowserAnimationsModule,
19
25
  MatProgressSpinnerModule,
20
- RouterModule
26
+ RouterModule,
27
+ MatTabsModule,
28
+ MatListModule,
29
+ MatTooltipModule
21
30
  ],
22
31
  declarations: [
23
32
  EmptyStateComponent,
24
33
  BusyOverlayComponent,
25
- PlaceOutletComponent
34
+ PlaceOutletComponent,
35
+ NavComponent
26
36
  ],
27
37
  entryComponents: [BusyOverlayComponent],
28
38
  exports: [
29
39
  BusyOverlayComponent,
30
40
  PlaceOutletComponent,
31
- EmptyStateComponent
41
+ EmptyStateComponent,
42
+ NavComponent
32
43
  ],
33
44
  providers: [
34
45
  PlaceService
35
46
  ]
36
47
  },] }
37
48
  ];
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQXVCeEYsTUFBTSxPQUFPLFdBQVc7OztZQXJCdkIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLHdCQUF3QjtvQkFDeEIsWUFBWTtpQkFDYjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osbUJBQW1CO29CQUNuQixvQkFBb0I7b0JBQ3BCLG9CQUFvQjtpQkFDckI7Z0JBQ0QsZUFBZSxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRTtvQkFDUCxvQkFBb0I7b0JBQ3BCLG9CQUFvQjtvQkFDcEIsbUJBQW1CO2lCQUNwQjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsWUFBWTtpQkFDYjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQnVzeU92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnVzeS1vdmVybGF5L2J1c3ktb3ZlcmxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VTZXJ2aWNlIH0gZnJvbSAnLi9wbGFjZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBsYWNlT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgQnVzeU92ZXJsYXlDb21wb25lbnQsXG4gICAgUGxhY2VPdXRsZXRDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbQnVzeU92ZXJsYXlDb21wb25lbnRdLFxuICBleHBvcnRzOiBbXG4gICAgQnVzeU92ZXJsYXlDb21wb25lbnQsXG4gICAgUGxhY2VPdXRsZXRDb21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBQbGFjZVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQbGFjZU1vZHVsZSB7XG5cbn1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQTZCL0MsTUFBTSxPQUFPLFdBQVc7OztZQTNCdkIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLHVCQUF1QjtvQkFDdkIsd0JBQXdCO29CQUN4QixZQUFZO29CQUNaLGFBQWE7b0JBQ2IsYUFBYTtvQkFDYixnQkFBZ0I7aUJBQ2pCO2dCQUNELFlBQVksRUFBRTtvQkFDWixtQkFBbUI7b0JBQ25CLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUNwQixZQUFZO2lCQUNiO2dCQUNELGVBQWUsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUN2QyxPQUFPLEVBQUU7b0JBQ1Asb0JBQW9CO29CQUNwQixvQkFBb0I7b0JBQ3BCLG1CQUFtQjtvQkFDbkIsWUFBWTtpQkFDYjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsWUFBWTtpQkFDYjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQnVzeU92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnVzeS1vdmVybGF5L2J1c3ktb3ZlcmxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlU2VydmljZSB9IGZyb20gJy4vcGxhY2Uuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIEJ1c3lPdmVybGF5Q29tcG9uZW50LFxuICAgIFBsYWNlT3V0bGV0Q29tcG9uZW50LFxuICAgIE5hdkNvbXBvbmVudFxuICBdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtCdXN5T3ZlcmxheUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXN5T3ZlcmxheUNvbXBvbmVudCxcbiAgICBQbGFjZU91dGxldENvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIE5hdkNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBQbGFjZVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQbGFjZU1vZHVsZSB7XG5cbn1cbiJdfQ==
@@ -16,6 +16,17 @@ if (false) {
16
16
  /** @type {?|undefined} */
17
17
  ParameterOptions.prototype.sanitiser;
18
18
  }
19
+ /**
20
+ * @record
21
+ * @template T
22
+ */
23
+ export function ListParameterOptions() { }
24
+ if (false) {
25
+ /** @type {?|undefined} */
26
+ ListParameterOptions.prototype.as;
27
+ /** @type {?|undefined} */
28
+ ListParameterOptions.prototype.listSanitiser;
29
+ }
19
30
  /**
20
31
  * @template T
21
32
  * @param {?} type
@@ -37,12 +48,22 @@ export function RouteId(type, options) {
37
48
  });
38
49
  }
39
50
  /**
51
+ * @deprecated use RouteParameter instead.
40
52
  * @template T
41
53
  * @param {?} type
42
54
  * @param {?=} options
43
55
  * @return {?}
44
56
  */
45
57
  export function QueryParameter(type, options) {
58
+ return RouteParameter(type, options);
59
+ }
60
+ /**
61
+ * @template T
62
+ * @param {?} type
63
+ * @param {?=} options
64
+ * @return {?}
65
+ */
66
+ export function RouteParameter(type, options) {
46
67
  // assert.isTruthy(type.isValid());
47
68
  return (/**
48
69
  * @param {?} prototype
@@ -56,6 +77,36 @@ export function QueryParameter(type, options) {
56
77
  UseDelegate()(prototype, propertyKey);
57
78
  });
58
79
  }
80
+ /**
81
+ * @deprecated use RouteParameterList instead
82
+ * @template E
83
+ * @param {?} elementType
84
+ * @param {?=} options
85
+ * @return {?}
86
+ */
87
+ export function QueryParameterList(elementType, options) {
88
+ return RouteParameterList(elementType, options);
89
+ }
90
+ /**
91
+ * @template E
92
+ * @param {?} elementType
93
+ * @param {?=} options
94
+ * @return {?}
95
+ */
96
+ export function RouteParameterList(elementType, options) {
97
+ // assert.isTruthy(type.isValid());
98
+ return (/**
99
+ * @param {?} prototype
100
+ * @param {?} propertyKey
101
+ * @return {?}
102
+ */
103
+ (prototype, propertyKey) => {
104
+ /** @type {?} */
105
+ const param = createArrayDefinition(propertyKey, elementType, options);
106
+ Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);
107
+ UseDelegate()(prototype, propertyKey);
108
+ });
109
+ }
59
110
  /**
60
111
  * @template T
61
112
  * @param {?} propertyName
@@ -75,8 +126,32 @@ function createDefinition(propertyName, type, options, routeId) {
75
126
  propertyName: propertyNameAsString,
76
127
  type: assert.notNil(type),
77
128
  sanitiser: opts.getOptional('sanitiser', null),
78
- isRouteId: routeId
129
+ isRouteId: routeId,
130
+ isArray: false
131
+ };
132
+ return def;
133
+ }
134
+ /**
135
+ * @template T
136
+ * @param {?} propertyName
137
+ * @param {?} type
138
+ * @param {?} options
139
+ * @return {?}
140
+ */
141
+ function createArrayDefinition(propertyName, type, options) {
142
+ /** @type {?} */
143
+ const opts = Opts.get(options);
144
+ /** @type {?} */
145
+ const propertyNameAsString = assert.notNil(propertyName).toString();
146
+ /** @type {?} */
147
+ const def = {
148
+ name: opts.getOptional('as', propertyNameAsString),
149
+ propertyName: propertyNameAsString,
150
+ type: assert.notNil(type),
151
+ sanitiser: opts.getOptional('listSanitiser', null),
152
+ isRouteId: false,
153
+ isArray: true
79
154
  };
80
155
  return def;
81
156
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvcGFyYW1ldGVyLWRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRXBFLHNDQUdDOzs7SUFGQyw4QkFBWTs7SUFDWixxQ0FBaUQ7Ozs7Ozs7O0FBR25ELE1BQU0sVUFBVSxPQUFPLENBQTRCLElBQXNCLEVBQUUsT0FBNkI7SUFDdEcsbUNBQW1DO0lBQ25DOzs7OztJQUFPLENBQUMsU0FBaUIsRUFBRSxXQUE0QixFQUFFLEVBQUU7O2NBQ25ELEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUM7UUFDaEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7Ozs7OztBQUdELE1BQU0sVUFBVSxjQUFjLENBQUksSUFBc0IsRUFBRSxPQUE2QjtJQUNyRixtQ0FBbUM7SUFDbkM7Ozs7O0lBQU8sQ0FBQyxTQUFpQixFQUFFLFdBQTRCLEVBQUUsRUFBRTs7Y0FDbkQsS0FBSyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUNqRSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xHLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4QyxDQUFDLEVBQUM7QUFDSixDQUFDOzs7Ozs7Ozs7QUFFRCxTQUFTLGdCQUFnQixDQUFJLFlBQTZCLEVBQUUsSUFBc0IsRUFBRSxPQUE0QixFQUFFLE9BQWdCOztVQUMxSCxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7O1VBQ3hCLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxFQUFFOztVQUM3RCxHQUFHLEdBQTJCO1FBQ2xDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQztRQUNsRCxZQUFZLEVBQUUsb0JBQW9CO1FBQ2xDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO1FBQzlDLFNBQVMsRUFBRSxPQUFPO0tBQ25CO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0LCBDb25zdHJ1Y3RhYmxlLCBVc2VEZWxlZ2F0ZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEtsYXNzLCBPcHRzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTYW5pdGlzZXIgfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuaW1wb3J0IHsgUGFyYW1ldGVyVHlwZSB9IGZyb20gJy4vcGFyYW1ldGVyLXR5cGUnO1xuaW1wb3J0IHsgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyB9IGZyb20gJy4vcm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXJPcHRpb25zPFQ+IHtcbiAgYXM/OiBzdHJpbmc7XG4gIHNhbml0aXNlcj86IENvbnN0cnVjdGFibGU8UGFyYW1ldGVyU2FuaXRpc2VyPFQ+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJvdXRlSWQ8VCBleHRlbmRzIHN0cmluZyB8IG51bWJlcj4odHlwZTogUGFyYW1ldGVyVHlwZTxUPiwgb3B0aW9ucz86IFBhcmFtZXRlck9wdGlvbnM8VD4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIC8vIGFzc2VydC5pc1RydXRoeSh0eXBlLmlzVmFsaWQoKSk7XG4gIHJldHVybiAocHJvdG90eXBlOiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IGNyZWF0ZURlZmluaXRpb24ocHJvcGVydHlLZXksIHR5cGUsIG9wdGlvbnMsIHRydWUpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJvdXRlUGFyYW1ldGVyQmluZGluZ3MuUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZLCBwYXJhbSk7XG4gICAgVXNlRGVsZWdhdGUoKShwcm90b3R5cGUsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gUXVlcnlQYXJhbWV0ZXI8VD4odHlwZTogUGFyYW1ldGVyVHlwZTxUPiwgb3B0aW9ucz86IFBhcmFtZXRlck9wdGlvbnM8VD4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIC8vIGFzc2VydC5pc1RydXRoeSh0eXBlLmlzVmFsaWQoKSk7XG4gIHJldHVybiAocHJvdG90eXBlOiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IGNyZWF0ZURlZmluaXRpb24ocHJvcGVydHlLZXksIHR5cGUsIG9wdGlvbnMsIGZhbHNlKTtcbiAgICBLbGFzcy5nZXQocHJvdG90eXBlKS5hZGRUb093bk1ldGFkYXRhTGlzdChSb3V0ZVBhcmFtZXRlckJpbmRpbmdzLlJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSwgcGFyYW0pO1xuICAgIFVzZURlbGVnYXRlKCkocHJvdG90eXBlLCBwcm9wZXJ0eUtleSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURlZmluaXRpb248VD4ocHJvcGVydHlOYW1lOiBzeW1ib2wgfCBzdHJpbmcsIHR5cGU6IFBhcmFtZXRlclR5cGU8VD4sIG9wdGlvbnM6IFBhcmFtZXRlck9wdGlvbnM8VD4sIHJvdXRlSWQ6IGJvb2xlYW4pIHtcbiAgY29uc3Qgb3B0cyA9IE9wdHMuZ2V0KG9wdGlvbnMpO1xuICBjb25zdCBwcm9wZXJ0eU5hbWVBc1N0cmluZyA9IGFzc2VydC5ub3ROaWwocHJvcGVydHlOYW1lKS50b1N0cmluZygpO1xuICBjb25zdCBkZWY6IFBhcmFtZXRlckRlZmluaXRpb248VD4gPSB7XG4gICAgbmFtZTogb3B0cy5nZXRPcHRpb25hbCgnYXMnLCBwcm9wZXJ0eU5hbWVBc1N0cmluZyksXG4gICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWVBc1N0cmluZyxcbiAgICB0eXBlOiBhc3NlcnQubm90TmlsKHR5cGUpLFxuICAgIHNhbml0aXNlcjogb3B0cy5nZXRPcHRpb25hbCgnc2FuaXRpc2VyJywgbnVsbCksXG4gICAgaXNSb3V0ZUlkOiByb3V0ZUlkXG4gIH07XG4gIHJldHVybiBkZWY7XG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvcGFyYW1ldGVyLWRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRXBFLHNDQUdDOzs7SUFGQyw4QkFBWTs7SUFDWixxQ0FBaUQ7Ozs7OztBQUduRCwwQ0FHQzs7O0lBRkMsa0NBQVk7O0lBQ1osNkNBQXVEOzs7Ozs7OztBQUd6RCxNQUFNLFVBQVUsT0FBTyxDQUE0QixJQUFzQixFQUFFLE9BQTZCO0lBQ3RHLG1DQUFtQztJQUNuQzs7Ozs7SUFBTyxDQUFDLFNBQWlCLEVBQUUsV0FBNEIsRUFBRSxFQUFFOztjQUNuRCxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQ2hFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEcsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsRUFBQztBQUNKLENBQUM7Ozs7Ozs7O0FBT0QsTUFBTSxVQUFVLGNBQWMsQ0FBSSxJQUFzQixFQUFFLE9BQTZCO0lBQ3JGLE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2QyxDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBSSxJQUFzQixFQUFFLE9BQTZCO0lBQ3JGLG1DQUFtQztJQUNuQzs7Ozs7SUFBTyxDQUFDLFNBQWlCLEVBQUUsV0FBNEIsRUFBRSxFQUFFOztjQUNuRCxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEcsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsRUFBQztBQUNKLENBQUM7Ozs7Ozs7O0FBT0QsTUFBTSxVQUFVLGtCQUFrQixDQUFJLFdBQTZCLEVBQUUsT0FBaUM7SUFDcEcsT0FBTyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEQsQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBSSxXQUE2QixFQUFFLE9BQWlDO0lBQ3BHLG1DQUFtQztJQUNuQzs7Ozs7SUFBTyxDQUFDLFNBQWlCLEVBQUUsV0FBNEIsRUFBRSxFQUFFOztjQUNuRCxLQUFLLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUM7UUFDdEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7Ozs7Ozs7O0FBRUQsU0FBUyxnQkFBZ0IsQ0FBSSxZQUE2QixFQUFFLElBQXNCLEVBQUUsT0FBNEIsRUFBRSxPQUFnQjs7VUFDMUgsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDOztVQUN4QixvQkFBb0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRTs7VUFDN0QsR0FBRyxHQUEyQjtRQUNsQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7UUFDbEQsWUFBWSxFQUFFLG9CQUFvQjtRQUNsQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztRQUM5QyxTQUFTLEVBQUUsT0FBTztRQUNsQixPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDOzs7Ozs7OztBQUVELFNBQVMscUJBQXFCLENBQUksWUFBNkIsRUFBRSxJQUFzQixFQUFFLE9BQWdDOztVQUNqSCxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7O1VBQ3hCLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxFQUFFOztVQUU3RCxHQUFHLEdBQWdDO1FBQ3ZDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQztRQUNsRCxZQUFZLEVBQUUsb0JBQW9CO1FBQ2xDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO1FBQ2xELFNBQVMsRUFBRSxLQUFLO1FBQ2hCLE9BQU8sRUFBRSxJQUFJO0tBQ2Q7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnQsIENvbnN0cnVjdGFibGUsIFVzZURlbGVnYXRlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgS2xhc3MsIE9wdHMgfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcbmltcG9ydCB7IFBhcmFtZXRlclNhbml0aXNlciB9IGZyb20gJy4vcGFyYW1ldGVyLXNhbml0aXNlcic7XG5pbXBvcnQgeyBQYXJhbWV0ZXJUeXBlIH0gZnJvbSAnLi9wYXJhbWV0ZXItdHlwZSc7XG5pbXBvcnQgeyBSb3V0ZVBhcmFtZXRlckJpbmRpbmdzIH0gZnJvbSAnLi9yb3V0ZS1wYXJhbWV0ZXItYmluZGluZ3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlck9wdGlvbnM8VD4ge1xuICBhcz86IHN0cmluZztcbiAgc2FuaXRpc2VyPzogQ29uc3RydWN0YWJsZTxQYXJhbWV0ZXJTYW5pdGlzZXI8VD4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYXJhbWV0ZXJPcHRpb25zPFQ+IHtcbiAgYXM/OiBzdHJpbmc7XG4gIGxpc3RTYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUW10+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJvdXRlSWQ8VCBleHRlbmRzIHN0cmluZyB8IG51bWJlcj4odHlwZTogUGFyYW1ldGVyVHlwZTxUPiwgb3B0aW9ucz86IFBhcmFtZXRlck9wdGlvbnM8VD4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIC8vIGFzc2VydC5pc1RydXRoeSh0eXBlLmlzVmFsaWQoKSk7XG4gIHJldHVybiAocHJvdG90eXBlOiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IGNyZWF0ZURlZmluaXRpb24ocHJvcGVydHlLZXksIHR5cGUsIG9wdGlvbnMsIHRydWUpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJvdXRlUGFyYW1ldGVyQmluZGluZ3MuUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZLCBwYXJhbSk7XG4gICAgVXNlRGVsZWdhdGUoKShwcm90b3R5cGUsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgUm91dGVQYXJhbWV0ZXIgaW5zdGVhZC5cbiAqIEBwYXJhbSB0eXBlXG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gUXVlcnlQYXJhbWV0ZXI8VD4odHlwZTogUGFyYW1ldGVyVHlwZTxUPiwgb3B0aW9ucz86IFBhcmFtZXRlck9wdGlvbnM8VD4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIHJldHVybiBSb3V0ZVBhcmFtZXRlcih0eXBlLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJvdXRlUGFyYW1ldGVyPFQ+KHR5cGU6IFBhcmFtZXRlclR5cGU8VD4sIG9wdGlvbnM/OiBQYXJhbWV0ZXJPcHRpb25zPFQ+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAvLyBhc3NlcnQuaXNUcnV0aHkodHlwZS5pc1ZhbGlkKCkpO1xuICByZXR1cm4gKHByb3RvdHlwZTogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBjcmVhdGVEZWZpbml0aW9uKHByb3BlcnR5S2V5LCB0eXBlLCBvcHRpb25zLCBmYWxzZSk7XG4gICAgS2xhc3MuZ2V0KHByb3RvdHlwZSkuYWRkVG9Pd25NZXRhZGF0YUxpc3QoUm91dGVQYXJhbWV0ZXJCaW5kaW5ncy5ST1VURV9QQVJBTUVURVJfTElTVF9LRVksIHBhcmFtKTtcbiAgICBVc2VEZWxlZ2F0ZSgpKHByb3RvdHlwZSwgcHJvcGVydHlLZXkpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBSb3V0ZVBhcmFtZXRlckxpc3QgaW5zdGVhZFxuICogQHBhcmFtIGVsZW1lbnRUeXBlXG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gUXVlcnlQYXJhbWV0ZXJMaXN0PEU+KGVsZW1lbnRUeXBlOiBQYXJhbWV0ZXJUeXBlPEU+LCBvcHRpb25zPzogTGlzdFBhcmFtZXRlck9wdGlvbnM8RT4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIHJldHVybiBSb3V0ZVBhcmFtZXRlckxpc3QoZWxlbWVudFR5cGUsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUm91dGVQYXJhbWV0ZXJMaXN0PEU+KGVsZW1lbnRUeXBlOiBQYXJhbWV0ZXJUeXBlPEU+LCBvcHRpb25zPzogTGlzdFBhcmFtZXRlck9wdGlvbnM8RT4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIC8vIGFzc2VydC5pc1RydXRoeSh0eXBlLmlzVmFsaWQoKSk7XG4gIHJldHVybiAocHJvdG90eXBlOiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IGNyZWF0ZUFycmF5RGVmaW5pdGlvbihwcm9wZXJ0eUtleSwgZWxlbWVudFR5cGUsIG9wdGlvbnMpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJvdXRlUGFyYW1ldGVyQmluZGluZ3MuUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZLCBwYXJhbSk7XG4gICAgVXNlRGVsZWdhdGUoKShwcm90b3R5cGUsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVmaW5pdGlvbjxUPihwcm9wZXJ0eU5hbWU6IHN5bWJvbCB8IHN0cmluZywgdHlwZTogUGFyYW1ldGVyVHlwZTxUPiwgb3B0aW9uczogUGFyYW1ldGVyT3B0aW9uczxUPiwgcm91dGVJZDogYm9vbGVhbikge1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIGNvbnN0IHByb3BlcnR5TmFtZUFzU3RyaW5nID0gYXNzZXJ0Lm5vdE5pbChwcm9wZXJ0eU5hbWUpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IGRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiA9IHtcbiAgICBuYW1lOiBvcHRzLmdldE9wdGlvbmFsKCdhcycsIHByb3BlcnR5TmFtZUFzU3RyaW5nKSxcbiAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZUFzU3RyaW5nLFxuICAgIHR5cGU6IGFzc2VydC5ub3ROaWwodHlwZSksXG4gICAgc2FuaXRpc2VyOiBvcHRzLmdldE9wdGlvbmFsKCdzYW5pdGlzZXInLCBudWxsKSxcbiAgICBpc1JvdXRlSWQ6IHJvdXRlSWQsXG4gICAgaXNBcnJheTogZmFsc2VcbiAgfTtcbiAgcmV0dXJuIGRlZjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQXJyYXlEZWZpbml0aW9uPFQ+KHByb3BlcnR5TmFtZTogc3ltYm9sIHwgc3RyaW5nLCB0eXBlOiBQYXJhbWV0ZXJUeXBlPFQ+LCBvcHRpb25zOiBMaXN0UGFyYW1ldGVyT3B0aW9uczxUPikge1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIGNvbnN0IHByb3BlcnR5TmFtZUFzU3RyaW5nID0gYXNzZXJ0Lm5vdE5pbChwcm9wZXJ0eU5hbWUpLnRvU3RyaW5nKCk7XG5cbiAgY29uc3QgZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFRbXT4gPSB7XG4gICAgbmFtZTogb3B0cy5nZXRPcHRpb25hbCgnYXMnLCBwcm9wZXJ0eU5hbWVBc1N0cmluZyksXG4gICAgcHJvcGVydHlOYW1lOiBwcm9wZXJ0eU5hbWVBc1N0cmluZyxcbiAgICB0eXBlOiBhc3NlcnQubm90TmlsKHR5cGUpLFxuICAgIHNhbml0aXNlcjogb3B0cy5nZXRPcHRpb25hbCgnbGlzdFNhbml0aXNlcicsIG51bGwpLFxuICAgIGlzUm91dGVJZDogZmFsc2UsXG4gICAgaXNBcnJheTogdHJ1ZVxuICB9O1xuICByZXR1cm4gZGVmO1xufVxuIl19
@@ -4,7 +4,7 @@
4
4
  */
5
5
  /**
6
6
  * @record
7
- * @template T
7
+ * @template E, S
8
8
  */
9
9
  export function ParameterDefinition() { }
10
10
  if (false) {
@@ -18,5 +18,7 @@ if (false) {
18
18
  ParameterDefinition.prototype.sanitiser;
19
19
  /** @type {?} */
20
20
  ParameterDefinition.prototype.isRouteId;
21
+ /** @type {?} */
22
+ ParameterDefinition.prototype.isArray;
21
23
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFJQSx5Q0FNQzs7O0lBTEMsbUNBQXNCOztJQUN0QiwyQ0FBOEI7O0lBQzlCLG1DQUFnQzs7SUFDaEMsd0NBQXlEOztJQUN6RCx3Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3RhYmxlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgUGFyYW1ldGVyU2FuaXRpc2VyIH0gZnJvbSAnLi9wYXJhbWV0ZXItc2FuaXRpc2VyJztcbmltcG9ydCB7IFBhcmFtZXRlclR5cGUgfSBmcm9tICcuL3BhcmFtZXRlci10eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdHlwZTogUGFyYW1ldGVyVHlwZTxUPjtcbiAgcmVhZG9ubHkgc2FuaXRpc2VyOiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj47XG4gIHJlYWRvbmx5IGlzUm91dGVJZDogYm9vbGVhbjtcbn1cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvcGFyYW1ldGVyLWRlZmluaXRpb24uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFJQSx5Q0FPQzs7O0lBTkMsbUNBQXNCOztJQUN0QiwyQ0FBOEI7O0lBQzlCLG1DQUFnQzs7SUFDaEMsd0NBQXlEOztJQUN6RCx3Q0FBNEI7O0lBQzVCLHNDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdGFibGUgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTYW5pdGlzZXIgfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuaW1wb3J0IHsgUGFyYW1ldGVyVHlwZSB9IGZyb20gJy4vcGFyYW1ldGVyLXR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlckRlZmluaXRpb248RSxTPUU+IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdHlwZTogUGFyYW1ldGVyVHlwZTxFPjtcbiAgcmVhZG9ubHkgc2FuaXRpc2VyOiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxTPj47XG4gIHJlYWRvbmx5IGlzUm91dGVJZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaXNBcnJheTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -13,7 +13,7 @@ import { Klass } from '@coolon/typescript-utilities';
13
13
  function ResolvedParameter() { }
14
14
  if (false) {
15
15
  /** @type {?} */
16
- ResolvedParameter.prototype.parameter;
16
+ ResolvedParameter.prototype.parameterDef;
17
17
  /** @type {?} */
18
18
  ResolvedParameter.prototype.resolvedValue;
19
19
  }
@@ -35,7 +35,7 @@ class ResolvedParameters {
35
35
  * @param {?} p
36
36
  * @return {?}
37
37
  */
38
- p => p.parameter === parameter));
38
+ p => p.parameterDef === parameter));
39
39
  return resolved ? resolved.resolvedValue : null;
40
40
  }
41
41
  /**
@@ -49,8 +49,8 @@ class ResolvedParameters {
49
49
  * @param {?} p
50
50
  * @return {?}
51
51
  */
52
- p => p.parameter !== parameter)).concat({
53
- parameter,
52
+ p => p.parameterDef !== parameter)).concat({
53
+ parameterDef: parameter,
54
54
  resolvedValue: value
55
55
  }));
56
56
  }
@@ -61,7 +61,7 @@ class ResolvedParameters {
61
61
  getFormattedRouteId() {
62
62
  /** @type {?} */
63
63
  const routeIdParam = this.getRouteIdParam();
64
- return routeIdParam ? routeIdParam.parameter.type.format(routeIdParam.resolvedValue) : null;
64
+ return routeIdParam ? routeIdParam.parameterDef.type.format(routeIdParam.resolvedValue) : null;
65
65
  }
66
66
  /**
67
67
  * @private
@@ -72,7 +72,7 @@ class ResolvedParameters {
72
72
  * @param {?} p
73
73
  * @return {?}
74
74
  */
75
- p => p.parameter.isRouteId));
75
+ p => p.parameterDef.isRouteId));
76
76
  }
77
77
  /**
78
78
  * @protected
@@ -86,12 +86,12 @@ class ResolvedParameters {
86
86
  * @param {?} p
87
87
  * @return {?}
88
88
  */
89
- p => !p.parameter.isRouteId)).forEach((/**
89
+ p => !p.parameterDef.isRouteId)).forEach((/**
90
90
  * @param {?} p
91
91
  * @return {?}
92
92
  */
93
93
  p => {
94
- params[p.parameter.name] = p.parameter.type.format(p.resolvedValue);
94
+ params[p.parameterDef.name] = p.parameterDef.type.format(p.resolvedValue);
95
95
  }));
96
96
  return params;
97
97
  }
@@ -115,7 +115,7 @@ class ResolvedParameters {
115
115
  /** @type {?} */
116
116
  const path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];
117
117
  router.navigate(path, {
118
- relativeTo: activatedRoute,
118
+ relativeTo: activatedRoute
119
119
  });
120
120
  }
121
121
  }
@@ -175,11 +175,23 @@ export class RouteParameterBindings extends GarbageCollector {
175
175
  /** @type {?} */
176
176
  const result = [];
177
177
  routeParameterDefs.forEach((/**
178
- * @param {?} parameter
178
+ * @param {?} parameterDef
179
179
  * @return {?}
180
180
  */
181
- parameter => {
182
- result.push({ parameter, resolvedValue: parameter.type.parse(params.get(parameter.name)) });
181
+ parameterDef => {
182
+ /** @type {?} */
183
+ let resolvedValue;
184
+ if (parameterDef.isArray) {
185
+ resolvedValue = params.getAll(parameterDef.name).map((/**
186
+ * @param {?} v
187
+ * @return {?}
188
+ */
189
+ v => parameterDef.type.parse(v)));
190
+ }
191
+ else {
192
+ resolvedValue = parameterDef.type.parse(params.get(parameterDef.name));
193
+ }
194
+ result.push({ parameterDef: parameterDef, resolvedValue: resolvedValue });
183
195
  }));
184
196
  return new ResolvedParameters(result);
185
197
  }));
@@ -279,4 +291,4 @@ if (false) {
279
291
  (function (RouteParameterBindings) {
280
292
  RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
281
293
  })(RouteParameterBindings || (RouteParameterBindings = {}));
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLE9BQU8sRUFDUCxHQUFHLEVBQ0gsZ0JBQWdCLEVBRWhCLGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUlyRCxnQ0FHQzs7O0lBRkMsc0NBQWtDOztJQUNsQywwQ0FBaUI7O0FBR25CLE1BQU0sa0JBQWtCOzs7O0lBQ3RCLFlBQXFCLFVBQW9DO1FBQXBDLGVBQVUsR0FBVixVQUFVLENBQTBCO0lBQ3pELENBQUM7Ozs7OztJQUVELEdBQUcsQ0FBSSxTQUFpQzs7Y0FDaEMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUM7UUFDckUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRCxDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFJLFNBQWlDLEVBQUUsS0FBUTtRQUNwRCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBQyxDQUFDLE1BQU0sQ0FBQztZQUMxRixTQUFTO1lBQ1QsYUFBYSxFQUFF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LGdEQUErQzs7QUF1RC9ILFdBQWlCLHNCQUFzQjtJQUN4QiwrQ0FBd0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUM7QUFDMUUsQ0FBQyxFQUZnQixzQkFBc0IsS0FBdEIsc0JBQXNCLFFBRXRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCaW5kaW5nLFxuICBEc2wsXG4gIEdhcmJhZ2VDb2xsZWN0b3IsXG4gIE11dGFibGVIYXNWYWx1ZSxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFRyYWNlLFxuICBUcmFuc2FjdGlvbk9ic2VydmVyXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEtsYXNzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBBYnN0cmFjdFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcblxuaW50ZXJmYWNlIFJlc29sdmVkUGFyYW1ldGVyPFQ+IHtcbiAgcGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+O1xuICByZXNvbHZlZFZhbHVlOiBUO1xufVxuXG5jbGFzcyBSZXNvbHZlZFBhcmFtZXRlcnMge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJzOiBSZXNvbHZlZFBhcmFtZXRlcjxhbnk+W10pIHtcbiAgfVxuXG4gIGdldDxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VD4pOiBUIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHRoaXMucGFyYW1ldGVycy5maW5kKHAgPT4gcC5wYXJhbWV0ZXIgPT09IHBhcmFtZXRlcik7XG4gICAgcmV0dXJuIHJlc29sdmVkID8gcmVzb2x2ZWQucmVzb2x2ZWRWYWx1ZSA6IG51bGw7XG4gIH1cblxuICByZXBsYWNlPFQ+KHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiwgdmFsdWU6IFQpOiBSZXNvbHZlZFBhcmFtZXRlcnMge1xuICAgIHJldHVybiBuZXcgUmVzb2x2ZWRQYXJhbWV0ZXJzKHRoaXMucGFyYW1ldGVycy5maWx0ZXIocCA9PiBwLnBhcmFtZXRlciAhPT0gcGFyYW1ldGVyKS5jb25jYXQoe1xuICAgICAgcGFyYW1ldGVyLFxuICAgICAgcmVzb2x2ZWRWYWx1ZTogdmFsdWVcbiAgICB9KSk7XG4gIH1cblxuICBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgZ2V0Rm9ybWF0dGVkUm91dGVJZCgpIHtcbiAgICBjb25zdCByb3V0ZUlkUGFyYW0gPSB0aGlzLmdldFJvdXRlSWRQYXJhbSgpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW0gPyByb3V0ZUlkUGFyYW0ucGFyYW1ldGVyLnR5cGUuZm9ybWF0KHJvdXRlSWRQYXJhbS5yZXNvbHZlZFZhbHVlKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlSWRQYXJhbSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmZpbmQocCA9PiBwLnBhcmFtZXRlci5pc1JvdXRlSWQpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgcHJvdGVjdGVkIGdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtID0gdGhpcy5wYXJhbWV0ZXJzLmZpbHRlcihwID0+ICFwLnBhcmFtZXRlci5pc1JvdXRlSWQpLmZvckVhY2gocCA9PiB7XG4gICAgICBwYXJhbXNbcC5wYXJhbWV0ZXIubmFtZV0gPSBwLnBhcmFtZXRlci50eXBlLmZvcm1hdChwLnJlc29sdmVkVmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtKCk7XG4gIH1cblxuICBAVHJhY2UoKVxuICByZWRpcmVjdChwcmV2aW91czogUmVzb2x2ZWRQYXJhbWV0ZXJzLCByb3V0ZXI6IFJvdXRlciwgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgY29uc3Qgcm91dGVJZCA9IHRoaXMuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9ICEhcHJldmlvdXMuaGFzUm91dGVJZCgpID8gJy4uJyA6ICcuJztcbiAgICBjb25zdCBwYXRoID0gcm91dGVJZCA/IFtyZWxhdGl2ZVBhdGgsIHJvdXRlSWQsIHRoaXMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXSA6IFtyZWxhdGl2ZVBhdGgsIHRoaXMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXTtcbiAgICByb3V0ZXIubmF2aWdhdGUocGF0aCwge1xuICAgICAgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvdXRlUGFyYW1ldGVyQmluZGluZ3MgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgX2luY29taW5nUm91dGVDaGFuZ2UgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgdHhvOiBUcmFuc2FjdGlvbk9ic2VydmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZWRQYXJhbWV0ZXJzID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFJlc29sdmVkUGFyYW1ldGVycz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudDogYW55LCBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMudHhvID0gbmV3IFRyYW5zYWN0aW9uT2JzZXJ2ZXIoKTsvLy5vbkV2ZW50KGUgPT4gY29uc29sZS5sb2coZS50b1N0cmluZygpKSk7XG5cbiAgICBjb25zdCByb3V0ZVBhcmFtZXRlckRlZnMgPSBLbGFzcy5nZXQoY29tcG9uZW50KS5nZXRNZXRhZGF0YUxpc3QoUm91dGVQYXJhbWV0ZXJCaW5kaW5ncy5ST1VURV9QQVJBTUVURVJfTElTVF9LRVkpO1xuICAgIHJvdXRlUGFyYW1ldGVyRGVmcy5mb3JFYWNoKHBhcmFtZXRlciA9PiB0aGlzLmluc3RhbGxCaW5kaW5nKHBhcmFtZXRlcikpO1xuXG4gICAgY29uc3QgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycyA9IG9ic2VydmUudmFsdWVzRnJvbShhY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcClcbiAgICAgIC5sYXN0KClcbiAgICAgIC5tYXAocGFyYW1zID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBSZXNvbHZlZFBhcmFtZXRlcjxhbnk+W10gPSBbXTtcbiAgICAgICAgcm91dGVQYXJhbWV0ZXJEZWZzLmZvckVhY2gocGFyYW1ldGVyID0+IHtcbiAgICAgICAgICByZXN1bHQucHVzaCh7IHBhcmFtZXRlciwgcmVzb2x2ZWRWYWx1ZTogcGFyYW1ldGVyLnR5cGUucGFyc2UocGFyYW1zLmdldChwYXJhbWV0ZXIubmFtZSkpIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZXNvbHZlZFBhcmFtZXRlcnMocmVzdWx0KTtcbiAgICAgIH0pO1xuXG4gICAgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycy5zdWJzY3JpYmUocmVzb2x2ZWRQYXJhbWV0ZXJzID0+IHtcbiAgICAgIHRoaXMuX2luY29taW5nUm91dGVDaGFuZ2UudmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5yZXNvbHZlZFBhcmFtZXRlcnMudmFsdWUgPSByZXNvbHZlZFBhcmFtZXRlcnM7XG4gICAgICB0aGlzLl9pbmNvbWluZ1JvdXRlQ2hhbmdlLnZhbHVlID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICB3aGVuLnZhbHVlT2YodGhpcy5yZXNvbHZlZFBhcmFtZXRlcnMpLmNoYW5nZXMoKHBhcmFtcywgcHJldmlvdXMpID0+IHtcbiAgICAgIHBhcmFtcy5yZWRpcmVjdChwcmV2aW91cywgcm91dGVyLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgfSwgeyB1bmxlc3M6IHRoaXMuaW5jb21pbmdSb3V0ZUNoYW5nZSB9KTtcblxuICAgIHRoaXMudHhvLm9ic2VydmUoJ2luY29taW5nUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlcnMnLCBpbmNvbWluZ1Jlc29sdmVkUm91dGVQYXJhbWV0ZXJzKTtcbiAgICB0aGlzLnR4by5vYnNlcnZlKCd0aGlzLnJvdXRlSXNDaGFuZ2luZycsIHRoaXMuaW5jb21pbmdSb3V0ZUNoYW5nZSk7XG4gIH1cblxuICBnZXQgaW5jb21pbmdSb3V0ZUNoYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5jb21pbmdSb3V0ZUNoYW5nZS5yZWFkb25seTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnN0YWxsQmluZGluZzxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VD4pIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0TW9kZWxGb3IocGFyYW1ldGVyKTtcbiAgICB0aGlzLnR4by5vYnNlcnZlKHBhcmFtZXRlci5wcm9wZXJ0eU5hbWUsIG1vZGVsKTtcbiAgICB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgQmluZGluZyh0aGlzLnJlc29sdmVkUGFyYW1ldGVycywgbW9kZWwsIHtcbiAgICAgIHRvUmlnaHQocGFyYW1ldGVyczogUmVzb2x2ZWRQYXJhbWV0ZXJzKTogVCB7XG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXJzLmdldChwYXJhbWV0ZXIpO1xuICAgICAgfSxcbiAgICAgIHRvTGVmdCh2YWx1ZTogVCwgY3VycmVudFBhcmFtZXRlcnM/OiBSZXNvbHZlZFBhcmFtZXRlcnMpOiBSZXNvbHZlZFBhcmFtZXRlcnMge1xuICAgICAgICByZXR1cm4gY3VycmVudFBhcmFtZXRlcnMucmVwbGFjZShwYXJhbWV0ZXIsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuXG4gIHByaXZhdGUgZ2V0TW9kZWxGb3I8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KTogTXV0YWJsZUhhc1ZhbHVlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRbcGFyYW1ldGVyLnByb3BlcnR5TmFtZV07XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBSb3V0ZVBhcmFtZXRlckJpbmRpbmdzIHtcbiAgZXhwb3J0IGNvbnN0IFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSA9IFN5bWJvbCgncGxhY2U6cm91dGU6cGFyYW1ldGVycycpO1xufVxuIl19
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLE9BQU8sRUFDUCxHQUFHLEVBQ0gsZ0JBQWdCLEVBRWhCLGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUdyRCxnQ0FHQzs7O0lBRkMseUNBQXFDOztJQUNyQywwQ0FBaUI7O0FBR25CLE1BQU0sa0JBQWtCOzs7O0lBQ3RCLFlBQXFCLFVBQW9DO1FBQXBDLGVBQVUsR0FBVixVQUFVLENBQTBCO0lBQ3pELENBQUM7Ozs7OztJQUVELEdBQUcsQ0FBSSxTQUFpQzs7Y0FDaEMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUM7UUFDeEUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRCxDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFJLFNBQWlDLEVBQUUsS0FBUTtRQUNwRCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBQyxDQUFDLE1BQU0sQ0FBQztZQUM3RixZQUFZLEVBQUUsU0FBUztZQUN2QixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Ozs7O0lBR1MsbUJBQW1COztjQUNyQixZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUMzQyxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pHLENBQUM7Ozs7O0lBRU8sZUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUMsQ0FBQztJQUM3RCxDQUFDOzs7OztJQUdTLHNCQUFzQjs7Y0FDeEIsTUFBTSxHQUFHLEVBQUU7O2NBQ1gsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBQyxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLENBQUMsRUFBRTtZQUN0RixNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLENBQUMsRUFBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Ozs7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Ozs7Ozs7SUFHRCxRQUFRLENBQUMsUUFBNEIsRUFBRSxNQUFjLEVBQUUsY0FBOEI7O2NBQzdFLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7O2NBQ3BDLFlBQVksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUc7O2NBQ25ELElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM3SCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUNwQixVQUFVLEVBQUUsY0FBYztTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEvQkM7SUFEQyxLQUFLLEVBQUU7Ozs7NkRBSVA7QUFPRDtJQURDLEtBQUssRUFBRTs7OztnRUFPUDtBQU9EO0lBREMsS0FBSyxFQUFFOzs2Q0FDVyxrQkFBa0IsRUFBVSxNQUFNLEVBQWtCLGNBQWM7O2tEQU9wRjs7O0lBOUNXLHdDQUE2Qzs7QUFpRDNELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7Ozs7OztJQVExRCxZQUE2QixTQUFjLEVBQW1CLE1BQWMsRUFBbUIsY0FBOEI7UUFDM0gsS0FBSyxFQUFFLENBQUM7UUFEbUIsY0FBUyxHQUFULFNBQVMsQ0FBSztRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQW1CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQU43Ryx5QkFBb0IsR0FBRyxJQUFJLGlCQUFpQixDQUFVLEtBQUssQ0FBQyxDQUFDO1FBSTVELHVCQUFrQixHQUFHLElBQUksaUJBQWlCLEVBQXNCLENBQUM7Y0FJMUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzlFLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUEsMkNBQTJDOzs7Y0FFMUUsa0JBQWtCLEdBQStCLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDO1FBQzVJLGtCQUFrQixDQUFDLE9BQU87Ozs7UUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQzs7Y0FFbEUsK0JBQStCLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO2FBQ2hGLElBQUksRUFBRTthQUNOLEdBQUc7Ozs7UUFBQyxNQUFNLENBQUMsRUFBRTs7a0JBQ04sTUFBTSxHQUE2QixFQUFFO1lBQzNDLGtCQUFrQixDQUFDLE9BQU87Ozs7WUFBQyxZQUFZLENBQUMsRUFBRTs7b0JBQ3BDLGFBQWE7Z0JBQ2pCLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRTtvQkFDeEIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUc7Ozs7b0JBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO2lCQUN2RjtxQkFBTTtvQkFDTCxhQUFhLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFFNUUsQ0FBQyxFQUFDLENBQUM7WUFDSCxPQUFPLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxFQUFDO1FBRUosK0JBQStCLENBQUMsU0FBUzs7OztRQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztZQUNuRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQyxDQUFDLEVBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTzs7Ozs7UUFBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNqRSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxHQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNyRSxDQUFDOzs7O0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7Ozs7Ozs7SUFFUyxjQUFjLENBQUksU0FBaUM7O2NBQ3JELEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFOzs7OztZQUNsRSxPQUFPLENBQUMsVUFBOEI7Z0JBQ3BDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQyxDQUFDOzs7Ozs7WUFDRCxNQUFNLENBQUMsS0FBUSxFQUFFLGlCQUFzQztnQkFDckQsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELENBQUM7U0FDRixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Ozs7Ozs7SUFHTyxXQUFXLENBQUksU0FBaUM7UUFDdEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7OztJQWxFQyxzREFBNkU7Ozs7O0lBRTdFLHFDQUFpQzs7Ozs7SUFFakMsb0RBQWtGOzs7OztJQUV0RSwyQ0FBK0I7Ozs7O0lBQUUsd0NBQStCOzs7OztJQUFFLGdEQUErQzs7QUE4RC9ILFdBQWlCLHNCQUFzQjtJQUN4QiwrQ0FBd0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUM7QUFDMUUsQ0FBQyxFQUZnQixzQkFBc0IsS0FBdEIsc0JBQXNCLFFBRXRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCaW5kaW5nLFxuICBEc2wsXG4gIEdhcmJhZ2VDb2xsZWN0b3IsXG4gIE11dGFibGVIYXNWYWx1ZSxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFRyYWNlLFxuICBUcmFuc2FjdGlvbk9ic2VydmVyXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEtsYXNzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5cbmludGVyZmFjZSBSZXNvbHZlZFBhcmFtZXRlcjxUPiB7XG4gIHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPjtcbiAgcmVzb2x2ZWRWYWx1ZTogVDtcbn1cblxuY2xhc3MgUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGFyYW1ldGVyczogUmVzb2x2ZWRQYXJhbWV0ZXI8YW55PltdKSB7XG4gIH1cblxuICBnZXQ8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KTogVCB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB0aGlzLnBhcmFtZXRlcnMuZmluZChwID0+IHAucGFyYW1ldGVyRGVmID09PSBwYXJhbWV0ZXIpO1xuICAgIHJldHVybiByZXNvbHZlZCA/IHJlc29sdmVkLnJlc29sdmVkVmFsdWUgOiBudWxsO1xuICB9XG5cbiAgcmVwbGFjZTxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VD4sIHZhbHVlOiBUKTogUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgICByZXR1cm4gbmV3IFJlc29sdmVkUGFyYW1ldGVycyh0aGlzLnBhcmFtZXRlcnMuZmlsdGVyKHAgPT4gcC5wYXJhbWV0ZXJEZWYgIT09IHBhcmFtZXRlcikuY29uY2F0KHtcbiAgICAgIHBhcmFtZXRlckRlZjogcGFyYW1ldGVyLFxuICAgICAgcmVzb2x2ZWRWYWx1ZTogdmFsdWVcbiAgICB9KSk7XG4gIH1cblxuICBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgZ2V0Rm9ybWF0dGVkUm91dGVJZCgpIHtcbiAgICBjb25zdCByb3V0ZUlkUGFyYW0gPSB0aGlzLmdldFJvdXRlSWRQYXJhbSgpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW0gPyByb3V0ZUlkUGFyYW0ucGFyYW1ldGVyRGVmLnR5cGUuZm9ybWF0KHJvdXRlSWRQYXJhbS5yZXNvbHZlZFZhbHVlKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlSWRQYXJhbSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmZpbmQocCA9PiBwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgcHJvdGVjdGVkIGdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtID0gdGhpcy5wYXJhbWV0ZXJzLmZpbHRlcihwID0+ICFwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpLmZvckVhY2gocCA9PiB7XG4gICAgICBwYXJhbXNbcC5wYXJhbWV0ZXJEZWYubmFtZV0gPSBwLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdChwLnJlc29sdmVkVmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtKCk7XG4gIH1cblxuICBAVHJhY2UoKVxuICByZWRpcmVjdChwcmV2aW91czogUmVzb2x2ZWRQYXJhbWV0ZXJzLCByb3V0ZXI6IFJvdXRlciwgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgY29uc3Qgcm91dGVJZCA9IHRoaXMuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9ICEhcHJldmlvdXMuaGFzUm91dGVJZCgpID8gJy4uJyA6ICcuJztcbiAgICBjb25zdCBwYXRoID0gcm91dGVJZCA/IFtyZWxhdGl2ZVBhdGgsIHJvdXRlSWQsIHRoaXMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXSA6IFtyZWxhdGl2ZVBhdGgsIHRoaXMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXTtcbiAgICByb3V0ZXIubmF2aWdhdGUocGF0aCwge1xuICAgICAgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGVcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHB1YmxpYyByZWFkb25seSBfaW5jb21pbmdSb3V0ZUNoYW5nZSA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSB0eG86IFRyYW5zYWN0aW9uT2JzZXJ2ZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlZFBhcmFtZXRlcnMgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8UmVzb2x2ZWRQYXJhbWV0ZXJzPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiBhbnksIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy50eG8gPSBuZXcgVHJhbnNhY3Rpb25PYnNlcnZlcigpOy8vLm9uRXZlbnQoZSA9PiBjb25zb2xlLmxvZyhlLnRvU3RyaW5nKCkpKTtcblxuICAgIGNvbnN0IHJvdXRlUGFyYW1ldGVyRGVmczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10gPSBLbGFzcy5nZXQoY29tcG9uZW50KS5nZXRNZXRhZGF0YUxpc3QoUm91dGVQYXJhbWV0ZXJCaW5kaW5ncy5ST1VURV9QQVJBTUVURVJfTElTVF9LRVkpO1xuICAgIHJvdXRlUGFyYW1ldGVyRGVmcy5mb3JFYWNoKHBhcmFtZXRlciA9PiB0aGlzLmluc3RhbGxCaW5kaW5nKHBhcmFtZXRlcikpO1xuXG4gICAgY29uc3QgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycyA9IG9ic2VydmUudmFsdWVzRnJvbShhY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcClcbiAgICAgIC5sYXN0KClcbiAgICAgIC5tYXAocGFyYW1zID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBSZXNvbHZlZFBhcmFtZXRlcjxhbnk+W10gPSBbXTtcbiAgICAgICAgcm91dGVQYXJhbWV0ZXJEZWZzLmZvckVhY2gocGFyYW1ldGVyRGVmID0+IHtcbiAgICAgICAgICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgICAgICAgICBpZiAocGFyYW1ldGVyRGVmLmlzQXJyYXkpIHtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSBwYXJhbXMuZ2V0QWxsKHBhcmFtZXRlckRlZi5uYW1lKS5tYXAodiA9PiBwYXJhbWV0ZXJEZWYudHlwZS5wYXJzZSh2KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSBwYXJhbWV0ZXJEZWYudHlwZS5wYXJzZShwYXJhbXMuZ2V0KHBhcmFtZXRlckRlZi5uYW1lKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHsgcGFyYW1ldGVyRGVmOiBwYXJhbWV0ZXJEZWYsIHJlc29sdmVkVmFsdWU6IHJlc29sdmVkVmFsdWUgfSk7XG5cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgUmVzb2x2ZWRQYXJhbWV0ZXJzKHJlc3VsdCk7XG4gICAgICB9KTtcblxuICAgIGluY29taW5nUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlcnMuc3Vic2NyaWJlKHJlc29sdmVkUGFyYW1ldGVycyA9PiB7XG4gICAgICB0aGlzLl9pbmNvbWluZ1JvdXRlQ2hhbmdlLnZhbHVlID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzb2x2ZWRQYXJhbWV0ZXJzLnZhbHVlID0gcmVzb2x2ZWRQYXJhbWV0ZXJzO1xuICAgICAgdGhpcy5faW5jb21pbmdSb3V0ZUNoYW5nZS52YWx1ZSA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgd2hlbi52YWx1ZU9mKHRoaXMucmVzb2x2ZWRQYXJhbWV0ZXJzKS5jaGFuZ2VzKChwYXJhbXMsIHByZXZpb3VzKSA9PiB7XG4gICAgICBwYXJhbXMucmVkaXJlY3QocHJldmlvdXMsIHJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgIH0sIHsgdW5sZXNzOiB0aGlzLmluY29taW5nUm91dGVDaGFuZ2UgfSk7XG5cbiAgICB0aGlzLnR4by5vYnNlcnZlKCdpbmNvbWluZ1Jlc29sdmVkUm91dGVQYXJhbWV0ZXJzJywgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycyk7XG4gICAgdGhpcy50eG8ub2JzZXJ2ZSgndGhpcy5yb3V0ZUlzQ2hhbmdpbmcnLCB0aGlzLmluY29taW5nUm91dGVDaGFuZ2UpO1xuICB9XG5cbiAgZ2V0IGluY29taW5nUm91dGVDaGFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luY29taW5nUm91dGVDaGFuZ2UucmVhZG9ubHk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEJpbmRpbmc8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmdldE1vZGVsRm9yKHBhcmFtZXRlcik7XG4gICAgdGhpcy50eG8ub2JzZXJ2ZShwYXJhbWV0ZXIucHJvcGVydHlOYW1lLCBtb2RlbCk7XG4gICAgdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEJpbmRpbmcodGhpcy5yZXNvbHZlZFBhcmFtZXRlcnMsIG1vZGVsLCB7XG4gICAgICB0b1JpZ2h0KHBhcmFtZXRlcnM6IFJlc29sdmVkUGFyYW1ldGVycyk6IFQge1xuICAgICAgICByZXR1cm4gcGFyYW1ldGVycy5nZXQocGFyYW1ldGVyKTtcbiAgICAgIH0sXG4gICAgICB0b0xlZnQodmFsdWU6IFQsIGN1cnJlbnRQYXJhbWV0ZXJzPzogUmVzb2x2ZWRQYXJhbWV0ZXJzKTogUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQYXJhbWV0ZXJzLnJlcGxhY2UocGFyYW1ldGVyLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cblxuICBwcml2YXRlIGdldE1vZGVsRm9yPFQ+KHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPik6IE11dGFibGVIYXNWYWx1ZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50W3BhcmFtZXRlci5wcm9wZXJ0eU5hbWVdO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyB7XG4gIGV4cG9ydCBjb25zdCBST1VURV9QQVJBTUVURVJfTElTVF9LRVkgPSBTeW1ib2woJ3BsYWNlOnJvdXRlOnBhcmFtZXRlcnMnKTtcbn1cbiJdfQ==