angular-three 2.0.0-beta.4 → 2.0.0-beta.41

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.
Files changed (153) hide show
  1. package/README.md +4 -147
  2. package/esm2022/angular-three.mjs +1 -1
  3. package/esm2022/index.mjs +10 -11
  4. package/esm2022/lib/before-render.mjs +13 -0
  5. package/esm2022/lib/canvas.mjs +137 -161
  6. package/esm2022/lib/directives/args.mjs +13 -11
  7. package/esm2022/lib/directives/common.mjs +28 -27
  8. package/esm2022/lib/directives/key.mjs +29 -0
  9. package/esm2022/lib/directives/parent.mjs +13 -11
  10. package/esm2022/lib/dom/events.mjs +6 -1
  11. package/esm2022/lib/events.mjs +77 -60
  12. package/esm2022/lib/instance.mjs +65 -0
  13. package/esm2022/lib/loader.mjs +35 -41
  14. package/esm2022/lib/loop.mjs +6 -3
  15. package/esm2022/lib/portal.mjs +103 -112
  16. package/esm2022/lib/ref.mjs +48 -0
  17. package/esm2022/lib/renderer/catalogue.mjs +7 -0
  18. package/esm2022/lib/renderer/constants.mjs +21 -0
  19. package/esm2022/lib/renderer/index.mjs +419 -0
  20. package/esm2022/lib/renderer/store.mjs +148 -112
  21. package/esm2022/lib/renderer/utils.mjs +63 -48
  22. package/esm2022/lib/roots.mjs +249 -0
  23. package/esm2022/lib/routed-scene.mjs +11 -8
  24. package/esm2022/lib/store.mjs +207 -0
  25. package/esm2022/lib/three-types.mjs +2 -2
  26. package/esm2022/lib/types.mjs +1 -1
  27. package/esm2022/lib/utils/apply-props.mjs +23 -11
  28. package/esm2022/lib/utils/attach.mjs +2 -2
  29. package/esm2022/lib/utils/is.mjs +1 -1
  30. package/esm2022/lib/utils/make.mjs +1 -1
  31. package/esm2022/lib/utils/safe-detect-changes.mjs +15 -13
  32. package/esm2022/lib/utils/signal-store.mjs +99 -0
  33. package/esm2022/lib/utils/update.mjs +1 -1
  34. package/fesm2022/angular-three.mjs +2014 -1882
  35. package/fesm2022/angular-three.mjs.map +1 -1
  36. package/index.d.ts +9 -10
  37. package/lib/{di/before-render.d.ts → before-render.d.ts} +1 -1
  38. package/lib/canvas.d.ts +82 -12
  39. package/lib/directives/args.d.ts +2 -2
  40. package/lib/directives/common.d.ts +5 -1
  41. package/lib/directives/key.d.ts +10 -0
  42. package/lib/directives/parent.d.ts +5 -5
  43. package/lib/dom/events.d.ts +3 -2
  44. package/lib/events.d.ts +78 -2
  45. package/lib/instance.d.ts +36 -0
  46. package/lib/loader.d.ts +21 -3
  47. package/lib/loop.d.ts +68 -6
  48. package/lib/portal.d.ts +21 -12
  49. package/lib/{di/ref.d.ts → ref.d.ts} +3 -2
  50. package/lib/renderer/catalogue.d.ts +13 -0
  51. package/lib/renderer/constants.d.ts +20 -0
  52. package/lib/renderer/index.d.ts +5 -0
  53. package/lib/renderer/store.d.ts +21 -15
  54. package/lib/renderer/utils.d.ts +29 -19
  55. package/lib/roots.d.ts +11 -0
  56. package/lib/routed-scene.d.ts +1 -1
  57. package/lib/store.d.ts +147 -0
  58. package/lib/three-types.d.ts +5 -5
  59. package/lib/types.d.ts +1 -309
  60. package/lib/utils/apply-props.d.ts +4 -2
  61. package/lib/utils/attach.d.ts +5 -3
  62. package/lib/utils/is.d.ts +5 -4
  63. package/lib/utils/make.d.ts +12 -1
  64. package/lib/utils/safe-detect-changes.d.ts +2 -2
  65. package/lib/utils/signal-store.d.ts +17 -0
  66. package/lib/utils/update.d.ts +1 -1
  67. package/metadata.json +1 -1
  68. package/package.json +24 -5
  69. package/plugin/generators.json +57 -17
  70. package/plugin/migrations.json +27 -0
  71. package/plugin/package.json +22 -4
  72. package/plugin/src/generators/init/compat.d.ts +3 -1
  73. package/plugin/src/generators/init/compat.js +2 -2
  74. package/plugin/src/generators/init/compat.js.map +1 -1
  75. package/plugin/src/generators/init/files/experience/experience.component.html__tmpl__ +4 -0
  76. package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +18 -0
  77. package/plugin/src/generators/init/generator.d.ts +6 -0
  78. package/plugin/src/generators/init/generator.js +160 -0
  79. package/plugin/src/generators/init/generator.js.map +1 -0
  80. package/plugin/src/generators/init/schema.json +15 -4
  81. package/plugin/src/generators/init-cannon/compat.d.ts +2 -0
  82. package/plugin/src/generators/init-cannon/compat.js +6 -0
  83. package/plugin/src/generators/init-cannon/compat.js.map +1 -0
  84. package/plugin/src/generators/init-cannon/generator.d.ts +2 -0
  85. package/plugin/src/generators/init-cannon/generator.js +23 -0
  86. package/plugin/src/generators/init-cannon/generator.js.map +1 -0
  87. package/plugin/src/generators/init-cannon/schema.json +6 -0
  88. package/plugin/src/generators/init-postprocessing/compat.d.ts +2 -0
  89. package/plugin/src/generators/init-postprocessing/compat.js +6 -0
  90. package/plugin/src/generators/init-postprocessing/compat.js.map +1 -0
  91. package/plugin/src/generators/init-postprocessing/generator.d.ts +2 -0
  92. package/plugin/src/generators/init-postprocessing/generator.js +21 -0
  93. package/plugin/src/generators/init-postprocessing/generator.js.map +1 -0
  94. package/plugin/src/generators/init-postprocessing/schema.json +6 -0
  95. package/plugin/src/generators/init-rapier/compat.d.ts +2 -0
  96. package/plugin/src/generators/init-rapier/compat.js +6 -0
  97. package/plugin/src/generators/init-rapier/compat.js.map +1 -0
  98. package/plugin/src/generators/init-rapier/generator.d.ts +2 -0
  99. package/plugin/src/generators/init-rapier/generator.js +22 -0
  100. package/plugin/src/generators/init-rapier/generator.js.map +1 -0
  101. package/plugin/src/generators/init-rapier/schema.json +6 -0
  102. package/plugin/src/generators/init-soba/compat.d.ts +2 -0
  103. package/plugin/src/generators/init-soba/compat.js +6 -0
  104. package/plugin/src/generators/init-soba/compat.js.map +1 -0
  105. package/plugin/src/generators/init-soba/generator.d.ts +2 -0
  106. package/plugin/src/generators/init-soba/generator.js +27 -0
  107. package/plugin/src/generators/init-soba/generator.js.map +1 -0
  108. package/plugin/src/generators/init-soba/schema.json +6 -0
  109. package/plugin/src/generators/utils.d.ts +2 -0
  110. package/plugin/src/generators/utils.js +34 -0
  111. package/plugin/src/generators/utils.js.map +1 -0
  112. package/plugin/src/generators/versions.d.ts +14 -0
  113. package/plugin/src/generators/versions.js +18 -0
  114. package/plugin/src/generators/versions.js.map +1 -0
  115. package/plugin/src/index.d.ts +5 -1
  116. package/plugin/src/index.js +11 -3
  117. package/plugin/src/index.js.map +1 -1
  118. package/plugin/src/migrations/migrate-to-ngxtension/compat.d.ts +2 -0
  119. package/plugin/src/migrations/migrate-to-ngxtension/compat.js +6 -0
  120. package/plugin/src/migrations/migrate-to-ngxtension/compat.js.map +1 -0
  121. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.d.ts +2 -0
  122. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js +55 -0
  123. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js.map +1 -0
  124. package/web-types.json +1 -1
  125. package/esm2022/lib/di/before-render.mjs +0 -13
  126. package/esm2022/lib/di/catalogue.mjs +0 -7
  127. package/esm2022/lib/di/ref.mjs +0 -49
  128. package/esm2022/lib/directives/repeat.mjs +0 -18
  129. package/esm2022/lib/renderer/di.mjs +0 -3
  130. package/esm2022/lib/renderer/enums.mjs +0 -2
  131. package/esm2022/lib/renderer/provider.mjs +0 -18
  132. package/esm2022/lib/renderer/renderer.mjs +0 -368
  133. package/esm2022/lib/stores/signal.store.mjs +0 -79
  134. package/esm2022/lib/stores/store.mjs +0 -420
  135. package/esm2022/lib/utils/assert-in-injection-context.mjs +0 -14
  136. package/esm2022/lib/utils/instance.mjs +0 -63
  137. package/esm2022/lib/utils/signal.mjs +0 -24
  138. package/esm2022/lib/utils/timing.mjs +0 -21
  139. package/lib/di/catalogue.d.ts +0 -3
  140. package/lib/directives/repeat.d.ts +0 -7
  141. package/lib/renderer/di.d.ts +0 -2
  142. package/lib/renderer/enums.d.ts +0 -26
  143. package/lib/renderer/provider.d.ts +0 -8
  144. package/lib/renderer/renderer.d.ts +0 -49
  145. package/lib/stores/signal.store.d.ts +0 -21
  146. package/lib/stores/store.d.ts +0 -13
  147. package/lib/utils/assert-in-injection-context.d.ts +0 -2
  148. package/lib/utils/instance.d.ts +0 -4
  149. package/lib/utils/signal.d.ts +0 -2
  150. package/lib/utils/timing.d.ts +0 -4
  151. package/plugin/src/generators/init/init.d.ts +0 -5
  152. package/plugin/src/generators/init/init.js +0 -56
  153. package/plugin/src/generators/init/init.js.map +0 -1
