angular-three 2.0.0-beta.2 → 2.0.0-beta.21
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/README.md +4 -147
- package/esm2022/angular-three.mjs +1 -1
- package/esm2022/index.mjs +11 -10
- package/esm2022/lib/before-render.mjs +13 -0
- package/esm2022/lib/canvas.mjs +130 -161
- package/esm2022/lib/directives/args.mjs +13 -11
- package/esm2022/lib/directives/common.mjs +29 -27
- package/esm2022/lib/directives/key.mjs +29 -0
- package/esm2022/lib/directives/parent.mjs +13 -11
- package/esm2022/lib/directives/repeat.mjs +5 -6
- package/esm2022/lib/dom/events.mjs +6 -1
- package/esm2022/lib/events.mjs +75 -58
- package/esm2022/lib/instance.mjs +65 -0
- package/esm2022/lib/loader.mjs +30 -37
- package/esm2022/lib/loop.mjs +6 -3
- package/esm2022/lib/portal.mjs +91 -102
- package/esm2022/lib/ref.mjs +48 -0
- package/esm2022/lib/renderer/catalogue.mjs +7 -0
- package/esm2022/lib/renderer/constants.mjs +21 -0
- package/esm2022/lib/renderer/index.mjs +419 -0
- package/esm2022/lib/renderer/store.mjs +144 -108
- package/esm2022/lib/renderer/utils.mjs +63 -48
- package/esm2022/lib/roots.mjs +249 -0
- package/esm2022/lib/routed-scene.mjs +11 -8
- package/esm2022/lib/store.mjs +207 -0
- package/esm2022/lib/three-types.mjs +2 -2
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/utils/apply-props.mjs +23 -11
- package/esm2022/lib/utils/assert-injection-context.mjs +14 -0
- package/esm2022/lib/utils/attach.mjs +2 -2
- package/esm2022/lib/utils/create-injection-token.mjs +47 -0
- package/esm2022/lib/utils/is.mjs +1 -1
- package/esm2022/lib/utils/make.mjs +1 -1
- package/esm2022/lib/utils/safe-detect-changes.mjs +15 -13
- package/esm2022/lib/utils/signal-store.mjs +91 -0
- package/esm2022/lib/utils/update.mjs +1 -1
- package/fesm2022/angular-three.mjs +1770 -1589
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +10 -9
- package/lib/{di/before-render.d.ts → before-render.d.ts} +1 -1
- package/lib/canvas.d.ts +81 -11
- package/lib/directives/args.d.ts +2 -2
- package/lib/directives/common.d.ts +5 -1
- package/lib/directives/key.d.ts +10 -0
- package/lib/directives/parent.d.ts +5 -5
- package/lib/dom/events.d.ts +3 -2
- package/lib/events.d.ts +78 -2
- package/lib/instance.d.ts +36 -0
- package/lib/loader.d.ts +13 -2
- package/lib/loop.d.ts +64 -6
- package/lib/portal.d.ts +20 -12
- package/lib/{di/ref.d.ts → ref.d.ts} +3 -2
- package/lib/renderer/catalogue.d.ts +9 -0
- package/lib/renderer/constants.d.ts +20 -0
- package/lib/renderer/index.d.ts +5 -0
- package/lib/renderer/store.d.ts +19 -15
- package/lib/renderer/utils.d.ts +28 -18
- package/lib/roots.d.ts +11 -0
- package/lib/routed-scene.d.ts +1 -1
- package/lib/store.d.ts +143 -0
- package/lib/three-types.d.ts +6 -6
- package/lib/types.d.ts +1 -309
- package/lib/utils/apply-props.d.ts +4 -2
- package/lib/utils/attach.d.ts +5 -3
- package/lib/utils/create-injection-token.d.ts +27 -0
- package/lib/utils/is.d.ts +4 -3
- package/lib/utils/make.d.ts +12 -1
- package/lib/utils/safe-detect-changes.d.ts +2 -2
- package/lib/utils/signal-store.d.ts +17 -0
- package/lib/utils/update.d.ts +1 -1
- package/metadata.json +1 -1
- package/package.json +5 -4
- package/plugin/generators.json +47 -17
- package/plugin/package.json +2 -5
- package/plugin/src/generators/init/compat.d.ts +3 -1
- package/plugin/src/generators/init/compat.js +2 -2
- package/plugin/src/generators/init/compat.js.map +1 -1
- package/plugin/src/generators/init/files/experience/experience.component.html.__tmpl__ +4 -0
- package/plugin/src/generators/init/files/experience/experience.component.ts.__tmpl__ +17 -0
- package/plugin/src/generators/init/generator.d.ts +6 -0
- package/plugin/src/generators/init/generator.js +144 -0
- package/plugin/src/generators/init/generator.js.map +1 -0
- package/plugin/src/generators/init/schema.json +15 -4
- package/plugin/src/generators/init-cannon/compat.d.ts +2 -0
- package/plugin/src/generators/init-cannon/compat.js +6 -0
- package/plugin/src/generators/init-cannon/compat.js.map +1 -0
- package/plugin/src/generators/init-cannon/generator.d.ts +2 -0
- package/plugin/src/generators/init-cannon/generator.js +22 -0
- package/plugin/src/generators/init-cannon/generator.js.map +1 -0
- package/plugin/src/generators/init-cannon/schema.json +6 -0
- package/plugin/src/generators/init-postprocessing/compat.d.ts +2 -0
- package/plugin/src/generators/init-postprocessing/compat.js +6 -0
- package/plugin/src/generators/init-postprocessing/compat.js.map +1 -0
- package/plugin/src/generators/init-postprocessing/generator.d.ts +2 -0
- package/plugin/src/generators/init-postprocessing/generator.js +20 -0
- package/plugin/src/generators/init-postprocessing/generator.js.map +1 -0
- package/plugin/src/generators/init-postprocessing/schema.json +6 -0
- package/plugin/src/generators/init-soba/compat.d.ts +2 -0
- package/plugin/src/generators/init-soba/compat.js +6 -0
- package/plugin/src/generators/init-soba/compat.js.map +1 -0
- package/plugin/src/generators/init-soba/generator.d.ts +2 -0
- package/plugin/src/generators/init-soba/generator.js +26 -0
- package/plugin/src/generators/init-soba/generator.js.map +1 -0
- package/plugin/src/generators/init-soba/schema.json +6 -0
- package/plugin/src/generators/utils.d.ts +2 -0
- package/plugin/src/generators/utils.js +34 -0
- package/plugin/src/generators/utils.js.map +1 -0
- package/plugin/src/generators/versions.d.ts +12 -0
- package/plugin/src/generators/versions.js +16 -0
- package/plugin/src/generators/versions.js.map +1 -0
- package/plugin/src/index.d.ts +3 -1
- package/plugin/src/index.js +7 -3
- package/plugin/src/index.js.map +1 -1
- package/web-types.json +1 -1
- package/esm2022/lib/di/before-render.mjs +0 -13
- package/esm2022/lib/di/catalogue.mjs +0 -7
- package/esm2022/lib/di/ref.mjs +0 -49
- package/esm2022/lib/renderer/di.mjs +0 -3
- package/esm2022/lib/renderer/enums.mjs +0 -2
- package/esm2022/lib/renderer/provider.mjs +0 -18
- package/esm2022/lib/renderer/renderer.mjs +0 -365
- package/esm2022/lib/stores/signal.store.mjs +0 -81
- package/esm2022/lib/stores/store.mjs +0 -423
- package/esm2022/lib/utils/assert-in-injection-context.mjs +0 -14
- package/esm2022/lib/utils/instance.mjs +0 -63
- package/esm2022/lib/utils/signal.mjs +0 -24
- package/esm2022/lib/utils/timing.mjs +0 -21
- package/lib/di/catalogue.d.ts +0 -3
- package/lib/renderer/di.d.ts +0 -2
- package/lib/renderer/enums.d.ts +0 -26
- package/lib/renderer/provider.d.ts +0 -8
- package/lib/renderer/renderer.d.ts +0 -49
- package/lib/stores/signal.store.d.ts +0 -20
- package/lib/stores/store.d.ts +0 -13
- package/lib/utils/instance.d.ts +0 -4
- package/lib/utils/signal.d.ts +0 -2
- package/lib/utils/timing.d.ts +0 -4
- package/plugin/src/generators/init/init.d.ts +0 -5
- package/plugin/src/generators/init/init.js +0 -56
- package/plugin/src/generators/init/init.js.map +0 -1
- /package/lib/utils/{assert-in-injection-context.d.ts → assert-injection-context.d.ts} +0 -0
package/esm2022/lib/portal.mjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { NgIf } from '@angular/common';
|
|
2
2
|
import { Component, ContentChild, DestroyRef, Directive, EventEmitter, Injector, Input, NgZone, Output, SkipSelf, TemplateRef, ViewChild, ViewContainerRef, effect, inject, } from '@angular/core';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
4
|
+
import { injectBeforeRender } from './before-render';
|
|
5
|
+
import { getLocalState, prepare } from './instance';
|
|
6
|
+
import { injectNgtRef } from './ref';
|
|
7
|
+
import { SPECIAL_INTERNAL_ADD_COMMENT } from './renderer/constants';
|
|
8
|
+
import { NGT_STORE, injectNgtStore } from './store';
|
|
9
9
|
import { is } from './utils/is';
|
|
10
10
|
import { safeDetectChanges } from './utils/safe-detect-changes';
|
|
11
|
+
import { signalStore } from './utils/signal-store';
|
|
11
12
|
import { updateCamera } from './utils/update';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
const privateKeys = [
|
|
@@ -23,22 +24,18 @@ const privateKeys = [
|
|
|
23
24
|
'size',
|
|
24
25
|
'viewport',
|
|
25
26
|
];
|
|
26
|
-
class NgtPortalBeforeRender {
|
|
27
|
-
#portalStore;
|
|
28
|
-
#subscription;
|
|
27
|
+
export class NgtPortalBeforeRender {
|
|
29
28
|
constructor() {
|
|
30
|
-
this
|
|
29
|
+
this.portalStore = injectNgtStore();
|
|
30
|
+
this.injector = inject(Injector);
|
|
31
31
|
this.renderPriority = 1;
|
|
32
32
|
this.beforeRender = new EventEmitter();
|
|
33
|
-
inject(DestroyRef).onDestroy(() => {
|
|
34
|
-
this.#subscription?.();
|
|
35
|
-
});
|
|
36
33
|
}
|
|
37
34
|
ngOnInit() {
|
|
38
35
|
let oldClear;
|
|
39
|
-
|
|
40
|
-
this.beforeRender.emit({ ...this
|
|
41
|
-
const { gl, scene, camera } = this
|
|
36
|
+
injectBeforeRender(({ delta, frame }) => {
|
|
37
|
+
this.beforeRender.emit({ ...this.portalStore.get(), delta, frame });
|
|
38
|
+
const { gl, scene, camera } = this.portalStore.get();
|
|
42
39
|
oldClear = gl.autoClear;
|
|
43
40
|
if (this.renderPriority === 1) {
|
|
44
41
|
// clear scene and render with default
|
|
@@ -51,16 +48,15 @@ class NgtPortalBeforeRender {
|
|
|
51
48
|
gl.render(scene, camera);
|
|
52
49
|
// restore
|
|
53
50
|
gl.autoClear = oldClear;
|
|
54
|
-
}, this.renderPriority, this
|
|
51
|
+
}, { priority: this.renderPriority, injector: this.injector });
|
|
55
52
|
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
57
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtPortalBeforeRender, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
54
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.2", type: NgtPortalBeforeRender, isStandalone: true, selector: "[ngtPortalBeforeRender]", inputs: { renderPriority: "renderPriority", parentScene: "parentScene", parentCamera: "parentCamera" }, outputs: { beforeRender: "beforeRender" }, ngImport: i0 }); }
|
|
58
55
|
}
|
|
59
|
-
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtPortalBeforeRender, decorators: [{
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtPortalBeforeRender, decorators: [{
|
|
61
57
|
type: Directive,
|
|
62
58
|
args: [{ selector: '[ngtPortalBeforeRender]', standalone: true }]
|
|
63
|
-
}],
|
|
59
|
+
}], propDecorators: { renderPriority: [{
|
|
64
60
|
type: Input
|
|
65
61
|
}], parentScene: [{
|
|
66
62
|
type: Input,
|
|
@@ -71,7 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
71
67
|
}], beforeRender: [{
|
|
72
68
|
type: Output
|
|
73
69
|
}] } });
|
|
74
|
-
class NgtPortalContent {
|
|
70
|
+
export class NgtPortalContent {
|
|
75
71
|
constructor(vcr, parentVcr) {
|
|
76
72
|
const commentNode = vcr.element.nativeElement;
|
|
77
73
|
if (commentNode[SPECIAL_INTERNAL_ADD_COMMENT]) {
|
|
@@ -79,97 +75,90 @@ class NgtPortalContent {
|
|
|
79
75
|
delete commentNode[SPECIAL_INTERNAL_ADD_COMMENT];
|
|
80
76
|
}
|
|
81
77
|
}
|
|
82
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
83
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtPortalContent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ViewContainerRef, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
79
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.2", type: NgtPortalContent, isStandalone: true, selector: "ng-template[ngtPortalContent]", ngImport: i0 }); }
|
|
84
80
|
}
|
|
85
|
-
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtPortalContent, decorators: [{
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtPortalContent, decorators: [{
|
|
87
82
|
type: Directive,
|
|
88
83
|
args: [{ selector: 'ng-template[ngtPortalContent]', standalone: true }]
|
|
89
84
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ViewContainerRef, decorators: [{
|
|
90
85
|
type: SkipSelf
|
|
91
86
|
}] }]; } });
|
|
92
|
-
class NgtPortal
|
|
87
|
+
export class NgtPortal {
|
|
93
88
|
set container(container) {
|
|
94
|
-
this.set({ container });
|
|
89
|
+
this.inputs.set({ container });
|
|
95
90
|
}
|
|
96
|
-
set
|
|
97
|
-
this.set({ state });
|
|
91
|
+
set portalState(state) {
|
|
92
|
+
this.inputs.set({ state });
|
|
98
93
|
}
|
|
99
|
-
#parentStore;
|
|
100
|
-
#portalStore;
|
|
101
|
-
#injector;
|
|
102
|
-
#zone;
|
|
103
|
-
#raycaster;
|
|
104
|
-
#pointer;
|
|
105
|
-
#portalContentView;
|
|
106
94
|
constructor() {
|
|
107
|
-
|
|
95
|
+
this.inputs = signalStore({ container: injectNgtRef(prepare(new THREE.Scene())) });
|
|
108
96
|
this.autoRender = true;
|
|
109
97
|
this.autoRenderPriority = 1;
|
|
110
98
|
this.beforeRender = new EventEmitter();
|
|
111
|
-
this
|
|
112
|
-
this.parentScene = this
|
|
113
|
-
this.parentCamera = this
|
|
114
|
-
this
|
|
115
|
-
this
|
|
116
|
-
this
|
|
117
|
-
this
|
|
118
|
-
this
|
|
99
|
+
this.parentStore = injectNgtStore({ skipSelf: true });
|
|
100
|
+
this.parentScene = this.parentStore.get('scene');
|
|
101
|
+
this.parentCamera = this.parentStore.get('camera');
|
|
102
|
+
this.portalStore = injectNgtStore({ self: true });
|
|
103
|
+
this.injector = inject(Injector);
|
|
104
|
+
this.zone = inject(NgZone);
|
|
105
|
+
this.raycaster = new THREE.Raycaster();
|
|
106
|
+
this.pointer = new THREE.Vector2();
|
|
119
107
|
this.portalContentRendered = false;
|
|
120
108
|
inject(DestroyRef).onDestroy(() => {
|
|
121
|
-
if (this
|
|
122
|
-
this
|
|
109
|
+
if (this.portalContentView && !this.portalContentView.destroyed) {
|
|
110
|
+
this.portalContentView.destroy();
|
|
123
111
|
}
|
|
124
112
|
});
|
|
125
113
|
}
|
|
126
114
|
ngOnInit() {
|
|
127
|
-
const previousState = this
|
|
128
|
-
const inputsState = this.get();
|
|
115
|
+
const previousState = this.parentStore.get();
|
|
116
|
+
const inputsState = this.inputs.get();
|
|
129
117
|
if (!inputsState.state && this.autoRender) {
|
|
130
118
|
inputsState.state = { events: { priority: this.autoRenderPriority + 1 } };
|
|
131
119
|
}
|
|
132
120
|
const { events, size, ...restInputsState } = inputsState.state || {};
|
|
133
121
|
const containerState = inputsState.container;
|
|
134
|
-
|
|
122
|
+
let container = is.ref(containerState) ? containerState.nativeElement : containerState;
|
|
123
|
+
if (!is.instance(container)) {
|
|
124
|
+
container = prepare(container);
|
|
125
|
+
}
|
|
135
126
|
const localState = getLocalState(container);
|
|
136
127
|
if (!localState.store) {
|
|
137
|
-
localState.store = this
|
|
128
|
+
localState.store = this.portalStore;
|
|
138
129
|
}
|
|
139
|
-
this
|
|
130
|
+
this.portalStore.set({
|
|
140
131
|
...previousState,
|
|
141
132
|
scene: container,
|
|
142
|
-
raycaster: this
|
|
143
|
-
pointer: this
|
|
144
|
-
|
|
133
|
+
raycaster: this.raycaster,
|
|
134
|
+
pointer: this.pointer,
|
|
135
|
+
previousRoot: this.parentStore,
|
|
145
136
|
events: { ...previousState.events, ...(events || {}) },
|
|
146
137
|
size: { ...previousState.size, ...(size || {}) },
|
|
147
138
|
...restInputsState,
|
|
148
|
-
|
|
149
|
-
set: this.#portalStore.set.bind(this.#portalStore),
|
|
150
|
-
setEvents: (events) => this.#portalStore.set((state) => ({ ...state, events: { ...state.events, ...events } })),
|
|
139
|
+
setEvents: (events) => this.portalStore.set((state) => ({ ...state, events: { ...state.events, ...events } })),
|
|
151
140
|
});
|
|
152
|
-
const parentState = this
|
|
141
|
+
const parentState = this.parentStore.select();
|
|
153
142
|
effect(() => {
|
|
154
143
|
const previous = parentState();
|
|
155
|
-
this
|
|
156
|
-
this
|
|
144
|
+
this.zone.runOutsideAngular(() => {
|
|
145
|
+
this.portalStore.set((state) => this.inject(previous, state));
|
|
157
146
|
});
|
|
158
|
-
}, { injector: this
|
|
147
|
+
}, { injector: this.injector });
|
|
159
148
|
requestAnimationFrame(() => {
|
|
160
|
-
this
|
|
149
|
+
this.portalStore.set((injectState) => this.inject(this.parentStore.get(), injectState));
|
|
161
150
|
});
|
|
162
|
-
this
|
|
163
|
-
safeDetectChanges(this
|
|
151
|
+
this.portalContentView = this.portalContentAnchor.createEmbeddedView(this.portalContentTemplate);
|
|
152
|
+
safeDetectChanges(this.portalContentView);
|
|
164
153
|
this.portalContentRendered = true;
|
|
165
154
|
}
|
|
166
155
|
onBeforeRender(portal) {
|
|
167
156
|
this.beforeRender.emit({
|
|
168
|
-
root: { ...this
|
|
157
|
+
root: { ...this.parentStore.get(), delta: portal.delta, frame: portal.frame },
|
|
169
158
|
portal,
|
|
170
159
|
});
|
|
171
160
|
}
|
|
172
|
-
|
|
161
|
+
inject(rootState, injectState) {
|
|
173
162
|
const intersect = { ...rootState };
|
|
174
163
|
Object.keys(intersect).forEach((key) => {
|
|
175
164
|
if (privateKeys.includes(key) ||
|
|
@@ -177,7 +166,7 @@ class NgtPortal extends NgtSignalStore {
|
|
|
177
166
|
delete intersect[key];
|
|
178
167
|
}
|
|
179
168
|
});
|
|
180
|
-
const inputs = this.get();
|
|
169
|
+
const inputs = this.inputs.get();
|
|
181
170
|
const { size, events, ...restInputsState } = inputs.state || {};
|
|
182
171
|
let viewport = undefined;
|
|
183
172
|
if (injectState && size) {
|
|
@@ -189,54 +178,54 @@ class NgtPortal extends NgtSignalStore {
|
|
|
189
178
|
return {
|
|
190
179
|
...intersect,
|
|
191
180
|
scene: is.ref(inputs.container) ? inputs.container.nativeElement : inputs.container,
|
|
192
|
-
raycaster: this
|
|
193
|
-
pointer: this
|
|
194
|
-
|
|
181
|
+
raycaster: this.raycaster,
|
|
182
|
+
pointer: this.pointer,
|
|
183
|
+
previousRoot: this.parentStore,
|
|
195
184
|
events: { ...rootState.events, ...(injectState?.events || {}), ...events },
|
|
196
185
|
size: { ...rootState.size, ...size },
|
|
197
186
|
viewport: { ...rootState.viewport, ...(viewport || {}) },
|
|
198
187
|
...restInputsState,
|
|
199
188
|
};
|
|
200
189
|
}
|
|
201
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
202
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
190
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
191
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtPortal, isStandalone: true, selector: "ngt-portal", inputs: { container: "container", portalState: ["state", "portalState"], autoRender: "autoRender", autoRenderPriority: "autoRenderPriority" }, outputs: { beforeRender: "beforeRender" }, providers: [{ provide: NGT_STORE, useFactory: () => signalStore({}) }], queries: [{ propertyName: "portalContentTemplate", first: true, predicate: NgtPortalContent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "portalContentAnchor", first: true, predicate: ["portalContentAnchor"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
|
|
192
|
+
<ng-container #portalContentAnchor>
|
|
193
|
+
<ng-container
|
|
194
|
+
*ngIf="autoRender && portalContentRendered"
|
|
195
|
+
ngtPortalBeforeRender
|
|
196
|
+
[renderPriority]="autoRenderPriority"
|
|
197
|
+
[parentScene]="parentScene"
|
|
198
|
+
[parentCamera]="parentCamera"
|
|
199
|
+
(beforeRender)="onBeforeRender($event)"
|
|
200
|
+
/>
|
|
201
|
+
</ng-container>
|
|
202
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtPortalBeforeRender, selector: "[ngtPortalBeforeRender]", inputs: ["renderPriority", "parentScene", "parentCamera"], outputs: ["beforeRender"] }] }); }
|
|
214
203
|
}
|
|
215
|
-
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtPortal, decorators: [{
|
|
204
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtPortal, decorators: [{
|
|
217
205
|
type: Component,
|
|
218
206
|
args: [{
|
|
219
207
|
selector: 'ngt-portal',
|
|
220
208
|
standalone: true,
|
|
221
209
|
template: `
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
210
|
+
<ng-container #portalContentAnchor>
|
|
211
|
+
<ng-container
|
|
212
|
+
*ngIf="autoRender && portalContentRendered"
|
|
213
|
+
ngtPortalBeforeRender
|
|
214
|
+
[renderPriority]="autoRenderPriority"
|
|
215
|
+
[parentScene]="parentScene"
|
|
216
|
+
[parentCamera]="parentCamera"
|
|
217
|
+
(beforeRender)="onBeforeRender($event)"
|
|
218
|
+
/>
|
|
219
|
+
</ng-container>
|
|
220
|
+
`,
|
|
233
221
|
imports: [NgIf, NgtPortalBeforeRender],
|
|
234
|
-
providers: [
|
|
222
|
+
providers: [{ provide: NGT_STORE, useFactory: () => signalStore({}) }],
|
|
235
223
|
}]
|
|
236
224
|
}], ctorParameters: function () { return []; }, propDecorators: { container: [{
|
|
237
225
|
type: Input
|
|
238
|
-
}],
|
|
239
|
-
type: Input
|
|
226
|
+
}], portalState: [{
|
|
227
|
+
type: Input,
|
|
228
|
+
args: ['state']
|
|
240
229
|
}], autoRender: [{
|
|
241
230
|
type: Input
|
|
242
231
|
}], autoRenderPriority: [{
|
|
@@ -250,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
250
239
|
type: ViewChild,
|
|
251
240
|
args: ['portalContentAnchor', { read: ViewContainerRef, static: true }]
|
|
252
241
|
}] } });
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixNQUFNLEdBSVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTlDLE1BQU0sV0FBVyxHQUFHO0lBQ2hCLEtBQUs7SUFDTCxLQUFLO0lBQ0wsUUFBUTtJQUNSLFNBQVM7SUFDVCxRQUFRO0lBQ1IsY0FBYztJQUNkLFFBQVE7SUFDUixZQUFZO0lBQ1osU0FBUztJQUNULE1BQU07SUFDTixVQUFVO0NBQ0osQ0FBQztBQWNYLE1BQ2EscUJBQXFCO0lBQ3JCLFlBQVksQ0FBb0I7SUFRekMsYUFBYSxDQUFjO0lBRTNCO1FBVlMsaUJBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEMsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFJbEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUt4RCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxRQUFpQixDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUM1RCxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDckUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0RCxRQUFRLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssQ0FBQyxFQUFFO2dCQUMzQixzQ0FBc0M7Z0JBQ3RDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xEO1lBQ0QsbUJBQW1CO1lBQ25CLEVBQUUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6QixVQUFVO1lBQ1YsRUFBRSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDNUIsQ0FBQyxFQUNELElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxZQUFZLENBQ3BCLENBQUM7SUFDTixDQUFDOzhHQXZDUSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7U0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTswRUFJdkQsY0FBYztzQkFBdEIsS0FBSztnQkFDcUIsV0FBVztzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsWUFBWTtzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWYsWUFBWTtzQkFBckIsTUFBTTs7QUFtQ1gsTUFDYSxnQkFBZ0I7SUFDekIsWUFBWSxHQUFxQixFQUFjLFNBQTJCO1FBQ3RFLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksV0FBVyxDQUFDLDRCQUE0QixDQUFDLEVBQUU7WUFDM0MsV0FBVyxDQUFDLDRCQUE0QixDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMzRSxPQUFPLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQzs4R0FQUSxnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7U0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsK0JBQStCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs7MEJBRWxDLFFBQVE7O0FBU2hELE1Ba0JhLFNBQVUsU0FBUSxjQUErQjtJQUMxRCxJQUFhLFNBQVMsQ0FBQyxTQUF1QztRQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBK0I7UUFDOUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQWFRLFlBQVksQ0FBd0M7SUFJcEQsWUFBWSxDQUFvQztJQUNoRCxTQUFTLENBQW9CO0lBQzdCLEtBQUssQ0FBa0I7SUFFdkIsVUFBVSxDQUF5QjtJQUNuQyxRQUFRLENBQXVCO0lBR3hDLGtCQUFrQixDQUE0QjtJQUU5QztRQUNJLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQWMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUExQnZFLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9ELENBQUM7UUFRckYsaUJBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxpQkFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsVUFBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2QixlQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkMsYUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXhDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUsxQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNyQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzlDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDN0U7UUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLGVBQWUsRUFBRSxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBRXJFLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7UUFDN0MsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBRXpGLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNuQixVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDeEM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQztZQUNsQixHQUFHLGFBQWE7WUFDaEIsS0FBSyxFQUFFLFNBQXdCO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdEIsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ2hDLE1BQU0sRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3RELElBQUksRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2hELEdBQUcsZUFBZTtZQUNsQixHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDbEQsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2xELFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQy9GLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0MsTUFBTSxDQUNGLEdBQUcsRUFBRTtZQUNELE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUN4RCxDQUFDO1FBRUYscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDbEcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQXNCO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUM5RSxNQUFNO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFtQixFQUFFLFdBQXFCO1FBQzlDLE1BQU0sU0FBUyxHQUFzQixFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFFdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNuQyxJQUNJLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBa0IsQ0FBQztnQkFDeEMsU0FBUyxDQUFDLEdBQXFCLENBQUMsS0FBSyxXQUFXLENBQUMsR0FBcUIsQ0FBQyxFQUN6RTtnQkFDRSxPQUFPLFNBQVMsQ0FBQyxHQUFxQixDQUFDLENBQUM7YUFDM0M7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLGVBQWUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBRWhFLElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDckIsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEYsSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDLE1BQU07Z0JBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMvRDtRQUVELE9BQU87WUFDSCxHQUFHLFNBQVM7WUFDWixLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNuRixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3RCLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUNoQyxNQUFNLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUU7WUFDMUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFO1lBQ3BDLFFBQVEsRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3hELEdBQUcsZUFBZTtTQUNULENBQUM7SUFDbEIsQ0FBQzs4R0F2SVEsU0FBUztrR0FBVCxTQUFTLDROQUZQLENBQUMsUUFBUSxDQUFDLDZFQWdCUCxnQkFBZ0IsMkJBQVUsV0FBVyxrSkFHVCxnQkFBZ0Isa0VBaENoRDs7Ozs7Ozs7Ozs7S0FXVCw0REFDUyxJQUFJLDZGQXBFTCxxQkFBcUI7O1NBdUVyQixTQUFTOzJGQUFULFNBQVM7a0JBbEJyQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7OztLQVdUO29CQUNELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQztvQkFDdEMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUN4QjswRUFFZ0IsU0FBUztzQkFBckIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0UscUJBQXFCO3NCQUQ3QixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkxRCxtQkFBbUI7c0JBRDNCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIFNraXBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgdHlwZSBFbGVtZW50UmVmLFxuICAgIHR5cGUgRW1iZWRkZWRWaWV3UmVmLFxuICAgIHR5cGUgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdE5ndFJlZiB9IGZyb20gJy4vZGkvcmVmJztcbmltcG9ydCB7IFNQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlQgfSBmcm9tICcuL3JlbmRlcmVyL3V0aWxzJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi9zdG9yZXMvc2lnbmFsLnN0b3JlJztcbmltcG9ydCB7IE5ndFN0b3JlIH0gZnJvbSAnLi9zdG9yZXMvc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RFdmVudE1hbmFnZXIsIE5ndFJlbmRlclN0YXRlLCBOZ3RTaXplLCBOZ3RTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0TG9jYWxTdGF0ZSwgcHJlcGFyZSB9IGZyb20gJy4vdXRpbHMvaW5zdGFuY2UnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL3V0aWxzL2lzJztcbmltcG9ydCB7IHNhZmVEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnLi91dGlscy9zYWZlLWRldGVjdC1jaGFuZ2VzJztcbmltcG9ydCB7IHVwZGF0ZUNhbWVyYSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlJztcblxuY29uc3QgcHJpdmF0ZUtleXMgPSBbXG4gICAgJ2dldCcsXG4gICAgJ3NldCcsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3NldFNpemUnLFxuICAgICdzZXREcHInLFxuICAgICdzZXRGcmFtZWxvb3AnLFxuICAgICdldmVudHMnLFxuICAgICdpbnZhbGlkYXRlJyxcbiAgICAnYWR2YW5jZScsXG4gICAgJ3NpemUnLFxuICAgICd2aWV3cG9ydCcsXG5dIGFzIGNvbnN0O1xudHlwZSBQcml2YXRlS2V5cyA9ICh0eXBlb2YgcHJpdmF0ZUtleXMpW251bWJlcl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0UG9ydGFsSW5wdXRzIHtcbiAgICBjb250YWluZXI6IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0Q+IHwgVEhSRUUuT2JqZWN0M0Q7XG4gICAgY2FtZXJhOiBFbGVtZW50UmVmPFRIUkVFLkNhbWVyYT4gfCBUSFJFRS5DYW1lcmE7XG4gICAgc3RhdGU6IFBhcnRpYWw8XG4gICAgICAgIE9taXQ8Tmd0U3RhdGUsIFByaXZhdGVLZXlzPiAmIHtcbiAgICAgICAgICAgIGV2ZW50czogUGFydGlhbDxQaWNrPE5ndEV2ZW50TWFuYWdlcjxhbnk+LCAnZW5hYmxlZCcgfCAncHJpb3JpdHknIHwgJ2NvbXB1dGUnIHwgJ2Nvbm5lY3RlZCc+PjtcbiAgICAgICAgICAgIHNpemU6IE5ndFNpemU7XG4gICAgICAgIH1cbiAgICA+O1xufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbbmd0UG9ydGFsQmVmb3JlUmVuZGVyXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RQb3J0YWxCZWZvcmVSZW5kZXIgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5ICNwb3J0YWxTdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICBASW5wdXQoKSByZW5kZXJQcmlvcml0eSA9IDE7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFyZW50U2NlbmUhOiBUSFJFRS5TY2VuZTtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwYXJlbnRDYW1lcmEhOiBUSFJFRS5DYW1lcmE7XG5cbiAgICBAT3V0cHV0KCkgYmVmb3JlUmVuZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RSZW5kZXJTdGF0ZT4oKTtcblxuICAgICNzdWJzY3JpcHRpb24/OiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jc3Vic2NyaXB0aW9uPy4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGxldCBvbGRDbGVhcjogYm9vbGVhbjtcbiAgICAgICAgdGhpcy4jc3Vic2NyaXB0aW9uID0gdGhpcy4jcG9ydGFsU3RvcmUuZ2V0KCdpbnRlcm5hbCcpLnN1YnNjcmliZShcbiAgICAgICAgICAgICh7IGRlbHRhLCBmcmFtZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5iZWZvcmVSZW5kZXIuZW1pdCh7IC4uLnRoaXMuI3BvcnRhbFN0b3JlLmdldCgpLCBkZWx0YSwgZnJhbWUgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBnbCwgc2NlbmUsIGNhbWVyYSB9ID0gdGhpcy4jcG9ydGFsU3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgb2xkQ2xlYXIgPSBnbC5hdXRvQ2xlYXI7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyUHJpb3JpdHkgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xlYXIgc2NlbmUgYW5kIHJlbmRlciB3aXRoIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgZ2wuYXV0b0NsZWFyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgZ2wucmVuZGVyKHRoaXMucGFyZW50U2NlbmUsIHRoaXMucGFyZW50Q2FtZXJhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBjbGVhbmluZ1xuICAgICAgICAgICAgICAgIGdsLmF1dG9DbGVhciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGdsLmNsZWFyRGVwdGgoKTtcbiAgICAgICAgICAgICAgICBnbC5yZW5kZXIoc2NlbmUsIGNhbWVyYSk7XG4gICAgICAgICAgICAgICAgLy8gcmVzdG9yZVxuICAgICAgICAgICAgICAgIGdsLmF1dG9DbGVhciA9IG9sZENsZWFyO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyUHJpb3JpdHksXG4gICAgICAgICAgICB0aGlzLiNwb3J0YWxTdG9yZVxuICAgICAgICApO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbmd0UG9ydGFsQ29udGVudF0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsQ29udGVudCB7XG4gICAgY29uc3RydWN0b3IodmNyOiBWaWV3Q29udGFpbmVyUmVmLCBAU2tpcFNlbGYoKSBwYXJlbnRWY3I6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgY29uc3QgY29tbWVudE5vZGUgPSB2Y3IuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoY29tbWVudE5vZGVbU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVF0pIHtcbiAgICAgICAgICAgIGNvbW1lbnROb2RlW1NQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlRdKHBhcmVudFZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgZGVsZXRlIGNvbW1lbnROb2RlW1NQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlRdO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1wb3J0YWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRhaW5lciAjcG9ydGFsQ29udGVudEFuY2hvcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImF1dG9SZW5kZXIgJiYgcG9ydGFsQ29udGVudFJlbmRlcmVkXCJcbiAgICAgICAgICAgICAgICBuZ3RQb3J0YWxCZWZvcmVSZW5kZXJcbiAgICAgICAgICAgICAgICBbcmVuZGVyUHJpb3JpdHldPVwiYXV0b1JlbmRlclByaW9yaXR5XCJcbiAgICAgICAgICAgICAgICBbcGFyZW50U2NlbmVdPVwicGFyZW50U2NlbmVcIlxuICAgICAgICAgICAgICAgIFtwYXJlbnRDYW1lcmFdPVwicGFyZW50Q2FtZXJhXCJcbiAgICAgICAgICAgICAgICAoYmVmb3JlUmVuZGVyKT1cIm9uQmVmb3JlUmVuZGVyKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmd0UG9ydGFsQmVmb3JlUmVuZGVyXSxcbiAgICBwcm92aWRlcnM6IFtOZ3RTdG9yZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndFBvcnRhbCBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndFBvcnRhbElucHV0cz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHNldCBjb250YWluZXIoY29udGFpbmVyOiBOZ3RQb3J0YWxJbnB1dHNbJ2NvbnRhaW5lciddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29udGFpbmVyIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzdGF0ZShzdGF0ZTogTmd0UG9ydGFsSW5wdXRzWydzdGF0ZSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc3RhdGUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYXV0b1JlbmRlciA9IHRydWU7XG4gICAgQElucHV0KCkgYXV0b1JlbmRlclByaW9yaXR5ID0gMTtcblxuICAgIEBPdXRwdXQoKSBiZWZvcmVSZW5kZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcm9vdDogTmd0UmVuZGVyU3RhdGU7IHBvcnRhbDogTmd0UmVuZGVyU3RhdGUgfT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoTmd0UG9ydGFsQ29udGVudCwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcmVhZG9ubHkgcG9ydGFsQ29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgICBAVmlld0NoaWxkKCdwb3J0YWxDb250ZW50QW5jaG9yJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICByZWFkb25seSBwb3J0YWxDb250ZW50QW5jaG9yITogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIHJlYWRvbmx5ICNwYXJlbnRTdG9yZSA9IGluamVjdChOZ3RTdG9yZSwgeyBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgICByZWFkb25seSBwYXJlbnRTY2VuZSA9IHRoaXMuI3BhcmVudFN0b3JlLmdldCgnc2NlbmUnKTtcbiAgICByZWFkb25seSBwYXJlbnRDYW1lcmEgPSB0aGlzLiNwYXJlbnRTdG9yZS5nZXQoJ2NhbWVyYScpO1xuXG4gICAgcmVhZG9ubHkgI3BvcnRhbFN0b3JlID0gaW5qZWN0KE5ndFN0b3JlLCB7IHNlbGY6IHRydWUgfSk7XG4gICAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICByZWFkb25seSAjem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgcmVhZG9ubHkgI3JheWNhc3RlciA9IG5ldyBUSFJFRS5SYXljYXN0ZXIoKTtcbiAgICByZWFkb25seSAjcG9pbnRlciA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XG5cbiAgICBwb3J0YWxDb250ZW50UmVuZGVyZWQgPSBmYWxzZTtcbiAgICAjcG9ydGFsQ29udGVudFZpZXc/OiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoeyBjb250YWluZXI6IGluamVjdE5ndFJlZjxUSFJFRS5TY2VuZT4ocHJlcGFyZShuZXcgVEhSRUUuU2NlbmUoKSkpIH0pO1xuICAgICAgICBpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLiNwb3J0YWxDb250ZW50VmlldyAmJiAhdGhpcy4jcG9ydGFsQ29udGVudFZpZXcuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jcG9ydGFsQ29udGVudFZpZXcuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNTdGF0ZSA9IHRoaXMuI3BhcmVudFN0b3JlLmdldCgpO1xuICAgICAgICBjb25zdCBpbnB1dHNTdGF0ZSA9IHRoaXMuZ2V0KCk7XG5cbiAgICAgICAgaWYgKCFpbnB1dHNTdGF0ZS5zdGF0ZSAmJiB0aGlzLmF1dG9SZW5kZXIpIHtcbiAgICAgICAgICAgIGlucHV0c1N0YXRlLnN0YXRlID0geyBldmVudHM6IHsgcHJpb3JpdHk6IHRoaXMuYXV0b1JlbmRlclByaW9yaXR5ICsgMSB9IH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGV2ZW50cywgc2l6ZSwgLi4ucmVzdElucHV0c1N0YXRlIH0gPSBpbnB1dHNTdGF0ZS5zdGF0ZSB8fCB7fTtcblxuICAgICAgICBjb25zdCBjb250YWluZXJTdGF0ZSA9IGlucHV0c1N0YXRlLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gaXMucmVmKGNvbnRhaW5lclN0YXRlKSA/IGNvbnRhaW5lclN0YXRlLm5hdGl2ZUVsZW1lbnQgOiBjb250YWluZXJTdGF0ZTtcblxuICAgICAgICBjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShjb250YWluZXIpO1xuICAgICAgICBpZiAoIWxvY2FsU3RhdGUuc3RvcmUpIHtcbiAgICAgICAgICAgIGxvY2FsU3RhdGUuc3RvcmUgPSB0aGlzLiNwb3J0YWxTdG9yZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuI3BvcnRhbFN0b3JlLnNldCh7XG4gICAgICAgICAgICAuLi5wcmV2aW91c1N0YXRlLFxuICAgICAgICAgICAgc2NlbmU6IGNvbnRhaW5lciBhcyBUSFJFRS5TY2VuZSxcbiAgICAgICAgICAgIHJheWNhc3RlcjogdGhpcy4jcmF5Y2FzdGVyLFxuICAgICAgICAgICAgcG9pbnRlcjogdGhpcy4jcG9pbnRlcixcbiAgICAgICAgICAgIHByZXZpb3VzU3RvcmU6IHRoaXMuI3BhcmVudFN0b3JlLFxuICAgICAgICAgICAgZXZlbnRzOiB7IC4uLnByZXZpb3VzU3RhdGUuZXZlbnRzLCAuLi4oZXZlbnRzIHx8IHt9KSB9LFxuICAgICAgICAgICAgc2l6ZTogeyAuLi5wcmV2aW91c1N0YXRlLnNpemUsIC4uLihzaXplIHx8IHt9KSB9LFxuICAgICAgICAgICAgLi4ucmVzdElucHV0c1N0YXRlLFxuICAgICAgICAgICAgZ2V0OiB0aGlzLiNwb3J0YWxTdG9yZS5nZXQuYmluZCh0aGlzLiNwb3J0YWxTdG9yZSksXG4gICAgICAgICAgICBzZXQ6IHRoaXMuI3BvcnRhbFN0b3JlLnNldC5iaW5kKHRoaXMuI3BvcnRhbFN0b3JlKSxcbiAgICAgICAgICAgIHNldEV2ZW50czogKGV2ZW50cykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLiNwb3J0YWxTdG9yZS5zZXQoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgZXZlbnRzOiB7IC4uLnN0YXRlLmV2ZW50cywgLi4uZXZlbnRzIH0gfSkpLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwYXJlbnRTdGF0ZSA9IHRoaXMuI3BhcmVudFN0b3JlLnNlbGVjdCgpO1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXMgPSBwYXJlbnRTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNwb3J0YWxTdG9yZS5zZXQoKHN0YXRlKSA9PiB0aGlzLiNpbmplY3QocHJldmlvdXMsIHN0YXRlKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBpbmplY3RvcjogdGhpcy4jaW5qZWN0b3IsIGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jcG9ydGFsU3RvcmUuc2V0KChpbmplY3RTdGF0ZSkgPT4gdGhpcy4jaW5qZWN0KHRoaXMuI3BhcmVudFN0b3JlLmdldCgpLCBpbmplY3RTdGF0ZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy4jcG9ydGFsQ29udGVudFZpZXcgPSB0aGlzLnBvcnRhbENvbnRlbnRBbmNob3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMucG9ydGFsQ29udGVudFRlbXBsYXRlKTtcbiAgICAgICAgc2FmZURldGVjdENoYW5nZXModGhpcy4jcG9ydGFsQ29udGVudFZpZXcpO1xuICAgICAgICB0aGlzLnBvcnRhbENvbnRlbnRSZW5kZXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgb25CZWZvcmVSZW5kZXIocG9ydGFsOiBOZ3RSZW5kZXJTdGF0ZSkge1xuICAgICAgICB0aGlzLmJlZm9yZVJlbmRlci5lbWl0KHtcbiAgICAgICAgICAgIHJvb3Q6IHsgLi4udGhpcy4jcGFyZW50U3RvcmUuZ2V0KCksIGRlbHRhOiBwb3J0YWwuZGVsdGEsIGZyYW1lOiBwb3J0YWwuZnJhbWUgfSxcbiAgICAgICAgICAgIHBvcnRhbCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgI2luamVjdChyb290U3RhdGU6IE5ndFN0YXRlLCBpbmplY3RTdGF0ZTogTmd0U3RhdGUpIHtcbiAgICAgICAgY29uc3QgaW50ZXJzZWN0OiBQYXJ0aWFsPE5ndFN0YXRlPiA9IHsgLi4ucm9vdFN0YXRlIH07XG5cbiAgICAgICAgT2JqZWN0LmtleXMoaW50ZXJzZWN0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBwcml2YXRlS2V5cy5pbmNsdWRlcyhrZXkgYXMgUHJpdmF0ZUtleXMpIHx8XG4gICAgICAgICAgICAgICAgcm9vdFN0YXRlW2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV0gIT09IGluamVjdFN0YXRlW2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpbnRlcnNlY3Rba2V5IGFzIGtleW9mIE5ndFN0YXRlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXQoKTtcbiAgICAgICAgY29uc3QgeyBzaXplLCBldmVudHMsIC4uLnJlc3RJbnB1dHNTdGF0ZSB9ID0gaW5wdXRzLnN0YXRlIHx8IHt9O1xuXG4gICAgICAgIGxldCB2aWV3cG9ydCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGluamVjdFN0YXRlICYmIHNpemUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbWVyYSA9IGluamVjdFN0YXRlLmNhbWVyYTtcbiAgICAgICAgICAgIHZpZXdwb3J0ID0gcm9vdFN0YXRlLnZpZXdwb3J0LmdldEN1cnJlbnRWaWV3cG9ydChjYW1lcmEsIG5ldyBUSFJFRS5WZWN0b3IzKCksIHNpemUpO1xuICAgICAgICAgICAgaWYgKGNhbWVyYSAhPT0gcm9vdFN0YXRlLmNhbWVyYSkgdXBkYXRlQ2FtZXJhKGNhbWVyYSwgc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaW50ZXJzZWN0LFxuICAgICAgICAgICAgc2NlbmU6IGlzLnJlZihpbnB1dHMuY29udGFpbmVyKSA/IGlucHV0cy5jb250YWluZXIubmF0aXZlRWxlbWVudCA6IGlucHV0cy5jb250YWluZXIsXG4gICAgICAgICAgICByYXljYXN0ZXI6IHRoaXMuI3JheWNhc3RlcixcbiAgICAgICAgICAgIHBvaW50ZXI6IHRoaXMuI3BvaW50ZXIsXG4gICAgICAgICAgICBwcmV2aW91c1N0b3JlOiB0aGlzLiNwYXJlbnRTdG9yZSxcbiAgICAgICAgICAgIGV2ZW50czogeyAuLi5yb290U3RhdGUuZXZlbnRzLCAuLi4oaW5qZWN0U3RhdGU/LmV2ZW50cyB8fCB7fSksIC4uLmV2ZW50cyB9LFxuICAgICAgICAgICAgc2l6ZTogeyAuLi5yb290U3RhdGUuc2l6ZSwgLi4uc2l6ZSB9LFxuICAgICAgICAgICAgdmlld3BvcnQ6IHsgLi4ucm9vdFN0YXRlLnZpZXdwb3J0LCAuLi4odmlld3BvcnQgfHwge30pIH0sXG4gICAgICAgICAgICAuLi5yZXN0SW5wdXRzU3RhdGUsXG4gICAgICAgIH0gYXMgTmd0U3RhdGU7XG4gICAgfVxufVxuIl19
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixNQUFNLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBb0QsTUFBTSxTQUFTLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU5QyxNQUFNLFdBQVcsR0FBRztJQUNuQixLQUFLO0lBQ0wsS0FBSztJQUNMLFFBQVE7SUFDUixTQUFTO0lBQ1QsUUFBUTtJQUNSLGNBQWM7SUFDZCxRQUFRO0lBQ1IsWUFBWTtJQUNaLFNBQVM7SUFDVCxNQUFNO0lBQ04sVUFBVTtDQUNELENBQUM7QUFlWCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVMsZ0JBQVcsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUMvQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBSWxCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7S0F3QjVEO0lBdEJBLFFBQVE7UUFDUCxJQUFJLFFBQWlCLENBQUM7UUFDdEIsa0JBQWtCLENBQ2pCLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JELFFBQVEsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLHNDQUFzQztnQkFDdEMsRUFBRSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDL0M7WUFDRCxtQkFBbUI7WUFDbkIsRUFBRSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDckIsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pCLFVBQVU7WUFDVixFQUFFLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUN6QixDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUMxRCxDQUFDO0lBQ0gsQ0FBQzs4R0EvQlcscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs4QkFLMUQsY0FBYztzQkFBdEIsS0FBSztnQkFDcUIsV0FBVztzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsWUFBWTtzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWYsWUFBWTtzQkFBckIsTUFBTTs7QUEyQlIsTUFBTSxPQUFPLGdCQUFnQjtJQUM1QixZQUFZLEdBQXFCLEVBQWMsU0FBMkI7UUFDekUsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxXQUFXLENBQUMsNEJBQTRCLENBQUMsRUFBRTtZQUM5QyxXQUFXLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNFLE9BQU8sV0FBVyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7SUFDRixDQUFDOzhHQVBXLGdCQUFnQjtrR0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7OzBCQUVyQyxRQUFROztBQTJCN0MsTUFBTSxPQUFPLFNBQVM7SUFHckIsSUFBYSxTQUFTLENBQUMsU0FBdUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFvQixXQUFXLENBQUMsS0FBK0I7UUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUEyQkQ7UUFuQ1EsV0FBTSxHQUFHLFdBQVcsQ0FBa0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFjLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBVTNHLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9ELENBQUM7UUFRdEYsZ0JBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RCxnQkFBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEIsY0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUV0QywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFJN0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDakM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ1AsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDMUMsV0FBVyxDQUFDLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUMxRTtRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUcsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFFckUsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUM3QyxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFFdkYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDNUIsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMvQjtRQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUN0QixVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDcEM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUNwQixHQUFHLGFBQWE7WUFDaEIsS0FBSyxFQUFFLFNBQXdCO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzlCLE1BQU0sRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3RELElBQUksRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2hELEdBQUcsZUFBZTtZQUNsQixTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN4RixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlDLE1BQU0sQ0FDTCxHQUFHLEVBQUU7WUFDSixNQUFNLFFBQVEsR0FBRyxXQUFXLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUMzQixDQUFDO1FBRUYscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN6RixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQXNCO1FBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUM3RSxNQUFNO1NBQ04sQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFtQixFQUFFLFdBQXFCO1FBQ3hELE1BQU0sU0FBUyxHQUFzQixFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFFdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN0QyxJQUNDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBa0IsQ0FBQztnQkFDeEMsU0FBUyxDQUFDLEdBQXFCLENBQUMsS0FBSyxXQUFXLENBQUMsR0FBcUIsQ0FBQyxFQUN0RTtnQkFDRCxPQUFPLFNBQVMsQ0FBQyxHQUFxQixDQUFDLENBQUM7YUFDeEM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUVoRSxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDekIsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDbEMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BGLElBQUksTUFBTSxLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDNUQ7UUFFRCxPQUFPO1lBQ04sR0FBRyxTQUFTO1lBQ1osS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDbkYsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDOUIsTUFBTSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFO1lBQzFFLElBQUksRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksRUFBRTtZQUNwQyxRQUFRLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUN4RCxHQUFHLGVBQWU7U0FDTixDQUFDO0lBQ2YsQ0FBQzs4R0ExSVcsU0FBUztrR0FBVCxTQUFTLG1QQUZWLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyw2RUFrQmxFLGdCQUFnQiwyQkFBVSxXQUFXLGtKQUdULGdCQUFnQiwyQ0FsQ2hEOzs7Ozs7Ozs7OztFQVdULDREQUNTLElBQUksNkZBNURGLHFCQUFxQjs7MkZBK0RyQixTQUFTO2tCQWxCckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7RUFXVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUM7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7aUJBQ2hGOzBFQUlhLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSWMsV0FBVztzQkFBOUIsS0FBSzt1QkFBQyxPQUFPO2dCQUlMLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBR1AscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUluRSxtQkFBbUI7c0JBRGxCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGQsXG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0RXZlbnRFbWl0dGVyLFxuXHRJbmplY3Rvcixcblx0SW5wdXQsXG5cdE5nWm9uZSxcblx0T3V0cHV0LFxuXHRTa2lwU2VsZixcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDaGlsZCxcblx0Vmlld0NvbnRhaW5lclJlZixcblx0ZWZmZWN0LFxuXHRpbmplY3QsXG5cdHR5cGUgRWxlbWVudFJlZixcblx0dHlwZSBFbWJlZGRlZFZpZXdSZWYsXG5cdHR5cGUgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdEJlZm9yZVJlbmRlciB9IGZyb20gJy4vYmVmb3JlLXJlbmRlcic7XG5pbXBvcnQgdHlwZSB7IE5ndEV2ZW50TWFuYWdlciB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIHByZXBhcmUgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB7IGluamVjdE5ndFJlZiB9IGZyb20gJy4vcmVmJztcbmltcG9ydCB7IFNQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlQgfSBmcm9tICcuL3JlbmRlcmVyL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBOR1RfU1RPUkUsIGluamVjdE5ndFN0b3JlLCB0eXBlIE5ndFJlbmRlclN0YXRlLCB0eXBlIE5ndFNpemUsIHR5cGUgTmd0U3RhdGUgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBzYWZlRGV0ZWN0Q2hhbmdlcyB9IGZyb20gJy4vdXRpbHMvc2FmZS1kZXRlY3QtY2hhbmdlcyc7XG5pbXBvcnQgeyBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IHVwZGF0ZUNhbWVyYSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlJztcblxuY29uc3QgcHJpdmF0ZUtleXMgPSBbXG5cdCdnZXQnLFxuXHQnc2V0Jyxcblx0J3NlbGVjdCcsXG5cdCdzZXRTaXplJyxcblx0J3NldERwcicsXG5cdCdzZXRGcmFtZWxvb3AnLFxuXHQnZXZlbnRzJyxcblx0J2ludmFsaWRhdGUnLFxuXHQnYWR2YW5jZScsXG5cdCdzaXplJyxcblx0J3ZpZXdwb3J0Jyxcbl0gYXMgY29uc3Q7XG50eXBlIFByaXZhdGVLZXlzID0gKHR5cGVvZiBwcml2YXRlS2V5cylbbnVtYmVyXTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RQb3J0YWxJbnB1dHMge1xuXHRjb250YWluZXI6IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0Q+IHwgVEhSRUUuT2JqZWN0M0Q7XG5cdGNhbWVyYTogRWxlbWVudFJlZjxUSFJFRS5DYW1lcmE+IHwgVEhSRUUuQ2FtZXJhO1xuXHRzdGF0ZTogUGFydGlhbDxcblx0XHRPbWl0PE5ndFN0YXRlLCBQcml2YXRlS2V5cz4gJiB7XG5cdFx0XHRldmVudHM6IFBhcnRpYWw8UGljazxOZ3RFdmVudE1hbmFnZXI8YW55PiwgJ2VuYWJsZWQnIHwgJ3ByaW9yaXR5JyB8ICdjb21wdXRlJyB8ICdjb25uZWN0ZWQnPj47XG5cdFx0XHRzaXplOiBOZ3RTaXplO1xuXHRcdH1cblx0Pjtcbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW25ndFBvcnRhbEJlZm9yZVJlbmRlcl0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsQmVmb3JlUmVuZGVyIGltcGxlbWVudHMgT25Jbml0IHtcblx0cHJpdmF0ZSBwb3J0YWxTdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdEBJbnB1dCgpIHJlbmRlclByaW9yaXR5ID0gMTtcblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFyZW50U2NlbmUhOiBUSFJFRS5TY2VuZTtcblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFyZW50Q2FtZXJhITogVEhSRUUuQ2FtZXJhO1xuXG5cdEBPdXRwdXQoKSBiZWZvcmVSZW5kZXIgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFJlbmRlclN0YXRlPigpO1xuXG5cdG5nT25Jbml0KCkge1xuXHRcdGxldCBvbGRDbGVhcjogYm9vbGVhbjtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHQoeyBkZWx0YSwgZnJhbWUgfSkgPT4ge1xuXHRcdFx0XHR0aGlzLmJlZm9yZVJlbmRlci5lbWl0KHsgLi4udGhpcy5wb3J0YWxTdG9yZS5nZXQoKSwgZGVsdGEsIGZyYW1lIH0pO1xuXHRcdFx0XHRjb25zdCB7IGdsLCBzY2VuZSwgY2FtZXJhIH0gPSB0aGlzLnBvcnRhbFN0b3JlLmdldCgpO1xuXHRcdFx0XHRvbGRDbGVhciA9IGdsLmF1dG9DbGVhcjtcblx0XHRcdFx0aWYgKHRoaXMucmVuZGVyUHJpb3JpdHkgPT09IDEpIHtcblx0XHRcdFx0XHQvLyBjbGVhciBzY2VuZSBhbmQgcmVuZGVyIHdpdGggZGVmYXVsdFxuXHRcdFx0XHRcdGdsLmF1dG9DbGVhciA9IHRydWU7XG5cdFx0XHRcdFx0Z2wucmVuZGVyKHRoaXMucGFyZW50U2NlbmUsIHRoaXMucGFyZW50Q2FtZXJhKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBkaXNhYmxlIGNsZWFuaW5nXG5cdFx0XHRcdGdsLmF1dG9DbGVhciA9IGZhbHNlO1xuXHRcdFx0XHRnbC5jbGVhckRlcHRoKCk7XG5cdFx0XHRcdGdsLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcblx0XHRcdFx0Ly8gcmVzdG9yZVxuXHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBvbGRDbGVhcjtcblx0XHRcdH0sXG5cdFx0XHR7IHByaW9yaXR5OiB0aGlzLnJlbmRlclByaW9yaXR5LCBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9LFxuXHRcdCk7XG5cdH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbmd0UG9ydGFsQ29udGVudF0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsQ29udGVudCB7XG5cdGNvbnN0cnVjdG9yKHZjcjogVmlld0NvbnRhaW5lclJlZiwgQFNraXBTZWxmKCkgcGFyZW50VmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG5cdFx0Y29uc3QgY29tbWVudE5vZGUgPSB2Y3IuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXHRcdGlmIChjb21tZW50Tm9kZVtTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UXSkge1xuXHRcdFx0Y29tbWVudE5vZGVbU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVF0ocGFyZW50VmNyLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRkZWxldGUgY29tbWVudE5vZGVbU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVF07XG5cdFx0fVxuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndC1wb3J0YWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy1jb250YWluZXIgI3BvcnRhbENvbnRlbnRBbmNob3I+XG5cdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdCpuZ0lmPVwiYXV0b1JlbmRlciAmJiBwb3J0YWxDb250ZW50UmVuZGVyZWRcIlxuXHRcdFx0XHRuZ3RQb3J0YWxCZWZvcmVSZW5kZXJcblx0XHRcdFx0W3JlbmRlclByaW9yaXR5XT1cImF1dG9SZW5kZXJQcmlvcml0eVwiXG5cdFx0XHRcdFtwYXJlbnRTY2VuZV09XCJwYXJlbnRTY2VuZVwiXG5cdFx0XHRcdFtwYXJlbnRDYW1lcmFdPVwicGFyZW50Q2FtZXJhXCJcblx0XHRcdFx0KGJlZm9yZVJlbmRlcik9XCJvbkJlZm9yZVJlbmRlcigkZXZlbnQpXCJcblx0XHRcdC8+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ0lmLCBOZ3RQb3J0YWxCZWZvcmVSZW5kZXJdLFxuXHRwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HVF9TVE9SRSwgdXNlRmFjdG9yeTogKCkgPT4gc2lnbmFsU3RvcmU8Tmd0U3RhdGU+KHt9KSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsIGltcGxlbWVudHMgT25Jbml0IHtcblx0cHJpdmF0ZSBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RQb3J0YWxJbnB1dHM+KHsgY29udGFpbmVyOiBpbmplY3ROZ3RSZWY8VEhSRUUuU2NlbmU+KHByZXBhcmUobmV3IFRIUkVFLlNjZW5lKCkpKSB9KTtcblxuXHRASW5wdXQoKSBzZXQgY29udGFpbmVyKGNvbnRhaW5lcjogTmd0UG9ydGFsSW5wdXRzWydjb250YWluZXInXSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGNvbnRhaW5lciB9KTtcblx0fVxuXG5cdEBJbnB1dCgnc3RhdGUnKSBzZXQgcG9ydGFsU3RhdGUoc3RhdGU6IE5ndFBvcnRhbElucHV0c1snc3RhdGUnXSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHN0YXRlIH0pO1xuXHR9XG5cblx0QElucHV0KCkgYXV0b1JlbmRlciA9IHRydWU7XG5cdEBJbnB1dCgpIGF1dG9SZW5kZXJQcmlvcml0eSA9IDE7XG5cblx0QE91dHB1dCgpIGJlZm9yZVJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8eyByb290OiBOZ3RSZW5kZXJTdGF0ZTsgcG9ydGFsOiBOZ3RSZW5kZXJTdGF0ZSB9PigpO1xuXG5cdEBDb250ZW50Q2hpbGQoTmd0UG9ydGFsQ29udGVudCwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG5cdHBvcnRhbENvbnRlbnRUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG5cdEBWaWV3Q2hpbGQoJ3BvcnRhbENvbnRlbnRBbmNob3InLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuXHRwb3J0YWxDb250ZW50QW5jaG9yITogVmlld0NvbnRhaW5lclJlZjtcblxuXHRwcml2YXRlIHBhcmVudFN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoeyBza2lwU2VsZjogdHJ1ZSB9KTtcblx0cGFyZW50U2NlbmUgPSB0aGlzLnBhcmVudFN0b3JlLmdldCgnc2NlbmUnKTtcblx0cGFyZW50Q2FtZXJhID0gdGhpcy5wYXJlbnRTdG9yZS5nZXQoJ2NhbWVyYScpO1xuXG5cdHByaXZhdGUgcG9ydGFsU3RvcmUgPSBpbmplY3ROZ3RTdG9yZSh7IHNlbGY6IHRydWUgfSk7XG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcblxuXHRwcml2YXRlIHJheWNhc3RlciA9IG5ldyBUSFJFRS5SYXljYXN0ZXIoKTtcblx0cHJpdmF0ZSBwb2ludGVyID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcblxuXHRwb3J0YWxDb250ZW50UmVuZGVyZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBwb3J0YWxDb250ZW50Vmlldz86IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdGlmICh0aGlzLnBvcnRhbENvbnRlbnRWaWV3ICYmICF0aGlzLnBvcnRhbENvbnRlbnRWaWV3LmRlc3Ryb3llZCkge1xuXHRcdFx0XHR0aGlzLnBvcnRhbENvbnRlbnRWaWV3LmRlc3Ryb3koKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdGNvbnN0IHByZXZpb3VzU3RhdGUgPSB0aGlzLnBhcmVudFN0b3JlLmdldCgpO1xuXHRcdGNvbnN0IGlucHV0c1N0YXRlID0gdGhpcy5pbnB1dHMuZ2V0KCk7XG5cblx0XHRpZiAoIWlucHV0c1N0YXRlLnN0YXRlICYmIHRoaXMuYXV0b1JlbmRlcikge1xuXHRcdFx0aW5wdXRzU3RhdGUuc3RhdGUgPSB7IGV2ZW50czogeyBwcmlvcml0eTogdGhpcy5hdXRvUmVuZGVyUHJpb3JpdHkgKyAxIH0gfTtcblx0XHR9XG5cblx0XHRjb25zdCB7IGV2ZW50cywgc2l6ZSwgLi4ucmVzdElucHV0c1N0YXRlIH0gPSBpbnB1dHNTdGF0ZS5zdGF0ZSB8fCB7fTtcblxuXHRcdGNvbnN0IGNvbnRhaW5lclN0YXRlID0gaW5wdXRzU3RhdGUuY29udGFpbmVyO1xuXHRcdGxldCBjb250YWluZXIgPSBpcy5yZWYoY29udGFpbmVyU3RhdGUpID8gY29udGFpbmVyU3RhdGUubmF0aXZlRWxlbWVudCA6IGNvbnRhaW5lclN0YXRlO1xuXG5cdFx0aWYgKCFpcy5pbnN0YW5jZShjb250YWluZXIpKSB7XG5cdFx0XHRjb250YWluZXIgPSBwcmVwYXJlKGNvbnRhaW5lcik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoY29udGFpbmVyKTtcblx0XHRpZiAoIWxvY2FsU3RhdGUuc3RvcmUpIHtcblx0XHRcdGxvY2FsU3RhdGUuc3RvcmUgPSB0aGlzLnBvcnRhbFN0b3JlO1xuXHRcdH1cblxuXHRcdHRoaXMucG9ydGFsU3RvcmUuc2V0KHtcblx0XHRcdC4uLnByZXZpb3VzU3RhdGUsXG5cdFx0XHRzY2VuZTogY29udGFpbmVyIGFzIFRIUkVFLlNjZW5lLFxuXHRcdFx0cmF5Y2FzdGVyOiB0aGlzLnJheWNhc3Rlcixcblx0XHRcdHBvaW50ZXI6IHRoaXMucG9pbnRlcixcblx0XHRcdHByZXZpb3VzUm9vdDogdGhpcy5wYXJlbnRTdG9yZSxcblx0XHRcdGV2ZW50czogeyAuLi5wcmV2aW91c1N0YXRlLmV2ZW50cywgLi4uKGV2ZW50cyB8fCB7fSkgfSxcblx0XHRcdHNpemU6IHsgLi4ucHJldmlvdXNTdGF0ZS5zaXplLCAuLi4oc2l6ZSB8fCB7fSkgfSxcblx0XHRcdC4uLnJlc3RJbnB1dHNTdGF0ZSxcblx0XHRcdHNldEV2ZW50czogKGV2ZW50cykgPT5cblx0XHRcdFx0dGhpcy5wb3J0YWxTdG9yZS5zZXQoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgZXZlbnRzOiB7IC4uLnN0YXRlLmV2ZW50cywgLi4uZXZlbnRzIH0gfSkpLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcGFyZW50U3RhdGUgPSB0aGlzLnBhcmVudFN0b3JlLnNlbGVjdCgpO1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXMgPSBwYXJlbnRTdGF0ZSgpO1xuXHRcdFx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucG9ydGFsU3RvcmUuc2V0KChzdGF0ZSkgPT4gdGhpcy5pbmplY3QocHJldmlvdXMsIHN0YXRlKSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSxcblx0XHQpO1xuXG5cdFx0cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcblx0XHRcdHRoaXMucG9ydGFsU3RvcmUuc2V0KChpbmplY3RTdGF0ZSkgPT4gdGhpcy5pbmplY3QodGhpcy5wYXJlbnRTdG9yZS5nZXQoKSwgaW5qZWN0U3RhdGUpKTtcblx0XHR9KTtcblx0XHR0aGlzLnBvcnRhbENvbnRlbnRWaWV3ID0gdGhpcy5wb3J0YWxDb250ZW50QW5jaG9yLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnBvcnRhbENvbnRlbnRUZW1wbGF0ZSk7XG5cdFx0c2FmZURldGVjdENoYW5nZXModGhpcy5wb3J0YWxDb250ZW50Vmlldyk7XG5cdFx0dGhpcy5wb3J0YWxDb250ZW50UmVuZGVyZWQgPSB0cnVlO1xuXHR9XG5cblx0b25CZWZvcmVSZW5kZXIocG9ydGFsOiBOZ3RSZW5kZXJTdGF0ZSkge1xuXHRcdHRoaXMuYmVmb3JlUmVuZGVyLmVtaXQoe1xuXHRcdFx0cm9vdDogeyAuLi50aGlzLnBhcmVudFN0b3JlLmdldCgpLCBkZWx0YTogcG9ydGFsLmRlbHRhLCBmcmFtZTogcG9ydGFsLmZyYW1lIH0sXG5cdFx0XHRwb3J0YWwsXG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGluamVjdChyb290U3RhdGU6IE5ndFN0YXRlLCBpbmplY3RTdGF0ZTogTmd0U3RhdGUpIHtcblx0XHRjb25zdCBpbnRlcnNlY3Q6IFBhcnRpYWw8Tmd0U3RhdGU+ID0geyAuLi5yb290U3RhdGUgfTtcblxuXHRcdE9iamVjdC5rZXlzKGludGVyc2VjdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHByaXZhdGVLZXlzLmluY2x1ZGVzKGtleSBhcyBQcml2YXRlS2V5cykgfHxcblx0XHRcdFx0cm9vdFN0YXRlW2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV0gIT09IGluamVjdFN0YXRlW2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV1cblx0XHRcdCkge1xuXHRcdFx0XHRkZWxldGUgaW50ZXJzZWN0W2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRjb25zdCBpbnB1dHMgPSB0aGlzLmlucHV0cy5nZXQoKTtcblx0XHRjb25zdCB7IHNpemUsIGV2ZW50cywgLi4ucmVzdElucHV0c1N0YXRlIH0gPSBpbnB1dHMuc3RhdGUgfHwge307XG5cblx0XHRsZXQgdmlld3BvcnQgPSB1bmRlZmluZWQ7XG5cdFx0aWYgKGluamVjdFN0YXRlICYmIHNpemUpIHtcblx0XHRcdGNvbnN0IGNhbWVyYSA9IGluamVjdFN0YXRlLmNhbWVyYTtcblx0XHRcdHZpZXdwb3J0ID0gcm9vdFN0YXRlLnZpZXdwb3J0LmdldEN1cnJlbnRWaWV3cG9ydChjYW1lcmEsIG5ldyBUSFJFRS5WZWN0b3IzKCksIHNpemUpO1xuXHRcdFx0aWYgKGNhbWVyYSAhPT0gcm9vdFN0YXRlLmNhbWVyYSkgdXBkYXRlQ2FtZXJhKGNhbWVyYSwgc2l6ZSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLmludGVyc2VjdCxcblx0XHRcdHNjZW5lOiBpcy5yZWYoaW5wdXRzLmNvbnRhaW5lcikgPyBpbnB1dHMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgOiBpbnB1dHMuY29udGFpbmVyLFxuXHRcdFx0cmF5Y2FzdGVyOiB0aGlzLnJheWNhc3Rlcixcblx0XHRcdHBvaW50ZXI6IHRoaXMucG9pbnRlcixcblx0XHRcdHByZXZpb3VzUm9vdDogdGhpcy5wYXJlbnRTdG9yZSxcblx0XHRcdGV2ZW50czogeyAuLi5yb290U3RhdGUuZXZlbnRzLCAuLi4oaW5qZWN0U3RhdGU/LmV2ZW50cyB8fCB7fSksIC4uLmV2ZW50cyB9LFxuXHRcdFx0c2l6ZTogeyAuLi5yb290U3RhdGUuc2l6ZSwgLi4uc2l6ZSB9LFxuXHRcdFx0dmlld3BvcnQ6IHsgLi4ucm9vdFN0YXRlLnZpZXdwb3J0LCAuLi4odmlld3BvcnQgfHwge30pIH0sXG5cdFx0XHQuLi5yZXN0SW5wdXRzU3RhdGUsXG5cdFx0fSBhcyBOZ3RTdGF0ZTtcblx0fVxufVxuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { DestroyRef, ElementRef, computed, inject, runInInjectionContext, signal, untracked, } from '@angular/core';
|
|
2
|
+
import { getLocalState } from './instance';
|
|
3
|
+
import { assertInjectionContext } from './utils/assert-injection-context';
|
|
4
|
+
import { is } from './utils/is';
|
|
5
|
+
export function injectNgtRef(initial = null, injector) {
|
|
6
|
+
injector = assertInjectionContext(injectNgtRef);
|
|
7
|
+
const ref = is.ref(initial) ? initial : new ElementRef(initial);
|
|
8
|
+
const signalRef = signal(ref.nativeElement);
|
|
9
|
+
const readonlySignal = signalRef.asReadonly();
|
|
10
|
+
const cached = new Map();
|
|
11
|
+
return runInInjectionContext(injector, () => {
|
|
12
|
+
inject(DestroyRef).onDestroy(() => void cached.clear());
|
|
13
|
+
const children = (type = 'objects') => {
|
|
14
|
+
if (!cached.has(type)) {
|
|
15
|
+
cached.set(type, computed(() => {
|
|
16
|
+
const instance = readonlySignal();
|
|
17
|
+
if (!instance)
|
|
18
|
+
return [];
|
|
19
|
+
const localState = getLocalState(instance);
|
|
20
|
+
if (!localState.objects || !localState.nonObjects)
|
|
21
|
+
return [];
|
|
22
|
+
if (type === 'objects')
|
|
23
|
+
return localState.objects();
|
|
24
|
+
if (type === 'nonObjects')
|
|
25
|
+
return localState.nonObjects();
|
|
26
|
+
return [...localState.objects(), ...localState.nonObjects()];
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
return cached.get(type);
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperties(ref, {
|
|
32
|
+
nativeElement: {
|
|
33
|
+
set: (newElement) => {
|
|
34
|
+
untracked(() => {
|
|
35
|
+
if (newElement !== signalRef()) {
|
|
36
|
+
signalRef.set(newElement);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
get: readonlySignal,
|
|
41
|
+
},
|
|
42
|
+
untracked: { get: () => untracked(readonlySignal) },
|
|
43
|
+
children: { get: () => children },
|
|
44
|
+
});
|
|
45
|
+
return ref;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLE1BQU0sRUFDTixTQUFTLEdBR1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBd0IsTUFBTSxZQUFZLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVdoQyxNQUFNLFVBQVUsWUFBWSxDQUMzQixVQUEyQyxJQUFLLEVBQ2hELFFBQW1CO0lBRW5CLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLE9BQW1CLENBQUMsQ0FBQztJQUM1RSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXpCLE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUMzQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFeEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxPQUEwQyxTQUFTLEVBQUUsRUFBRTtZQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FDVCxJQUFJLEVBQ0osUUFBUSxDQUFDLEdBQUcsRUFBRTtvQkFDYixNQUFNLFFBQVEsR0FBRyxjQUFjLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLFFBQVE7d0JBQUUsT0FBTyxFQUFFLENBQUM7b0JBQ3pCLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTt3QkFBRSxPQUFPLEVBQUUsQ0FBQztvQkFDN0QsSUFBSSxJQUFJLEtBQUssU0FBUzt3QkFBRSxPQUFPLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDcEQsSUFBSSxJQUFJLEtBQUssWUFBWTt3QkFBRSxPQUFPLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDMUQsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQyxDQUNGLENBQUM7YUFDRjtZQUNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUMxQixDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1lBQzVCLGFBQWEsRUFBRTtnQkFDZCxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDbkIsU0FBUyxDQUFDLEdBQUcsRUFBRTt3QkFDZCxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUUsRUFBRTs0QkFDL0IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzt5QkFDMUI7b0JBQ0YsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxHQUFHLEVBQUUsY0FBYzthQUNuQjtZQUNELFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDbkQsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtTQUNqQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQStCLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGVzdHJveVJlZixcblx0RWxlbWVudFJlZixcblx0Y29tcHV0ZWQsXG5cdGluamVjdCxcblx0cnVuSW5JbmplY3Rpb25Db250ZXh0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dHlwZSBJbmplY3Rvcixcblx0dHlwZSBTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0TG9jYWxTdGF0ZSwgdHlwZSBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB7IGFzc2VydEluamVjdGlvbkNvbnRleHQgfSBmcm9tICcuL3V0aWxzL2Fzc2VydC1pbmplY3Rpb24tY29udGV4dCc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuXG5leHBvcnQgdHlwZSBOZ3RJbmplY3RlZFJlZjxURWxlbWVudD4gPSBFbGVtZW50UmVmPFRFbGVtZW50PiAmIHtcblx0LyogY29uc3VtZXJzIHNob3VsZCB1c2UgdGhpcyBmb3IgbGlzdGVudGluZyB0byBjaGlsZHJlbiBjaGFuZ2VzIG9uIHRoaXMgcmVmICovXG5cdGNoaWxkcmVuOiAodHlwZT86ICdvYmplY3RzJyB8ICdub25PYmplY3RzJyB8ICdib3RoJykgPT4gU2lnbmFsPE5ndEluc3RhbmNlTm9kZVtdPjtcblx0LyogY29uc3VtZXJzIHNob3VsZCB1c2UgdGhpcyB0byByZWFkIHRoZSByZWYgY3VycmVudCB2YWx1ZSB3aXRob3V0IHJlZ2lzdGVyaW5nIHRoZSBzaWduYWwgKi9cblx0dW50cmFja2VkOiBURWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndFJlZjxURWxlbWVudD4gPSBURWxlbWVudCB8IE5ndEluamVjdGVkUmVmPFRFbGVtZW50PjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndFJlZjxURWxlbWVudD4oXG5cdGluaXRpYWw6IEVsZW1lbnRSZWY8VEVsZW1lbnQ+IHwgVEVsZW1lbnQgPSBudWxsISxcblx0aW5qZWN0b3I/OiBJbmplY3Rvcixcbik6IE5ndEluamVjdGVkUmVmPFRFbGVtZW50PiB7XG5cdGluamVjdG9yID0gYXNzZXJ0SW5qZWN0aW9uQ29udGV4dChpbmplY3ROZ3RSZWYpO1xuXHRjb25zdCByZWYgPSBpcy5yZWYoaW5pdGlhbCkgPyBpbml0aWFsIDogbmV3IEVsZW1lbnRSZWYoaW5pdGlhbCBhcyBURWxlbWVudCk7XG5cdGNvbnN0IHNpZ25hbFJlZiA9IHNpZ25hbChyZWYubmF0aXZlRWxlbWVudCk7XG5cdGNvbnN0IHJlYWRvbmx5U2lnbmFsID0gc2lnbmFsUmVmLmFzUmVhZG9ubHkoKTtcblx0Y29uc3QgY2FjaGVkID0gbmV3IE1hcCgpO1xuXG5cdHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHZvaWQgY2FjaGVkLmNsZWFyKCkpO1xuXG5cdFx0Y29uc3QgY2hpbGRyZW4gPSAodHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnIHwgJ2JvdGgnID0gJ29iamVjdHMnKSA9PiB7XG5cdFx0XHRpZiAoIWNhY2hlZC5oYXModHlwZSkpIHtcblx0XHRcdFx0Y2FjaGVkLnNldChcblx0XHRcdFx0XHR0eXBlLFxuXHRcdFx0XHRcdGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGluc3RhbmNlID0gcmVhZG9ubHlTaWduYWwoKTtcblx0XHRcdFx0XHRcdGlmICghaW5zdGFuY2UpIHJldHVybiBbXTtcblx0XHRcdFx0XHRcdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGluc3RhbmNlKTtcblx0XHRcdFx0XHRcdGlmICghbG9jYWxTdGF0ZS5vYmplY3RzIHx8ICFsb2NhbFN0YXRlLm5vbk9iamVjdHMpIHJldHVybiBbXTtcblx0XHRcdFx0XHRcdGlmICh0eXBlID09PSAnb2JqZWN0cycpIHJldHVybiBsb2NhbFN0YXRlLm9iamVjdHMoKTtcblx0XHRcdFx0XHRcdGlmICh0eXBlID09PSAnbm9uT2JqZWN0cycpIHJldHVybiBsb2NhbFN0YXRlLm5vbk9iamVjdHMoKTtcblx0XHRcdFx0XHRcdHJldHVybiBbLi4ubG9jYWxTdGF0ZS5vYmplY3RzKCksIC4uLmxvY2FsU3RhdGUubm9uT2JqZWN0cygpXTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBjYWNoZWQuZ2V0KHR5cGUpITtcblx0XHR9O1xuXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocmVmLCB7XG5cdFx0XHRuYXRpdmVFbGVtZW50OiB7XG5cdFx0XHRcdHNldDogKG5ld0VsZW1lbnQpID0+IHtcblx0XHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKG5ld0VsZW1lbnQgIT09IHNpZ25hbFJlZigpKSB7XG5cdFx0XHRcdFx0XHRcdHNpZ25hbFJlZi5zZXQobmV3RWxlbWVudCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGdldDogcmVhZG9ubHlTaWduYWwsXG5cdFx0XHR9LFxuXHRcdFx0dW50cmFja2VkOiB7IGdldDogKCkgPT4gdW50cmFja2VkKHJlYWRvbmx5U2lnbmFsKSB9LFxuXHRcdFx0Y2hpbGRyZW46IHsgZ2V0OiAoKSA9PiBjaGlsZHJlbiB9LFxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHJlZiBhcyBOZ3RJbmplY3RlZFJlZjxURWxlbWVudD47XG5cdH0pO1xufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createInjectionToken } from '../utils/create-injection-token';
|
|
2
|
+
const catalogue = {};
|
|
3
|
+
export function extend(objects) {
|
|
4
|
+
Object.assign(catalogue, objects);
|
|
5
|
+
}
|
|
6
|
+
export const [injectNgtCatalogue] = createInjectionToken(() => catalogue);
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZ3VlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcmVuZGVyZXIvY2F0YWxvZ3VlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSXZFLE1BQU0sU0FBUyxHQUFzQyxFQUFFLENBQUM7QUFFeEQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUFlO0lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVJbmplY3Rpb25Ub2tlbiB9IGZyb20gJy4uL3V0aWxzL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4nO1xuXG5leHBvcnQgdHlwZSBOZ3RBbnlDb25zdHJ1Y3RvciA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueTtcblxuY29uc3QgY2F0YWxvZ3VlOiBSZWNvcmQ8c3RyaW5nLCBOZ3RBbnlDb25zdHJ1Y3Rvcj4gPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZChvYmplY3RzOiBvYmplY3QpOiB2b2lkIHtcblx0T2JqZWN0LmFzc2lnbihjYXRhbG9ndWUsIG9iamVjdHMpO1xufVxuXG5leHBvcnQgY29uc3QgW2luamVjdE5ndENhdGFsb2d1ZV0gPSBjcmVhdGVJbmplY3Rpb25Ub2tlbigoKSA9PiBjYXRhbG9ndWUpO1xuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const ROUTED_SCENE = '__ngt_renderer_is_routed_scene__';
|
|
2
|
+
export const HTML = '__ngt_renderer_is_html';
|
|
3
|
+
export const SPECIAL_INTERNAL_ADD_COMMENT = '__ngt_renderer_add_comment__';
|
|
4
|
+
export const SPECIAL_DOM_TAG = {
|
|
5
|
+
NGT_PORTAL: 'ngt-portal',
|
|
6
|
+
NGT_PRIMITIVE: 'ngt-primitive',
|
|
7
|
+
NGT_VALUE: 'ngt-value',
|
|
8
|
+
};
|
|
9
|
+
export const SPECIAL_PROPERTIES = {
|
|
10
|
+
COMPOUND: 'ngtCompound',
|
|
11
|
+
RENDER_PRIORITY: 'priority',
|
|
12
|
+
ATTACH: 'attach',
|
|
13
|
+
VALUE: 'rawValue',
|
|
14
|
+
REF: 'ref',
|
|
15
|
+
};
|
|
16
|
+
export const SPECIAL_EVENTS = {
|
|
17
|
+
BEFORE_RENDER: 'beforeRender',
|
|
18
|
+
AFTER_UPDATE: 'afterUpdate',
|
|
19
|
+
AFTER_ATTACH: 'afterAttach',
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcmVuZGVyZXIvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxrQ0FBa0MsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsd0JBQXdCLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsOEJBQThCLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzlCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLGFBQWEsRUFBRSxlQUFlO0lBQzlCLFNBQVMsRUFBRSxXQUFXO0NBQ2IsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2pDLFFBQVEsRUFBRSxhQUFhO0lBQ3ZCLGVBQWUsRUFBRSxVQUFVO0lBQzNCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxVQUFVO0lBQ2pCLEdBQUcsRUFBRSxLQUFLO0NBQ0QsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM3QixhQUFhLEVBQUUsY0FBYztJQUM3QixZQUFZLEVBQUUsYUFBYTtJQUMzQixZQUFZLEVBQUUsYUFBYTtDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJPVVRFRF9TQ0VORSA9ICdfX25ndF9yZW5kZXJlcl9pc19yb3V0ZWRfc2NlbmVfXyc7XG5leHBvcnQgY29uc3QgSFRNTCA9ICdfX25ndF9yZW5kZXJlcl9pc19odG1sJztcbmV4cG9ydCBjb25zdCBTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UID0gJ19fbmd0X3JlbmRlcmVyX2FkZF9jb21tZW50X18nO1xuXG5leHBvcnQgY29uc3QgU1BFQ0lBTF9ET01fVEFHID0ge1xuXHROR1RfUE9SVEFMOiAnbmd0LXBvcnRhbCcsXG5cdE5HVF9QUklNSVRJVkU6ICduZ3QtcHJpbWl0aXZlJyxcblx0TkdUX1ZBTFVFOiAnbmd0LXZhbHVlJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBTUEVDSUFMX1BST1BFUlRJRVMgPSB7XG5cdENPTVBPVU5EOiAnbmd0Q29tcG91bmQnLFxuXHRSRU5ERVJfUFJJT1JJVFk6ICdwcmlvcml0eScsXG5cdEFUVEFDSDogJ2F0dGFjaCcsXG5cdFZBTFVFOiAncmF3VmFsdWUnLFxuXHRSRUY6ICdyZWYnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFNQRUNJQUxfRVZFTlRTID0ge1xuXHRCRUZPUkVfUkVOREVSOiAnYmVmb3JlUmVuZGVyJyxcblx0QUZURVJfVVBEQVRFOiAnYWZ0ZXJVcGRhdGUnLFxuXHRBRlRFUl9BVFRBQ0g6ICdhZnRlckF0dGFjaCcsXG59IGFzIGNvbnN0O1xuIl19
|