@skyux/core 6.16.0 → 7.0.0-alpha.0

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 (104) hide show
  1. package/documentation.json +1049 -899
  2. package/esm2020/lib/modules/adapter-service/adapter.module.mjs +4 -4
  3. package/esm2020/lib/modules/adapter-service/adapter.service.mjs +24 -25
  4. package/esm2020/lib/modules/affix/affix-offset.mjs +1 -1
  5. package/esm2020/lib/modules/affix/affix.directive.mjs +41 -26
  6. package/esm2020/lib/modules/affix/affix.module.mjs +5 -5
  7. package/esm2020/lib/modules/affix/affix.service.mjs +3 -3
  8. package/esm2020/lib/modules/affix/affixer.mjs +266 -260
  9. package/esm2020/lib/modules/affix/dom-utils.mjs +7 -7
  10. package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +51 -47
  11. package/esm2020/lib/modules/dock/dock-item.mjs +10 -5
  12. package/esm2020/lib/modules/dock/dock.component.mjs +58 -34
  13. package/esm2020/lib/modules/dock/dock.module.mjs +5 -5
  14. package/esm2020/lib/modules/dock/dock.service.mjs +43 -39
  15. package/esm2020/lib/modules/dynamic-component/dynamic-component.module.mjs +4 -4
  16. package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +40 -25
  17. package/esm2020/lib/modules/format/app-format.mjs +3 -3
  18. package/esm2020/lib/modules/id/id.directive.mjs +3 -3
  19. package/esm2020/lib/modules/id/id.module.mjs +4 -4
  20. package/esm2020/lib/modules/id/id.service.mjs +3 -3
  21. package/esm2020/lib/modules/log/log.module.mjs +4 -4
  22. package/esm2020/lib/modules/log/log.service.mjs +41 -41
  23. package/esm2020/lib/modules/media-query/media-query.module.mjs +4 -4
  24. package/esm2020/lib/modules/media-query/media-query.service.mjs +53 -50
  25. package/esm2020/lib/modules/mutation/mutation-observer-service.mjs +6 -4
  26. package/esm2020/lib/modules/numeric/numeric.module.mjs +5 -5
  27. package/esm2020/lib/modules/numeric/numeric.pipe.mjs +29 -22
  28. package/esm2020/lib/modules/numeric/numeric.service.mjs +87 -102
  29. package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +26 -20
  30. package/esm2020/lib/modules/overlay/overlay-instance.mjs +18 -9
  31. package/esm2020/lib/modules/overlay/overlay.component.mjs +82 -58
  32. package/esm2020/lib/modules/overlay/overlay.module.mjs +5 -5
  33. package/esm2020/lib/modules/overlay/overlay.service.mjs +58 -52
  34. package/esm2020/lib/modules/percent-pipe/percent-pipe.module.mjs +5 -5
  35. package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +35 -24
  36. package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +41 -49
  37. package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +3 -3
  38. package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +69 -70
  39. package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +4 -4
  40. package/esm2020/lib/modules/title/title.service.mjs +11 -7
  41. package/esm2020/lib/modules/trim/trim.directive.mjs +13 -14
  42. package/esm2020/lib/modules/trim/trim.module.mjs +4 -4
  43. package/esm2020/lib/modules/ui-config/ui-config.service.mjs +3 -3
  44. package/esm2020/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +1 -1
  45. package/esm2020/lib/modules/viewkeeper/viewkeeper-host-options.mjs +3 -3
  46. package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +78 -63
  47. package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +166 -156
  48. package/esm2020/lib/modules/viewkeeper/viewkeeper.module.mjs +4 -4
  49. package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +10 -6
  50. package/esm2020/lib/modules/window/window-ref.mjs +3 -3
  51. package/esm2020/testing/core-testing.module.mjs +8 -5
  52. package/esm2020/testing/mock-media-query.service.mjs +7 -4
  53. package/esm2020/testing/mock-ui-config.service.mjs +7 -4
  54. package/esm2020/testing/overlay/overlay-harness-filters.mjs +1 -1
  55. package/esm2020/testing/overlay/overlay-harness.mjs +2 -1
  56. package/esm2020/testing/shared/component-harness.mjs +4 -1
  57. package/esm2020/testing/shared/harness-filters.mjs +1 -1
  58. package/fesm2015/skyux-core-testing.mjs +23 -10
  59. package/fesm2015/skyux-core-testing.mjs.map +1 -1
  60. package/fesm2015/skyux-core.mjs +1416 -1291
  61. package/fesm2015/skyux-core.mjs.map +1 -1
  62. package/fesm2020/skyux-core-testing.mjs +23 -10
  63. package/fesm2020/skyux-core-testing.mjs.map +1 -1
  64. package/fesm2020/skyux-core.mjs +1418 -1290
  65. package/fesm2020/skyux-core.mjs.map +1 -1
  66. package/lib/modules/adapter-service/adapter.service.d.ts +3 -5
  67. package/lib/modules/affix/affix-offset.d.ts +1 -1
  68. package/lib/modules/affix/affix.directive.d.ts +13 -14
  69. package/lib/modules/affix/affixer.d.ts +2 -34
  70. package/lib/modules/affix/dom-utils.d.ts +3 -3
  71. package/lib/modules/dock/dock-dom-adapter.service.d.ts +2 -9
  72. package/lib/modules/dock/dock-item.d.ts +1 -1
  73. package/lib/modules/dock/dock.component.d.ts +3 -11
  74. package/lib/modules/dock/dock.service.d.ts +2 -5
  75. package/lib/modules/dynamic-component/dynamic-component.service.d.ts +2 -7
  76. package/lib/modules/id/id.directive.d.ts +1 -1
  77. package/lib/modules/log/log.service.d.ts +2 -6
  78. package/lib/modules/media-query/media-query.service.d.ts +1 -8
  79. package/lib/modules/numeric/numeric.pipe.d.ts +3 -9
  80. package/lib/modules/numeric/numeric.service.d.ts +3 -36
  81. package/lib/modules/overlay/overlay-adapter.service.d.ts +1 -3
  82. package/lib/modules/overlay/overlay-instance.d.ts +1 -2
  83. package/lib/modules/overlay/overlay.component.d.ts +2 -15
  84. package/lib/modules/overlay/overlay.service.d.ts +1 -7
  85. package/lib/modules/percent-pipe/percent.pipe.d.ts +3 -10
  86. package/lib/modules/resize-observer/resize-observer-media-query.service.d.ts +2 -7
  87. package/lib/modules/scrollable-host/scrollable-host.service.d.ts +2 -11
  88. package/lib/modules/title/title.service.d.ts +2 -2
  89. package/lib/modules/trim/trim.directive.d.ts +1 -3
  90. package/lib/modules/viewkeeper/viewkeeper-boundary-info.d.ts +1 -1
  91. package/lib/modules/viewkeeper/viewkeeper.d.ts +2 -24
  92. package/lib/modules/viewkeeper/viewkeeper.directive.d.ts +5 -17
  93. package/lib/modules/viewkeeper/viewkeeper.service.d.ts +1 -1
  94. package/package.json +10 -10
  95. package/testing/core-testing.module.d.ts +3 -0
  96. package/testing/{skyux-core-testing.d.ts → index.d.ts} +0 -0
  97. package/testing/mock-media-query.service.d.ts +3 -0
  98. package/testing/mock-ui-config.service.d.ts +3 -0
  99. package/testing/overlay/overlay-harness-filters.d.ts +1 -0
  100. package/testing/overlay/overlay-harness.d.ts +1 -0
  101. package/testing/shared/component-harness.d.ts +3 -0
  102. package/testing/shared/harness-filters.d.ts +1 -0
  103. package/skyux-core.d.ts +0 -5
  104. package/testing/package.json +0 -10
@@ -1,3 +1,5 @@
1
+ var _SkyDockService_instances, _SkyDockService_dynamicComponentSvc, _SkyDockService_options, _SkyDockService_createDock, _SkyDockService_destroyDock;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Injectable } from '@angular/core';
2
4
  import { SkyDynamicComponentLocation } from '../dynamic-component/dynamic-component-location';
3
5
  import { SkyDynamicComponentService } from '../dynamic-component/dynamic-component.service';
@@ -11,8 +13,11 @@ import * as i1 from "../dynamic-component/dynamic-component.service";
11
13
  * This service docks components to specific areas on the page.
12
14
  */
