@skyux/core 9.0.0-alpha.0 → 9.0.0-alpha.10
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.
- package/documentation.json +7981 -3515
- package/esm2022/index.mjs +47 -71
- package/esm2022/lib/modules/adapter-service/adapter.module.mjs +4 -4
- package/esm2022/lib/modules/adapter-service/adapter.service.mjs +3 -3
- package/esm2022/lib/modules/affix/affix.directive.mjs +3 -3
- package/esm2022/lib/modules/affix/affix.module.mjs +4 -4
- package/esm2022/lib/modules/affix/affix.service.mjs +3 -3
- package/esm2022/lib/modules/dock/dock-dom-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/dock/dock.component.mjs +17 -24
- package/esm2022/lib/modules/dock/dock.module.mjs +9 -13
- package/esm2022/lib/modules/dock/dock.service.mjs +5 -8
- package/esm2022/lib/modules/dynamic-component/dynamic-component-options.mjs +1 -1
- package/esm2022/lib/modules/dynamic-component/dynamic-component.module.mjs +4 -4
- package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +27 -22
- package/esm2022/lib/modules/format/app-format.mjs +3 -3
- package/esm2022/lib/modules/id/id.directive.mjs +3 -3
- package/esm2022/lib/modules/id/id.module.mjs +4 -4
- package/esm2022/lib/modules/id/id.service.mjs +3 -3
- package/esm2022/lib/modules/layout-host/layout-host.service.mjs +3 -3
- package/esm2022/lib/modules/live-announcer/live-announcer.service.mjs +7 -5
- package/esm2022/lib/modules/log/log.module.mjs +4 -4
- package/esm2022/lib/modules/log/log.service.mjs +3 -3
- package/esm2022/lib/modules/media-query/media-query.module.mjs +4 -4
- package/esm2022/lib/modules/media-query/media-query.service.mjs +3 -3
- package/esm2022/lib/modules/mutation/mutation-observer-service.mjs +3 -3
- package/esm2022/lib/modules/numeric/numeric.module.mjs +6 -7
- package/esm2022/lib/modules/numeric/numeric.pipe.mjs +3 -3
- package/esm2022/lib/modules/numeric/numeric.service.mjs +5 -5
- package/esm2022/lib/modules/overlay/overlay-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/overlay/overlay-config.mjs +1 -1
- package/esm2022/lib/modules/overlay/overlay.component.mjs +40 -41
- package/esm2022/lib/modules/overlay/overlay.module.mjs +9 -11
- package/esm2022/lib/modules/overlay/overlay.service.mjs +36 -28
- package/esm2022/lib/modules/percent-pipe/percent-pipe.module.mjs +4 -4
- package/esm2022/lib/modules/percent-pipe/percent.pipe.mjs +3 -3
- package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +39 -18
- package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +5 -5
- package/esm2022/lib/modules/scrollable-host/scrollable-host.service.mjs +3 -3
- package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +8 -6
- package/esm2022/lib/modules/title/title.service.mjs +3 -3
- package/esm2022/lib/modules/trim/trim.directive.mjs +3 -3
- package/esm2022/lib/modules/trim/trim.module.mjs +4 -4
- package/esm2022/lib/modules/ui-config/ui-config.service.mjs +3 -3
- package/esm2022/lib/modules/viewkeeper/viewkeeper-host-options.mjs +3 -3
- package/esm2022/lib/modules/viewkeeper/viewkeeper.directive.mjs +3 -3
- package/esm2022/lib/modules/viewkeeper/viewkeeper.module.mjs +4 -4
- package/esm2022/lib/modules/viewkeeper/viewkeeper.service.mjs +3 -3
- package/esm2022/lib/modules/window/window-ref.mjs +3 -3
- package/esm2022/testing/core-testing.module.mjs +4 -4
- package/esm2022/testing/mock-media-query.service.mjs +3 -3
- package/esm2022/testing/mock-ui-config.service.mjs +3 -3
- package/esm2022/testing/public-api.mjs +7 -8
- package/esm2022/testing/resize-observer-mock.mjs +35 -0
- package/fesm2022/skyux-core-testing.mjs +46 -11
- package/fesm2022/skyux-core-testing.mjs.map +1 -1
- package/fesm2022/skyux-core.mjs +479 -455
- package/fesm2022/skyux-core.mjs.map +1 -1
- package/index.d.ts +70 -70
- package/lib/modules/dock/dock.component.d.ts +2 -4
- package/lib/modules/dock/dock.module.d.ts +4 -3
- package/lib/modules/dynamic-component/dynamic-component-options.d.ts +3 -3
- package/lib/modules/dynamic-component/dynamic-component.service.d.ts +11 -2
- package/lib/modules/numeric/numeric.module.d.ts +2 -3
- package/lib/modules/overlay/overlay-config.d.ts +5 -0
- package/lib/modules/overlay/overlay.component.d.ts +4 -8
- package/lib/modules/overlay/overlay.module.d.ts +4 -3
- package/lib/modules/overlay/overlay.service.d.ts +13 -4
- package/lib/modules/resize-observer/resize-observer-media-query.service.d.ts +4 -2
- package/package.json +8 -8
- package/testing/public-api.d.ts +8 -7
- package/testing/resize-observer-mock.d.ts +6 -0
@@ -1,14 +1,14 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EnvironmentInjector, HostBinding, ViewChild, ViewContainerRef, createEnvironmentInjector, inject, } from '@angular/core';
|
3
|
+
import { NavigationStart, Router } from '@angular/router';
|
3
4
|
import { BehaviorSubject, ReplaySubject, Subject, fromEvent, } from 'rxjs';
|
4
5
|
import { takeUntil } from 'rxjs/operators';
|
6
|
+
import { SkyCoreAdapterService } from '../adapter-service/adapter.service';
|
7
|
+
import { SkyIdService } from '../id/id.service';
|
5
8
|
import { SKY_STACKING_CONTEXT } from '../stacking-context/stacking-context-token';
|
9
|
+
import { SkyOverlayContext } from './overlay-context';
|
6
10
|
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "
|
8
|
-
import * as i2 from "./overlay-context";
|
9
|
-
import * as i3 from "../id/id.service";
|
10
|
-
import * as i4 from "@angular/router";
|
11
|
-
import * as i5 from "@angular/common";
|
11
|
+
import * as i1 from "@angular/common";
|
12
12
|
const POSITION_DEFAULT = 'fixed';
|
13
13
|
/**
|
14
14
|
* Omnibar is 1000.
|
@@ -36,16 +36,17 @@ export class SkyOverlayComponent {
|
|
36
36
|
}
|
37
37
|
#backdropClick;
|
38
38
|
#backdropClickObs;
|
39
|
-
#changeDetector;
|
40
39
|
#closed;
|
41
40
|
#closedObs;
|
41
|
+
#ngUnsubscribe;
|
42
|
+
#routerSubscription;
|
43
|
+
#changeDetector;
|
42
44
|
#context;
|
43
45
|
#coreAdapter;
|
44
|
-
#
|
45
|
-
#
|
46
|
+
#environmentInjector;
|
47
|
+
#idSvc;
|
46
48
|
#router;
|
47
|
-
|
48
|
-
constructor(changeDetector, injector, coreAdapter, context, idSvc, router) {
|
49
|
+
constructor() {
|
49
50
|
this.wrapperClass = '';
|
50
51
|
this.enablePointerEvents = false;
|
51
52
|
this.showBackdrop = false;
|
@@ -53,12 +54,13 @@ export class SkyOverlayComponent {
|
|
53
54
|
this.clipPath$ = new ReplaySubject(1);
|
54
55
|
this.position = POSITION_DEFAULT;
|
55
56
|
this.#ngUnsubscribe = new Subject();
|
56
|
-
this.#changeDetector =
|
57
|
-
this.#
|
58
|
-
this.#coreAdapter =
|
59
|
-
this.#
|
60
|
-
this.#
|
61
|
-
this
|
57
|
+
this.#changeDetector = inject(ChangeDetectorRef);
|
58
|
+
this.#context = inject(SkyOverlayContext);
|
59
|
+
this.#coreAdapter = inject(SkyCoreAdapterService);
|
60
|
+
this.#environmentInjector = inject(EnvironmentInjector);
|
61
|
+
this.#idSvc = inject(SkyIdService);
|
62
|
+
this.#router = inject(Router, { optional: true });
|
63
|
+
this.id = this.#idSvc.generateId();
|
62
64
|
this.#backdropClick = new Subject();
|
63
65
|
this.#closed = new Subject();
|
64
66
|
this.#backdropClickObs = this.#backdropClick.asObservable();
|
@@ -87,22 +89,19 @@ export class SkyOverlayComponent {
|
|
87
89
|
throw new Error('[SkyOverlayComponent] Could not attach the component because the target element could not be found.');
|
88
90
|
}
|
89
91
|
this.targetRef.clear();
|
90
|
-
const
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
.pipe(takeUntil(this.#ngUnsubscribe)),
|
98
|
-
},
|
92
|
+
const environmentInjector = createEnvironmentInjector([
|
93
|
+
{
|
94
|
+
provide: SKY_STACKING_CONTEXT,
|
95
|
+
useValue: {
|
96
|
+
zIndex: new BehaviorSubject(parseInt(this.zIndex, 10))
|
97
|
+
.asObservable()
|
98
|
+
.pipe(takeUntil(this.#ngUnsubscribe)),
|
99
99
|
},
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
});
|
100
|
+
},
|
101
|
+
...providers,
|
102
|
+
], this.#environmentInjector);
|
104
103
|
const componentRef = this.targetRef.createComponent(component, {
|
105
|
-
|
104
|
+
environmentInjector,
|
106
105
|
});
|
107
106
|
// Run an initial change detection cycle after the component has been created.
|
108
107
|
componentRef.changeDetectorRef.detectChanges();
|
@@ -114,7 +113,9 @@ export class SkyOverlayComponent {
|
|
114
113
|
throw new Error('[SkyOverlayComponent] Could not attach the template because the target element could not be found.');
|
115
114
|
}
|
116
115
|
this.targetRef.clear();
|
117
|
-
return this.targetRef.createEmbeddedView(templateRef, context
|
116
|
+
return this.targetRef.createEmbeddedView(templateRef, context, {
|
117
|
+
injector: this.#environmentInjector,
|
118
|
+
});
|
118
119
|
}
|
119
120
|
updateClipPath(clipPath) {
|
120
121
|
this.clipPath$.next(clipPath);
|
@@ -160,15 +161,13 @@ export class SkyOverlayComponent {
|
|
160
161
|
this.#routerSubscription = undefined;
|
161
162
|
}
|
162
163
|
}
|
163
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1
|
164
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
165
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SkyOverlayComponent, isStandalone: true, selector: "sky-overlay", host: { properties: { "id": "this.id" } }, viewQueries: [{ propertyName: "overlayContentRef", first: true, predicate: ["overlayContentRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "overlayRef", first: true, predicate: ["overlayRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "targetRef", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div\n [class]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);inset:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
165
166
|
}
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayComponent, decorators: [{
|
167
168
|
type: Component,
|
168
|
-
args: [{ selector: 'sky-overlay', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);inset:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"] }]
|
169
|
-
}], ctorParameters: function () { return [
|
170
|
-
type: Optional
|
171
|
-
}] }]; }, propDecorators: { id: [{
|
169
|
+
args: [{ standalone: true, selector: 'sky-overlay', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "<div\n [class]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);inset:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"] }]
|
170
|
+
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
172
171
|
type: HostBinding,
|
173
172
|
args: ['id']
|
174
173
|
}], overlayContentRef: [{
|
@@ -190,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
190
189
|
static: true,
|
191
190
|
}]
|
192
191
|
}] } });
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUVWLFdBQVcsRUFDWCxRQUFRLEVBR1IsUUFBUSxFQUlSLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFDTCxlQUFlLEVBRWYsYUFBYSxFQUNiLE9BQU8sRUFFUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFNbEYsTUFBTSxnQkFBZ0IsR0FBdUIsT0FBTyxDQUFDO0FBRXJEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztBQUV4Qjs7R0FFRztBQU9ILE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQWlDRCxjQUFjLENBQWdCO0lBRTlCLGlCQUFpQixDQUFtQjtJQUVwQyxlQUFlLENBQW9CO0lBRW5DLE9B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QUUsQ0FBQztpQkFDckI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztTQUN0QztJQUNILENBQUM7OEdBMU5VLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlNQXlCdEIsVUFBVSxpSEFNVixVQUFVLDRHQU1WLGdCQUFnQiwyQ0NyRzFCLHNkQWVBOzsyRkRpRGEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs7MEJBd0U1QyxRQUFROzRDQXhESixFQUFFO3NCQURSLFdBQVc7dUJBQUMsSUFBSTtnQkFlVixpQkFBaUI7c0JBSnZCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUU7d0JBQzlCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSxVQUFVO3NCQUpoQixTQUFTO3VCQUFDLFlBQVksRUFBRTt3QkFDdkIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9NLFNBQVM7c0JBSmYsU0FBUzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU3RhdGljUHJvdmlkZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFJlcGxheVN1YmplY3QsXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgZnJvbUV2ZW50LFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYWRhcHRlci1zZXJ2aWNlL2FkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lJZFNlcnZpY2UgfSBmcm9tICcuLi9pZC9pZC5zZXJ2aWNlJztcbmltcG9ydCB7IFNLWV9TVEFDS0lOR19DT05URVhUIH0gZnJvbSAnLi4vc3RhY2tpbmctY29udGV4dC9zdGFja2luZy1jb250ZXh0LXRva2VuJztcblxuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbmZpZyB9IGZyb20gJy4vb3ZlcmxheS1jb25maWcnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbnRleHQgfSBmcm9tICcuL292ZXJsYXktY29udGV4dCc7XG5pbXBvcnQgeyBTa3lPdmVybGF5UG9zaXRpb24gfSBmcm9tICcuL292ZXJsYXktcG9zaXRpb24nO1xuXG5jb25zdCBQT1NJVElPTl9ERUZBVUxUOiBTa3lPdmVybGF5UG9zaXRpb24gPSAnZml4ZWQnO1xuXG4vKipcbiAqIE9tbmliYXIgaXMgMTAwMC5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2JsYWNrYmF1ZC9hdXRoLWNsaWVudC9ibG9iL21hc3Rlci9zcmMvb21uaWJhci9vbW5pYmFyLnRzI0wxMzlcbiAqIC0tLVxuICogTW9kYWxzIHN0YXJ0IHRoZWlyIHotaW5kZXhlcyBhdCAxMDQwLiBIb3dldmVyLCBlYWNoIG1vZGFsJ3Mgei1pbmRleCBpcyBhIG11bHRpcGxlIG9mIDEwLCBzbyBpdFxuICogd2lsbCBiZSBkaWZmaWN1bHQgdG8gcmVsaWFibHkgcHJlZGljdCBhIHotaW5kZXggdGhhdCB3aWxsIGFsd2F5cyBhcHBlYXIgYWJvdmUgYWxsIG90aGVyXG4gKiBsYXllcnMuIFN0YXJ0aW5nIHRoZSB6LWluZGV4IGZvciBvdmVybGF5cyBhdCBhIG51bWJlciBtdWNoIGdyZWF0ZXIgdGhhbiBtb2RhbHMgd2lsbCBhY2NvbW1vZGF0ZVxuICogdGhlIG1vc3QgcmVhc29uYWJsZSBvZiBzY2VuYXJpb3MuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGFja2JhdWQvc2t5dXgtbW9kYWxzL2Jsb2IvbWFzdGVyL3NyYy9hcHAvcHVibGljL21vZHVsZXMvbW9kYWwvbW9kYWwtaG9zdC5zZXJ2aWNlLnRzI0wyMlxuICogKE5PVEU6IEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IG1vZGFscyBkbyBub3QgdXNlIHRoZSBvdmVybGF5IHNlcnZpY2UsIHdoaWNoIGlzIHNvbWV0aGluZyB3ZVxuICogc2hvdWxkIGRvIGluIHRoZSBuZWFyIGZ1dHVyZSB0byBtYWtlIHN1cmUgei1pbmRleGVzIGFyZSBwcmVkaWN0YWJsZSBhY3Jvc3MgYWxsIGNvbXBvbmVudFxuICogbGlicmFyaWVzLilcbiAqL1xubGV0IHVuaXF1ZVpJbmRleCA9IDUwMDA7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1vdmVybGF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL292ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vdmVybGF5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgd3JhcHBlckNsYXNzID0gJyc7XG5cbiAgcHVibGljIGdldCBiYWNrZHJvcENsaWNrKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLiNiYWNrZHJvcENsaWNrT2JzO1xuICB9XG5cbiAgcHVibGljIGdldCBjbG9zZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI2Nsb3NlZE9icztcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVQb2ludGVyRXZlbnRzID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdpZCcpXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBzaG93QmFja2Ryb3AgPSBmYWxzZTtcblxuICBwdWJsaWMgekluZGV4ID0gYCR7Kyt1bmlxdWVaSW5kZXh9YDtcblxuICBwcm90ZWN0ZWQgY2xpcFBhdGgkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPigxKTtcblxuICBwcm90ZWN0ZWQgcG9zaXRpb24gPSBQT1NJVElPTl9ERUZBVUxUO1xuXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250ZW50UmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgb3ZlcmxheUNvbnRlbnRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnb3ZlcmxheVJlZicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIG92ZXJsYXlSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndGFyZ2V0Jywge1xuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgdGFyZ2V0UmVmOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xuXG4gICNiYWNrZHJvcENsaWNrOiBTdWJqZWN0PHZvaWQ+O1xuXG4gICNiYWNrZHJvcENsaWNrT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgI2Nsb3NlZDogU3ViamVjdDx2b2lkPjtcblxuICAjY2xvc2VkT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNjb250ZXh0OiBTa3lPdmVybGF5Q29udGV4dDtcblxuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICAjaW5qZWN0b3I6IEluamVjdG9yO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcm91dGVyOiBSb3V0ZXIgfCB1bmRlZmluZWQ7XG5cbiAgI3JvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBjb250ZXh0OiBTa3lPdmVybGF5Q29udGV4dCxcbiAgICBpZFN2YzogU2t5SWRTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHJvdXRlcj86IFJvdXRlclxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2luamVjdG9yID0gaW5qZWN0b3I7XG4gICAgdGhpcy4jY29yZUFkYXB0ZXIgPSBjb3JlQWRhcHRlcjtcbiAgICB0aGlzLiNjb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLiNyb3V0ZXIgPSByb3V0ZXI7XG5cbiAgICB0aGlzLmlkID0gaWRTdmMuZ2VuZXJhdGVJZCgpO1xuXG4gICAgdGhpcy4jYmFja2Ryb3BDbGljayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy4jY2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHRoaXMuI2JhY2tkcm9wQ2xpY2tPYnMgPSB0aGlzLiNiYWNrZHJvcENsaWNrLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2Nsb3NlZE9icyA9IHRoaXMuI2Nsb3NlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNhcHBseUNvbmZpZyh0aGlzLiNjb250ZXh0LmNvbmZpZyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI2FkZEJhY2tkcm9wQ2xpY2tMaXN0ZW5lcigpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuI2NvbnRleHQuY29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uKSB7XG4gICAgICB0aGlzLiNhZGRSb3V0ZUxpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbW92ZVJvdXRlTGlzdGVuZXIoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNiYWNrZHJvcENsaWNrLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNjbG9zZWQubmV4dCgpO1xuICAgIHRoaXMuI2Nsb3NlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaENvbXBvbmVudDxDPihcbiAgICBjb21wb25lbnQ6IFR5cGU8Qz4sXG4gICAgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW11cbiAgKTogQ29tcG9uZW50UmVmPEM+IHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBpZjogdW50ZXN0YWJsZSovXG4gICAgaWYgKCF0aGlzLnRhcmdldFJlZikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnW1NreU92ZXJsYXlDb21wb25lbnRdIENvdWxkIG5vdCBhdHRhY2ggdGhlIGNvbXBvbmVudCBiZWNhdXNlIHRoZSB0YXJnZXQgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnRhcmdldFJlZi5jbGVhcigpO1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgekluZGV4OiBuZXcgQmVoYXZpb3JTdWJqZWN0KHBhcnNlSW50KHRoaXMuekluZGV4LCAxMCkpXG4gICAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgIF0sXG4gICAgICBwYXJlbnQ6IHRoaXMuI2luamVjdG9yLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy50YXJnZXRSZWYuY3JlYXRlQ29tcG9uZW50PEM+KGNvbXBvbmVudCwge1xuICAgICAgaW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICAvLyBSdW4gYW4gaW5pdGlhbCBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIGFmdGVyIHRoZSBjb21wb25lbnQgaGFzIGJlZW4gY3JlYXRlZC5cbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZTxUPihcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8VD4sXG4gICAgY29udGV4dDogVFxuICApOiBFbWJlZGRlZFZpZXdSZWY8VD4ge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGlmOiB1bnRlc3RhYmxlKi9cbiAgICBpZiAoIXRoaXMudGFyZ2V0UmVmKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdbU2t5T3ZlcmxheUNvbXBvbmVudF0gQ291bGQgbm90IGF0dGFjaCB0aGUgdGVtcGxhdGUgYmVjYXVzZSB0aGUgdGFyZ2V0IGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy50YXJnZXRSZWYuY2xlYXIoKTtcblxuICAgIHJldHVybiB0aGlzLnRhcmdldFJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYsIGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNsaXBQYXRoKGNsaXBQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLmNsaXBQYXRoJC5uZXh0KGNsaXBQYXRoKTtcbiAgfVxuXG4gICNhcHBseUNvbmZpZyhjb25maWc6IFNreU92ZXJsYXlDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBwZXJDbGFzcyA9IGNvbmZpZy53cmFwcGVyQ2xhc3MgfHwgJyc7XG4gICAgdGhpcy5zaG93QmFja2Ryb3AgPSAhIWNvbmZpZy5zaG93QmFja2Ryb3A7XG4gICAgdGhpcy5lbmFibGVQb2ludGVyRXZlbnRzID0gISFjb25maWcuZW5hYmxlUG9pbnRlckV2ZW50cztcbiAgICB0aGlzLnBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uIHx8IFBPU0lUSU9OX0RFRkFVTFQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAjYWRkQmFja2Ryb3BDbGlja0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3cuZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmIHRoaXMub3ZlcmxheUNvbnRlbnRSZWYgJiYgdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgY29uc3QgaXNDaGlsZCA9IHRoaXMub3ZlcmxheUNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBpc0Fib3ZlID0gdGhpcy4jY29yZUFkYXB0ZXIuaXNUYXJnZXRBYm92ZUVsZW1lbnQoXG4gICAgICAgICAgICBldmVudC50YXJnZXQsXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICghaXNDaGlsZCAmJiAhaXNBYm92ZSkge1xuICAgICAgICAgICAgdGhpcy4jYmFja2Ryb3BDbGljay5uZXh0KCk7XG4gICAgICAgICAgICBpZiAodGhpcy4jY29udGV4dC5jb25maWcuZW5hYmxlQ2xvc2UpIHtcbiAgICAgICAgICAgICAgdGhpcy4jY2xvc2VkLm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI2FkZFJvdXRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3JvdXRlcikge1xuICAgICAgdGhpcy4jcm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy4jcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgIHRoaXMuI2Nsb3NlZC5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNyZW1vdmVSb3V0ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNyb3V0ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuI3JvdXRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy4jcm91dGVyU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwiJ3NreS1vdmVybGF5LXBvc2l0aW9uLScgKyBwb3NpdGlvbiArICcgJyArIHdyYXBwZXJDbGFzc1wiXG4gIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiXG4gIFtzdHlsZS5jbGlwLXBhdGhdPVwiY2xpcFBhdGgkIHwgYXN5bmNcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ2VuYWJsZS1wb2ludGVyLWV2ZW50cy1wYXNzLXRocm91Z2gnOiBlbmFibGVQb2ludGVyRXZlbnRzLFxuICAgICdza3ktb3ZlcmxheSc6IHRydWVcbiAgfVwiXG4gICNvdmVybGF5UmVmXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktb3ZlcmxheS1jb250ZW50XCIgI292ZXJsYXlDb250ZW50UmVmPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGFyZ2V0PiA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dCYWNrZHJvcFwiIGNsYXNzPVwic2t5LW92ZXJsYXktYmFja2Ryb3BcIj48L2Rpdj5cbjwvZGl2PlxuIl19
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9vdmVybGF5L292ZXJsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBRVYsbUJBQW1CLEVBQ25CLFdBQVcsRUFNWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6QixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQ0wsZUFBZSxFQUVmLGFBQWEsRUFDYixPQUFPLEVBRVAsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUdsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBR3RELE1BQU0sZ0JBQWdCLEdBQXVCLE9BQU8sQ0FBQztBQUVyRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUM7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Uzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgSG9zdEJpbmRpbmcsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTdGF0aWNQcm92aWRlcixcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIGZyb21FdmVudCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUNvcmVBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5SWRTZXJ2aWNlIH0gZnJvbSAnLi4vaWQvaWQuc2VydmljZSc7XG5pbXBvcnQgeyBTS1lfU1RBQ0tJTkdfQ09OVEVYVCB9IGZyb20gJy4uL3N0YWNraW5nLWNvbnRleHQvc3RhY2tpbmctY29udGV4dC10b2tlbic7XG5cbmltcG9ydCB7IFNreU92ZXJsYXlDb25maWcgfSBmcm9tICcuL292ZXJsYXktY29uZmlnJztcbmltcG9ydCB7IFNreU92ZXJsYXlDb250ZXh0IH0gZnJvbSAnLi9vdmVybGF5LWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheVBvc2l0aW9uIH0gZnJvbSAnLi9vdmVybGF5LXBvc2l0aW9uJztcblxuY29uc3QgUE9TSVRJT05fREVGQVVMVDogU2t5T3ZlcmxheVBvc2l0aW9uID0gJ2ZpeGVkJztcblxuLyoqXG4gKiBPbW5pYmFyIGlzIDEwMDAuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGFja2JhdWQvYXV0aC1jbGllbnQvYmxvYi9tYXN0ZXIvc3JjL29tbmliYXIvb21uaWJhci50cyNMMTM5XG4gKiAtLS1cbiAqIE1vZGFscyBzdGFydCB0aGVpciB6LWluZGV4ZXMgYXQgMTA0MC4gSG93ZXZlciwgZWFjaCBtb2RhbCdzIHotaW5kZXggaXMgYSBtdWx0aXBsZSBvZiAxMCwgc28gaXRcbiAqIHdpbGwgYmUgZGlmZmljdWx0IHRvIHJlbGlhYmx5IHByZWRpY3QgYSB6LWluZGV4IHRoYXQgd2lsbCBhbHdheXMgYXBwZWFyIGFib3ZlIGFsbCBvdGhlclxuICogbGF5ZXJzLiBTdGFydGluZyB0aGUgei1pbmRleCBmb3Igb3ZlcmxheXMgYXQgYSBudW1iZXIgbXVjaCBncmVhdGVyIHRoYW4gbW9kYWxzIHdpbGwgYWNjb21tb2RhdGVcbiAqIHRoZSBtb3N0IHJlYXNvbmFibGUgb2Ygc2NlbmFyaW9zLlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYmxhY2tiYXVkL3NreXV4LW1vZGFscy9ibG9iL21hc3Rlci9zcmMvYXBwL3B1YmxpYy9tb2R1bGVzL21vZGFsL21vZGFsLWhvc3Quc2VydmljZS50cyNMMjJcbiAqIChOT1RFOiBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBtb2RhbHMgZG8gbm90IHVzZSB0aGUgb3ZlcmxheSBzZXJ2aWNlLCB3aGljaCBpcyBzb21ldGhpbmcgd2VcbiAqIHNob3VsZCBkbyBpbiB0aGUgbmVhciBmdXR1cmUgdG8gbWFrZSBzdXJlIHotaW5kZXhlcyBhcmUgcHJlZGljdGFibGUgYWNyb3NzIGFsbCBjb21wb25lbnRcbiAqIGxpYnJhcmllcy4pXG4gKi9cbmxldCB1bmlxdWVaSW5kZXggPSA1MDAwO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreU92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyB3cmFwcGVyQ2xhc3MgPSAnJztcblxuICBwdWJsaWMgZ2V0IGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI2JhY2tkcm9wQ2xpY2tPYnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jY2xvc2VkT2JzO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZVBvaW50ZXJFdmVudHMgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2lkJylcbiAgcHVibGljIGlkOiBzdHJpbmc7XG5cbiAgcHVibGljIHNob3dCYWNrZHJvcCA9IGZhbHNlO1xuXG4gIHB1YmxpYyB6SW5kZXggPSBgJHsrK3VuaXF1ZVpJbmRleH1gO1xuXG4gIHByb3RlY3RlZCBjbGlwUGF0aCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KDEpO1xuXG4gIHByb3RlY3RlZCBwb3NpdGlvbiA9IFBPU0lUSU9OX0RFRkFVTFQ7XG5cbiAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRlbnRSZWYnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBvdmVybGF5Q29udGVudFJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdvdmVybGF5UmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgb3ZlcmxheVJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCd0YXJnZXQnLCB7XG4gICAgcmVhZDogVmlld0NvbnRhaW5lclJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyB0YXJnZXRSZWY6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ7XG5cbiAgI2JhY2tkcm9wQ2xpY2s6IFN1YmplY3Q8dm9pZD47XG5cbiAgI2JhY2tkcm9wQ2xpY2tPYnM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgI2Nsb3NlZDogU3ViamVjdDx2b2lkPjtcblxuICAjY2xvc2VkT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcm91dGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2NvbnRleHQgPSBpbmplY3QoU2t5T3ZlcmxheUNvbnRleHQpO1xuICByZWFkb25seSAjY29yZUFkYXB0ZXIgPSBpbmplY3QoU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG4gIHJlYWRvbmx5ICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICByZWFkb25seSAjcm91dGVyID0gaW5qZWN0KFJvdXRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuXG4gICAgdGhpcy4jYmFja2Ryb3BDbGljayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy4jY2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHRoaXMuI2JhY2tkcm9wQ2xpY2tPYnMgPSB0aGlzLiNiYWNrZHJvcENsaWNrLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2Nsb3NlZE9icyA9IHRoaXMuI2Nsb3NlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNhcHBseUNvbmZpZyh0aGlzLiNjb250ZXh0LmNvbmZpZyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI2FkZEJhY2tkcm9wQ2xpY2tMaXN0ZW5lcigpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuI2NvbnRleHQuY29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uKSB7XG4gICAgICB0aGlzLiNhZGRSb3V0ZUxpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbW92ZVJvdXRlTGlzdGVuZXIoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNiYWNrZHJvcENsaWNrLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNjbG9zZWQubmV4dCgpO1xuICAgIHRoaXMuI2Nsb3NlZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaENvbXBvbmVudDxDPihcbiAgICBjb21wb25lbnQ6IFR5cGU8Qz4sXG4gICAgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW11cbiAgKTogQ29tcG9uZW50UmVmPEM+IHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBpZjogdW50ZXN0YWJsZSovXG4gICAgaWYgKCF0aGlzLnRhcmdldFJlZikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnW1NreU92ZXJsYXlDb21wb25lbnRdIENvdWxkIG5vdCBhdHRhY2ggdGhlIGNvbXBvbmVudCBiZWNhdXNlIHRoZSB0YXJnZXQgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnRhcmdldFJlZi5jbGVhcigpO1xuXG4gICAgY29uc3QgZW52aXJvbm1lbnRJbmplY3RvciA9IGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IoXG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgekluZGV4OiBuZXcgQmVoYXZpb3JTdWJqZWN0KHBhcnNlSW50KHRoaXMuekluZGV4LCAxMCkpXG4gICAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgIF0sXG4gICAgICB0aGlzLiNlbnZpcm9ubWVudEluamVjdG9yXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudGFyZ2V0UmVmLmNyZWF0ZUNvbXBvbmVudDxDPihjb21wb25lbnQsIHtcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICAvLyBSdW4gYW4gaW5pdGlhbCBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIGFmdGVyIHRoZSBjb21wb25lbnQgaGFzIGJlZW4gY3JlYXRlZC5cbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZTxUPihcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8VD4sXG4gICAgY29udGV4dDogVFxuICApOiBFbWJlZGRlZFZpZXdSZWY8VD4ge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGlmOiB1bnRlc3RhYmxlKi9cbiAgICBpZiAoIXRoaXMudGFyZ2V0UmVmKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdbU2t5T3ZlcmxheUNvbXBvbmVudF0gQ291bGQgbm90IGF0dGFjaCB0aGUgdGVtcGxhdGUgYmVjYXVzZSB0aGUgdGFyZ2V0IGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy50YXJnZXRSZWYuY2xlYXIoKTtcblxuICAgIHJldHVybiB0aGlzLnRhcmdldFJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYsIGNvbnRleHQsIHtcbiAgICAgIGluamVjdG9yOiB0aGlzLiNlbnZpcm9ubWVudEluamVjdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNsaXBQYXRoKGNsaXBQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLmNsaXBQYXRoJC5uZXh0KGNsaXBQYXRoKTtcbiAgfVxuXG4gICNhcHBseUNvbmZpZyhjb25maWc6IFNreU92ZXJsYXlDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBwZXJDbGFzcyA9IGNvbmZpZy53cmFwcGVyQ2xhc3MgfHwgJyc7XG4gICAgdGhpcy5zaG93QmFja2Ryb3AgPSAhIWNvbmZpZy5zaG93QmFja2Ryb3A7XG4gICAgdGhpcy5lbmFibGVQb2ludGVyRXZlbnRzID0gISFjb25maWcuZW5hYmxlUG9pbnRlckV2ZW50cztcbiAgICB0aGlzLnBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uIHx8IFBPU0lUSU9OX0RFRkFVTFQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAjYWRkQmFja2Ryb3BDbGlja0xpc3RlbmVyKCk6IHZvaWQge1xuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3cuZG9jdW1lbnQsICdjbGljaycpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmIHRoaXMub3ZlcmxheUNvbnRlbnRSZWYgJiYgdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgY29uc3QgaXNDaGlsZCA9IHRoaXMub3ZlcmxheUNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBpc0Fib3ZlID0gdGhpcy4jY29yZUFkYXB0ZXIuaXNUYXJnZXRBYm92ZUVsZW1lbnQoXG4gICAgICAgICAgICBldmVudC50YXJnZXQsXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICghaXNDaGlsZCAmJiAhaXNBYm92ZSkge1xuICAgICAgICAgICAgdGhpcy4jYmFja2Ryb3BDbGljay5uZXh0KCk7XG4gICAgICAgICAgICBpZiAodGhpcy4jY29udGV4dC5jb25maWcuZW5hYmxlQ2xvc2UpIHtcbiAgICAgICAgICAgICAgdGhpcy4jY2xvc2VkLm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI2FkZFJvdXRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3JvdXRlcikge1xuICAgICAgdGhpcy4jcm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy4jcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgIHRoaXMuI2Nsb3NlZC5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNyZW1vdmVSb3V0ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNyb3V0ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuI3JvdXRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy4jcm91dGVyU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbY2xhc3NdPVwiJ3NreS1vdmVybGF5LXBvc2l0aW9uLScgKyBwb3NpdGlvbiArICcgJyArIHdyYXBwZXJDbGFzc1wiXG4gIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiXG4gIFtzdHlsZS5jbGlwLXBhdGhdPVwiY2xpcFBhdGgkIHwgYXN5bmNcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ2VuYWJsZS1wb2ludGVyLWV2ZW50cy1wYXNzLXRocm91Z2gnOiBlbmFibGVQb2ludGVyRXZlbnRzLFxuICAgICdza3ktb3ZlcmxheSc6IHRydWVcbiAgfVwiXG4gICNvdmVybGF5UmVmXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktb3ZlcmxheS1jb250ZW50XCIgI292ZXJsYXlDb250ZW50UmVmPlxuICAgIDxuZy10ZW1wbGF0ZSAjdGFyZ2V0PiA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dCYWNrZHJvcFwiIGNsYXNzPVwic2t5LW92ZXJsYXktYmFja2Ryb3BcIj48L2Rpdj5cbjwvZGl2PlxuIl19
|
@@ -1,17 +1,15 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
1
|
import { NgModule } from '@angular/core';
|
3
|
-
import { SkyOverlayComponent } from './overlay.component';
|
4
2
|
import * as i0 from "@angular/core";
|
3
|
+
/**
|
4
|
+
* @deprecated The `SkyOverlayModule` is no longer needed and can be removed from your application.
|
5
|
+
*/
|
5
6
|
export class SkyOverlayModule {
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule }); }
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule }); }
|
9
10
|
}
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule, decorators: [{
|
11
12
|
type: NgModule,
|
12
|
-
args: [{
|
13
|
-
imports: [CommonModule],
|
14
|
-
declarations: [SkyOverlayComponent],
|
15
|
-
}]
|
13
|
+
args: [{}]
|
16
14
|
}] });
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFFBQVE7bUJBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhlIGBTa3lPdmVybGF5TW9kdWxlYCBpcyBubyBsb25nZXIgbmVlZGVkIGFuZCBjYW4gYmUgcmVtb3ZlZCBmcm9tIHlvdXIgYXBwbGljYXRpb24uXG4gKi9cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5TW9kdWxlIHt9XG4iXX0=
|
@@ -1,25 +1,22 @@
|
|
1
|
-
import { Injectable,
|
1
|
+
import { ApplicationRef, EnvironmentInjector, Injectable, inject, } from '@angular/core';
|
2
|
+
import { SkyOverlayAdapterService } from './overlay-adapter.service';
|
2
3
|
import { SkyOverlayContext } from './overlay-context';
|
3
4
|
import { SkyOverlayInstance } from './overlay-instance';
|
4
5
|
import { SkyOverlayComponent } from './overlay.component';
|
5
6
|
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "
|
7
|
+
import * as i1 from "../dynamic-component/dynamic-component.service";
|
7
8
|
/**
|
8
9
|
* This service is used to create new overlays.
|
9
|
-
* @
|
10
|
+
* @internal
|
10
11
|
*/
|
11
12
|
export class SkyOverlayService {
|
12
13
|
static { this.overlays = []; }
|
13
|
-
#adapter;
|
14
|
-
#applicationRef;
|
15
|
-
#
|
16
|
-
#
|
17
|
-
|
18
|
-
|
19
|
-
this.#applicationRef = applicationRef;
|
20
|
-
this.#componentFactoryResolver = componentFactoryResolver;
|
21
|
-
this.#injector = injector;
|
22
|
-
this.#adapter = adapter;
|
14
|
+
#adapter = inject(SkyOverlayAdapterService);
|
15
|
+
#applicationRef = inject(ApplicationRef);
|
16
|
+
#dynamicComponentSvc;
|
17
|
+
#environmentInjector = inject(EnvironmentInjector);
|
18
|
+
constructor(dynamicComponentSvc) {
|
19
|
+
this.#dynamicComponentSvc = dynamicComponentSvc;
|
23
20
|
}
|
24
21
|
/**
|
25
22
|
* Creates an empty overlay. Use the returned `SkyOverlayInstance` to append content.
|
@@ -73,8 +70,8 @@ export class SkyOverlayService {
|
|
73
70
|
}
|
74
71
|
}
|
75
72
|
#createOverlay(config) {
|
76
|
-
|
77
|
-
|
73
|
+
return this.#dynamicComponentSvc.createComponent(SkyOverlayComponent, {
|
74
|
+
environmentInjector: this.#environmentInjector,
|
78
75
|
providers: [
|
79
76
|
{
|
80
77
|
provide: SkyOverlayContext,
|
@@ -82,14 +79,6 @@ export class SkyOverlayService {
|
|
82
79
|
},
|
83
80
|
],
|
84
81
|
});
|
85
|
-
const componentRef = this.#componentFactoryResolver
|
86
|
-
.resolveComponentFactory(SkyOverlayComponent)
|
87
|
-
.create(injector);
|
88
|
-
this.#applicationRef.attachView(componentRef.hostView);
|
89
|
-
const domElem = componentRef.hostView
|
90
|
-
.rootNodes[0];
|
91
|
-
document.body.appendChild(domElem);
|
92
|
-
return componentRef;
|
93
82
|
}
|
94
83
|
#prepareConfig(config = {}) {
|
95
84
|
const defaults = {
|
@@ -112,13 +101,32 @@ export class SkyOverlayService {
|
|
112
101
|
}
|
113
102
|
}
|
114
103
|
}
|
115
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1
|
116
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
105
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayService, providedIn: 'root' }); }
|
117
106
|
}
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayService, decorators: [{
|
119
108
|
type: Injectable,
|
120
109
|
args: [{
|
121
110
|
providedIn: 'root',
|
122
111
|
}]
|
123
|
-
}], ctorParameters: function () { return [{ type:
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCxVQUFVLEVBQ1YsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFMUQ7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGFBQVEsR0FBeUIsRUFBRSxBQUEzQixDQUE0QjtJQUVuRCxRQUFRLENBQTJCO0lBRW5DLGVBQWUsQ0FBaUI7SUFFaEMseUJBQXlCLENBQTJCO0lBRXBELFNBQVMsQ0FBVztJQUVwQix1REFBdUQ7SUFDdkQsWUFDRSxjQUE4QixFQUM5Qix3QkFBa0QsRUFDbEQsUUFBa0IsRUFDbEIsT0FBaUM7UUFFakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7UUFDdEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLHdCQUF3QixDQUFDO1FBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsTUFBeUI7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3QyxJQUFJLFFBQVEsQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFO1lBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUs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RSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBNEI7UUFDMUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDL0IsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDNUMsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLEtBQUssRUFBRTtZQUMxQyw2RUFBNkU7WUFDN0UsTUFBTSw0QkFBNEIsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNsRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FDOUIsQ0FBQztZQUNGLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ25DO1NBQ0Y7SUFDSCxDQUFDOzhHQXpJVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEluamVjdGFibGUsXG4gIEluamVjdG9yLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5T3ZlcmxheUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9vdmVybGF5LWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lPdmVybGF5Q29uZmlnIH0gZnJvbSAnLi9vdmVybGF5LWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lPdmVybGF5Q29udGV4dCB9IGZyb20gJy4vb3ZlcmxheS1jb250ZXh0JztcbmltcG9ydCB7IFNreU92ZXJsYXlJbnN0YW5jZSB9IGZyb20gJy4vb3ZlcmxheS1pbnN0YW5jZSc7XG5pbXBvcnQgeyBTa3lPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5LmNvbXBvbmVudCc7XG5cbi8qKlxuICogVGhpcyBzZXJ2aWNlIGlzIHVzZWQgdG8gY3JlYXRlIG5ldyBvdmVybGF5cy5cbiAqIEBkeW5hbWljXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5U2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIG92ZXJsYXlzOiBTa3lPdmVybGF5SW5zdGFuY2VbXSA9IFtdO1xuXG4gICNhZGFwdGVyOiBTa3lPdmVybGF5QWRhcHRlclNlcnZpY2U7XG5cbiAgI2FwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZjtcblxuICAjY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI7XG5cbiAgI2luamVjdG9yOiBJbmplY3RvcjtcblxuICAvLyBUT0RPOiBSZXBsYWNlIGRlcHJlY2F0ZWQgYENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcmAuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgYWRhcHRlcjogU2t5T3ZlcmxheUFkYXB0ZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2FwcGxpY2F0aW9uUmVmID0gYXBwbGljYXRpb25SZWY7XG4gICAgdGhpcy4jY29tcG9uZW50RmFjdG9yeVJlc29sdmVyID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyO1xuICAgIHRoaXMuI2luamVjdG9yID0gaW5qZWN0b3I7XG4gICAgdGhpcy4jYWRhcHRlciA9IGFkYXB0ZXI7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBlbXB0eSBvdmVybGF5LiBVc2UgdGhlIHJldHVybmVkIGBTa3lPdmVybGF5SW5zdGFuY2VgIHRvIGFwcGVuZCBjb250ZW50LlxuICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBvdmVybGF5LlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZShjb25maWc/OiBTa3lPdmVybGF5Q29uZmlnKTogU2t5T3ZlcmxheUluc3RhbmNlIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuI3ByZXBhcmVDb25maWcoY29uZmlnKTtcblxuICAgIGlmIChzZXR0aW5ncy5lbmFibGVTY3JvbGwgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyLnJlc3RyaWN0Qm9keVNjcm9sbCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuI2NyZWF0ZU92ZXJsYXkoc2V0dGluZ3MpO1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IFNreU92ZXJsYXlJbnN0YW5jZShzZXR0aW5ncywgY29tcG9uZW50UmVmKTtcblxuICAgIGluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gT25seSBleGVjdXRlIHRoZSBzZXJ2aWNlJ3MgY2xvc2UgbWV0aG9kIGlmIHRoZSBpbnN0YW5jZSBzdGlsbCBleGlzdHMuXG4gICAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhZGRyZXNzIGEgcmFjZSBjb25kaXRpb24gaWYgdGhlIGRlcHJlY2F0ZWQgaW5zdGFuY2UuY2xvc2UgbWV0aG9kIGlzIHVzZWQgaW5zdGVhZC5cbiAgICAgIGlmIChTa3lPdmVybGF5U2VydmljZS5vdmVybGF5cy5pbmRleE9mKGluc3RhbmNlKSA+IC0xKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoaW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMucHVzaChpbnN0YW5jZSk7XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIChhbmQgZGVzdHJveXMpIGFuIG92ZXJsYXkgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBpbnN0YW5jZSBUaGUgaW5zdGFuY2UgdG8gY2xvc2UuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoaW5zdGFuY2U6IFNreU92ZXJsYXlJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuI2Rlc3Ryb3lPdmVybGF5KGluc3RhbmNlKTtcbiAgICB0aGlzLiNhcHBsaWNhdGlvblJlZi5kZXRhY2hWaWV3KGluc3RhbmNlLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgaW5zdGFuY2UuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcblxuICAgIC8vIEluIHNvbWUgY2FzZXMsIEFuZ3VsYXIga2VlcHMgZHluYW1pY2FsbHktZ2VuZXJhdGVkIGNvbXBvbmVudCdzIG5vZGVzIGluIHRoZSBET00gZHVyaW5nXG4gICAgLy8gdW5pdCB0ZXN0cy4gVGhpcyBjYW4gbWFrZSBxdWVyeWluZyBkaWZmaWN1bHQgYmVjYXVzZSB0aGUgb2xkZXIgRE9NIG5vZGVzIHN0aWxsIGV4aXN0IGFuZFxuICAgIC8vIHByb2R1Y2UgaW5jb25zaXN0ZW50IHJlc3VsdHMuXG4gICAgLy8gQW5ndWxhciBNYXRlcmlhbCdzIG92ZXJsYXkgYXBwZWFycyB0byBkbyB0aGUgc2FtZSB0aGluZzpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFzdGVyL3NyYy9jZGsvcG9ydGFsL2RvbS1wb3J0YWwtb3V0bGV0LnRzI0wxNDMtTDE0NVxuICAgIC8vIChJZ25vcmluZyBjb3ZlcmFnZSBzaW5jZSB0aGlzIGJyYW5jaCB3aWxsIG9ubHkgYmUgaGl0IGJ5IGNvbnN1bWVyIHVuaXQgdGVzdHMuKVxuICAgIGNvbnN0IGNvbXBvbmVudEVsZW1lbnQgPSBpbnN0YW5jZS5jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoY29tcG9uZW50RWxlbWVudC5wYXJlbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb21wb25lbnRFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29tcG9uZW50RWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhbGwgb3ZlcmxheSBpbnN0YW5jZXMuXG4gICAqL1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgLy8gVGhlIGBjbG9zZWAgZXZlbnQgaGFuZGxlciBmb3IgZWFjaCBpbnN0YW5jZSBhbHRlcnMgdGhlIGFycmF5J3MgbGVuZ3RoIGFzeW5jaHJvbm91c2x5LFxuICAgIC8vIHNvIHRoZSBvbmx5IFwic2FmZVwiIGluZGV4IHRvIGNhbGwgaXMgemVyby5cbiAgICB3aGlsZSAoU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jbG9zZShTa3lPdmVybGF5U2VydmljZS5vdmVybGF5c1swXSk7XG4gICAgfVxuICB9XG5cbiAgI2NyZWF0ZU92ZXJsYXkoY29uZmlnOiBTa3lPdmVybGF5Q29uZmlnKTogQ29tcG9uZW50UmVmPFNreU92ZXJsYXlDb21wb25lbnQ+IHtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuI2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTa3lPdmVybGF5Q29udGV4dCxcbiAgICAgICAgICB1c2VWYWx1ZTogbmV3IFNreU92ZXJsYXlDb250ZXh0KGNvbmZpZyksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy4jY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoU2t5T3ZlcmxheUNvbXBvbmVudClcbiAgICAgIC5jcmVhdGUoaW5qZWN0b3IpO1xuXG4gICAgdGhpcy4jYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pXG4gICAgICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcblxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cblxuICAjcHJlcGFyZUNvbmZpZyhjb25maWc6IFNreU92ZXJsYXlDb25maWcgPSB7fSk6IFNreU92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBTa3lPdmVybGF5Q29uZmlnID0ge1xuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBlbmFibGVDbG9zZTogZmFsc2UsXG4gICAgICBlbmFibGVQb2ludGVyRXZlbnRzOiBmYWxzZSxcbiAgICAgIGVuYWJsZVNjcm9sbDogdHJ1ZSxcbiAgICAgIHNob3dCYWNrZHJvcDogZmFsc2UsXG4gICAgICB3cmFwcGVyQ2xhc3M6ICcnLFxuICAgIH07XG5cbiAgICByZXR1cm4geyAuLi5kZWZhdWx0cywgLi4uY29uZmlnIH07XG4gIH1cblxuICAjZGVzdHJveU92ZXJsYXkoaW5zdGFuY2U6IFNreU92ZXJsYXlJbnN0YW5jZSk6IHZvaWQge1xuICAgIFNreU92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzLnNwbGljZShcbiAgICAgIFNreU92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzLmluZGV4T2YoaW5zdGFuY2UpLFxuICAgICAgMVxuICAgICk7XG5cbiAgICBpZiAoaW5zdGFuY2UuY29uZmlnLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UpIHtcbiAgICAgIC8vIE9ubHkgcmVsZWFzZSB0aGUgYm9keSBzY3JvbGwgaWYgbm8gb3RoZXIgb3ZlcmxheSB3aXNoZXMgaXQgdG8gYmUgZGlzYWJsZWQuXG4gICAgICBjb25zdCBhbm90aGVyT3ZlcmxheURpc2FibGVzU2Nyb2xsID0gU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMuc29tZShcbiAgICAgICAgKG8pID0+ICFvLmNvbmZpZy5lbmFibGVTY3JvbGxcbiAgICAgICk7XG4gICAgICBpZiAoIWFub3RoZXJPdmVybGF5RGlzYWJsZXNTY3JvbGwpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlci5yZWxlYXNlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
112
|
+
}], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentService }]; } });
|
113
|
+
/**
|
114
|
+
* This service is used to create new overlays.
|
115
|
+
* @internal
|
116
|
+
* @deprecated Use `SkyOverlayService` to open a standalone component instead.
|
117
|
+
*/
|
118
|
+
export class SkyOverlayLegacyService extends SkyOverlayService {
|
119
|
+
/* istanbul ignore next */
|
120
|
+
constructor(dynamicComponentSvc) {
|
121
|
+
super(dynamicComponentSvc);
|
122
|
+
}
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayLegacyService, deps: [{ token: i1.SkyDynamicComponentLegacyService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
124
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayLegacyService, providedIn: 'any' }); }
|
125
|
+
}
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayLegacyService, decorators: [{
|
127
|
+
type: Injectable,
|
128
|
+
args: [{
|
129
|
+
providedIn: 'any',
|
130
|
+
}]
|
131
|
+
}], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentLegacyService }]; } });
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFPdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUUxRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO2FBQ2IsYUFBUSxHQUF5QixFQUFFLEFBQTNCLENBQTRCO0lBRTFDLFFBQVEsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM1QyxlQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLG9CQUFvQixDQUE2QjtJQUNqRCxvQkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUU1RCxZQUFZLG1CQUErQztRQUN6RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUF5QjtRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLElBQUksUUFBUSxDQUFDLFlBQVksS0FBSyxLQUFLLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQ3BD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RSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQzlCLENBQUM7WUFDRixJQUFJLENBQUMsNEJBQTRCLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUNuQztTQUNGO0lBQ0gsQ0FBQzs4R0FoSFUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFvSEQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFDNUQsMEJBQTBCO0lBQzFCLFlBQVksbUJBQXFEO1FBQy9ELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBSlUsdUJBQXVCO2tIQUF2Qix1QkFBdUIsY0FGdEIsS0FBSzs7MkZBRU4sdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIEluamVjdGFibGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreUR5bmFtaWNDb21wb25lbnRMZWdhY3lTZXJ2aWNlLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbn0gZnJvbSAnLi4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreU92ZXJsYXlBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vb3ZlcmxheS1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbmZpZyB9IGZyb20gJy4vb3ZlcmxheS1jb25maWcnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbnRleHQgfSBmcm9tICcuL292ZXJsYXktY29udGV4dCc7XG5pbXBvcnQgeyBTa3lPdmVybGF5SW5zdGFuY2UgfSBmcm9tICcuL292ZXJsYXktaW5zdGFuY2UnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VkIHRvIGNyZWF0ZSBuZXcgb3ZlcmxheXMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreU92ZXJsYXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgb3ZlcmxheXM6IFNreU92ZXJsYXlJbnN0YW5jZVtdID0gW107XG5cbiAgcmVhZG9ubHkgI2FkYXB0ZXIgPSBpbmplY3QoU2t5T3ZlcmxheUFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2FwcGxpY2F0aW9uUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTdmM6IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlO1xuICByZWFkb25seSAjZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblxuICBjb25zdHJ1Y3RvcihkeW5hbWljQ29tcG9uZW50U3ZjOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSkge1xuICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTdmMgPSBkeW5hbWljQ29tcG9uZW50U3ZjO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gZW1wdHkgb3ZlcmxheS4gVXNlIHRoZSByZXR1cm5lZCBgU2t5T3ZlcmxheUluc3RhbmNlYCB0byBhcHBlbmQgY29udGVudC5cbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIGZvciB0aGUgb3ZlcmxheS5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGUoY29uZmlnPzogU2t5T3ZlcmxheUNvbmZpZyk6IFNreU92ZXJsYXlJbnN0YW5jZSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLiNwcmVwYXJlQ29uZmlnKGNvbmZpZyk7XG5cbiAgICBpZiAoc2V0dGluZ3MuZW5hYmxlU2Nyb2xsID09PSBmYWxzZSkge1xuICAgICAgdGhpcy4jYWRhcHRlci5yZXN0cmljdEJvZHlTY3JvbGwoKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLiNjcmVhdGVPdmVybGF5KHNldHRpbmdzKTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBTa3lPdmVybGF5SW5zdGFuY2Uoc2V0dGluZ3MsIGNvbXBvbmVudFJlZik7XG5cbiAgICBpbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIC8vIE9ubHkgZXhlY3V0ZSB0aGUgc2VydmljZSdzIGNsb3NlIG1ldGhvZCBpZiB0aGUgaW5zdGFuY2Ugc3RpbGwgZXhpc3RzLlxuICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gYWRkcmVzcyBhIHJhY2UgY29uZGl0aW9uIGlmIHRoZSBkZXByZWNhdGVkIGluc3RhbmNlLmNsb3NlIG1ldGhvZCBpcyB1c2VkIGluc3RlYWQuXG4gICAgICBpZiAoU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMuaW5kZXhPZihpbnN0YW5jZSkgPiAtMSkge1xuICAgICAgICB0aGlzLmNsb3NlKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIFNreU92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzLnB1c2goaW5zdGFuY2UpO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyAoYW5kIGRlc3Ryb3lzKSBhbiBvdmVybGF5IGluc3RhbmNlLlxuICAgKiBAcGFyYW0gaW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIGNsb3NlLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKGluc3RhbmNlOiBTa3lPdmVybGF5SW5zdGFuY2UpOiB2b2lkIHtcbiAgICB0aGlzLiNkZXN0cm95T3ZlcmxheShpbnN0YW5jZSk7XG4gICAgdGhpcy4jYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyhpbnN0YW5jZS5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGluc3RhbmNlLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG5cbiAgICAvLyBJbiBzb21lIGNhc2VzLCBBbmd1bGFyIGtlZXBzIGR5bmFtaWNhbGx5LWdlbmVyYXRlZCBjb21wb25lbnQncyBub2RlcyBpbiB0aGUgRE9NIGR1cmluZ1xuICAgIC8vIHVuaXQgdGVzdHMuIFRoaXMgY2FuIG1ha2UgcXVlcnlpbmcgZGlmZmljdWx0IGJlY2F1c2UgdGhlIG9sZGVyIERPTSBub2RlcyBzdGlsbCBleGlzdCBhbmRcbiAgICAvLyBwcm9kdWNlIGluY29uc2lzdGVudCByZXN1bHRzLlxuICAgIC8vIEFuZ3VsYXIgTWF0ZXJpYWwncyBvdmVybGF5IGFwcGVhcnMgdG8gZG8gdGhlIHNhbWUgdGhpbmc6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21hc3Rlci9zcmMvY2RrL3BvcnRhbC9kb20tcG9ydGFsLW91dGxldC50cyNMMTQzLUwxNDVcbiAgICAvLyAoSWdub3JpbmcgY292ZXJhZ2Ugc2luY2UgdGhpcyBicmFuY2ggd2lsbCBvbmx5IGJlIGhpdCBieSBjb25zdW1lciB1bml0IHRlc3RzLilcbiAgICBjb25zdCBjb21wb25lbnRFbGVtZW50ID0gaW5zdGFuY2UuY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGNvbXBvbmVudEVsZW1lbnQucGFyZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29tcG9uZW50RWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNvbXBvbmVudEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIG92ZXJsYXkgaW5zdGFuY2VzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIC8vIFRoZSBgY2xvc2VgIGV2ZW50IGhhbmRsZXIgZm9yIGVhY2ggaW5zdGFuY2UgYWx0ZXJzIHRoZSBhcnJheSdzIGxlbmd0aCBhc3luY2hyb25vdXNseSxcbiAgICAvLyBzbyB0aGUgb25seSBcInNhZmVcIiBpbmRleCB0byBjYWxsIGlzIHplcm8uXG4gICAgd2hpbGUgKFNreU92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY2xvc2UoU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXNbMF0pO1xuICAgIH1cbiAgfVxuXG4gICNjcmVhdGVPdmVybGF5KGNvbmZpZzogU2t5T3ZlcmxheUNvbmZpZyk6IENvbXBvbmVudFJlZjxTa3lPdmVybGF5Q29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTdmMuY3JlYXRlQ29tcG9uZW50KFNreU92ZXJsYXlDb21wb25lbnQsIHtcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFNreU92ZXJsYXlDb250ZXh0LFxuICAgICAgICAgIHVzZVZhbHVlOiBuZXcgU2t5T3ZlcmxheUNvbnRleHQoY29uZmlnKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAjcHJlcGFyZUNvbmZpZyhjb25maWc6IFNreU92ZXJsYXlDb25maWcgPSB7fSk6IFNreU92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IGRlZmF1bHRzOiBTa3lPdmVybGF5Q29uZmlnID0ge1xuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBlbmFibGVDbG9zZTogZmFsc2UsXG4gICAgICBlbmFibGVQb2ludGVyRXZlbnRzOiBmYWxzZSxcbiAgICAgIGVuYWJsZVNjcm9sbDogdHJ1ZSxcbiAgICAgIHNob3dCYWNrZHJvcDogZmFsc2UsXG4gICAgICB3cmFwcGVyQ2xhc3M6ICcnLFxuICAgIH07XG5cbiAgICByZXR1cm4geyAuLi5kZWZhdWx0cywgLi4uY29uZmlnIH07XG4gIH1cblxuICAjZGVzdHJveU92ZXJsYXkoaW5zdGFuY2U6IFNreU92ZXJsYXlJbnN0YW5jZSk6IHZvaWQge1xuICAgIFNreU92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzLnNwbGljZShcbiAgICAgIFNreU92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzLmluZGV4T2YoaW5zdGFuY2UpLFxuICAgICAgMVxuICAgICk7XG5cbiAgICBpZiAoaW5zdGFuY2UuY29uZmlnLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UpIHtcbiAgICAgIC8vIE9ubHkgcmVsZWFzZSB0aGUgYm9keSBzY3JvbGwgaWYgbm8gb3RoZXIgb3ZlcmxheSB3aXNoZXMgaXQgdG8gYmUgZGlzYWJsZWQuXG4gICAgICBjb25zdCBhbm90aGVyT3ZlcmxheURpc2FibGVzU2Nyb2xsID0gU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMuc29tZShcbiAgICAgICAgKG8pID0+ICFvLmNvbmZpZy5lbmFibGVTY3JvbGxcbiAgICAgICk7XG4gICAgICBpZiAoIWFub3RoZXJPdmVybGF5RGlzYWJsZXNTY3JvbGwpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlci5yZWxlYXNlQm9keVNjcm9sbCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VkIHRvIGNyZWF0ZSBuZXcgb3ZlcmxheXMuXG4gKiBAaW50ZXJuYWxcbiAqIEBkZXByZWNhdGVkIFVzZSBgU2t5T3ZlcmxheVNlcnZpY2VgIHRvIG9wZW4gYSBzdGFuZGFsb25lIGNvbXBvbmVudCBpbnN0ZWFkLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5TGVnYWN5U2VydmljZSBleHRlbmRzIFNreU92ZXJsYXlTZXJ2aWNlIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgY29uc3RydWN0b3IoZHluYW1pY0NvbXBvbmVudFN2YzogU2t5RHluYW1pY0NvbXBvbmVudExlZ2FjeVNlcnZpY2UpIHtcbiAgICBzdXBlcihkeW5hbWljQ29tcG9uZW50U3ZjKTtcbiAgfVxufVxuIl19
|
@@ -4,11 +4,11 @@ import { SkyCoreResourcesModule } from '../shared/sky-core-resources.module';
|
|
4
4
|
import { SkyPercentPipe } from './percent.pipe';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export class SkyPercentPipeModule {
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1
|
8
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyPercentPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SkyPercentPipeModule, declarations: [SkyPercentPipe], imports: [CommonModule, SkyCoreResourcesModule], exports: [SkyPercentPipe] }); }
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyPercentPipeModule, providers: [SkyPercentPipe], imports: [CommonModule, SkyCoreResourcesModule] }); }
|
10
10
|
}
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyPercentPipeModule, decorators: [{
|
12
12
|
type: NgModule,
|
13
13
|
args: [{
|
14
14
|
declarations: [SkyPercentPipe],
|
@@ -43,10 +43,10 @@ export class SkyPercentPipe {
|
|
43
43
|
? SkyNumberFormatUtility.formatNumber(locale, this.#value, SkyIntlNumberFormatStyle.Percent, format)
|
44
44
|
: '';
|
45
45
|
}
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1
|
47
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyPercentPipe, deps: [{ token: i1.SkyAppLocaleProvider }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
47
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SkyPercentPipe, name: "skyPercent", pure: false }); }
|
48
48
|
}
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyPercentPipe, decorators: [{
|
50
50
|
type: Pipe,
|
51
51
|
args: [{
|
52
52
|
name: 'skyPercent',
|
@@ -56,7 +56,7 @@ export class SkyResizeObserverMediaQueryService {
|
|
56
56
|
* Sets the container element to watch. The `SkyResizeObserverMediaQueryService` will only observe one element at a
|
57
57
|
* time. Any previous subscriptions will be unsubscribed when a new element is observed.
|
58
58
|
*/
|
59
|
-
observe(element) {
|
59
|
+
observe(element, options) {
|
60
60
|
if (this.#target) {
|
61
61
|
if (this.#target === element) {
|
62
62
|
return this;
|
@@ -64,22 +64,23 @@ export class SkyResizeObserverMediaQueryService {
|
|
64
64
|
this.unobserve();
|
65
65
|
}
|
66
66
|
this.#target = element;
|
67
|
-
this.#checkWidth(element);
|
67
|
+
this.#checkWidth(element, options?.updateResponsiveClasses);
|
68
68
|
this.#resizeObserverSvc
|
69
69
|
.observe(element)
|
70
70
|
.pipe(takeUntil(this.#ngUnsubscribe))
|
71
71
|
.subscribe((value) => {
|
72
72
|
const breakpoint = this.#checkBreakpoint(value.contentRect.width);
|
73
|
-
if (breakpoint
|
74
|
-
this.#updateBreakpoint(breakpoint);
|
73
|
+
if (breakpoint) {
|
74
|
+
this.#updateBreakpoint(breakpoint, options?.updateResponsiveClasses);
|
75
75
|
}
|
76
76
|
});
|
77
77
|
return this;
|
78
78
|
}
|
79
79
|
/**
|
80
|
-
* Stop watching the container element.
|
80
|
+
* Stop watching the container element and remove any added classes.
|
81
81
|
*/
|
82
82
|
unobserve() {
|
83
|
+
this.#removeResponsiveClasses();
|
83
84
|
this.#ngUnsubscribe.next();
|
84
85
|
this.#ngUnsubscribe.complete();
|
85
86
|
}
|
@@ -93,28 +94,48 @@ export class SkyResizeObserverMediaQueryService {
|
|
93
94
|
listener(value);
|
94
95
|
});
|
95
96
|
}
|
96
|
-
#updateBreakpoint(breakpoint) {
|
97
|
+
#updateBreakpoint(breakpoint, updateResponsiveClasses) {
|
98
|
+
if (updateResponsiveClasses) {
|
99
|
+
this.#updateResponsiveClasses(this.current, breakpoint);
|
100
|
+
}
|
101
|
+
if (this.current !== breakpoint) {
|
102
|
+
this.#currentBreakpointObs.next(breakpoint);
|
103
|
+
}
|
97
104
|
this.#currentBreakpoint = breakpoint;
|
98
|
-
|
105
|
+
}
|
106
|
+
#updateResponsiveClasses(oldBreakpoint, newBreakpoint) {
|
107
|
+
const oldClass = this.#getClassForBreakpoint(oldBreakpoint);
|
108
|
+
const newClass = this.#getClassForBreakpoint(newBreakpoint);
|
109
|
+
const targetClassList = this.#target?.nativeElement?.classList;
|
110
|
+
targetClassList?.remove(oldClass);
|
111
|
+
targetClassList?.add(newClass);
|
112
|
+
}
|
113
|
+
#removeResponsiveClasses() {
|
114
|
+
for (const breakpoint of Object.values(SkyMediaBreakpoints)) {
|
115
|
+
if (typeof breakpoint === 'number') {
|
116
|
+
const className = this.#getClassForBreakpoint(breakpoint);
|
117
|
+
this.#target?.nativeElement?.classList?.remove(className);
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
121
|
+
#getClassForBreakpoint(breakpoint) {
|
122
|
+
return `sky-responsive-container-${SkyMediaBreakpoints[breakpoint]}`;
|
99
123
|
}
|
100
124
|
#checkBreakpoint(width) {
|
101
125
|
const breakpoint = this.#breakpoints.find((breakpoint) => breakpoint.check(width));
|
102
126
|
return breakpoint ? breakpoint.name : undefined;
|
103
127
|
}
|
104
|
-
#checkWidth(el) {
|
128
|
+
#checkWidth(el, updateResponsiveClasses) {
|
105
129
|
const width = el.nativeElement.offsetWidth || 0;
|
106
130
|
const breakpoint = this.#checkBreakpoint(width);
|
107
|
-
if (breakpoint
|
108
|
-
this.#updateBreakpoint(breakpoint);
|
131
|
+
if (breakpoint) {
|
132
|
+
this.#updateBreakpoint(breakpoint, updateResponsiveClasses);
|
109
133
|
}
|
110
134
|
}
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1
|
112
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyResizeObserverMediaQueryService, deps: [{ token: i1.SkyResizeObserverService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
136
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyResizeObserverMediaQueryService }); }
|
113
137
|
}
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1
|
115
|
-
type: Injectable
|
116
|
-
args: [{
|
117
|
-
providedIn: 'any',
|
118
|
-
}]
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyResizeObserverMediaQueryService, decorators: [{
|
139
|
+
type: Injectable
|
119
140
|
}], ctorParameters: function () { return [{ type: i1.SkyResizeObserverService }]; } });
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBS3ZFLE1BQU0sa0JBQWtCLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO0FBRWxEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtDQUFrQztJQUM3Qzs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxHQUdOO1FBQ0o7WUFDRSxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLEdBQUc7WUFDbkQsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEVBQUU7U0FDN0I7UUFDRDtZQUNFLEtBQUssRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksR0FBRztZQUNyRCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtTQUM3QjtRQUNEO1lBQ0UsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJO1lBQ3RE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QyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXLENBQUMsRUFBYztRQUN4QixNQUFNLEtBQUssR0FBSSxFQUFFLENBQUMsYUFBNkIsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRCxJQUFJLFVBQVUsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7OEdBOUhVLGtDQUFrQztrSEFBbEMsa0NBQWtDLGNBRmpDLEtBQUs7OzJGQUVOLGtDQUFrQztrQkFIOUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreU1lZGlhQnJlYWtwb2ludHMgfSBmcm9tICcuLi9tZWRpYS1xdWVyeS9tZWRpYS1icmVha3BvaW50cyc7XG5pbXBvcnQgeyBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIgfSBmcm9tICcuLi9tZWRpYS1xdWVyeS9tZWRpYS1xdWVyeS1saXN0ZW5lcic7XG5cbmltcG9ydCB7IFNreVJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4vcmVzaXplLW9ic2VydmVyLnNlcnZpY2UnO1xuXG5jb25zdCBERUZBVUxUX0JSRUFLUE9JTlQgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kO1xuXG4vKipcbiAqIEFjdHMgbGlrZSBgU2t5TWVkaWFRdWVyeVNlcnZpY2VgIGZvciBhIGNvbnRhaW5lciBlbGVtZW50LCBlbWl0dGluZyB0aGUgc2FtZSByZXNwb25zaXZlIGJyZWFrcG9pbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYnJlYWtwb2ludC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBTa3lNZWRpYUJyZWFrcG9pbnRzIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudEJyZWFrcG9pbnQ7XG4gIH1cblxuICAjYnJlYWtwb2ludHM6IHtcbiAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpID0+IGJvb2xlYW47XG4gICAgbmFtZTogU2t5TWVkaWFCcmVha3BvaW50cztcbiAgfVtdID0gW1xuICAgIHtcbiAgICAgIGNoZWNrOiAod2lkdGg6IG51bWJlcikgPT4gd2lkdGggPiAwICYmIHdpZHRoIDw9IDc2NyxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMueHMsXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpID0+IHdpZHRoID4gNzY3ICYmIHdpZHRoIDw9IDk5MSxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMuc20sXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpID0+IHdpZHRoID4gOTkxICYmIHdpZHRoIDw9IDExOTksXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kLFxuICAgIH0sXG4gICAge1xuICAgICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKSA9PiB3aWR0aCA+IDExOTksXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLmxnLFxuICAgIH0sXG4gIF07XG5cbiAgI2N1cnJlbnRCcmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzID0gREVGQVVMVF9CUkVBS1BPSU5UO1xuXG4gICNjdXJyZW50QnJlYWtwb2ludE9icyA9IG5ldyBSZXBsYXlTdWJqZWN0PFNreU1lZGlhQnJlYWtwb2ludHM+KDEpO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcmVzaXplT2JzZXJ2ZXJTdmM6IFNreVJlc2l6ZU9ic2VydmVyU2VydmljZTtcblxuICAjdGFyZ2V0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHJlc2l6ZU9ic2VydmVyU3ZjOiBTa3lSZXNpemVPYnNlcnZlclNlcnZpY2UpIHtcbiAgICB0aGlzLiNyZXNpemVPYnNlcnZlclN2YyA9IHJlc2l6ZU9ic2VydmVyU3ZjO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5vYnNlcnZlKCk7XG5cbiAgICB0aGlzLiN0YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy4jY3VycmVudEJyZWFrcG9pbnRPYnMuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb250YWluZXIgZWxlbWVudCB0byB3YXRjaC4gVGhlIGBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlYCB3aWxsIG9ubHkgb2JzZXJ2ZSBvbmUgZWxlbWVudCBhdCBhXG4gICAqIHRpbWUuIEFueSBwcmV2aW91cyBzdWJzY3JpcHRpb25zIHdpbGwgYmUgdW5zdWJzY3JpYmVkIHdoZW4gYSBuZXcgZWxlbWVudCBpcyBvYnNlcnZlZC5cbiAgICovXG4gIHB1YmxpYyBvYnNlcnZlKGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlIHtcbiAgICBpZiAodGhpcy4jdGFyZ2V0KSB7XG4gICAgICBpZiAodGhpcy4jdGFyZ2V0ID09PSBlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVub2JzZXJ2ZSgpO1xuICAgIH1cblxuICAgIHRoaXMuI3RhcmdldCA9IGVsZW1lbnQ7XG5cbiAgICB0aGlzLiNjaGVja1dpZHRoKGVsZW1lbnQpO1xuXG4gICAgdGhpcy4jcmVzaXplT2JzZXJ2ZXJTdmNcbiAgICAgIC5vYnNlcnZlKGVsZW1lbnQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jY2hlY2tCcmVha3BvaW50KHZhbHVlLmNvbnRlbnRSZWN0LndpZHRoKTtcbiAgICAgICAgaWYgKGJyZWFrcG9pbnQgJiYgYnJlYWtwb2ludCAhPT0gdGhpcy5jdXJyZW50KSB7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQnJlYWtwb2ludChicmVha3BvaW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCB3YXRjaGluZyB0aGUgY29udGFpbmVyIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgdW5vYnNlcnZlKCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIGVsZW1lbnQgc2l6ZSBjaGFuZ2VzIHRoYXQgY3Jvc3MgYnJlYWtwb2ludHMuXG4gICAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLiNjdXJyZW50QnJlYWtwb2ludE9ic1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgbGlzdGVuZXIodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICAjdXBkYXRlQnJlYWtwb2ludChicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzKSB7XG4gICAgdGhpcy4jY3VycmVudEJyZWFrcG9pbnQgPSBicmVha3BvaW50O1xuICAgIHRoaXMuI2N1cnJlbnRCcmVha3BvaW50T2JzLm5leHQoYnJlYWtwb2ludCk7XG4gIH1cblxuICAjY2hlY2tCcmVha3BvaW50KHdpZHRoOiBudW1iZXIpOiBTa3lNZWRpYUJyZWFrcG9pbnRzIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jYnJlYWtwb2ludHMuZmluZCgoYnJlYWtwb2ludCkgPT5cbiAgICAgIGJyZWFrcG9pbnQuY2hlY2sod2lkdGgpXG4gICAgKTtcblxuICAgIHJldHVybiBicmVha3BvaW50ID8gYnJlYWtwb2ludC5uYW1lIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgI2NoZWNrV2lkdGgoZWw6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBjb25zdCB3aWR0aCA9IChlbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aCB8fCAwO1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNjaGVja0JyZWFrcG9pbnQod2lkdGgpO1xuXG4gICAgaWYgKGJyZWFrcG9pbnQgJiYgYnJlYWtwb2ludCAhPT0gdGhpcy4jY3VycmVudEJyZWFrcG9pbnQpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBS3ZFLE1BQU0sa0JBQWtCLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO0FBRWxEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtDQUFrQztJQUM3Qzs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxHQUdOO1FBQ0o7WUFDRSxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQVcsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLEdBQUc7WUFDNUQsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEVBQUU7U0FDN0I7UUFDRDtZQUNFLEtBQUssRUFBRSxDQUFDLEtBQWEsRUFBVyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksR0FBRztZQUM5RCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtTQUM3QjtRQUNEO1lBQ0UsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUFXLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJO1lBQy9E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VyxDQUFDLEVBQWMsRUFBRSx1QkFBaUM7UUFDM0QsTUFBTSxLQUFLLEdBQUksRUFBRSxDQUFDLGFBQTZCLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEQsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLHVCQUF1QixDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDOzhHQXhLVSxrQ0FBa0M7a0hBQWxDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cyB9IGZyb20gJy4uL21lZGlhLXF1ZXJ5L21lZGlhLWJyZWFrcG9pbnRzJztcbmltcG9ydCB7IFNreU1lZGlhUXVlcnlMaXN0ZW5lciB9IGZyb20gJy4uL21lZGlhLXF1ZXJ5L21lZGlhLXF1ZXJ5LWxpc3RlbmVyJztcblxuaW1wb3J0IHsgU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XG5cbmNvbnN0IERFRkFVTFRfQlJFQUtQT0lOVCA9IFNreU1lZGlhQnJlYWtwb2ludHMubWQ7XG5cbi8qKlxuICogQWN0cyBsaWtlIGBTa3lNZWRpYVF1ZXJ5U2VydmljZWAgZm9yIGEgY29udGFpbmVyIGVsZW1lbnQsIGVtaXR0aW5nIHRoZSBzYW1lIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYnJlYWtwb2ludC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBTa3lNZWRpYUJyZWFrcG9pbnRzIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudEJyZWFrcG9pbnQ7XG4gIH1cblxuICAjYnJlYWtwb2ludHM6IHtcbiAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpID0+IGJvb2xlYW47XG4gICAgbmFtZTogU2t5TWVkaWFCcmVha3BvaW50cztcbiAgfVtdID0gW1xuICAgIHtcbiAgICAgIGNoZWNrOiAod2lkdGg6IG51bWJlcik6IGJvb2xlYW4gPT4gd2lkdGggPiAwICYmIHdpZHRoIDw9IDc2NyxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMueHMsXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpOiBib29sZWFuID0+IHdpZHRoID4gNzY3ICYmIHdpZHRoIDw9IDk5MSxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMuc20sXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGVjazogKHdpZHRoOiBudW1iZXIpOiBib29sZWFuID0+IHdpZHRoID4gOTkxICYmIHdpZHRoIDw9IDExOTksXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kLFxuICAgIH0sXG4gICAge1xuICAgICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKTogYm9vbGVhbiA9PiB3aWR0aCA+IDExOTksXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLmxnLFxuICAgIH0sXG4gIF07XG5cbiAgI2N1cnJlbnRCcmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzID0gREVGQVVMVF9CUkVBS1BPSU5UO1xuXG4gICNjdXJyZW50QnJlYWtwb2ludE9icyA9IG5ldyBSZXBsYXlTdWJqZWN0PFNreU1lZGlhQnJlYWtwb2ludHM+KDEpO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcmVzaXplT2JzZXJ2ZXJTdmM6IFNreVJlc2l6ZU9ic2VydmVyU2VydmljZTtcblxuICAjdGFyZ2V0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHJlc2l6ZU9ic2VydmVyU3ZjOiBTa3lSZXNpemVPYnNlcnZlclNlcnZpY2UpIHtcbiAgICB0aGlzLiNyZXNpemVPYnNlcnZlclN2YyA9IHJlc2l6ZU9ic2VydmVyU3ZjO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5vYnNlcnZlKCk7XG5cbiAgICB0aGlzLiN0YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy4jY3VycmVudEJyZWFrcG9pbnRPYnMuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb250YWluZXIgZWxlbWVudCB0byB3YXRjaC4gVGhlIGBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlYCB3aWxsIG9ubHkgb2JzZXJ2ZSBvbmUgZWxlbWVudCBhdCBhXG4gICAqIHRpbWUuIEFueSBwcmV2aW91cyBzdWJzY3JpcHRpb25zIHdpbGwgYmUgdW5zdWJzY3JpYmVkIHdoZW4gYSBuZXcgZWxlbWVudCBpcyBvYnNlcnZlZC5cbiAgICovXG4gIHB1YmxpYyBvYnNlcnZlKFxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIHVwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzPzogYm9vbGVhbjtcbiAgICB9XG4gICk6IFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2Uge1xuICAgIGlmICh0aGlzLiN0YXJnZXQpIHtcbiAgICAgIGlmICh0aGlzLiN0YXJnZXQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudW5vYnNlcnZlKCk7XG4gICAgfVxuXG4gICAgdGhpcy4jdGFyZ2V0ID0gZWxlbWVudDtcblxuICAgIHRoaXMuI2NoZWNrV2lkdGgoZWxlbWVudCwgb3B0aW9ucz8udXBkYXRlUmVzcG9uc2l2ZUNsYXNzZXMpO1xuXG4gICAgdGhpcy4jcmVzaXplT2JzZXJ2ZXJTdmNcbiAgICAgIC5vYnNlcnZlKGVsZW1lbnQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy4jY2hlY2tCcmVha3BvaW50KHZhbHVlLmNvbnRlbnRSZWN0LndpZHRoKTtcbiAgICAgICAgaWYgKGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVCcmVha3BvaW50KGJyZWFrcG9pbnQsIG9wdGlvbnM/LnVwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCB3YXRjaGluZyB0aGUgY29udGFpbmVyIGVsZW1lbnQgYW5kIHJlbW92ZSBhbnkgYWRkZWQgY2xhc3Nlcy5cbiAgICovXG4gIHB1YmxpYyB1bm9ic2VydmUoKTogdm9pZCB7XG4gICAgdGhpcy4jcmVtb3ZlUmVzcG9uc2l2ZUNsYXNzZXMoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byBlbGVtZW50IHNpemUgY2hhbmdlcyB0aGF0IGNyb3NzIGJyZWFrcG9pbnRzLlxuICAgKi9cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogU2t5TWVkaWFRdWVyeUxpc3RlbmVyKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudEJyZWFrcG9pbnRPYnNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGxpc3RlbmVyKHZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgI3VwZGF0ZUJyZWFrcG9pbnQoXG4gICAgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgICB1cGRhdGVSZXNwb25zaXZlQ2xhc3Nlcz86IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgaWYgKHVwZGF0ZVJlc3BvbnNpdmVDbGFzc2VzKSB7XG4gICAgICB0aGlzLiN1cGRhdGVSZXNwb25zaXZlQ2xhc3Nlcyh0aGlzLmN1cnJlbnQsIGJyZWFrcG9pbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnQgIT09IGJyZWFrcG9pbnQpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRCcmVha3BvaW50T2JzLm5leHQoYnJlYWtwb2ludCk7XG4gICAgfVxuICAgIHRoaXMuI2N1cnJlbnRCcmVha3BvaW50ID0gYnJlYWtwb2ludDtcbiAgfVxuXG4gICN1cGRhdGVSZXNwb25zaXZlQ2xhc3NlcyhcbiAgICBvbGRCcmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzLFxuICAgIG5ld0JyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHNcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgb2xkQ2xhc3MgPSB0aGlzLiNnZXRDbGFzc0ZvckJyZWFrcG9pbnQob2xkQnJlYWtwb2ludCk7XG4gICAgY29uc3QgbmV3Q2xhc3MgPSB0aGlzLiNnZXRDbGFzc0ZvckJyZWFrcG9pbnQobmV3QnJlYWtwb2ludCk7XG5cbiAgICBjb25zdCB0YXJnZXRDbGFzc0xpc3QgPSB0aGlzLiN0YXJnZXQ/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTGlzdDtcblxuICAgIHRhcmdldENsYXNzTGlzdD8ucmVtb3ZlKG9sZENsYXNzKTtcbiAgICB0YXJnZXRDbGFzc0xpc3Q/LmFkZChuZXdDbGFzcyk7XG4gIH1cblxuICAjcmVtb3ZlUmVzcG9uc2l2ZUNsYXNzZXMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBicmVha3BvaW50IG9mIE9iamVjdC52YWx1ZXMoU2t5TWVkaWFCcmVha3BvaW50cykpIHtcbiAgICAgIGlmICh0eXBlb2YgYnJlYWtwb2ludCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy4jZ2V0Q2xhc3NGb3JCcmVha3BvaW50KGJyZWFrcG9pbnQpO1xuXG4gICAgICAgIHRoaXMuI3RhcmdldD8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0Py5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZ2V0Q2xhc3NGb3JCcmVha3BvaW50KGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHMpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLSR7U2t5TWVkaWFCcmVha3BvaW50c1ticmVha3BvaW50XX1gO1xuICB9XG5cbiAgI2NoZWNrQnJlYWtwb2ludCh3aWR0aDogbnVtYmVyKTogU2t5TWVkaWFCcmVha3BvaW50cyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYnJlYWtwb2ludCA9IHRoaXMuI2JyZWFrcG9pbnRzLmZpbmQoKGJyZWFrcG9pbnQpID0+XG4gICAgICBicmVha3BvaW50LmNoZWNrKHdpZHRoKVxuICAgICk7XG5cbiAgICByZXR1cm4gYnJlYWtwb2ludCA/IGJyZWFrcG9pbnQubmFtZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gICNjaGVja1dpZHRoKGVsOiBFbGVtZW50UmVmLCB1cGRhdGVSZXNwb25zaXZlQ2xhc3Nlcz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB3aWR0aCA9IChlbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aCB8fCAwO1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSB0aGlzLiNjaGVja0JyZWFrcG9pbnQod2lkdGgpO1xuXG4gICAgaWYgKGJyZWFrcG9pbnQpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdXBkYXRlUmVzcG9uc2l2ZUNsYXNzZXMpO1xuICAgIH1cbiAgfVxufVxuIl19
|