angular-three 1.10.3 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -5
- package/esm2022/index.mjs +4 -7
- package/esm2022/lib/canvas.mjs +138 -99
- package/esm2022/lib/di/before-render.mjs +7 -10
- package/esm2022/lib/di/ref.mjs +38 -59
- package/esm2022/lib/directives/args.mjs +5 -8
- package/esm2022/lib/directives/common.mjs +20 -13
- package/esm2022/lib/directives/parent.mjs +5 -8
- package/esm2022/lib/{web → dom}/events.mjs +1 -1
- package/esm2022/lib/events.mjs +2 -2
- package/esm2022/lib/loader.mjs +58 -44
- package/esm2022/lib/loop.mjs +6 -8
- package/esm2022/lib/portal.mjs +76 -63
- package/esm2022/lib/renderer/provider.mjs +3 -2
- package/esm2022/lib/renderer/renderer.mjs +53 -52
- package/esm2022/lib/renderer/store.mjs +14 -19
- package/esm2022/lib/renderer/utils.mjs +27 -18
- package/esm2022/lib/routed-scene.mjs +12 -10
- package/esm2022/lib/stores/signal.store.mjs +60 -0
- package/esm2022/lib/stores/store.mjs +69 -48
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/utils/apply-props.mjs +11 -7
- package/esm2022/lib/utils/attach.mjs +1 -1
- package/esm2022/lib/utils/instance.mjs +14 -14
- package/esm2022/lib/utils/safe-detect-changes.mjs +1 -1
- package/fesm2022/angular-three.mjs +1673 -1744
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +3 -6
- package/lib/canvas.d.ts +11 -20
- package/lib/di/before-render.d.ts +5 -1
- package/lib/di/ref.d.ts +5 -11
- package/lib/directives/args.d.ts +6 -6
- package/lib/directives/common.d.ts +1 -4
- package/lib/directives/parent.d.ts +1 -1
- package/lib/{web → dom}/events.d.ts +2 -2
- package/lib/events.d.ts +3 -3
- package/lib/loader.d.ts +6 -2
- package/lib/loop.d.ts +4 -4
- package/lib/portal.d.ts +11 -18
- package/lib/renderer/renderer.d.ts +7 -9
- package/lib/renderer/store.d.ts +3 -5
- package/lib/renderer/utils.d.ts +6 -4
- package/lib/routed-scene.d.ts +4 -2
- package/lib/stores/signal.store.d.ts +19 -0
- package/lib/stores/store.d.ts +4 -7
- package/lib/types.d.ts +22 -25
- package/lib/utils/attach.d.ts +2 -2
- package/lib/utils/instance.d.ts +1 -1
- package/package.json +6 -7
- package/plugin/package.json +1 -1
- package/plugin/src/generators/init/init.d.ts +1 -1
- package/plugin/src/generators/init/init.js +1 -1
- package/esm2022/lib/di/destroy.mjs +0 -23
- package/esm2022/lib/di/run-in-context.mjs +0 -40
- package/esm2022/lib/pipes/push.mjs +0 -50
- package/esm2022/lib/stores/rx-store.mjs +0 -108
- package/lib/di/destroy.d.ts +0 -9
- package/lib/di/run-in-context.d.ts +0 -6
- package/lib/pipes/push.d.ts +0 -16
- package/lib/stores/rx-store.d.ts +0 -42
package/index.d.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
export * from './lib/canvas';
|
|
2
2
|
export * from './lib/di/before-render';
|
|
3
3
|
export * from './lib/di/catalogue';
|
|
4
|
-
export * from './lib/di/destroy';
|
|
5
4
|
export * from './lib/di/ref';
|
|
6
|
-
export * from './lib/di/run-in-context';
|
|
7
5
|
export * from './lib/directives/args';
|
|
8
6
|
export * from './lib/directives/parent';
|
|
9
7
|
export * from './lib/directives/repeat';
|
|
10
8
|
export * from './lib/loader';
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export * from './lib/portal';
|
|
9
|
+
export { addAfterEffect, addEffect, addTail } from './lib/loop';
|
|
10
|
+
export { NgtPortal, NgtPortalContent } from './lib/portal';
|
|
14
11
|
export * from './lib/routed-scene';
|
|
15
|
-
export * from './lib/stores/
|
|
12
|
+
export * from './lib/stores/signal.store';
|
|
16
13
|
export * from './lib/stores/store';
|
|
17
14
|
export * from './lib/three-types';
|
|
18
15
|
export * from './lib/types';
|
package/lib/canvas.d.ts
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter,
|
|
2
|
-
import { NgxResizeResult } from 'ngx-resize';
|
|
3
|
-
import {
|
|
1
|
+
import { ElementRef, EventEmitter, ViewContainerRef, type OnChanges, type OnInit, type SimpleChanges, type Type } from '@angular/core';
|
|
2
|
+
import { type NgxResizeResult } from 'ngx-resize';
|
|
3
|
+
import { NgtSignalStore } from './stores/signal.store';
|
|
4
4
|
import type { NgtAnyRecord, NgtCanvasInputs, NgtDpr, NgtState } from './types';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class NgtCanvas extends
|
|
7
|
-
private
|
|
8
|
-
|
|
9
|
-
private readonly host;
|
|
10
|
-
private readonly store;
|
|
11
|
-
initialize(): void;
|
|
12
|
-
readonly hbClass = true;
|
|
13
|
-
get hbPointerEvents(): "none" | "auto";
|
|
14
|
-
sceneGraph: Type<any>;
|
|
6
|
+
export declare class NgtCanvas extends NgtSignalStore<NgtCanvasInputs> implements OnInit, OnChanges {
|
|
7
|
+
#private;
|
|
8
|
+
sceneGraph: Type<unknown>;
|
|
15
9
|
sceneGraphInputs: NgtAnyRecord;
|
|
16
10
|
compoundPrefixes: string[];
|
|
17
11
|
set linear(linear: boolean);
|
|
@@ -23,6 +17,7 @@ export declare class NgtCanvas extends NgtRxStore<NgtCanvasInputs> implements On
|
|
|
23
17
|
set raycaster(raycaster: Partial<THREE.Raycaster>);
|
|
24
18
|
set shadows(shadows: boolean | Partial<THREE.WebGLShadowMap>);
|
|
25
19
|
set camera(camera: NgtCanvasInputs['camera']);
|
|
20
|
+
set scene(scene: NgtCanvasInputs['scene']);
|
|
26
21
|
set gl(gl: NgtCanvasInputs['gl']);
|
|
27
22
|
set eventSource(eventSource: NgtCanvasInputs['eventSource']);
|
|
28
23
|
set eventPrefix(eventPrefix: NgtCanvasInputs['eventPrefix']);
|
|
@@ -32,15 +27,11 @@ export declare class NgtCanvas extends NgtRxStore<NgtCanvasInputs> implements On
|
|
|
32
27
|
pointerMissed: EventEmitter<MouseEvent>;
|
|
33
28
|
glCanvas: ElementRef<HTMLCanvasElement>;
|
|
34
29
|
glAnchor: ViewContainerRef;
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
constructor();
|
|
31
|
+
get hbPointerEvents(): "none" | "auto";
|
|
37
32
|
ngOnChanges(changes: SimpleChanges): void;
|
|
38
33
|
ngOnInit(): void;
|
|
39
|
-
onResize({ width, height }: NgxResizeResult): void;
|
|
40
|
-
private storeReady;
|
|
41
|
-
ngOnDestroy(): void;
|
|
42
|
-
private overrideDetectChanges;
|
|
43
|
-
private setSceneGraphInputs;
|
|
34
|
+
onResize({ width, height, top, left }: NgxResizeResult): void;
|
|
44
35
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtCanvas, never>;
|
|
45
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgtCanvas, "ngt-canvas", never, { "sceneGraph": { "alias": "sceneGraph"; "required":
|
|
36
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtCanvas, "ngt-canvas", never, { "sceneGraph": { "alias": "sceneGraph"; "required": true; }; "sceneGraphInputs": { "alias": "sceneGraphInputs"; "required": false; }; "compoundPrefixes": { "alias": "compoundPrefixes"; "required": false; }; "linear": { "alias": "linear"; "required": false; }; "legacy": { "alias": "legacy"; "required": false; }; "flat": { "alias": "flat"; "required": false; }; "orthographic": { "alias": "orthographic"; "required": false; }; "frameloop": { "alias": "frameloop"; "required": false; }; "dpr": { "alias": "dpr"; "required": false; }; "raycaster": { "alias": "raycaster"; "required": false; }; "shadows": { "alias": "shadows"; "required": false; }; "camera": { "alias": "camera"; "required": false; }; "scene": { "alias": "scene"; "required": false; }; "gl": { "alias": "gl"; "required": false; }; "eventSource": { "alias": "eventSource"; "required": false; }; "eventPrefix": { "alias": "eventPrefix"; "required": false; }; "lookAt": { "alias": "lookAt"; "required": false; }; "performance": { "alias": "performance"; "required": false; }; }, { "created": "created"; "pointerMissed": "pointerMissed"; }, never, never, true, never>;
|
|
46
37
|
}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
1
2
|
import { NgtBeforeRenderRecord } from '../types';
|
|
2
|
-
export declare function injectBeforeRender(cb: NgtBeforeRenderRecord['callback'], priority
|
|
3
|
+
export declare function injectBeforeRender(cb: NgtBeforeRenderRecord['callback'], { priority, injector, }?: {
|
|
4
|
+
priority?: number;
|
|
5
|
+
injector?: Injector | null;
|
|
6
|
+
}): () => void;
|
package/lib/di/ref.d.ts
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export type NgtInjectedRef<T> = ElementRef<T> & {
|
|
6
|
-
subscribe: Subscribe<T>;
|
|
7
|
-
$: Observable<T>;
|
|
8
|
-
children$: (type?: 'objects' | 'nonObjects' | 'both') => Observable<NgtInstanceNode[]>;
|
|
9
|
-
useCDR: (cdr: ChangeDetectorRef) => void;
|
|
1
|
+
import { ElementRef, Injector, Signal } from '@angular/core';
|
|
2
|
+
import { NgtInstanceNode } from '../types';
|
|
3
|
+
export type NgtInjectedRef<TElement> = ElementRef<TElement> & {
|
|
4
|
+
children: (type?: 'objects' | 'nonObjects' | 'both') => Signal<NgtInstanceNode[]>;
|
|
10
5
|
};
|
|
11
|
-
export declare function injectNgtRef<
|
|
12
|
-
export {};
|
|
6
|
+
export declare function injectNgtRef<TElement>(initial?: ElementRef<TElement> | TElement, injector?: Injector | null): NgtInjectedRef<TElement>;
|
package/lib/directives/args.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { NgtCommonDirective } from './common';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class NgtArgs extends NgtCommonDirective {
|
|
4
|
-
private
|
|
5
|
-
set args(args:
|
|
6
|
-
get args():
|
|
3
|
+
export declare class NgtArgs<TArgs extends any[] = any[]> extends NgtCommonDirective {
|
|
4
|
+
#private;
|
|
5
|
+
set args(args: TArgs | null);
|
|
6
|
+
get args(): TArgs | null;
|
|
7
7
|
validate(): boolean;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgtArgs
|
|
9
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtArgs
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtArgs<any>, never>;
|
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtArgs<any>, "[args]", never, { "args": { "alias": "args"; "required": false; }; }, {}, never, never, true, never>;
|
|
10
10
|
}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
export declare abstract class NgtCommonDirective {
|
|
4
|
-
|
|
5
|
-
protected readonly template: TemplateRef<any>;
|
|
3
|
+
#private;
|
|
6
4
|
protected injected: boolean;
|
|
7
5
|
protected shouldCreateView: boolean;
|
|
8
|
-
private view?;
|
|
9
6
|
constructor();
|
|
10
7
|
abstract validate(): boolean;
|
|
11
8
|
protected createView(): void;
|
|
@@ -2,7 +2,7 @@ import { NgtInjectedRef } from '../di/ref';
|
|
|
2
2
|
import { NgtCommonDirective } from './common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class NgtParent extends NgtCommonDirective {
|
|
5
|
-
private
|
|
5
|
+
#private;
|
|
6
6
|
set parent(parent: string | THREE.Object3D | NgtInjectedRef<THREE.Object3D>);
|
|
7
7
|
get parent(): string | THREE.Object3D | NgtInjectedRef<THREE.Object3D>;
|
|
8
8
|
validate(): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NgtSignalStore } from '../stores/signal.store';
|
|
2
2
|
import type { NgtEventManager, NgtState } from '../types';
|
|
3
3
|
export declare const supportedEvents: readonly ["click", "contextmenu", "dblclick", "pointerup", "pointerdown", "pointerover", "pointerout", "pointerenter", "pointerleave", "pointermove", "pointermissed", "pointercancel", "wheel"];
|
|
4
|
-
export declare function createPointerEvents(store:
|
|
4
|
+
export declare function createPointerEvents(store: NgtSignalStore<NgtState>): NgtEventManager<HTMLElement>;
|
package/lib/events.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
-
import type {
|
|
2
|
+
import type { NgtSignalStore } from './stores/signal.store';
|
|
3
3
|
import type { NgtDomEvent, NgtState } from './types';
|
|
4
|
-
export declare function removeInteractivity(store:
|
|
5
|
-
export declare function createEvents(store:
|
|
4
|
+
export declare function removeInteractivity(store: NgtSignalStore<NgtState>, object: THREE.Object3D): void;
|
|
5
|
+
export declare function createEvents(store: NgtSignalStore<NgtState>): {
|
|
6
6
|
handlePointer: (name: string) => (event: NgtDomEvent) => void;
|
|
7
7
|
};
|
package/lib/loader.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { Injector, type Signal } from '@angular/core';
|
|
2
2
|
import type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
|
|
3
3
|
import type { NgtBranchingReturn, NgtLoaderExtensions, NgtLoaderProto, NgtLoaderReturnType, NgtObjectMap } from './types';
|
|
4
4
|
export type NgtLoaderResults<TInput extends string | string[] | Record<string, string>, TReturn> = TInput extends string[] ? TReturn[] : TInput extends object ? {
|
|
5
5
|
[key in keyof TInput]: TReturn;
|
|
6
6
|
} : TReturn;
|
|
7
|
-
export declare function injectNgtLoader<TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>, TReturn = NgtLoaderReturnType<TData, TLoaderConstructor>>(loaderConstructorFactory: (inputs:
|
|
7
|
+
export declare function injectNgtLoader<TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>, TReturn = NgtLoaderReturnType<TData, TLoaderConstructor>>(loaderConstructorFactory: (inputs: string[]) => TLoaderConstructor, inputs: () => TUrl, { extensions, onProgress, injector, }?: {
|
|
8
|
+
extensions?: NgtLoaderExtensions<TLoaderConstructor>;
|
|
9
|
+
onProgress?: (event: ProgressEvent) => void;
|
|
10
|
+
injector?: Injector | null;
|
|
11
|
+
}): Signal<NgtLoaderResults<TUrl, NgtBranchingReturn<TReturn, GLTF, GLTF & NgtObjectMap>>>;
|
package/lib/loop.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { NgtSignalStore } from './stores/signal.store';
|
|
2
2
|
import type { NgtState } from './types';
|
|
3
3
|
export type NgtGlobalRenderCallback = (timestamp: number) => void;
|
|
4
4
|
/**
|
|
@@ -18,16 +18,16 @@ export declare const addAfterEffect: (callback: NgtGlobalRenderCallback) => () =
|
|
|
18
18
|
export declare const addTail: (callback: NgtGlobalRenderCallback) => () => void;
|
|
19
19
|
export type GlobalEffectType = 'before' | 'after' | 'tail';
|
|
20
20
|
export declare function flushGlobalEffects(type: GlobalEffectType, timestamp: number): void;
|
|
21
|
-
export declare function createLoop<TCanvas>(roots: Map<TCanvas,
|
|
21
|
+
export declare function createLoop<TCanvas>(roots: Map<TCanvas, NgtSignalStore<NgtState>>): {
|
|
22
22
|
loop: (timestamp: number) => void;
|
|
23
23
|
/**
|
|
24
24
|
* Invalidates the view, requesting a frame to be rendered. Will globally invalidate unless passed a root's state.
|
|
25
25
|
* @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#invalidate
|
|
26
26
|
*/
|
|
27
|
-
invalidate: (store?:
|
|
27
|
+
invalidate: (store?: NgtSignalStore<NgtState>, frames?: number) => void;
|
|
28
28
|
/**
|
|
29
29
|
* Advances the frameloop and runs render effects, useful for when manually rendering via `frameloop="never"`.
|
|
30
30
|
* @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#advance
|
|
31
31
|
*/
|
|
32
|
-
advance: (timestamp: number, runGlobalEffects?: boolean, store?:
|
|
32
|
+
advance: (timestamp: number, runGlobalEffects?: boolean, store?: NgtSignalStore<NgtState>, frame?: XRFrame) => void;
|
|
33
33
|
};
|
package/lib/portal.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventEmitter, TemplateRef, ViewContainerRef, type ElementRef, type OnInit } from '@angular/core';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
|
-
import {
|
|
4
|
-
import { NgtEventManager, NgtRenderState, NgtSize, NgtState } from './types';
|
|
3
|
+
import { NgtSignalStore } from './stores/signal.store';
|
|
4
|
+
import type { NgtEventManager, NgtRenderState, NgtSize, NgtState } from './types';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
declare const privateKeys: readonly ["get", "set", "select", "setSize", "setDpr", "setFrameloop", "events", "invalidate", "advance", "size", "viewport"
|
|
6
|
+
declare const privateKeys: readonly ["get", "set", "select", "setSize", "setDpr", "setFrameloop", "events", "invalidate", "advance", "size", "viewport"];
|
|
7
7
|
type PrivateKeys = (typeof privateKeys)[number];
|
|
8
8
|
export interface NgtPortalInputs {
|
|
9
9
|
container: ElementRef<THREE.Object3D> | THREE.Object3D;
|
|
@@ -13,24 +13,24 @@ export interface NgtPortalInputs {
|
|
|
13
13
|
size: NgtSize;
|
|
14
14
|
}>;
|
|
15
15
|
}
|
|
16
|
-
export declare class NgtPortalBeforeRender implements OnInit
|
|
17
|
-
private
|
|
16
|
+
export declare class NgtPortalBeforeRender implements OnInit {
|
|
17
|
+
#private;
|
|
18
18
|
renderPriority: number;
|
|
19
19
|
parentScene: THREE.Scene;
|
|
20
20
|
parentCamera: THREE.Camera;
|
|
21
21
|
beforeRender: EventEmitter<NgtRenderState>;
|
|
22
|
-
|
|
22
|
+
constructor();
|
|
23
23
|
ngOnInit(): void;
|
|
24
|
-
ngOnDestroy(): void;
|
|
25
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtPortalBeforeRender, never>;
|
|
26
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtPortalBeforeRender, "[ngtPortalBeforeRender]", never, { "renderPriority": { "alias": "renderPriority"; "required": false; }; "parentScene": { "alias": "parentScene"; "required":
|
|
25
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtPortalBeforeRender, "[ngtPortalBeforeRender]", never, { "renderPriority": { "alias": "renderPriority"; "required": false; }; "parentScene": { "alias": "parentScene"; "required": true; }; "parentCamera": { "alias": "parentCamera"; "required": true; }; }, { "beforeRender": "beforeRender"; }, never, never, true, never>;
|
|
27
26
|
}
|
|
28
27
|
export declare class NgtPortalContent {
|
|
29
28
|
constructor(vcr: ViewContainerRef, parentVcr: ViewContainerRef);
|
|
30
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtPortalContent, [null, { skipSelf: true; }]>;
|
|
31
30
|
static ɵdir: i0.ɵɵDirectiveDeclaration<NgtPortalContent, "ng-template[ngtPortalContent]", never, {}, {}, never, never, true, never>;
|
|
32
31
|
}
|
|
33
|
-
export declare class NgtPortal extends
|
|
32
|
+
export declare class NgtPortal extends NgtSignalStore<NgtPortalInputs> implements OnInit {
|
|
33
|
+
#private;
|
|
34
34
|
set container(container: NgtPortalInputs['container']);
|
|
35
35
|
set state(state: NgtPortalInputs['state']);
|
|
36
36
|
autoRender: boolean;
|
|
@@ -41,19 +41,12 @@ export declare class NgtPortal extends NgtRxStore<NgtPortalInputs> implements On
|
|
|
41
41
|
}>;
|
|
42
42
|
readonly portalContentTemplate: TemplateRef<unknown>;
|
|
43
43
|
readonly portalContentAnchor: ViewContainerRef;
|
|
44
|
-
private readonly parentStore;
|
|
45
44
|
readonly parentScene: THREE.Scene;
|
|
46
45
|
readonly parentCamera: import("./types").NgtCameraManual;
|
|
47
|
-
private readonly portalStore;
|
|
48
|
-
private readonly raycaster;
|
|
49
|
-
private readonly pointer;
|
|
50
46
|
portalContentRendered: boolean;
|
|
51
|
-
|
|
52
|
-
initialize(): void;
|
|
47
|
+
constructor();
|
|
53
48
|
ngOnInit(): void;
|
|
54
49
|
onBeforeRender(portal: NgtRenderState): void;
|
|
55
|
-
ngOnDestroy(): void;
|
|
56
|
-
private inject;
|
|
57
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtPortal, never>;
|
|
58
51
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgtPortal, "ngt-portal", never, { "container": { "alias": "container"; "required": false; }; "state": { "alias": "state"; "required": false; }; "autoRender": { "alias": "autoRender"; "required": false; }; "autoRenderPriority": { "alias": "autoRenderPriority"; "required": false; }; }, { "beforeRender": "beforeRender"; }, ["portalContentTemplate"], never, true, never>;
|
|
59
52
|
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { Renderer2, RendererFactory2, RendererType2 } from '@angular/core';
|
|
2
|
-
import { NgtAnyRecord } from '../types';
|
|
3
|
-
import { NgtRendererNode, NgtRendererState
|
|
1
|
+
import { ChangeDetectorRef, NgZone, Renderer2, RendererFactory2, type RendererType2 } from '@angular/core';
|
|
2
|
+
import type { NgtAnyRecord } from '../types';
|
|
3
|
+
import { NgtRendererStore, type NgtRendererNode, type NgtRendererState } from './store';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class NgtRendererFactory implements RendererFactory2 {
|
|
6
|
-
private
|
|
7
|
-
private readonly catalogue;
|
|
8
|
-
private readonly rendererMap;
|
|
9
|
-
private readonly routedSet;
|
|
10
|
-
private readonly rendererStore;
|
|
6
|
+
#private;
|
|
11
7
|
createRenderer(hostElement: any, type: RendererType2 | null): Renderer2;
|
|
12
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtRendererFactory, never>;
|
|
13
9
|
static ɵprov: i0.ɵɵInjectableDeclaration<NgtRendererFactory>;
|
|
@@ -19,8 +15,10 @@ export declare class NgtRenderer implements Renderer2 {
|
|
|
19
15
|
private readonly delegate;
|
|
20
16
|
private readonly store;
|
|
21
17
|
private readonly catalogue;
|
|
18
|
+
private readonly zone;
|
|
19
|
+
private readonly cdr;
|
|
22
20
|
private root;
|
|
23
|
-
constructor(delegate: Renderer2, store: NgtRendererStore, catalogue: Record<string, new (...args: any[]) => any>, root?: boolean);
|
|
21
|
+
constructor(delegate: Renderer2, store: NgtRendererStore, catalogue: Record<string, new (...args: any[]) => any>, zone: NgZone, cdr: ChangeDetectorRef, root?: boolean);
|
|
24
22
|
createElement(name: string, namespace?: string | null | undefined): NgtAnyRecord & {
|
|
25
23
|
__ngt_renderer__: NgtRendererState;
|
|
26
24
|
};
|
package/lib/renderer/store.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NgtInjectedRef } from '../di/ref';
|
|
1
|
+
import { type Injector } from '@angular/core';
|
|
2
|
+
import type { NgtInjectedRef } from '../di/ref';
|
|
3
3
|
import { NgtStore } from '../stores/store';
|
|
4
4
|
import type { NgtAnyRecord } from '../types';
|
|
5
5
|
import { NgtRendererClassId } from './enums';
|
|
6
6
|
export type NgtRendererRootState = {
|
|
7
7
|
store: NgtStore;
|
|
8
|
-
cdr: ChangeDetectorRef;
|
|
9
8
|
compoundPrefixes: string[];
|
|
10
9
|
document: Document;
|
|
11
10
|
portals: Array<NgtRendererNode>;
|
|
@@ -32,8 +31,8 @@ export type NgtRendererNode = {
|
|
|
32
31
|
__ngt_renderer__: NgtRendererState;
|
|
33
32
|
};
|
|
34
33
|
export declare class NgtRendererStore {
|
|
34
|
+
#private;
|
|
35
35
|
private readonly root;
|
|
36
|
-
private readonly comments;
|
|
37
36
|
constructor(root: NgtRendererRootState);
|
|
38
37
|
createNode(type: NgtRendererState[NgtRendererClassId.type], node: NgtAnyRecord): NgtAnyRecord & {
|
|
39
38
|
__ngt_renderer__: NgtRendererState;
|
|
@@ -50,7 +49,6 @@ export declare class NgtRendererStore {
|
|
|
50
49
|
isCompound(name: string): boolean;
|
|
51
50
|
isDOM(node: NgtAnyRecord): boolean;
|
|
52
51
|
get rootScene(): import("three").Scene;
|
|
53
|
-
get rootCdr(): ChangeDetectorRef;
|
|
54
52
|
get portals(): NgtRendererNode[];
|
|
55
53
|
getClosestParentWithInstance(node: NgtRendererNode): NgtRendererNode | null;
|
|
56
54
|
getClosestParentWithCompound(node: NgtRendererNode): NgtRendererNode | null | undefined;
|
package/lib/renderer/utils.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, NgZone } from '@angular/core';
|
|
2
|
+
import { supportedEvents } from '../dom/events';
|
|
2
3
|
import type { NgtEventHandlers, NgtInstanceNode } from '../types';
|
|
3
|
-
|
|
4
|
+
export declare const ROUTED_SCENE = "__ngt_renderer_is_routed_scene__";
|
|
5
|
+
export declare const SPECIAL_INTERNAL_ADD_COMMENT = "__ngt_renderer_add_comment__";
|
|
4
6
|
export declare const SPECIAL_DOM_TAG: {
|
|
5
7
|
readonly NGT_PORTAL: "ngt-portal";
|
|
6
8
|
readonly NGT_PRIMITIVE: "ngt-primitive";
|
|
@@ -15,6 +17,6 @@ export declare const SPECIAL_PROPERTIES: {
|
|
|
15
17
|
};
|
|
16
18
|
export declare function attachThreeChild(parent: NgtInstanceNode, child: NgtInstanceNode): void;
|
|
17
19
|
export declare function removeThreeChild(parent: NgtInstanceNode, child: NgtInstanceNode, dispose?: boolean): void;
|
|
18
|
-
export declare function processThreeEvent(instance: NgtInstanceNode, priority: number, eventName: string, callback: (event: any) => void,
|
|
19
|
-
export declare function eventToHandler(callback: (event: any) => void
|
|
20
|
+
export declare function processThreeEvent(instance: NgtInstanceNode, priority: number, eventName: string, callback: (event: any) => void, zone: NgZone, cdr: ChangeDetectorRef): () => void;
|
|
21
|
+
export declare function eventToHandler(callback: (event: any) => void): (event: Parameters<Exclude<NgtEventHandlers[(typeof supportedEvents)[number]], undefined>>[0]) => void;
|
|
20
22
|
export declare function kebabToPascal(str: string): string;
|
package/lib/routed-scene.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { ChangeDetectorRef } from '@angular/core';
|
|
1
2
|
import { Router } from '@angular/router';
|
|
3
|
+
import { ROUTED_SCENE } from './renderer/utils';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
export declare class NgtRoutedScene {
|
|
4
|
-
static
|
|
5
|
-
constructor(router: Router);
|
|
6
|
+
static [ROUTED_SCENE]: boolean;
|
|
7
|
+
constructor(router: Router, cdr: ChangeDetectorRef);
|
|
6
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtRoutedScene, never>;
|
|
7
9
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgtRoutedScene, "ngt-routed-scene", never, {}, {}, never, never, true, never>;
|
|
8
10
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type CreateComputedOptions, type Signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NgtSignalStore<TState extends object> {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(initialState?: Partial<TState>);
|
|
6
|
+
select<TKey1 extends keyof TState, TKey2 extends keyof TState[TKey1], TKey3 extends keyof TState[TKey1][TKey2], TKey4 extends keyof TState[TKey1][TKey2][TKey3]>(key1: TKey1, key2: TKey2, key3: TKey3, key4: TKey4, options?: CreateComputedOptions<TState[TKey1][TKey2][TKey3][TKey4]>): Signal<TState[TKey1][TKey2][TKey3][TKey4]>;
|
|
7
|
+
select<TKey1 extends keyof TState, TKey2 extends keyof TState[TKey1], TKey3 extends keyof TState[TKey1][TKey2]>(key1: TKey1, key2: TKey2, key3: TKey3, options?: CreateComputedOptions<TState[TKey1][TKey2][TKey3]>): Signal<TState[TKey1][TKey2][TKey3]>;
|
|
8
|
+
select<TKey1 extends keyof TState, TKey2 extends keyof TState[TKey1]>(key1: TKey1, key2: TKey2, options?: CreateComputedOptions<TState[TKey1][TKey2]>): Signal<TState[TKey1][TKey2]>;
|
|
9
|
+
select<TKey extends keyof TState>(key: TKey, options?: CreateComputedOptions<TState[TKey]>): Signal<TState[TKey]>;
|
|
10
|
+
select(options?: CreateComputedOptions<TState>): Signal<TState>;
|
|
11
|
+
get<TKey1 extends keyof TState, TKey2 extends keyof TState[TKey1], TKey3 extends keyof TState[TKey1][TKey2], TKey4 extends keyof TState[TKey1][TKey2][TKey3]>(key1: TKey1, key2: TKey2, key3: TKey3, key4: TKey4): TState[TKey1][TKey2][TKey3][TKey4];
|
|
12
|
+
get<TKey1 extends keyof TState, TKey2 extends keyof TState[TKey1], TKey3 extends keyof TState[TKey1][TKey2]>(key1: TKey1, key2: TKey2, key3: TKey3): TState[TKey1][TKey2][TKey3];
|
|
13
|
+
get<TKey1 extends keyof TState, TKey2 extends keyof TState[TKey1]>(key1: TKey1, key2: TKey2): TState[TKey1][TKey2];
|
|
14
|
+
get<TKey extends keyof TState>(key: TKey): TState[TKey];
|
|
15
|
+
get(): TState;
|
|
16
|
+
set(state: Partial<TState> | ((previous: TState) => Partial<TState>)): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtSignalStore<any>, [{ optional: true; }]>;
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NgtSignalStore<any>>;
|
|
19
|
+
}
|
package/lib/stores/store.d.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import type { NgtCanvasInputs, NgtState } from '../types';
|
|
2
|
-
import {
|
|
2
|
+
import { NgtSignalStore } from './signal.store';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare const rootStateMap: Map<Element,
|
|
5
|
-
export declare class NgtStore extends
|
|
6
|
-
private
|
|
7
|
-
private readonly window;
|
|
4
|
+
export declare const rootStateMap: Map<Element, NgtSignalStore<NgtState>>;
|
|
5
|
+
export declare class NgtStore extends NgtSignalStore<NgtState> {
|
|
6
|
+
#private;
|
|
8
7
|
isInit: boolean;
|
|
9
8
|
init(): void;
|
|
10
9
|
configure(inputs: NgtCanvasInputs, canvasElement: HTMLCanvasElement): void;
|
|
11
10
|
destroy(canvas: HTMLCanvasElement): void;
|
|
12
|
-
private resize;
|
|
13
|
-
private invalidate;
|
|
14
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgtStore, never>;
|
|
15
12
|
static ɵprov: i0.ɵɵInjectableDeclaration<NgtStore>;
|
|
16
13
|
}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/// <reference types="webxr" />
|
|
2
|
-
import type { ElementRef, EventEmitter } from '@angular/core';
|
|
3
|
-
import type { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import type { ElementRef, EventEmitter, WritableSignal } from '@angular/core';
|
|
4
3
|
import * as THREE from 'three';
|
|
5
|
-
import type {
|
|
4
|
+
import type { NgtSignalStore } from './stores/signal.store';
|
|
6
5
|
export type NgtAnyRecord = Record<string, any>;
|
|
7
6
|
export type NgtProperties<T> = Pick<T, {
|
|
8
7
|
[K in keyof T]: T[K] extends (_: any) => any ? never : K;
|
|
@@ -53,11 +52,11 @@ export type NgtCamera = THREE.OrthographicCamera | THREE.PerspectiveCamera;
|
|
|
53
52
|
export type NgtCameraManual = NgtCamera & {
|
|
54
53
|
manual?: boolean;
|
|
55
54
|
};
|
|
56
|
-
export
|
|
55
|
+
export type NgtIntersection = THREE.Intersection & {
|
|
57
56
|
/** The event source (the object which registered the handler) */
|
|
58
57
|
eventObject: THREE.Object3D;
|
|
59
|
-
}
|
|
60
|
-
export
|
|
58
|
+
};
|
|
59
|
+
export type NgtIntersectionEvent<TSourceEvent> = NgtIntersection & {
|
|
61
60
|
/** The event source (the object which registered the handler) */
|
|
62
61
|
eventObject: THREE.Object3D;
|
|
63
62
|
/** An array of intersections */
|
|
@@ -78,7 +77,7 @@ export interface NgtIntersectionEvent<TSourceEvent> extends NgtIntersection {
|
|
|
78
77
|
nativeEvent: TSourceEvent;
|
|
79
78
|
/** If the event was stopped by calling stopPropagation */
|
|
80
79
|
stopped: boolean;
|
|
81
|
-
}
|
|
80
|
+
};
|
|
82
81
|
export type NgtThreeEvent<TEvent> = NgtIntersectionEvent<TEvent> & NgtProperties<TEvent>;
|
|
83
82
|
export type NgtDomEvent = PointerEvent | MouseEvent | WheelEvent;
|
|
84
83
|
export type NgtEventHandlers = {
|
|
@@ -99,8 +98,8 @@ export type NgtEventHandlers = {
|
|
|
99
98
|
export type NgtEvents = {
|
|
100
99
|
[TEvent in keyof NgtEventHandlers]-?: EventListener;
|
|
101
100
|
};
|
|
102
|
-
export type NgtFilterFunction = (items: THREE.Intersection[], store:
|
|
103
|
-
export type NgtComputeFunction = (event: NgtDomEvent, root:
|
|
101
|
+
export type NgtFilterFunction = (items: THREE.Intersection[], store: NgtSignalStore<NgtState>) => THREE.Intersection[];
|
|
102
|
+
export type NgtComputeFunction = (event: NgtDomEvent, root: NgtSignalStore<NgtState>, previous?: NgtSignalStore<NgtState>) => void;
|
|
104
103
|
export type NgtEventManager<TTarget> = {
|
|
105
104
|
/** Determines if the event layer is active */
|
|
106
105
|
enabled: boolean;
|
|
@@ -137,25 +136,25 @@ export type NgtBeforeRenderEvent<TObject extends NgtInstanceNode = NgtInstanceNo
|
|
|
137
136
|
};
|
|
138
137
|
export type NgtBeforeRenderRecord = {
|
|
139
138
|
callback: (state: NgtRenderState) => void;
|
|
140
|
-
store:
|
|
139
|
+
store: NgtSignalStore<NgtState>;
|
|
141
140
|
priority?: number;
|
|
142
141
|
};
|
|
143
142
|
export type NgtInternalState = {
|
|
144
143
|
active: boolean;
|
|
145
144
|
priority: number;
|
|
146
145
|
frames: number;
|
|
147
|
-
lastEvent: NgtDomEvent | null
|
|
146
|
+
lastEvent: ElementRef<NgtDomEvent | null>;
|
|
148
147
|
interaction: THREE.Object3D[];
|
|
149
148
|
hovered: Map<string, NgtThreeEvent<NgtDomEvent>>;
|
|
150
149
|
subscribers: NgtBeforeRenderRecord[];
|
|
151
150
|
capturedMap: Map<number, Map<THREE.Object3D, NgtPointerCaptureTarget>>;
|
|
152
151
|
initialClick: [x: number, y: number];
|
|
153
152
|
initialHits: THREE.Object3D[];
|
|
154
|
-
subscribe: (callback: NgtBeforeRenderRecord['callback'], priority?: number, store?:
|
|
153
|
+
subscribe: (callback: NgtBeforeRenderRecord['callback'], priority?: number, store?: NgtSignalStore<NgtState>) => () => void;
|
|
155
154
|
};
|
|
156
155
|
export type NgtState = {
|
|
157
|
-
get:
|
|
158
|
-
set:
|
|
156
|
+
get: NgtSignalStore<NgtState>['get'];
|
|
157
|
+
set: NgtSignalStore<NgtState>['set'];
|
|
159
158
|
/** when all building blocks are initialized */
|
|
160
159
|
ready: boolean;
|
|
161
160
|
/** The instance of the renderer */
|
|
@@ -211,25 +210,23 @@ export type NgtState = {
|
|
|
211
210
|
/** When the canvas was clicked but nothing was hit */
|
|
212
211
|
onPointerMissed?: (event: MouseEvent) => void;
|
|
213
212
|
/** If this state model is layerd (via createPortal) then this contains the previous layer */
|
|
214
|
-
previousStore?:
|
|
213
|
+
previousStore?: NgtSignalStore<NgtState>;
|
|
215
214
|
/** Internals */
|
|
216
215
|
internal: NgtInternalState;
|
|
217
|
-
addInteraction: (instance: THREE.Object3D) => void;
|
|
218
|
-
removeInteraction: (uuid: string) => void;
|
|
219
216
|
};
|
|
220
|
-
export type NgtAttachFunction<TChild = any, TParent = any> = (parent: TParent, child: TChild, store:
|
|
217
|
+
export type NgtAttachFunction<TChild = any, TParent = any> = (parent: TParent, child: TChild, store: NgtSignalStore<NgtState>) => void | (() => void);
|
|
221
218
|
export type NgtAfterAttach<TParent extends NgtInstanceNode = NgtInstanceNode, TChild extends NgtInstanceNode = NgtInstanceNode> = {
|
|
222
219
|
parent: TParent;
|
|
223
220
|
node: TChild;
|
|
224
221
|
};
|
|
225
222
|
export type NgtInstanceLocalState = {
|
|
226
223
|
/** the state getter of the canvas that the instance is being rendered to */
|
|
227
|
-
store:
|
|
228
|
-
nonObjects:
|
|
229
|
-
objects:
|
|
224
|
+
store: NgtSignalStore<NgtState>;
|
|
225
|
+
nonObjects: WritableSignal<NgtInstanceNode[]>;
|
|
226
|
+
objects: WritableSignal<NgtInstanceNode[]>;
|
|
230
227
|
add: (instance: NgtInstanceNode, type: 'objects' | 'nonObjects') => void;
|
|
231
228
|
remove: (instance: NgtInstanceNode, type: 'objects' | 'nonObjects') => void;
|
|
232
|
-
parent: NgtInstanceNode | null
|
|
229
|
+
parent: WritableSignal<NgtInstanceNode | null>;
|
|
233
230
|
primitive?: boolean;
|
|
234
231
|
eventCount: number;
|
|
235
232
|
handlers: Partial<NgtEventHandlers>;
|
|
@@ -248,7 +245,7 @@ export type NgtGLRenderer = {
|
|
|
248
245
|
render: (scene: THREE.Scene, camera: THREE.Camera) => void;
|
|
249
246
|
};
|
|
250
247
|
export type NgtGLOptions = NgtGLRenderer | ((canvas: HTMLCanvasElement) => NgtGLRenderer) | Partial<NgtProperties<THREE.WebGLRenderer> | THREE.WebGLRendererParameters> | undefined;
|
|
251
|
-
export
|
|
248
|
+
export type NgtObjectMap = {
|
|
252
249
|
nodes: {
|
|
253
250
|
[name: string]: THREE.Object3D;
|
|
254
251
|
};
|
|
@@ -256,7 +253,7 @@ export interface NgtObjectMap {
|
|
|
256
253
|
[name: string]: THREE.Material;
|
|
257
254
|
};
|
|
258
255
|
[key: string]: any;
|
|
259
|
-
}
|
|
256
|
+
};
|
|
260
257
|
export type NgtCanvasInputs = {
|
|
261
258
|
/** A threejs renderer instance or props that go into the default renderer */
|
|
262
259
|
gl?: NgtGLOptions;
|
|
@@ -300,7 +297,7 @@ export type NgtCanvasInputs = {
|
|
|
300
297
|
manual?: boolean;
|
|
301
298
|
};
|
|
302
299
|
/** An R3F event manager to manage elements' pointer events */
|
|
303
|
-
events?: (store:
|
|
300
|
+
events?: (store: NgtSignalStore<NgtState>) => NgtEventManager<HTMLElement>;
|
|
304
301
|
/** The target where events are being subscribed to, default: the div that wraps canvas */
|
|
305
302
|
eventSource?: HTMLElement | ElementRef<HTMLElement>;
|
|
306
303
|
/** The event prefix that is cast into canvas pointer x/y events, default: "offset" */
|
package/lib/utils/attach.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NgtSignalStore } from '../stores/signal.store';
|
|
2
2
|
import type { NgtAnyRecord, NgtAttachFunction, NgtState } from '../types';
|
|
3
3
|
export declare function attach(object: NgtAnyRecord, value: unknown, paths?: string[]): void;
|
|
4
4
|
export declare function detach(parent: NgtAnyRecord, child: NgtAnyRecord, attachProp: string[] | NgtAttachFunction): void;
|
|
5
5
|
export declare function createAttachFunction<TParent = any, TChild = any>(cb: (params: {
|
|
6
6
|
parent: TParent;
|
|
7
7
|
child: TChild;
|
|
8
|
-
store:
|
|
8
|
+
store: NgtSignalStore<NgtState>;
|
|
9
9
|
}) => (() => void) | void): NgtAttachFunction<TChild, TParent>;
|
package/lib/utils/instance.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { NgtAnyRecord, NgtInstanceLocalState, NgtInstanceNode } from '../types';
|
|
2
2
|
export declare function getLocalState<TInstance extends object = NgtAnyRecord>(obj: TInstance | undefined): NgtInstanceLocalState;
|
|
3
3
|
export declare function invalidateInstance<TInstance extends object>(instance: TInstance): void;
|
|
4
|
-
export declare function prepare<TInstance extends object = NgtAnyRecord>(object: TInstance
|
|
4
|
+
export declare function prepare<TInstance extends object = NgtAnyRecord>(object: TInstance, localState?: Partial<NgtInstanceLocalState>): NgtInstanceNode<TInstance>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "angular-three",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-beta.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -21,15 +21,14 @@
|
|
|
21
21
|
],
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"@angular/common": "^
|
|
25
|
-
"@angular/core": "^
|
|
24
|
+
"@angular/common": "^16.0.0",
|
|
25
|
+
"@angular/core": "^16.0.0",
|
|
26
26
|
"three": "^0.148.0 || ^0.149.0 || ^0.150.0 || ^0.151.0 || ^0.152.0",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
27
|
+
"@angular/router": "16.0.0",
|
|
28
|
+
"rxjs": "7.8.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"ngx-resize": "^
|
|
32
|
-
"@rx-angular/state": "^14.0.0",
|
|
31
|
+
"ngx-resize": "^2.0.0",
|
|
33
32
|
"tslib": "^2.3.0",
|
|
34
33
|
"@nx/devkit": "^16.0.0",
|
|
35
34
|
"nx": "^16.0.0"
|
package/plugin/package.json
CHANGED