13
15
  export class SkyDockService {
14
- constructor(dynamicComponentService) {
15
- this.dynamicComponentService = dynamicComponentService;
16
+ constructor(dynamicComponentSvc) {
17
+ _SkyDockService_instances.add(this);
18
+ _SkyDockService_dynamicComponentSvc.set(this, void 0);
19
+ _SkyDockService_options.set(this, void 0);
20
+ __classPrivateFieldSet(this, _SkyDockService_dynamicComponentSvc, dynamicComponentSvc, "f");
16
21
  }
17
22
  /**
18
23
  * Returns all docked items.
@@ -26,16 +31,15 @@ export class SkyDockService {
26
31
  * @param config Options that affect the docking action.
27
32
  */
28
33
  insertComponent(component, config) {
29
- if (!SkyDockService.dockRef) {
30
- this.createDock();
31
- }
32
- const itemRef = SkyDockService.dockRef.instance.insertComponent(component, config);
34
+ const dockRef = (SkyDockService.dockRef =
35
+ SkyDockService.dockRef || __classPrivateFieldGet(this, _SkyDockService_instances, "m", _SkyDockService_createDock).call(this));
36
+ const itemRef = dockRef.instance.insertComponent(component, config);
33
37
  const item = new SkyDockItem(itemRef.componentRef.instance, itemRef.stackOrder);
34
38
  item.destroyed.subscribe(() => {
35
- SkyDockService.dockRef.instance.removeItem(itemRef);
39
+ dockRef.instance.removeItem(itemRef);
36
40
  SkyDockService._items.splice(SkyDockService._items.indexOf(item), 1);
37
41
  if (SkyDockService._items.length === 0) {
38
- this.destroyDock();
42
+ __classPrivateFieldGet(this, _SkyDockService_instances, "m", _SkyDockService_destroyDock).call(this);
39
43
  }
40
44
  });
41
45
  SkyDockService._items.push(item);
@@ -50,40 +54,40 @@ export class SkyDockService {
50
54
  * @param options The options for positioning and styling
51
55
  */
52
56
  setDockOptions(options) {
53
- this.options = options;
57
+ __classPrivateFieldSet(this, _SkyDockService_options, options, "f");
54
58
  }
55
- createDock() {
56
- let dockOptions;
57
- if (this.options) {
58
- let dynamicLocation;
59
- switch (this.options.location) {
60
- case SkyDockLocation.BeforeElement:
61
- dynamicLocation = SkyDynamicComponentLocation.BeforeElement;
62
- break;
63
- case SkyDockLocation.ElementBottom:
64
- dynamicLocation = SkyDynamicComponentLocation.ElementBottom;
65
- break;
66
- default:
67
- dynamicLocation = SkyDynamicComponentLocation.BodyTop;
68
- break;
69
- }
70
- dockOptions = {
71
- location: dynamicLocation,
72
- referenceEl: this.options.referenceEl,
73
- };
59
+ }
60
+ _SkyDockService_dynamicComponentSvc = new WeakMap(), _SkyDockService_options = new WeakMap(), _SkyDockService_instances = new WeakSet(), _SkyDockService_createDock = function _SkyDockService_createDock() {
61
+ let dockOptions;
62
+ if (__classPrivateFieldGet(this, _SkyDockService_options, "f")) {
63
+ let dynamicLocation;
64
+ switch (__classPrivateFieldGet(this, _SkyDockService_options, "f").location) {
65
+ case SkyDockLocation.BeforeElement:
66
+ dynamicLocation = SkyDynamicComponentLocation.BeforeElement;
67
+ break;
68
+ case SkyDockLocation.ElementBottom:
69
+ dynamicLocation = SkyDynamicComponentLocation.ElementBottom;
70
+ break;
71
+ default:
72
+ dynamicLocation = SkyDynamicComponentLocation.BodyTop;
73
+ break;
74
74
  }
75
- SkyDockService.dockRef = this.dynamicComponentService.createComponent(SkyDockComponent, dockOptions);
76
- SkyDockService.dockRef.instance.setOptions(this.options);
75
+ dockOptions = {
76
+ location: dynamicLocation,
77
+ referenceEl: __classPrivateFieldGet(this, _SkyDockService_options, "f").referenceEl,
78
+ };
77
79
  }
78
- destroyDock() {
79
- this.dynamicComponentService.removeComponent(SkyDockService.dockRef);
80
- SkyDockService.dockRef = undefined;
81
- }
82
- }
80
+ const dockRef = __classPrivateFieldGet(this, _SkyDockService_dynamicComponentSvc, "f").createComponent(SkyDockComponent, dockOptions);
81
+ dockRef.instance.setOptions(__classPrivateFieldGet(this, _SkyDockService_options, "f"));
82
+ return dockRef;
83
+ }, _SkyDockService_destroyDock = function _SkyDockService_destroyDock() {
84
+ __classPrivateFieldGet(this, _SkyDockService_dynamicComponentSvc, "f").removeComponent(SkyDockService.dockRef);
85
+ SkyDockService.dockRef = undefined;
86
+ };
83
87
  SkyDockService._items = [];
84
- SkyDockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDockService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable });
85
- SkyDockService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDockService, providedIn: 'any' });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDockService, decorators: [{
88
+ SkyDockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDockService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable });
89
+ SkyDockService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDockService, providedIn: 'any' });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDockService, decorators: [{
87
91
  type: Injectable,
88
92
  args: [{
89
93
  // Must be 'any' so that the dock component is created in the context of its module's injector.
@@ -92,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
92
96
  providedIn: 'any',
93
97
  }]
94
98
  }], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentService }]; } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2RvY2svZG9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTlGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRzVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFekQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8sY0FBYztJQWF6QixZQUFvQix1QkFBbUQ7UUFBbkQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUE0QjtJQUFHLENBQUM7SUFUM0U7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDZCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQU1EOzs7O09BSUc7SUFDSSxlQUFlLENBQ3BCLFNBQWtCLEVBQ2xCLE1BQXFDO1FBRXJDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO1lBQzNCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtRQUVELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDN0QsU0FBUyxFQUNULE1BQU0sQ0FDUCxDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQzFCLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUM3QixPQUFPLENBQUMsVUFBVSxDQUNuQixDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVCLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWMsQ0FBQyxPQUF1QjtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLFdBQXVDLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksZUFBNEMsQ0FBQztZQUNqRCxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM3QixLQUFLLGVBQWUsQ0FBQyxhQUFhO29CQUNoQyxlQUFlLEdBQUcsMkJBQTJCLENBQUMsYUFBYSxDQUFDO29CQUM1RCxNQUFNO2dCQUNSLEtBQUssZUFBZSxDQUFDLGFBQWE7b0JBQ2hDLGVBQWUsR0FBRywyQkFBMkIsQ0FBQyxhQUFhLENBQUM7b0JBQzVELE1BQU07Z0JBQ1I7b0JBQ0UsZUFBZSxHQUFHLDJCQUEyQixDQUFDLE9BQU8sQ0FBQztvQkFDdEQsTUFBTTthQUNUO1lBRUQsV0FBVyxHQUFHO2dCQUNaLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2FBQ3RDLENBQUM7U0FDSDtRQUVELGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FDbkUsZ0JBQWdCLEVBQ2hCLFdBQVcsQ0FDWixDQUFDO1FBQ0YsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxjQUFjLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUNyQyxDQUFDOztBQTdGYyxxQkFBTSxHQUF1QixFQUFHLENBQUE7MkdBRnBDLGNBQWM7K0dBQWQsY0FBYyxjQUZiLEtBQUs7MkZBRU4sY0FBYztrQkFOMUIsVUFBVTttQkFBQztvQkFDViwrRkFBK0Y7b0JBQy9GLDhGQUE4RjtvQkFDOUYsMEZBQTBGO29CQUMxRixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uIH0gZnJvbSAnLi4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtbG9jYXRpb24nO1xuaW1wb3J0IHsgU2t5RHluYW1pY0NvbXBvbmVudE9wdGlvbnMgfSBmcm9tICcuLi9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC1vcHRpb25zJztcbmltcG9ydCB7IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreURvY2tJbnNlcnRDb21wb25lbnRDb25maWcgfSBmcm9tICcuL2RvY2staW5zZXJ0LWNvbXBvbmVudC1jb25maWcnO1xuaW1wb3J0IHsgU2t5RG9ja0l0ZW0gfSBmcm9tICcuL2RvY2staXRlbSc7XG5pbXBvcnQgeyBTa3lEb2NrTG9jYXRpb24gfSBmcm9tICcuL2RvY2stbG9jYXRpb24nO1xuaW1wb3J0IHsgU2t5RG9ja09wdGlvbnMgfSBmcm9tICcuL2RvY2stb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9kb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBzb3J0QnlTdGFja09yZGVyIH0gZnJvbSAnLi9zb3J0LWJ5LXN0YWNrLW9yZGVyJztcblxuLyoqXG4gKiBUaGlzIHNlcnZpY2UgZG9ja3MgY29tcG9uZW50cyB0byBzcGVjaWZpYyBhcmVhcyBvbiB0aGUgcGFnZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICAvLyBNdXN0IGJlICdhbnknIHNvIHRoYXQgdGhlIGRvY2sgY29tcG9uZW50IGlzIGNyZWF0ZWQgaW4gdGhlIGNvbnRleHQgb2YgaXRzIG1vZHVsZSdzIGluamVjdG9yLlxuICAvLyBJZiBzZXQgdG8gJ3Jvb3QnLCB0aGUgY29tcG9uZW50J3MgZGVwZW5kZW5jeSBpbmplY3Rpb25zIHdvdWxkIG9ubHkgYmUgZGVyaXZlZCBmcm9tIHRoZSByb290XG4gIC8vIGluamVjdG9yIGFuZCBtYXkgbG9vc2UgY29udGV4dCBpZiB0aGUgZG9jayB3YXMgb3BlbmVkIGZyb20gd2l0aGluIGEgbGF6eS1sb2FkZWQgbW9kdWxlLlxuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9ja1NlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyBkb2NrUmVmOiBDb21wb25lbnRSZWY8U2t5RG9ja0NvbXBvbmVudD47XG4gIHByaXZhdGUgc3RhdGljIF9pdGVtczogU2t5RG9ja0l0ZW08YW55PltdID0gW107XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGRvY2tlZCBpdGVtcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXRlbXMoKTogU2t5RG9ja0l0ZW08YW55PltdIHtcbiAgICByZXR1cm4gU2t5RG9ja1NlcnZpY2UuX2l0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBvcHRpb25zOiBTa3lEb2NrT3B0aW9ucztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGR5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSkge31cblxuICAvKipcbiAgICogRG9ja3MgYSBjb21wb25lbnQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgY29tcG9uZW50IHRvIGRvY2suXG4gICAqIEBwYXJhbSBjb25maWcgT3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgZG9ja2luZyBhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgaW5zZXJ0Q29tcG9uZW50PFQ+KFxuICAgIGNvbXBvbmVudDogVHlwZTxUPixcbiAgICBjb25maWc/OiBTa3lEb2NrSW5zZXJ0Q29tcG9uZW50Q29uZmlnXG4gICk6IFNreURvY2tJdGVtPFQ+IHtcbiAgICBpZiAoIVNreURvY2tTZXJ2aWNlLmRvY2tSZWYpIHtcbiAgICAgIHRoaXMuY3JlYXRlRG9jaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1SZWYgPSBTa3lEb2NrU2VydmljZS5kb2NrUmVmLmluc3RhbmNlLmluc2VydENvbXBvbmVudChcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gICAgY29uc3QgaXRlbSA9IG5ldyBTa3lEb2NrSXRlbShcbiAgICAgIGl0ZW1SZWYuY29tcG9uZW50UmVmLmluc3RhbmNlLFxuICAgICAgaXRlbVJlZi5zdGFja09yZGVyXG4gICAgKTtcblxuICAgIGl0ZW0uZGVzdHJveWVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBTa3lEb2NrU2VydmljZS5kb2NrUmVmLmluc3RhbmNlLnJlbW92ZUl0ZW0oaXRlbVJlZik7XG4gICAgICBTa3lEb2NrU2VydmljZS5faXRlbXMuc3BsaWNlKFNreURvY2tTZXJ2aWNlLl9pdGVtcy5pbmRleE9mKGl0ZW0pLCAxKTtcbiAgICAgIGlmIChTa3lEb2NrU2VydmljZS5faXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveURvY2soKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIFNreURvY2tTZXJ2aWNlLl9pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIFNreURvY2tTZXJ2aWNlLl9pdGVtcy5zb3J0KHNvcnRCeVN0YWNrT3JkZXIpO1xuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBvcHRpb25zIGZvciB0aGUgcG9zaXRpb25pbmcgYW5kIHN0eWxpbmcgb2YgdGhlIGRvY2sgY29tcG9uZW50LiBTaW5jZSB0aGUgZG9jayBzZXJ2aWNlIGlzIGFcbiAgICogc2luZ2xldG9uIGluc3RhbmNlLCB0aGVzZSBvcHRpb25zIHdpbGwgYmUgYXBwbGllZCB0byBhbGwgY29tcG9uZW50cyBpbnNlcnRlZCBpbnRvIHRoZSBkb2NrLiBJblxuICAgKiBvcmRlciB0byBjcmVhdGUgYSBzZXBlcmF0ZSBkb2NrIHdpdGggZGlmZmVyZW50IG9wdGlvbnMsIGNvbnN1bWVycyBzaG91bGQgcHJvdmlkZSBhIGRpZmZlcmVudFxuICAgKiBpbnN0YW5jZSBvZiB0aGUgZG9jayBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgcG9zaXRpb25pbmcgYW5kIHN0eWxpbmdcbiAgICovXG4gIHB1YmxpYyBzZXREb2NrT3B0aW9ucyhvcHRpb25zOiBTa3lEb2NrT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURvY2soKTogdm9pZCB7XG4gICAgbGV0IGRvY2tPcHRpb25zOiBTa3lEeW5hbWljQ29tcG9uZW50T3B0aW9ucztcblxuICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcbiAgICAgIGxldCBkeW5hbWljTG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbjtcbiAgICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmxvY2F0aW9uKSB7XG4gICAgICAgIGNhc2UgU2t5RG9ja0xvY2F0aW9uLkJlZm9yZUVsZW1lbnQ6XG4gICAgICAgICAgZHluYW1pY0xvY2F0aW9uID0gU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkJlZm9yZUVsZW1lbnQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5RG9ja0xvY2F0aW9uLkVsZW1lbnRCb3R0b206XG4gICAgICAgICAgZHluYW1pY0xvY2F0aW9uID0gU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRCb3R0b207XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgZHluYW1pY0xvY2F0aW9uID0gU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkJvZHlUb3A7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRvY2tPcHRpb25zID0ge1xuICAgICAgICBsb2NhdGlvbjogZHluYW1pY0xvY2F0aW9uLFxuICAgICAgICByZWZlcmVuY2VFbDogdGhpcy5vcHRpb25zLnJlZmVyZW5jZUVsLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBTa3lEb2NrU2VydmljZS5kb2NrUmVmID0gdGhpcy5keW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoXG4gICAgICBTa3lEb2NrQ29tcG9uZW50LFxuICAgICAgZG9ja09wdGlvbnNcbiAgICApO1xuICAgIFNreURvY2tTZXJ2aWNlLmRvY2tSZWYuaW5zdGFuY2Uuc2V0T3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95RG9jaygpOiB2b2lkIHtcbiAgICB0aGlzLmR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudChTa3lEb2NrU2VydmljZS5kb2NrUmVmKTtcbiAgICBTa3lEb2NrU2VydmljZS5kb2NrUmVmID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2RvY2svZG9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFnQixVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFOUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFHNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUV6RDs7R0FFRztBQU9ILE1BQU0sT0FBTyxjQUFjO0lBZXpCLFlBQVksbUJBQStDOztRQUozRCxzREFBaUQ7UUFFakQsMENBQXFDO1FBR25DLHVCQUFBLElBQUksdUNBQXdCLG1CQUFtQixNQUFBLENBQUM7SUFDbEQsQ0FBQztJQWJEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ2QsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFVRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUNwQixTQUFrQixFQUNsQixNQUFxQztRQUVyQyxNQUFNLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPO1lBQ3JDLGNBQWMsQ0FBQyxPQUFPLElBQUksdUJBQUEsSUFBSSw2REFBWSxNQUFoQixJQUFJLENBQWMsQ0FBQyxDQUFDO1FBRWhELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRSxNQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FDMUIsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQzdCLE9BQU8sQ0FBQyxVQUFVLENBQ25CLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckUsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3RDLHVCQUFBLElBQUksOERBQWEsTUFBakIsSUFBSSxDQUFlLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksY0FBYyxDQUFDLE9BQXVCO1FBQzNDLHVCQUFBLElBQUksMkJBQVksT0FBTyxNQUFBLENBQUM7SUFDMUIsQ0FBQzs7O0lBR0MsSUFBSSxXQUFtRCxDQUFDO0lBRXhELElBQUksdUJBQUEsSUFBSSwrQkFBUyxFQUFFO1FBQ2pCLElBQUksZUFBNEMsQ0FBQztRQUNqRCxRQUFRLHVCQUFBLElBQUksK0JBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDOUIsS0FBSyxlQUFlLENBQUMsYUFBYTtnQkFDaEMsZUFBZSxHQUFHLDJCQUEyQixDQUFDLGFBQWEsQ0FBQztnQkFDNUQsTUFBTTtZQUNSLEtBQUssZUFBZSxDQUFDLGFBQWE7Z0JBQ2hDLGVBQWUsR0FBRywyQkFBMkIsQ0FBQyxhQUFhLENBQUM7Z0JBQzVELE1BQU07WUFDUjtnQkFDRSxlQUFlLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxDQUFDO2dCQUN0RCxNQUFNO1NBQ1Q7UUFFRCxXQUFXLEdBQUc7WUFDWixRQUFRLEVBQUUsZUFBZTtZQUN6QixXQUFXLEVBQUUsdUJBQUEsSUFBSSwrQkFBUyxDQUFDLFdBQVc7U0FDdkMsQ0FBQztLQUNIO0lBRUQsTUFBTSxPQUFPLEdBQUcsdUJBQUEsSUFBSSwyQ0FBcUIsQ0FBQyxlQUFlLENBQ3ZELGdCQUFnQixFQUNoQixXQUFXLENBQ1osQ0FBQztJQUVGLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLHVCQUFBLElBQUksK0JBQVMsQ0FBQyxDQUFDO0lBRTNDLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7SUFHQyx1QkFBQSxJQUFJLDJDQUFxQixDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEUsY0FBYyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFDckMsQ0FBQztBQWhHYyxxQkFBTSxHQUF1QixFQUFHLENBQUE7MkdBRnBDLGNBQWM7K0dBQWQsY0FBYyxjQUZiLEtBQUs7MkZBRU4sY0FBYztrQkFOMUIsVUFBVTttQkFBQztvQkFDViwrRkFBK0Y7b0JBQy9GLDhGQUE4RjtvQkFDOUYsMEZBQTBGO29CQUMxRixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uIH0gZnJvbSAnLi4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtbG9jYXRpb24nO1xuaW1wb3J0IHsgU2t5RHluYW1pY0NvbXBvbmVudE9wdGlvbnMgfSBmcm9tICcuLi9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC1vcHRpb25zJztcbmltcG9ydCB7IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreURvY2tJbnNlcnRDb21wb25lbnRDb25maWcgfSBmcm9tICcuL2RvY2staW5zZXJ0LWNvbXBvbmVudC1jb25maWcnO1xuaW1wb3J0IHsgU2t5RG9ja0l0ZW0gfSBmcm9tICcuL2RvY2staXRlbSc7XG5pbXBvcnQgeyBTa3lEb2NrTG9jYXRpb24gfSBmcm9tICcuL2RvY2stbG9jYXRpb24nO1xuaW1wb3J0IHsgU2t5RG9ja09wdGlvbnMgfSBmcm9tICcuL2RvY2stb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9kb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBzb3J0QnlTdGFja09yZGVyIH0gZnJvbSAnLi9zb3J0LWJ5LXN0YWNrLW9yZGVyJztcblxuLyoqXG4gKiBUaGlzIHNlcnZpY2UgZG9ja3MgY29tcG9uZW50cyB0byBzcGVjaWZpYyBhcmVhcyBvbiB0aGUgcGFnZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICAvLyBNdXN0IGJlICdhbnknIHNvIHRoYXQgdGhlIGRvY2sgY29tcG9uZW50IGlzIGNyZWF0ZWQgaW4gdGhlIGNvbnRleHQgb2YgaXRzIG1vZHVsZSdzIGluamVjdG9yLlxuICAvLyBJZiBzZXQgdG8gJ3Jvb3QnLCB0aGUgY29tcG9uZW50J3MgZGVwZW5kZW5jeSBpbmplY3Rpb25zIHdvdWxkIG9ubHkgYmUgZGVyaXZlZCBmcm9tIHRoZSByb290XG4gIC8vIGluamVjdG9yIGFuZCBtYXkgbG9vc2UgY29udGV4dCBpZiB0aGUgZG9jayB3YXMgb3BlbmVkIGZyb20gd2l0aGluIGEgbGF6eS1sb2FkZWQgbW9kdWxlLlxuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9ja1NlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyBkb2NrUmVmOiBDb21wb25lbnRSZWY8U2t5RG9ja0NvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgc3RhdGljIF9pdGVtczogU2t5RG9ja0l0ZW08YW55PltdID0gW107XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGRvY2tlZCBpdGVtcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXRlbXMoKTogU2t5RG9ja0l0ZW08YW55PltdIHtcbiAgICByZXR1cm4gU2t5RG9ja1NlcnZpY2UuX2l0ZW1zO1xuICB9XG5cbiAgI2R5bmFtaWNDb21wb25lbnRTdmM6IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlO1xuXG4gICNvcHRpb25zOiBTa3lEb2NrT3B0aW9ucyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihkeW5hbWljQ29tcG9uZW50U3ZjOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSkge1xuICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTdmMgPSBkeW5hbWljQ29tcG9uZW50U3ZjO1xuICB9XG5cbiAgLyoqXG4gICAqIERvY2tzIGEgY29tcG9uZW50IHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGNvbXBvbmVudCB0byBkb2NrLlxuICAgKiBAcGFyYW0gY29uZmlnIE9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGRvY2tpbmcgYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGluc2VydENvbXBvbmVudDxUPihcbiAgICBjb21wb25lbnQ6IFR5cGU8VD4sXG4gICAgY29uZmlnPzogU2t5RG9ja0luc2VydENvbXBvbmVudENvbmZpZ1xuICApOiBTa3lEb2NrSXRlbTxUPiB7XG4gICAgY29uc3QgZG9ja1JlZiA9IChTa3lEb2NrU2VydmljZS5kb2NrUmVmID1cbiAgICAgIFNreURvY2tTZXJ2aWNlLmRvY2tSZWYgfHwgdGhpcy4jY3JlYXRlRG9jaygpKTtcblxuICAgIGNvbnN0IGl0ZW1SZWYgPSBkb2NrUmVmLmluc3RhbmNlLmluc2VydENvbXBvbmVudChjb21wb25lbnQsIGNvbmZpZyk7XG4gICAgY29uc3QgaXRlbSA9IG5ldyBTa3lEb2NrSXRlbShcbiAgICAgIGl0ZW1SZWYuY29tcG9uZW50UmVmLmluc3RhbmNlLFxuICAgICAgaXRlbVJlZi5zdGFja09yZGVyXG4gICAgKTtcblxuICAgIGl0ZW0uZGVzdHJveWVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBkb2NrUmVmLmluc3RhbmNlLnJlbW92ZUl0ZW0oaXRlbVJlZik7XG4gICAgICBTa3lEb2NrU2VydmljZS5faXRlbXMuc3BsaWNlKFNreURvY2tTZXJ2aWNlLl9pdGVtcy5pbmRleE9mKGl0ZW0pLCAxKTtcbiAgICAgIGlmIChTa3lEb2NrU2VydmljZS5faXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuI2Rlc3Ryb3lEb2NrKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBTa3lEb2NrU2VydmljZS5faXRlbXMucHVzaChpdGVtKTtcbiAgICBTa3lEb2NrU2VydmljZS5faXRlbXMuc29ydChzb3J0QnlTdGFja09yZGVyKTtcblxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgb3B0aW9ucyBmb3IgdGhlIHBvc2l0aW9uaW5nIGFuZCBzdHlsaW5nIG9mIHRoZSBkb2NrIGNvbXBvbmVudC4gU2luY2UgdGhlIGRvY2sgc2VydmljZSBpcyBhXG4gICAqIHNpbmdsZXRvbiBpbnN0YW5jZSwgdGhlc2Ugb3B0aW9ucyB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGNvbXBvbmVudHMgaW5zZXJ0ZWQgaW50byB0aGUgZG9jay4gSW5cbiAgICogb3JkZXIgdG8gY3JlYXRlIGEgc2VwZXJhdGUgZG9jayB3aXRoIGRpZmZlcmVudCBvcHRpb25zLCBjb25zdW1lcnMgc2hvdWxkIHByb3ZpZGUgYSBkaWZmZXJlbnRcbiAgICogaW5zdGFuY2Ugb2YgdGhlIGRvY2sgc2VydmljZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHBvc2l0aW9uaW5nIGFuZCBzdHlsaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0RG9ja09wdGlvbnMob3B0aW9uczogU2t5RG9ja09wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLiNvcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gICNjcmVhdGVEb2NrKCk6IENvbXBvbmVudFJlZjxTa3lEb2NrQ29tcG9uZW50PiB7XG4gICAgbGV0IGRvY2tPcHRpb25zOiBTa3lEeW5hbWljQ29tcG9uZW50T3B0aW9ucyB8IHVuZGVmaW5lZDtcblxuICAgIGlmICh0aGlzLiNvcHRpb25zKSB7XG4gICAgICBsZXQgZHluYW1pY0xvY2F0aW9uOiBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb247XG4gICAgICBzd2l0Y2ggKHRoaXMuI29wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgICAgY2FzZSBTa3lEb2NrTG9jYXRpb24uQmVmb3JlRWxlbWVudDpcbiAgICAgICAgICBkeW5hbWljTG9jYXRpb24gPSBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uQmVmb3JlRWxlbWVudDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTa3lEb2NrTG9jYXRpb24uRWxlbWVudEJvdHRvbTpcbiAgICAgICAgICBkeW5hbWljTG9jYXRpb24gPSBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uRWxlbWVudEJvdHRvbTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBkeW5hbWljTG9jYXRpb24gPSBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uQm9keVRvcDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgZG9ja09wdGlvbnMgPSB7XG4gICAgICAgIGxvY2F0aW9uOiBkeW5hbWljTG9jYXRpb24sXG4gICAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLiNvcHRpb25zLnJlZmVyZW5jZUVsLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBkb2NrUmVmID0gdGhpcy4jZHluYW1pY0NvbXBvbmVudFN2Yy5jcmVhdGVDb21wb25lbnQoXG4gICAgICBTa3lEb2NrQ29tcG9uZW50LFxuICAgICAgZG9ja09wdGlvbnNcbiAgICApO1xuXG4gICAgZG9ja1JlZi5pbnN0YW5jZS5zZXRPcHRpb25zKHRoaXMuI29wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGRvY2tSZWY7XG4gIH1cblxuICAjZGVzdHJveURvY2soKTogdm9pZCB7XG4gICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFN2Yy5yZW1vdmVDb21wb25lbnQoU2t5RG9ja1NlcnZpY2UuZG9ja1JlZik7XG4gICAgU2t5RG9ja1NlcnZpY2UuZG9ja1JlZiA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -7,10 +7,10 @@ import * as i0 from "@angular/core";
