angular-three 2.0.0-beta.21 → 2.0.0-beta.223
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +4 -11
- package/esm2022/lib/canvas.mjs +81 -156
- package/esm2022/lib/directives/args.mjs +6 -6
- package/esm2022/lib/directives/common.mjs +15 -14
- package/esm2022/lib/directives/parent.mjs +6 -6
- package/esm2022/lib/dom/events.mjs +2 -2
- package/esm2022/lib/events.mjs +28 -25
- package/esm2022/lib/instance.mjs +39 -34
- package/esm2022/lib/loader.mjs +12 -14
- package/esm2022/lib/loop.mjs +9 -10
- package/esm2022/lib/portal.mjs +122 -135
- package/esm2022/lib/ref.mjs +18 -20
- package/esm2022/lib/renderer/catalogue.mjs +2 -2
- package/esm2022/lib/renderer/constants.mjs +2 -2
- package/esm2022/lib/renderer/index.mjs +58 -62
- package/esm2022/lib/renderer/store.mjs +129 -120
- package/esm2022/lib/renderer/utils.mjs +35 -42
- package/esm2022/lib/roots.mjs +41 -38
- package/esm2022/lib/routed-scene.mjs +6 -7
- package/esm2022/lib/store.mjs +163 -189
- package/esm2022/lib/utils/apply-props.mjs +12 -17
- package/esm2022/lib/utils/attach.mjs +6 -6
- package/esm2022/lib/utils/before-render.mjs +12 -0
- package/esm2022/lib/utils/cd-aware-signal.mjs +24 -0
- package/esm2022/lib/utils/create-api-token.mjs +13 -0
- package/esm2022/lib/utils/is.mjs +6 -5
- package/esm2022/lib/utils/make.mjs +15 -12
- package/esm2022/lib/utils/signal-store.mjs +67 -57
- package/esm2022/lib/utils/update.mjs +3 -2
- package/fesm2022/angular-three.mjs +1621 -1795
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +6 -10
- package/lib/canvas.d.ts +24 -37
- package/lib/directives/common.d.ts +12 -1
- package/lib/events.d.ts +2 -2
- package/lib/instance.d.ts +19 -10
- package/lib/loader.d.ts +13 -4
- package/lib/loop.d.ts +6 -29
- package/lib/portal.d.ts +18 -26
- package/lib/ref.d.ts +0 -1
- package/lib/renderer/catalogue.d.ts +5 -1
- package/lib/renderer/constants.d.ts +1 -1
- package/lib/renderer/index.d.ts +55 -4
- package/lib/renderer/store.d.ts +18 -21
- package/lib/renderer/utils.d.ts +2 -3
- package/lib/roots.d.ts +4 -3
- package/lib/store.d.ts +9 -11
- package/lib/utils/apply-props.d.ts +0 -1
- package/lib/{before-render.d.ts → utils/before-render.d.ts} +1 -1
- package/lib/utils/cd-aware-signal.d.ts +4 -0
- package/lib/utils/create-api-token.d.ts +23 -0
- package/lib/utils/is.d.ts +11 -12
- package/lib/utils/make.d.ts +3 -2
- package/lib/utils/signal-store.d.ts +16 -3
- package/metadata.json +1 -1
- package/package.json +30 -11
- package/plugin/generators.json +0 -32
- package/plugin/src/generators/init/compat.d.ts +1 -3
- package/plugin/src/generators/init/files/experience/{experience.component.ts.__tmpl__ → experience.component.ts__tmpl__} +1 -0
- package/plugin/src/generators/init/generator.d.ts +2 -5
- package/plugin/src/generators/init/generator.js +94 -95
- package/plugin/src/generators/init/generator.js.map +1 -1
- package/plugin/src/generators/init/schema.json +1 -12
- package/plugin/src/generators/utils.js.map +1 -1
- package/plugin/src/generators/{versions.d.ts → version.d.ts} +5 -3
- package/plugin/src/generators/version.js +18 -0
- package/plugin/src/generators/version.js.map +1 -0
- package/plugin/src/index.d.ts +0 -3
- package/plugin/src/index.js +0 -9
- package/plugin/src/index.js.map +1 -1
- package/web-types.json +1 -1
- package/esm2022/lib/before-render.mjs +0 -13
- package/esm2022/lib/directives/key.mjs +0 -29
- package/esm2022/lib/directives/repeat.mjs +0 -17
- package/esm2022/lib/three-types.mjs +0 -2
- package/esm2022/lib/utils/assert-injection-context.mjs +0 -14
- package/esm2022/lib/utils/create-injection-token.mjs +0 -47
- package/esm2022/lib/utils/safe-detect-changes.mjs +0 -17
- package/lib/directives/key.d.ts +0 -10
- package/lib/directives/repeat.d.ts +0 -7
- package/lib/three-types.d.ts +0 -306
- package/lib/utils/assert-injection-context.d.ts +0 -2
- package/lib/utils/create-injection-token.d.ts +0 -27
- package/lib/utils/safe-detect-changes.d.ts +0 -2
- package/plugin/package.json +0 -6
- package/plugin/src/generators/init-cannon/compat.d.ts +0 -2
- package/plugin/src/generators/init-cannon/compat.js +0 -6
- package/plugin/src/generators/init-cannon/compat.js.map +0 -1
- package/plugin/src/generators/init-cannon/generator.d.ts +0 -2
- package/plugin/src/generators/init-cannon/generator.js +0 -22
- package/plugin/src/generators/init-cannon/generator.js.map +0 -1
- package/plugin/src/generators/init-cannon/schema.json +0 -6
- package/plugin/src/generators/init-postprocessing/compat.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/compat.js +0 -6
- package/plugin/src/generators/init-postprocessing/compat.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/generator.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/generator.js +0 -20
- package/plugin/src/generators/init-postprocessing/generator.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/schema.json +0 -6
- package/plugin/src/generators/init-soba/compat.d.ts +0 -2
- package/plugin/src/generators/init-soba/compat.js +0 -6
- package/plugin/src/generators/init-soba/compat.js.map +0 -1
- package/plugin/src/generators/init-soba/generator.d.ts +0 -2
- package/plugin/src/generators/init-soba/generator.js +0 -26
- package/plugin/src/generators/init-soba/generator.js.map +0 -1
- package/plugin/src/generators/init-soba/schema.json +0 -6
- package/plugin/src/generators/versions.js +0 -16
- package/plugin/src/generators/versions.js.map +0 -1
- /package/plugin/src/generators/init/files/experience/{experience.component.html.__tmpl__ → experience.component.html__tmpl__} +0 -0
package/lib/store.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/// <reference types="webxr" />
|
|
2
|
-
import { ElementRef, InjectionToken
|
|
2
|
+
import { ElementRef, InjectionToken } from '@angular/core';
|
|
3
3
|
import { type Observable } from 'rxjs';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import type { NgtCamera, NgtDomEvent, NgtEventManager, NgtPointerCaptureTarget, NgtThreeEvent } from './events';
|
|
6
6
|
import type { NgtInstanceNode } from './instance';
|
|
7
|
-
import { type NgtLoop } from './loop';
|
|
8
7
|
import { type NgtSignalStore } from './utils/signal-store';
|
|
9
|
-
export type
|
|
8
|
+
export type NgtRendererLike = {
|
|
10
9
|
render: (scene: THREE.Scene, camera: THREE.Camera) => any;
|
|
11
10
|
};
|
|
12
11
|
export type NgtCameraManual = NgtCamera & {
|
|
@@ -70,8 +69,6 @@ export type NgtInternalState = {
|
|
|
70
69
|
subscribe: (callback: NgtBeforeRenderRecord['callback'], priority?: number, store?: NgtSignalStore<NgtState>) => () => void;
|
|
71
70
|
};
|
|
72
71
|
export type NgtState = {
|
|
73
|
-
/** when all building blocks are initialized */
|
|
74
|
-
ready: boolean;
|
|
75
72
|
/** The instance of the renderer */
|
|
76
73
|
gl: THREE.WebGLRenderer;
|
|
77
74
|
/** Default camera */
|
|
@@ -125,19 +122,20 @@ export type NgtState = {
|
|
|
125
122
|
/** When the canvas was clicked but nothing was hit */
|
|
126
123
|
/** PointerMissed Observable */
|
|
127
124
|
pointerMissed$: Observable<MouseEvent>;
|
|
128
|
-
/** If this state model is
|
|
125
|
+
/** If this state model is layered (via createPortal) then this contains the previous layer */
|
|
129
126
|
previousRoot: NgtSignalStore<NgtState> | null;
|
|
130
127
|
/** Internals */
|
|
131
128
|
internal: NgtInternalState;
|
|
132
129
|
};
|
|
133
|
-
declare function storeFactory(loop: NgtLoop, document: Document, injector: Injector, parent: NgtSignalStore<NgtState> | null): NgtSignalStore<NgtState>;
|
|
134
|
-
export type NgtStore = ReturnType<typeof storeFactory>;
|
|
135
130
|
export declare const NGT_STORE: InjectionToken<NgtSignalStore<NgtState>>;
|
|
136
131
|
export declare const injectNgtStore: {
|
|
137
132
|
(): NgtSignalStore<NgtState>;
|
|
138
133
|
(injectOptions: import("@angular/core").InjectOptions & {
|
|
139
134
|
optional?: false | undefined;
|
|
135
|
+
} & {
|
|
136
|
+
injector?: import("@angular/core").Injector | undefined; /** Current performance normal, between min and max */
|
|
140
137
|
}): NgtSignalStore<NgtState>;
|
|
141
|
-
(injectOptions: import("@angular/core").InjectOptions
|
|
142
|
-
|
|
143
|
-
|
|
138
|
+
(injectOptions: import("@angular/core").InjectOptions & {
|
|
139
|
+
injector?: import("@angular/core").Injector | undefined;
|
|
140
|
+
}): NgtSignalStore<NgtState> | null;
|
|
141
|
+
}, provideNgtStore: (() => import("@angular/core").Provider) & ((value: NgtSignalStore<NgtState> | (() => NgtSignalStore<NgtState>)) => import("@angular/core").Provider);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { type NgtInstanceNode } from '../instance';
|
|
2
2
|
import type { NgtAnyRecord } from '../types';
|
|
3
|
-
export declare function diffProps(instance: NgtAnyRecord, props: NgtAnyRecord): [key: string, value: unknown][];
|
|
4
3
|
export declare function applyProps(instance: NgtInstanceNode, props: NgtAnyRecord): any;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injector } from '@angular/core';
|
|
2
|
-
import { type NgtBeforeRenderRecord } from '
|
|
2
|
+
import { type NgtBeforeRenderRecord } from '../store';
|
|
3
3
|
export declare function injectBeforeRender(cb: NgtBeforeRenderRecord['callback'], { priority, injector }?: {
|
|
4
4
|
priority?: number;
|
|
5
5
|
injector?: Injector;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Type } from '@angular/core';
|
|
2
|
+
import { type CreateInjectionTokenOptions } from 'ngxtension/create-injection-token';
|
|
3
|
+
declare function apiFactory<TObject extends {
|
|
4
|
+
api: any;
|
|
5
|
+
}, TApi = TObject extends {
|
|
6
|
+
api: infer Api;
|
|
7
|
+
} ? Api : never>(obj: TObject): TApi;
|
|
8
|
+
export declare function createApiToken<TObject extends {
|
|
9
|
+
api: any;
|
|
10
|
+
}, TApi = TObject extends {
|
|
11
|
+
api: infer Api;
|
|
12
|
+
} ? Api : never>(forwardedObject: () => Type<TObject>): readonly [{
|
|
13
|
+
(): CreateInjectionTokenOptions<typeof apiFactory, [TObject]>["multi"] extends true ? TApi[] : TApi;
|
|
14
|
+
(injectOptions: import("@angular/core").InjectOptions & {
|
|
15
|
+
optional?: false | undefined;
|
|
16
|
+
} & {
|
|
17
|
+
injector?: import("@angular/core").Injector | undefined;
|
|
18
|
+
}): CreateInjectionTokenOptions<typeof apiFactory, [TObject]>["multi"] extends true ? TApi[] : TApi;
|
|
19
|
+
(injectOptions: import("@angular/core").InjectOptions & {
|
|
20
|
+
injector?: import("@angular/core").Injector | undefined;
|
|
21
|
+
}): (CreateInjectionTokenOptions<typeof apiFactory, [TObject]>["multi"] extends true ? TApi[] : TApi) | null;
|
|
22
|
+
}, () => import("@angular/core").Provider];
|
|
23
|
+
export {};
|
package/lib/utils/is.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
|
-
import
|
|
3
|
-
import type { NgtRenderer } from '../store';
|
|
2
|
+
import type { NgtRendererLike } from '../store';
|
|
4
3
|
import type { NgtEquConfig } from '../types';
|
|
5
4
|
export declare const is: {
|
|
6
5
|
obj: (a: unknown) => a is object;
|
|
7
|
-
material: (a: unknown) => a is
|
|
8
|
-
geometry: (a: unknown) => a is
|
|
9
|
-
orthographicCamera: (a: unknown) => a is
|
|
10
|
-
perspectiveCamera: (a: unknown) => a is
|
|
11
|
-
camera: (a: unknown) => a is
|
|
12
|
-
renderer: (a: unknown) =>
|
|
13
|
-
scene: (a: unknown) => a is
|
|
14
|
-
object3D: (a: unknown) => a is THREE.Object3D<THREE.Event>;
|
|
15
|
-
instance: (a: unknown) => a is any;
|
|
6
|
+
material: (a: unknown) => a is import("three").Material;
|
|
7
|
+
geometry: (a: unknown) => a is import("three").BufferGeometry<import("three").NormalBufferAttributes>;
|
|
8
|
+
orthographicCamera: (a: unknown) => a is import("three").OrthographicCamera;
|
|
9
|
+
perspectiveCamera: (a: unknown) => a is import("three").PerspectiveCamera;
|
|
10
|
+
camera: (a: unknown) => a is import("three").Camera;
|
|
11
|
+
renderer: (a: unknown) => boolean;
|
|
12
|
+
scene: (a: unknown) => a is import("three").Scene;
|
|
16
13
|
ref: (a: unknown) => a is ElementRef<any>;
|
|
17
|
-
|
|
14
|
+
instance: (a: unknown) => a is any;
|
|
15
|
+
object3D: (a: unknown) => a is import("three").Object3D<import("three").Object3DEventMap>;
|
|
16
|
+
colorSpaceExist: <T extends object | NgtRendererLike | import("three").Texture, P = T extends NgtRendererLike ? {
|
|
18
17
|
outputColorSpace: string;
|
|
19
18
|
} : {
|
|
20
19
|
colorSpace: string;
|
package/lib/utils/make.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import type { NgtGLOptions } from '../canvas';
|
|
3
3
|
import type { NgtIntersection } from '../events';
|
|
4
|
+
import type { NgtCanvasElement } from '../roots';
|
|
4
5
|
import type { NgtDpr, NgtSize } from '../store';
|
|
5
6
|
export declare function makeId(event?: NgtIntersection): string;
|
|
6
7
|
export declare function makeDpr(dpr: NgtDpr, window?: Window): number;
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function makeRendererInstance<TCanvas extends NgtCanvasElement>(glOptions: NgtGLOptions, canvas: TCanvas): THREE.WebGLRenderer;
|
|
9
|
+
export declare function makeCameraInstance(isOrthographic: boolean, size: NgtSize): THREE.OrthographicCamera | THREE.PerspectiveCamera;
|
|
9
10
|
export type NgtObjectMap = {
|
|
10
11
|
nodes: {
|
|
11
12
|
[name: string]: THREE.Object3D;
|
|
@@ -10,8 +10,21 @@ export type NgtSignalStore<State extends object> = {
|
|
|
10
10
|
get<Key1 extends keyof State, Key2 extends keyof State[Key1]>(key1: Key1, key2: Key2): State[Key1][Key2];
|
|
11
11
|
get<Key extends keyof State>(key: Key): State[Key];
|
|
12
12
|
get(): State;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* New state takes precedence
|
|
15
|
+
*/
|
|
16
|
+
update(state: Partial<State> | ((previous: State) => Partial<State>)): void;
|
|
17
|
+
/**
|
|
18
|
+
* Non-undefined old state takes precedence
|
|
19
|
+
*/
|
|
20
|
+
patch(state: Partial<State> | ((previous: State) => Partial<State>)): void;
|
|
21
|
+
/**
|
|
22
|
+
* Equivalence to select()
|
|
23
|
+
*/
|
|
15
24
|
state: Signal<State>;
|
|
25
|
+
/**
|
|
26
|
+
* Equivalence to get()
|
|
27
|
+
*/
|
|
28
|
+
get snapshot(): State;
|
|
16
29
|
};
|
|
17
|
-
export declare function signalStore<State extends object>(initialState?: Partial<State> | ((storeApi: Pick<NgtSignalStore<State>, 'get' | '
|
|
30
|
+
export declare function signalStore<State extends object>(initialState?: Partial<State> | ((storeApi: Pick<NgtSignalStore<State>, 'get' | 'update' | 'patch' | 'select'>) => Partial<State>), options?: CreateSignalOptions<State>): NgtSignalStore<State>;
|