@sapphire-ion/framework 1.0.34 → 1.0.36

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.
@@ -1,11 +1,10 @@
1
- import { Component, ElementRef, EventEmitter, Input, NgZone, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';
1
+ import { Component, ElementRef, EventEmitter, Input, NgZone, Output, ViewChild } from '@angular/core';
2
2
  import { autoUpdate, computePosition, flip, limitShift, offset, shift, arrow } from '@floating-ui/dom';
3
3
  import { Timeout } from '../../../services/utils.service';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  export class SIonPopoverComponent {
7
- constructor(viewContainerRef, ngZone) {
8
- this.viewContainerRef = viewContainerRef;
7
+ constructor(ngZone) {
9
8
  this.ngZone = ngZone;
10
9
  this.fill = 'blur';
11
10
  this.arrow = true;
@@ -20,9 +19,9 @@ export class SIonPopoverComponent {
20
19
  this.anchor = undefined;
21
20
  this.state = POPOVER_STATE.IDLE;
22
21
  }
23
- ngOnInit() {
24
- this.CreateEmbeddedView();
25
- this.CreateInstance();
22
+ ngAfterViewInit() {
23
+ this._instance = this.contentContainer.nativeElement;
24
+ document.body.appendChild(this._instance);
26
25
  //TODO: Use Renderer2 to add event listeners for better Angular compatibility when updating to Angular 19
27
26
  this.ngZone.runOutsideAngular(() => {
28
27
  this.documentClickListener = (event) => {
@@ -41,27 +40,6 @@ export class SIonPopoverComponent {
41
40
  document.addEventListener('click', this.documentClickListener, true);
42
41
  });
43
42
  }
44
- CreateEmbeddedView() {
45
- if (this._embeddedView) {
46
- return;
47
- }
48
- this._embeddedView = this.popoverTemplate.createEmbeddedView({});
49
- this.viewRef = this.viewContainerRef.insert(this._embeddedView);
50
- }
51
- CreateInstance() {
52
- this._instance = this._embeddedView.rootNodes[0];
53
- document.body.appendChild(this._instance);
54
- // const style = {
55
- // "solid" : ['bg-light'],
56
- // "outline": ['bg-transparent'],
57
- // "blur" : ['backdrop-blur-md', 'bg-light/80'],
58
- // "clear" : ['!border-0 bg-transparent'],
59
- // }[this.fill];
60
- // style.forEach(s => {
61
- // this._instance.classList.add(s);
62
- // this.arrowEl?.classList.add(s);
63
- // });
64
- }
65
43
  get arrowEl() {
66
44
  return this._instance.querySelector('.popover-arrow');
67
45
  }
@@ -122,7 +100,6 @@ export class SIonPopoverComponent {
122
100
  }
123
101
  ngOnDestroy() {
124
102
  if (this._instance) {
125
- document.body.removeChild(this._instance);
126
103
  this._instance.remove();
127
104
  this._instance = undefined;
128
105
  }
@@ -149,13 +126,13 @@ export class SIonPopoverComponent {
149
126
  ].filter(p => p),
150
127
  });
151
128
  }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SIonPopoverComponent, selector: "sion-popover", inputs: { fill: "fill", arrow: "arrow", flip: "flip", placement: "placement", height: "height", width: "width", anchor: "anchor" }, outputs: { onWillPresent: "onWillPresent", onDidPresent: "onDidPresent", onWillDismiss: "onWillDismiss", onDidDismiss: "onDidDismiss" }, viewQueries: [{ propertyName: "popoverTemplate", first: true, predicate: ["popoverTemplate"], descendants: true, static: true }, { propertyName: "contentContainer", first: true, predicate: ["popoverWrapper"], descendants: true }, { propertyName: "arrowElement", first: true, predicate: ["popoverArrow"], descendants: true }], ngImport: i0, template: "<ng-template #popoverTemplate>\r\n <div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n > \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n\r\n <ng-content #content></ng-content>\r\n </div>\r\n</ng-template>", styles: [".popover-wrapper{z-index:50;border-radius:.75rem;width:max-content;position:absolute;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95)}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SIonPopoverComponent, selector: "sion-popover", inputs: { fill: "fill", arrow: "arrow", flip: "flip", placement: "placement", height: "height", width: "width", anchor: "anchor" }, outputs: { onWillPresent: "onWillPresent", onDidPresent: "onDidPresent", onWillDismiss: "onWillDismiss", onDidDismiss: "onDidDismiss" }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["popoverWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n> \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n <ng-content #content></ng-content>\r\n</div>", styles: [".popover-wrapper{border-radius:.75rem;width:max-content;position:fixed;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95);pointer-events:auto!important;z-index:10001!important}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
154
131
  }
155
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverComponent, decorators: [{
156
133
  type: Component,
157
- args: [{ selector: 'sion-popover', template: "<ng-template #popoverTemplate>\r\n <div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n > \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n\r\n <ng-content #content></ng-content>\r\n </div>\r\n</ng-template>", styles: [".popover-wrapper{z-index:50;border-radius:.75rem;width:max-content;position:absolute;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95)}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none}\n"] }]
158
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.NgZone }], propDecorators: { fill: [{
134
+ args: [{ selector: 'sion-popover', template: "<div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n> \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'backdrop-blur-md bg-light/80': fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n <ng-content #content></ng-content>\r\n</div>", styles: [".popover-wrapper{border-radius:.75rem;width:max-content;position:fixed;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95);pointer-events:auto!important;z-index:10001!important}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none!important}\n"] }]
135
+ }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { fill: [{
159
136
  type: Input
160
137
  }], arrow: [{
161
138
  type: Input
@@ -177,15 +154,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
177
154
  type: Output
178
155
  }], anchor: [{
179
156
  type: Input
180
- }], popoverTemplate: [{
181
- type: ViewChild,
182
- args: ['popoverTemplate', { static: true }]
183
157
  }], contentContainer: [{
184
158
  type: ViewChild,
185
- args: ['popoverWrapper']
186
- }], arrowElement: [{
187
- type: ViewChild,
188
- args: ['popoverArrow']
159
+ args: ['popoverWrapper', { read: ElementRef }]
189
160
  }] } });
190
161
  var POPOVER_STATE;
191
162
  (function (POPOVER_STATE) {
@@ -206,4 +177,4 @@ const ROTATIONS = {
206
177
  left: "225deg",
207
178
  right: "45deg",
208
179
  };
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvbi1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wb3BvdmVyL3Npb24tcG9wb3Zlci9zaW9uLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3BvcG92ZXIvc2lvbi1wb3BvdmVyL3Npb24tcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBbUIsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ2xMLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUF5QixJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekksT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFTMUQsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsWUFDVSxnQkFBa0MsRUFDbEMsTUFBYztRQURkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXBCZixTQUFJLEdBQVMsTUFBTSxDQUFDO1FBQ3BCLFVBQUssR0FBWSxJQUFJLENBQUM7UUFDdEIsU0FBSSxHQUFhLElBQUksQ0FBQztRQUd0QixjQUFTLEdBQWMsUUFBUSxDQUFDO1FBQ2hDLFdBQU0sR0FBVyxNQUFNLENBQUM7UUFDeEIsVUFBSyxHQUFXLE1BQU0sQ0FBQztRQUd0QixrQkFBYSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzdELGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFNUQsa0JBQWEs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QyxFQUxJLGFBQWEsS0FBYixhQUFhLFFBS2pCO0FBQ0QsTUFBTSxZQUFZLEdBQUc7SUFDbkIsR0FBRyxFQUFFLFFBQVE7SUFDYixLQUFLLEVBQUUsTUFBTTtJQUNiLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLE9BQU87Q0FDZCxDQUFDO0FBQ0YsTUFBTSxTQUFTLEdBQUc7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsR0FBRyxFQUFFLFFBQVE7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgY29tcHV0ZVBvc2l0aW9uLCBDb21wdXRlUG9zaXRpb25SZXR1cm4sIGZsaXAsIGxpbWl0U2hpZnQsIG9mZnNldCwgUGxhY2VtZW50LCBzaGlmdCwgYXJyb3cgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcclxuaW1wb3J0IHsgVGltZW91dCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5cclxudHlwZSBGaWxsID0gJ3NvbGlkJyB8ICdvdXRsaW5lJyB8ICdibHVyJyB8ICdjbGVhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Npb24tcG9wb3ZlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Npb24tcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2lvbi1wb3BvdmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTSW9uUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgZmlsbDogRmlsbCA9ICdibHVyJztcclxuICBASW5wdXQoKSBhcnJvdzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZmxpcCA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHJcbiAgQElucHV0KCkgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tJztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9ICdhdXRvJztcclxuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gJ2F1dG8nO1xyXG5cclxuXHJcbiAgQE91dHB1dCgpIG9uV2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgb25EaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbldpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uRGlkRGlzbWlzczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASW5wdXQoKSBhbmNob3I6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcclxuICApIHsgfVxyXG5cclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BvcG92ZXJUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pIHBvcG92ZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgncG9wb3ZlcldyYXBwZXInKSBjb250ZW50Q29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwb3BvdmVyQXJyb3cnICApIGFycm93RWxlbWVudCAgICA6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuQ3JlYXRlRW1iZWRkZWRWaWV3KCk7XHJcbiAgICB0aGlzLkNyZWF0ZUluc3RhbmNlKCk7XHJcbiAgXHJcbiAgICAvL1RPRE86IFVzZSBSZW5kZXJlcjIgdG8gYWRkIGV2ZW50IGxpc3RlbmVycyBmb3IgYmV0dGVyIEFuZ3VsYXIgY29tcGF0aWJpbGl0eSB3aGVuIHVwZGF0aW5nIHRvIEFuZ3VsYXIgMTlcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAvLyBSdW4gYmFjayBpbnNpZGUgQW5ndWxhcidzIHpvbmUgd2hlbiBoYW5kbGluZyB0aGUgZXZlbnRcclxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgaWYoIXRoaXMuX2luc3RhbmNlKXsgcmV0dXJuO31cclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMuX2luc3RhbmNlLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxyXG4gICAgICAgICAgICAhdGhpcy5hbmNob3IuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNtaXNzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH07XHJcbiAgICAgIFxyXG4gICAgICAvLyBVc2UgdGhlIG5hdGl2ZSBET00gQVBJIGRpcmVjdGx5IHdpdGggY2FwdHVyZSBwaGFzZVxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyLCB0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBkb2N1bWVudENsaWNrTGlzdGVuZXI6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuICB2aWV3UmVmPzogVmlld1JlZjtcclxuXHJcbiAgcHJpdmF0ZSBfZW1iZWRkZWRWaWV3PzogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgQ3JlYXRlRW1iZWRkZWRWaWV3KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5fZW1iZWRkZWRWaWV3KXsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLl9lbWJlZGRlZFZpZXcgPSB0aGlzLnBvcG92ZXJUZW1wbGF0ZS5jcmVhdGVFbWJlZGRlZFZpZXcoe30pO1xyXG4gICAgdGhpcy52aWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmluc2VydCh0aGlzLl9lbWJlZGRlZFZpZXcpO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbnN0YW5jZT86IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gIENyZWF0ZUluc3RhbmNlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5faW5zdGFuY2UgPSB0aGlzLl9lbWJlZGRlZFZpZXcucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLl9pbnN0YW5jZSk7XHJcblxyXG4gICAgLy8gY29uc3Qgc3R5bGUgPSB7XHJcbiAgICAvLyAgIFwic29saWRcIiAgOiBbJ2JnLWxpZ2h0J10sXHJcbiAgICAvLyAgIFwib3V0bGluZVwiOiBbJ2JnLXRyYW5zcGFyZW50J10sXHJcbiAgICAvLyAgIFwiYmx1clwiICAgOiBbJ2JhY2tkcm9wLWJsdXItbWQnLCAnYmctbGlnaHQvODAnXSxcclxuICAgIC8vICAgXCJjbGVhclwiICA6IFsnIWJvcmRlci0wIGJnLXRyYW5zcGFyZW50J10sXHJcbiAgICAvLyB9W3RoaXMuZmlsbF07XHJcbiAgICAvLyBzdHlsZS5mb3JFYWNoKHMgPT4ge1xyXG4gICAgLy8gICB0aGlzLl9pbnN0YW5jZS5jbGFzc0xpc3QuYWRkKHMpO1xyXG4gICAgLy8gICB0aGlzLmFycm93RWw/LmNsYXNzTGlzdC5hZGQocyk7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIGdldCBhcnJvd0VsKCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZS5xdWVyeVNlbGVjdG9yKCcucG9wb3Zlci1hcnJvdycpIGFzIEhUTUxFbGVtZW50O1xyXG4gIH1cclxuICBcclxuICBwcml2YXRlIGNsZWFudXBBdXRvVXBkYXRlPzogKCkgPT4gdm9pZDtcclxuICBwdWJsaWMgc3RhdGU6IFBPUE9WRVJfU1RBVEUgPSBQT1BPVkVSX1NUQVRFLklETEU7XHJcbiAgcHVibGljIGFzeW5jIHByZXNlbnQoZXZlbnQ/OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYodGhpcy5zdGF0ZSAhPSBQT1BPVkVSX1NUQVRFLklETEUpIHsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLm9uV2lsbFByZXNlbnQuZW1pdCgpO1xyXG4gICAgXHJcbiAgICB0aGlzLnN0YXRlID0gUE9QT1ZFUl9TVEFURS5QUkVTRU5USU5HO1xyXG4gICAgY29uc3QgcmVmRWwgICA9IHRoaXMuYW5jaG9yID8gdGhpcy5hbmNob3IgOiBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCBhcnJvd0VsID0gdGhpcy5hcnJvd0VsO1xyXG5cclxuICAgIGF3YWl0IHRoaXMudXBkYXRlKHJlZkVsLCBhcnJvd0VsKVxyXG4gICAgdGhpcy5faW5zdGFuY2UuY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xyXG4gICAgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSA9IGF1dG9VcGRhdGUocmVmRWwsIHRoaXMuX2luc3RhbmNlLCBhc3luYyAoKSA9PiB0aGlzLnVwZGF0ZShyZWZFbCwgYXJyb3dFbCkpO1xyXG4gICAgXHJcbiAgICB0aGlzLnN0YXRlID0gUE9QT1ZFUl9TVEFURS5WSVNJQkxFO1xyXG4gICAgdGhpcy5vbkRpZFByZXNlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGUocmVmRWw6IEhUTUxFbGVtZW50LCBhcnJvd0VsOiBIVE1MRWxlbWVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgY29tcHV0ZVBvc2l0aW9uUmV0dXJuOiBDb21wdXRlUG9zaXRpb25SZXR1cm4gPSBhd2FpdCB0aGlzLkdldENvbXB1dGVQb3NpdGlvblJldHVybihyZWZFbCwgdGhpcy5faW5zdGFuY2UsIGFycm93RWwpO1xyXG4gICAgdGhpcy5IYW5kbGVDb21wdXRlUG9zaXRpb25SZXR1cm4oY29tcHV0ZVBvc2l0aW9uUmV0dXJuLCBhcnJvd0VsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkaXNtaXNzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYodGhpcy5zdGF0ZSA9PSBQT1BPVkVSX1NUQVRFLklETEUpIHsgcmV0dXJuOyB9XHJcbiAgICBpZih0aGlzLmNsZWFudXBBdXRvVXBkYXRlKSB7XHJcbiAgICAgIHRoaXMuY2xlYW51cEF1dG9VcGRhdGUoKTtcclxuICAgICAgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRoaXMub25XaWxsRGlzbWlzcy5lbWl0KCk7XHJcbiAgICB0aGlzLnN0YXRlID0gUE9QT1ZFUl9TVEFURS5ESVNNSVNTSU5HO1xyXG4gICAgdGhpcy5faW5zdGFuY2UuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xyXG4gICAgYXdhaXQgVGltZW91dCgyMDApO1xyXG4gICAgdGhpcy5zdGF0ZSA9IFBPUE9WRVJfU1RBVEUuSURMRTtcclxuICAgIHRoaXMub25EaWREaXNtaXNzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIEhhbmRsZUNvbXB1dGVQb3NpdGlvblJldHVybihjb21wdXRlUG9zaXRpb25SZXR1cm46IENvbXB1dGVQb3NpdGlvblJldHVybiwgYXJyb3dFbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5faW5zdGFuY2Uuc3R5bGUsIHtcclxuICAgICAgbGVmdDogYCR7Y29tcHV0ZVBvc2l0aW9uUmV0dXJuLnh9cHhgLFxyXG4gICAgICB0b3A6ICBgJHtjb21wdXRlUG9zaXRpb25SZXR1cm4ueX1weGAsXHJcbiAgICAgIHdpZHRoIDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICB9KTtcclxuICAgIGlmKGNvbXB1dGVQb3NpdGlvblJldHVybi5taWRkbGV3YXJlRGF0YS5hcnJvdyl7XHJcbiAgICAgIGNvbnN0IHsgeDogYXJyb3dYLCB5OiBhcnJvd1kgfSA9IGNvbXB1dGVQb3NpdGlvblJldHVybi5taWRkbGV3YXJlRGF0YS5hcnJvdztcclxuICAgICAgY29uc3QgcG9zaXRpb24gPSBjb21wdXRlUG9zaXRpb25SZXR1cm4ucGxhY2VtZW50LnNwbGl0KCctJylbMF07XHJcbiAgICAgIGNvbnN0IHN0YXRpY1NpZGUgPSBTVEFUSUNfU0lERVNbcG9zaXRpb25dO1xyXG4gICAgICBPYmplY3QuYXNzaWduKGFycm93RWwuc3R5bGUsIHtcclxuICAgICAgICBsZWZ0OiBhcnJvd1ggIT0gbnVsbCA/IGAke2Fycm93WH1weGAgOiAnJyxcclxuICAgICAgICB0b3AgOiBhcnJvd1kgIT0gbnVsbCA/IGAke2Fycm93WX1weGAgOiAnJyxcclxuICAgICAgICByaWdodCA6ICcnLFxyXG4gICAgICAgIGJvdHRvbTogJycsXHJcbiAgICAgICAgW3N0YXRpY1NpZGVdOiBgLTdweGAsXHJcbiAgICAgIH0pO1xyXG4gICAgICBhcnJvd0VsLnN0eWxlLnNldFByb3BlcnR5KGAtLXJvdGF0aW9uYCwgUk9UQVRJT05TW3Bvc2l0aW9uXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuX2luc3RhbmNlKSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5faW5zdGFuY2UpO1xyXG4gICAgICB0aGlzLl9pbnN0YW5jZS5yZW1vdmUoKTtcclxuICAgICAgdGhpcy5faW5zdGFuY2UgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLl9lbWJlZGRlZFZpZXcpIHtcclxuICAgICAgdGhpcy5fZW1iZWRkZWRWaWV3LmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fZW1iZWRkZWRWaWV3ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcikge1xyXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyLCB0cnVlKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZpZXdSZWYpIHtcclxuICAgICAgdGhpcy52aWV3UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy52aWV3UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgR2V0Q29tcHV0ZVBvc2l0aW9uUmV0dXJuKHJlZkVsOiBIVE1MRWxlbWVudCwgcG9wRWw6IEhUTUxFbGVtZW50LCBhcnJvd0VsOiBIVE1MRWxlbWVudCk6IFByb21pc2U8Q29tcHV0ZVBvc2l0aW9uUmV0dXJuPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgY29tcHV0ZVBvc2l0aW9uKHJlZkVsLCBwb3BFbCwge1xyXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxyXG4gICAgICBtaWRkbGV3YXJlOiBbIFxyXG4gICAgICAgIG9mZnNldCgxMCksIFxyXG4gICAgICAgIHRoaXMuZmxpcCAgPyBmbGlwKHsgY3Jvc3NBeGlzOiBmYWxzZSB9KSA6IHVuZGVmaW5lZCwgXHJcbiAgICAgICAgc2hpZnQoeyBsaW1pdGVyOiBsaW1pdFNoaWZ0KCksIHBhZGRpbmc6IDUgfSksIFxyXG4gICAgICAgIHRoaXMuYXJyb3cgPyBhcnJvdyh7IGVsZW1lbnQ6IGFycm93RWwsIHBhZGRpbmc6IDEwIH0pIDogdW5kZWZpbmVkLFxyXG4gICAgICBdLmZpbHRlcihwID0+IHApLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5lbnVtIFBPUE9WRVJfU1RBVEV7XHJcbiAgSURMRSAgICAgICA9IDEsXHJcbiAgUFJFU0VOVElORyA9IDIsXHJcbiAgRElTTUlTU0lORyA9IDMsXHJcbiAgVklTSUJMRSAgICA9IDRcclxufVxyXG5jb25zdCBTVEFUSUNfU0lERVMgPSB7XHJcbiAgdG9wOiBcImJvdHRvbVwiLFxyXG4gIHJpZ2h0OiBcImxlZnRcIixcclxuICBib3R0b206IFwidG9wXCIsXHJcbiAgbGVmdDogXCJyaWdodFwiXHJcbn07XHJcbmNvbnN0IFJPVEFUSU9OUyA9IHtcclxuICBib3R0b206IFwiMTM1ZGVnXCIsXHJcbiAgdG9wOiBcIjMxNWRlZ1wiLFxyXG4gIGxlZnQ6IFwiMjI1ZGVnXCIsXHJcbiAgcmlnaHQ6IFwiNDVkZWdcIixcclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI3BvcG92ZXJUZW1wbGF0ZT5cclxuICA8ZGl2ICNwb3BvdmVyV3JhcHBlciBcclxuICAgIGNsYXNzPVwicG9wb3Zlci13cmFwcGVyIHRyYW5zbHVjaWQtYm9yZGVyXCJcclxuICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ2JnLWxpZ2h0JyAgICAgICAgOiBmaWxsID09ICdzb2xpZCcsXHJcbiAgICAgICAgJ2JnLXRyYW5zcGFyZW50JyAgOiBmaWxsID09ICdvdXRsaW5lJyxcclxuICAgICAgICAnYmFja2Ryb3AtYmx1ci1tZCBiZy1saWdodC84MCc6IGZpbGwgPT0gJ2JsdXInLFxyXG4gICAgICAgICchYm9yZGVyLTAnICAgICAgIDogZmlsbCA9PSAnY2xlYXInLFxyXG4gICAgICB9XCJcclxuICA+IFxyXG4gICAgPGRpdiAjcG9wb3ZlckFycm93IGNsYXNzPVwicG9wb3Zlci1hcnJvdyBzaXplLTQgdHJhbnNsdWNpZC1ib3JkZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ2JnLWxpZ2h0JyAgICAgICAgOiBmaWxsID09ICdzb2xpZCcsXHJcbiAgICAgICAgJ2JnLXRyYW5zcGFyZW50JyAgOiBmaWxsID09ICdvdXRsaW5lJyxcclxuICAgICAgICAnYmFja2Ryb3AtYmx1ci1tZCBiZy1saWdodC84MCc6IGZpbGwgPT0gJ2JsdXInLFxyXG4gICAgICAgICchYm9yZGVyLTAnICAgICAgIDogZmlsbCA9PSAnY2xlYXInLFxyXG4gICAgICB9XCJcclxuICAgID48L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGVudCAjY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvbi1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wb3BvdmVyL3Npb24tcG9wb3Zlci9zaW9uLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3BvcG92ZXIvc2lvbi1wb3BvdmVyL3Npb24tcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQW1CLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQWUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNqTSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBeUIsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBUzFELE1BQU0sT0FBTyxvQkFBb0I7SUFvQi9CLFlBQ1UsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFuQmYsU0FBSSxHQUFTLE1BQU0sQ0FBQztRQUNwQixVQUFLLEdBQVksSUFBSSxDQUFDO1FBQ3RCLFNBQUksR0FBYSxJQUFJLENBQUM7UUFHdEIsY0FBUyxHQUFjLFFBQVEsQ0FBQztRQUNoQyxXQUFNLEdBQVcsTUFBTSxDQUFDO1FBQ3hCLFVBQUssR0FBVyxNQUFNLENBQUM7UUFHdEIsa0JBQWEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM3RCxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVELGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDN0QsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztR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QkFBckIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUUsTUFBTTtzQkFBZCxLQUFLO2dCQU04QyxnQkFBZ0I7c0JBQW5FLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOztBQStIcEQsSUFBSyxhQUtKO0FBTEQsV0FBSyxhQUFhO0lBQ2hCLGlEQUFjLENBQUE7SUFDZCw2REFBYyxDQUFBO0lBQ2QsNkRBQWMsQ0FBQTtJQUNkLHVEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUxJLGFBQWEsS0FBYixhQUFhLFFBS2pCO0FBQ0QsTUFBTSxZQUFZLEdBQUc7SUFDbkIsR0FBRyxFQUFFLFFBQVE7SUFDYixLQUFLLEVBQUUsTUFBTTtJQUNiLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLE9BQU87Q0FDZCxDQUFDO0FBQ0YsTUFBTSxTQUFTLEdBQUc7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsR0FBRyxFQUFFLFFBQVE7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgY29tcHV0ZVBvc2l0aW9uLCBDb21wdXRlUG9zaXRpb25SZXR1cm4sIGZsaXAsIGxpbWl0U2hpZnQsIG9mZnNldCwgUGxhY2VtZW50LCBzaGlmdCwgYXJyb3cgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcclxuaW1wb3J0IHsgVGltZW91dCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5cclxudHlwZSBGaWxsID0gJ3NvbGlkJyB8ICdvdXRsaW5lJyB8ICdibHVyJyB8ICdjbGVhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Npb24tcG9wb3ZlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Npb24tcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2lvbi1wb3BvdmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTSW9uUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGZpbGw6IEZpbGwgPSAnYmx1cic7XHJcbiAgQElucHV0KCkgYXJyb3c6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGZsaXAgOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlbWVudDogUGxhY2VtZW50ID0gJ2JvdHRvbSc7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICdhdXRvJztcclxuXHJcblxyXG4gIEBPdXRwdXQoKSBvbldpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uRGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25XaWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBvbkRpZERpc21pc3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQElucHV0KCkgYW5jaG9yOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7IH1cclxuXHJcbiAgQFZpZXdDaGlsZCgncG9wb3ZlcldyYXBwZXInICwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNvbnRlbnRDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIFxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuX2luc3RhbmNlID0gdGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2luc3RhbmNlKTtcclxuXHJcbiAgICAvL1RPRE86IFVzZSBSZW5kZXJlcjIgdG8gYWRkIGV2ZW50IGxpc3RlbmVycyBmb3IgYmV0dGVyIEFuZ3VsYXIgY29tcGF0aWJpbGl0eSB3aGVuIHVwZGF0aW5nIHRvIEFuZ3VsYXIgMTlcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgICAvLyBSdW4gYmFjayBpbnNpZGUgQW5ndWxhcidzIHpvbmUgd2hlbiBoYW5kbGluZyB0aGUgZXZlbnRcclxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgaWYoIXRoaXMuX2luc3RhbmNlKXsgcmV0dXJuO31cclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMuX2luc3RhbmNlLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxyXG4gICAgICAgICAgICAhdGhpcy5hbmNob3IuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNtaXNzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH07XHJcbiAgICAgIFxyXG4gICAgICAvLyBVc2UgdGhlIG5hdGl2ZSBET00gQVBJIGRpcmVjdGx5IHdpdGggY2FwdHVyZSBwaGFzZVxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyLCB0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBkb2N1bWVudENsaWNrTGlzdGVuZXI6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuICB2aWV3UmVmPzogVmlld1JlZjtcclxuXHJcbiAgcHJpdmF0ZSBfZW1iZWRkZWRWaWV3PzogRW1iZWRkZWRWaWV3UmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfaW5zdGFuY2U/OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZ2V0IGFycm93RWwoKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlLnF1ZXJ5U2VsZWN0b3IoJy5wb3BvdmVyLWFycm93JykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgfVxyXG4gIFxyXG4gIHByaXZhdGUgY2xlYW51cEF1dG9VcGRhdGU/OiAoKSA9PiB2b2lkO1xyXG4gIHB1YmxpYyBzdGF0ZTogUE9QT1ZFUl9TVEFURSA9IFBPUE9WRVJfU1RBVEUuSURMRTtcclxuICBwdWJsaWMgYXN5bmMgcHJlc2VudChldmVudD86IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZih0aGlzLnN0YXRlICE9IFBPUE9WRVJfU1RBVEUuSURMRSkgeyByZXR1cm47IH1cclxuICAgIHRoaXMub25XaWxsUHJlc2VudC5lbWl0KCk7XHJcbiAgICBcclxuICAgIHRoaXMuc3RhdGUgPSBQT1BPVkVSX1NUQVRFLlBSRVNFTlRJTkc7XHJcbiAgICBjb25zdCByZWZFbCAgID0gdGhpcy5hbmNob3IgPyB0aGlzLmFuY2hvciA6IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IGFycm93RWwgPSB0aGlzLmFycm93RWw7XHJcblxyXG4gICAgYXdhaXQgdGhpcy51cGRhdGUocmVmRWwsIGFycm93RWwpXHJcbiAgICB0aGlzLl9pbnN0YW5jZS5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XHJcbiAgICB0aGlzLmNsZWFudXBBdXRvVXBkYXRlID0gYXV0b1VwZGF0ZShyZWZFbCwgdGhpcy5faW5zdGFuY2UsIGFzeW5jICgpID0+IHRoaXMudXBkYXRlKHJlZkVsLCBhcnJvd0VsKSk7XHJcbiAgICBcclxuICAgIHRoaXMuc3RhdGUgPSBQT1BPVkVSX1NUQVRFLlZJU0lCTEU7XHJcbiAgICB0aGlzLm9uRGlkUHJlc2VudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZShyZWZFbDogSFRNTEVsZW1lbnQsIGFycm93RWw6IEhUTUxFbGVtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBjb21wdXRlUG9zaXRpb25SZXR1cm46IENvbXB1dGVQb3NpdGlvblJldHVybiA9IGF3YWl0IHRoaXMuR2V0Q29tcHV0ZVBvc2l0aW9uUmV0dXJuKHJlZkVsLCB0aGlzLl9pbnN0YW5jZSwgYXJyb3dFbCk7XHJcbiAgICB0aGlzLkhhbmRsZUNvbXB1dGVQb3NpdGlvblJldHVybihjb21wdXRlUG9zaXRpb25SZXR1cm4sIGFycm93RWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRpc21pc3MoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZih0aGlzLnN0YXRlID09IFBPUE9WRVJfU1RBVEUuSURMRSkgeyByZXR1cm47IH1cclxuICAgIGlmKHRoaXMuY2xlYW51cEF1dG9VcGRhdGUpIHtcclxuICAgICAgdGhpcy5jbGVhbnVwQXV0b1VwZGF0ZSgpO1xyXG4gICAgICB0aGlzLmNsZWFudXBBdXRvVXBkYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbldpbGxEaXNtaXNzLmVtaXQoKTtcclxuICAgIHRoaXMuc3RhdGUgPSBQT1BPVkVSX1NUQVRFLkRJU01JU1NJTkc7XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XHJcbiAgICBhd2FpdCBUaW1lb3V0KDIwMCk7XHJcbiAgICB0aGlzLnN0YXRlID0gUE9QT1ZFUl9TVEFURS5JRExFO1xyXG4gICAgdGhpcy5vbkRpZERpc21pc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgSGFuZGxlQ29tcHV0ZVBvc2l0aW9uUmV0dXJuKGNvbXB1dGVQb3NpdGlvblJldHVybjogQ29tcHV0ZVBvc2l0aW9uUmV0dXJuLCBhcnJvd0VsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLl9pbnN0YW5jZS5zdHlsZSwge1xyXG4gICAgICBsZWZ0OiBgJHtjb21wdXRlUG9zaXRpb25SZXR1cm4ueH1weGAsXHJcbiAgICAgIHRvcDogIGAke2NvbXB1dGVQb3NpdGlvblJldHVybi55fXB4YCxcclxuICAgICAgd2lkdGggOiB0aGlzLndpZHRoLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcclxuICAgIH0pO1xyXG4gICAgaWYoY29tcHV0ZVBvc2l0aW9uUmV0dXJuLm1pZGRsZXdhcmVEYXRhLmFycm93KXtcclxuICAgICAgY29uc3QgeyB4OiBhcnJvd1gsIHk6IGFycm93WSB9ID0gY29tcHV0ZVBvc2l0aW9uUmV0dXJuLm1pZGRsZXdhcmVEYXRhLmFycm93O1xyXG4gICAgICBjb25zdCBwb3NpdGlvbiA9IGNvbXB1dGVQb3NpdGlvblJldHVybi5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXTtcclxuICAgICAgY29uc3Qgc3RhdGljU2lkZSA9IFNUQVRJQ19TSURFU1twb3NpdGlvbl07XHJcbiAgICAgIE9iamVjdC5hc3NpZ24oYXJyb3dFbC5zdHlsZSwge1xyXG4gICAgICAgIGxlZnQ6IGFycm93WCAhPSBudWxsID8gYCR7YXJyb3dYfXB4YCA6ICcnLFxyXG4gICAgICAgIHRvcCA6IGFycm93WSAhPSBudWxsID8gYCR7YXJyb3dZfXB4YCA6ICcnLFxyXG4gICAgICAgIHJpZ2h0IDogJycsXHJcbiAgICAgICAgYm90dG9tOiAnJyxcclxuICAgICAgICBbc3RhdGljU2lkZV06IGAtN3B4YCxcclxuICAgICAgfSk7XHJcbiAgICAgIGFycm93RWwuc3R5bGUuc2V0UHJvcGVydHkoYC0tcm90YXRpb25gLCBST1RBVElPTlNbcG9zaXRpb25dKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5faW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy5faW5zdGFuY2UucmVtb3ZlKCk7XHJcbiAgICAgIHRoaXMuX2luc3RhbmNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5fZW1iZWRkZWRWaWV3KSB7XHJcbiAgICAgIHRoaXMuX2VtYmVkZGVkVmlldy5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2VtYmVkZGVkVmlldyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIpIHtcclxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lciwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52aWV3UmVmKSB7XHJcbiAgICAgIHRoaXMudmlld1JlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMudmlld1JlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIEdldENvbXB1dGVQb3NpdGlvblJldHVybihyZWZFbDogSFRNTEVsZW1lbnQsIHBvcEVsOiBIVE1MRWxlbWVudCwgYXJyb3dFbDogSFRNTEVsZW1lbnQpOiBQcm9taXNlPENvbXB1dGVQb3NpdGlvblJldHVybj4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IGNvbXB1dGVQb3NpdGlvbihyZWZFbCwgcG9wRWwsIHtcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgbWlkZGxld2FyZTogWyBcclxuICAgICAgICBvZmZzZXQoMTApLCBcclxuICAgICAgICB0aGlzLmZsaXAgID8gZmxpcCh7IGNyb3NzQXhpczogZmFsc2UgfSkgOiB1bmRlZmluZWQsIFxyXG4gICAgICAgIHNoaWZ0KHsgbGltaXRlcjogbGltaXRTaGlmdCgpLCBwYWRkaW5nOiA1IH0pLCBcclxuICAgICAgICB0aGlzLmFycm93ID8gYXJyb3coeyBlbGVtZW50OiBhcnJvd0VsLCBwYWRkaW5nOiAxMCB9KSA6IHVuZGVmaW5lZCxcclxuICAgICAgXS5maWx0ZXIocCA9PiBwKSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZW51bSBQT1BPVkVSX1NUQVRFe1xyXG4gIElETEUgICAgICAgPSAxLFxyXG4gIFBSRVNFTlRJTkcgPSAyLFxyXG4gIERJU01JU1NJTkcgPSAzLFxyXG4gIFZJU0lCTEUgICAgPSA0XHJcbn1cclxuY29uc3QgU1RBVElDX1NJREVTID0ge1xyXG4gIHRvcDogXCJib3R0b21cIixcclxuICByaWdodDogXCJsZWZ0XCIsXHJcbiAgYm90dG9tOiBcInRvcFwiLFxyXG4gIGxlZnQ6IFwicmlnaHRcIlxyXG59O1xyXG5jb25zdCBST1RBVElPTlMgPSB7XHJcbiAgYm90dG9tOiBcIjEzNWRlZ1wiLFxyXG4gIHRvcDogXCIzMTVkZWdcIixcclxuICBsZWZ0OiBcIjIyNWRlZ1wiLFxyXG4gIHJpZ2h0OiBcIjQ1ZGVnXCIsXHJcbn1cclxuIiwiPGRpdiAjcG9wb3ZlcldyYXBwZXIgXHJcbiAgY2xhc3M9XCJwb3BvdmVyLXdyYXBwZXIgdHJhbnNsdWNpZC1ib3JkZXJcIlxyXG4gIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcclxuICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxyXG4gIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ2JnLWxpZ2h0JyAgICAgICAgOiBmaWxsID09ICdzb2xpZCcsXHJcbiAgICAgICdiZy10cmFuc3BhcmVudCcgIDogZmlsbCA9PSAnb3V0bGluZScsXHJcbiAgICAgICdiYWNrZHJvcC1ibHVyLW1kIGJnLWxpZ2h0LzgwJzogZmlsbCA9PSAnYmx1cicsXHJcbiAgICAgICchYm9yZGVyLTAnICAgICAgIDogZmlsbCA9PSAnY2xlYXInLFxyXG4gICAgfVwiXHJcbj4gXHJcbiAgPGRpdiAjcG9wb3ZlckFycm93IGNsYXNzPVwicG9wb3Zlci1hcnJvdyBzaXplLTQgdHJhbnNsdWNpZC1ib3JkZXJcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAnYmctbGlnaHQnICAgICAgICA6IGZpbGwgPT0gJ3NvbGlkJyxcclxuICAgICAgJ2JnLXRyYW5zcGFyZW50JyAgOiBmaWxsID09ICdvdXRsaW5lJyxcclxuICAgICAgJ2JhY2tkcm9wLWJsdXItbWQgYmctbGlnaHQvODAnOiBmaWxsID09ICdibHVyJyxcclxuICAgICAgJyFib3JkZXItMCcgICAgICAgOiBmaWxsID09ICdjbGVhcicsXHJcbiAgICB9XCJcclxuICA+PC9kaXY+XHJcbiAgPG5nLWNvbnRlbnQgI2NvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj4iXX0=
@@ -1,11 +1,12 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { SIonPopoverComponent } from './sion-popover/sion-popover.component';
4
+ import { OverlayModule } from '@angular/cdk/overlay';
4
5
  import * as i0 from "@angular/core";
5
6
  export class SIonPopoverModule {
6
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, declarations: [SIonPopoverComponent], imports: [CommonModule], exports: [SIonPopoverComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, imports: [CommonModule] }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, declarations: [SIonPopoverComponent], imports: [CommonModule, OverlayModule], exports: [SIonPopoverComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, imports: [CommonModule, OverlayModule] }); }
9
10
  }
10
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverModule, decorators: [{
11
12
  type: NgModule,
@@ -13,8 +14,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
13
14
  declarations: [SIonPopoverComponent],
14
15
  exports: [SIonPopoverComponent],
15
16
  imports: [
16
- CommonModule
17
+ CommonModule, OverlayModule
17
18
  ]
18
19
  }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvbi1wb3BvdmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wb3BvdmVyL3Npb24tcG9wb3Zlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBUzdFLE1BQU0sT0FBTyxpQkFBaUI7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQU5aLG9CQUFvQixhQUdsQyxZQUFZLGFBRkgsb0JBQW9CO2dIQUtwQixpQkFBaUIsWUFIMUIsWUFBWTs7NEZBR0gsaUJBQWlCO2tCQVA3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFFLG9CQUFvQixDQUFHO29CQUN2QyxPQUFPLEVBQUUsQ0FBRSxvQkFBb0IsQ0FBRTtvQkFDakMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTSW9uUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vc2lvbi1wb3BvdmVyL3Npb24tcG9wb3Zlci5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFsgU0lvblBvcG92ZXJDb21wb25lbnQgIF0sXHJcbiAgZXhwb3J0czogWyBTSW9uUG9wb3ZlckNvbXBvbmVudCBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNJb25Qb3BvdmVyTW9kdWxlIHsgfVxyXG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvbi1wb3BvdmVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wb3BvdmVyL3Npb24tcG9wb3Zlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVFyRCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFOWixvQkFBb0IsYUFHbEMsWUFBWSxFQUFFLGFBQWEsYUFGbEIsb0JBQW9CO2dIQUtwQixpQkFBaUIsWUFIMUIsWUFBWSxFQUFFLGFBQWE7OzRGQUdsQixpQkFBaUI7a0JBUDdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUUsb0JBQW9CLENBQUc7b0JBQ3ZDLE9BQU8sRUFBRSxDQUFFLG9CQUFvQixDQUFFO29CQUNqQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWSxFQUFFLGFBQWE7cUJBQzVCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU0lvblBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL3Npb24tcG9wb3Zlci9zaW9uLXBvcG92ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFsgU0lvblBvcG92ZXJDb21wb25lbnQgIF0sXHJcbiAgZXhwb3J0czogWyBTSW9uUG9wb3ZlckNvbXBvbmVudCBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSwgT3ZlcmxheU1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNJb25Qb3BvdmVyTW9kdWxlIHsgfVxyXG4iXX0=
@@ -1,29 +1,34 @@
1
1
  import { InjectionToken, NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { EnvironmentService } from './services/environment.service';
4
+ import { ModalFocusTrapService } from './services/modal-focus-trap.service';
4
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "./services/modal-focus-trap.service";
5
7
  export const EnvironmentInjectionToken = new InjectionToken('Environment');
6
8
  export class SapphireIonFrameworkModule {
9
+ constructor(mis) {
10
+ this.mis = mis;
11
+ }
7
12
  static forRoot(config) {
8
13
  return {
9
14
  ngModule: SapphireIonFrameworkModule,
10
15
  providers: [
16
+ ModalFocusTrapService,
11
17
  EnvironmentService, { provide: EnvironmentInjectionToken, useValue: config },
12
18
  ]
13
19
  };
14
20
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SapphireIonFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SapphireIonFrameworkModule, deps: [{ token: i1.ModalFocusTrapService }], target: i0.ɵɵFactoryTarget.NgModule }); }
16
22
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SapphireIonFrameworkModule, imports: [CommonModule] }); }
17
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SapphireIonFrameworkModule, imports: [CommonModule] }); }
23
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SapphireIonFrameworkModule, providers: [ModalFocusTrapService], imports: [CommonModule] }); }
18
24
  }