7
7
  */
8
8
  export class SkyDynamicComponentModule {
9
9
  }
10
- SkyDynamicComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDynamicComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- SkyDynamicComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDynamicComponentModule });
12
- SkyDynamicComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDynamicComponentModule });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDynamicComponentModule, decorators: [{
10
+ SkyDynamicComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDynamicComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ SkyDynamicComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyDynamicComponentModule });
12
+ SkyDynamicComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDynamicComponentModule });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDynamicComponentModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{}]
16
16
  }] });
@@ -1,3 +1,5 @@
1
+ var _SkyDynamicComponentService_instances, _SkyDynamicComponentService_applicationRef, _SkyDynamicComponentService_componentFactoryResolver, _SkyDynamicComponentService_injector, _SkyDynamicComponentService_renderer, _SkyDynamicComponentService_windowRef, _SkyDynamicComponentService_getRootNode;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, RendererFactory2, } from '@angular/core';
2
4
  import { SkyAppWindowRef } from '../window/window-ref';
3
5
  import { SkyDynamicComponentLocation } from './dynamic-component-location';
@@ -7,16 +9,23 @@ import * as i1 from "../window/window-ref";
7
9
  * Angular service for creating and rendering a dynamic component.
8
10
  */
9
11
  export class SkyDynamicComponentService {
12
+ // TODO: Replace deprecated `ComponentFactoryResolver`.
10
13
  constructor(componentFactoryResolver, applicationRef, injector, windowRef, rendererFactory) {
11
- this.componentFactoryResolver = componentFactoryResolver;
12
- this.applicationRef = applicationRef;
13
- this.injector = injector;
14
- this.windowRef = windowRef;
14
+ _SkyDynamicComponentService_instances.add(this);
15
+ _SkyDynamicComponentService_applicationRef.set(this, void 0);
16
+ _SkyDynamicComponentService_componentFactoryResolver.set(this, void 0);
17
+ _SkyDynamicComponentService_injector.set(this, void 0);
18
+ _SkyDynamicComponentService_renderer.set(this, void 0);
19
+ _SkyDynamicComponentService_windowRef.set(this, void 0);
20
+ __classPrivateFieldSet(this, _SkyDynamicComponentService_componentFactoryResolver, componentFactoryResolver, "f");
21
+ __classPrivateFieldSet(this, _SkyDynamicComponentService_applicationRef, applicationRef, "f");
22
+ __classPrivateFieldSet(this, _SkyDynamicComponentService_injector, injector, "f");
23
+ __classPrivateFieldSet(this, _SkyDynamicComponentService_windowRef, windowRef, "f");
15
24
  // Based on suggestions from https://github.com/angular/angular/issues/17824
16
25
  // for accessing an instance of Renderer2 in a service since Renderer2 can't
17
26
  // be injected into a service. Passing undefined for both parameters results
18
27
  // in the default renderer which is what we want here.
19
- this.renderer = rendererFactory.createRenderer(undefined, undefined);
28
+ __classPrivateFieldSet(this, _SkyDynamicComponentService_renderer, rendererFactory.createRenderer(undefined, null), "f");
20
29
  }
21
30
  /**
22
31
  * Creates an instance of the specified component and adds it to the specified location
@@ -29,29 +38,35 @@ export class SkyDynamicComponentService {
29
38
  };
30
39
  const injector = Injector.create({
31
40
  providers: options.providers || [],
32
- parent: this.injector,
41
+ parent: __classPrivateFieldGet(this, _SkyDynamicComponentService_injector, "f"),
33
42
  });
34
- const componentRef = this.componentFactoryResolver
43
+ const componentRef = __classPrivateFieldGet(this, _SkyDynamicComponentService_componentFactoryResolver, "f")
35
44
  .resolveComponentFactory(componentType)
36
45
  .create(injector);
37
- this.applicationRef.attachView(componentRef.hostView);
38
- const el = this.getRootNode(componentRef);
39
- const bodyEl = this.windowRef.nativeWindow.document.body;
46
+ __classPrivateFieldGet(this, _SkyDynamicComponentService_applicationRef, "f").attachView(componentRef.hostView);
47
+ const el = __classPrivateFieldGet(this, _SkyDynamicComponentService_instances, "m", _SkyDynamicComponentService_getRootNode).call(this, componentRef);
48
+ const bodyEl = __classPrivateFieldGet(this, _SkyDynamicComponentService_windowRef, "f").nativeWindow.document.body;
40
49
  switch (options.location) {
41
50
  case SkyDynamicComponentLocation.BeforeElement:
42
- this.renderer.insertBefore(options.referenceEl.parentElement, el, options.referenceEl);
51
+ if (!options.referenceEl) {
52
+ throw new Error('[SkyDynamicComponentService] Could not create a component at location `SkyDynamicComponentLocation.BeforeElement` because a reference element was not provided.');
53
+ }
54
+ __classPrivateFieldGet(this, _SkyDynamicComponentService_renderer, "f").insertBefore(options.referenceEl.parentElement, el, options.referenceEl);
43
55
  break;
44
56
  case SkyDynamicComponentLocation.ElementTop:
45
- this.renderer.insertBefore(options.referenceEl, el, options.referenceEl.firstChild);
57
+ if (!options.referenceEl) {
58
+ throw new Error('[SkyDynamicComponentService] Could not create a component at location `SkyDynamicComponentLocation.ElementTop` because a reference element was not provided.');
59
+ }
60
+ __classPrivateFieldGet(this, _SkyDynamicComponentService_renderer, "f").insertBefore(options.referenceEl, el, options.referenceEl.firstChild);
46
61
  break;
47
62
  case SkyDynamicComponentLocation.ElementBottom:
48
- this.renderer.appendChild(options.referenceEl, el);
63
+ __classPrivateFieldGet(this, _SkyDynamicComponentService_renderer, "f").appendChild(options.referenceEl, el);
49
64
  break;
50
65
  case SkyDynamicComponentLocation.BodyTop:
51
- this.renderer.insertBefore(bodyEl, el, bodyEl.firstChild);
66
+ __classPrivateFieldGet(this, _SkyDynamicComponentService_renderer, "f").insertBefore(bodyEl, el, bodyEl.firstChild);
52
67
  break;
53
68
  default:
54
- this.renderer.appendChild(bodyEl, el);
69
+ __classPrivateFieldGet(this, _SkyDynamicComponentService_renderer, "f").appendChild(bodyEl, el);
55
70
  break;
56
71
  }
57
72
  return componentRef;
@@ -64,18 +79,18 @@ export class SkyDynamicComponentService {
64
79
  if (!componentRef) {
65
80
  return;
66
81
  }
67
- this.applicationRef.detachView(componentRef.hostView);
82
+ __classPrivateFieldGet(this, _SkyDynamicComponentService_applicationRef, "f").detachView(componentRef.hostView);
68
83
  componentRef.destroy();
69
84
  }
70
- getRootNode(componentRef) {
71
- // Technique for retrieving the component's root node taken from here:
72
- // https://malcoded.com/posts/angular-dynamic-components
73
- return componentRef.hostView.rootNodes[0];
74
- }
75
85
  }
76
- SkyDynamicComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i1.SkyAppWindowRef }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
77
- SkyDynamicComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDynamicComponentService, providedIn: 'any' });
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyDynamicComponentService, decorators: [{
86
+ _SkyDynamicComponentService_applicationRef = new WeakMap(), _SkyDynamicComponentService_componentFactoryResolver = new WeakMap(), _SkyDynamicComponentService_injector = new WeakMap(), _SkyDynamicComponentService_renderer = new WeakMap(), _SkyDynamicComponentService_windowRef = new WeakMap(), _SkyDynamicComponentService_instances = new WeakSet(), _SkyDynamicComponentService_getRootNode = function _SkyDynamicComponentService_getRootNode(componentRef) {
87
+ // Technique for retrieving the component's root node taken from here:
88
+ // https://malcoded.com/posts/angular-dynamic-components
89
+ return componentRef.hostView.rootNodes[0];
90
+ };
91
+ SkyDynamicComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i1.SkyAppWindowRef }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
92
+ SkyDynamicComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDynamicComponentService, providedIn: 'any' });
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDynamicComponentService, decorators: [{
79
94
  type: Injectable,
80
95
  args: [{
81
96
  // Must be 'any' so that the component is created in the context of its module's injector.
@@ -84,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
84
99
  providedIn: 'any',
85
100
  }]
86
101
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }, { type: i1.SkyAppWindowRef }, { type: i0.RendererFactory2 }]; } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsd0JBQXdCLEVBR3hCLFVBQVUsRUFDVixRQUFRLEVBRVIsZ0JBQWdCLEdBRWpCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRzNFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUNVLHdCQUFrRCxFQUNsRCxjQUE4QixFQUM5QixRQUFrQixFQUNsQixTQUEwQixFQUNsQyxlQUFpQztRQUp6Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBR2xDLDRFQUE0RTtRQUM1RSw0RUFBNEU7UUFDNUUsNkVBQTZFO1FBQzdFLHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUNwQixhQUFzQixFQUN0QixPQUFvQztRQUVwQyxPQUFPLEdBQUcsT0FBTyxJQUFJO1lBQ25CLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxVQUFVO1NBQ2pELENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUU7WUFDbEMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3RCLENBQUMsQ0FBQztRQUVILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0I7YUFDL0MsdUJBQXVCLENBQUksYUFBYSxDQUFDO2FBQ3pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBRXpELFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN4QixLQUFLLDJCQUEyQixDQUFDLGFBQWE7Z0JBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUN4QixPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDakMsRUFBRSxFQUNGLE9BQU8sQ0FBQyxXQUFXLENBQ3BCLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLEtBQUssMkJBQTJCLENBQUMsVUFBVTtnQkFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQ3hCLE9BQU8sQ0FBQyxXQUFXLEVBQ25CLEVBQUUsRUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FDL0IsQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSywyQkFBMkIsQ0FBQyxhQUFhO2dCQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxNQUFNO1lBQ1IsS0FBSywyQkFBMkIsQ0FBQyxPQUFPO2dCQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUQsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdEMsTUFBTTtTQUNUO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWUsQ0FBSSxZQUE2QjtRQUNyRCxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLFdBQVcsQ0FBSSxZQUE2QjtRQUNsRCxzRUFBc0U7UUFDdEUsd0RBQXdEO1FBQ3hELE9BQVEsWUFBWSxDQUFDLFFBQStCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7O3VIQTNGVSwwQkFBMEI7MkhBQTFCLDBCQUEwQixjQUZ6QixLQUFLOzJGQUVOLDBCQUEwQjtrQkFOdEMsVUFBVTttQkFBQztvQkFDViwwRkFBMEY7b0JBQzFGLDhGQUE4RjtvQkFDOUYsMEZBQTBGO29CQUMxRixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5MixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUFwcFdpbmRvd1JlZiB9IGZyb20gJy4uL3dpbmRvdy93aW5kb3ctcmVmJztcblxuaW1wb3J0IHsgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uIH0gZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC1sb2NhdGlvbic7XG5pbXBvcnQgeyBTa3lEeW5hbWljQ29tcG9uZW50T3B0aW9ucyB9IGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQtb3B0aW9ucyc7XG5cbi8qKlxuICogQW5ndWxhciBzZXJ2aWNlIGZvciBjcmVhdGluZyBhbmQgcmVuZGVyaW5nIGEgZHluYW1pYyBjb21wb25lbnQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgLy8gTXVzdCBiZSAnYW55JyBzbyB0aGF0IHRoZSBjb21wb25lbnQgaXMgY3JlYXRlZCBpbiB0aGUgY29udGV4dCBvZiBpdHMgbW9kdWxlJ3MgaW5qZWN0b3IuXG4gIC8vIElmIHNldCB0byAncm9vdCcsIHRoZSBjb21wb25lbnQncyBkZXBlbmRlbmN5IGluamVjdGlvbnMgd291bGQgb25seSBiZSBkZXJpdmVkIGZyb20gdGhlIHJvb3RcbiAgLy8gaW5qZWN0b3IgYW5kIG1heSBsb29zZSBjb250ZXh0IGlmIHRoZSBjb21wb25lbnQgaXMgY3JlYXRlZCB3aXRoaW4gYSBsYXp5LWxvYWRlZCBtb2R1bGUuXG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWYsXG4gICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyXG4gICkge1xuICAgIC8vIEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTc4MjRcbiAgICAvLyBmb3IgYWNjZXNzaW5nIGFuIGluc3RhbmNlIG9mIFJlbmRlcmVyMiBpbiBhIHNlcnZpY2Ugc2luY2UgUmVuZGVyZXIyIGNhbid0XG4gICAgLy8gYmUgaW5qZWN0ZWQgaW50byBhIHNlcnZpY2UuICBQYXNzaW5nIHVuZGVmaW5lZCBmb3IgYm90aCBwYXJhbWV0ZXJzIHJlc3VsdHNcbiAgICAvLyBpbiB0aGUgZGVmYXVsdCByZW5kZXJlciB3aGljaCBpcyB3aGF0IHdlIHdhbnQgaGVyZS5cbiAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50IGFuZCBhZGRzIGl0IHRvIHRoZSBzcGVjaWZpZWQgbG9jYXRpb25cbiAgICogb24gdGhlIHBhZ2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSBkeW5hbWljIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVDb21wb25lbnQ8VD4oXG4gICAgY29tcG9uZW50VHlwZTogVHlwZTxUPixcbiAgICBvcHRpb25zPzogU2t5RHluYW1pY0NvbXBvbmVudE9wdGlvbnNcbiAgKTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7XG4gICAgICBsb2NhdGlvbjogU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkJvZHlCb3R0b20sXG4gICAgfTtcblxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogb3B0aW9ucy5wcm92aWRlcnMgfHwgW10sXG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PFQ+KGNvbXBvbmVudFR5cGUpXG4gICAgICAuY3JlYXRlKGluamVjdG9yKTtcblxuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgY29uc3QgZWwgPSB0aGlzLmdldFJvb3ROb2RlKGNvbXBvbmVudFJlZik7XG5cbiAgICBjb25zdCBib2R5RWwgPSB0aGlzLndpbmRvd1JlZi5uYXRpdmVXaW5kb3cuZG9jdW1lbnQuYm9keTtcblxuICAgIHN3aXRjaCAob3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgY2FzZSBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uQmVmb3JlRWxlbWVudDpcbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgb3B0aW9ucy5yZWZlcmVuY2VFbC5wYXJlbnRFbGVtZW50LFxuICAgICAgICAgIGVsLFxuICAgICAgICAgIG9wdGlvbnMucmVmZXJlbmNlRWxcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5FbGVtZW50VG9wOlxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgICAgICBvcHRpb25zLnJlZmVyZW5jZUVsLFxuICAgICAgICAgIGVsLFxuICAgICAgICAgIG9wdGlvbnMucmVmZXJlbmNlRWwuZmlyc3RDaGlsZFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRCb3R0b206XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQob3B0aW9ucy5yZWZlcmVuY2VFbCwgZWwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkJvZHlUb3A6XG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGJvZHlFbCwgZWwsIGJvZHlFbC5maXJzdENoaWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGJvZHlFbCwgZWwpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBjb21wb25lbnQgcmVmIGZyb20gdGhlIHBhZ2VcbiAgICogQHBhcmFtIGNvbXBvbmVudFJlZiBDb21wb25lbnQgcmVmIGZvciB0aGUgY29tcG9uZW50IGJlaW5nIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnQ8VD4oY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4pOiB2b2lkIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIGdldFJvb3ROb2RlPFQ+KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+KTogYW55IHtcbiAgICAvLyBUZWNobmlxdWUgZm9yIHJldHJpZXZpbmcgdGhlIGNvbXBvbmVudCdzIHJvb3Qgbm9kZSB0YWtlbiBmcm9tIGhlcmU6XG4gICAgLy8gaHR0cHM6Ly9tYWxjb2RlZC5jb20vcG9zdHMvYW5ndWxhci1keW5hbWljLWNvbXBvbmVudHNcbiAgICByZXR1cm4gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8VD4pLnJvb3ROb2Rlc1swXTtcbiAgfVxufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx3QkFBd0IsRUFHeEIsVUFBVSxFQUNWLFFBQVEsRUFFUixnQkFBZ0IsR0FFakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFHM0U7O0dBRUc7QUFPSCxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLHVEQUF1RDtJQUN2RCxZQUNFLHdCQUFrRCxFQUNsRCxjQUE4QixFQUM5QixRQUFrQixFQUNsQixTQUEwQixFQUMxQixlQUFpQzs7UUFoQm5DLDZEQUFnQztRQUVoQyx1RUFBb0Q7UUFFcEQsdURBQW9CO1FBRXBCLHVEQUFxQjtRQUVyQix3REFBNEI7UUFVMUIsdUJBQUEsSUFBSSx3REFBNkIsd0JBQXdCLE1BQUEsQ0FBQztRQUMxRCx1QkFBQSxJQUFJLDhDQUFtQixjQUFjLE1BQUEsQ0FBQztRQUN0Qyx1QkFBQSxJQUFJLHdDQUFhLFFBQVEsTUFBQSxDQUFDO1FBQzFCLHVCQUFBLElBQUkseUNBQWMsU0FBUyxNQUFBLENBQUM7UUFFNUIsNEVBQTRFO1FBQzVFLDRFQUE0RTtRQUM1RSw2RUFBNkU7UUFDN0Usc0RBQXNEO1FBQ3RELHVCQUFBLElBQUksd0NBQWEsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQUEsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWUsQ0FDcEIsYUFBc0IsRUFD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ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3RhYmxlLFxuICBJbmplY3RvcixcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXBwV2luZG93UmVmIH0gZnJvbSAnLi4vd2luZG93L3dpbmRvdy1yZWYnO1xuXG5pbXBvcnQgeyBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24gfSBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50LWxvY2F0aW9uJztcbmltcG9ydCB7IFNreUR5bmFtaWNDb21wb25lbnRPcHRpb25zIH0gZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC1vcHRpb25zJztcblxuLyoqXG4gKiBBbmd1bGFyIHNlcnZpY2UgZm9yIGNyZWF0aW5nIGFuZCByZW5kZXJpbmcgYSBkeW5hbWljIGNvbXBvbmVudC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAvLyBNdXN0IGJlICdhbnknIHNvIHRoYXQgdGhlIGNvbXBvbmVudCBpcyBjcmVhdGVkIGluIHRoZSBjb250ZXh0IG9mIGl0cyBtb2R1bGUncyBpbmplY3Rvci5cbiAgLy8gSWYgc2V0IHRvICdyb290JywgdGhlIGNvbXBvbmVudCdzIGRlcGVuZGVuY3kgaW5qZWN0aW9ucyB3b3VsZCBvbmx5IGJlIGRlcml2ZWQgZnJvbSB0aGUgcm9vdFxuICAvLyBpbmplY3RvciBhbmQgbWF5IGxvb3NlIGNvbnRleHQgaWYgdGhlIGNvbXBvbmVudCBpcyBjcmVhdGVkIHdpdGhpbiBhIGxhenktbG9hZGVkIG1vZHVsZS5cbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlIHtcbiAgI2FwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZjtcblxuICAjY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI7XG5cbiAgI2luamVjdG9yOiBJbmplY3RvcjtcblxuICAjcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICAjd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWY7XG5cbiAgLy8gVE9ETzogUmVwbGFjZSBkZXByZWNhdGVkIGBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJgLlxuICBjb25zdHJ1Y3RvcihcbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmLFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLiNjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgPSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI7XG4gICAgdGhpcy4jYXBwbGljYXRpb25SZWYgPSBhcHBsaWNhdGlvblJlZjtcbiAgICB0aGlzLiNpbmplY3RvciA9IGluamVjdG9yO1xuICAgIHRoaXMuI3dpbmRvd1JlZiA9IHdpbmRvd1JlZjtcblxuICAgIC8vIEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTc4MjRcbiAgICAvLyBmb3IgYWNjZXNzaW5nIGFuIGluc3RhbmNlIG9mIFJlbmRlcmVyMiBpbiBhIHNlcnZpY2Ugc2luY2UgUmVuZGVyZXIyIGNhbid0XG4gICAgLy8gYmUgaW5qZWN0ZWQgaW50byBhIHNlcnZpY2UuICBQYXNzaW5nIHVuZGVmaW5lZCBmb3IgYm90aCBwYXJhbWV0ZXJzIHJlc3VsdHNcbiAgICAvLyBpbiB0aGUgZGVmYXVsdCByZW5kZXJlciB3aGljaCBpcyB3aGF0IHdlIHdhbnQgaGVyZS5cbiAgICB0aGlzLiNyZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgdGhlIHNwZWNpZmllZCBjb21wb25lbnQgYW5kIGFkZHMgaXQgdG8gdGhlIHNwZWNpZmllZCBsb2NhdGlvblxuICAgKiBvbiB0aGUgcGFnZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhlIGR5bmFtaWMgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUNvbXBvbmVudDxUPihcbiAgICBjb21wb25lbnRUeXBlOiBUeXBlPFQ+LFxuICAgIG9wdGlvbnM/OiBTa3lEeW5hbWljQ29tcG9uZW50T3B0aW9uc1xuICApOiBDb21wb25lbnRSZWY8VD4ge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHtcbiAgICAgIGxvY2F0aW9uOiBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uQm9keUJvdHRvbSxcbiAgICB9O1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBvcHRpb25zLnByb3ZpZGVycyB8fCBbXSxcbiAgICAgIHBhcmVudDogdGhpcy4jaW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLiNjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxUPihjb21wb25lbnRUeXBlKVxuICAgICAgLmNyZWF0ZShpbmplY3Rvcik7XG5cbiAgICB0aGlzLiNhcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICBjb25zdCBlbCA9IHRoaXMuI2dldFJvb3ROb2RlKGNvbXBvbmVudFJlZik7XG5cbiAgICBjb25zdCBib2R5RWwgPSB0aGlzLiN3aW5kb3dSZWYubmF0aXZlV2luZG93LmRvY3VtZW50LmJvZHk7XG5cbiAgICBzd2l0Y2ggKG9wdGlvbnMubG9jYXRpb24pIHtcbiAgICAgIGNhc2UgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkJlZm9yZUVsZW1lbnQ6XG4gICAgICAgIGlmICghb3B0aW9ucy5yZWZlcmVuY2VFbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdbU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2VdIENvdWxkIG5vdCBjcmVhdGUgYSBjb21wb25lbnQgYXQgbG9jYXRpb24gYFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5CZWZvcmVFbGVtZW50YCBiZWNhdXNlIGEgcmVmZXJlbmNlIGVsZW1lbnQgd2FzIG5vdCBwcm92aWRlZC4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgICAgICBvcHRpb25zLnJlZmVyZW5jZUVsLnBhcmVudEVsZW1lbnQsXG4gICAgICAgICAgZWwsXG4gICAgICAgICAgb3B0aW9ucy5yZWZlcmVuY2VFbFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRUb3A6XG4gICAgICAgIGlmICghb3B0aW9ucy5yZWZlcmVuY2VFbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdbU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2VdIENvdWxkIG5vdCBjcmVhdGUgYSBjb21wb25lbnQgYXQgbG9jYXRpb24gYFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5FbGVtZW50VG9wYCBiZWNhdXNlIGEgcmVmZXJlbmNlIGVsZW1lbnQgd2FzIG5vdCBwcm92aWRlZC4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgICAgICBvcHRpb25zLnJlZmVyZW5jZUVsLFxuICAgICAgICAgIGVsLFxuICAgICAgICAgIG9wdGlvbnMucmVmZXJlbmNlRWwuZmlyc3RDaGlsZFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRCb3R0b206XG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLmFwcGVuZENoaWxkKG9wdGlvbnMucmVmZXJlbmNlRWwsIGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5Cb2R5VG9wOlxuICAgICAgICB0aGlzLiNyZW5kZXJlci5pbnNlcnRCZWZvcmUoYm9keUVsLCBlbCwgYm9keUVsLmZpcnN0Q2hpbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLmFwcGVuZENoaWxkKGJvZHlFbCwgZWwpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBjb21wb25lbnQgcmVmIGZyb20gdGhlIHBhZ2VcbiAgICogQHBhcmFtIGNvbXBvbmVudFJlZiBDb21wb25lbnQgcmVmIGZvciB0aGUgY29tcG9uZW50IGJlaW5nIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnQ8VD4oY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuI2FwcGxpY2F0aW9uUmVmLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICB9XG5cbiAgI2dldFJvb3ROb2RlPFQ+KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+KTogYW55IHtcbiAgICAvLyBUZWNobmlxdWUgZm9yIHJldHJpZXZpbmcgdGhlIGNvbXBvbmVudCdzIHJvb3Qgbm9kZSB0YWtlbiBmcm9tIGhlcmU6XG4gICAgLy8gaHR0cHM6Ly9tYWxjb2RlZC5jb20vcG9zdHMvYW5ndWxhci1keW5hbWljLWNvbXBvbmVudHNcbiAgICByZXR1cm4gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8VD4pLnJvb3ROb2Rlc1swXTtcbiAgfVxufVxuIl19
@@ -7,9 +7,9 @@ export class SkyAppFormat {
7
7
  });
8
8
  }
9
9
  }
10
- SkyAppFormat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAppFormat, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
- SkyAppFormat.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAppFormat, providedIn: 'root' });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAppFormat, decorators: [{
10
+ SkyAppFormat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAppFormat, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
+ SkyAppFormat.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAppFormat, providedIn: 'root' });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyAppFormat, decorators: [{
13
13
  type: Injectable,
14
14
  args: [{
15
15
  providedIn: 'root',
@@ -23,9 +23,9 @@ export class SkyIdDirective {
23
23
  }
24
24
  }
25
25
  _SkyIdDirective__id = new WeakMap();
26
- SkyIdDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SkyIdService }], target: i0.ɵɵFactoryTarget.Directive });
27
- SkyIdDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyIdDirective, selector: "[skyId]", exportAs: ["skyId"], ngImport: i0 });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdDirective, decorators: [{
26
+ SkyIdDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyIdDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SkyIdService }], target: i0.ɵɵFactoryTarget.Directive });
27
+ SkyIdDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: SkyIdDirective, selector: "[skyId]", exportAs: ["skyId"], ngImport: i0 });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyIdDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{
31
31
  selector: '[skyId]',
@@ -3,10 +3,10 @@ import { SkyIdDirective } from './id.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  export class SkyIdModule {
5
5
  }
6
- SkyIdModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- SkyIdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdModule, declarations: [SkyIdDirective], exports: [SkyIdDirective] });
8
- SkyIdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdModule });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdModule, decorators: [{
6
+ SkyIdModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyIdModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ SkyIdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyIdModule, declarations: [SkyIdDirective], exports: [SkyIdDirective] });
8
+ SkyIdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyIdModule });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyIdModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  declarations: [SkyIdDirective],
@@ -13,9 +13,9 @@ export class SkyIdService {
13
13
  return `sky-id-gen__${new Date().getTime()}__${idIndex}`;
14
14
  }
15
15
  }
16
- SkyIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- SkyIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyIdService, decorators: [{
16
+ SkyIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ SkyIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyIdService, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyIdService, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{
21
21
  providedIn: 'root',
@@ -6,10 +6,10 @@ import * as i0 from "@angular/core";
6
6
  */
7
7
  export class SkyLogModule {
8
8
  }
9
- SkyLogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- SkyLogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogModule });
11
- SkyLogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogModule });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogModule, decorators: [{
9
+ SkyLogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyLogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ SkyLogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SkyLogModule });
11
+ SkyLogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyLogModule });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyLogModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{}]
15
15
  }] });
