@energycap/components 0.32.19 → 0.32.20

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.
@@ -5,13 +5,15 @@ import { of, Subject } from 'rxjs';
5
5
  import { delay, switchMap, takeUntil } from 'rxjs/operators';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/cdk/overlay";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "../../display/tags/tags.component";
8
+ import * as i2 from "../../display/tooltip/tooltip.service";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "../../display/tags/tags.component";
10
11
  export class PopoverComponent {
11
- constructor(overlay, viewContainerRef, elementRef) {
12
+ constructor(overlay, viewContainerRef, elementRef, tooltipService) {
12
13
  this.overlay = overlay;
13
14
  this.viewContainerRef = viewContainerRef;
14
15
  this.elementRef = elementRef;
16
+ this.tooltipService = tooltipService;
15
17
  /** An optional icon that, if provided, enables the popover to use it as the anchor element */
16
18
  this.icon = '';
17
19
  this.contentPosition = 'top-left';
@@ -41,6 +43,9 @@ export class PopoverComponent {
41
43
  const contentPortal = new TemplatePortal(this.content, this.viewContainerRef);
42
44
  this.contentViewRef = this.overlayRef.attach(contentPortal);
43
45
  this.isVisible = true;
46
+ //contentRect will be assing only after showing a tooltip/popover and it will be
47
+ //reset after hide the same tooltip/popover
48
+ this.contentRect = this.contentViewRef?.rootNodes[0].getBoundingClientRect();
44
49
  }
45
50
  }
46
51
  onMouseOver() {
@@ -53,23 +58,19 @@ export class PopoverComponent {
53
58
  * Hides the popover if the mouse moves outside of the popover content
54
59
  */
55
60
  onMouseMove(event) {
56
- if (!this.contentRect) {
57
- this.contentRect = this.contentViewRef?.rootNodes[0].getBoundingClientRect();
58
- }
61
+ let callCallback = false;
59
62
  if (this.contentRect) {
60
- if (event.clientX > this.contentRect.right
61
- || event.clientX < this.contentRect.left
62
- || event.clientY > this.contentRect.bottom
63
- || event.clientY < this.contentRect.top) {
63
+ callCallback = this.tooltipService.onMove(event, this.contentRect);
64
+ if (callCallback) {
64
65
  this.hide();
65
66
  }
66
67
  }
67
68
  }
68
69
  hide() {
69
- this.contentRect = undefined;
70
+ this.interrupt.next();
70
71
  this.overlayRef?.dispose();
71
72
  this.isVisible = false;
72
- this.interrupt.next();
73
+ this.contentRect = undefined;
73
74
  }
74
75
  getOverlayConfig() {
75
76
  const position = this.getPosition();
@@ -88,12 +89,12 @@ export class PopoverComponent {
88
89
  return { originX: overlayX, originY: overlayY, overlayX: overlayX, overlayY: overlayY };
89
90
  }
90
91
  }
91
- PopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: PopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
92
- PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: PopoverComponent, selector: "ec-popover", inputs: { icon: "icon", tag: "tag", tagHoverType: "tagHoverType", contentPosition: "contentPosition", iconHoverClass: "iconHoverClass" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onLeave()" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<!-- Before hover state -->\r\n<div class=\"p-2\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed] = \"true\"\r\n [tags]=\"tag\">\r\n </ec-tags>\r\n</div>\r\n<!-- ./Before hover state -->\r\n\r\n<!-- Hover state -->\r\n<ng-template #content>\r\n <article class=\"popover-content\"\r\n (document:mousemove)=\"onMouseMove($event)\">\r\n <ng-content></ng-content>\r\n </article>\r\n <div class=\"p-2 {{contentPosition}}\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm {{iconHoverClass}}\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed]=\"true\"\r\n [tags]=\"hoverTag\">\r\n </ec-tags>\r\n </div>\r\n</ng-template>\r\n<!-- ./Hover state -->\r\n", styles: [":host{line-height:.75rem;display:inline-block}.popover-content{border-radius:var(--ec-border-radius);box-shadow:0 3px 6px #1a1a231f;overflow:hidden;position:relative}.popover-content+div{position:absolute;line-height:.75rem}.popover-content+div.top-left{top:0;left:0}.popover-content+div.top-right{top:0;right:0}.popover-content+div.bottom-right{bottom:0;right:0}.popover-content+div.bottom-left{bottom:0;left:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TagsComponent, selector: "ec-tags", inputs: ["id", "tags", "wrap", "isCondensed"], outputs: ["tagClosed"] }] });
92
+ PopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: PopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i2.TooltipService }], target: i0.ɵɵFactoryTarget.Component });
93
+ PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: PopoverComponent, selector: "ec-popover", inputs: { icon: "icon", tag: "tag", tagHoverType: "tagHoverType", contentPosition: "contentPosition", iconHoverClass: "iconHoverClass" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onLeave()" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<!-- Before hover state -->\r\n<div class=\"p-2\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed] = \"true\"\r\n [tags]=\"tag\">\r\n </ec-tags>\r\n</div>\r\n<!-- ./Before hover state -->\r\n\r\n<!-- Hover state -->\r\n<ng-template #content>\r\n <article class=\"popover-content\"\r\n (document:mousemove)=\"onMouseMove($event)\">\r\n <ng-content></ng-content>\r\n </article>\r\n <div class=\"p-2 {{contentPosition}}\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm {{iconHoverClass}}\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed]=\"true\"\r\n [tags]=\"hoverTag\">\r\n </ec-tags>\r\n </div>\r\n</ng-template>\r\n<!-- ./Hover state -->\r\n", styles: [":host{line-height:.75rem;display:inline-block}.popover-content{border-radius:var(--ec-border-radius);box-shadow:0 3px 6px #1a1a231f;overflow:hidden;position:relative}.popover-content+div{position:absolute;line-height:.75rem}.popover-content+div.top-left{top:0;left:0}.popover-content+div.top-right{top:0;right:0}.popover-content+div.bottom-right{bottom:0;right:0}.popover-content+div.bottom-left{bottom:0;left:0}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TagsComponent, selector: "ec-tags", inputs: ["id", "tags", "wrap", "isCondensed"], outputs: ["tagClosed"] }] });
93
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: PopoverComponent, decorators: [{
94
95
  type: Component,
95
96
  args: [{ selector: 'ec-popover', template: "<!-- Before hover state -->\r\n<div class=\"p-2\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed] = \"true\"\r\n [tags]=\"tag\">\r\n </ec-tags>\r\n</div>\r\n<!-- ./Before hover state -->\r\n\r\n<!-- Hover state -->\r\n<ng-template #content>\r\n <article class=\"popover-content\"\r\n (document:mousemove)=\"onMouseMove($event)\">\r\n <ng-content></ng-content>\r\n </article>\r\n <div class=\"p-2 {{contentPosition}}\">\r\n <i *ngIf=\"!tag\" class=\"ec-icon {{icon}} ec-icon-sm {{iconHoverClass}}\"></i>\r\n <ec-tags *ngIf=\"tag\"\r\n [isCondensed]=\"true\"\r\n [tags]=\"hoverTag\">\r\n </ec-tags>\r\n </div>\r\n</ng-template>\r\n<!-- ./Hover state -->\r\n", styles: [":host{line-height:.75rem;display:inline-block}.popover-content{border-radius:var(--ec-border-radius);box-shadow:0 3px 6px #1a1a231f;overflow:hidden;position:relative}.popover-content+div{position:absolute;line-height:.75rem}.popover-content+div.top-left{top:0;left:0}.popover-content+div.top-right{top:0;right:0}.popover-content+div.bottom-right{bottom:0;right:0}.popover-content+div.bottom-left{bottom:0;left:0}\n"] }]
96
- }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }]; }, propDecorators: { icon: [{
97
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i2.TooltipService }]; }, propDecorators: { icon: [{
97
98
  type: Input
98
99
  }], tag: [{
99
100
  type: Input
@@ -113,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
113
114
  type: HostListener,
114
115
  args: ['mouseleave']
115
116
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBK0IsWUFBWSxFQUFFLEtBQUssRUFBMEIsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVqSixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFTN0QsTUFBTSxPQUFPLGdCQUFnQjtJQWtDM0IsWUFDVSxPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsVUFBc0I7UUFGdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFuQ2hDLDhGQUE4RjtRQUNyRixTQUFJLEdBQVksRUFBRSxDQUFDO1FBUW5CLG9CQUFlLEdBQTJCLFVBQVUsQ0FBQztRQUVyRCxtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQWdCN0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNsQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQU05QixDQUFD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SUFBSSxhQUFhLENBQUM7WUFDL0IsZ0JBQWdCLEVBQUUsZ0JBQWdCO1NBQ25DLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUUsTUFBTSxRQUFRLEdBQXFCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzFGLENBQUM7OzZHQXBJVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixrWENkN0IsMnhCQXlCQTsyRkRYYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTtzSkFPYixJQUFJO3NCQUFaLEtBQUs7Z0JBR0csR0FBRztzQkFBWCxLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUV1QixPQUFPO3NCQUFuQyxTQUFTO3VCQUFDLFNBQVM7Z0JBOERiLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVztnQkFNbEIsT0FBTztzQkFEYixZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWcsIFRhZ1R5cGUgfSBmcm9tICcuLi8uLi9kaXNwbGF5L3RhZ3MvdGFnJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IHR5cGUgUG9wb3ZlckNvbnRlbnRQb3NpdGlvbiA9ICd0b3AtbGVmdCcgfCAndG9wLXJpZ2h0JyB8ICdib3R0b20tcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtcG9wb3ZlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BvcG92ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIC8qKiBBbiBvcHRpb25hbCBpY29uIHRoYXQsIGlmIHByb3ZpZGVkLCBlbmFibGVzIHRoZSBwb3BvdmVyIHRvIHVzZSBpdCBhcyB0aGUgYW5jaG9yIGVsZW1lbnQgKi9cclxuICBASW5wdXQoKSBpY29uPzogc3RyaW5nID0gJyc7XHJcbiAgXHJcbiAgLyoqIEFuIG9wdGlvbmFsIHRhZyB0aGF0LCBpZiBwcm92aWRlZCwgZW5hYmxlcyB0aGUgcG9wb3ZlciB0byB1c2UgaXQgYXMgdGhlIGFuY2hvciBlbGVtZW50ICovXHJcbiAgQElucHV0KCkgdGFnPzogVGFnO1xyXG5cclxuICAvKiogVXNlZCB0byBkZW5vdGUgdGhlIGhvdmVyIHRhZydzIHR5cGUgKGFuZCB0aHVzIGJhY2tncm91bmQtY29sb3IpICovXHJcbiAgQElucHV0KCkgdGFnSG92ZXJUeXBlPzogVGFnVHlwZTtcclxuXHJcbiAgQElucHV0KCkgY29udGVudFBvc2l0aW9uOiBQb3BvdmVyQ29udGVudFBvc2l0aW9uID0gJ3RvcC1sZWZ0JztcclxuXHJcbiAgQElucHV0KCkgaWNvbkhvdmVyQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250ZW50JykgcHVibGljIGNvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBcclxuXHJcbiAgLyoqIEluIHRoZSB0ZW1wbGF0ZSwgd2UgdXNlIGFuIGVjLXRhZ3MgZWxlbWVudCBmb3IgdGhlIHByZS1ob3ZlciBzdGF0ZSBhbmQgYW4gZW50aXJlbHlcclxuICAgKiAgc2VwYXJhdGUgZWMtdGFncyBlbGVtZW50IGZvciBvdXIgaG92ZXIgc3RhdGUsIHJlc3VsdGluZyBpbiB0d28gY29tcG9uZW50cy4gVG8gYWNoaWV2ZSBhIGNoYW5nZSBcclxuICAgKiBpbiB0aGUgYmFja2dyb3VuZC1jb2xvciBmb3Igb3VyIGFuY2hvciB0YWcsIG9uIGhvdmVyLCBhIGRpZmZlcmVudCB0YWcudGFnVHlwZSBtdXN0IGJlIHByb3ZpZGVkIG9uIHRoZVxyXG4gICAqIHNlY29uZCBlYy10YWcgZWxlbWVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBob3ZlclRhZz86IFRhZztcclxuXHJcbiAgcHJpdmF0ZSBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcclxuICBwcml2YXRlIGNvbnRlbnRWaWV3UmVmPzogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcbiAgcHJpdmF0ZSBjb250ZW50UmVjdD86IERPTVJlY3Q7XHJcbiAgcHJpdmF0ZSBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBtb3VzZU92ZXIgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgcHJpdmF0ZSBpbnRlcnJ1cHQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkgeyB9XHJcblxyXG4gIC8qKiBXaGVuIHRoZSBwb3BvdmVyIGluaXRpYWxpemVzLCBpZiBhIG5ldyB0YWdUeXBlIGlzIHByb3ZpZGVkIGZvciB0aGUgaG92ZXIgc3RhdGUgb2YgdGhlIHBvcG92ZXIsIFxyXG4gICAqICB3ZSB1c2UgaXQgdG8gdXBkYXRlIHRoZSB0eXBlIG9mIG91ciBcImhvdmVyVGFnXCIgKHdoaWNoIGNvbnRyb2xzIGJhY2tncm91bmQtY29sb3Igb2YgdGFnKSBcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnRhZyAmJiB0aGlzLnRhZ0hvdmVyVHlwZSkge1xyXG4gICAgICB0aGlzLmhvdmVyVGFnID0gey4uLnRoaXMudGFnLCB0eXBlOiB0aGlzLnRhZ0hvdmVyVHlwZSB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb3VzZU92ZXJcclxuICAgIC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PlxyXG4gICAgICAgIG9mKHYpLnBpcGUoXHJcbiAgICAgICAgICBkZWxheSgzMDApLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuaW50ZXJydXB0KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3coKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93KCkge1xyXG5cclxuICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcoKTtcclxuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcclxuICBcclxuICAgICAgY29uc3QgY29udGVudFBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmNvbnRlbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIHRoaXMuY29udGVudFZpZXdSZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKGNvbnRlbnRQb3J0YWwpO1xyXG4gIFxyXG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicpXHJcbiAgcHVibGljIG9uTW91c2VPdmVyKCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXHJcbiAgcHVibGljIG9uTGVhdmUoKSB7XHJcbiAgICB0aGlzLmludGVycnVwdC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIaWRlcyB0aGUgcG9wb3ZlciBpZiB0aGUgbW91c2UgbW92ZXMgb3V0c2lkZSBvZiB0aGUgcG9wb3ZlciBjb250ZW50XHJcbiAgICovXHJcbiAgcHVibGljIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBcclxuICAgIGlmICghdGhpcy5jb250ZW50UmVjdCkge1xyXG4gICAgICB0aGlzLmNvbnRlbnRSZWN0ID0gdGhpcy5jb250ZW50Vmlld1JlZj8ucm9vdE5vZGVzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29udGVudFJlY3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICAgZXZlbnQuY2xpZW50WCA+IHRoaXMuY29udGVudFJlY3QucmlnaHQgXHJcbiAgICAgICB8fCBldmVudC5jbGllbnRYIDwgdGhpcy5jb250ZW50UmVjdC5sZWZ0XHJcbiAgICAgICB8fCBldmVudC5jbGllbnRZID4gdGhpcy5jb250ZW50UmVjdC5ib3R0b21cclxuICAgICAgIHx8IGV2ZW50LmNsaWVudFkgPCB0aGlzLmNvbnRlbnRSZWN0LnRvcFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlKCkge1xyXG4gICAgdGhpcy5jb250ZW50UmVjdCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcclxuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpXHJcbiAgICAgIC53aXRoUG9zaXRpb25zKFtwb3NpdGlvbl0pO1xyXG5cclxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGNvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UG9zaXRpb24oKTogQ29ubmVjdGVkUG9zaXRpb24ge1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmNvbnRlbnRQb3NpdGlvbi5zcGxpdCgnLScpO1xyXG4gICAgY29uc3Qgb3ZlcmxheVggPSA8J3N0YXJ0JyB8ICdlbmQnPihwb3NpdGlvblsxXSA9PSAnbGVmdCcgPyAnc3RhcnQnIDogJ2VuZCcpO1xyXG4gICAgY29uc3Qgb3ZlcmxheVkgPSA8J3RvcCcgfCAnYm90dG9tJz5wb3NpdGlvblswXTtcclxuICAgIHJldHVybiB7IG9yaWdpblg6IG92ZXJsYXlYLCBvcmlnaW5ZOiBvdmVybGF5WSwgb3ZlcmxheVg6IG92ZXJsYXlYLCBvdmVybGF5WTogb3ZlcmxheVkgfTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSBCZWZvcmUgaG92ZXIgc3RhdGUgLS0+XHJcbjxkaXYgY2xhc3M9XCJwLTJcIj5cclxuICA8aSAqbmdJZj1cIiF0YWdcIiBjbGFzcz1cImVjLWljb24ge3tpY29ufX0gZWMtaWNvbi1zbVwiPjwvaT5cclxuICA8ZWMtdGFncyAqbmdJZj1cInRhZ1wiXHJcbiAgICAgICAgICAgIFtpc0NvbmRlbnNlZF0gPSBcInRydWVcIlxyXG4gICAgICAgICAgICBbdGFnc109XCJ0YWdcIj5cclxuICA8L2VjLXRhZ3M+XHJcbjwvZGl2PlxyXG48IS0tIC4vQmVmb3JlIGhvdmVyIHN0YXRlIC0tPlxyXG5cclxuPCEtLSBIb3ZlciBzdGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxyXG4gIDxhcnRpY2xlIGNsYXNzPVwicG9wb3Zlci1jb250ZW50XCJcclxuICAgICAgICAgICAoZG9jdW1lbnQ6bW91c2Vtb3ZlKT1cIm9uTW91c2VNb3ZlKCRldmVudClcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2FydGljbGU+XHJcbiAgPGRpdiBjbGFzcz1cInAtMiB7e2NvbnRlbnRQb3NpdGlvbn19XCI+XHJcbiAgICA8aSAqbmdJZj1cIiF0YWdcIiBjbGFzcz1cImVjLWljb24ge3tpY29ufX0gZWMtaWNvbi1zbSB7e2ljb25Ib3ZlckNsYXNzfX1cIj48L2k+XHJcbiAgICA8ZWMtdGFncyAqbmdJZj1cInRhZ1wiXHJcbiAgICAgICAgICAgICBbaXNDb25kZW5zZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBbdGFnc109XCJob3ZlclRhZ1wiPlxyXG4gICAgPC9lYy10YWdzPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48IS0tIC4vSG92ZXIgc3RhdGUgLS0+XHJcbiJdfQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBK0IsWUFBWSxFQUFFLEtBQUssRUFBMEIsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVqSixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBVTdELE1BQU0sT0FBTyxnQkFBZ0I7SUFrQzNCLFlBQ1UsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLFVBQXNCLEVBQ3RCLGNBQThCO1FBSDlCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXBDeEMsOEZBQThGO1FBQ3JGLFNBQUksR0FBWSxFQUFFLENBQUM7UUFRbkIsb0JBQWUsR0FBMkIsVUFBVSxDQUFDO1FBRXJELG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBZ0I3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ2xD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SCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVFLE1BQU0sUUFBUSxHQUFxQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMxRixDQUFDOzs2R0FqSVUsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isa1hDZjdCLDJ4QkF5QkE7MkZEVmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFlBQVk7bUxBT2IsSUFBSTtzQkFBWixLQUFLO2dCQUdHLEdBQUc7c0JBQVgsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFdUIsT0FBTztzQkFBbkMsU0FBUzt1QkFBQyxTQUFTO2dCQWtFYixXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVc7Z0JBTWxCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFnLCBUYWdUeXBlIH0gZnJvbSAnLi4vLi4vZGlzcGxheS90YWdzL3RhZyc7XHJcbmltcG9ydCB7IG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9kaXNwbGF5L3Rvb2x0aXAvdG9vbHRpcC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIFBvcG92ZXJDb250ZW50UG9zaXRpb24gPSAndG9wLWxlZnQnIHwgJ3RvcC1yaWdodCcgfCAnYm90dG9tLXJpZ2h0JyB8ICdib3R0b20tbGVmdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXBvcG92ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAvKiogQW4gb3B0aW9uYWwgaWNvbiB0aGF0LCBpZiBwcm92aWRlZCwgZW5hYmxlcyB0aGUgcG9wb3ZlciB0byB1c2UgaXQgYXMgdGhlIGFuY2hvciBlbGVtZW50ICovXHJcbiAgQElucHV0KCkgaWNvbj86IHN0cmluZyA9ICcnO1xyXG4gIFxyXG4gIC8qKiBBbiBvcHRpb25hbCB0YWcgdGhhdCwgaWYgcHJvdmlkZWQsIGVuYWJsZXMgdGhlIHBvcG92ZXIgdG8gdXNlIGl0IGFzIHRoZSBhbmNob3IgZWxlbWVudCAqL1xyXG4gIEBJbnB1dCgpIHRhZz86IFRhZztcclxuXHJcbiAgLyoqIFVzZWQgdG8gZGVub3RlIHRoZSBob3ZlciB0YWcncyB0eXBlIChhbmQgdGh1cyBiYWNrZ3JvdW5kLWNvbG9yKSAqL1xyXG4gIEBJbnB1dCgpIHRhZ0hvdmVyVHlwZT86IFRhZ1R5cGU7XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRlbnRQb3NpdGlvbjogUG9wb3ZlckNvbnRlbnRQb3NpdGlvbiA9ICd0b3AtbGVmdCc7XHJcblxyXG4gIEBJbnB1dCgpIGljb25Ib3ZlckNsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGVudCcpIHB1YmxpYyBjb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgXHJcblxyXG4gIC8qKiBJbiB0aGUgdGVtcGxhdGUsIHdlIHVzZSBhbiBlYy10YWdzIGVsZW1lbnQgZm9yIHRoZSBwcmUtaG92ZXIgc3RhdGUgYW5kIGFuIGVudGlyZWx5XHJcbiAgICogIHNlcGFyYXRlIGVjLXRhZ3MgZWxlbWVudCBmb3Igb3VyIGhvdmVyIHN0YXRlLCByZXN1bHRpbmcgaW4gdHdvIGNvbXBvbmVudHMuIFRvIGFjaGlldmUgYSBjaGFuZ2UgXHJcbiAgICogaW4gdGhlIGJhY2tncm91bmQtY29sb3IgZm9yIG91ciBhbmNob3IgdGFnLCBvbiBob3ZlciwgYSBkaWZmZXJlbnQgdGFnLnRhZ1R5cGUgbXVzdCBiZSBwcm92aWRlZCBvbiB0aGVcclxuICAgKiBzZWNvbmQgZWMtdGFnIGVsZW1lbnRcclxuICAgKi9cclxuICBwdWJsaWMgaG92ZXJUYWc/OiBUYWc7XHJcblxyXG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XHJcbiAgcHJpdmF0ZSBjb250ZW50Vmlld1JlZj86IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xyXG4gIHByaXZhdGUgY29udGVudFJlY3Q6IERPTVJlY3QgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBtb3VzZU92ZXIgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgcHJpdmF0ZSBpbnRlcnJ1cHQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgdG9vbHRpcFNlcnZpY2U6IFRvb2x0aXBTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKiBXaGVuIHRoZSBwb3BvdmVyIGluaXRpYWxpemVzLCBpZiBhIG5ldyB0YWdUeXBlIGlzIHByb3ZpZGVkIGZvciB0aGUgaG92ZXIgc3RhdGUgb2YgdGhlIHBvcG92ZXIsIFxyXG4gICAqICB3ZSB1c2UgaXQgdG8gdXBkYXRlIHRoZSB0eXBlIG9mIG91ciBcImhvdmVyVGFnXCIgKHdoaWNoIGNvbnRyb2xzIGJhY2tncm91bmQtY29sb3Igb2YgdGFnKSBcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnRhZyAmJiB0aGlzLnRhZ0hvdmVyVHlwZSkge1xyXG4gICAgICB0aGlzLmhvdmVyVGFnID0gey4uLnRoaXMudGFnLCB0eXBlOiB0aGlzLnRhZ0hvdmVyVHlwZSB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb3VzZU92ZXJcclxuICAgIC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PlxyXG4gICAgICAgIG9mKHYpLnBpcGUoXHJcbiAgICAgICAgICBkZWxheSgzMDApLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuaW50ZXJydXB0KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3coKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93KCkge1xyXG5cclxuICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcoKTtcclxuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcclxuICBcclxuICAgICAgY29uc3QgY29udGVudFBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmNvbnRlbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XHJcbiAgICAgIHRoaXMuY29udGVudFZpZXdSZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKGNvbnRlbnRQb3J0YWwpO1xyXG4gIFxyXG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIC8vY29udGVudFJlY3Qgd2lsbCBiZSBhc3Npbmcgb25seSBhZnRlciBzaG93aW5nIGEgdG9vbHRpcC9wb3BvdmVyIGFuZCBpdCB3aWxsIGJlXHJcbiAgICAgIC8vcmVzZXQgYWZ0ZXIgaGlkZSB0aGUgc2FtZSB0b29sdGlwL3BvcG92ZXJcclxuICAgICAgdGhpcy5jb250ZW50UmVjdCA9IHRoaXMuY29udGVudFZpZXdSZWY/LnJvb3ROb2Rlc1swXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJylcclxuICBwdWJsaWMgb25Nb3VzZU92ZXIoKSB7XHJcbiAgICB0aGlzLm1vdXNlT3Zlci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcclxuICBwdWJsaWMgb25MZWF2ZSgpIHtcclxuICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhpZGVzIHRoZSBwb3BvdmVyIGlmIHRoZSBtb3VzZSBtb3ZlcyBvdXRzaWRlIG9mIHRoZSBwb3BvdmVyIGNvbnRlbnRcclxuICAgKi9cclxuICBwdWJsaWMgb25Nb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGxldCBjYWxsQ2FsbGJhY2sgPSBmYWxzZTtcclxuICAgIGlmKHRoaXMuY29udGVudFJlY3QpIHtcclxuICAgICAgY2FsbENhbGxiYWNrID0gdGhpcy50b29sdGlwU2VydmljZS5vbk1vdmUoZXZlbnQsIHRoaXMuY29udGVudFJlY3QhKTtcclxuICAgICAgaWYoY2FsbENhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZSgpIHtcclxuICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMuY29udGVudFJlY3QgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcoKTogT3ZlcmxheUNvbmZpZyB7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0UG9zaXRpb24oKTtcclxuXHJcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbcG9zaXRpb25dKTtcclxuXHJcbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uU3RyYXRlZ3lcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb25maWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBvc2l0aW9uKCk6IENvbm5lY3RlZFBvc2l0aW9uIHtcclxuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5jb250ZW50UG9zaXRpb24uc3BsaXQoJy0nKTtcclxuICAgIGNvbnN0IG92ZXJsYXlYID0gPCdzdGFydCcgfCAnZW5kJz4ocG9zaXRpb25bMV0gPT0gJ2xlZnQnID8gJ3N0YXJ0JyA6ICdlbmQnKTtcclxuICAgIGNvbnN0IG92ZXJsYXlZID0gPCd0b3AnIHwgJ2JvdHRvbSc+cG9zaXRpb25bMF07XHJcbiAgICByZXR1cm4geyBvcmlnaW5YOiBvdmVybGF5WCwgb3JpZ2luWTogb3ZlcmxheVksIG92ZXJsYXlYOiBvdmVybGF5WCwgb3ZlcmxheVk6IG92ZXJsYXlZIH07XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gQmVmb3JlIGhvdmVyIHN0YXRlIC0tPlxyXG48ZGl2IGNsYXNzPVwicC0yXCI+XHJcbiAgPGkgKm5nSWY9XCIhdGFnXCIgY2xhc3M9XCJlYy1pY29uIHt7aWNvbn19IGVjLWljb24tc21cIj48L2k+XHJcbiAgPGVjLXRhZ3MgKm5nSWY9XCJ0YWdcIlxyXG4gICAgICAgICAgICBbaXNDb25kZW5zZWRdID0gXCJ0cnVlXCJcclxuICAgICAgICAgICAgW3RhZ3NdPVwidGFnXCI+XHJcbiAgPC9lYy10YWdzPlxyXG48L2Rpdj5cclxuPCEtLSAuL0JlZm9yZSBob3ZlciBzdGF0ZSAtLT5cclxuXHJcbjwhLS0gSG92ZXIgc3RhdGUgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuICA8YXJ0aWNsZSBjbGFzcz1cInBvcG92ZXItY29udGVudFwiXHJcbiAgICAgICAgICAgKGRvY3VtZW50Om1vdXNlbW92ZSk9XCJvbk1vdXNlTW92ZSgkZXZlbnQpXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9hcnRpY2xlPlxyXG4gIDxkaXYgY2xhc3M9XCJwLTIge3tjb250ZW50UG9zaXRpb259fVwiPlxyXG4gICAgPGkgKm5nSWY9XCIhdGFnXCIgY2xhc3M9XCJlYy1pY29uIHt7aWNvbn19IGVjLWljb24tc20ge3tpY29uSG92ZXJDbGFzc319XCI+PC9pPlxyXG4gICAgPGVjLXRhZ3MgKm5nSWY9XCJ0YWdcIlxyXG4gICAgICAgICAgICAgW2lzQ29uZGVuc2VkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgW3RhZ3NdPVwiaG92ZXJUYWdcIj5cclxuICAgIDwvZWMtdGFncz5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPCEtLSAuL0hvdmVyIHN0YXRlIC0tPlxyXG4iXX0=
@@ -41,6 +41,18 @@ export class TooltipService {
41
41
  contentViewRef.instance.overlayRef = overlayRef;
42
42
  return contentViewRef.instance;
43
43
  }
44
+ onMove(event, contentRect) {
45
+ let callCallback = false;
46
+ if (contentRect) {
47
+ if (event.clientX > contentRect.right
48
+ || event.clientX < contentRect.left
49
+ || event.clientY > contentRect.bottom
50
+ || event.clientY < contentRect.top) {
51
+ callCallback = true;
52
+ }
53
+ }
54
+ return callCallback;
55
+ }
44
56
  getOverlayConfig(element, position, width, maxWidth) {
45
57
  const positionStrategy = this.overlay.position()
46
58
  .flexibleConnectedTo(element)
@@ -61,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
61
73
  providedIn: 'root'
62
74
  }]
63
75
  }], ctorParameters: function () { return [{ type: i1.Overlay }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9vbHRpcC90b29sdGlwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1DLE1BQU0scUJBQXFCLENBQUM7OztBQUt4RixNQUFNLE9BQU8sY0FBYztJQWlCekIsWUFDVSxPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBaEJsQixjQUFTLEdBQXVDO1lBQ3RELFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUNuRyxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO1lBQzNGLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZHLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUN0RyxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQzlGLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFHLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25HLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDM0YsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ3hHLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BHLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDNUYsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1NBQzFHLENBQUE7SUFJQyxDQUFDO0lBRUg7O09BRUc7SUFDSCxJQUFJLENBQUMsTUFBbUIsRUFBRSxXQUE0QixZQUFZLEVBQUUsT0FBd0I7UUFDMUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRELE1BQU0sYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RCxjQUFjLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFNUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN6QyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQy9DLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFDckQsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztRQUM3QyxjQUFjLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYSxDQUFDO1FBQy9ELGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLElBQUksS0FBSyxDQUFDO1FBQ3BFLGNBQWMsQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLE9BQU8sRUFBRSxlQUFlLENBQUM7UUFDbkUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRWhELE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBaUMsRUFBRSxRQUEyQixFQUFFLEtBQWMsRUFBRSxRQUFpQjtRQUN4SCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2FBQzdDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQzthQUM1QixhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTdCLE1BQU0sTUFBTSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQy9CLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OzJHQXhEVSxjQUFjOytHQUFkLGNBQWMsY0FGYixNQUFNOzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQsIFRvb2x0aXBPcHRpb25zLCBUb29sdGlwUG9zaXRpb24gfSBmcm9tIFwiLi90b29sdGlwLmNvbXBvbmVudFwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHRpcFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHBvc2l0aW9uczoge1trZXk6IHN0cmluZ106IENvbm5lY3RlZFBvc2l0aW9ufSA9IHtcclxuICAgICd0b3AtbGVmdCc6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WDogMzggfSxcclxuICAgICd0b3AtY2VudGVyJzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnY2VudGVyJywgb3ZlcmxheVk6ICdib3R0b20nIH0sXHJcbiAgICAndG9wLXJpZ2h0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFg6IC0zOCB9LFxyXG4gICAgJ2JvdHRvbS1sZWZ0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRYOiAzOCB9LFxyXG4gICAgJ2JvdHRvbS1jZW50ZXInOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ3RvcCcgfSxcclxuICAgICdib3R0b20tcmlnaHQnOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WDogLTM4IH0sXHJcbiAgICAnbGVmdC10b3AnOiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WTogLTM4IH0sXHJcbiAgICAnbGVmdC1jZW50ZXInOiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAnY2VudGVyJyB9LFxyXG4gICAgJ2xlZnQtYm90dG9tJzogeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnY2VudGVyJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFk6IDM4IH0sXHJcbiAgICAncmlnaHQtdG9wJzogeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcsIG9mZnNldFk6IC0zOCB9LFxyXG4gICAgJ3JpZ2h0LWNlbnRlcic6IHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdjZW50ZXInIH0sXHJcbiAgICAncmlnaHQtYm90dG9tJzogeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFk6IDM4IH1cclxuICB9XHJcbiAgICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheVxyXG4gICl7fVxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGEgdG9vbHRpcCBhdHRhY2hlZCB0byBhIHNwZWNpZmllZCBlbGVtZW50XHJcbiAgICovXHJcbiAgc2hvdyhhbmNob3I6IEhUTUxFbGVtZW50LCBwb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3RvcC1jZW50ZXInLCBvcHRpb25zPzogVG9vbHRpcE9wdGlvbnMpOiBUb29sdGlwQ29tcG9uZW50IHtcclxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcoYW5jaG9yLCB0aGlzLnBvc2l0aW9uc1twb3NpdGlvbl0sIG9wdGlvbnM/LndpZHRoLCBvcHRpb25zPy5tYXhXaWR0aCk7XHJcbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcclxuXHJcbiAgICBjb25zdCBjb250ZW50UG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChUb29sdGlwQ29tcG9uZW50KTtcclxuICAgIGNvbnN0IGNvbnRlbnRWaWV3UmVmID0gb3ZlcmxheVJlZi5hdHRhY2goY29udGVudFBvcnRhbCk7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHBvc2l0aW9uO1xyXG5cclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLmlkID0gb3B0aW9ucz8uaWQ7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS50aXRsZSA9IG9wdGlvbnM/LnRpdGxlO1xyXG4gICAgY29udGVudFZpZXdSZWYuaW5zdGFuY2Uuc3VidGl0bGUgPSBvcHRpb25zPy5zdWJ0aXRsZTtcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLnRleHQgPSBvcHRpb25zPy50ZXh0O1xyXG4gICAgY29udGVudFZpZXdSZWYuaW5zdGFuY2UuY3VzdG9tQ29udGVudCA9IG9wdGlvbnM/LmN1c3RvbUNvbnRlbnQ7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5kaXNtaXNzaWJsZSA9IG9wdGlvbnM/LmRpc21pc3NpYmxlIHx8IGZhbHNlO1xyXG4gICAgY29udGVudFZpZXdSZWYuaW5zdGFuY2UuYmFja2dyb3VuZENvbG9yID0gb3B0aW9ucz8uYmFja2dyb3VuZENvbG9yO1xyXG4gICAgY29udGVudFZpZXdSZWYuaW5zdGFuY2Uub3ZlcmxheVJlZiA9IG92ZXJsYXlSZWY7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiwgcG9zaXRpb246IENvbm5lY3RlZFBvc2l0aW9uLCB3aWR0aD86IG51bWJlciwgbWF4V2lkdGg/OiBudW1iZXIpOiBPdmVybGF5Q29uZmlnIHtcclxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhlbGVtZW50KVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbcG9zaXRpb25dKTtcclxuXHJcbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uU3RyYXRlZ3ksXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgbWF4V2lkdGg6IG1heFdpZHRoXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gY29uZmlnO1xyXG4gIH1cclxufSJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9vbHRpcC90b29sdGlwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUErQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFtQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFLeEYsTUFBTSxPQUFPLGNBQWM7SUFpQnpCLFlBQ1UsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQWhCbEIsY0FBUyxHQUF1QztZQUN0RCxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDbkcsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtZQUMzRixXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2RyxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDdEcsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUM5RixjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxRyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuRyxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO1lBQzNGLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUN4RyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwRyxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO1lBQzVGLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtTQUMxRyxDQUFBO0lBSUMsQ0FBQztJQUVIOztPQUVHO0lBQ0gsSUFBSSxDQUFDLE1BQW1CLEVBQUUsV0FBNEIsWUFBWSxFQUFFLE9BQXdCO1FBQzFGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV0RCxNQUFNLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVELE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRTVDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDekMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUMvQyxjQUFjLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFDO1FBQ3JELGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUM7UUFDN0MsY0FBYyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFFLGFBQWEsQ0FBQztRQUMvRCxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsV0FBVyxJQUFJLEtBQUssQ0FBQztRQUNwRSxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsR0FBRyxPQUFPLEVBQUUsZUFBZSxDQUFDO1FBQ25FLGNBQWMsQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUVoRCxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQixFQUFFLFdBQW1CO1FBQzFDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLFdBQVcsRUFBRTtZQUNmLElBQ0ksS0FBSyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSzttQkFDakMsS0FBSyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSTttQkFDaEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsTUFBTTttQkFDbEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxFQUNqQztnQkFDQSxZQUFZLEdBQUcsSUFBSSxDQUFDO2FBQ3JCO1NBQ0Y7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBaUMsRUFBRSxRQUEyQixFQUFFLEtBQWMsRUFBRSxRQUFpQjtRQUN4SCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2FBQzdDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQzthQUM1QixhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTdCLE1BQU0sTUFBTSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQy9CLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OzJHQXZFVSxjQUFjOytHQUFkLGNBQWMsY0FGYixNQUFNOzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCwgVG9vbHRpcE9wdGlvbnMsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gXCIuL3Rvb2x0aXAuY29tcG9uZW50XCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sdGlwU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcG9zaXRpb25zOiB7W2tleTogc3RyaW5nXTogQ29ubmVjdGVkUG9zaXRpb259ID0ge1xyXG4gICAgJ3RvcC1sZWZ0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICdib3R0b20nLCBvZmZzZXRYOiAzOCB9LFxyXG4gICAgJ3RvcC1jZW50ZXInOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ2JvdHRvbScgfSxcclxuICAgICd0b3AtcmlnaHQnOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WDogLTM4IH0sXHJcbiAgICAnYm90dG9tLWxlZnQnOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcsIG9mZnNldFg6IDM4IH0sXHJcbiAgICAnYm90dG9tLWNlbnRlcic6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ2NlbnRlcicsIG92ZXJsYXlZOiAndG9wJyB9LFxyXG4gICAgJ2JvdHRvbS1yaWdodCc6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRYOiAtMzggfSxcclxuICAgICdsZWZ0LXRvcCc6IHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRZOiAtMzggfSxcclxuICAgICdsZWZ0LWNlbnRlcic6IHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICdjZW50ZXInIH0sXHJcbiAgICAnbGVmdC1ib3R0b20nOiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WTogMzggfSxcclxuICAgICdyaWdodC10b3AnOiB7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnY2VudGVyJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WTogLTM4IH0sXHJcbiAgICAncmlnaHQtY2VudGVyJzogeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2NlbnRlcicgfSxcclxuICAgICdyaWdodC1ib3R0b20nOiB7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnY2VudGVyJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WTogMzggfVxyXG4gIH1cclxuICAgIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5XHJcbiAgKXt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgYSB0b29sdGlwIGF0dGFjaGVkIHRvIGEgc3BlY2lmaWVkIGVsZW1lbnRcclxuICAgKi9cclxuICBzaG93KGFuY2hvcjogSFRNTEVsZW1lbnQsIHBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAndG9wLWNlbnRlcicsIG9wdGlvbnM/OiBUb29sdGlwT3B0aW9ucyk6IFRvb2x0aXBDb21wb25lbnQge1xyXG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IHRoaXMuZ2V0T3ZlcmxheUNvbmZpZyhhbmNob3IsIHRoaXMucG9zaXRpb25zW3Bvc2l0aW9uXSwgb3B0aW9ucz8ud2lkdGgsIG9wdGlvbnM/Lm1heFdpZHRoKTtcclxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFRvb2x0aXBDb21wb25lbnQpO1xyXG4gICAgY29uc3QgY29udGVudFZpZXdSZWYgPSBvdmVybGF5UmVmLmF0dGFjaChjb250ZW50UG9ydGFsKTtcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLnBvc2l0aW9uID0gcG9zaXRpb247XHJcblxyXG4gICAgY29udGVudFZpZXdSZWYuaW5zdGFuY2UuaWQgPSBvcHRpb25zPy5pZDtcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLnRpdGxlID0gb3B0aW9ucz8udGl0bGU7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5zdWJ0aXRsZSA9IG9wdGlvbnM/LnN1YnRpdGxlO1xyXG4gICAgY29udGVudFZpZXdSZWYuaW5zdGFuY2UudGV4dCA9IG9wdGlvbnM/LnRleHQ7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5jdXN0b21Db250ZW50ID0gb3B0aW9ucz8uY3VzdG9tQ29udGVudDtcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLmRpc21pc3NpYmxlID0gb3B0aW9ucz8uZGlzbWlzc2libGUgfHwgZmFsc2U7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5iYWNrZ3JvdW5kQ29sb3IgPSBvcHRpb25zPy5iYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5vdmVybGF5UmVmID0gb3ZlcmxheVJlZjtcclxuXHJcbiAgICByZXR1cm4gY29udGVudFZpZXdSZWYuaW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBvbk1vdmUoZXZlbnQ6TW91c2VFdmVudCwgY29udGVudFJlY3Q6RE9NUmVjdCk6Ym9vbGVhbiB7XHJcbiAgICBsZXQgY2FsbENhbGxiYWNrID0gZmFsc2U7XHJcbiAgICBpZiAoY29udGVudFJlY3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICAgZXZlbnQuY2xpZW50WCA+IGNvbnRlbnRSZWN0LnJpZ2h0IFxyXG4gICAgICAgfHwgZXZlbnQuY2xpZW50WCA8IGNvbnRlbnRSZWN0LmxlZnRcclxuICAgICAgIHx8IGV2ZW50LmNsaWVudFkgPiBjb250ZW50UmVjdC5ib3R0b21cclxuICAgICAgIHx8IGV2ZW50LmNsaWVudFkgPCBjb250ZW50UmVjdC50b3BcclxuICAgICAgKSB7XHJcbiAgICAgICAgY2FsbENhbGxiYWNrID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNhbGxDYWxsYmFjaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYsIHBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiwgd2lkdGg/OiBudW1iZXIsIG1heFdpZHRoPzogbnVtYmVyKTogT3ZlcmxheUNvbmZpZyB7XHJcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oZWxlbWVudClcclxuICAgICAgLndpdGhQb3NpdGlvbnMoW3Bvc2l0aW9uXSk7XHJcblxyXG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiBwb3NpdGlvblN0cmF0ZWd5LFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIG1heFdpZHRoOiBtYXhXaWR0aFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGNvbmZpZztcclxuICB9XHJcbn0iXX0=
@@ -46,6 +46,19 @@ export class TooltipDirective {
46
46
  console.error('There are too many parameters or none parameter to config the tooltip options');
47
47
  }
48
48
  }
49
+ //Detects where the mouse is to trigger the leave/hide process
50
+ onMouseMove(event) {
51
+ let callCallback = false;
52
+ if (this.contentRect) {
53
+ callCallback = this.tooltipService.onMove(event, this.contentRect);
54
+ if (callCallback) {
55
+ //trigger on hide process
56
+ this.interrupt.next();
57
+ //reset the contentRec for a new tooltip
58
+ this.contentRect = undefined;
59
+ }
60
+ }
61
+ }
49
62
  //Trigger the process to show the tooltip
50
63
  onMouseOver() {
51
64
  this.mouseOver.next();
@@ -95,8 +108,13 @@ export class TooltipDirective {
95
108
  show() {
96
109
  //Reference to the element where to tooltip is attached
97
110
  const element = this.element.nativeElement;
111
+ //contentRect will be assing only after showing a tooltip/popover and it will be
112
+ //reset after hide the same tooltip/popover
113
+ this.contentRect = this.element.nativeElement.getBoundingClientRect();
98
114
  //tooltipPosition is never undefined, default value = "top-center"
99
- this.tooltip = this.tooltipService.show(element, this.tooltipPosition, this.tooltipOptions);
115
+ if (!this.tooltip) {
116
+ this.tooltip = this.tooltipService.show(element, this.tooltipPosition, this.tooltipOptions);
117
+ }
100
118
  }
101
119
  hide() {
102
120
  //There is a timing issue between the show - hide with
@@ -105,6 +123,7 @@ export class TooltipDirective {
105
123
  if (this.tooltip) {
106
124
  //Call the hide() from the tooltip component
107
125
  this.tooltip.hide();
126
+ this.tooltip = undefined;
108
127
  }
109
128
  //Interrupt the flow of mouseover with a delay and triggers the
110
129
  //flow to hide the tooltip with a delay
@@ -115,11 +134,11 @@ export class TooltipDirective {
115
134
  //When the element where the tooltip is attached disappears
116
135
  //the tooltip should be destroy as well
117
136
  ngOnDestroy() {
118
- this.onLeave();
137
+ this.interrupt.next();
119
138
  }
120
139
  }
121
140
  TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i1.TooltipService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
122
- TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: TooltipDirective, selector: "[ecTooltip]", inputs: { tooltipConfig: "tooltipConfig", tooltipText: "tooltipText", tooltipCustomContent: "tooltipCustomContent", tooltipPosition: "tooltipPosition" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onLeave()" } }, ngImport: i0 });
141
+ TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: TooltipDirective, selector: "[ecTooltip]", inputs: { tooltipConfig: "tooltipConfig", tooltipText: "tooltipText", tooltipCustomContent: "tooltipCustomContent", tooltipPosition: "tooltipPosition" }, host: { listeners: { "document:mousemove": "onMouseMove($event)", "mouseover": "onMouseOver()", "mouseleave": "onLeave()" } }, ngImport: i0 });
123
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TooltipDirective, decorators: [{
124
143
  type: Directive,
125
144
  args: [{
@@ -133,6 +152,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
133
152
  type: Input
134
153
  }], tooltipPosition: [{
135
154
  type: Input
155
+ }], onMouseMove: [{
156
+ type: HostListener,
157
+ args: ['document:mousemove', ['$event']]
136
158
  }], onMouseOver: [{
137
159
  type: HostListener,
138
160
  args: ['mouseover']
@@ -140,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
140
162
  type: HostListener,
141
163
  args: ['mouseleave']
142
164
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b29sdGlwLWRpcmVjdGl2ZS90b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBRy9GLE9BQU8sRUFBRSxPQUFPLEVBQUMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPN0QsTUFBTSxPQUFPLGdCQUFnQjtJQW9DM0IsWUFDVSxjQUE4QixFQUM5QixPQUFtQjtRQURuQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQXBDN0Isa0VBQWtFO1FBQ2xFLHNDQUFzQztRQUN0QixrQkFBYSxHQUFvQixTQUFTLENBQUE7UUFFMUQsb0VBQW9FO1FBQ3BELGdCQUFXLEdBQVksU0FBUyxDQUFDO1FBRWpELGdFQUFnRTtRQUNoRSwwQkFBMEI7UUFDVix5QkFBb0IsR0FBc0IsU0FBUyxDQUFDO1FBR3BFLHFFQUFxRTtRQUNyRSxrQ0FBa0M7UUFDbEIsb0JBQWUsR0FBb0IsWUFBWSxDQUFDO1FBRWhFLGdFQUFnRTtRQUVoRSxnQkFBZ0I7UUFDUixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNsQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFPdEMsbUVBQW1FO1FBQ25FLHVDQUF1QztRQUMvQixtQkFBYyxHQUFtQixFQUFFLENBQUE7SUFPdkMsQ0FBQztJQUVMLFFBQVE7UUFDTixxRUFBcUU7UUFD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LENBQUM7SUFHTyxJQUFJO1FBQ1YsdURBQXVEO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzNDLGtFQUFrRTtRQUNsRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXNCLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDNUcsQ0FBQztJQUVPLElBQUk7UUFDVix1REFBdUQ7UUFDdkQsMkNBQTJDO1FBQzNDLGtDQUFrQztRQUNsQyxJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZiw0Q0FBNEM7WUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUVyQjtRQUNELGdFQUFnRTtRQUNoRSx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0Qix5RUFBeUU7UUFDekUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsMkRBQTJEO0lBQzNELHlDQUF5QztJQUN6QyxXQUFXO1FBQ1YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLENBQUM7OzZHQXZKVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjs4SEFNaUIsYUFBYTtzQkFBNUIsS0FBSztnQkFHVSxXQUFXO3NCQUExQixLQUFLO2dCQUlVLG9CQUFvQjtzQkFBbkMsS0FBSztnQkFLVSxlQUFlO3NCQUE5QixLQUFLO2dCQTJEQyxXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVc7Z0JBUWxCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCwgVG9vbHRpcE9wdGlvbnMsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3Qsb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VjVG9vbHRpcF0nXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vVG9vbHRpcENvbmZpZzogcmVjZWl2ZXMgYWxsIHRoZSB0b29sdGlwIG9wdGlvbnMgdG8gb3ZlcndyaXRlIHRoZVxyXG4gIC8vZGVmYXVsdCBjb25maWd1cmF0aW9uIG9mIHRoZSB0b29sdGlwXHJcbiAgQElucHV0KCkgcHVibGljIHRvb2x0aXBDb25maWc/OiBUb29sdGlwT3B0aW9ucyA9IHVuZGVmaW5lZFxyXG5cclxuICAvL1Rvb2x0aXBUZXh0OiByZWNlaXZlcyBwbGFpbiB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgdG9vbHRpcFxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwVGV4dD86IHN0cmluZyA9IHVuZGVmaW5lZDsgXHJcblxyXG4gIC8vVG9vbHRpcEN1c3RvbUNvbnRlbnQ6IHJlY2VpdmVzIGEgdGVtcGxhdGUgcmVmZXJlbmNlIHRvIGRpc3BsYXlcclxuICAvL2ludG8gdGhlIHRvb2x0aXAgY29udGVudFxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwQ3VzdG9tQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT4gPSB1bmRlZmluZWQ7XHJcbiAgXHJcbiAgXHJcbiAgLy9UaGlzIElucHV0IHdpbGwgcmVtYWluIGFzIElucHV0IGJlY2F1c2UgdG9vbHRpcFBvc2l0aW9uIGlzIG5vdCBwYXJ0XHJcbiAgLy9vZiBUb29sdGlwT3B0aW9ucyB0eXBlIG9mIG9iamVjdFxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9IFwidG9wLWNlbnRlclwiO1xyXG5cclxuICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG4gIC8vRXZlbnRzIHJlbGF0ZWRcclxuICBwcml2YXRlIG1vdXNlT3ZlciA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICBwcml2YXRlIGludGVycnVwdCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBoaWRlQ29tcGxldGVkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuICAvL1JlZmVyZW5jZSB0byBUb29sdGlwQ29tcG9uZW50LCB3aWxsIGJlIGRlZmluZWQgYmVsb3cgaW4gdGhpcy5zaG93KClcclxuICBwcml2YXRlIHRvb2x0aXAhOiBUb29sdGlwQ29tcG9uZW50O1xyXG5cclxuICAvL09iamVjdCB3aXRoIHRoZSB0b29sdGlwIG9wdGlvbnMgYnVpbGRlZCB3aXRoIHRoZSBJbnB1dCBwYXJhbWV0ZXJzXHJcbiAgLy9hbmQgdXNlIGl0IGluIHRvb2x0aXBTZXJ2aWNlIC0gc2hvdygpXHJcbiAgcHJpdmF0ZSB0b29sdGlwT3B0aW9ucz86VG9vbHRpcE9wdGlvbnMgPSB7fVxyXG4gIFxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZSxcclxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vY2hlY2tJbnB1dHNWYWx1ZSgpOiBpZiB0aGVyZSBpcyBhbiBlcnJvciBpdCB3aWxsIHByZXZlbnQgdG8gZXhlY3V0ZVxyXG4gICAgLy9hbnkgY29kZSByZWxhdGVkIHdpdGggdGhlIHRvb2x0aXAgc2V0dXBcclxuICAgIGlmKHRoaXMuY2hlY2tJbnB1dHNWYWx1ZSgpKSB7XHJcbiAgICAgIC8vQ3JlYXRlIHRoZSBvYmplY3Qgd2l0aCB0aGUgdG9vbHRpcCBvcHRpb25zIHByb3ZpZGVkIGFzIEBJbnB1dHNcclxuICAgICAgdGhpcy5jcmVhdGVUb29sdGlwT3B0aW9ucygpO1xyXG5cclxuICAgICAgLy9Nb3VzZU92ZXIgZmxvdzogc3RhcnQgdGhlIHByb2Nlc3Mgb2Ygc2hvd2luZyB0aGUgdG9vbHRpcFxyXG4gICAgICAvL3VudGlsIHRoZSBtb3VzZSBsZWF2ZXMgdGhlIGFuY2hvciBlbGVtZW50IHdpdGggdGhpcy5pbnRlcnJ1cHRcclxuICAgICAgdGhpcy5tb3VzZU92ZXJcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKHYgPT5cclxuICAgICAgICAgIG9mKHYpLnBpcGUoXHJcbiAgICAgICAgICAgIGRlbGF5KDMwMCksIC8vZGVsYXlzIHRoZSB0aW1lIHByZXZpb3VzIG9mIHNob3dpbmcgdGhlIHRvb2x0aXBcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuaW50ZXJydXB0KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvdygpKTsgLy9DYWxscyB0aGUgZnVuY3Rpb24gcmVzcG9uc2FibGUgb2YgdXNpbmcgdGhlIHRvb2x0aXBTZXJ2aWNlXHJcbiAgXHJcbiAgICAgIC8vTW91c2UgbGVhdmUgZmxvdzogc3RhcnQgdGhlIHByb2Nlc3Mgb2YgcmVtb3ZpbmcgdGhlIHRvb2x0aXAgd2hlbiB0aGUgbW91c2UgaXMgYXdheSBvZiB0aGUgYW5jaG9yIGVsZW1lbnRcclxuICAgICAgdGhpcy5pbnRlcnJ1cHQucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAodiA9PiBcclxuICAgICAgICAgIG9mKHYpLnBpcGUoXHJcbiAgICAgICAgICAgIGRlbGF5KDUwKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuaGlkZUNvbXBsZXRlZClcclxuICAgICAgICAgICkpXHJcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGlkZSgpKTsgLy9oaWRlIHRoZSB0b29sdGlwIGFuZCB0cmlnZ2VycyB0aGUgY29tcGxldGVkIGN5Y2xlIGZsYWcgdGhpcy5oaWRlQ29tcGxldGVkXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBhcmUgdG9vIG1hbnkgcGFyYW1ldGVycyBvciBub25lIHBhcmFtZXRlciB0byBjb25maWcgdGhlIHRvb2x0aXAgb3B0aW9ucycpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL1RyaWdnZXIgdGhlIHByb2Nlc3MgdG8gc2hvdyB0aGUgdG9vbHRpcFxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicpXHJcbiAgcHVibGljIG9uTW91c2VPdmVyKCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIubmV4dCgpO1xyXG4gIH1cclxuICBcclxuICAvL1RyaWdnZXIgdGhlIHByb2Nlc3MgdG8gaGlkZSBhbmQgbGF0ZXIgdGhlIHByb2Nlc3NcclxuICAvL3RvIG1hcmsgYXMgY29tcGxldGUgdGhlIGN5Y2xlIG9mIHNob3cgYW5kIGhpZGUgdGhlIHRvb2x0aXBcclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcclxuICBwdWJsaWMgb25MZWF2ZSgpIHtcclxuICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tJbnB1dHNWYWx1ZSgpOmJvb2xlYW4ge1xyXG4gICAgbGV0IHBhcmFtZXRlcnNXaXRoVmFsdWUgPSAwO1xyXG4gICAgaWYodGhpcy50b29sdGlwVGV4dCkge1xyXG4gICAgICBwYXJhbWV0ZXJzV2l0aFZhbHVlID0gcGFyYW1ldGVyc1dpdGhWYWx1ZSArIDFcclxuICAgIH0gXHJcbiAgICBpZih0aGlzLnRvb2x0aXBDdXN0b21Db250ZW50KSB7XHJcbiAgICAgIHBhcmFtZXRlcnNXaXRoVmFsdWUgPSBwYXJhbWV0ZXJzV2l0aFZhbHVlICsgMVxyXG4gICAgfVxyXG4gICAgaWYodGhpcy50b29sdGlwQ29uZmlnKSB7XHJcbiAgICAgIHBhcmFtZXRlcnNXaXRoVmFsdWUgPSBwYXJhbWV0ZXJzV2l0aFZhbHVlICsgMVxyXG4gICAgfVxyXG4gICAgaWYocGFyYW1ldGVyc1dpdGhWYWx1ZSA9PT0gMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogY3JlYXRlVG9vbHRpcE9wdGlvbnNcclxuICAgKiB3aWxsIG9ubHkgYmUgZXhlY3V0ZWQgYWZ0ZXIgbWFuYWdlRXJyb3IoKSB2ZXJpZmllcyBcclxuICAgKiBpZiB0aGUgcGFyYW1ldGVycyBhcmUgbm90IG92ZXJsYXBwaW5nIGVhY2ggb3RoZXJcclxuICAgKiBhbmQgaXQgd2lsbCBidWlsZCB0aGUgdG9vbHRpcE9wdGlvbnMgb2JqZWN0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVUb29sdGlwT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbHRpcE9wdGlvbnMgPSB7XHJcbiAgICAgIGlkOiBgdG9vbHRpcF8ke3RoaXMudG9vbHRpcENvbmZpZz8uaWQ/IHRoaXMudG9vbHRpcENvbmZpZz8uaWQ6ICcnfWAsXHJcbiAgICAgIHRleHQ6IHRoaXMudG9vbHRpcENvbmZpZz8udGV4dCB8fCB0aGlzLnRvb2x0aXBUZXh0LFxyXG4gICAgICB0aXRsZTogdGhpcy50b29sdGlwQ29uZmlnPy50aXRsZSxcclxuICAgICAgc3VidGl0bGU6IHRoaXMudG9vbHRpcENvbmZpZz8uc3VidGl0bGUsXHJcbiAgICAgIGN1c3RvbUNvbnRlbnQ6IHRoaXMudG9vbHRpcENvbmZpZz8uY3VzdG9tQ29udGVudCB8fCB0aGlzLnRvb2x0aXBDdXN0b21Db250ZW50LFxyXG4gICAgICBkaXNtaXNzaWJsZTogdGhpcy50b29sdGlwQ29uZmlnPy5kaXNtaXNzaWJsZSB8fCBmYWxzZSxcclxuICAgICAgbWF4V2lkdGg6IHRoaXMudG9vbHRpcENvbmZpZz8ubWF4V2lkdGgsXHJcbiAgICAgIHdpZHRoOiB0aGlzLnRvb2x0aXBDb25maWc/LndpZHRoLFxyXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMudG9vbHRpcENvbmZpZz8uYmFja2dyb3VuZENvbG9yLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHNob3coKTp2b2lkIHtcclxuICAgIC8vUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IHdoZXJlIHRvIHRvb2x0aXAgaXMgYXR0YWNoZWRcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIC8vdG9vbHRpcFBvc2l0aW9uIGlzIG5ldmVyIHVuZGVmaW5lZCwgZGVmYXVsdCB2YWx1ZSA9IFwidG9wLWNlbnRlclwiXHJcbiAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXBTZXJ2aWNlLnNob3coZWxlbWVudCBhcyBIVE1MRWxlbWVudCwgdGhpcy50b29sdGlwUG9zaXRpb24sIHRoaXMudG9vbHRpcE9wdGlvbnMpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhpZGUoKTp2b2lkIHtcclxuICAgIC8vVGhlcmUgaXMgYSB0aW1pbmcgaXNzdWUgYmV0d2VlbiB0aGUgc2hvdyAtIGhpZGUgd2l0aCBcclxuICAgIC8vbGluZXIgdG9vbHRpcCBlbGVtZW50cywgc28gdGhlIGJlbG93IGxpbmVcclxuICAgIC8vbWFrZXMgc3VyZSB0aGUgYXBwIGRvZXNuJ3QgYnJlYWtcclxuICAgIGlmKHRoaXMudG9vbHRpcCkge1xyXG4gICAgICAvL0NhbGwgdGhlIGhpZGUoKSBmcm9tIHRoZSB0b29sdGlwIGNvbXBvbmVudFxyXG4gICAgICB0aGlzLnRvb2x0aXAuaGlkZSgpO1xyXG4gICAgICBcclxuICAgIH1cclxuICAgIC8vSW50ZXJydXB0IHRoZSBmbG93IG9mIG1vdXNlb3ZlciB3aXRoIGEgZGVsYXkgYW5kIHRyaWdnZXJzIHRoZSBcclxuICAgIC8vZmxvdyB0byBoaWRlIHRoZSB0b29sdGlwIHdpdGggYSBkZWxheSBcclxuICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICAgIC8vV29yayBhcyBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIGZsb3cgb2Ygc2hvdyBhbmQgaGlkZSBoYXMgYmVlbiBjb21wbGV0ZWRcclxuICAgIHRoaXMuaGlkZUNvbXBsZXRlZC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvL1doZW4gdGhlIGVsZW1lbnQgd2hlcmUgdGhlIHRvb2x0aXAgaXMgYXR0YWNoZWQgZGlzYXBwZWFyc1xyXG4gIC8vdGhlIHRvb2x0aXAgc2hvdWxkIGJlIGRlc3Ryb3kgYXMgd2VsbCAgXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgIHRoaXMub25MZWF2ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b29sdGlwLWRpcmVjdGl2ZS90b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBRy9GLE9BQU8sRUFBRSxPQUFPLEVBQUMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFNN0QsTUFBTSxPQUFPLGdCQUFnQjtJQXVDM0IsWUFDVSxjQUE4QixFQUM5QixPQUFtQjtRQURuQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQXZDN0Isa0VBQWtFO1FBQ2xFLHNDQUFzQztRQUN0QixrQkFBYSxHQUFvQixTQUFTLENBQUE7UUFFMUQsb0VBQW9FO1FBQ3BELGdCQUFXLEdBQVksU0FBUyxDQUFDO1FBRWpELGdFQUFnRTtRQUNoRSwwQkFBMEI7UUFDVix5QkFBb0IsR0FBc0IsU0FBUyxDQUFDO1FBR3BFLHFFQUFxRTtRQUNyRSxrQ0FBa0M7UUFDbEIsb0JBQWUsR0FBb0IsWUFBWSxDQUFDO1FBSWhFLGdFQUFnRTtRQUVoRSxnQkFBZ0I7UUFDUixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNsQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFRdEMsbUVBQW1FO1FBQ25FLHVDQUF1QztRQUMvQixtQkFBYyxHQUFtQixFQUFFLENBQUE7SUFPeEMsQ0FBQztJQUVKLFFBQVE7UUFDTixxRUFBcUU7UUFD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Q0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0Qix5RUFBeUU7UUFDekUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsMkRBQTJEO0lBQzNELHlDQUF5QztJQUN6QyxXQUFXO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs2R0EvS1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7OEhBTWlCLGFBQWE7c0JBQTVCLEtBQUs7Z0JBR1UsV0FBVztzQkFBMUIsS0FBSztnQkFJVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBS1UsZUFBZTtzQkFBOUIsS0FBSztnQkErREMsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQnZDLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVztnQkFRbEIsT0FBTztzQkFEYixZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50LCBUb29sdGlwT3B0aW9ucywgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLy4uL3Rvb2x0aXAvdG9vbHRpcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCxvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tlY1Rvb2x0aXBdJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvL1Rvb2x0aXBDb25maWc6IHJlY2VpdmVzIGFsbCB0aGUgdG9vbHRpcCBvcHRpb25zIHRvIG92ZXJ3cml0ZSB0aGVcclxuICAvL2RlZmF1bHQgY29uZmlndXJhdGlvbiBvZiB0aGUgdG9vbHRpcFxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwQ29uZmlnPzogVG9vbHRpcE9wdGlvbnMgPSB1bmRlZmluZWRcclxuXHJcbiAgLy9Ub29sdGlwVGV4dDogcmVjZWl2ZXMgcGxhaW4gdGV4dCB0byBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IHRvb2x0aXBcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcFRleHQ/OiBzdHJpbmcgPSB1bmRlZmluZWQ7IFxyXG5cclxuICAvL1Rvb2x0aXBDdXN0b21Db250ZW50OiByZWNlaXZlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSB0byBkaXNwbGF5XHJcbiAgLy9pbnRvIHRoZSB0b29sdGlwIGNvbnRlbnRcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcEN1c3RvbUNvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gdW5kZWZpbmVkO1xyXG4gIFxyXG4gIFxyXG4gIC8vVGhpcyBJbnB1dCB3aWxsIHJlbWFpbiBhcyBJbnB1dCBiZWNhdXNlIHRvb2x0aXBQb3NpdGlvbiBpcyBub3QgcGFydFxyXG4gIC8vb2YgVG9vbHRpcE9wdGlvbnMgdHlwZSBvZiBvYmplY3RcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSBcInRvcC1jZW50ZXJcIjtcclxuXHJcblxyXG5cclxuICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG4gIC8vRXZlbnRzIHJlbGF0ZWRcclxuICBwcml2YXRlIG1vdXNlT3ZlciA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICBwcml2YXRlIGludGVycnVwdCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBoaWRlQ29tcGxldGVkID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIGNvbnRlbnRSZWN0OiBET01SZWN0IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG4gIC8vUmVmZXJlbmNlIHRvIFRvb2x0aXBDb21wb25lbnQsIHdpbGwgYmUgZGVmaW5lZCBiZWxvdyBpbiB0aGlzLnNob3coKVxyXG4gIHByaXZhdGUgdG9vbHRpcD86IFRvb2x0aXBDb21wb25lbnQ7XHJcblxyXG4gIC8vT2JqZWN0IHdpdGggdGhlIHRvb2x0aXAgb3B0aW9ucyBidWlsZGVkIHdpdGggdGhlIElucHV0IHBhcmFtZXRlcnNcclxuICAvL2FuZCB1c2UgaXQgaW4gdG9vbHRpcFNlcnZpY2UgLSBzaG93KClcclxuICBwcml2YXRlIHRvb2x0aXBPcHRpb25zPzpUb29sdGlwT3B0aW9ucyA9IHt9XHJcbiAgXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdG9vbHRpcFNlcnZpY2U6IFRvb2x0aXBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy9jaGVja0lucHV0c1ZhbHVlKCk6IGlmIHRoZXJlIGlzIGFuIGVycm9yIGl0IHdpbGwgcHJldmVudCB0byBleGVjdXRlXHJcbiAgICAvL2FueSBjb2RlIHJlbGF0ZWQgd2l0aCB0aGUgdG9vbHRpcCBzZXR1cFxyXG4gICAgaWYodGhpcy5jaGVja0lucHV0c1ZhbHVlKCkpIHtcclxuICAgICAgLy9DcmVhdGUgdGhlIG9iamVjdCB3aXRoIHRoZSB0b29sdGlwIG9wdGlvbnMgcHJvdmlkZWQgYXMgQElucHV0c1xyXG4gICAgICB0aGlzLmNyZWF0ZVRvb2x0aXBPcHRpb25zKCk7XHJcblxyXG4gICAgICAvL01vdXNlT3ZlciBmbG93OiBzdGFydCB0aGUgcHJvY2VzcyBvZiBzaG93aW5nIHRoZSB0b29sdGlwXHJcbiAgICAgIC8vdW50aWwgdGhlIG1vdXNlIGxlYXZlcyB0aGUgYW5jaG9yIGVsZW1lbnQgd2l0aCB0aGlzLmludGVycnVwdFxyXG4gICAgICB0aGlzLm1vdXNlT3ZlclxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAodiA9PlxyXG4gICAgICAgICAgb2YodikucGlwZShcclxuICAgICAgICAgICAgZGVsYXkoMzAwKSwgLy9kZWxheXMgdGhlIHRpbWUgcHJldmlvdXMgb2Ygc2hvd2luZyB0aGUgdG9vbHRpcFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5pbnRlcnJ1cHQpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93KCkpOyAvL0NhbGxzIHRoZSBmdW5jdGlvbiByZXNwb25zYWJsZSBvZiB1c2luZyB0aGUgdG9vbHRpcFNlcnZpY2VcclxuICBcclxuICAgICAgLy9Nb3VzZSBsZWF2ZSBmbG93OiBzdGFydCB0aGUgcHJvY2VzcyBvZiByZW1vdmluZyB0aGUgdG9vbHRpcCB3aGVuIHRoZSBtb3VzZSBpcyBhd2F5IG9mIHRoZSBhbmNob3IgZWxlbWVudFxyXG4gICAgICB0aGlzLmludGVycnVwdC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCh2ID0+IFxyXG4gICAgICAgICAgb2YodikucGlwZShcclxuICAgICAgICAgICAgZGVsYXkoNTApLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5oaWRlQ29tcGxldGVkKVxyXG4gICAgICAgICAgKSlcclxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlKCkpOyAvL2hpZGUgdGhlIHRvb2x0aXAgYW5kIHRyaWdnZXJzIHRoZSBjb21wbGV0ZWQgY3ljbGUgZmxhZyB0aGlzLmhpZGVDb21wbGV0ZWRcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIGFyZSB0b28gbWFueSBwYXJhbWV0ZXJzIG9yIG5vbmUgcGFyYW1ldGVyIHRvIGNvbmZpZyB0aGUgdG9vbHRpcCBvcHRpb25zJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0RldGVjdHMgd2hlcmUgdGhlIG1vdXNlIGlzIHRvIHRyaWdnZXIgdGhlIGxlYXZlL2hpZGUgcHJvY2Vzc1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pIFxyXG4gIHB1YmxpYyBvbk1vdXNlTW92ZShldmVudDpNb3VzZUV2ZW50KSB7XHJcbiAgICBsZXQgY2FsbENhbGxiYWNrID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLmNvbnRlbnRSZWN0KSB7XHJcbiAgICAgIGNhbGxDYWxsYmFjayA9IHRoaXMudG9vbHRpcFNlcnZpY2Uub25Nb3ZlKGV2ZW50LCB0aGlzLmNvbnRlbnRSZWN0ISk7XHJcbiAgICAgIGlmKGNhbGxDYWxsYmFjaykge1xyXG4gICAgICAgIC8vdHJpZ2dlciBvbiBoaWRlIHByb2Nlc3NcclxuICAgICAgICB0aGlzLmludGVycnVwdC5uZXh0KCk7IFxyXG4gICAgICAgIC8vcmVzZXQgdGhlIGNvbnRlbnRSZWMgZm9yIGEgbmV3IHRvb2x0aXBcclxuICAgICAgICB0aGlzLmNvbnRlbnRSZWN0ID0gdW5kZWZpbmVkXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vVHJpZ2dlciB0aGUgcHJvY2VzcyB0byBzaG93IHRoZSB0b29sdGlwXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJylcclxuICBwdWJsaWMgb25Nb3VzZU92ZXIoKSB7XHJcbiAgICB0aGlzLm1vdXNlT3Zlci5uZXh0KCk7XHJcbiAgfVxyXG4gIFxyXG4gIC8vVHJpZ2dlciB0aGUgcHJvY2VzcyB0byBoaWRlIGFuZCBsYXRlciB0aGUgcHJvY2Vzc1xyXG4gIC8vdG8gbWFyayBhcyBjb21wbGV0ZSB0aGUgY3ljbGUgb2Ygc2hvdyBhbmQgaGlkZSB0aGUgdG9vbHRpcFxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gIHB1YmxpYyBvbkxlYXZlKCkge1xyXG4gICAgdGhpcy5pbnRlcnJ1cHQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0lucHV0c1ZhbHVlKCk6Ym9vbGVhbiB7XHJcbiAgICBsZXQgcGFyYW1ldGVyc1dpdGhWYWx1ZSA9IDA7XHJcbiAgICBpZih0aGlzLnRvb2x0aXBUZXh0KSB7XHJcbiAgICAgIHBhcmFtZXRlcnNXaXRoVmFsdWUgPSBwYXJhbWV0ZXJzV2l0aFZhbHVlICsgMVxyXG4gICAgfSBcclxuICAgIGlmKHRoaXMudG9vbHRpcEN1c3RvbUNvbnRlbnQpIHtcclxuICAgICAgcGFyYW1ldGVyc1dpdGhWYWx1ZSA9IHBhcmFtZXRlcnNXaXRoVmFsdWUgKyAxXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLnRvb2x0aXBDb25maWcpIHtcclxuICAgICAgcGFyYW1ldGVyc1dpdGhWYWx1ZSA9IHBhcmFtZXRlcnNXaXRoVmFsdWUgKyAxXHJcbiAgICB9XHJcbiAgICBpZihwYXJhbWV0ZXJzV2l0aFZhbHVlID09PSAxKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBjcmVhdGVUb29sdGlwT3B0aW9uc1xyXG4gICAqIHdpbGwgb25seSBiZSBleGVjdXRlZCBhZnRlciBtYW5hZ2VFcnJvcigpIHZlcmlmaWVzIFxyXG4gICAqIGlmIHRoZSBwYXJhbWV0ZXJzIGFyZSBub3Qgb3ZlcmxhcHBpbmcgZWFjaCBvdGhlclxyXG4gICAqIGFuZCBpdCB3aWxsIGJ1aWxkIHRoZSB0b29sdGlwT3B0aW9ucyBvYmplY3RcclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZVRvb2x0aXBPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b29sdGlwT3B0aW9ucyA9IHtcclxuICAgICAgaWQ6IGB0b29sdGlwXyR7dGhpcy50b29sdGlwQ29uZmlnPy5pZD8gdGhpcy50b29sdGlwQ29uZmlnPy5pZDogJyd9YCxcclxuICAgICAgdGV4dDogdGhpcy50b29sdGlwQ29uZmlnPy50ZXh0IHx8IHRoaXMudG9vbHRpcFRleHQsXHJcbiAgICAgIHRpdGxlOiB0aGlzLnRvb2x0aXBDb25maWc/LnRpdGxlLFxyXG4gICAgICBzdWJ0aXRsZTogdGhpcy50b29sdGlwQ29uZmlnPy5zdWJ0aXRsZSxcclxuICAgICAgY3VzdG9tQ29udGVudDogdGhpcy50b29sdGlwQ29uZmlnPy5jdXN0b21Db250ZW50IHx8IHRoaXMudG9vbHRpcEN1c3RvbUNvbnRlbnQsXHJcbiAgICAgIGRpc21pc3NpYmxlOiB0aGlzLnRvb2x0aXBDb25maWc/LmRpc21pc3NpYmxlIHx8IGZhbHNlLFxyXG4gICAgICBtYXhXaWR0aDogdGhpcy50b29sdGlwQ29uZmlnPy5tYXhXaWR0aCxcclxuICAgICAgd2lkdGg6IHRoaXMudG9vbHRpcENvbmZpZz8ud2lkdGgsXHJcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy50b29sdGlwQ29uZmlnPy5iYWNrZ3JvdW5kQ29sb3IsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgc2hvdygpOnZvaWQge1xyXG4gICAgLy9SZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgd2hlcmUgdG8gdG9vbHRpcCBpcyBhdHRhY2hlZFxyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgLy9jb250ZW50UmVjdCB3aWxsIGJlIGFzc2luZyBvbmx5IGFmdGVyIHNob3dpbmcgYSB0b29sdGlwL3BvcG92ZXIgYW5kIGl0IHdpbGwgYmVcclxuICAgIC8vcmVzZXQgYWZ0ZXIgaGlkZSB0aGUgc2FtZSB0b29sdGlwL3BvcG92ZXJcclxuICAgIHRoaXMuY29udGVudFJlY3QgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIC8vdG9vbHRpcFBvc2l0aW9uIGlzIG5ldmVyIHVuZGVmaW5lZCwgZGVmYXVsdCB2YWx1ZSA9IFwidG9wLWNlbnRlclwiXHJcbiAgICBpZighdGhpcy50b29sdGlwKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcFNlcnZpY2Uuc2hvdyhlbGVtZW50IGFzIEhUTUxFbGVtZW50LCB0aGlzLnRvb2x0aXBQb3NpdGlvbiwgdGhpcy50b29sdGlwT3B0aW9ucylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZSgpOnZvaWQge1xyXG4gICAgLy9UaGVyZSBpcyBhIHRpbWluZyBpc3N1ZSBiZXR3ZWVuIHRoZSBzaG93IC0gaGlkZSB3aXRoIFxyXG4gICAgLy9saW5lciB0b29sdGlwIGVsZW1lbnRzLCBzbyB0aGUgYmVsb3cgbGluZVxyXG4gICAgLy9tYWtlcyBzdXJlIHRoZSBhcHAgZG9lc24ndCBicmVha1xyXG4gICAgaWYodGhpcy50b29sdGlwKSB7XHJcbiAgICAgIC8vQ2FsbCB0aGUgaGlkZSgpIGZyb20gdGhlIHRvb2x0aXAgY29tcG9uZW50XHJcbiAgICAgIHRoaXMudG9vbHRpcC5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9vbHRpcCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgICAgLy9JbnRlcnJ1cHQgdGhlIGZsb3cgb2YgbW91c2VvdmVyIHdpdGggYSBkZWxheSBhbmQgdHJpZ2dlcnMgdGhlIFxyXG4gICAgICAvL2Zsb3cgdG8gaGlkZSB0aGUgdG9vbHRpcCB3aXRoIGEgZGVsYXkgXHJcbiAgICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICAgICAgLy9Xb3JrIGFzIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGUgZmxvdyBvZiBzaG93IGFuZCBoaWRlIGhhcyBiZWVuIGNvbXBsZXRlZFxyXG4gICAgICB0aGlzLmhpZGVDb21wbGV0ZWQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLy9XaGVuIHRoZSBlbGVtZW50IHdoZXJlIHRoZSB0b29sdGlwIGlzIGF0dGFjaGVkIGRpc2FwcGVhcnNcclxuICAvL3RoZSB0b29sdGlwIHNob3VsZCBiZSBkZXN0cm95IGFzIHdlbGwgIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICB0aGlzLmludGVycnVwdC5uZXh0KCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=