package/lib/utils/is.d.ts CHANGED
@@ -1,19 +1,20 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import * as THREE from 'three';
3
- import type { NgtEquConfig, NgtGLRenderer } from '../types';
3
+ import type { NgtRenderer } from '../store';
4
+ import type { NgtEquConfig } from '../types';
4
5
  export declare const is: {
5
6
  obj: (a: unknown) => a is object;
6
7
  material: (a: unknown) => a is THREE.Material;
7
- geometry: (a: unknown) => a is THREE.BufferGeometry;
8
+ geometry: (a: unknown) => a is THREE.BufferGeometry<THREE.NormalBufferAttributes>;
8
9
  orthographicCamera: (a: unknown) => a is THREE.OrthographicCamera;
9
10
  perspectiveCamera: (a: unknown) => a is THREE.PerspectiveCamera;
10
11
  camera: (a: unknown) => a is THREE.Camera;
11
12
  renderer: (a: unknown) => a is THREE.WebGLRenderer;
12
13
  scene: (a: unknown) => a is THREE.Scene;
13
- object3D: (a: unknown) => a is THREE.Object3D<THREE.Event>;
14
+ object3D: (a: unknown) => a is THREE.Object3D<THREE.Object3DEventMap>;
14
15
  instance: (a: unknown) => a is any;
15
16
  ref: (a: unknown) => a is ElementRef<any>;
16
- colorSpaceExist: <T extends object | NgtGLRenderer | THREE.Texture, P = T extends NgtGLRenderer ? {
17
+ colorSpaceExist: <T extends object | NgtRenderer | THREE.Texture, P = T extends NgtRenderer ? {
17
18
  outputColorSpace: string;
18
19
  } : {
19
20
  colorSpace: string;
@@ -1,7 +1,18 @@
1
1
  import * as THREE from 'three';
2
- import type { NgtDpr, NgtGLOptions, NgtIntersection, NgtObjectMap, NgtSize } from '../types';
2
+ import type { NgtGLOptions } from '../canvas';
3
+ import type { NgtIntersection } from '../events';
4
+ import type { NgtDpr, NgtSize } from '../store';
3
5
  export declare function makeId(event?: NgtIntersection): string;
4
6
  export declare function makeDpr(dpr: NgtDpr, window?: Window): number;
5
7
  export declare function makeDefaultCamera(isOrthographic: boolean, size: NgtSize): THREE.OrthographicCamera | THREE.PerspectiveCamera;
6
8
  export declare function makeDefaultRenderer(glOptions: NgtGLOptions, canvasElement: HTMLCanvasElement): THREE.WebGLRenderer;
9
+ export type NgtObjectMap = {
10
+ nodes: {
11
+ [name: string]: THREE.Object3D;
12
+ };
13
+ materials: {
14
+ [name: string]: THREE.Material;
15
+ };
16
+ [key: string]: any;
17
+ };
7
18
  export declare function makeObjectGraph(object: THREE.Object3D): NgtObjectMap;
@@ -1,2 +1,2 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- export declare function safeDetectChanges(cdr: ChangeDetectorRef | undefined | null): void;
1
+ import type { ChangeDetectorRef } from '@angular/core';
2
+ export declare function safeDetectChanges(...cdrs: (ChangeDetectorRef | undefined | null)[]): void;
@@ -0,0 +1,17 @@
1
+ import { type CreateComputedOptions, type CreateSignalOptions, type Signal } from '@angular/core';
2
+ export type NgtSignalStore<State extends object> = {
3
+ select<Key1 extends keyof State, Key2 extends keyof State[Key1], Key3 extends keyof State[Key1][Key2], Key4 extends keyof State[Key1][Key2][Key3]>(key1: Key1, key2: Key2, key3: Key3, key4: Key4, options?: CreateComputedOptions<State[Key1][Key2][Key3][Key4]>): Signal<State[Key1][Key2][Key3][Key4]>;
4
+ select<Key1 extends keyof State, Key2 extends keyof State[Key1], Key3 extends keyof State[Key1][Key2]>(key1: Key1, key2: Key2, key3: Key3, options?: CreateComputedOptions<State[Key1][Key2][Key3]>): Signal<State[Key1][Key2][Key3]>;
5
+ select<Key1 extends keyof State, Key2 extends keyof State[Key1]>(key1: Key1, key2: Key2, options?: CreateComputedOptions<State[Key1][Key2]>): Signal<State[Key1][Key2]>;
6
+ select<Key extends keyof State>(key: Key, options?: CreateComputedOptions<State[Key]>): Signal<State[Key]>;
7
+ select(options?: CreateComputedOptions<State>): Signal<State>;
8
+ get<Key1 extends keyof State, Key2 extends keyof State[Key1], Key3 extends keyof State[Key1][Key2], Key4 extends keyof State[Key1][Key2][Key3]>(key1: Key1, key2: Key2, key3: Key3, key4: Key4): State[Key1][Key2][Key3][Key4];
9
+ get<Key1 extends keyof State, Key2 extends keyof State[Key1], Key3 extends keyof State[Key1][Key2]>(key1: Key1, key2: Key2, key3: Key3): State[Key1][Key2][Key3];
10
+ get<Key1 extends keyof State, Key2 extends keyof State[Key1]>(key1: Key1, key2: Key2): State[Key1][Key2];
11
+ get<Key extends keyof State>(key: Key): State[Key];
12
+ get(): State;
13
+ set(state: Partial<State> | ((previous: State) => Partial<State>)): void;
14
+ patch(state: Partial<State>): void;
15
+ state: Signal<State>;
16
+ };
17
+ export declare function signalStore<State extends object>(initialState?: Partial<State> | ((storeApi: Pick<NgtSignalStore<State>, 'get' | 'set' | 'patch' | 'select'>) => Partial<State>), options?: CreateSignalOptions<State>): NgtSignalStore<State>;
@@ -1,4 +1,4 @@
1
- import type { NgtCameraManual, NgtSize } from '../types';
1
+ import type { NgtCameraManual, NgtSize } from '../store';
2
2
  export declare function checkNeedsUpdate(value: unknown): void;
3
3
  export declare function checkUpdate(value: unknown): void;
4
4
  export declare function updateCamera(camera: NgtCameraManual, size: NgtSize): void;