@@ -1,3 +1,5 @@
1
+ var _SkyLogService_instances, _SkyLogService_applicationLogLevel, _SkyLogService_formatter, _SkyLogService_convertStringToCode, _SkyLogService_canLog, _SkyLogService_logBasedOnLevel;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Inject, Injectable, Optional } from '@angular/core';
2
4
  import { SkyAppFormat } from '../format/app-format';
3
5
  import { SKY_LOG_LEVEL } from './types/log-level-token';
@@ -9,11 +11,11 @@ import * as i1 from "../format/app-format";
9
11
  */
10
12
  export class SkyLogService {
11
13
  constructor(formatter, applicationLogLevel) {
12
- this.formatter = formatter;
13
- this.applicationLogLevel = applicationLogLevel;
14
- if (!this.applicationLogLevel) {
15
- this.applicationLogLevel = 3 /* Error */;
16
- }
14
+ _SkyLogService_instances.add(this);
15
+ _SkyLogService_applicationLogLevel.set(this, void 0);
16
+ _SkyLogService_formatter.set(this, void 0);
17
+ __classPrivateFieldSet(this, _SkyLogService_formatter, formatter, "f");
18
+ __classPrivateFieldSet(this, _SkyLogService_applicationLogLevel, applicationLogLevel ?? 3 /* SkyLogLevel.Error */, "f");
17
19
  }
18
20
  /**
19
21
  * Logs a deprecation warning for a class, property, function, etc. This will be logged as a console warning unless a different log level is given in the the `args` parameter.
@@ -22,18 +24,18 @@ export class SkyLogService {
22
24
  * @returns
23
25
  */
24
26
  async deprecated(name, args) {
25
- const logLevel = args?.logLevel ?? 2 /* Warn */;
26
- name = this.convertStringToCode(name);
27
- if (this.canLog(logLevel)) {
27
+ const logLevel = args?.logLevel ?? 2 /* SkyLogLevel.Warn */;
28
+ name = __classPrivateFieldGet(this, _SkyLogService_instances, "m", _SkyLogService_convertStringToCode).call(this, name);
29
+ if (__classPrivateFieldGet(this, _SkyLogService_instances, "m", _SkyLogService_canLog).call(this, logLevel)) {
28
30
  const localizedStrings = [];
29
31
  if (args?.deprecationMajorVersion) {
30
- localizedStrings.push(this.formatter.formatText('{0} is deprecated starting in SKY UX {1}.', name, args.deprecationMajorVersion.toLocaleString()));
32
+ localizedStrings.push(__classPrivateFieldGet(this, _SkyLogService_formatter, "f").formatText('{0} is deprecated starting in SKY UX {1}.', name, args.deprecationMajorVersion.toLocaleString()));
31
33
  }
32
34
  else {
33
- localizedStrings.push(this.formatter.formatText('{0} is deprecated.', name));
35
+ localizedStrings.push(__classPrivateFieldGet(this, _SkyLogService_formatter, "f").formatText('{0} is deprecated.', name));
34
36
  }
35
37
  if (args?.removalMajorVersion) {
36
- localizedStrings.push(this.formatter.formatText('We will remove it in version {0}.', args.removalMajorVersion.toLocaleString()));
38
+ localizedStrings.push(__classPrivateFieldGet(this, _SkyLogService_formatter, "f").formatText('We will remove it in version {0}.', args.removalMajorVersion.toLocaleString()));
37
39
  }
38
40
  else {
39
41
  localizedStrings.push('We will remove it in a future major version.');
@@ -42,9 +44,9 @@ export class SkyLogService {
42
44
  localizedStrings.push(args.replacementRecommendation);
43
45
  }
44
46
  if (args?.moreInfoUrl) {
45
- localizedStrings.push(this.formatter.formatText('For more information, see {0}.', args.moreInfoUrl));
47
+ localizedStrings.push(__classPrivateFieldGet(this, _SkyLogService_formatter, "f").formatText('For more information, see {0}.', args.moreInfoUrl));
46
48
  }
47
- this.logBasedOnLevel(logLevel, localizedStrings.join(' '));
49
+ __classPrivateFieldGet(this, _SkyLogService_instances, "m", _SkyLogService_logBasedOnLevel).call(this, logLevel, localizedStrings.join(' '));
48
50
  }
49
51
  return Promise.resolve();
50
52
  }
@@ -54,7 +56,7 @@ export class SkyLogService {
54
56
  * @param params Optional parameters for the error message.
55
57
  */
56
58
  error(message, params) {
57
- if (this.canLog(3 /* Error */)) {
59
+ if (__classPrivateFieldGet(this, _SkyLogService_instances, "m", _SkyLogService_canLog).call(this, 3 /* SkyLogLevel.Error */)) {
58
60
  if (params) {
59
61
  console.error(message, ...params);
60
62
  }
@@ -69,7 +71,7 @@ export class SkyLogService {
69
71
  * @param params Optional parameters for the informational message.
70
72
  */
71
73
  info(message, params) {
72
- if (this.canLog(1 /* Info */)) {
74
+ if (__classPrivateFieldGet(this, _SkyLogService_instances, "m", _SkyLogService_canLog).call(this, 1 /* SkyLogLevel.Info */)) {
73
75
  if (params) {
74
76
  console.log(message, ...params);
75
77
  }
@@ -84,7 +86,7 @@ export class SkyLogService {
84
86
  * @param params Optional parameters for the warning message.
85
87
  */
86
88
  warn(message, params) {
87
- if (this.canLog(2 /* Warn */)) {
89
+ if (__classPrivateFieldGet(this, _SkyLogService_instances, "m", _SkyLogService_canLog).call(this, 2 /* SkyLogLevel.Warn */)) {
88
90
  if (params) {
89
91
  console.warn(message, ...params);
90
92
  }
@@ -93,32 +95,30 @@ export class SkyLogService {
93
95
  }
94
96
  }
95
97
  }
96
- convertStringToCode(typeString) {
97
- if (typeString.charAt(0) !== '`' && typeString.charAt(-1) !== '`') {
98
- typeString = '`' + typeString + '`';
99
- }
100
- return typeString;
101
- }
102
- canLog(intendedLogLevel) {
103
- return intendedLogLevel >= this.applicationLogLevel;
98
+ }
99
+ _SkyLogService_applicationLogLevel = new WeakMap(), _SkyLogService_formatter = new WeakMap(), _SkyLogService_instances = new WeakSet(), _SkyLogService_convertStringToCode = function _SkyLogService_convertStringToCode(typeString) {
100
+ if (typeString.charAt(0) !== '`' && typeString.charAt(-1) !== '`') {
101
+ typeString = '`' + typeString + '`';
104
102
  }
105
- logBasedOnLevel(logLevel, message, params) {
106
- switch (logLevel) {
107
- case 1 /* Info */:
108
- this.info(message, params);
109
- break;
110
- case 2 /* Warn */:
111
- this.warn(message, params);
112
- break;
113
- case 3 /* Error */:
114
- this.error(message, params);
115
- break;
116
- }
103
+ return typeString;
104
+ }, _SkyLogService_canLog = function _SkyLogService_canLog(intendedLogLevel) {
105
+ return intendedLogLevel >= __classPrivateFieldGet(this, _SkyLogService_applicationLogLevel, "f");
106
+ }, _SkyLogService_logBasedOnLevel = function _SkyLogService_logBasedOnLevel(logLevel, message, params) {
107
+ switch (logLevel) {
108
+ case 1 /* SkyLogLevel.Info */:
109
+ this.info(message, params);
110
+ break;
111
+ case 2 /* SkyLogLevel.Warn */:
112
+ this.warn(message, params);
113
+ break;
114
+ case 3 /* SkyLogLevel.Error */:
115
+ this.error(message, params);
116
+ break;
117
117
  }
118
- }
119
- SkyLogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogService, deps: [{ token: i1.SkyAppFormat }, { token: SKY_LOG_LEVEL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
120
- SkyLogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogService, providedIn: 'root' });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogService, decorators: [{
118
+ };
119
+ SkyLogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyLogService, deps: [{ token: i1.SkyAppFormat }, { token: SKY_LOG_LEVEL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
120
+ SkyLogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyLogService, providedIn: 'root' });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyLogService, decorators: [{
122
122
  type: Injectable,
123
123
  args: [{
124
124
  providedIn: 'root',
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
129
129
  type: Inject,
130
130
  args: [SKY_LOG_LEVEL]
131
131
  }] }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbG9nL2xvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFFeEQ7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFDVSxTQUF1QixFQUd2QixtQkFBZ0M7UUFIaEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUd2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQWE7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM3QixJQUFJLENBQUMsbUJBQW1CLGdCQUFvQixDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FDckIsSUFBWSxFQUNaLElBQTJCO1FBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRLGdCQUFvQixDQUFDO1FBQ3BELElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1lBRTVCLElBQUksSUFBSSxFQUFFLHVCQUF1QixFQUFFO2dCQUNqQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUN2QiwyQ0FBMkMsRUFDM0MsSUFBSSxFQUNKLElBQUksQ0FBQyx1QkFBdUIsQ0FB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QU8sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDM0IsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMzQixNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzVCLE1BQU07U0FDVDtJQUNILENBQUM7OzBHQS9JVSxhQUFhLDhDQUlkLGFBQWE7OEdBSlosYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUlJLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXBwRm9ybWF0IH0gZnJvbSAnLi4vZm9ybWF0L2FwcC1mb3JtYXQnO1xuXG5pbXBvcnQgeyBTa3lMb2dEZXByZWNhdGVkQXJncyB9IGZyb20gJy4vdHlwZXMvbG9nLWRlcHJlY2F0aW9uLWFyZ3MnO1xuaW1wb3J0IHsgU2t5TG9nTGV2ZWwgfSBmcm9tICcuL3R5cGVzL2xvZy1sZXZlbCc7XG5pbXBvcnQgeyBTS1lfTE9HX0xFVkVMIH0gZnJvbSAnLi90eXBlcy9sb2ctbGV2ZWwtdG9rZW4nO1xuXG4vKipcbiAqIExvZ3MgaW5mb3JtYXRpb24gdG8gdGhlIGNvbnNvbGUgYmFzZWQgb24gdGhlIGFwcGxpY2F0aW9uJ3MgbG9nIGxldmVsIGFzIHByb3ZpZGVkIGJ5IHRoZSBgU0tZX0xPR19MRVZFTGAgaW5qZWN0aW9uIHRva2VuLiBJZiBubyB0b2tlbiBpcyBwcm92aWRlZCwgb25seSBgZXJyb3JgIGxvZ3Mgd2lsbCBiZSBzaG93bi5cbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TG9nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybWF0dGVyOiBTa3lBcHBGb3JtYXQsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFNLWV9MT0dfTEVWRUwpXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvbkxvZ0xldmVsOiBTa3lMb2dMZXZlbFxuICApIHtcbiAgICBpZiAoIXRoaXMuYXBwbGljYXRpb25Mb2dMZXZlbCkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbkxvZ0xldmVsID0gU2t5TG9nTGV2ZWwuRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBkZXByZWNhdGlvbiB3YXJuaW5nIGZvciBhIGNsYXNzLCBwcm9wZXJ0eSwgZnVuY3Rpb24sIGV0Yy4gVGhpcyB3aWxsIGJlIGxvZ2dlZCBhcyBhIGNvbnNvbGUgd2FybmluZyB1bmxlc3MgYSBkaWZmZXJlbnQgbG9nIGxldmVsIGlzIGdpdmVuIGluIHRoZSB0aGUgYGFyZ3NgIHBhcmFtZXRlci5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGRlcHJlY2F0ZWQgY2xhc3MsIHByb3BlcnR5LCBmdW5jdGlvbiwgZXRjLlxuICAgKiBAcGFyYW0gYXJncyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgZGVwcmVjYXRpb24gYW5kIHJlcGxhY2VtZW50IHJlY29tbWVuZGF0aW9ucy5cbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXByZWNhdGVkKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBhcmdzPzogU2t5TG9nRGVwcmVjYXRlZEFyZ3NcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbG9nTGV2ZWwgPSBhcmdzPy5sb2dMZXZlbCA/PyBTa3lMb2dMZXZlbC5XYXJuO1xuICAgIG5hbWUgPSB0aGlzLmNvbnZlcnRTdHJpbmdUb0NvZGUobmFtZSk7XG5cbiAgICBpZiAodGhpcy5jYW5Mb2cobG9nTGV2ZWwpKSB7XG4gICAgICBjb25zdCBsb2NhbGl6ZWRTdHJpbmdzID0gW107XG5cbiAgICAgIGlmIChhcmdzPy5kZXByZWNhdGlvbk1ham9yVmVyc2lvbikge1xuICAgICAgICBsb2NhbGl6ZWRTdHJpbmdzLnB1c2goXG4gICAgICAgICAgdGhpcy5mb3JtYXR0ZXIuZm9ybWF0VGV4dChcbiAgICAgICAgICAgICd7MH0gaXMgZGVwcmVjYXRlZCBzdGFydGluZyBpbiBTS1kgVVggezF9LicsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgYXJncy5kZXByZWNhdGlvbk1ham9yVmVyc2lvbi50b0xvY2FsZVN0cmluZygpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9jYWxpemVkU3RyaW5ncy5wdXNoKFxuICAgICAgICAgIHRoaXMuZm9ybWF0dGVyLmZvcm1hdFRleHQoJ3swfSBpcyBkZXByZWNhdGVkLicsIG5hbWUpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhcmdzPy5yZW1vdmFsTWFqb3JWZXJzaW9uKSB7XG4gICAgICAgIGxvY2FsaXplZFN0cmluZ3MucHVzaChcbiAgICAgICAgICB0aGlzLmZvcm1hdHRlci5mb3JtYXRUZXh0KFxuICAgICAgICAgICAgJ1dlIHdpbGwgcmVtb3ZlIGl0IGluIHZlcnNpb24gezB9LicsXG4gICAgICAgICAgICBhcmdzLnJlbW92YWxNYWpvclZlcnNpb24udG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvY2FsaXplZFN0cmluZ3MucHVzaCgnV2Ugd2lsbCByZW1vdmUgaXQgaW4gYSBmdXR1cmUgbWFqb3IgdmVyc2lvbi4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFyZ3M/LnJlcGxhY2VtZW50UmVjb21tZW5kYXRpb24pIHtcbiAgICAgICAgbG9jYWxpemVkU3RyaW5ncy5wdXNoKGFyZ3MucmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChhcmdzPy5tb3JlSW5mb1VybCkge1xuICAgICAgICBsb2NhbGl6ZWRTdHJpbmdzLnB1c2goXG4gICAgICAgICAgdGhpcy5mb3JtYXR0ZXIuZm9ybWF0VGV4dChcbiAgICAgICAgICAgICdGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHswfS4nLFxuICAgICAgICAgICAgYXJncy5tb3JlSW5mb1VybFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2dCYXNlZE9uTGV2ZWwobG9nTGV2ZWwsIGxvY2FsaXplZFN0cmluZ3Muam9pbignICcpKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBjb25zb2xlIGVycm9yIGlmIHRoZSBhcHBsaWNhdGlvbidzIGxvZyBsZXZlbCBpcyBgU2t5TG9nTGV2ZWwuRXJyb3JgLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZVxuICAgKiBAcGFyYW0gcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuTG9nKFNreUxvZ0xldmVsLkVycm9yKSkge1xuICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UsIC4uLnBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGNvbnNvbGUgaW5mb3JtYXRpb24gaWYgdGhlIGFwcGxpY2F0aW9uJ3MgbG9nIGxldmVsIGlzIGBTa3lMb2dMZXZlbC5JbmZvYCBvciBhYm92ZS5cbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGluZm9tYXRpb25hbCBtZXNzYWdlXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIGluZm9ybWF0aW9uYWwgbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyBpbmZvKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuTG9nKFNreUxvZ0xldmVsLkluZm8pKSB7XG4gICAgICBpZiAocGFyYW1zKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UsIC4uLnBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9ncyBhIGNvbnNvbGUgd2FybmluZyBpZiB0aGUgYXBwbGljYXRpb24ncyBsb2cgbGV2ZWwgaXMgYFNreUxvZ0xldmVsLldhcm5gIG9yIGFib3ZlLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgd2FybmluZyBtZXNzYWdlXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHdhcm5pbmcgbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyB3YXJuKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuTG9nKFNreUxvZ0xldmVsLldhcm4pKSB7XG4gICAgICBpZiAocGFyYW1zKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihtZXNzYWdlLCAuLi5wYXJhbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFN0cmluZ1RvQ29kZSh0eXBlU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlU3RyaW5nLmNoYXJBdCgwKSAhPT0gJ2AnICYmIHR5cGVTdHJpbmcuY2hhckF0KC0xKSAhPT0gJ2AnKSB7XG4gICAgICB0eXBlU3RyaW5nID0gJ2AnICsgdHlwZVN0cmluZyArICdgJztcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVTdHJpbmc7XG4gIH1cblxuICBwcml2YXRlIGNhbkxvZyhpbnRlbmRlZExvZ0xldmVsOiBTa3lMb2dMZXZlbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpbnRlbmRlZExvZ0xldmVsID49IHRoaXMuYXBwbGljYXRpb25Mb2dMZXZlbDtcbiAgfVxuXG4gIHByaXZhdGUgbG9nQmFzZWRPbkxldmVsKFxuICAgIGxvZ0xldmVsOiBTa3lMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcGFyYW1zPzogdW5rbm93bltdXG4gICk6IHZvaWQge1xuICAgIHN3aXRjaCAobG9nTGV2ZWwpIHtcbiAgICAgIGNhc2UgU2t5TG9nTGV2ZWwuSW5mbzpcbiAgICAgICAgdGhpcy5pbmZvKG1lc3NhZ2UsIHBhcmFtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTa3lMb2dMZXZlbC5XYXJuOlxuICAgICAgICB0aGlzLndhcm4obWVzc2FnZSwgcGFyYW1zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNreUxvZ0xldmVsLkVycm9yOlxuICAgICAgICB0aGlzLmVycm9yKG1lc3NhZ2UsIHBhcmFtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbG9nL2xvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUlwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUV4RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sYUFBYTtJQUt4QixZQUNFLFNBQXVCLEVBR3ZCLG1CQUFpQzs7UUFSbkMscURBQWtDO1FBRWxDLDJDQUF5QjtRQVF2Qix1QkFBQSxJQUFJLDRCQUFjLFNBQVMsTUFBQSxDQUFDO1FBQzVCLHVCQUFBLElBQUksc0NBQXdCLG1CQUFtQiw2QkFBcUIsTUFBQSxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQ3JCLElBQVksRUFDWixJQUEyQjtRQUUzQixNQUFNLFFBQVEsR0FBRyxJQUFJLEVBQUUsUUFBUSw0QkFBb0IsQ0FBQztRQUNwRCxJQUFJLEdBQUcsdUJBQUEsSUFBSSxvRUFBcUIsTUFBekIsSUFBSSxFQUFzQixJQUFJLENBQUMsQ0FBQztRQUV2QyxJQUFJLHVCQUFBLElBQUksdURBQVEsTUFBWixJQUFJLEVBQVMsUUFBUSxDQUFDLEVBQUU7WUFDMUIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7WUFFNUIsSUFBSSxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7Z0JBQ2pDLGdCQUFnQixDQUFDLElBQUksQ0FDbkIsdUJBQUEsSUFBSSxnQ0FBVyxDQUFDLFVBQVUsQ0FDeEIsMkNBQTJDLEVBQzNDLElBQUksRUFDSixJQUFJLENBQUMsdUJB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LEVBQUU7UUFDaEI7WUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMzQixNQUFNO1FBQ1I7WUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMzQixNQUFNO1FBQ1I7WUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM1QixNQUFNO0tBQ1Q7QUFDSCxDQUFDOzBHQWxKVSxhQUFhLDhDQVFkLGFBQWE7OEdBUlosYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFJLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXBwRm9ybWF0IH0gZnJvbSAnLi4vZm9ybWF0L2FwcC1mb3JtYXQnO1xuXG5pbXBvcnQgeyBTa3lMb2dEZXByZWNhdGVkQXJncyB9IGZyb20gJy4vdHlwZXMvbG9nLWRlcHJlY2F0aW9uLWFyZ3MnO1xuaW1wb3J0IHsgU2t5TG9nTGV2ZWwgfSBmcm9tICcuL3R5cGVzL2xvZy1sZXZlbCc7XG5pbXBvcnQgeyBTS1lfTE9HX0xFVkVMIH0gZnJvbSAnLi90eXBlcy9sb2ctbGV2ZWwtdG9rZW4nO1xuXG4vKipcbiAqIExvZ3MgaW5mb3JtYXRpb24gdG8gdGhlIGNvbnNvbGUgYmFzZWQgb24gdGhlIGFwcGxpY2F0aW9uJ3MgbG9nIGxldmVsIGFzIHByb3ZpZGVkIGJ5IHRoZSBgU0tZX0xPR19MRVZFTGAgaW5qZWN0aW9uIHRva2VuLiBJZiBubyB0b2tlbiBpcyBwcm92aWRlZCwgb25seSBgZXJyb3JgIGxvZ3Mgd2lsbCBiZSBzaG93bi5cbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TG9nU2VydmljZSB7XG4gICNhcHBsaWNhdGlvbkxvZ0xldmVsOiBTa3lMb2dMZXZlbDtcblxuICAjZm9ybWF0dGVyOiBTa3lBcHBGb3JtYXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybWF0dGVyOiBTa3lBcHBGb3JtYXQsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFNLWV9MT0dfTEVWRUwpXG4gICAgYXBwbGljYXRpb25Mb2dMZXZlbD86IFNreUxvZ0xldmVsXG4gICkge1xuICAgIHRoaXMuI2Zvcm1hdHRlciA9IGZvcm1hdHRlcjtcbiAgICB0aGlzLiNhcHBsaWNhdGlvbkxvZ0xldmVsID0gYXBwbGljYXRpb25Mb2dMZXZlbCA/PyBTa3lMb2dMZXZlbC5FcnJvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGEgZGVwcmVjYXRpb24gd2FybmluZyBmb3IgYSBjbGFzcywgcHJvcGVydHksIGZ1bmN0aW9uLCBldGMuIFRoaXMgd2lsbCBiZSBsb2dnZWQgYXMgYSBjb25zb2xlIHdhcm5pbmcgdW5sZXNzIGEgZGlmZmVyZW50IGxvZyBsZXZlbCBpcyBnaXZlbiBpbiB0aGUgdGhlIGBhcmdzYCBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkZXByZWNhdGVkIGNsYXNzLCBwcm9wZXJ0eSwgZnVuY3Rpb24sIGV0Yy5cbiAgICogQHBhcmFtIGFyZ3MgSW5mb3JtYXRpb24gYWJvdXQgdGhlIGRlcHJlY2F0aW9uIGFuZCByZXBsYWNlbWVudCByZWNvbW1lbmRhdGlvbnMuXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVwcmVjYXRlZChcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgYXJncz86IFNreUxvZ0RlcHJlY2F0ZWRBcmdzXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxvZ0xldmVsID0gYXJncz8ubG9nTGV2ZWwgPz8gU2t5TG9nTGV2ZWwuV2FybjtcbiAgICBuYW1lID0gdGhpcy4jY29udmVydFN0cmluZ1RvQ29kZShuYW1lKTtcblxuICAgIGlmICh0aGlzLiNjYW5Mb2cobG9nTGV2ZWwpKSB7XG4gICAgICBjb25zdCBsb2NhbGl6ZWRTdHJpbmdzID0gW107XG5cbiAgICAgIGlmIChhcmdzPy5kZXByZWNhdGlvbk1ham9yVmVyc2lvbikge1xuICAgICAgICBsb2NhbGl6ZWRTdHJpbmdzLnB1c2goXG4gICAgICAgICAgdGhpcy4jZm9ybWF0dGVyLmZvcm1hdFRleHQoXG4gICAgICAgICAgICAnezB9IGlzIGRlcHJlY2F0ZWQgc3RhcnRpbmcgaW4gU0tZIFVYIHsxfS4nLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGFyZ3MuZGVwcmVjYXRpb25NYWpvclZlcnNpb24udG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvY2FsaXplZFN0cmluZ3MucHVzaChcbiAgICAgICAgICB0aGlzLiNmb3JtYXR0ZXIuZm9ybWF0VGV4dCgnezB9IGlzIGRlcHJlY2F0ZWQuJywgbmFtZSlcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFyZ3M/LnJlbW92YWxNYWpvclZlcnNpb24pIHtcbiAgICAgICAgbG9jYWxpemVkU3RyaW5ncy5wdXNoKFxuICAgICAgICAgIHRoaXMuI2Zvcm1hdHRlci5mb3JtYXRUZXh0KFxuICAgICAgICAgICAgJ1dlIHdpbGwgcmVtb3ZlIGl0IGluIHZlcnNpb24gezB9LicsXG4gICAgICAgICAgICBhcmdzLnJlbW92YWxNYWpvclZlcnNpb24udG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvY2FsaXplZFN0cmluZ3MucHVzaCgnV2Ugd2lsbCByZW1vdmUgaXQgaW4gYSBmdXR1cmUgbWFqb3IgdmVyc2lvbi4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFyZ3M/LnJlcGxhY2VtZW50UmVjb21tZW5kYXRpb24pIHtcbiAgICAgICAgbG9jYWxpemVkU3RyaW5ncy5wdXNoKGFyZ3MucmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChhcmdzPy5tb3JlSW5mb1VybCkge1xuICAgICAgICBsb2NhbGl6ZWRTdHJpbmdzLnB1c2goXG4gICAgICAgICAgdGhpcy4jZm9ybWF0dGVyLmZvcm1hdFRleHQoXG4gICAgICAgICAgICAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB7MH0uJyxcbiAgICAgICAgICAgIGFyZ3MubW9yZUluZm9VcmxcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2xvZ0Jhc2VkT25MZXZlbChsb2dMZXZlbCwgbG9jYWxpemVkU3RyaW5ncy5qb2luKCcgJykpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9ncyBhIGNvbnNvbGUgZXJyb3IgaWYgdGhlIGFwcGxpY2F0aW9uJ3MgbG9nIGxldmVsIGlzIGBTa3lMb2dMZXZlbC5FcnJvcmAuXG4gICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBwdWJsaWMgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jY2FuTG9nKFNreUxvZ0xldmVsLkVycm9yKSkge1xuICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UsIC4uLnBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGNvbnNvbGUgaW5mb3JtYXRpb24gaWYgdGhlIGFwcGxpY2F0aW9uJ3MgbG9nIGxldmVsIGlzIGBTa3lMb2dMZXZlbC5JbmZvYCBvciBhYm92ZS5cbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGluZm9tYXRpb25hbCBtZXNzYWdlXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIGluZm9ybWF0aW9uYWwgbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyBpbmZvKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2NhbkxvZyhTa3lMb2dMZXZlbC5JbmZvKSkge1xuICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlLCAuLi5wYXJhbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2cobWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBjb25zb2xlIHdhcm5pbmcgaWYgdGhlIGFwcGxpY2F0aW9uJ3MgbG9nIGxldmVsIGlzIGBTa3lMb2dMZXZlbC5XYXJuYCBvciBhYm92ZS5cbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIHdhcm5pbmcgbWVzc2FnZVxuICAgKiBAcGFyYW0gcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSB3YXJuaW5nIG1lc3NhZ2UuXG4gICAqL1xuICBwdWJsaWMgd2FybihtZXNzYWdlOiBzdHJpbmcsIHBhcmFtcz86IHVua25vd25bXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNjYW5Mb2coU2t5TG9nTGV2ZWwuV2FybikpIHtcbiAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UsIC4uLnBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2NvbnZlcnRTdHJpbmdUb0NvZGUodHlwZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZVN0cmluZy5jaGFyQXQoMCkgIT09ICdgJyAmJiB0eXBlU3RyaW5nLmNoYXJBdCgtMSkgIT09ICdgJykge1xuICAgICAgdHlwZVN0cmluZyA9ICdgJyArIHR5cGVTdHJpbmcgKyAnYCc7XG4gICAgfVxuICAgIHJldHVybiB0eXBlU3RyaW5nO1xuICB9XG5cbiAgI2NhbkxvZyhpbnRlbmRlZExvZ0xldmVsOiBTa3lMb2dMZXZlbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpbnRlbmRlZExvZ0xldmVsID49IHRoaXMuI2FwcGxpY2F0aW9uTG9nTGV2ZWw7XG4gIH1cblxuICAjbG9nQmFzZWRPbkxldmVsKFxuICAgIGxvZ0xldmVsOiBTa3lMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcGFyYW1zPzogdW5rbm93bltdXG4gICk6IHZvaWQge1xuICAgIHN3aXRjaCAobG9nTGV2ZWwpIHtcbiAgICAgIGNhc2UgU2t5TG9nTGV2ZWwuSW5mbzpcbiAgICAgICAgdGhpcy5pbmZvKG1lc3NhZ2UsIHBhcmFtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTa3lMb2dMZXZlbC5XYXJuOlxuICAgICAgICB0aGlzLndhcm4obWVzc2FnZSwgcGFyYW1zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNreUxvZ0xldmVsLkVycm9yOlxuICAgICAgICB0aGlzLmVycm9yKG1lc3NhZ2UsIHBhcmFtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIl19