angular-three 2.0.0-beta.230 → 2.0.0-beta.232
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/esm2022/index.mjs +1 -2
- package/esm2022/lib/canvas.mjs +9 -11
- package/esm2022/lib/directives/args.mjs +12 -24
- package/esm2022/lib/directives/common.mjs +28 -5
- package/esm2022/lib/directives/parent.mjs +9 -24
- package/esm2022/lib/dom/events.mjs +1 -1
- package/esm2022/lib/events.mjs +12 -13
- package/esm2022/lib/instance.mjs +1 -1
- package/esm2022/lib/loader.mjs +2 -2
- package/esm2022/lib/loop.mjs +8 -20
- package/esm2022/lib/portal.mjs +22 -25
- package/esm2022/lib/ref.mjs +1 -1
- package/esm2022/lib/renderer/index.mjs +69 -68
- package/esm2022/lib/renderer/store.mjs +98 -104
- package/esm2022/lib/renderer/utils.mjs +4 -35
- package/esm2022/lib/roots.mjs +20 -21
- package/esm2022/lib/routed-scene.mjs +3 -3
- package/esm2022/lib/store.mjs +8 -8
- package/esm2022/lib/three-types.mjs +1 -1
- package/esm2022/lib/utils/apply-props.mjs +13 -13
- package/esm2022/lib/utils/attach.mjs +1 -1
- package/esm2022/lib/utils/before-render.mjs +2 -2
- package/esm2022/lib/utils/create-api-token.mjs +1 -1
- package/esm2022/lib/utils/is.mjs +1 -1
- package/esm2022/lib/utils/make.mjs +7 -8
- package/esm2022/lib/utils/signal-store.mjs +1 -1
- package/esm2022/lib/utils/update.mjs +1 -1
- package/fesm2022/angular-three.mjs +295 -370
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/lib/canvas.d.ts +798 -793
- package/lib/directives/args.d.ts +4 -5
- package/lib/directives/common.d.ts +8 -3
- package/lib/directives/parent.d.ts +5 -7
- package/lib/dom/events.d.ts +3 -3
- package/lib/events.d.ts +13 -13
- package/lib/instance.d.ts +6 -6
- package/lib/loader.d.ts +5 -5
- package/lib/loop.d.ts +2 -26
- package/lib/portal.d.ts +15 -17
- package/lib/ref.d.ts +2 -2
- package/lib/renderer/index.d.ts +6 -6
- package/lib/renderer/store.d.ts +4 -4
- package/lib/renderer/utils.d.ts +1 -1
- package/lib/roots.d.ts +3 -3
- package/lib/store.d.ts +18 -18
- package/lib/three-types.d.ts +132 -134
- package/lib/utils/apply-props.d.ts +2 -2
- package/lib/utils/attach.d.ts +4 -4
- package/lib/utils/before-render.d.ts +1 -1
- package/lib/utils/create-api-token.d.ts +2 -2
- package/lib/utils/is.d.ts +11 -11
- package/lib/utils/make.d.ts +10 -10
- package/lib/utils/signal-store.d.ts +1 -1
- package/lib/utils/update.d.ts +1 -1
- package/metadata.json +1 -1
- package/package.json +71 -71
- package/web-types.json +1 -1
- package/esm2022/lib/utils/inputs.mjs +0 -18
- package/lib/utils/inputs.d.ts +0 -5
package/esm2022/lib/portal.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChild, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, Directive,
|
|
1
|
+
import { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChild, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, Directive, inject, Injector, input, signal, SkipSelf, TemplateRef, untracked, viewChild, ViewContainerRef, } from '@angular/core';
|
|
2
2
|
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
3
3
|
import { createInjectionToken } from 'ngxtension/create-injection-token';
|
|
4
|
-
import
|
|
4
|
+
import { Raycaster, Scene, Vector2, Vector3 } from 'three';
|
|
5
5
|
import { prepare } from './instance';
|
|
6
6
|
import { injectNgtRef } from './ref';
|
|
7
7
|
import { SPECIAL_INTERNAL_ADD_COMMENT } from './renderer/constants';
|
|
@@ -26,8 +26,8 @@ const privateKeys = [
|
|
|
26
26
|
];
|
|
27
27
|
const [, providePortalStore] = createInjectionToken((parentStore) => {
|
|
28
28
|
const parentState = parentStore.snapshot;
|
|
29
|
-
const pointer = new
|
|
30
|
-
const raycaster = new
|
|
29
|
+
const pointer = new Vector2();
|
|
30
|
+
const raycaster = new Raycaster();
|
|
31
31
|
return signalStore(({ update }) => {
|
|
32
32
|
return {
|
|
33
33
|
...parentState,
|
|
@@ -68,13 +68,13 @@ export class NgtPortalBeforeRender {
|
|
|
68
68
|
onPointerOver() {
|
|
69
69
|
/* noop */
|
|
70
70
|
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtPortalBeforeRender, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtPortalBeforeRender, isStandalone: true, selector: "ngt-portal-before-render", inputs: { renderPriority: { classPropertyName: "renderPriority", publicName: "renderPriority", isSignal: true, isRequired: false, transformFunction: null }, parentScene: { classPropertyName: "parentScene", publicName: "parentScene", isSignal: true, isRequired: true, transformFunction: null }, parentCamera: { classPropertyName: "parentCamera", publicName: "parentCamera", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
73
73
|
<!-- Without an element that receives pointer events state.pointer will always be 0/0 -->
|
|
74
74
|
<ngt-group (pointerover)="onPointerOver()" attach="none" />
|
|
75
75
|
`, isInline: true }); }
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtPortalBeforeRender, decorators: [{
|
|
78
78
|
type: Component,
|
|
79
79
|
args: [{
|
|
80
80
|
selector: 'ngt-portal-before-render',
|
|
@@ -94,10 +94,10 @@ export class NgtPortalContent {
|
|
|
94
94
|
delete commentNode[SPECIAL_INTERNAL_ADD_COMMENT];
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
98
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtPortalContent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ViewContainerRef, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
98
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NgtPortalContent, isStandalone: true, selector: "ng-template[ngtPortalContent]", ngImport: i0 }); }
|
|
99
99
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtPortalContent, decorators: [{
|
|
101
101
|
type: Directive,
|
|
102
102
|
args: [{ selector: 'ng-template[ngtPortalContent]', standalone: true }]
|
|
103
103
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ViewContainerRef, decorators: [{
|
|
@@ -105,12 +105,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
105
105
|
}] }] });
|
|
106
106
|
export class NgtPortal {
|
|
107
107
|
constructor() {
|
|
108
|
-
this.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
...value,
|
|
112
|
-
}),
|
|
113
|
-
});
|
|
108
|
+
this.container = input(injectNgtRef(prepare(new Scene())));
|
|
109
|
+
this.camera = input();
|
|
110
|
+
this.state = input();
|
|
114
111
|
this.autoRender = input(false);
|
|
115
112
|
this.autoRenderPriority = input(1);
|
|
116
113
|
this.portalContentTemplate = contentChild.required(NgtPortalContent, { read: TemplateRef });
|
|
@@ -125,7 +122,7 @@ export class NgtPortal {
|
|
|
125
122
|
this.parentCamera = this.parentStore.get('camera');
|
|
126
123
|
afterNextRender(() => {
|
|
127
124
|
const parentState = this.parentStore.snapshot;
|
|
128
|
-
const
|
|
125
|
+
const [container, { events = {}, size = {}, ...rest } = {}] = [this.container(), this.state()];
|
|
129
126
|
this.portalStore.update({
|
|
130
127
|
scene: (is.ref(container) ? container.nativeElement : container),
|
|
131
128
|
events: { ...parentState.events, ...events },
|
|
@@ -152,18 +149,18 @@ export class NgtPortal {
|
|
|
152
149
|
delete intersect[key];
|
|
153
150
|
}
|
|
154
151
|
});
|
|
155
|
-
const
|
|
156
|
-
const { size, events, ...restInputsState } =
|
|
152
|
+
const container = untracked(this.container);
|
|
153
|
+
const { size, events, ...restInputsState } = untracked(this.state) || {};
|
|
157
154
|
let viewport = undefined;
|
|
158
155
|
if (injectState && size) {
|
|
159
156
|
const camera = injectState.camera;
|
|
160
|
-
viewport = rootState.viewport.getCurrentViewport(camera, new
|
|
157
|
+
viewport = rootState.viewport.getCurrentViewport(camera, new Vector3(), size);
|
|
161
158
|
if (camera !== rootState.camera)
|
|
162
159
|
updateCamera(camera, size);
|
|
163
160
|
}
|
|
164
161
|
return {
|
|
165
162
|
...intersect,
|
|
166
|
-
scene: is.ref(
|
|
163
|
+
scene: is.ref(container) ? container.nativeElement : container,
|
|
167
164
|
previousRoot: this.parentStore,
|
|
168
165
|
events: { ...rootState.events, ...(injectState?.events || {}), ...events },
|
|
169
166
|
size: { ...rootState.size, ...size },
|
|
@@ -171,8 +168,8 @@ export class NgtPortal {
|
|
|
171
168
|
...restInputsState,
|
|
172
169
|
};
|
|
173
170
|
}
|
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
175
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
172
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: NgtPortal, isStandalone: true, selector: "ngt-portal", inputs: { container: { classPropertyName: "container", publicName: "container", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, autoRender: { classPropertyName: "autoRender", publicName: "autoRender", isSignal: true, isRequired: false, transformFunction: null }, autoRenderPriority: { classPropertyName: "autoRenderPriority", publicName: "autoRenderPriority", isSignal: true, isRequired: false, transformFunction: null } }, providers: [providePortalStore()], queries: [{ propertyName: "portalContentTemplate", first: true, predicate: NgtPortalContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "portalContentAnchor", first: true, predicate: ["portalContentAnchor"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
|
|
176
173
|
<ng-container #portalContentAnchor>
|
|
177
174
|
@if (renderAutoBeforeRender()) {
|
|
178
175
|
<ngt-portal-before-render
|
|
@@ -184,7 +181,7 @@ export class NgtPortal {
|
|
|
184
181
|
</ng-container>
|
|
185
182
|
`, isInline: true, dependencies: [{ kind: "component", type: NgtPortalBeforeRender, selector: "ngt-portal-before-render", inputs: ["renderPriority", "parentScene", "parentCamera"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
186
183
|
}
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtPortal, decorators: [{
|
|
188
185
|
type: Component,
|
|
189
186
|
args: [{
|
|
190
187
|
selector: 'ngt-portal',
|
|
@@ -205,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
205
202
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
206
203
|
}]
|
|
207
204
|
}], ctorParameters: () => [] });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsU0FBUyxFQUNULGdCQUFnQixHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDckMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQStCLE1BQU0sU0FBUyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTlDLE1BQU0sV0FBVyxHQUFHO0lBQ25CLEtBQUs7SUFDTCxLQUFLO0lBQ0wsUUFBUTtJQUNSLFNBQVM7SUFDVCxRQUFRO0lB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RSxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUU7WUFDMUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFO1lBQ3BDLFFBQVEsRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3hELEdBQUcsZUFBZTtTQUNOLENBQUM7SUFDZixDQUFDOzhHQXRGVyxTQUFTO2tHQUFULFNBQVMseWVBSFYsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLDZFQWlCYSxnQkFBZ0IsMkJBQVUsV0FBVyxvSkFDWCxnQkFBZ0IsNkNBOUI5RTs7Ozs7Ozs7OztFQVVULDREQTdEVyxxQkFBcUI7OzJGQWtFckIsU0FBUztrQkFsQnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7RUFVVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDaEMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0SW5qZWN0b3IsXG5cdGlucHV0LFxuXHRzaWduYWwsXG5cdFNraXBTZWxmLFxuXHRUZW1wbGF0ZVJlZixcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgY3JlYXRlSW5qZWN0aW9uVG9rZW4gfSBmcm9tICduZ3h0ZW5zaW9uL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RFdmVudE1hbmFnZXIgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBwcmVwYXJlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYgfSBmcm9tICcuL3JlZic7XG5pbXBvcnQgeyBTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UIH0gZnJvbSAnLi9yZW5kZXJlci9jb25zdGFudHMnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0U3RvcmUsIE5HVF9TVE9SRSwgdHlwZSBOZ3RTaXplLCB0eXBlIE5ndFN0YXRlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBpbmplY3RCZWZvcmVSZW5kZXIgfSBmcm9tICcuL3V0aWxzL2JlZm9yZS1yZW5kZXInO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL3V0aWxzL2lzJztcbmltcG9ydCB7IHNpZ25hbFN0b3JlLCB0eXBlIE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi91dGlscy9zaWduYWwtc3RvcmUnO1xuaW1wb3J0IHsgdXBkYXRlQ2FtZXJhIH0gZnJvbSAnLi91dGlscy91cGRhdGUnO1xuXG5jb25zdCBwcml2YXRlS2V5cyA9IFtcblx0J2dldCcsXG5cdCdzZXQnLFxuXHQnc2VsZWN0Jyxcblx0J3NldFNpemUnLFxuXHQnc2V0RHByJyxcblx0J3NldEZyYW1lbG9vcCcsXG5cdCdldmVudHMnLFxuXHQnaW52YWxpZGF0ZScsXG5cdCdhZHZhbmNlJyxcblx0J3NpemUnLFxuXHQndmlld3BvcnQnLFxuXSBhcyBjb25zdDtcbnR5cGUgUHJpdmF0ZUtleXMgPSAodHlwZW9mIHByaXZhdGVLZXlzKVtudW1iZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndFBvcnRhbElucHV0cyB7XG5cdGNvbnRhaW5lcjogRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRD4gfCBUSFJFRS5PYmplY3QzRDtcblx0Y2FtZXJhOiBFbGVtZW50UmVmPFRIUkVFLkNhbWVyYT4gfCBUSFJFRS5DYW1lcmE7XG5cdHN0YXRlOiBQYXJ0aWFsPFxuXHRcdE9taXQ8Tmd0U3RhdGUsIFByaXZhdGVLZXlzPiAmIHtcblx0XHRcdGV2ZW50czogUGFydGlhbDxQaWNrPE5ndEV2ZW50TWFuYWdlcjxhbnk+LCAnZW5hYmxlZCcgfCAncHJpb3JpdHknIHwgJ2NvbXB1dGUnIHwgJ2Nvbm5lY3RlZCc+Pjtcblx0XHRcdHNpemU6IE5ndFNpemU7XG5cdFx0fVxuXHQ+O1xufVxuXG5jb25zdCBbLCBwcm92aWRlUG9ydGFsU3RvcmVdID0gY3JlYXRlSW5qZWN0aW9uVG9rZW4oXG5cdChwYXJlbnRTdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSA9PiB7XG5cdFx0Y29uc3QgcGFyZW50U3RhdGUgPSBwYXJlbnRTdG9yZS5zbmFwc2hvdDtcblx0XHRjb25zdCBwb2ludGVyID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcblx0XHRjb25zdCByYXljYXN0ZXIgPSBuZXcgVEhSRUUuUmF5Y2FzdGVyKCk7XG5cdFx0cmV0dXJuIHNpZ25hbFN0b3JlPE5ndFN0YXRlPigoeyB1cGRhdGUgfSkgPT4ge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Li4ucGFyZW50U3RhdGUsXG5cdFx0XHRcdHBvaW50ZXIsXG5cdFx0XHRcdHJheWNhc3Rlcixcblx0XHRcdFx0cHJldmlvdXNSb290OiBwYXJlbnRTdG9yZSxcblx0XHRcdFx0Ly8gTGF5ZXJzIGFyZSBhbGxvd2VkIHRvIG92ZXJyaWRlIGV2ZW50c1xuXHRcdFx0XHRzZXRFdmVudHM6IChldmVudHMpID0+IHVwZGF0ZSgoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCBldmVudHM6IHsgLi4uc3RhdGUuZXZlbnRzLCAuLi5ldmVudHMgfSB9KSksXG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9LFxuXHR7IGlzUm9vdDogZmFsc2UsIHRva2VuOiBOR1RfU1RPUkUsIGRlcHM6IFtbbmV3IFNraXBTZWxmKCksIE5HVF9TVE9SRV1dIH0sXG4pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3QtcG9ydGFsLWJlZm9yZS1yZW5kZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDwhLS0gV2l0aG91dCBhbiBlbGVtZW50IHRoYXQgcmVjZWl2ZXMgcG9pbnRlciBldmVudHMgc3RhdGUucG9pbnRlciB3aWxsIGFsd2F5cyBiZSAwLzAgLS0+XG5cdFx0PG5ndC1ncm91cCAocG9pbnRlcm92ZXIpPVwib25Qb2ludGVyT3ZlcigpXCIgYXR0YWNoPVwibm9uZVwiIC8+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsQmVmb3JlUmVuZGVyIHtcblx0cHJpdmF0ZSBwb3J0YWxTdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdHJlbmRlclByaW9yaXR5ID0gaW5wdXQoMSk7XG5cdHBhcmVudFNjZW5lID0gaW5wdXQucmVxdWlyZWQ8VEhSRUUuU2NlbmU+KCk7XG5cdHBhcmVudENhbWVyYSA9IGlucHV0LnJlcXVpcmVkPFRIUkVFLkNhbWVyYT4oKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0bGV0IG9sZENsZWFyOiBib29sZWFuO1xuXHRcdFx0aW5qZWN0QmVmb3JlUmVuZGVyKFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBnbCwgc2NlbmUsIGNhbWVyYSB9ID0gdGhpcy5wb3J0YWxTdG9yZS5nZXQoKTtcblx0XHRcdFx0XHRvbGRDbGVhciA9IGdsLmF1dG9DbGVhcjtcblx0XHRcdFx0XHRpZiAodGhpcy5yZW5kZXJQcmlvcml0eSgpID09PSAxKSB7XG5cdFx0XHRcdFx0XHQvLyBjbGVhciBzY2VuZSBhbmQgcmVuZGVyIHdpdGggZGVmYXVsdFxuXHRcdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGdsLnJlbmRlcih0aGlzLnBhcmVudFNjZW5lKCksIHRoaXMucGFyZW50Q2FtZXJhKCkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBkaXNhYmxlIGNsZWFuaW5nXG5cdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gZmFsc2U7XG5cdFx0XHRcdFx0Z2wuY2xlYXJEZXB0aCgpO1xuXHRcdFx0XHRcdGdsLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcblx0XHRcdFx0XHQvLyByZXN0b3JlXG5cdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gb2xkQ2xlYXI7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHsgcHJpb3JpdHk6IHRoaXMucmVuZGVyUHJpb3JpdHkoKSwgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSxcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblxuXHRvblBvaW50ZXJPdmVyKCkge1xuXHRcdC8qIG5vb3AgKi9cblx0fVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtuZ3RQb3J0YWxDb250ZW50XScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RQb3J0YWxDb250ZW50IHtcblx0Y29uc3RydWN0b3IodmNyOiBWaWV3Q29udGFpbmVyUmVmLCBAU2tpcFNlbGYoKSBwYXJlbnRWY3I6IFZpZXdDb250YWluZXJSZWYpIHtcblx0XHRjb25zdCBjb21tZW50Tm9kZSA9IHZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKGNvbW1lbnROb2RlW1NQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlRdKSB7XG5cdFx0XHRjb21tZW50Tm9kZVtTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UXShwYXJlbnRWY3IuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblx0XHRcdGRlbGV0ZSBjb21tZW50Tm9kZVtTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UXTtcblx0XHR9XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0LXBvcnRhbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRhaW5lciAjcG9ydGFsQ29udGVudEFuY2hvcj5cblx0XHRcdEBpZiAocmVuZGVyQXV0b0JlZm9yZVJlbmRlcigpKSB7XG5cdFx0XHRcdDxuZ3QtcG9ydGFsLWJlZm9yZS1yZW5kZXJcblx0XHRcdFx0XHRbcmVuZGVyUHJpb3JpdHldPVwiYXV0b1JlbmRlclByaW9yaXR5KClcIlxuXHRcdFx0XHRcdFtwYXJlbnRTY2VuZV09XCJwYXJlbnRTY2VuZVwiXG5cdFx0XHRcdFx0W3BhcmVudENhbWVyYV09XCJwYXJlbnRDYW1lcmFcIlxuXHRcdFx0XHQvPlxuXHRcdFx0fVxuXHRcdDwvbmctY29udGFpbmVyPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0UG9ydGFsQmVmb3JlUmVuZGVyXSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZVBvcnRhbFN0b3JlKCldLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsIHtcblx0b3B0aW9ucyA9IGlucHV0KFxuXHRcdHsgY29udGFpbmVyOiBpbmplY3ROZ3RSZWY8VEhSRUUuU2NlbmU+KHByZXBhcmUobmV3IFRIUkVFLlNjZW5lKCkpKSB9LFxuXHRcdHtcblx0XHRcdHRyYW5zZm9ybTogKHZhbHVlOiBQYXJ0aWFsPE5ndFBvcnRhbElucHV0cz4pID0+ICh7XG5cdFx0XHRcdGNvbnRhaW5lcjogaW5qZWN0Tmd0UmVmPFRIUkVFLlNjZW5lPihwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpKSksXG5cdFx0XHRcdC4uLnZhbHVlLFxuXHRcdFx0fSksXG5cdFx0fSxcblx0KTtcblxuXHRhdXRvUmVuZGVyID0gaW5wdXQoZmFsc2UpO1xuXHRhdXRvUmVuZGVyUHJpb3JpdHkgPSBpbnB1dCgxKTtcblxuXHRwb3J0YWxDb250ZW50VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoTmd0UG9ydGFsQ29udGVudCwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KTtcblx0cG9ydGFsQ29udGVudEFuY2hvciA9IHZpZXdDaGlsZC5yZXF1aXJlZCgncG9ydGFsQ29udGVudEFuY2hvcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KTtcblxuXHRwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0cHJpdmF0ZSBwYXJlbnRTdG9yZSA9IGluamVjdE5ndFN0b3JlKHsgc2tpcFNlbGY6IHRydWUgfSk7XG5cdHByaXZhdGUgcG9ydGFsU3RvcmUgPSBpbmplY3ROZ3RTdG9yZSh7IHNlbGY6IHRydWUgfSk7XG5cblx0cHJpdmF0ZSBwb3J0YWxSZW5kZXJlZCA9IHNpZ25hbChmYWxzZSk7XG5cblx0cHJvdGVjdGVkIHJlbmRlckF1dG9CZWZvcmVSZW5kZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBvcnRhbFJlbmRlcmVkKCkgJiYgdGhpcy5hdXRvUmVuZGVyKCkpO1xuXHRwcm90ZWN0ZWQgcGFyZW50U2NlbmUgPSB0aGlzLnBhcmVudFN0b3JlLmdldCgnc2NlbmUnKTtcblx0cHJvdGVjdGVkIHBhcmVudENhbWVyYSA9IHRoaXMucGFyZW50U3RvcmUuZ2V0KCdjYW1lcmEnKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3QgcGFyZW50U3RhdGUgPSB0aGlzLnBhcmVudFN0b3JlLnNuYXBzaG90O1xuXHRcdFx0Y29uc3QgeyBjb250YWluZXIsIHN0YXRlOiB7IGV2ZW50cyA9IHt9LCBzaXplID0ge30sIC4uLnJlc3QgfSA9IHt9IH0gPSB1bnRyYWNrZWQodGhpcy5vcHRpb25zKTtcblxuXHRcdFx0dGhpcy5wb3J0YWxTdG9yZS51cGRhdGUoe1xuXHRcdFx0XHRzY2VuZTogKGlzLnJlZihjb250YWluZXIpID8gY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgOiBjb250YWluZXIpIGFzIFRIUkVFLlNjZW5lLFxuXHRcdFx0XHRldmVudHM6IHsgLi4ucGFyZW50U3RhdGUuZXZlbnRzLCAuLi5ldmVudHMgfSxcblx0XHRcdFx0c2l6ZTogeyAuLi5wYXJlbnRTdGF0ZS5zaXplLCAuLi5zaXplIH0sXG5cdFx0XHRcdC4uLnJlc3QsXG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXMgPSB0aGlzLnBhcmVudFN0b3JlLnN0YXRlKCk7XG5cdFx0XHRcdHRoaXMucG9ydGFsU3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gdGhpcy5pbmplY3QocHJldmlvdXMsIHN0YXRlKSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0Y29uc3QgcG9ydGFsVmlldyA9IHRoaXMucG9ydGFsQ29udGVudEFuY2hvcigpLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnBvcnRhbENvbnRlbnRUZW1wbGF0ZSgpKTtcblx0XHRcdFx0cG9ydGFsVmlldy5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3kocG9ydGFsVmlldy5kZXN0cm95LmJpbmQocG9ydGFsVmlldykpO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMucG9ydGFsUmVuZGVyZWQuc2V0KHRydWUpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBpbmplY3Qocm9vdFN0YXRlOiBOZ3RTdGF0ZSwgaW5qZWN0U3RhdGU6IE5ndFN0YXRlKSB7XG5cdFx0Y29uc3QgaW50ZXJzZWN0OiBQYXJ0aWFsPE5ndFN0YXRlPiA9IHsgLi4ucm9vdFN0YXRlIH07XG5cblx0XHRPYmplY3Qua2V5cyhpbnRlcnNlY3QpLmZvckVhY2goKGtleSkgPT4ge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRwcml2YXRlS2V5cy5pbmNsdWRlcyhrZXkgYXMgUHJpdmF0ZUtleXMpIHx8XG5cdFx0XHRcdHJvb3RTdGF0ZVtrZXkgYXMga2V5b2YgTmd0U3RhdGVdICE9PSBpbmplY3RTdGF0ZVtrZXkgYXMga2V5b2YgTmd0U3RhdGVdXG5cdFx0XHQpIHtcblx0XHRcdFx0ZGVsZXRlIGludGVyc2VjdFtrZXkgYXMga2V5b2YgTmd0U3RhdGVdO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgaW5wdXRzID0gdW50cmFja2VkKHRoaXMub3B0aW9ucyk7XG5cdFx0Y29uc3QgeyBzaXplLCBldmVudHMsIC4uLnJlc3RJbnB1dHNTdGF0ZSB9ID0gaW5wdXRzLnN0YXRlIHx8IHt9O1xuXG5cdFx0bGV0IHZpZXdwb3J0ID0gdW5kZWZpbmVkO1xuXHRcdGlmIChpbmplY3RTdGF0ZSAmJiBzaXplKSB7XG5cdFx0XHRjb25zdCBjYW1lcmEgPSBpbmplY3RTdGF0ZS5jYW1lcmE7XG5cdFx0XHR2aWV3cG9ydCA9IHJvb3RTdGF0ZS52aWV3cG9ydC5nZXRDdXJyZW50Vmlld3BvcnQoY2FtZXJhLCBuZXcgVEhSRUUuVmVjdG9yMygpLCBzaXplKTtcblx0XHRcdGlmIChjYW1lcmEgIT09IHJvb3RTdGF0ZS5jYW1lcmEpIHVwZGF0ZUNhbWVyYShjYW1lcmEsIHNpemUpO1xuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHQuLi5pbnRlcnNlY3QsXG5cdFx0XHRzY2VuZTogaXMucmVmKGlucHV0cy5jb250YWluZXIpID8gaW5wdXRzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50IDogaW5wdXRzLmNvbnRhaW5lcixcblx0XHRcdHByZXZpb3VzUm9vdDogdGhpcy5wYXJlbnRTdG9yZSxcblx0XHRcdGV2ZW50czogeyAuLi5yb290U3RhdGUuZXZlbnRzLCAuLi4oaW5qZWN0U3RhdGU/LmV2ZW50cyB8fCB7fSksIC4uLmV2ZW50cyB9LFxuXHRcdFx0c2l6ZTogeyAuLi5yb290U3RhdGUuc2l6ZSwgLi4uc2l6ZSB9LFxuXHRcdFx0dmlld3BvcnQ6IHsgLi4ucm9vdFN0YXRlLnZpZXdwb3J0LCAuLi4odmlld3BvcnQgfHwge30pIH0sXG5cdFx0XHQuLi5yZXN0SW5wdXRzU3RhdGUsXG5cdFx0fSBhcyBOZ3RTdGF0ZTtcblx0fVxufVxuIl19
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsU0FBUyxFQUVULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBb0IsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxTQUFTLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFOUMsTUFBTSxXQUFXLEdBQUc7SUFDbkIsS0FBSztJQUNMLEtBQUs7SUFDTCxR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LFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUN4RCxHQUFHLGVBQWU7U0FDTixDQUFDO0lBQ2YsQ0FBQzs4R0F2RlcsU0FBUztrR0FBVCxTQUFTLGt1QkFIVixDQUFDLGtCQUFrQixFQUFFLENBQUMsNkVBa0JhLGdCQUFnQiwyQkFBVSxXQUFXLG9KQUNYLGdCQUFnQiw2Q0EvQjlFOzs7Ozs7Ozs7O0VBVVQsNERBN0RXLHFCQUFxQjs7MkZBa0VyQixTQUFTO2tCQWxCckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7OztFQVVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRjb250ZW50Q2hpbGQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRJbmplY3Rvcixcblx0aW5wdXQsXG5cdHNpZ25hbCxcblx0U2tpcFNlbGYsXG5cdFRlbXBsYXRlUmVmLFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcblx0Vmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBjcmVhdGVJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ25neHRlbnNpb24vY3JlYXRlLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBDYW1lcmEsIE9iamVjdDNELCBSYXljYXN0ZXIsIFNjZW5lLCBWZWN0b3IyLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0RXZlbnRNYW5hZ2VyIH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgcHJlcGFyZSB9IGZyb20gJy4vaW5zdGFuY2UnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0UmVmIH0gZnJvbSAnLi9yZWYnO1xuaW1wb3J0IHsgU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVCB9IGZyb20gJy4vcmVuZGVyZXIvY29uc3RhbnRzJztcbmltcG9ydCB7IGluamVjdE5ndFN0b3JlLCBOR1RfU1RPUkUsIE5ndFNpemUsIE5ndFN0YXRlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBpbmplY3RCZWZvcmVSZW5kZXIgfSBmcm9tICcuL3V0aWxzL2JlZm9yZS1yZW5kZXInO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL3V0aWxzL2lzJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlLCBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IHVwZGF0ZUNhbWVyYSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlJztcblxuY29uc3QgcHJpdmF0ZUtleXMgPSBbXG5cdCdnZXQnLFxuXHQnc2V0Jyxcblx0J3NlbGVjdCcsXG5cdCdzZXRTaXplJyxcblx0J3NldERwcicsXG5cdCdzZXRGcmFtZWxvb3AnLFxuXHQnZXZlbnRzJyxcblx0J2ludmFsaWRhdGUnLFxuXHQnYWR2YW5jZScsXG5cdCdzaXplJyxcblx0J3ZpZXdwb3J0Jyxcbl0gYXMgY29uc3Q7XG50eXBlIFByaXZhdGVLZXlzID0gKHR5cGVvZiBwcml2YXRlS2V5cylbbnVtYmVyXTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RQb3J0YWxJbnB1dHMge1xuXHRjb250YWluZXI6IEVsZW1lbnRSZWY8T2JqZWN0M0Q+IHwgT2JqZWN0M0Q7XG5cdGNhbWVyYTogRWxlbWVudFJlZjxDYW1lcmE+IHwgQ2FtZXJhO1xuXHRzdGF0ZTogUGFydGlhbDxcblx0XHRPbWl0PE5ndFN0YXRlLCBQcml2YXRlS2V5cz4gJiB7XG5cdFx0XHRldmVudHM6IFBhcnRpYWw8UGljazxOZ3RFdmVudE1hbmFnZXI8YW55PiwgJ2VuYWJsZWQnIHwgJ3ByaW9yaXR5JyB8ICdjb21wdXRlJyB8ICdjb25uZWN0ZWQnPj47XG5cdFx0XHRzaXplOiBOZ3RTaXplO1xuXHRcdH1cblx0Pjtcbn1cblxuY29uc3QgWywgcHJvdmlkZVBvcnRhbFN0b3JlXSA9IGNyZWF0ZUluamVjdGlvblRva2VuKFxuXHQocGFyZW50U3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPikgPT4ge1xuXHRcdGNvbnN0IHBhcmVudFN0YXRlID0gcGFyZW50U3RvcmUuc25hcHNob3Q7XG5cdFx0Y29uc3QgcG9pbnRlciA9IG5ldyBWZWN0b3IyKCk7XG5cdFx0Y29uc3QgcmF5Y2FzdGVyID0gbmV3IFJheWNhc3RlcigpO1xuXHRcdHJldHVybiBzaWduYWxTdG9yZTxOZ3RTdGF0ZT4oKHsgdXBkYXRlIH0pID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLnBhcmVudFN0YXRlLFxuXHRcdFx0XHRwb2ludGVyLFxuXHRcdFx0XHRyYXljYXN0ZXIsXG5cdFx0XHRcdHByZXZpb3VzUm9vdDogcGFyZW50U3RvcmUsXG5cdFx0XHRcdC8vIExheWVycyBhcmUgYWxsb3dlZCB0byBvdmVycmlkZSBldmVudHNcblx0XHRcdFx0c2V0RXZlbnRzOiAoZXZlbnRzKSA9PiB1cGRhdGUoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgZXZlbnRzOiB7IC4uLnN0YXRlLmV2ZW50cywgLi4uZXZlbnRzIH0gfSkpLFxuXHRcdFx0fTtcblx0XHR9KTtcblx0fSxcblx0eyBpc1Jvb3Q6IGZhbHNlLCB0b2tlbjogTkdUX1NUT1JFLCBkZXBzOiBbW25ldyBTa2lwU2VsZigpLCBOR1RfU1RPUkVdXSB9LFxuKTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0LXBvcnRhbC1iZWZvcmUtcmVuZGVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8IS0tIFdpdGhvdXQgYW4gZWxlbWVudCB0aGF0IHJlY2VpdmVzIHBvaW50ZXIgZXZlbnRzIHN0YXRlLnBvaW50ZXIgd2lsbCBhbHdheXMgYmUgMC8wIC0tPlxuXHRcdDxuZ3QtZ3JvdXAgKHBvaW50ZXJvdmVyKT1cIm9uUG9pbnRlck92ZXIoKVwiIGF0dGFjaD1cIm5vbmVcIiAvPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndFBvcnRhbEJlZm9yZVJlbmRlciB7XG5cdHByaXZhdGUgcG9ydGFsU3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuXHRyZW5kZXJQcmlvcml0eSA9IGlucHV0KDEpO1xuXHRwYXJlbnRTY2VuZSA9IGlucHV0LnJlcXVpcmVkPFNjZW5lPigpO1xuXHRwYXJlbnRDYW1lcmEgPSBpbnB1dC5yZXF1aXJlZDxDYW1lcmE+KCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGxldCBvbGRDbGVhcjogYm9vbGVhbjtcblx0XHRcdGluamVjdEJlZm9yZVJlbmRlcihcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHsgZ2wsIHNjZW5lLCBjYW1lcmEgfSA9IHRoaXMucG9ydGFsU3RvcmUuZ2V0KCk7XG5cdFx0XHRcdFx0b2xkQ2xlYXIgPSBnbC5hdXRvQ2xlYXI7XG5cdFx0XHRcdFx0aWYgKHRoaXMucmVuZGVyUHJpb3JpdHkoKSA9PT0gMSkge1xuXHRcdFx0XHRcdFx0Ly8gY2xlYXIgc2NlbmUgYW5kIHJlbmRlciB3aXRoIGRlZmF1bHRcblx0XHRcdFx0XHRcdGdsLmF1dG9DbGVhciA9IHRydWU7XG5cdFx0XHRcdFx0XHRnbC5yZW5kZXIodGhpcy5wYXJlbnRTY2VuZSgpLCB0aGlzLnBhcmVudENhbWVyYSgpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gZGlzYWJsZSBjbGVhbmluZ1xuXHRcdFx0XHRcdGdsLmF1dG9DbGVhciA9IGZhbHNlO1xuXHRcdFx0XHRcdGdsLmNsZWFyRGVwdGgoKTtcblx0XHRcdFx0XHRnbC5yZW5kZXIoc2NlbmUsIGNhbWVyYSk7XG5cdFx0XHRcdFx0Ly8gcmVzdG9yZVxuXHRcdFx0XHRcdGdsLmF1dG9DbGVhciA9IG9sZENsZWFyO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR7IHByaW9yaXR5OiB0aGlzLnJlbmRlclByaW9yaXR5KCksIGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0sXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0b25Qb2ludGVyT3ZlcigpIHtcblx0XHQvKiBub29wICovXG5cdH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbmd0UG9ydGFsQ29udGVudF0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsQ29udGVudCB7XG5cdGNvbnN0cnVjdG9yKHZjcjogVmlld0NvbnRhaW5lclJlZiwgQFNraXBTZWxmKCkgcGFyZW50VmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG5cdFx0Y29uc3QgY29tbWVudE5vZGUgPSB2Y3IuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXHRcdGlmIChjb21tZW50Tm9kZVtTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UXSkge1xuXHRcdFx0Y29tbWVudE5vZGVbU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVF0ocGFyZW50VmNyLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRkZWxldGUgY29tbWVudE5vZGVbU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVF07XG5cdFx0fVxuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndC1wb3J0YWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy1jb250YWluZXIgI3BvcnRhbENvbnRlbnRBbmNob3I+XG5cdFx0XHRAaWYgKHJlbmRlckF1dG9CZWZvcmVSZW5kZXIoKSkge1xuXHRcdFx0XHQ8bmd0LXBvcnRhbC1iZWZvcmUtcmVuZGVyXG5cdFx0XHRcdFx0W3JlbmRlclByaW9yaXR5XT1cImF1dG9SZW5kZXJQcmlvcml0eSgpXCJcblx0XHRcdFx0XHRbcGFyZW50U2NlbmVdPVwicGFyZW50U2NlbmVcIlxuXHRcdFx0XHRcdFtwYXJlbnRDYW1lcmFdPVwicGFyZW50Q2FtZXJhXCJcblx0XHRcdFx0Lz5cblx0XHRcdH1cblx0XHQ8L25nLWNvbnRhaW5lcj5cblx0YCxcblx0aW1wb3J0czogW05ndFBvcnRhbEJlZm9yZVJlbmRlcl0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVQb3J0YWxTdG9yZSgpXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndFBvcnRhbCB7XG5cdGNvbnRhaW5lciA9IGlucHV0PEVsZW1lbnRSZWY8T2JqZWN0M0Q+IHwgT2JqZWN0M0Q+KGluamVjdE5ndFJlZihwcmVwYXJlKG5ldyBTY2VuZSgpKSkpO1xuXHRjYW1lcmEgPSBpbnB1dDxFbGVtZW50UmVmPENhbWVyYT4gfCBDYW1lcmE+KCk7XG5cdHN0YXRlID0gaW5wdXQ8XG5cdFx0UGFydGlhbDxcblx0XHRcdE9taXQ8Tmd0U3RhdGUsIFByaXZhdGVLZXlzPiAmIHtcblx0XHRcdFx0ZXZlbnRzOiBQYXJ0aWFsPFBpY2s8Tmd0RXZlbnRNYW5hZ2VyPGFueT4sICdlbmFibGVkJyB8ICdwcmlvcml0eScgfCAnY29tcHV0ZScgfCAnY29ubmVjdGVkJz4+O1xuXHRcdFx0XHRzaXplOiBOZ3RTaXplO1xuXHRcdFx0fVxuXHRcdD5cblx0PigpO1xuXG5cdGF1dG9SZW5kZXIgPSBpbnB1dChmYWxzZSk7XG5cdGF1dG9SZW5kZXJQcmlvcml0eSA9IGlucHV0KDEpO1xuXG5cdHBvcnRhbENvbnRlbnRUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChOZ3RQb3J0YWxDb250ZW50LCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pO1xuXHRwb3J0YWxDb250ZW50QW5jaG9yID0gdmlld0NoaWxkLnJlcXVpcmVkKCdwb3J0YWxDb250ZW50QW5jaG9yJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pO1xuXG5cdHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIHBhcmVudFN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoeyBza2lwU2VsZjogdHJ1ZSB9KTtcblx0cHJpdmF0ZSBwb3J0YWxTdG9yZSA9IGluamVjdE5ndFN0b3JlKHsgc2VsZjogdHJ1ZSB9KTtcblxuXHRwcml2YXRlIHBvcnRhbFJlbmRlcmVkID0gc2lnbmFsKGZhbHNlKTtcblxuXHRwcm90ZWN0ZWQgcmVuZGVyQXV0b0JlZm9yZVJlbmRlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMucG9ydGFsUmVuZGVyZWQoKSAmJiB0aGlzLmF1dG9SZW5kZXIoKSk7XG5cdHByb3RlY3RlZCBwYXJlbnRTY2VuZSA9IHRoaXMucGFyZW50U3RvcmUuZ2V0KCdzY2VuZScpO1xuXHRwcm90ZWN0ZWQgcGFyZW50Q2FtZXJhID0gdGhpcy5wYXJlbnRTdG9yZS5nZXQoJ2NhbWVyYScpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBwYXJlbnRTdGF0ZSA9IHRoaXMucGFyZW50U3RvcmUuc25hcHNob3Q7XG5cdFx0XHRjb25zdCBbY29udGFpbmVyLCB7IGV2ZW50cyA9IHt9LCBzaXplID0ge30sIC4uLnJlc3QgfSA9IHt9XSA9IFt0aGlzLmNvbnRhaW5lcigpLCB0aGlzLnN0YXRlKCldO1xuXG5cdFx0XHR0aGlzLnBvcnRhbFN0b3JlLnVwZGF0ZSh7XG5cdFx0XHRcdHNjZW5lOiAoaXMucmVmKGNvbnRhaW5lcikgPyBjb250YWluZXIubmF0aXZlRWxlbWVudCA6IGNvbnRhaW5lcikgYXMgU2NlbmUsXG5cdFx0XHRcdGV2ZW50czogeyAuLi5wYXJlbnRTdGF0ZS5ldmVudHMsIC4uLmV2ZW50cyB9LFxuXHRcdFx0XHRzaXplOiB7IC4uLnBhcmVudFN0YXRlLnNpemUsIC4uLnNpemUgfSxcblx0XHRcdFx0Li4ucmVzdCxcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBwcmV2aW91cyA9IHRoaXMucGFyZW50U3RvcmUuc3RhdGUoKTtcblx0XHRcdFx0dGhpcy5wb3J0YWxTdG9yZS51cGRhdGUoKHN0YXRlKSA9PiB0aGlzLmluamVjdChwcmV2aW91cywgc3RhdGUpKTtcblx0XHRcdH0pO1xuXG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBwb3J0YWxWaWV3ID0gdGhpcy5wb3J0YWxDb250ZW50QW5jaG9yKCkuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMucG9ydGFsQ29udGVudFRlbXBsYXRlKCkpO1xuXHRcdFx0XHRwb3J0YWxWaWV3LmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0dGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveShwb3J0YWxWaWV3LmRlc3Ryb3kuYmluZChwb3J0YWxWaWV3KSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5wb3J0YWxSZW5kZXJlZC5zZXQodHJ1ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGluamVjdChyb290U3RhdGU6IE5ndFN0YXRlLCBpbmplY3RTdGF0ZTogTmd0U3RhdGUpIHtcblx0XHRjb25zdCBpbnRlcnNlY3Q6IFBhcnRpYWw8Tmd0U3RhdGU+ID0geyAuLi5yb290U3RhdGUgfTtcblxuXHRcdE9iamVjdC5rZXlzKGludGVyc2VjdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHByaXZhdGVLZXlzLmluY2x1ZGVzKGtleSBhcyBQcml2YXRlS2V5cykgfHxcblx0XHRcdFx0cm9vdFN0YXRlW2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV0gIT09IGluamVjdFN0YXRlW2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV1cblx0XHRcdCkge1xuXHRcdFx0XHRkZWxldGUgaW50ZXJzZWN0W2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRjb25zdCBjb250YWluZXIgPSB1bnRyYWNrZWQodGhpcy5jb250YWluZXIpO1xuXHRcdGNvbnN0IHsgc2l6ZSwgZXZlbnRzLCAuLi5yZXN0SW5wdXRzU3RhdGUgfSA9IHVudHJhY2tlZCh0aGlzLnN0YXRlKSB8fCB7fTtcblxuXHRcdGxldCB2aWV3cG9ydCA9IHVuZGVmaW5lZDtcblx0XHRpZiAoaW5qZWN0U3RhdGUgJiYgc2l6ZSkge1xuXHRcdFx0Y29uc3QgY2FtZXJhID0gaW5qZWN0U3RhdGUuY2FtZXJhO1xuXHRcdFx0dmlld3BvcnQgPSByb290U3RhdGUudmlld3BvcnQuZ2V0Q3VycmVudFZpZXdwb3J0KGNhbWVyYSwgbmV3IFZlY3RvcjMoKSwgc2l6ZSk7XG5cdFx0XHRpZiAoY2FtZXJhICE9PSByb290U3RhdGUuY2FtZXJhKSB1cGRhdGVDYW1lcmEoY2FtZXJhLCBzaXplKTtcblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uaW50ZXJzZWN0LFxuXHRcdFx0c2NlbmU6IGlzLnJlZihjb250YWluZXIpID8gY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgOiBjb250YWluZXIsXG5cdFx0XHRwcmV2aW91c1Jvb3Q6IHRoaXMucGFyZW50U3RvcmUsXG5cdFx0XHRldmVudHM6IHsgLi4ucm9vdFN0YXRlLmV2ZW50cywgLi4uKGluamVjdFN0YXRlPy5ldmVudHMgfHwge30pLCAuLi5ldmVudHMgfSxcblx0XHRcdHNpemU6IHsgLi4ucm9vdFN0YXRlLnNpemUsIC4uLnNpemUgfSxcblx0XHRcdHZpZXdwb3J0OiB7IC4uLnJvb3RTdGF0ZS52aWV3cG9ydCwgLi4uKHZpZXdwb3J0IHx8IHt9KSB9LFxuXHRcdFx0Li4ucmVzdElucHV0c1N0YXRlLFxuXHRcdH0gYXMgTmd0U3RhdGU7XG5cdH1cbn1cbiJdfQ==
|
package/esm2022/lib/ref.mjs
CHANGED
|
@@ -43,4 +43,4 @@ export function injectNgtRef(initial = null, injector) {
|
|
|
43
43
|
return ref;
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFvQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBbUIsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFTaEMsTUFBTSxVQUFVLFlBQVksQ0FDM0IsVUFBMkMsSUFBSyxFQUNoRCxRQUFtQjtJQUVuQixPQUFPLGNBQWMsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLE9BQW1CLENBQUMsQ0FBQztRQUM1RSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVqQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFaEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxPQUEwQyxTQUFTLEVBQUUsRUFBRTtZQUN4RSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMvQixjQUFjLENBQUMsR0FBRyxDQUNqQixJQUFJLEVBQ0osUUFBUSxDQUFDLEdBQUcsRUFBRTtvQkFDYixNQUFNLFFBQVEsR0FBRyxXQUFXLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLFFBQVE7d0JBQUUsT0FBTyxFQUFFLENBQUM7b0JBQ3pCLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhO3dCQUFFLE9BQU8sRUFBRSxDQUFDO29CQUMxQyxJQUFJLElBQUksS0FBSyxTQUFTO3dCQUFFLE9BQU8sVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNwRCxJQUFJLElBQUksS0FBSyxZQUFZO3dCQUFFLE9BQU8sVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUMxRCxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDOUQsQ0FBQyxDQUFDLENBQ0YsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtZQUM1QixhQUFhLEVBQUU7Z0JBQ2QsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQ25CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7d0JBQ2QsSUFBSSxVQUFVLEtBQUssV0FBVyxFQUFFLEVBQUUsQ0FBQzs0QkFDbEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDM0IsQ0FBQztvQkFDRixDQUFDLENBQUMsQ0FBQztnQkFDSixDQUFDO2dCQUNELEdBQUcsRUFBRSxXQUFXO2FBQ2hCO1lBQ0QsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtTQUM3QixDQUFDLENBQUM7UUFFSCxPQUFPLEdBQStCLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgTmd0SW5zdGFuY2VOb2RlLCBnZXRMb2NhbFN0YXRlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuXG5leHBvcnQgdHlwZSBOZ3RJbmplY3RlZFJlZjxURWxlbWVudD4gPSBFbGVtZW50UmVmPFRFbGVtZW50PiAmIHtcblx0LyogY29uc3VtZXJzIHNob3VsZCB1c2UgdGhpcyBmb3IgbGlzdGVudGluZyB0byBjaGlsZHJlbiBjaGFuZ2VzIG9uIHRoaXMgcmVmICovXG5cdGNoaWxkcmVuOiAodHlwZT86ICdvYmplY3RzJyB8ICdub25PYmplY3RzJyB8ICdib3RoJykgPT4gU2lnbmFsPE5ndEluc3RhbmNlTm9kZVtdPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndFJlZjxURWxlbWVudD4gPSBURWxlbWVudCB8IE5ndEluamVjdGVkUmVmPFRFbGVtZW50PjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndFJlZjxURWxlbWVudD4oXG5cdGluaXRpYWw6IEVsZW1lbnRSZWY8VEVsZW1lbnQ+IHwgVEVsZW1lbnQgPSBudWxsISxcblx0aW5qZWN0b3I/OiBJbmplY3Rvcixcbik6IE5ndEluamVjdGVkUmVmPFRFbGVtZW50PiB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3ROZ3RSZWYsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgcmVmID0gaXMucmVmKGluaXRpYWwpID8gaW5pdGlhbCA6IG5ldyBFbGVtZW50UmVmKGluaXRpYWwgYXMgVEVsZW1lbnQpO1xuXHRcdGNvbnN0IHJlZlNpZ25hbCA9IHNpZ25hbChyZWYubmF0aXZlRWxlbWVudCwgeyBlcXVhbDogT2JqZWN0LmlzIH0pO1xuXHRcdGNvbnN0IHJlYWRvbmx5UmVmID0gcmVmU2lnbmFsLmFzUmVhZG9ubHkoKTtcblx0XHRjb25zdCBjb21wdXRlZENhY2hlZCA9IG5ldyBNYXAoKTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gdm9pZCBjb21wdXRlZENhY2hlZC5jbGVhcigpKTtcblxuXHRcdGNvbnN0IGNoaWxkcmVuID0gKHR5cGU6ICdvYmplY3RzJyB8ICdub25PYmplY3RzJyB8ICdib3RoJyA9ICdvYmplY3RzJykgPT4ge1xuXHRcdFx0aWYgKCFjb21wdXRlZENhY2hlZC5oYXModHlwZSkpIHtcblx0XHRcdFx0Y29tcHV0ZWRDYWNoZWQuc2V0KFxuXHRcdFx0XHRcdHR5cGUsXG5cdFx0XHRcdFx0Y29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgaW5zdGFuY2UgPSByZWFkb25seVJlZigpO1xuXHRcdFx0XHRcdFx0aWYgKCFpbnN0YW5jZSkgcmV0dXJuIFtdO1xuXHRcdFx0XHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpO1xuXHRcdFx0XHRcdFx0aWYgKCFsb2NhbFN0YXRlPy5pbnN0YW5jZVN0b3JlKSByZXR1cm4gW107XG5cdFx0XHRcdFx0XHRpZiAodHlwZSA9PT0gJ29iamVjdHMnKSByZXR1cm4gbG9jYWxTdGF0ZS5vYmplY3RzKCk7XG5cdFx0XHRcdFx0XHRpZiAodHlwZSA9PT0gJ25vbk9iamVjdHMnKSByZXR1cm4gbG9jYWxTdGF0ZS5ub25PYmplY3RzKCk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gWy4uLmxvY2FsU3RhdGUub2JqZWN0cygpLCAuLi5sb2NhbFN0YXRlLm5vbk9iamVjdHMoKV07XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29tcHV0ZWRDYWNoZWQuZ2V0KHR5cGUpITtcblx0XHR9O1xuXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocmVmLCB7XG5cdFx0XHRuYXRpdmVFbGVtZW50OiB7XG5cdFx0XHRcdHNldDogKG5ld0VsZW1lbnQpID0+IHtcblx0XHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKG5ld0VsZW1lbnQgIT09IHJlYWRvbmx5UmVmKCkpIHtcblx0XHRcdFx0XHRcdFx0cmVmU2lnbmFsLnNldChuZXdFbGVtZW50KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSxcblx0XHRcdFx0Z2V0OiByZWFkb25seVJlZixcblx0XHRcdH0sXG5cdFx0XHRjaGlsZHJlbjogeyB2YWx1ZTogY2hpbGRyZW4gfSxcblx0XHR9KTtcblxuXHRcdHJldHVybiByZWYgYXMgTmd0SW5qZWN0ZWRSZWY8VEVsZW1lbnQ+O1xuXHR9KTtcbn1cbiJdfQ==
|