angular-three 2.0.0-beta.310 → 2.0.0-beta.312
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/lib/canvas.mjs +9 -11
- package/esm2022/lib/directives/args.mjs +3 -3
- package/esm2022/lib/directives/selection.mjs +6 -6
- package/esm2022/lib/html.mjs +3 -3
- package/esm2022/lib/pipes/hexify.mjs +3 -3
- package/esm2022/lib/portal.mjs +9 -9
- package/esm2022/lib/renderer/index.mjs +18 -42
- package/esm2022/lib/renderer/state.mjs +9 -4
- package/esm2022/lib/renderer/utils.mjs +1 -1
- package/esm2022/lib/routed-scene.mjs +3 -3
- package/esm2022/lib/store.mjs +1 -8
- package/esm2022/lib/utils/make.mjs +2 -2
- package/esm2022/lib/utils/object-events.mjs +3 -3
- package/esm2022/nativescript/angular-three-nativescript.mjs +5 -0
- package/esm2022/nativescript/index.mjs +2 -0
- package/esm2022/nativescript/lib/canvas.mjs +132 -0
- package/esm2022/testing/lib/test-canvas.mjs +3 -3
- package/fesm2022/angular-three-nativescript.mjs +139 -0
- package/fesm2022/angular-three-nativescript.mjs.map +1 -0
- package/fesm2022/angular-three-testing.mjs +3 -3
- package/fesm2022/angular-three.mjs +63 -90
- package/fesm2022/angular-three.mjs.map +1 -1
- package/lib/renderer/index.d.ts +0 -1
- package/lib/renderer/state.d.ts +3 -2
- package/lib/renderer/utils.d.ts +2 -1
- package/nativescript/README.md +5 -0
- package/nativescript/index.d.ts +1 -0
- package/nativescript/lib/canvas.d.ts +369 -0
- package/nativescript/package.json +3 -0
- package/package.json +24 -2
package/esm2022/lib/store.mjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
1
|
import { ElementRef, InjectionToken, effect, inject } from '@angular/core';
|
|
3
2
|
import { Subject } from 'rxjs';
|
|
4
3
|
import { Clock, Vector2, Vector3 } from 'three';
|
|
@@ -8,12 +7,6 @@ import { makeDpr } from './utils/make';
|
|
|
8
7
|
import { signalStore } from './utils/signal-store';
|
|
9
8
|
import { updateCamera } from './utils/update';
|
|
10
9
|
function storeFactory(previousStore) {
|
|
11
|
-
const document = inject(DOCUMENT);
|
|
12
|
-
const window = document.defaultView;
|
|
13
|
-
if (!window) {
|
|
14
|
-
// TODO: revisit this when we need to support multiple platforms
|
|
15
|
-
throw new Error(`[NGT] Window is not available.`);
|
|
16
|
-
}
|
|
17
10
|
const loop = injectLoop();
|
|
18
11
|
// NOTE: using Subject because we do not care about late-subscribers
|
|
19
12
|
const pointerMissed$ = new Subject();
|
|
@@ -180,4 +173,4 @@ export function provideStore(store) {
|
|
|
180
173
|
export function injectStore(options) {
|
|
181
174
|
return inject(NGT_STORE, options);
|
|
182
175
|
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBaUIsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsU0FBUyxZQUFZLENBQUMsYUFBOEM7SUFDbkUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFFcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2IsZ0VBQWdFO1FBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFFMUIsb0VBQW9FO0lBQ3BFLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7SUFFakQsTUFBTSxLQUFLLEdBQTZCLFdBQVcsQ0FBVyxDQUFDLEVBQUUsR0FBRyxF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QUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakgsQ0FBQztJQUNGLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxLQUFLLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUEyQixnQkFBZ0IsQ0FBQyxDQUFDO0FBRXhGLE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBc0M7SUFDbEUsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFLRCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQXVCO0lBQ2xELE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUF3QixDQUFDLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdE9wdGlvbnMsIEluamVjdGlvblRva2VuLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xvY2ssIFZlY3RvcjIsIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RMb29wIH0gZnJvbSAnLi9sb29wJztcbmltcG9ydCB7IE5ndEJlZm9yZVJlbmRlclJlY29yZCwgTmd0Q2FtZXJhLCBOZ3REcHIsIE5ndEV2ZW50TWFuYWdlciwgTmd0U2l6ZSwgTmd0U3RhdGUsIE5ndFZpZXdwb3J0IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgbWFrZURwciB9IGZyb20gJy4vdXRpbHMvbWFrZSc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSwgc2lnbmFsU3RvcmUgfSBmcm9tICcuL3V0aWxzL3NpZ25hbC1zdG9yZSc7XG5pbXBvcnQgeyB1cGRhdGVDYW1lcmEgfSBmcm9tICcuL3V0aWxzL3VwZGF0ZSc7XG5cbmZ1bmN0aW9uIHN0b3JlRmFjdG9yeShwcmV2aW91c1N0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4gfCBudWxsKSB7XG5cdGNvbnN0IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblx0Y29uc3Qgd2luZG93ID0gZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cblx0aWYgKCF3aW5kb3cpIHtcblx0XHQvLyBUT0RPOiByZXZpc2l0IHRoaXMgd2hlbiB3ZSBuZWVkIHRvIHN1cHBvcnQgbXVsdGlwbGUgcGxhdGZvcm1zXG5cdFx0dGhyb3cgbmV3IEVycm9yKGBbTkdUXSBXaW5kb3cgaXMgbm90IGF2YWlsYWJsZS5gKTtcblx0fVxuXG5cdGNvbnN0IGxvb3AgPSBpbmplY3RMb29wKCk7XG5cblx0Ly8gTk9URTogdXNpbmcgU3ViamVjdCBiZWNhdXNlIHdlIGRvIG5vdCBjYXJlIGFib3V0IGxhdGUtc3Vic2NyaWJlcnNcblx0Y29uc3QgcG9pbnRlck1pc3NlZCQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG5cdGNvbnN0IHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4gPSBzaWduYWxTdG9yZTxOZ3RTdGF0ZT4oKHsgZ2V0LCB1cGRhdGUgfSkgPT4ge1xuXHRcdGNvbnN0IHsgaW52YWxpZGF0ZSwgYWR2YW5jZSB9ID0gbG9vcDtcblxuXHRcdGNvbnN0IHBvc2l0aW9uID0gbmV3IFZlY3RvcjMoKTtcblx0XHRjb25zdCBkZWZhdWx0VGFyZ2V0ID0gbmV3IFZlY3RvcjMoKTtcblx0XHRjb25zdCB0ZW1wVGFyZ2V0ID0gbmV3IFZlY3RvcjMoKTtcblxuXHRcdGZ1bmN0aW9uIGdldEN1cnJlbnRWaWV3cG9ydChcblx0XHRcdGNhbWVyYTogTmd0Q2FtZXJhID0gZ2V0KCdjYW1lcmEnKSxcblx0XHRcdHRhcmdldDogVmVjdG9yMyB8IFBhcmFtZXRlcnM8VmVjdG9yM1snc2V0J10+ID0gZGVmYXVsdFRhcmdldCxcblx0XHRcdHNpemU6IE5ndFNpemUgPSBnZXQoJ3NpemUnKSxcblx0XHQpOiBPbWl0PE5ndFZpZXdwb3J0LCAnZHByJyB8ICdpbml0aWFsRHByJz4ge1xuXHRcdFx0Y29uc3QgeyB3aWR0aCwgaGVpZ2h0LCB0b3AsIGxlZnQgfSA9IHNpemU7XG5cdFx0XHRjb25zdCBhc3BlY3QgPSB3aWR0aCAvIGhlaWdodDtcblxuXHRcdFx0aWYgKHRhcmdldCBpbnN0YW5jZW9mIFZlY3RvcjMpIHRlbXBUYXJnZXQuY29weSh0YXJnZXQpO1xuXHRcdFx0ZWxzZSB0ZW1wVGFyZ2V0LnNldCguLi50YXJnZXQpO1xuXG5cdFx0XHRjb25zdCBkaXN0YW5jZSA9IGNhbWVyYS5nZXRXb3JsZFBvc2l0aW9uKHBvc2l0aW9uKS5kaXN0YW5jZVRvKHRlbXBUYXJnZXQpO1xuXG5cdFx0XHRpZiAoaXMub3J0aG9ncmFwaGljQ2FtZXJhKGNhbWVyYSkpIHtcblx0XHRcdFx0cmV0dXJuIHsgd2lkdGg6IHdpZHRoIC8gY2FtZXJhLnpvb20sIGhlaWdodDogaGVpZ2h0IC8gY2FtZXJhLnpvb20sIHRvcCwgbGVmdCwgZmFjdG9yOiAxLCBkaXN0YW5jZSwgYXNwZWN0IH07XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGZvdiA9IChjYW1lcmEuZm92ICogTWF0aC5QSSkgLyAxODA7IC8vIGNvbnZlcnQgdmVydGljYWwgZm92IHRvIHJhZGlhbnNcblx0XHRcdGNvbnN0IGggPSAyICogTWF0aC50YW4oZm92IC8gMikgKiBkaXN0YW5jZTsgLy8gdmlzaWJsZSBoZWlnaHRcblx0XHRcdGNvbnN0IHcgPSBoICogKHdpZHRoIC8gaGVpZ2h0KTtcblx0XHRcdHJldHVybiB7IHdpZHRoOiB3LCBoZWlnaHQ6IGgsIHRvcCwgbGVmdCwgZmFjdG9yOiB3aWR0aCAvIHcsIGRpc3RhbmNlLCBhc3BlY3QgfTtcblx0XHR9XG5cblx0XHRsZXQgcGVyZm9ybWFuY2VUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblx0XHRjb25zdCBzZXRQZXJmb3JtYW5jZUN1cnJlbnQgPSAoY3VycmVudDogbnVtYmVyKSA9PlxuXHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4gKHsgcGVyZm9ybWFuY2U6IHsgLi4uc3RhdGUucGVyZm9ybWFuY2UsIGN1cnJlbnQgfSB9KSk7XG5cblx0XHRjb25zdCBwb2ludGVyID0gbmV3IFZlY3RvcjIoKTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRwb2ludGVyTWlzc2VkJDogcG9pbnRlck1pc3NlZCQuYXNPYnNlcnZhYmxlKCksXG5cdFx0XHRldmVudHM6IHsgcHJpb3JpdHk6IDEsIGVuYWJsZWQ6IHRydWUsIGNvbm5lY3RlZDogZmFsc2UgfSxcblxuXHRcdFx0aW52YWxpZGF0ZTogKGZyYW1lcyA9IDEpID0+IGludmFsaWRhdGUoc3RvcmUsIGZyYW1lcyksXG5cdFx0XHRhZHZhbmNlOiAodGltZXN0YW1wOiBudW1iZXIsIHJ1bkdsb2JhbEVmZmVjdHM/OiBib29sZWFuKSA9PiBhZHZhbmNlKHRpbWVzdGFtcCwgcnVuR2xvYmFsRWZmZWN0cywgc3RvcmUpLFxuXG5cdFx0XHRsZWdhY3k6IGZhbHNlLFxuXHRcdFx0bGluZWFyOiBmYWxzZSxcblx0XHRcdGZsYXQ6IGZhbHNlLFxuXG5cdFx0XHRjb250cm9sczogbnVsbCxcblx0XHRcdGNsb2NrOiBuZXcgQ2xvY2soKSxcblx0XHRcdHBvaW50ZXIsXG5cblx0XHRcdGZyYW1lbG9vcDogJ2Fsd2F5cycsXG5cblx0XHRcdHBlcmZvcm1hbmNlOiB7XG5cdFx0XHRcdGN1cnJlbnQ6IDEsXG5cdFx0XHRcdG1pbjogMC41LFxuXHRcdFx0XHRtYXg6IDEsXG5cdFx0XHRcdGRlYm91bmNlOiAyMDAsXG5cdFx0XHRcdHJlZ3Jlc3M6ICgpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGdldCgpO1xuXHRcdFx0XHRcdC8vIENsZWFyIHRpbWVvdXRcblx0XHRcdFx0XHRpZiAocGVyZm9ybWFuY2VUaW1lb3V0KSBjbGVhclRpbWVvdXQocGVyZm9ybWFuY2VUaW1lb3V0KTtcblx0XHRcdFx0XHQvLyBTZXQgbG93ZXIgYm91bmQgcGVyZm9ybWFuY2Vcblx0XHRcdFx0XHRpZiAoc3RhdGUucGVyZm9ybWFuY2UuY3VycmVudCAhPT0gc3RhdGUucGVyZm9ybWFuY2UubWluKSBzZXRQZXJmb3JtYW5jZUN1cnJlbnQoc3RhdGUucGVyZm9ybWFuY2UubWluKTtcblx0XHRcdFx0XHQvLyBHbyBiYWNrIHRvIHVwcGVyIGJvdW5kIHBlcmZvcm1hbmNlIGFmdGVyIGEgd2hpbGUgdW5sZXNzIHNvbWV0aGluZyByZWdyZXNzZXMgbWVhbndoaWxlXG5cdFx0XHRcdFx0cGVyZm9ybWFuY2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRzZXRQZXJmb3JtYW5jZUN1cnJlbnQoZ2V0KCdwZXJmb3JtYW5jZScsICdtYXgnKSk7XG5cdFx0XHRcdFx0XHQvLyBzYWZlRGV0ZWN0Q2hhbmdlcyhjZHIpO1xuXHRcdFx0XHRcdH0sIHN0YXRlLnBlcmZvcm1hbmNlLmRlYm91bmNlKTtcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cblx0XHRcdHNpemU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCwgdG9wOiAwLCBsZWZ0OiAwLCB1cGRhdGVTdHlsZTogZmFsc2UgfSxcblx0XHRcdHZpZXdwb3J0OiB7XG5cdFx0XHRcdGluaXRpYWxEcHI6IDAsXG5cdFx0XHRcdGRwcjogMCxcblx0XHRcdFx0d2lkdGg6IDAsXG5cdFx0XHRcdGhlaWdodDogMCxcblx0XHRcdFx0dG9wOiAwLFxuXHRcdFx0XHRsZWZ0OiAwLFxuXHRcdFx0XHRhc3BlY3Q6IDAsXG5cdFx0XHRcdGRpc3RhbmNlOiAwLFxuXHRcdFx0XHRmYWN0b3I6IDAsXG5cdFx0XHRcdGdldEN1cnJlbnRWaWV3cG9ydCxcblx0XHRcdH0sXG5cblx0XHRcdHNldEV2ZW50czogKGV2ZW50czogUGFydGlhbDxOZ3RFdmVudE1hbmFnZXI8YW55Pj4pID0+XG5cdFx0XHRcdHVwZGF0ZSgoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCBldmVudHM6IHsgLi4uc3RhdGUuZXZlbnRzLCAuLi5ldmVudHMgfSB9KSksXG5cdFx0XHRzZXRTaXplOiAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHRvcD86IG51bWJlciwgbGVmdD86IG51bWJlcikgPT4ge1xuXHRcdFx0XHRjb25zdCBjYW1lcmEgPSBnZXQoJ2NhbWVyYScpO1xuXHRcdFx0XHRjb25zdCBzaXplID0geyB3aWR0aCwgaGVpZ2h0LCB0b3A6IHRvcCB8fCAwLCBsZWZ0OiBsZWZ0IHx8IDAgfTtcblx0XHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdFx0XHRzaXplLFxuXHRcdFx0XHRcdHZpZXdwb3J0OiB7IC4uLnN0YXRlLnZpZXdwb3J0LCAuLi5nZXRDdXJyZW50Vmlld3BvcnQoY2FtZXJhLCBkZWZhdWx0VGFyZ2V0LCBzaXplKSB9LFxuXHRcdFx0XHR9KSk7XG5cdFx0XHR9LFxuXHRcdFx0c2V0RHByOiAoZHByOiBOZ3REcHIpID0+XG5cdFx0XHRcdHVwZGF0ZSgoc3RhdGUpID0+IHtcblx0XHRcdFx0XHRjb25zdCByZXNvbHZlZCA9IG1ha2VEcHIoZHByLCB3aW5kb3cpO1xuXHRcdFx0XHRcdHJldHVybiB7IHZpZXdwb3J0OiB7IC4uLnN0YXRlLnZpZXdwb3J0LCBkcHI6IHJlc29sdmVkLCBpbml0aWFsRHByOiBzdGF0ZS52aWV3cG9ydC5pbml0aWFsRHByIHx8IHJlc29sdmVkIH0gfTtcblx0XHRcdFx0fSksXG5cdFx0XHRzZXRGcmFtZWxvb3A6IChmcmFtZWxvb3A6ICdhbHdheXMnIHwgJ2RlbWFuZCcgfCAnbmV2ZXInID0gJ2Fsd2F5cycpID0+IHtcblx0XHRcdFx0Y29uc3QgY2xvY2sgPSBnZXQoJ2Nsb2NrJyk7XG5cblx0XHRcdFx0Ly8gaWYgZnJhbWVsb29wID09PSBcIm5ldmVyXCIgY2xvY2suZWxhcHNlZFRpbWUgaXMgdXBkYXRlZCB1c2luZyBhZHZhbmNlKHRpbWVzdGFtcClcblx0XHRcdFx0Y2xvY2suc3RvcCgpO1xuXHRcdFx0XHRjbG9jay5lbGFwc2VkVGltZSA9IDA7XG5cblx0XHRcdFx0aWYgKGZyYW1lbG9vcCAhPT0gJ25ldmVyJykge1xuXHRcdFx0XHRcdGNsb2NrLnN0YXJ0KCk7XG5cdFx0XHRcdFx0Y2xvY2suZWxhcHNlZFRpbWUgPSAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dXBkYXRlKCgpID0+ICh7IGZyYW1lbG9vcCB9KSk7XG5cdFx0XHR9LFxuXG5cdFx0XHRwcmV2aW91c1Jvb3Q6IHByZXZpb3VzU3RvcmUsXG5cdFx0XHRpbnRlcm5hbDoge1xuXHRcdFx0XHRhY3RpdmU6IGZhbHNlLFxuXHRcdFx0XHRwcmlvcml0eTogMCxcblx0XHRcdFx0ZnJhbWVzOiAwLFxuXHRcdFx0XHRsYXN0RXZlbnQ6IG5ldyBFbGVtZW50UmVmKG51bGwpLFxuXHRcdFx0XHRpbnRlcmFjdGlvbjogW10sXG5cdFx0XHRcdGhvdmVyZWQ6IG5ldyBNYXAoKSxcblx0XHRcdFx0c3Vic2NyaWJlcnM6IFtdLFxuXHRcdFx0XHRpbml0aWFsQ2xpY2s6IFswLCAwXSxcblx0XHRcdFx0aW5pdGlhbEhpdHM6IFtdLFxuXHRcdFx0XHRjYXB0dXJlZE1hcDogbmV3IE1hcCgpLFxuXHRcdFx0XHRzdWJzY3JpYmU6IChcblx0XHRcdFx0XHRjYWxsYmFjazogTmd0QmVmb3JlUmVuZGVyUmVjb3JkWydjYWxsYmFjayddLFxuXHRcdFx0XHRcdHByaW9yaXR5ID0gMCxcblx0XHRcdFx0XHRfc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiA9IHN0b3JlLFxuXHRcdFx0XHQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBpbnRlcm5hbCA9IGdldCgnaW50ZXJuYWwnKTtcblx0XHRcdFx0XHQvLyBJZiB0aGlzIHN1YnNjcmlwdGlvbiB3YXMgZ2l2ZW4gYSBwcmlvcml0eSwgaXQgdGFrZXMgcmVuZGVyaW5nIGludG8gaXRzIG93biBoYW5kc1xuXHRcdFx0XHRcdC8vIEZvciB0aGF0IHJlYXNvbiB3ZSBzd2l0Y2ggb2ZmIGF1dG9tYXRpYyByZW5kZXJpbmcgYW5kIGluY3JlYXNlIHRoZSBtYW51YWwgZmxhZ1xuXHRcdFx0XHRcdC8vIEFzIGxvbmcgYXMgdGhpcyBmbGFnIGlzIHBvc2l0aXZlIHRoZXJlIGNhbiBiZSBubyBpbnRlcm5hbCByZW5kZXJpbmcgYXQgYWxsXG5cdFx0XHRcdFx0Ly8gYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBtdWx0aXBsZSByZW5kZXIgc3Vic2NyaXB0aW9uc1xuXHRcdFx0XHRcdGludGVybmFsLnByaW9yaXR5ID0gaW50ZXJuYWwucHJpb3JpdHkgKyAocHJpb3JpdHkgPiAwID8gMSA6IDApO1xuXHRcdFx0XHRcdGludGVybmFsLnN1YnNjcmliZXJzLnB1c2goeyBjYWxsYmFjaywgcHJpb3JpdHksIHN0b3JlOiBfc3RvcmUgfSk7XG5cdFx0XHRcdFx0Ly8gUmVnaXN0ZXIgc3Vic2NyaWJlciBhbmQgc29ydCBsYXllcnMgZnJvbSBsb3dlc3QgdG8gaGlnaGVzdCwgbWVhbmluZyxcblx0XHRcdFx0XHQvLyBoaWdoZXN0IHByaW9yaXR5IHJlbmRlcnMgbGFzdCAob24gdG9wIG9mIHRoZSBvdGhlciBmcmFtZXMpXG5cdFx0XHRcdFx0aW50ZXJuYWwuc3Vic2NyaWJlcnMgPSBpbnRlcm5hbC5zdWJzY3JpYmVycy5zb3J0KChhLCBiKSA9PiAoYS5wcmlvcml0eSB8fCAwKSAtIChiLnByaW9yaXR5IHx8IDApKTtcblxuXHRcdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBpbnRlcm5hbCA9IGdldCgnaW50ZXJuYWwnKTtcblx0XHRcdFx0XHRcdGlmIChpbnRlcm5hbD8uc3Vic2NyaWJlcnMpIHtcblx0XHRcdFx0XHRcdFx0Ly8gRGVjcmVhc2UgbWFudWFsIGZsYWcgaWYgdGhpcyBzdWJzY3JpcHRpb24gaGFkIGEgcHJpb3JpdHlcblx0XHRcdFx0XHRcdFx0aW50ZXJuYWwucHJpb3JpdHkgPSBpbnRlcm5hbC5wcmlvcml0eSAtIChwcmlvcml0eSA+IDAgPyAxIDogMCk7XG5cdFx0XHRcdFx0XHRcdC8vIFJlbW92ZSBzdWJzY3JpYmVyIGZyb20gbGlzdFxuXHRcdFx0XHRcdFx0XHRpbnRlcm5hbC5zdWJzY3JpYmVycyA9IGludGVybmFsLnN1YnNjcmliZXJzLmZpbHRlcigocykgPT4gcy5jYWxsYmFjayAhPT0gY2FsbGJhY2spO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdH07XG5cdH0pO1xuXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdG9yZSwgJ3BvaW50ZXJNaXNzZWQkJywgeyBnZXQ6ICgpID0+IHBvaW50ZXJNaXNzZWQkIH0pO1xuXG5cdGxldCB7XG5cdFx0c2l6ZTogb2xkU2l6ZSxcblx0XHR2aWV3cG9ydDogeyBkcHI6IG9sZERwciB9LFxuXHRcdGNhbWVyYTogb2xkQ2FtZXJhLFxuXHR9ID0gc3RvcmUuc25hcHNob3Q7XG5cblx0ZWZmZWN0KCgpID0+IHtcblx0XHRjb25zdCB7XG5cdFx0XHRjYW1lcmE6IG5ld0NhbWVyYSxcblx0XHRcdHNpemU6IG5ld1NpemUsXG5cdFx0XHR2aWV3cG9ydDogeyBkcHI6IG5ld0RwciB9LFxuXHRcdFx0Z2wsXG5cdFx0fSA9IHN0b3JlLnN0YXRlKCk7XG5cblx0XHQvLyBSZXNpemUgY2FtZXJhIGFuZCByZW5kZXJlciBvbiBjaGFuZ2VzIHRvIHNpemUgYW5kIHBpeGVsLXJhdGlvXG5cdFx0aWYgKG5ld1NpemUgIT09IG9sZFNpemUgfHwgbmV3RHByICE9PSBvbGREcHIpIHtcblx0XHRcdG9sZFNpemUgPSBuZXdTaXplO1xuXHRcdFx0b2xkRHByID0gbmV3RHByO1xuXHRcdFx0Ly8gVXBkYXRlIGNhbWVyYSAmIHJlbmRlcmVyXG5cdFx0XHR1cGRhdGVDYW1lcmEobmV3Q2FtZXJhLCBuZXdTaXplKTtcblx0XHRcdGdsLnNldFBpeGVsUmF0aW8obmV3RHByKTtcblxuXHRcdFx0Y29uc3QgdXBkYXRlU3R5bGUgPSB0eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGdsLmRvbUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudDtcblx0XHRcdGdsLnNldFNpemUobmV3U2l6ZS53aWR0aCwgbmV3U2l6ZS5oZWlnaHQsIHVwZGF0ZVN0eWxlKTtcblx0XHR9XG5cblx0XHQvLyBVcGRhdGUgdmlld3BvcnQgb25jZSB0aGUgY2FtZXJhIGNoYW5nZXNcblx0XHRpZiAobmV3Q2FtZXJhICE9PSBvbGRDYW1lcmEpIHtcblx0XHRcdG9sZENhbWVyYSA9IG5ld0NhbWVyYTtcblx0XHRcdHVwZGF0ZUNhbWVyYShuZXdDYW1lcmEsIG5ld1NpemUpO1xuXHRcdFx0Ly8gVXBkYXRlIHZpZXdwb3J0XG5cdFx0XHRzdG9yZS51cGRhdGUoKHN0YXRlKSA9PiAoeyB2aWV3cG9ydDogeyAuLi5zdGF0ZS52aWV3cG9ydCwgLi4uc3RhdGUudmlld3BvcnQuZ2V0Q3VycmVudFZpZXdwb3J0KG5ld0NhbWVyYSkgfSB9KSk7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4gc3RvcmU7XG59XG5cbmV4cG9ydCBjb25zdCBOR1RfU1RPUkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+PignTmd0U3RvcmUgVG9rZW4nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVTdG9yZShzdG9yZT86ICgpID0+IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPikge1xuXHRpZiAoc3RvcmUpIHtcblx0XHRyZXR1cm4geyBwcm92aWRlOiBOR1RfU1RPUkUsIHVzZUZhY3Rvcnk6IHN0b3JlIH07XG5cdH1cblx0cmV0dXJuIHsgcHJvdmlkZTogTkdUX1NUT1JFLCB1c2VGYWN0b3J5OiBzdG9yZUZhY3RvcnkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN0b3JlKG9wdGlvbnM6IEluamVjdE9wdGlvbnMgJiB7IG9wdGlvbmFsPzogZmFsc2UgfSk6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTdG9yZShvcHRpb25zOiBJbmplY3RPcHRpb25zKTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+IHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTdG9yZSgpOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U3RvcmUob3B0aW9ucz86IEluamVjdE9wdGlvbnMpIHtcblx0cmV0dXJuIGluamVjdChOR1RfU1RPUkUsIG9wdGlvbnMgYXMgSW5qZWN0T3B0aW9ucyk7XG59XG4iXX0=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFpQixjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxTQUFTLFlBQVksQ0FBQyxhQUE4QztJQUNuRSxNQUFNLElBQUksR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUUxQixvRUFBb0U7SUFDcEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztJQUVqRCxNQUFNLEtBQUssR0FBNkIsV0FBVyxDQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtRQUNqRixNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztRQUVyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqQyxTQUFTLGtCQUFrQixDQUMxQixTQUFvQixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQ2pDLFNBQStDLGFBQWEsRUFDNUQsT0FBZ0IsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUUzQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUM7WUFFOUIsSUFBSSxNQUFNLFlBQVksT0FBTztnQkFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDOztnQkFDbEQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBRS9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFMUUsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3RyxDQUFDO1lBRUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxrQ0FBa0M7WUFDNUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLGlCQUFpQjtZQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNoRixDQUFDO1FBRUQsSUFBSSxrQkFBa0IsR0FBOEMsU0FBUyxDQUFDO1FBQzlFLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUNqRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFekUsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU5QixPQUFPO1lBQ04sY0FBYyxFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUU7WUFDN0MsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUU7WUFFeEQsVUFBVSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7WUFDckQsT0FBTyxFQUFFLENBQUMsU0FBaUIsRUFBRSxnQkFBMEIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLENBQUM7WUFFdkcsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBRSxLQUFLO1lBRVgsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsSUFBSSxLQUFLLEVBQUU7WUFDbEIsT0FBTztZQUVQLFNBQVMsRUFBRSxRQUFRO1lBRW5CLFdBQVcsRUFBRTtnQkFDWixPQUFPLEVBQUUsQ0FBQztnQkFDVixHQUFHLEVBQUUsR0FBRztnQkFDUixHQUFHLEVBQUUsQ0FBQztnQkFDTixRQUFRLEVBQUUsR0FBRztnQkFDYixPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNiLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDO29CQUNwQixnQkFBZ0I7b0JBQ2hCLElBQUksa0JBQWtCO3dCQUFFLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUN6RCw4QkFBOEI7b0JBQzlCLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHO3dCQUFFLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3RHLHdGQUF3RjtvQkFDeEYsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDcEMscUJBQXFCLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUNqRCwwQkFBMEI7b0JBQzNCLENBQUMsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO2FBQ0Q7WUFFRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFDbEUsUUFBUSxFQUFFO2dCQUNULFVBQVUsRUFBRSxDQUFDO2dCQUNiLEdBQUcsRUFBRSxDQUFDO2dCQUNOLEtBQUssRUFBRSxDQUFDO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULEdBQUcsRUFBRSxDQUFDO2dCQUNOLElBQUksRUFBRSxDQUFDO2dCQUNQLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxDQUFDO2dCQUNYLE1BQU0sRUFBRSxDQUFDO2dCQUNULGtCQUFrQjthQUNsQjtZQUVELFNBQVMsRUFBRSxDQUFDLE1BQXFDLEVBQUUsRUFBRSxDQUNwRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUUsT0FBTyxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxHQUFZLEVBQUUsSUFBYSxFQUFFLEVBQUU7Z0JBQ3ZFLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQy9ELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDbEIsSUFBSTtvQkFDSixRQUFRLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO2lCQUNuRixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxNQUFNLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUN2QixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQzlHLENBQUMsQ0FBQztZQUNILFlBQVksRUFBRSxDQUFDLFlBQTJDLFFBQVEsRUFBRSxFQUFFO2dCQUNyRSxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRTNCLGlGQUFpRjtnQkFDakYsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNiLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUV0QixJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDM0IsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNkLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixDQUFDO2dCQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFFRCxZQUFZLEVBQUUsYUFBYTtZQUMzQixRQUFRLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsU0FBUyxFQUFFLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDL0IsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxFQUFFLElBQUksR0FBRyxFQUFFO2dCQUNsQixXQUFXLEVBQUUsRUFBRTtnQkFDZixZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQixXQUFXLEVBQUUsRUFBRTtnQkFDZixXQUFXLEVBQUUsSUFBSSxHQUFHLEVBQUU7Z0JBQ3RCLFNBQVMsRUFBRSxDQUNWLFFBQTJDLEVBQzNDLFFBQVEsR0FBRyxDQUFDLEVBQ1osU0FBbUMsS0FBSyxFQUN2QyxFQUFFO29CQUNILE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDakMsbUZBQW1GO29CQUNuRixpRkFBaUY7b0JBQ2pGLDZFQUE2RTtvQkFDN0UsdURBQXVEO29CQUN2RCxRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMvRCxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2pFLHVFQUF1RTtvQkFDdkUsNkRBQTZEO29CQUM3RCxRQUFRLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUVsRyxPQUFPLEdBQUcsRUFBRTt3QkFDWCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQ2pDLElBQUksUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDOzRCQUMzQiwyREFBMkQ7NEJBQzNELFFBQVEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQy9ELDhCQUE4Qjs0QkFDOUIsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQzt3QkFDcEYsQ0FBQztvQkFDRixDQUFDLENBQUM7Z0JBQ0gsQ0FBQzthQUNEO1NBQ0QsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUU5RSxJQUFJLEVBQ0gsSUFBSSxFQUFFLE9BQU8sRUFDYixRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQ3pCLE1BQU0sRUFBRSxTQUFTLEdBQ2pCLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUVuQixNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxFQUNMLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLElBQUksRUFBRSxPQUFPLEVBQ2IsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUN6QixFQUFFLEdBQ0YsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbEIsZ0VBQWdFO1FBQ2hFLElBQUksT0FBTyxLQUFLLE9BQU8sSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDOUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUNsQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLDJCQUEyQjtZQUMzQixZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFekIsTUFBTSxXQUFXLEdBQUcsT0FBTyxpQkFBaUIsS0FBSyxXQUFXLElBQUksRUFBRSxDQUFDLFVBQVUsWUFBWSxpQkFBaUIsQ0FBQztZQUMzRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsMENBQTBDO1FBQzFDLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDdEIsWUFBWSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqQyxrQkFBa0I7WUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqSCxDQUFDO0lBQ0YsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQTJCLGdCQUFnQixDQUFDLENBQUM7QUFFeEYsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFzQztJQUNsRSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFDekQsQ0FBQztBQUtELE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBdUI7SUFDbEQsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQXdCLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0T3B0aW9ucywgSW5qZWN0aW9uVG9rZW4sIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDbG9jaywgVmVjdG9yMiwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdExvb3AgfSBmcm9tICcuL2xvb3AnO1xuaW1wb3J0IHsgTmd0QmVmb3JlUmVuZGVyUmVjb3JkLCBOZ3RDYW1lcmEsIE5ndERwciwgTmd0RXZlbnRNYW5hZ2VyLCBOZ3RTaXplLCBOZ3RTdGF0ZSwgTmd0Vmlld3BvcnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBtYWtlRHByIH0gZnJvbSAnLi91dGlscy9tYWtlJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlLCBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IHVwZGF0ZUNhbWVyYSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlJztcblxuZnVuY3Rpb24gc3RvcmVGYWN0b3J5KHByZXZpb3VzU3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiB8IG51bGwpIHtcblx0Y29uc3QgbG9vcCA9IGluamVjdExvb3AoKTtcblxuXHQvLyBOT1RFOiB1c2luZyBTdWJqZWN0IGJlY2F1c2Ugd2UgZG8gbm90IGNhcmUgYWJvdXQgbGF0ZS1zdWJzY3JpYmVyc1xuXHRjb25zdCBwb2ludGVyTWlzc2VkJCA9IG5ldyBTdWJqZWN0PE1vdXNlRXZlbnQ+KCk7XG5cblx0Y29uc3Qgc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiA9IHNpZ25hbFN0b3JlPE5ndFN0YXRlPigoeyBnZXQsIHVwZGF0ZSB9KSA9PiB7XG5cdFx0Y29uc3QgeyBpbnZhbGlkYXRlLCBhZHZhbmNlIH0gPSBsb29wO1xuXG5cdFx0Y29uc3QgcG9zaXRpb24gPSBuZXcgVmVjdG9yMygpO1xuXHRcdGNvbnN0IGRlZmF1bHRUYXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuXHRcdGNvbnN0IHRlbXBUYXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuXG5cdFx0ZnVuY3Rpb24gZ2V0Q3VycmVudFZpZXdwb3J0KFxuXHRcdFx0Y2FtZXJhOiBOZ3RDYW1lcmEgPSBnZXQoJ2NhbWVyYScpLFxuXHRcdFx0dGFyZ2V0OiBWZWN0b3IzIHwgUGFyYW1ldGVyczxWZWN0b3IzWydzZXQnXT4gPSBkZWZhdWx0VGFyZ2V0LFxuXHRcdFx0c2l6ZTogTmd0U2l6ZSA9IGdldCgnc2l6ZScpLFxuXHRcdCk6IE9taXQ8Tmd0Vmlld3BvcnQsICdkcHInIHwgJ2luaXRpYWxEcHInPiB7XG5cdFx0XHRjb25zdCB7IHdpZHRoLCBoZWlnaHQsIHRvcCwgbGVmdCB9ID0gc2l6ZTtcblx0XHRcdGNvbnN0IGFzcGVjdCA9IHdpZHRoIC8gaGVpZ2h0O1xuXG5cdFx0XHRpZiAodGFyZ2V0IGluc3RhbmNlb2YgVmVjdG9yMykgdGVtcFRhcmdldC5jb3B5KHRhcmdldCk7XG5cdFx0XHRlbHNlIHRlbXBUYXJnZXQuc2V0KC4uLnRhcmdldCk7XG5cblx0XHRcdGNvbnN0IGRpc3RhbmNlID0gY2FtZXJhLmdldFdvcmxkUG9zaXRpb24ocG9zaXRpb24pLmRpc3RhbmNlVG8odGVtcFRhcmdldCk7XG5cblx0XHRcdGlmIChpcy5vcnRob2dyYXBoaWNDYW1lcmEoY2FtZXJhKSkge1xuXHRcdFx0XHRyZXR1cm4geyB3aWR0aDogd2lkdGggLyBjYW1lcmEuem9vbSwgaGVpZ2h0OiBoZWlnaHQgLyBjYW1lcmEuem9vbSwgdG9wLCBsZWZ0LCBmYWN0b3I6IDEsIGRpc3RhbmNlLCBhc3BlY3QgfTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZm92ID0gKGNhbWVyYS5mb3YgKiBNYXRoLlBJKSAvIDE4MDsgLy8gY29udmVydCB2ZXJ0aWNhbCBmb3YgdG8gcmFkaWFuc1xuXHRcdFx0Y29uc3QgaCA9IDIgKiBNYXRoLnRhbihmb3YgLyAyKSAqIGRpc3RhbmNlOyAvLyB2aXNpYmxlIGhlaWdodFxuXHRcdFx0Y29uc3QgdyA9IGggKiAod2lkdGggLyBoZWlnaHQpO1xuXHRcdFx0cmV0dXJuIHsgd2lkdGg6IHcsIGhlaWdodDogaCwgdG9wLCBsZWZ0LCBmYWN0b3I6IHdpZHRoIC8gdywgZGlzdGFuY2UsIGFzcGVjdCB9O1xuXHRcdH1cblxuXHRcdGxldCBwZXJmb3JtYW5jZVRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXHRcdGNvbnN0IHNldFBlcmZvcm1hbmNlQ3VycmVudCA9IChjdXJyZW50OiBudW1iZXIpID0+XG5cdFx0XHR1cGRhdGUoKHN0YXRlKSA9PiAoeyBwZXJmb3JtYW5jZTogeyAuLi5zdGF0ZS5wZXJmb3JtYW5jZSwgY3VycmVudCB9IH0pKTtcblxuXHRcdGNvbnN0IHBvaW50ZXIgPSBuZXcgVmVjdG9yMigpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHBvaW50ZXJNaXNzZWQkOiBwb2ludGVyTWlzc2VkJC5hc09ic2VydmFibGUoKSxcblx0XHRcdGV2ZW50czogeyBwcmlvcml0eTogMSwgZW5hYmxlZDogdHJ1ZSwgY29ubmVjdGVkOiBmYWxzZSB9LFxuXG5cdFx0XHRpbnZhbGlkYXRlOiAoZnJhbWVzID0gMSkgPT4gaW52YWxpZGF0ZShzdG9yZSwgZnJhbWVzKSxcblx0XHRcdGFkdmFuY2U6ICh0aW1lc3RhbXA6IG51bWJlciwgcnVuR2xvYmFsRWZmZWN0cz86IGJvb2xlYW4pID0+IGFkdmFuY2UodGltZXN0YW1wLCBydW5HbG9iYWxFZmZlY3RzLCBzdG9yZSksXG5cblx0XHRcdGxlZ2FjeTogZmFsc2UsXG5cdFx0XHRsaW5lYXI6IGZhbHNlLFxuXHRcdFx0ZmxhdDogZmFsc2UsXG5cblx0XHRcdGNvbnRyb2xzOiBudWxsLFxuXHRcdFx0Y2xvY2s6IG5ldyBDbG9jaygpLFxuXHRcdFx0cG9pbnRlcixcblxuXHRcdFx0ZnJhbWVsb29wOiAnYWx3YXlzJyxcblxuXHRcdFx0cGVyZm9ybWFuY2U6IHtcblx0XHRcdFx0Y3VycmVudDogMSxcblx0XHRcdFx0bWluOiAwLjUsXG5cdFx0XHRcdG1heDogMSxcblx0XHRcdFx0ZGVib3VuY2U6IDIwMCxcblx0XHRcdFx0cmVncmVzczogKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZ2V0KCk7XG5cdFx0XHRcdFx0Ly8gQ2xlYXIgdGltZW91dFxuXHRcdFx0XHRcdGlmIChwZXJmb3JtYW5jZVRpbWVvdXQpIGNsZWFyVGltZW91dChwZXJmb3JtYW5jZVRpbWVvdXQpO1xuXHRcdFx0XHRcdC8vIFNldCBsb3dlciBib3VuZCBwZXJmb3JtYW5jZVxuXHRcdFx0XHRcdGlmIChzdGF0ZS5wZXJmb3JtYW5jZS5jdXJyZW50ICE9PSBzdGF0ZS5wZXJmb3JtYW5jZS5taW4pIHNldFBlcmZvcm1hbmNlQ3VycmVudChzdGF0ZS5wZXJmb3JtYW5jZS5taW4pO1xuXHRcdFx0XHRcdC8vIEdvIGJhY2sgdG8gdXBwZXIgYm91bmQgcGVyZm9ybWFuY2UgYWZ0ZXIgYSB3aGlsZSB1bmxlc3Mgc29tZXRoaW5nIHJlZ3Jlc3NlcyBtZWFud2hpbGVcblx0XHRcdFx0XHRwZXJmb3JtYW5jZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdHNldFBlcmZvcm1hbmNlQ3VycmVudChnZXQoJ3BlcmZvcm1hbmNlJywgJ21heCcpKTtcblx0XHRcdFx0XHRcdC8vIHNhZmVEZXRlY3RDaGFuZ2VzKGNkcik7XG5cdFx0XHRcdFx0fSwgc3RhdGUucGVyZm9ybWFuY2UuZGVib3VuY2UpO1xuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblxuXHRcdFx0c2l6ZTogeyB3aWR0aDogMCwgaGVpZ2h0OiAwLCB0b3A6IDAsIGxlZnQ6IDAsIHVwZGF0ZVN0eWxlOiBmYWxzZSB9LFxuXHRcdFx0dmlld3BvcnQ6IHtcblx0XHRcdFx0aW5pdGlhbERwcjogMCxcblx0XHRcdFx0ZHByOiAwLFxuXHRcdFx0XHR3aWR0aDogMCxcblx0XHRcdFx0aGVpZ2h0OiAwLFxuXHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdGFzcGVjdDogMCxcblx0XHRcdFx0ZGlzdGFuY2U6IDAsXG5cdFx0XHRcdGZhY3RvcjogMCxcblx0XHRcdFx0Z2V0Q3VycmVudFZpZXdwb3J0LFxuXHRcdFx0fSxcblxuXHRcdFx0c2V0RXZlbnRzOiAoZXZlbnRzOiBQYXJ0aWFsPE5ndEV2ZW50TWFuYWdlcjxhbnk+PikgPT5cblx0XHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4gKHsgLi4uc3RhdGUsIGV2ZW50czogeyAuLi5zdGF0ZS5ldmVudHMsIC4uLmV2ZW50cyB9IH0pKSxcblx0XHRcdHNldFNpemU6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgdG9wPzogbnVtYmVyLCBsZWZ0PzogbnVtYmVyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IGdldCgnY2FtZXJhJyk7XG5cdFx0XHRcdGNvbnN0IHNpemUgPSB7IHdpZHRoLCBoZWlnaHQsIHRvcDogdG9wIHx8IDAsIGxlZnQ6IGxlZnQgfHwgMCB9O1xuXHRcdFx0XHR1cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0XHRcdHNpemUsXG5cdFx0XHRcdFx0dmlld3BvcnQ6IHsgLi4uc3RhdGUudmlld3BvcnQsIC4uLmdldEN1cnJlbnRWaWV3cG9ydChjYW1lcmEsIGRlZmF1bHRUYXJnZXQsIHNpemUpIH0sXG5cdFx0XHRcdH0pKTtcblx0XHRcdH0sXG5cdFx0XHRzZXREcHI6IChkcHI6IE5ndERwcikgPT5cblx0XHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHJlc29sdmVkID0gbWFrZURwcihkcHIsIHdpbmRvdyk7XG5cdFx0XHRcdFx0cmV0dXJuIHsgdmlld3BvcnQ6IHsgLi4uc3RhdGUudmlld3BvcnQsIGRwcjogcmVzb2x2ZWQsIGluaXRpYWxEcHI6IHN0YXRlLnZpZXdwb3J0LmluaXRpYWxEcHIgfHwgcmVzb2x2ZWQgfSB9O1xuXHRcdFx0XHR9KSxcblx0XHRcdHNldEZyYW1lbG9vcDogKGZyYW1lbG9vcDogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcicgPSAnYWx3YXlzJykgPT4ge1xuXHRcdFx0XHRjb25zdCBjbG9jayA9IGdldCgnY2xvY2snKTtcblxuXHRcdFx0XHQvLyBpZiBmcmFtZWxvb3AgPT09IFwibmV2ZXJcIiBjbG9jay5lbGFwc2VkVGltZSBpcyB1cGRhdGVkIHVzaW5nIGFkdmFuY2UodGltZXN0YW1wKVxuXHRcdFx0XHRjbG9jay5zdG9wKCk7XG5cdFx0XHRcdGNsb2NrLmVsYXBzZWRUaW1lID0gMDtcblxuXHRcdFx0XHRpZiAoZnJhbWVsb29wICE9PSAnbmV2ZXInKSB7XG5cdFx0XHRcdFx0Y2xvY2suc3RhcnQoKTtcblx0XHRcdFx0XHRjbG9jay5lbGFwc2VkVGltZSA9IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1cGRhdGUoKCkgPT4gKHsgZnJhbWVsb29wIH0pKTtcblx0XHRcdH0sXG5cblx0XHRcdHByZXZpb3VzUm9vdDogcHJldmlvdXNTdG9yZSxcblx0XHRcdGludGVybmFsOiB7XG5cdFx0XHRcdGFjdGl2ZTogZmFsc2UsXG5cdFx0XHRcdHByaW9yaXR5OiAwLFxuXHRcdFx0XHRmcmFtZXM6IDAsXG5cdFx0XHRcdGxhc3RFdmVudDogbmV3IEVsZW1lbnRSZWYobnVsbCksXG5cdFx0XHRcdGludGVyYWN0aW9uOiBbXSxcblx0XHRcdFx0aG92ZXJlZDogbmV3IE1hcCgpLFxuXHRcdFx0XHRzdWJzY3JpYmVyczogW10sXG5cdFx0XHRcdGluaXRpYWxDbGljazogWzAsIDBdLFxuXHRcdFx0XHRpbml0aWFsSGl0czogW10sXG5cdFx0XHRcdGNhcHR1cmVkTWFwOiBuZXcgTWFwKCksXG5cdFx0XHRcdHN1YnNjcmliZTogKFxuXHRcdFx0XHRcdGNhbGxiYWNrOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbJ2NhbGxiYWNrJ10sXG5cdFx0XHRcdFx0cHJpb3JpdHkgPSAwLFxuXHRcdFx0XHRcdF9zdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+ID0gc3RvcmUsXG5cdFx0XHRcdCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGludGVybmFsID0gZ2V0KCdpbnRlcm5hbCcpO1xuXHRcdFx0XHRcdC8vIElmIHRoaXMgc3Vic2NyaXB0aW9uIHdhcyBnaXZlbiBhIHByaW9yaXR5LCBpdCB0YWtlcyByZW5kZXJpbmcgaW50byBpdHMgb3duIGhhbmRzXG5cdFx0XHRcdFx0Ly8gRm9yIHRoYXQgcmVhc29uIHdlIHN3aXRjaCBvZmYgYXV0b21hdGljIHJlbmRlcmluZyBhbmQgaW5jcmVhc2UgdGhlIG1hbnVhbCBmbGFnXG5cdFx0XHRcdFx0Ly8gQXMgbG9uZyBhcyB0aGlzIGZsYWcgaXMgcG9zaXRpdmUgdGhlcmUgY2FuIGJlIG5vIGludGVybmFsIHJlbmRlcmluZyBhdCBhbGxcblx0XHRcdFx0XHQvLyBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIHJlbmRlciBzdWJzY3JpcHRpb25zXG5cdFx0XHRcdFx0aW50ZXJuYWwucHJpb3JpdHkgPSBpbnRlcm5hbC5wcmlvcml0eSArIChwcmlvcml0eSA+IDAgPyAxIDogMCk7XG5cdFx0XHRcdFx0aW50ZXJuYWwuc3Vic2NyaWJlcnMucHVzaCh7IGNhbGxiYWNrLCBwcmlvcml0eSwgc3RvcmU6IF9zdG9yZSB9KTtcblx0XHRcdFx0XHQvLyBSZWdpc3RlciBzdWJzY3JpYmVyIGFuZCBzb3J0IGxheWVycyBmcm9tIGxvd2VzdCB0byBoaWdoZXN0LCBtZWFuaW5nLFxuXHRcdFx0XHRcdC8vIGhpZ2hlc3QgcHJpb3JpdHkgcmVuZGVycyBsYXN0IChvbiB0b3Agb2YgdGhlIG90aGVyIGZyYW1lcylcblx0XHRcdFx0XHRpbnRlcm5hbC5zdWJzY3JpYmVycyA9IGludGVybmFsLnN1YnNjcmliZXJzLnNvcnQoKGEsIGIpID0+IChhLnByaW9yaXR5IHx8IDApIC0gKGIucHJpb3JpdHkgfHwgMCkpO1xuXG5cdFx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGludGVybmFsID0gZ2V0KCdpbnRlcm5hbCcpO1xuXHRcdFx0XHRcdFx0aWYgKGludGVybmFsPy5zdWJzY3JpYmVycykge1xuXHRcdFx0XHRcdFx0XHQvLyBEZWNyZWFzZSBtYW51YWwgZmxhZyBpZiB0aGlzIHN1YnNjcmlwdGlvbiBoYWQgYSBwcmlvcml0eVxuXHRcdFx0XHRcdFx0XHRpbnRlcm5hbC5wcmlvcml0eSA9IGludGVybmFsLnByaW9yaXR5IC0gKHByaW9yaXR5ID4gMCA/IDEgOiAwKTtcblx0XHRcdFx0XHRcdFx0Ly8gUmVtb3ZlIHN1YnNjcmliZXIgZnJvbSBsaXN0XG5cdFx0XHRcdFx0XHRcdGludGVybmFsLnN1YnNjcmliZXJzID0gaW50ZXJuYWwuc3Vic2NyaWJlcnMuZmlsdGVyKChzKSA9PiBzLmNhbGxiYWNrICE9PSBjYWxsYmFjayk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0fTtcblx0fSk7XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0b3JlLCAncG9pbnRlck1pc3NlZCQnLCB7IGdldDogKCkgPT4gcG9pbnRlck1pc3NlZCQgfSk7XG5cblx0bGV0IHtcblx0XHRzaXplOiBvbGRTaXplLFxuXHRcdHZpZXdwb3J0OiB7IGRwcjogb2xkRHByIH0sXG5cdFx0Y2FtZXJhOiBvbGRDYW1lcmEsXG5cdH0gPSBzdG9yZS5zbmFwc2hvdDtcblxuXHRlZmZlY3QoKCkgPT4ge1xuXHRcdGNvbnN0IHtcblx0XHRcdGNhbWVyYTogbmV3Q2FtZXJhLFxuXHRcdFx0c2l6ZTogbmV3U2l6ZSxcblx0XHRcdHZpZXdwb3J0OiB7IGRwcjogbmV3RHByIH0sXG5cdFx0XHRnbCxcblx0XHR9ID0gc3RvcmUuc3RhdGUoKTtcblxuXHRcdC8vIFJlc2l6ZSBjYW1lcmEgYW5kIHJlbmRlcmVyIG9uIGNoYW5nZXMgdG8gc2l6ZSBhbmQgcGl4ZWwtcmF0aW9cblx0XHRpZiAobmV3U2l6ZSAhPT0gb2xkU2l6ZSB8fCBuZXdEcHIgIT09IG9sZERwcikge1xuXHRcdFx0b2xkU2l6ZSA9IG5ld1NpemU7XG5cdFx0XHRvbGREcHIgPSBuZXdEcHI7XG5cdFx0XHQvLyBVcGRhdGUgY2FtZXJhICYgcmVuZGVyZXJcblx0XHRcdHVwZGF0ZUNhbWVyYShuZXdDYW1lcmEsIG5ld1NpemUpO1xuXHRcdFx0Z2wuc2V0UGl4ZWxSYXRpbyhuZXdEcHIpO1xuXG5cdFx0XHRjb25zdCB1cGRhdGVTdHlsZSA9IHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2wuZG9tRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50O1xuXHRcdFx0Z2wuc2V0U2l6ZShuZXdTaXplLndpZHRoLCBuZXdTaXplLmhlaWdodCwgdXBkYXRlU3R5bGUpO1xuXHRcdH1cblxuXHRcdC8vIFVwZGF0ZSB2aWV3cG9ydCBvbmNlIHRoZSBjYW1lcmEgY2hhbmdlc1xuXHRcdGlmIChuZXdDYW1lcmEgIT09IG9sZENhbWVyYSkge1xuXHRcdFx0b2xkQ2FtZXJhID0gbmV3Q2FtZXJhO1xuXHRcdFx0dXBkYXRlQ2FtZXJhKG5ld0NhbWVyYSwgbmV3U2l6ZSk7XG5cdFx0XHQvLyBVcGRhdGUgdmlld3BvcnRcblx0XHRcdHN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7IHZpZXdwb3J0OiB7IC4uLnN0YXRlLnZpZXdwb3J0LCAuLi5zdGF0ZS52aWV3cG9ydC5nZXRDdXJyZW50Vmlld3BvcnQobmV3Q2FtZXJhKSB9IH0pKTtcblx0XHR9XG5cdH0pO1xuXG5cdHJldHVybiBzdG9yZTtcbn1cblxuZXhwb3J0IGNvbnN0IE5HVF9TVE9SRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4+KCdOZ3RTdG9yZSBUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVN0b3JlKHN0b3JlPzogKCkgPT4gTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSB7XG5cdGlmIChzdG9yZSkge1xuXHRcdHJldHVybiB7IHByb3ZpZGU6IE5HVF9TVE9SRSwgdXNlRmFjdG9yeTogc3RvcmUgfTtcblx0fVxuXHRyZXR1cm4geyBwcm92aWRlOiBOR1RfU1RPUkUsIHVzZUZhY3Rvcnk6IHN0b3JlRmFjdG9yeSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U3RvcmUob3B0aW9uczogSW5qZWN0T3B0aW9ucyAmIHsgb3B0aW9uYWw/OiBmYWxzZSB9KTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN0b3JlKG9wdGlvbnM6IEluamVjdE9wdGlvbnMpOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4gfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN0b3JlKCk6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTdG9yZShvcHRpb25zPzogSW5qZWN0T3B0aW9ucykge1xuXHRyZXR1cm4gaW5qZWN0KE5HVF9TVE9SRSwgb3B0aW9ucyBhcyBJbmplY3RPcHRpb25zKTtcbn1cbiJdfQ==
|
|
@@ -25,7 +25,7 @@ export function makeRendererInstance(glOptions, canvas) {
|
|
|
25
25
|
return customRenderer;
|
|
26
26
|
return new WebGLRenderer({
|
|
27
27
|
powerPreference: 'high-performance',
|
|
28
|
-
canvas
|
|
28
|
+
canvas,
|
|
29
29
|
antialias: true,
|
|
30
30
|
alpha: true,
|
|
31
31
|
...glOptions,
|
|
@@ -49,4 +49,4 @@ export function makeObjectGraph(object) {
|
|
|
49
49
|
}
|
|
50
50
|
return data;
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL21ha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLFNBQVMsRUFBa0Isa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRWxILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxPQUFPLEdBQTBDLEVBQUUsQ0FBQztBQUMxRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQXVCO0lBQzdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDeEYsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QywwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBZTtJQUNuRCx1RUFBdUU7SUFDdkUscUVBQXFFO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM5RSxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNuQyxTQUF1QixFQUN2QixNQUFlO0lBRWYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFPLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFrQixDQUFDO0lBQzFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFBRSxPQUFPLGNBQWMsQ0FBQztJQUN2RCxPQUFPLElBQUksYUFBYSxDQUFDO1FBQ3hCLGVBQWUsRUFBRSxrQkFBa0I7UUFDbkMsTUFBTTtRQUNOLFNBQVMsRUFBRSxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUk7UUFDWCxHQUFHLFNBQVM7S0FDWixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLGNBQXVCLEVBQUUsSUFBYTtJQUN4RSxJQUFJLGNBQWM7UUFBRSxPQUFPLElBQUksa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxPQUFPLElBQUksaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQVFELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBZ0I7SUFDL0MsTUFBTSxJQUFJLEdBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFFeEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNuQyxJQUFJLEtBQUssQ0FBQyxJQUFJO2dCQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUMvQyxJQUFJLFVBQVUsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFHLEtBQWMsQ0FBQyxRQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pGLElBQUksQ0FBQyxTQUFTLENBQUcsS0FBYyxDQUFDLFFBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUksS0FBYyxDQUFDLFFBQW9CLENBQUM7WUFDcEcsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdGVyaWFsLCBNYXRoVXRpbHMsIE1lc2gsIE9iamVjdDNELCBPcnRob2dyYXBoaWNDYW1lcmEsIFBlcnNwZWN0aXZlQ2FtZXJhLCBXZWJHTFJlbmRlcmVyIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0Q2FudmFzRWxlbWVudCwgTmd0RHByLCBOZ3RHTE9wdGlvbnMsIE5ndEludGVyc2VjdGlvbiwgTmd0U2l6ZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5cbmNvbnN0IGlkQ2FjaGU6IHsgW2lkOiBzdHJpbmddOiBib29sZWFuIHwgdW5kZWZpbmVkIH0gPSB7fTtcbmV4cG9ydCBmdW5jdGlvbiBtYWtlSWQoZXZlbnQ/OiBOZ3RJbnRlcnNlY3Rpb24pOiBzdHJpbmcge1xuXHRpZiAoZXZlbnQpIHtcblx0XHRyZXR1cm4gKGV2ZW50LmV2ZW50T2JqZWN0IHx8IGV2ZW50Lm9iamVjdCkudXVpZCArICcvJyArIGV2ZW50LmluZGV4ICsgZXZlbnQuaW5zdGFuY2VJZDtcblx0fVxuXG5cdGNvbnN0IG5ld0lkID0gTWF0aFV0aWxzLmdlbmVyYXRlVVVJRCgpO1xuXHQvLyBlbnN1cmUgbm90IGFscmVhZHkgdXNlZFxuXHRpZiAoIWlkQ2FjaGVbbmV3SWRdKSB7XG5cdFx0aWRDYWNoZVtuZXdJZF0gPSB0cnVlO1xuXHRcdHJldHVybiBuZXdJZDtcblx0fVxuXHRyZXR1cm4gbWFrZUlkKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlRHByKGRwcjogTmd0RHByLCB3aW5kb3c/OiBXaW5kb3cpIHtcblx0Ly8gRXJyIG9uIHRoZSBzaWRlIG9mIHByb2dyZXNzIGJ5IGFzc3VtaW5nIDJ4IGRwciBpZiB3ZSBjYW4ndCBkZXRlY3QgaXRcblx0Ly8gVGhpcyB3aWxsIGhhcHBlbiBpbiB3b3JrZXJzIHdoZXJlIHdpbmRvdyBpcyBkZWZpbmVkIGJ1dCBkcHIgaXNuJ3QuXG5cdGNvbnN0IHRhcmdldCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvID8/IDIpIDogMTtcblx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZHByKSA/IE1hdGgubWluKE1hdGgubWF4KGRwclswXSwgdGFyZ2V0KSwgZHByWzFdKSA6IGRwcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VSZW5kZXJlckluc3RhbmNlPFRDYW52YXMgZXh0ZW5kcyBOZ3RDYW52YXNFbGVtZW50Pihcblx0Z2xPcHRpb25zOiBOZ3RHTE9wdGlvbnMsXG5cdGNhbnZhczogVENhbnZhcyxcbik6IFdlYkdMUmVuZGVyZXIge1xuXHRjb25zdCBjdXN0b21SZW5kZXJlciA9ICh0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nID8gZ2xPcHRpb25zKGNhbnZhcykgOiBnbE9wdGlvbnMpIGFzIFdlYkdMUmVuZGVyZXI7XG5cdGlmIChpcy5yZW5kZXJlcihjdXN0b21SZW5kZXJlcikpIHJldHVybiBjdXN0b21SZW5kZXJlcjtcblx0cmV0dXJuIG5ldyBXZWJHTFJlbmRlcmVyKHtcblx0XHRwb3dlclByZWZlcmVuY2U6ICdoaWdoLXBlcmZvcm1hbmNlJyxcblx0XHRjYW52YXMsXG5cdFx0YW50aWFsaWFzOiB0cnVlLFxuXHRcdGFscGhhOiB0cnVlLFxuXHRcdC4uLmdsT3B0aW9ucyxcblx0fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ2FtZXJhSW5zdGFuY2UoaXNPcnRob2dyYXBoaWM6IGJvb2xlYW4sIHNpemU6IE5ndFNpemUpIHtcblx0aWYgKGlzT3J0aG9ncmFwaGljKSByZXR1cm4gbmV3IE9ydGhvZ3JhcGhpY0NhbWVyYSgwLCAwLCAwLCAwLCAwLjEsIDEwMDApO1xuXHRyZXR1cm4gbmV3IFBlcnNwZWN0aXZlQ2FtZXJhKDc1LCBzaXplLndpZHRoIC8gc2l6ZS5oZWlnaHQsIDAuMSwgMTAwMCk7XG59XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdE1hcCA9IHtcblx0bm9kZXM6IFJlY29yZDxzdHJpbmcsIE9iamVjdDNEPGFueT4+O1xuXHRtYXRlcmlhbHM6IFJlY29yZDxzdHJpbmcsIE1hdGVyaWFsPjtcblx0W2tleTogc3RyaW5nXTogYW55O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VPYmplY3RHcmFwaChvYmplY3Q6IE9iamVjdDNEKTogTmd0T2JqZWN0TWFwIHtcblx0Y29uc3QgZGF0YTogTmd0T2JqZWN0TWFwID0geyBub2Rlczoge30sIG1hdGVyaWFsczoge30gfTtcblxuXHRpZiAob2JqZWN0KSB7XG5cdFx0b2JqZWN0LnRyYXZlcnNlKChjaGlsZDogT2JqZWN0M0QpID0+IHtcblx0XHRcdGlmIChjaGlsZC5uYW1lKSBkYXRhLm5vZGVzW2NoaWxkLm5hbWVdID0gY2hpbGQ7XG5cdFx0XHRpZiAoJ21hdGVyaWFsJyBpbiBjaGlsZCAmJiAhZGF0YS5tYXRlcmlhbHNbKChjaGlsZCBhcyBNZXNoKS5tYXRlcmlhbCBhcyBNYXRlcmlhbCkubmFtZV0pIHtcblx0XHRcdFx0ZGF0YS5tYXRlcmlhbHNbKChjaGlsZCBhcyBNZXNoKS5tYXRlcmlhbCBhcyBNYXRlcmlhbCkubmFtZV0gPSAoY2hpbGQgYXMgTWVzaCkubWF0ZXJpYWwgYXMgTWF0ZXJpYWw7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGRhdGE7XG59XG4iXX0=
|
|
@@ -39,10 +39,10 @@ export class NgtObjectEvents {
|
|
|
39
39
|
}, { injector });
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
43
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtObjectEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.0", type: NgtObjectEvents, isStandalone: true, selector: "[ngtObjectEvents]", inputs: { ngtObjectEvents: { classPropertyName: "ngtObjectEvents", publicName: "ngtObjectEvents", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click", dblclick: "dblclick", contextmenu: "contextmenu", pointerup: "pointerup", pointerdown: "pointerdown", pointerover: "pointerover", pointerout: "pointerout", pointerenter: "pointerenter", pointerleave: "pointerleave", pointermove: "pointermove", pointermissed: "pointermissed", pointercancel: "pointercancel", wheel: "wheel", ngtObjectEvents: "ngtObjectEventsChange" }, ngImport: i0 }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtObjectEvents, decorators: [{
|
|
46
46
|
type: Directive,
|
|
47
47
|
args: [{ standalone: true, selector: '[ngtObjectEvents]' }]
|
|
48
48
|
}], ctorParameters: () => [] });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1uYXRpdmVzY3JpcHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvbmF0aXZlc2NyaXB0L3NyYy9hbmd1bGFyLXRocmVlLW5hdGl2ZXNjcmlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib/canvas';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvbmF0aXZlc2NyaXB0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2NhbnZhcyc7XG4iXX0=
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import '@nativescript/canvas-three';
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { afterNextRender, booleanAttribute, ChangeDetectionStrategy, Component, createEnvironmentInjector, DestroyRef, EnvironmentInjector, inject, Injector, input, NgZone, NO_ERRORS_SCHEMA, output, signal, untracked, viewChild, ViewContainerRef, } from '@angular/core';
|
|
4
|
+
import { registerElement } from '@nativescript/angular';
|
|
5
|
+
import { Canvas } from '@nativescript/canvas';
|
|
6
|
+
import { injectCanvasRootInitializer, injectStore, makeDpr, NgtRoutedScene, provideNgtRenderer, provideStore, } from 'angular-three';
|
|
7
|
+
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
8
|
+
import { WebGLRenderer } from 'three';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
registerElement('Canvas', () => Canvas);
|
|
11
|
+
export class NgtCanvasNative {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.sceneGraph = input.required({
|
|
14
|
+
transform: (value) => {
|
|
15
|
+
if (value === 'routed')
|
|
16
|
+
return NgtRoutedScene;
|
|
17
|
+
return value;
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
this.gl = input();
|
|
21
|
+
this.size = input();
|
|
22
|
+
this.shadows = input(false, {
|
|
23
|
+
transform: (value) => {
|
|
24
|
+
if (value === '')
|
|
25
|
+
return booleanAttribute(value);
|
|
26
|
+
return value;
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
this.legacy = input(false, { transform: booleanAttribute });
|
|
30
|
+
this.linear = input(false, { transform: booleanAttribute });
|
|
31
|
+
this.flat = input(false, { transform: booleanAttribute });
|
|
32
|
+
this.orthographic = input(false, { transform: booleanAttribute });
|
|
33
|
+
this.frameloop = input('always');
|
|
34
|
+
this.performance = input();
|
|
35
|
+
this.dpr = input([1, 2]);
|
|
36
|
+
this.raycaster = input();
|
|
37
|
+
this.scene = input();
|
|
38
|
+
this.camera = input();
|
|
39
|
+
this.lookAt = input();
|
|
40
|
+
this.created = output();
|
|
41
|
+
this.store = injectStore();
|
|
42
|
+
this.initRoot = injectCanvasRootInitializer();
|
|
43
|
+
this.injector = inject(Injector);
|
|
44
|
+
this.environmentInjector = inject(EnvironmentInjector);
|
|
45
|
+
this.destroyRef = inject(DestroyRef);
|
|
46
|
+
this.zone = inject(NgZone);
|
|
47
|
+
this.canvasViewContainerRef = viewChild.required('canvas', { read: ViewContainerRef });
|
|
48
|
+
this.canvasElement = signal(null);
|
|
49
|
+
const autoEffect = injectAutoEffect();
|
|
50
|
+
afterNextRender(() => {
|
|
51
|
+
autoEffect(() => {
|
|
52
|
+
const canvas = this.canvasElement();
|
|
53
|
+
if (!canvas)
|
|
54
|
+
return;
|
|
55
|
+
const dpr = makeDpr(untracked(this.dpr), window);
|
|
56
|
+
const canvasWidth = canvas.clientWidth * dpr;
|
|
57
|
+
const canvasHeight = canvas.clientHeight * dpr;
|
|
58
|
+
Object.assign(canvas, { width: canvasWidth, height: canvasHeight });
|
|
59
|
+
const context = canvas.getContext('webgl2');
|
|
60
|
+
const gl = new WebGLRenderer({
|
|
61
|
+
context: context,
|
|
62
|
+
powerPreference: 'high-performance',
|
|
63
|
+
antialias: true,
|
|
64
|
+
alpha: true,
|
|
65
|
+
...untracked(this.gl),
|
|
66
|
+
});
|
|
67
|
+
this.zone.runOutsideAngular(() => {
|
|
68
|
+
this.configurator = this.initRoot(canvas);
|
|
69
|
+
this.configurator.configure({
|
|
70
|
+
gl,
|
|
71
|
+
size: { width: canvasWidth, height: canvasHeight, top: 0, left: 0 },
|
|
72
|
+
shadows: untracked(this.shadows),
|
|
73
|
+
legacy: untracked(this.legacy),
|
|
74
|
+
linear: untracked(this.linear),
|
|
75
|
+
flat: untracked(this.flat),
|
|
76
|
+
orthographic: untracked(this.orthographic),
|
|
77
|
+
frameloop: untracked(this.frameloop),
|
|
78
|
+
performance: untracked(this.performance),
|
|
79
|
+
dpr: untracked(this.dpr),
|
|
80
|
+
raycaster: untracked(this.raycaster),
|
|
81
|
+
scene: untracked(this.scene),
|
|
82
|
+
camera: untracked(this.camera),
|
|
83
|
+
lookAt: untracked(this.lookAt),
|
|
84
|
+
});
|
|
85
|
+
untracked(this.noZoneRender.bind(this));
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
this.destroyRef.onDestroy(() => {
|
|
90
|
+
this.glRef?.destroy();
|
|
91
|
+
this.glEnvironmentInjector?.destroy();
|
|
92
|
+
this.configurator?.destroy();
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
noZoneRender() {
|
|
96
|
+
// NOTE: destroy previous instances if existed
|
|
97
|
+
this.glEnvironmentInjector?.destroy();
|
|
98
|
+
this.glRef?.destroy();
|
|
99
|
+
// NOTE: Flag the canvas active, rendering will now begin
|
|
100
|
+
this.store.update((state) => ({ internal: { ...state.internal, active: true } }));
|
|
101
|
+
// emit created event if observed
|
|
102
|
+
this.created.emit(this.store.snapshot);
|
|
103
|
+
this.glEnvironmentInjector = createEnvironmentInjector([{ provide: DOCUMENT, useValue: document }, provideNgtRenderer(this.store)], this.environmentInjector);
|
|
104
|
+
this.glRef = untracked(this.canvasViewContainerRef).createComponent(untracked(this.sceneGraph), {
|
|
105
|
+
environmentInjector: this.glEnvironmentInjector,
|
|
106
|
+
injector: this.injector,
|
|
107
|
+
});
|
|
108
|
+
this.glRef.changeDetectorRef.detectChanges();
|
|
109
|
+
}
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtCanvasNative, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtCanvasNative, isStandalone: true, selector: "NgtCanvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null }, gl: { classPropertyName: "gl", publicName: "gl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadows: { classPropertyName: "shadows", publicName: "shadows", isSignal: true, isRequired: false, transformFunction: null }, legacy: { classPropertyName: "legacy", publicName: "legacy", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, orthographic: { classPropertyName: "orthographic", publicName: "orthographic", isSignal: true, isRequired: false, transformFunction: null }, frameloop: { classPropertyName: "frameloop", publicName: "frameloop", isSignal: true, isRequired: false, transformFunction: null }, performance: { classPropertyName: "performance", publicName: "performance", isSignal: true, isRequired: false, transformFunction: null }, dpr: { classPropertyName: "dpr", publicName: "dpr", isSignal: true, isRequired: false, transformFunction: null }, raycaster: { classPropertyName: "raycaster", publicName: "raycaster", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, lookAt: { classPropertyName: "lookAt", publicName: "lookAt", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created" }, providers: [{ provide: DOCUMENT, useValue: document }, provideStore()], viewQueries: [{ propertyName: "canvasViewContainerRef", first: true, predicate: ["canvas"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
|
|
112
|
+
<GridLayout>
|
|
113
|
+
<Canvas #canvas style="width: 100%; height: auto" (ready)="canvasElement.set($any($event).object)"></Canvas>
|
|
114
|
+
</GridLayout>
|
|
115
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
116
|
+
}
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtCanvasNative, decorators: [{
|
|
118
|
+
type: Component,
|
|
119
|
+
args: [{
|
|
120
|
+
selector: 'NgtCanvas',
|
|
121
|
+
standalone: true,
|
|
122
|
+
template: `
|
|
123
|
+
<GridLayout>
|
|
124
|
+
<Canvas #canvas style="width: 100%; height: auto" (ready)="canvasElement.set($any($event).object)"></Canvas>
|
|
125
|
+
</GridLayout>
|
|
126
|
+
`,
|
|
127
|
+
providers: [{ provide: DOCUMENT, useValue: document }, provideStore()],
|
|
128
|
+
schemas: [NO_ERRORS_SCHEMA],
|
|
129
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
130
|
+
}]
|
|
131
|
+
}], ctorParameters: () => [] });
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL25hdGl2ZXNjcmlwdC9zcmMvbGliL2NhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLDRCQUE0QixDQUFDO0FBRXBDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ04sZUFBZSxFQUNmLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULHlCQUF5QixFQUN6QixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1QsU0FBUyxFQUNULGdCQUFnQixHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFDTiwyQkFBMkIsRUFDM0IsV0FBVyxFQUNYLE9BQU8sRUFNUCxjQUFjLEVBR2Qsa0JBQWtCLEVBQ2xCLFlBQVksR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQTZCLGFBQWEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFakUsZUFBZSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQWN4QyxNQUFNLE9BQU8sZUFBZTtJQTJDM0I7UUExQ0EsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQWtDO1lBQzVELFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNwQixJQUFJLEtBQUssS0FBSyxRQUFRO29CQUFFLE9BQU8sY0FBYyxD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SUFBSSxDQUFDLG1CQUFtQixDQUN4QixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0YsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtZQUMvQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQXBIVyxlQUFlO2tHQUFmLGVBQWUsdTdEQUpoQixDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsdUhBdUNBLGdCQUFnQiw2Q0E1QzVFOzs7O0VBSVQ7OzJGQUtXLGVBQWU7a0JBWjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDO29CQUN0RSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAbmF0aXZlc2NyaXB0L2NhbnZhcy10aHJlZSc7XG5cbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q29tcG9uZW50UmVmLFxuXHRjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yLFxuXHREZXN0cm95UmVmLFxuXHRFbnZpcm9ubWVudEluamVjdG9yLFxuXHRpbmplY3QsXG5cdEluamVjdG9yLFxuXHRpbnB1dCxcblx0Tmdab25lLFxuXHROT19FUlJPUlNfU0NIRU1BLFxuXHRvdXRwdXQsXG5cdHNpZ25hbCxcblx0VHlwZSxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVnaXN0ZXJFbGVtZW50IH0gZnJvbSAnQG5hdGl2ZXNjcmlwdC9hbmd1bGFyJztcbmltcG9ydCB7IENhbnZhcyB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvY2FudmFzJztcbmltcG9ydCB7XG5cdGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplcixcblx0aW5qZWN0U3RvcmUsXG5cdG1ha2VEcHIsXG5cdE5ndENhbnZhc0NvbmZpZ3VyYXRvcixcblx0Tmd0Q2FudmFzT3B0aW9ucyxcblx0Tmd0RHByLFxuXHROZ3RHTE9wdGlvbnMsXG5cdE5ndFBlcmZvcm1hbmNlLFxuXHROZ3RSb3V0ZWRTY2VuZSxcblx0Tmd0U2l6ZSxcblx0Tmd0U3RhdGUsXG5cdHByb3ZpZGVOZ3RSZW5kZXJlcixcblx0cHJvdmlkZVN0b3JlLFxufSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IFJheWNhc3RlciwgU2NlbmUsIFZlY3RvcjMsIFdlYkdMUmVuZGVyZXIgfSBmcm9tICd0aHJlZSc7XG5cbnJlZ2lzdGVyRWxlbWVudCgnQ2FudmFzJywgKCkgPT4gQ2FudmFzKTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnTmd0Q2FudmFzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8R3JpZExheW91dD5cblx0XHRcdDxDYW52YXMgI2NhbnZhcyBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG9cIiAocmVhZHkpPVwiY2FudmFzRWxlbWVudC5zZXQoJGFueSgkZXZlbnQpLm9iamVjdClcIj48L0NhbnZhcz5cblx0XHQ8L0dyaWRMYXlvdXQ+XG5cdGAsXG5cdHByb3ZpZGVyczogW3sgcHJvdmlkZTogRE9DVU1FTlQsIHVzZVZhbHVlOiBkb2N1bWVudCB9LCBwcm92aWRlU3RvcmUoKV0sXG5cdHNjaGVtYXM6IFtOT19FUlJPUlNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndENhbnZhc05hdGl2ZSB7XG5cdHNjZW5lR3JhcGggPSBpbnB1dC5yZXF1aXJlZDxUeXBlPGFueT4sIFR5cGU8YW55PiB8ICdyb3V0ZWQnPih7XG5cdFx0dHJhbnNmb3JtOiAodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSA9PT0gJ3JvdXRlZCcpIHJldHVybiBOZ3RSb3V0ZWRTY2VuZTtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9LFxuXHR9KTtcblx0Z2wgPSBpbnB1dDxOZ3RHTE9wdGlvbnM+KCk7XG5cdHNpemUgPSBpbnB1dDxOZ3RTaXplPigpO1xuXHRzaGFkb3dzID0gaW5wdXQoZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06ICh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09PSAnJykgcmV0dXJuIGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpO1xuXHRcdFx0cmV0dXJuIHZhbHVlIGFzIE5vbk51bGxhYmxlPE5ndENhbnZhc09wdGlvbnNbJ3NoYWRvd3MnXT47XG5cdFx0fSxcblx0fSk7XG5cdGxlZ2FjeSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0bGluZWFyID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRmbGF0ID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRvcnRob2dyYXBoaWMgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdGZyYW1lbG9vcCA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc09wdGlvbnNbJ2ZyYW1lbG9vcCddPj4oJ2Fsd2F5cycpO1xuXHRwZXJmb3JtYW5jZSA9IGlucHV0PFBhcnRpYWw8T21pdDxOZ3RQZXJmb3JtYW5jZSwgJ3JlZ3Jlc3MnPj4+KCk7XG5cdGRwciA9IGlucHV0PE5ndERwcj4oWzEsIDJdKTtcblx0cmF5Y2FzdGVyID0gaW5wdXQ8UGFydGlhbDxSYXljYXN0ZXI+PigpO1xuXHRzY2VuZSA9IGlucHV0PFNjZW5lIHwgUGFydGlhbDxTY2VuZT4+KCk7XG5cdGNhbWVyYSA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc09wdGlvbnNbJ2NhbWVyYSddPj4oKTtcblx0bG9va0F0ID0gaW5wdXQ8VmVjdG9yMyB8IFBhcmFtZXRlcnM8VmVjdG9yM1snc2V0J10+PigpO1xuXHRjcmVhdGVkID0gb3V0cHV0PE5ndFN0YXRlPigpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGluaXRSb290ID0gaW5qZWN0Q2FudmFzUm9vdEluaXRpYWxpemVyKCk7XG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cdHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblx0cHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cblx0cHJpdmF0ZSBjYW52YXNWaWV3Q29udGFpbmVyUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkKCdjYW52YXMnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSk7XG5cblx0cHJpdmF0ZSBjb25maWd1cmF0b3I/OiBOZ3RDYW52YXNDb25maWd1cmF0b3I7XG5cdHByaXZhdGUgZ2xFbnZpcm9ubWVudEluamVjdG9yPzogRW52aXJvbm1lbnRJbmplY3Rvcjtcblx0cHJpdmF0ZSBnbFJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xuXG5cdGNhbnZhc0VsZW1lbnQgPSBzaWduYWw8Q2FudmFzIHwgbnVsbD4obnVsbCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRhdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgY2FudmFzID0gdGhpcy5jYW52YXNFbGVtZW50KCk7XG5cdFx0XHRcdGlmICghY2FudmFzKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgZHByID0gbWFrZURwcih1bnRyYWNrZWQodGhpcy5kcHIpLCB3aW5kb3cpO1xuXHRcdFx0XHRjb25zdCBjYW52YXNXaWR0aCA9IGNhbnZhcy5jbGllbnRXaWR0aCAqIGRwcjtcblx0XHRcdFx0Y29uc3QgY2FudmFzSGVpZ2h0ID0gY2FudmFzLmNsaWVudEhlaWdodCAqIGRwcjtcblx0XHRcdFx0T2JqZWN0LmFzc2lnbihjYW52YXMsIHsgd2lkdGg6IGNhbnZhc1dpZHRoLCBoZWlnaHQ6IGNhbnZhc0hlaWdodCB9KTtcblxuXHRcdFx0XHRjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJ3dlYmdsMicpO1xuXHRcdFx0XHRjb25zdCBnbCA9IG5ldyBXZWJHTFJlbmRlcmVyKHtcblx0XHRcdFx0XHRjb250ZXh0OiBjb250ZXh0IGFzIHVua25vd24gYXMgV2ViR0xSZW5kZXJpbmdDb250ZXh0LFxuXHRcdFx0XHRcdHBvd2VyUHJlZmVyZW5jZTogJ2hpZ2gtcGVyZm9ybWFuY2UnLFxuXHRcdFx0XHRcdGFudGlhbGlhczogdHJ1ZSxcblx0XHRcdFx0XHRhbHBoYTogdHJ1ZSxcblx0XHRcdFx0XHQuLi51bnRyYWNrZWQodGhpcy5nbCksXG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5jb25maWd1cmF0b3IgPSB0aGlzLmluaXRSb290KGNhbnZhcyBhcyB1bmtub3duIGFzIEhUTUxDYW52YXNFbGVtZW50KTtcblx0XHRcdFx0XHR0aGlzLmNvbmZpZ3VyYXRvci5jb25maWd1cmUoe1xuXHRcdFx0XHRcdFx0Z2wsXG5cdFx0XHRcdFx0XHRzaXplOiB7IHdpZHRoOiBjYW52YXNXaWR0aCwgaGVpZ2h0OiBjYW52YXNIZWlnaHQsIHRvcDogMCwgbGVmdDogMCB9LFxuXHRcdFx0XHRcdFx0c2hhZG93czogdW50cmFja2VkKHRoaXMuc2hhZG93cyksXG5cdFx0XHRcdFx0XHRsZWdhY3k6IHVudHJhY2tlZCh0aGlzLmxlZ2FjeSksXG5cdFx0XHRcdFx0XHRsaW5lYXI6IHVudHJhY2tlZCh0aGlzLmxpbmVhciksXG5cdFx0XHRcdFx0XHRmbGF0OiB1bnRyYWNrZWQodGhpcy5mbGF0KSxcblx0XHRcdFx0XHRcdG9ydGhvZ3JhcGhpYzogdW50cmFja2VkKHRoaXMub3J0aG9ncmFwaGljKSxcblx0XHRcdFx0XHRcdGZyYW1lbG9vcDogdW50cmFja2VkKHRoaXMuZnJhbWVsb29wKSxcblx0XHRcdFx0XHRcdHBlcmZvcm1hbmNlOiB1bnRyYWNrZWQodGhpcy5wZXJmb3JtYW5jZSksXG5cdFx0XHRcdFx0XHRkcHI6IHVudHJhY2tlZCh0aGlzLmRwciksXG5cdFx0XHRcdFx0XHRyYXljYXN0ZXI6IHVudHJhY2tlZCh0aGlzLnJheWNhc3RlciksXG5cdFx0XHRcdFx0XHRzY2VuZTogdW50cmFja2VkKHRoaXMuc2NlbmUpLFxuXHRcdFx0XHRcdFx0Y2FtZXJhOiB1bnRyYWNrZWQodGhpcy5jYW1lcmEpLFxuXHRcdFx0XHRcdFx0bG9va0F0OiB1bnRyYWNrZWQodGhpcy5sb29rQXQpLFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHVudHJhY2tlZCh0aGlzLm5vWm9uZVJlbmRlci5iaW5kKHRoaXMpKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGhpcy5nbFJlZj8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3I/LmRlc3Ryb3koKTtcblx0XHRcdHRoaXMuY29uZmlndXJhdG9yPy5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIG5vWm9uZVJlbmRlcigpIHtcblx0XHQvLyBOT1RFOiBkZXN0cm95IHByZXZpb3VzIGluc3RhbmNlcyBpZiBleGlzdGVkXG5cdFx0dGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3I/LmRlc3Ryb3koKTtcblx0XHR0aGlzLmdsUmVmPy5kZXN0cm95KCk7XG5cblx0XHQvLyBOT1RFOiBGbGFnIHRoZSBjYW52YXMgYWN0aXZlLCByZW5kZXJpbmcgd2lsbCBub3cgYmVnaW5cblx0XHR0aGlzLnN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7IGludGVybmFsOiB7IC4uLnN0YXRlLmludGVybmFsLCBhY3RpdmU6IHRydWUgfSB9KSk7XG5cblx0XHQvLyBlbWl0IGNyZWF0ZWQgZXZlbnQgaWYgb2JzZXJ2ZWRcblx0XHR0aGlzLmNyZWF0ZWQuZW1pdCh0aGlzLnN0b3JlLnNuYXBzaG90KTtcblxuXHRcdHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcihcblx0XHRcdFt7IHByb3ZpZGU6IERPQ1VNRU5ULCB1c2VWYWx1ZTogZG9jdW1lbnQgfSwgcHJvdmlkZU5ndFJlbmRlcmVyKHRoaXMuc3RvcmUpXSxcblx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbmplY3Rvcixcblx0XHQpO1xuXHRcdHRoaXMuZ2xSZWYgPSB1bnRyYWNrZWQodGhpcy5jYW52YXNWaWV3Q29udGFpbmVyUmVmKS5jcmVhdGVDb21wb25lbnQodW50cmFja2VkKHRoaXMuc2NlbmVHcmFwaCksIHtcblx0XHRcdGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yLFxuXHRcdFx0aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG5cdFx0fSk7XG5cblx0XHR0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0fVxufVxuIl19
|
|
@@ -30,10 +30,10 @@ export class NgtTestCanvas {
|
|
|
30
30
|
this.environmentInjector?.destroy();
|
|
31
31
|
this.ref?.destroy();
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtTestCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: NgtTestCanvas, isStandalone: true, selector: "ngt-test-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtTestCanvas, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{
|
|
39
39
|
selector: 'ngt-test-canvas',
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import '@nativescript/canvas-three';
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { input, booleanAttribute, output, inject, Injector, EnvironmentInjector, DestroyRef, NgZone, viewChild, ViewContainerRef, signal, afterNextRender, untracked, createEnvironmentInjector, Component, NO_ERRORS_SCHEMA, ChangeDetectionStrategy } from '@angular/core';
|
|
5
|
+
import { registerElement } from '@nativescript/angular';
|
|
6
|
+
import { Canvas } from '@nativescript/canvas';
|
|
7
|
+
import { NgtRoutedScene, injectStore, injectCanvasRootInitializer, makeDpr, provideNgtRenderer, provideStore } from 'angular-three';
|
|
8
|
+
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
9
|
+
import { WebGLRenderer } from 'three';
|
|
10
|
+
|
|
11
|
+
registerElement('Canvas', () => Canvas);
|
|
12
|
+
class NgtCanvasNative {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.sceneGraph = input.required({
|
|
15
|
+
transform: (value) => {
|
|
16
|
+
if (value === 'routed')
|
|
17
|
+
return NgtRoutedScene;
|
|
18
|
+
return value;
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
this.gl = input();
|
|
22
|
+
this.size = input();
|
|
23
|
+
this.shadows = input(false, {
|
|
24
|
+
transform: (value) => {
|
|
25
|
+
if (value === '')
|
|
26
|
+
return booleanAttribute(value);
|
|
27
|
+
return value;
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
this.legacy = input(false, { transform: booleanAttribute });
|
|
31
|
+
this.linear = input(false, { transform: booleanAttribute });
|
|
32
|
+
this.flat = input(false, { transform: booleanAttribute });
|
|
33
|
+
this.orthographic = input(false, { transform: booleanAttribute });
|
|
34
|
+
this.frameloop = input('always');
|
|
35
|
+
this.performance = input();
|
|
36
|
+
this.dpr = input([1, 2]);
|
|
37
|
+
this.raycaster = input();
|
|
38
|
+
this.scene = input();
|
|
39
|
+
this.camera = input();
|
|
40
|
+
this.lookAt = input();
|
|
41
|
+
this.created = output();
|
|
42
|
+
this.store = injectStore();
|
|
43
|
+
this.initRoot = injectCanvasRootInitializer();
|
|
44
|
+
this.injector = inject(Injector);
|
|
45
|
+
this.environmentInjector = inject(EnvironmentInjector);
|
|
46
|
+
this.destroyRef = inject(DestroyRef);
|
|
47
|
+
this.zone = inject(NgZone);
|
|
48
|
+
this.canvasViewContainerRef = viewChild.required('canvas', { read: ViewContainerRef });
|
|
49
|
+
this.canvasElement = signal(null);
|
|
50
|
+
const autoEffect = injectAutoEffect();
|
|
51
|
+
afterNextRender(() => {
|
|
52
|
+
autoEffect(() => {
|
|
53
|
+
const canvas = this.canvasElement();
|
|
54
|
+
if (!canvas)
|
|
55
|
+
return;
|
|
56
|
+
const dpr = makeDpr(untracked(this.dpr), window);
|
|
57
|
+
const canvasWidth = canvas.clientWidth * dpr;
|
|
58
|
+
const canvasHeight = canvas.clientHeight * dpr;
|
|
59
|
+
Object.assign(canvas, { width: canvasWidth, height: canvasHeight });
|
|
60
|
+
const context = canvas.getContext('webgl2');
|
|
61
|
+
const gl = new WebGLRenderer({
|
|
62
|
+
context: context,
|
|
63
|
+
powerPreference: 'high-performance',
|
|
64
|
+
antialias: true,
|
|
65
|
+
alpha: true,
|
|
66
|
+
...untracked(this.gl),
|
|
67
|
+
});
|
|
68
|
+
this.zone.runOutsideAngular(() => {
|
|
69
|
+
this.configurator = this.initRoot(canvas);
|
|
70
|
+
this.configurator.configure({
|
|
71
|
+
gl,
|
|
72
|
+
size: { width: canvasWidth, height: canvasHeight, top: 0, left: 0 },
|
|
73
|
+
shadows: untracked(this.shadows),
|
|
74
|
+
legacy: untracked(this.legacy),
|
|
75
|
+
linear: untracked(this.linear),
|
|
76
|
+
flat: untracked(this.flat),
|
|
77
|
+
orthographic: untracked(this.orthographic),
|
|
78
|
+
frameloop: untracked(this.frameloop),
|
|
79
|
+
performance: untracked(this.performance),
|
|
80
|
+
dpr: untracked(this.dpr),
|
|
81
|
+
raycaster: untracked(this.raycaster),
|
|
82
|
+
scene: untracked(this.scene),
|
|
83
|
+
camera: untracked(this.camera),
|
|
84
|
+
lookAt: untracked(this.lookAt),
|
|
85
|
+
});
|
|
86
|
+
untracked(this.noZoneRender.bind(this));
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
this.destroyRef.onDestroy(() => {
|
|
91
|
+
this.glRef?.destroy();
|
|
92
|
+
this.glEnvironmentInjector?.destroy();
|
|
93
|
+
this.configurator?.destroy();
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
noZoneRender() {
|
|
97
|
+
// NOTE: destroy previous instances if existed
|
|
98
|
+
this.glEnvironmentInjector?.destroy();
|
|
99
|
+
this.glRef?.destroy();
|
|
100
|
+
// NOTE: Flag the canvas active, rendering will now begin
|
|
101
|
+
this.store.update((state) => ({ internal: { ...state.internal, active: true } }));
|
|
102
|
+
// emit created event if observed
|
|
103
|
+
this.created.emit(this.store.snapshot);
|
|
104
|
+
this.glEnvironmentInjector = createEnvironmentInjector([{ provide: DOCUMENT, useValue: document }, provideNgtRenderer(this.store)], this.environmentInjector);
|
|
105
|
+
this.glRef = untracked(this.canvasViewContainerRef).createComponent(untracked(this.sceneGraph), {
|
|
106
|
+
environmentInjector: this.glEnvironmentInjector,
|
|
107
|
+
injector: this.injector,
|
|
108
|
+
});
|
|
109
|
+
this.glRef.changeDetectorRef.detectChanges();
|
|
110
|
+
}
|
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtCanvasNative, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtCanvasNative, isStandalone: true, selector: "NgtCanvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null }, gl: { classPropertyName: "gl", publicName: "gl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadows: { classPropertyName: "shadows", publicName: "shadows", isSignal: true, isRequired: false, transformFunction: null }, legacy: { classPropertyName: "legacy", publicName: "legacy", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, orthographic: { classPropertyName: "orthographic", publicName: "orthographic", isSignal: true, isRequired: false, transformFunction: null }, frameloop: { classPropertyName: "frameloop", publicName: "frameloop", isSignal: true, isRequired: false, transformFunction: null }, performance: { classPropertyName: "performance", publicName: "performance", isSignal: true, isRequired: false, transformFunction: null }, dpr: { classPropertyName: "dpr", publicName: "dpr", isSignal: true, isRequired: false, transformFunction: null }, raycaster: { classPropertyName: "raycaster", publicName: "raycaster", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, lookAt: { classPropertyName: "lookAt", publicName: "lookAt", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created" }, providers: [{ provide: DOCUMENT, useValue: document }, provideStore()], viewQueries: [{ propertyName: "canvasViewContainerRef", first: true, predicate: ["canvas"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
|
|
113
|
+
<GridLayout>
|
|
114
|
+
<Canvas #canvas style="width: 100%; height: auto" (ready)="canvasElement.set($any($event).object)"></Canvas>
|
|
115
|
+
</GridLayout>
|
|
116
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
117
|
+
}
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtCanvasNative, decorators: [{
|
|
119
|
+
type: Component,
|
|
120
|
+
args: [{
|
|
121
|
+
selector: 'NgtCanvas',
|
|
122
|
+
standalone: true,
|
|
123
|
+
template: `
|
|
124
|
+
<GridLayout>
|
|
125
|
+
<Canvas #canvas style="width: 100%; height: auto" (ready)="canvasElement.set($any($event).object)"></Canvas>
|
|
126
|
+
</GridLayout>
|
|
127
|
+
`,
|
|
128
|
+
providers: [{ provide: DOCUMENT, useValue: document }, provideStore()],
|
|
129
|
+
schemas: [NO_ERRORS_SCHEMA],
|
|
130
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
131
|
+
}]
|
|
132
|
+
}], ctorParameters: () => [] });
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Generated bundle index. Do not edit.
|
|
136
|
+
*/
|
|
137
|
+
|
|
138
|
+
export { NgtCanvasNative };
|
|
139
|
+
//# sourceMappingURL=angular-three-nativescript.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-nativescript.mjs","sources":["../../../../libs/core/nativescript/src/lib/canvas.ts","../../../../libs/core/nativescript/src/angular-three-nativescript.ts"],"sourcesContent":["import '@nativescript/canvas-three';\n\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tComponentRef,\n\tcreateEnvironmentInjector,\n\tDestroyRef,\n\tEnvironmentInjector,\n\tinject,\n\tInjector,\n\tinput,\n\tNgZone,\n\tNO_ERRORS_SCHEMA,\n\toutput,\n\tsignal,\n\tType,\n\tuntracked,\n\tviewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport { registerElement } from '@nativescript/angular';\nimport { Canvas } from '@nativescript/canvas';\nimport {\n\tinjectCanvasRootInitializer,\n\tinjectStore,\n\tmakeDpr,\n\tNgtCanvasConfigurator,\n\tNgtCanvasOptions,\n\tNgtDpr,\n\tNgtGLOptions,\n\tNgtPerformance,\n\tNgtRoutedScene,\n\tNgtSize,\n\tNgtState,\n\tprovideNgtRenderer,\n\tprovideStore,\n} from 'angular-three';\nimport { injectAutoEffect } from 'ngxtension/auto-effect';\nimport { Raycaster, Scene, Vector3, WebGLRenderer } from 'three';\n\nregisterElement('Canvas', () => Canvas);\n\n@Component({\n\tselector: 'NgtCanvas',\n\tstandalone: true,\n\ttemplate: `\n\t\t<GridLayout>\n\t\t\t<Canvas #canvas style=\"width: 100%; height: auto\" (ready)=\"canvasElement.set($any($event).object)\"></Canvas>\n\t\t</GridLayout>\n\t`,\n\tproviders: [{ provide: DOCUMENT, useValue: document }, provideStore()],\n\tschemas: [NO_ERRORS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtCanvasNative {\n\tsceneGraph = input.required<Type<any>, Type<any> | 'routed'>({\n\t\ttransform: (value) => {\n\t\t\tif (value === 'routed') return NgtRoutedScene;\n\t\t\treturn value;\n\t\t},\n\t});\n\tgl = input<NgtGLOptions>();\n\tsize = input<NgtSize>();\n\tshadows = input(false, {\n\t\ttransform: (value) => {\n\t\t\tif (value === '') return booleanAttribute(value);\n\t\t\treturn value as NonNullable<NgtCanvasOptions['shadows']>;\n\t\t},\n\t});\n\tlegacy = input(false, { transform: booleanAttribute });\n\tlinear = input(false, { transform: booleanAttribute });\n\tflat = input(false, { transform: booleanAttribute });\n\torthographic = input(false, { transform: booleanAttribute });\n\tframeloop = input<NonNullable<NgtCanvasOptions['frameloop']>>('always');\n\tperformance = input<Partial<Omit<NgtPerformance, 'regress'>>>();\n\tdpr = input<NgtDpr>([1, 2]);\n\traycaster = input<Partial<Raycaster>>();\n\tscene = input<Scene | Partial<Scene>>();\n\tcamera = input<NonNullable<NgtCanvasOptions['camera']>>();\n\tlookAt = input<Vector3 | Parameters<Vector3['set']>>();\n\tcreated = output<NgtState>();\n\n\tprivate store = injectStore();\n\tprivate initRoot = injectCanvasRootInitializer();\n\tprivate injector = inject(Injector);\n\tprivate environmentInjector = inject(EnvironmentInjector);\n\tprivate destroyRef = inject(DestroyRef);\n\tprivate zone = inject(NgZone);\n\n\tprivate canvasViewContainerRef = viewChild.required('canvas', { read: ViewContainerRef });\n\n\tprivate configurator?: NgtCanvasConfigurator;\n\tprivate glEnvironmentInjector?: EnvironmentInjector;\n\tprivate glRef?: ComponentRef<any>;\n\n\tcanvasElement = signal<Canvas | null>(null);\n\n\tconstructor() {\n\t\tconst autoEffect = injectAutoEffect();\n\n\t\tafterNextRender(() => {\n\t\t\tautoEffect(() => {\n\t\t\t\tconst canvas = this.canvasElement();\n\t\t\t\tif (!canvas) return;\n\n\t\t\t\tconst dpr = makeDpr(untracked(this.dpr), window);\n\t\t\t\tconst canvasWidth = canvas.clientWidth * dpr;\n\t\t\t\tconst canvasHeight = canvas.clientHeight * dpr;\n\t\t\t\tObject.assign(canvas, { width: canvasWidth, height: canvasHeight });\n\n\t\t\t\tconst context = canvas.getContext('webgl2');\n\t\t\t\tconst gl = new WebGLRenderer({\n\t\t\t\t\tcontext: context as unknown as WebGLRenderingContext,\n\t\t\t\t\tpowerPreference: 'high-performance',\n\t\t\t\t\tantialias: true,\n\t\t\t\t\talpha: true,\n\t\t\t\t\t...untracked(this.gl),\n\t\t\t\t});\n\n\t\t\t\tthis.zone.runOutsideAngular(() => {\n\t\t\t\t\tthis.configurator = this.initRoot(canvas as unknown as HTMLCanvasElement);\n\t\t\t\t\tthis.configurator.configure({\n\t\t\t\t\t\tgl,\n\t\t\t\t\t\tsize: { width: canvasWidth, height: canvasHeight, top: 0, left: 0 },\n\t\t\t\t\t\tshadows: untracked(this.shadows),\n\t\t\t\t\t\tlegacy: untracked(this.legacy),\n\t\t\t\t\t\tlinear: untracked(this.linear),\n\t\t\t\t\t\tflat: untracked(this.flat),\n\t\t\t\t\t\torthographic: untracked(this.orthographic),\n\t\t\t\t\t\tframeloop: untracked(this.frameloop),\n\t\t\t\t\t\tperformance: untracked(this.performance),\n\t\t\t\t\t\tdpr: untracked(this.dpr),\n\t\t\t\t\t\traycaster: untracked(this.raycaster),\n\t\t\t\t\t\tscene: untracked(this.scene),\n\t\t\t\t\t\tcamera: untracked(this.camera),\n\t\t\t\t\t\tlookAt: untracked(this.lookAt),\n\t\t\t\t\t});\n\t\t\t\t\tuntracked(this.noZoneRender.bind(this));\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\tthis.destroyRef.onDestroy(() => {\n\t\t\tthis.glRef?.destroy();\n\t\t\tthis.glEnvironmentInjector?.destroy();\n\t\t\tthis.configurator?.destroy();\n\t\t});\n\t}\n\n\tprivate noZoneRender() {\n\t\t// NOTE: destroy previous instances if existed\n\t\tthis.glEnvironmentInjector?.destroy();\n\t\tthis.glRef?.destroy();\n\n\t\t// NOTE: Flag the canvas active, rendering will now begin\n\t\tthis.store.update((state) => ({ internal: { ...state.internal, active: true } }));\n\n\t\t// emit created event if observed\n\t\tthis.created.emit(this.store.snapshot);\n\n\t\tthis.glEnvironmentInjector = createEnvironmentInjector(\n\t\t\t[{ provide: DOCUMENT, useValue: document }, provideNgtRenderer(this.store)],\n\t\t\tthis.environmentInjector,\n\t\t);\n\t\tthis.glRef = untracked(this.canvasViewContainerRef).createComponent(untracked(this.sceneGraph), {\n\t\t\tenvironmentInjector: this.glEnvironmentInjector,\n\t\t\tinjector: this.injector,\n\t\t});\n\n\t\tthis.glRef.changeDetectorRef.detectChanges();\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -32,10 +32,10 @@ class NgtTestCanvas {
|
|
|
32
32
|
this.environmentInjector?.destroy();
|
|
33
33
|
this.ref?.destroy();
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtTestCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: NgtTestCanvas, isStandalone: true, selector: "ngt-test-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtTestCanvas, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
40
|
args: [{
|
|
41
41
|
selector: 'ngt-test-canvas',
|