angular-three 2.0.0-beta.266 → 2.0.0-beta.268
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 -2
- package/esm2022/lib/loader.mjs +7 -4
- package/esm2022/lib/roots.mjs +1 -1
- package/esm2022/lib/utils/apply-props.mjs +3 -8
- package/esm2022/lib/utils/before-render.mjs +2 -13
- package/fesm2022/angular-three.mjs +47 -54
- package/fesm2022/angular-three.mjs.map +1 -1
- package/lib/canvas.d.ts +2 -2
- package/lib/loader.d.ts +2 -1
- package/lib/roots.d.ts +2 -2
- package/lib/utils/before-render.d.ts +0 -4
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { untracked, computed, signal, ElementRef, input, inject, ViewContainerRef, NgZone, TemplateRef, afterNextRender, DestroyRef, Directive, effect, InjectionToken, getDebugNode, RendererFactory2, Injectable, makeEnvironmentProviders, EnvironmentInjector, Injector, booleanAttribute, output, viewChild, createEnvironmentInjector,
|
|
3
|
-
import {
|
|
2
|
+
import { untracked, computed, signal, ElementRef, input, inject, ViewContainerRef, NgZone, TemplateRef, afterNextRender, DestroyRef, Directive, effect, InjectionToken, getDebugNode, RendererFactory2, Injectable, makeEnvironmentProviders, Component, EnvironmentInjector, Injector, booleanAttribute, output, viewChild, createEnvironmentInjector, ChangeDetectionStrategy, CUSTOM_ELEMENTS_SCHEMA, contentChild, Renderer2 } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed, outputFromObservable } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
5
5
|
import { provideResizeOptions, NgxResize } from 'ngxtension/resize';
|
|
6
|
-
import { MathUtils, WebGLRenderer, OrthographicCamera, PerspectiveCamera, Vector3, Layers, Color,
|
|
6
|
+
import { MathUtils, WebGLRenderer, OrthographicCamera, PerspectiveCamera, Vector3, Layers, Color, ColorManagement, Texture, RGBAFormat, UnsignedByteType, Raycaster, Scene, PCFSoftShadowMap, BasicShadowMap, PCFShadowMap, VSMShadowMap, NoToneMapping, ACESFilmicToneMapping, Vector2, Clock } from 'three';
|
|
7
7
|
import { DOCUMENT } from '@angular/common';
|
|
8
8
|
import { Subject, filter } from 'rxjs';
|
|
9
9
|
import { createInjectionToken } from 'ngxtension/create-injection-token';
|
|
@@ -876,12 +876,7 @@ function applyProps(instance, props) {
|
|
|
876
876
|
value &&
|
|
877
877
|
value.constructor &&
|
|
878
878
|
targetProp.constructor.name === value.constructor.name) {
|
|
879
|
-
|
|
880
|
-
currentInstance[key] = value;
|
|
881
|
-
}
|
|
882
|
-
else {
|
|
883
|
-
targetProp['copy'](value);
|
|
884
|
-
}
|
|
879
|
+
targetProp['copy'](value);
|
|
885
880
|
if (!ColorManagement && !rootState.linear && isColor)
|
|
886
881
|
targetProp['convertSRGBToLinear']();
|
|
887
882
|
} // if nothing else fits, just set the single value, ignore undefined
|
|
@@ -2319,6 +2314,32 @@ function provideNgtRenderer(store) {
|
|
|
2319
2314
|
return makeEnvironmentProviders(providers);
|
|
2320
2315
|
}
|
|
2321
2316
|
|
|
2317
|
+
var _a$1;
|
|
2318
|
+
class NgtRoutedScene {
|
|
2319
|
+
static { _a$1 = ROUTED_SCENE; }
|
|
2320
|
+
static { this[_a$1] = true; }
|
|
2321
|
+
constructor(router, cdr) {
|
|
2322
|
+
router.events
|
|
2323
|
+
.pipe(filter((event) => event instanceof ActivationEnd), takeUntilDestroyed())
|
|
2324
|
+
.subscribe(cdr.detectChanges.bind(cdr));
|
|
2325
|
+
}
|
|
2326
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtRoutedScene, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2327
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NgtRoutedScene, isStandalone: true, selector: "ngt-routed-scene", ngImport: i0, template: `
|
|
2328
|
+
<router-outlet />
|
|
2329
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
2330
|
+
}
|
|
2331
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtRoutedScene, decorators: [{
|
|
2332
|
+
type: Component,
|
|
2333
|
+
args: [{
|
|
2334
|
+
standalone: true,
|
|
2335
|
+
selector: 'ngt-routed-scene',
|
|
2336
|
+
template: `
|
|
2337
|
+
<router-outlet />
|
|
2338
|
+
`,
|
|
2339
|
+
imports: [RouterOutlet],
|
|
2340
|
+
}]
|
|
2341
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i0.ChangeDetectorRef }] });
|
|
2342
|
+
|
|
2322
2343
|
class NgtCanvas {
|
|
2323
2344
|
constructor() {
|
|
2324
2345
|
this.store = injectStore();
|
|
@@ -2329,7 +2350,13 @@ class NgtCanvas {
|
|
|
2329
2350
|
this.zone = inject(NgZone);
|
|
2330
2351
|
this.environmentInjector = inject(EnvironmentInjector);
|
|
2331
2352
|
this.injector = inject(Injector);
|
|
2332
|
-
this.sceneGraph = input.required(
|
|
2353
|
+
this.sceneGraph = input.required({
|
|
2354
|
+
transform: (value) => {
|
|
2355
|
+
if (value === 'routed')
|
|
2356
|
+
return NgtRoutedScene;
|
|
2357
|
+
return value;
|
|
2358
|
+
},
|
|
2359
|
+
});
|
|
2333
2360
|
this.gl = input();
|
|
2334
2361
|
this.size = input();
|
|
2335
2362
|
this.shadows = input(false, {
|
|
@@ -2488,7 +2515,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
2488
2515
|
}]
|
|
2489
2516
|
}], ctorParameters: () => [] });
|
|
2490
2517
|
|
|
2491
|
-
var _a
|
|
2518
|
+
var _a;
|
|
2492
2519
|
const NGT_HTML_DOM_ELEMENT = new InjectionToken('NGT_HTML_DOM_ELEMENT');
|
|
2493
2520
|
function provideHTMLDomElement(...args) {
|
|
2494
2521
|
if (args.length === 0) {
|
|
@@ -2497,8 +2524,8 @@ function provideHTMLDomElement(...args) {
|
|
|
2497
2524
|
return { provide: NGT_HTML_DOM_ELEMENT, useFactory: args.pop(), deps: args };
|
|
2498
2525
|
}
|
|
2499
2526
|
class NgtHTML {
|
|
2500
|
-
static { _a
|
|
2501
|
-
static { this[_a
|
|
2527
|
+
static { _a = HTML; }
|
|
2528
|
+
static { this[_a] = true; }
|
|
2502
2529
|
constructor() {
|
|
2503
2530
|
this.store = injectStore();
|
|
2504
2531
|
this.destroyRef = inject(DestroyRef);
|
|
@@ -2532,7 +2559,7 @@ function normalizeInputs(input) {
|
|
|
2532
2559
|
return [input];
|
|
2533
2560
|
return Object.values(input);
|
|
2534
2561
|
}
|
|
2535
|
-
function load(loaderConstructorFactory, inputs, { extensions, onProgress, } = {}) {
|
|
2562
|
+
function load(loaderConstructorFactory, inputs, { extensions, onLoad, onProgress, } = {}) {
|
|
2536
2563
|
return () => {
|
|
2537
2564
|
const urls = normalizeInputs(inputs());
|
|
2538
2565
|
if (urls.some((url) => url.includes('undefined')))
|
|
@@ -2552,6 +2579,9 @@ function load(loaderConstructorFactory, inputs, { extensions, onProgress, } = {}
|
|
|
2552
2579
|
if ('scene' in data) {
|
|
2553
2580
|
Object.assign(data, makeObjectGraph(data['scene']));
|
|
2554
2581
|
}
|
|
2582
|
+
if (onLoad) {
|
|
2583
|
+
onLoad(data);
|
|
2584
|
+
}
|
|
2555
2585
|
resolve(data);
|
|
2556
2586
|
}, onProgress, (error) => reject(new Error(`[NGT] Could not load ${url}: ${error?.message}`)));
|
|
2557
2587
|
}));
|
|
@@ -2560,12 +2590,12 @@ function load(loaderConstructorFactory, inputs, { extensions, onProgress, } = {}
|
|
|
2560
2590
|
});
|
|
2561
2591
|
};
|
|
2562
2592
|
}
|
|
2563
|
-
function _injectLoader(loaderConstructorFactory, inputs, { extensions, onProgress, injector, } = {}) {
|
|
2593
|
+
function _injectLoader(loaderConstructorFactory, inputs, { extensions, onProgress, onLoad, injector, } = {}) {
|
|
2564
2594
|
return assertInjector(_injectLoader, injector, () => {
|
|
2565
2595
|
const autoEffect = injectAutoEffect();
|
|
2566
2596
|
const response = signal(null);
|
|
2567
2597
|
afterNextRender(() => {
|
|
2568
|
-
const effector = load(loaderConstructorFactory, inputs, { extensions, onProgress });
|
|
2598
|
+
const effector = load(loaderConstructorFactory, inputs, { extensions, onProgress, onLoad });
|
|
2569
2599
|
autoEffect(() => {
|
|
2570
2600
|
const originalUrls = inputs();
|
|
2571
2601
|
const cachedEffect = effector();
|
|
@@ -2617,17 +2647,6 @@ function injectBeforeRender(cb, { priority = 0, injector } = {}) {
|
|
|
2617
2647
|
return sub;
|
|
2618
2648
|
});
|
|
2619
2649
|
}
|
|
2620
|
-
// TODO (chau): clean this up
|
|
2621
|
-
function injectNextBeforeRender(cb, { priority = 0, injector } = {}) {
|
|
2622
|
-
return assertInjector(injectNextBeforeRender, injector, () => {
|
|
2623
|
-
const assertedInjector = inject(Injector);
|
|
2624
|
-
const sub = signal(null);
|
|
2625
|
-
afterNextRender(() => {
|
|
2626
|
-
sub.set(injectBeforeRender(cb, { priority, injector: assertedInjector }));
|
|
2627
|
-
});
|
|
2628
|
-
return sub.asReadonly();
|
|
2629
|
-
});
|
|
2630
|
-
}
|
|
2631
2650
|
|
|
2632
2651
|
class NgtPortalBeforeRender {
|
|
2633
2652
|
constructor() {
|
|
@@ -2840,32 +2859,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
2840
2859
|
}]
|
|
2841
2860
|
}], ctorParameters: () => [] });
|
|
2842
2861
|
|
|
2843
|
-
var _a;
|
|
2844
|
-
class NgtRoutedScene {
|
|
2845
|
-
static { _a = ROUTED_SCENE; }
|
|
2846
|
-
static { this[_a] = true; }
|
|
2847
|
-
constructor(router, cdr) {
|
|
2848
|
-
router.events
|
|
2849
|
-
.pipe(filter((event) => event instanceof ActivationEnd), takeUntilDestroyed())
|
|
2850
|
-
.subscribe(cdr.detectChanges.bind(cdr));
|
|
2851
|
-
}
|
|
2852
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtRoutedScene, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2853
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NgtRoutedScene, isStandalone: true, selector: "ngt-routed-scene", ngImport: i0, template: `
|
|
2854
|
-
<router-outlet />
|
|
2855
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
2856
|
-
}
|
|
2857
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgtRoutedScene, decorators: [{
|
|
2858
|
-
type: Component,
|
|
2859
|
-
args: [{
|
|
2860
|
-
standalone: true,
|
|
2861
|
-
selector: 'ngt-routed-scene',
|
|
2862
|
-
template: `
|
|
2863
|
-
<router-outlet />
|
|
2864
|
-
`,
|
|
2865
|
-
imports: [RouterOutlet],
|
|
2866
|
-
}]
|
|
2867
|
-
}], ctorParameters: () => [{ type: i1.Router }, { type: i0.ChangeDetectorRef }] });
|
|
2868
|
-
|
|
2869
2862
|
function resolveRef(ref) {
|
|
2870
2863
|
if (is.ref(ref)) {
|
|
2871
2864
|
return ref.nativeElement;
|
|
@@ -2961,5 +2954,5 @@ function vector3(options, key, keepUndefined = false) {
|
|
|
2961
2954
|
* Generated bundle index. Do not edit.
|
|
2962
2955
|
*/
|
|
2963
2956
|
|
|
2964
|
-
export { HTML, NGT_STORE, NgtArgs, NgtCanvas, NgtHTML, NgtPortal, NgtPortalContent, NgtRenderer, NgtRendererFactory, NgtRoutedScene, ROUTED_SCENE, addAfterEffect, addEffect, addTail, applyProps, checkNeedsUpdate, checkUpdate, createAttachFunction, extend, getLocalState, injectBeforeRender, injectLoader,
|
|
2957
|
+
export { HTML, NGT_STORE, NgtArgs, NgtCanvas, NgtHTML, NgtPortal, NgtPortalContent, NgtRenderer, NgtRendererFactory, NgtRoutedScene, ROUTED_SCENE, addAfterEffect, addEffect, addTail, applyProps, checkNeedsUpdate, checkUpdate, createAttachFunction, extend, getLocalState, injectBeforeRender, injectLoader, injectObjectEvents, injectStore, invalidateInstance, is, makeCameraInstance, makeDpr, makeId, makeObjectGraph, makeRendererInstance, merge, omit, pick, prepare, provideHTMLDomElement, provideNgtRenderer, provideStore, resolveRef, signalStore, updateCamera, vector2, vector3 };
|
|
2965
2958
|
//# sourceMappingURL=angular-three.mjs.map
|