19
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SapphireIonFrameworkModule, decorators: [{
20
26
  type: NgModule,
21
27
  args: [{
22
28
  declarations: [],
23
29
  exports: [],
24
- imports: [
25
- CommonModule
26
- ],
30
+ imports: [CommonModule,],
31
+ providers: [ModalFocusTrapService],
27
32
  }]
28
- }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXBFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFjLGFBQWEsQ0FBQyxDQUFDO0FBVXhGLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFtQjtRQUNoQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxTQUFTLEVBQUU7Z0JBQ1Qsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTthQUM3RTtTQUNGLENBQUE7SUFDSCxDQUFDOytHQVJVLDBCQUEwQjtnSEFBMUIsMEJBQTBCLFlBSG5DLFlBQVk7Z0hBR0gsMEJBQTBCLFlBSG5DLFlBQVk7OzRGQUdILDBCQUEwQjtrQkFQdEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFPLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4vY2xhc3Nlcy9lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY29uc3QgRW52aXJvbm1lbnRJbmplY3Rpb25Ub2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnZpcm9ubWVudD4oJ0Vudmlyb25tZW50Jyk7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGV4cG9ydHMgICAgIDogW10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhcHBoaXJlSW9uRnJhbWV3b3JrTW9kdWxlIHsgXHJcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBFbnZpcm9ubWVudCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U2FwcGhpcmVJb25GcmFtZXdvcmtNb2R1bGU+IHtcclxuICAgIHJldHVybiB7IFxyXG4gICAgICBuZ01vZHVsZTogU2FwcGhpcmVJb25GcmFtZXdvcmtNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogWyBcclxuICAgICAgICBFbnZpcm9ubWVudFNlcnZpY2UsIHsgcHJvdmlkZTogRW52aXJvbm1lbnRJbmplY3Rpb25Ub2tlbiwgdXNlVmFsdWU6IGNvbmZpZyB9LCBcclxuICAgICAgXVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
33
+ }], ctorParameters: () => [{ type: i1.ModalFocusTrapService }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7OztBQUU1RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBYyxhQUFhLENBQUMsQ0FBQztBQU94RixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQXFCLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO0lBQUksQ0FBQztJQUVwRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQW1CO1FBQ2hDLE9BQU87WUFDTCxRQUFRLEVBQUUsMEJBQTBCO1lBQ3BDLFNBQVMsRUFBRTtnQkFDVCxxQkFBcUI7Z0JBQ3JCLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDN0U7U0FDRixDQUFBO0lBQ0gsQ0FBQzsrR0FYVSwwQkFBMEI7Z0hBQTFCLDBCQUEwQixZQUgxQixZQUFZO2dIQUdaLDBCQUEwQixhQUYxQixDQUFFLHFCQUFxQixDQUFFLFlBRHpCLFlBQVk7OzRGQUdaLDBCQUEwQjtrQkFOdEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFPLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFFLFlBQVksRUFBRztvQkFDMUIsU0FBUyxFQUFFLENBQUUscUJBQXFCLENBQUU7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4vY2xhc3Nlcy9lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZGFsRm9jdXNUcmFwU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbW9kYWwtZm9jdXMtdHJhcC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBFbnZpcm9ubWVudEluamVjdGlvblRva2VuID0gbmV3IEluamVjdGlvblRva2VuPEVudmlyb25tZW50PignRW52aXJvbm1lbnQnKTtcclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGV4cG9ydHMgICAgIDogW10sXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIF0sXHJcbiAgcHJvdmlkZXJzOiBbIE1vZGFsRm9jdXNUcmFwU2VydmljZSBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FwcGhpcmVJb25GcmFtZXdvcmtNb2R1bGUgeyBcclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBtaXM6IE1vZGFsRm9jdXNUcmFwU2VydmljZSApIHt9XHJcblxyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogRW52aXJvbm1lbnQpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNhcHBoaXJlSW9uRnJhbWV3b3JrTW9kdWxlPiB7XHJcbiAgICByZXR1cm4geyBcclxuICAgICAgbmdNb2R1bGU6IFNhcHBoaXJlSW9uRnJhbWV3b3JrTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFsgXHJcbiAgICAgICAgTW9kYWxGb2N1c1RyYXBTZXJ2aWNlLFxyXG4gICAgICAgIEVudmlyb25tZW50U2VydmljZSwgeyBwcm92aWRlOiBFbnZpcm9ubWVudEluamVjdGlvblRva2VuLCB1c2VWYWx1ZTogY29uZmlnIH0sIFxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ModalFocusTrapService {
4
+ constructor() {
5
+ this.initGlobalFocusTrapDisable();
6
+ }
7
+ initGlobalFocusTrapDisable() {
8
+ // Wait for the platform to be ready
9
+ document.addEventListener('DOMContentLoaded', () => {
10
+ this.setupModalObserver();
11
+ });
12
+ }
13
+ setupModalObserver() {
14
+ // Create a mutation observer to watch for new modals
15
+ const observer = new MutationObserver((mutations) => {
16
+ mutations.forEach((mutation) => {
17
+ mutation.addedNodes.forEach((node) => {
18
+ if (node.nodeType === Node.ELEMENT_NODE) {
19
+ const element = node;
20
+ // Check if the added node is an ion-modal
21
+ if (element.tagName?.toLowerCase() === 'ion-modal') {
22
+ this.disableFocusTrap(element);
23
+ }
24
+ // Check for ion-modal children
25
+ const modals = element.querySelectorAll?.('ion-modal');
26
+ modals?.forEach(modal => this.disableFocusTrap(modal));
27
+ }
28
+ });
29
+ });
30
+ });
31
+ // Start observing
32
+ observer.observe(document.body, {
33
+ childList: true,
34
+ subtree: true
35
+ });
36
+ // Also handle existing modals
37
+ const existingModals = document.querySelectorAll('ion-modal');
38
+ existingModals.forEach(modal => this.disableFocusTrap(modal));
39
+ }
40
+ disableFocusTrap(modal) {
41
+ // Add the CSS class
42
+ modal.classList.add('ion-disable-focus-trap');
43
+ // Set the property if it exists
44
+ const modalElement = modal;
45
+ if (modalElement.disableFocusTrap !== undefined) {
46
+ modalElement.disableFocusTrap = true;
47
+ }
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalFocusTrapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
50
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalFocusTrapService, providedIn: 'root' }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalFocusTrapService, decorators: [{
53
+ type: Injectable,
54
+ args: [{
55
+ providedIn: 'root'
56
+ }]
57
+ }], ctorParameters: () => [] });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZm9jdXMtdHJhcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1mb2N1cy10cmFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQztRQUNFLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTywwQkFBMEI7UUFDaEMsb0NBQW9DO1FBQ3BDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLHFEQUFxRDtRQUNyRCxNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUM3QixRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3dCQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFlLENBQUM7d0JBRWhDLDBDQUEwQzt3QkFDMUMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLFdBQVcsRUFBRSxDQUFDOzRCQUNuRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ2pDLENBQUM7d0JBRUQsK0JBQStCO3dCQUMvQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDdkQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUN6RCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILGtCQUFrQjtRQUNsQixRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDOUIsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILDhCQUE4QjtRQUM5QixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFjO1FBQ3JDLG9CQUFvQjtRQUNwQixLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRTlDLGdDQUFnQztRQUNoQyxNQUFNLFlBQVksR0FBRyxLQUFZLENBQUM7UUFDbEMsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQzsrR0F0RFUscUJBQXFCO21IQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsRm9jdXNUcmFwU2VydmljZSB7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmluaXRHbG9iYWxGb2N1c1RyYXBEaXNhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRHbG9iYWxGb2N1c1RyYXBEaXNhYmxlKCkge1xyXG4gICAgLy8gV2FpdCBmb3IgdGhlIHBsYXRmb3JtIHRvIGJlIHJlYWR5XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldHVwTW9kYWxPYnNlcnZlcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwTW9kYWxPYnNlcnZlcigpIHtcclxuICAgIC8vIENyZWF0ZSBhIG11dGF0aW9uIG9ic2VydmVyIHRvIHdhdGNoIGZvciBuZXcgbW9kYWxzXHJcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcclxuICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XHJcbiAgICAgICAgbXV0YXRpb24uYWRkZWROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IG5vZGUgYXMgRWxlbWVudDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBhZGRlZCBub2RlIGlzIGFuIGlvbi1tb2RhbFxyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC50YWdOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAnaW9uLW1vZGFsJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUZvY3VzVHJhcChlbGVtZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGlvbi1tb2RhbCBjaGlsZHJlblxyXG4gICAgICAgICAgICBjb25zdCBtb2RhbHMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw/LignaW9uLW1vZGFsJyk7XHJcbiAgICAgICAgICAgIG1vZGFscz8uZm9yRWFjaChtb2RhbCA9PiB0aGlzLmRpc2FibGVGb2N1c1RyYXAobW9kYWwpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBTdGFydCBvYnNlcnZpbmdcclxuICAgIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge1xyXG4gICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEFsc28gaGFuZGxlIGV4aXN0aW5nIG1vZGFsc1xyXG4gICAgY29uc3QgZXhpc3RpbmdNb2RhbHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpb24tbW9kYWwnKTtcclxuICAgIGV4aXN0aW5nTW9kYWxzLmZvckVhY2gobW9kYWwgPT4gdGhpcy5kaXNhYmxlRm9jdXNUcmFwKG1vZGFsKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc2FibGVGb2N1c1RyYXAobW9kYWw6IEVsZW1lbnQpIHtcclxuICAgIC8vIEFkZCB0aGUgQ1NTIGNsYXNzXHJcbiAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdpb24tZGlzYWJsZS1mb2N1cy10cmFwJyk7XHJcbiAgICBcclxuICAgIC8vIFNldCB0aGUgcHJvcGVydHkgaWYgaXQgZXhpc3RzXHJcbiAgICBjb25zdCBtb2RhbEVsZW1lbnQgPSBtb2RhbCBhcyBhbnk7XHJcbiAgICBpZiAobW9kYWxFbGVtZW50LmRpc2FibGVGb2N1c1RyYXAgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBtb2RhbEVsZW1lbnQuZGlzYWJsZUZvY3VzVHJhcCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19