angular-three 4.0.0-next.9 → 4.0.0-next.90

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 (48) hide show
  1. package/README.md +38 -183
  2. package/dom/lib/canvas.d.ts +6 -4
  3. package/dom/lib/renderer.d.ts +2 -1
  4. package/fesm2022/angular-three-dom.mjs +21 -12
  5. package/fesm2022/angular-three-dom.mjs.map +1 -1
  6. package/fesm2022/angular-three-testing.mjs +3 -3
  7. package/fesm2022/angular-three.mjs +275 -194
  8. package/fesm2022/angular-three.mjs.map +1 -1
  9. package/lib/directives/common.d.ts +1 -1
  10. package/lib/directives/selection.d.ts +5 -4
  11. package/lib/html.d.ts +1 -1
  12. package/lib/portal.d.ts +4 -4
  13. package/lib/renderer/renderer.d.ts +9 -3
  14. package/lib/three-types.d.ts +130 -418
  15. package/lib/types.d.ts +5 -1
  16. package/lib/utils/before-render.d.ts +10 -21
  17. package/lib/utils/is.d.ts +1 -0
  18. package/lib/utils/make.d.ts +2 -1
  19. package/metadata.json +37469 -0
  20. package/package.json +3 -26
  21. package/testing/lib/utils/web-gl-rendering-context.d.ts +1 -1
  22. package/web-types.json +37475 -0
  23. package/plugin/README.md +0 -11
  24. package/plugin/generators.json +0 -27
  25. package/plugin/src/generators/add-soba/compat.d.ts +0 -2
  26. package/plugin/src/generators/add-soba/compat.js +0 -6
  27. package/plugin/src/generators/add-soba/compat.js.map +0 -1
  28. package/plugin/src/generators/add-soba/generator.d.ts +0 -3
  29. package/plugin/src/generators/add-soba/generator.js +0 -77
  30. package/plugin/src/generators/add-soba/generator.js.map +0 -1
  31. package/plugin/src/generators/add-soba/schema.json +0 -4
  32. package/plugin/src/generators/init/compat.d.ts +0 -2
  33. package/plugin/src/generators/init/compat.js +0 -6
  34. package/plugin/src/generators/init/compat.js.map +0 -1
  35. package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +0 -28
  36. package/plugin/src/generators/init/generator.d.ts +0 -6
  37. package/plugin/src/generators/init/generator.js +0 -154
  38. package/plugin/src/generators/init/generator.js.map +0 -1
  39. package/plugin/src/generators/init/schema.json +0 -13
  40. package/plugin/src/generators/utils.d.ts +0 -2
  41. package/plugin/src/generators/utils.js +0 -35
  42. package/plugin/src/generators/utils.js.map +0 -1
  43. package/plugin/src/generators/version.d.ts +0 -17
  44. package/plugin/src/generators/version.js +0 -21
  45. package/plugin/src/generators/version.js.map +0 -1
  46. package/plugin/src/index.d.ts +0 -0
  47. package/plugin/src/index.js +0 -1
  48. package/plugin/src/index.js.map +0 -1
@@ -6,7 +6,7 @@ export type NgtNonFunctionKeys<T> = {
6
6
  export type NgtOverwrite<T, O> = Omit<T, NgtNonFunctionKeys<O>> & O;
7
7
  export type NgtProperties<T> = Pick<T, NgtNonFunctionKeys<T>>;
8
8
  export type NgtMutable<P> = {
9
- [K in keyof P]: P[K] | Readonly<P[K]>;
9
+ [K in keyof P]: P[K] extends Array<any> ? P[K] : P[K] | Readonly<P[K]>;
10
10
  };
11
11
  export interface NgtMathRepresentation {
12
12
  set(...args: number[]): any;
@@ -19,6 +19,13 @@ export type NgtMathType<T extends NgtMathTypes> = T extends THREE.Color ? NgtArg
19
19
  export type NgtMathProperties<P> = {
20
20
  [K in keyof P as P[K] extends NgtMathTypes ? K : never]: P[K] extends NgtMathTypes ? NgtMathType<P[K]> : never;
21
21
  };
22
+ export type NgtIsProperties<P> = {
23
+ [K in keyof P as P[K] extends true ? K : never]: true;
24
+ };
25
+ export type NgtNonMutableProperties = 'id' | 'uuid' | 'name' | 'type' | 'parent' | 'children';
26
+ export type NgtNonPartialProperties<P> = {
27
+ [K in keyof P as K extends NgtNonMutableProperties ? K : never]: P[K];
28
+ };
22
29
  export type NgtNullableRaycast<P> = {
23
30
  [K in keyof P as K extends 'raycast' ? K : never]: K extends 'raycast' ? P[K] | null : never;
24
31
  };
@@ -38,6 +45,10 @@ export type ThreeDisposeEvent = {
38
45
  type: 'dispose';
39
46
  target: any;
40
47
  };
48
+ export type ThreeChangeEvent = {
49
+ type: 'change';
50
+ target: any;
51
+ };
41
52
  export type ThreeAddedEvent = {
42
53
  type: 'added';
43
54
  target: any;
@@ -57,8 +68,9 @@ export type ThreeChildRemovedEvent = {
57
68
  child: any;
58
69
  };
59
70
  export interface NgtNodeEventMap<TInstance = NgtAnyRecord> {
60
- attached: NgtAfterAttach<any, TInstance>;
71
+ attached: NgtAfterAttach<TInstance, any>;
61
72
  updated: TInstance;
73
+ created: TInstance;
62
74
  disposed: ThreeDisposeEvent;
63
75
  }
64
76
  export type NgtObject3DEventsMap = {
@@ -68,441 +80,141 @@ export type NgtObject3DEventsMap = {
68
80
  removed: ThreeRemovedEvent;
69
81
  childadded: ThreeChildAddedEvent;
70
82
  childremoved: ThreeChildRemovedEvent;
83
+ change: ThreeChangeEvent;
71
84
  };
72
85
  export type NgtAllObject3DEventsMap<TInstance> = NgtObject3DEventsMap & NgtNodeEventMap<TInstance>;
73
86
  export interface NgtNodeElement<TConstructor extends NgtConstructorRepresentation, TInstance = InstanceType<TConstructor>> {
74
87
  attach: string | string[] | NgtAttachFunction;
75
88
  dispose?: (() => void) | null;
76
- __ngt_args__: NgtArguments<TConstructor>;
89
+ parameters: Partial<TInstance>;
90
+ __ngt_args__?: NgtArguments<TConstructor>;
77
91
  }
78
92
  export interface NgtNodeEventListener<TConstructor extends NgtConstructorRepresentation, TInstance = InstanceType<TConstructor>, TEventMap extends NgtNodeEventMap<TInstance> = TInstance extends NgtRaycastableRepresentation ? NgtAllObject3DEventsMap<TInstance> : NgtNodeEventMap<TInstance>> {
79
93
  addEventListener<TEventKey extends keyof TEventMap>(type: TEventKey, listener: (this: NgtNodeElement<TConstructor, TInstance>, ev: TEventMap[TEventKey]) => any): void;
80
94
  removeEventListener<TEventKey extends keyof TEventMap>(type: TEventKey, listener: (this: NgtNodeElement<TConstructor, TInstance>, ev: TEventMap[TEventKey]) => any): void;
81
95
  }
82
- export type NgtElementProperties<TConstructor extends NgtConstructorRepresentation, TInstance = InstanceType<TConstructor>> = Partial<NgtOverwrite<TInstance, NgtMathProperties<TInstance> & NgtNullableRaycast<TInstance>>> & NgtNodeElement<TConstructor, TInstance>;
96
+ export type NgtElementProperties<TConstructor extends NgtConstructorRepresentation, TInstance = InstanceType<TConstructor>> = Partial<NgtOverwrite<TInstance, NgtMathProperties<TInstance> & NgtNullableRaycast<TInstance>>> & NgtIsProperties<TInstance> & NgtNonPartialProperties<TInstance> & NgtNodeElement<TConstructor, TInstance>;
83
97
  export type NgtThreeElement<TConstructor extends NgtConstructorRepresentation> = NgtMutable<NgtElementProperties<TConstructor>> & NgtNodeEventListener<TConstructor>;
84
98
  type ThreeExports = typeof THREE;
85
99
  type NgtThreeElementsImpl = {
86
100
  [K in keyof ThreeExports]: ThreeExports[K] extends NgtConstructorRepresentation ? NgtThreeElement<ThreeExports[K]> : never;
87
101
  };
88
- export type NgtThreeElementsMap = {
89
- /**
90
- * @from node_modules/@types/three/src/core/Object3D.d.ts
91
- */
92
- 'ngt-object3D': Extract<keyof ThreeExports, 'Object3D'>;
93
- /**
94
- * @from node_modules/@types/three/src/objects/LOD.d.ts
95
- */
96
- 'ngt-lOD': Extract<keyof ThreeExports, 'LOD'>;
97
- /**
98
- * @from node_modules/@types/three/src/objects/Mesh.d.ts
99
- */
100
- 'ngt-mesh': Extract<keyof ThreeExports, 'Mesh'>;
101
- /**
102
- * @from node_modules/@types/three/src/objects/InstancedMesh.d.ts
103
- */
104
- 'ngt-instanced-mesh': Extract<keyof ThreeExports, 'InstancedMesh'>;
105
- /**
106
- * @from node_modules/@types/three/src/materials/Material.d.ts
107
- */
108
- 'ngt-material': Extract<keyof ThreeExports, 'Material'>;
109
- /**
110
- * @from node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts
111
- */
112
- 'ngt-mesh-basic-material': Extract<keyof ThreeExports, 'MeshBasicMaterial'>;
113
- /**
114
- * @from node_modules/@types/three/src/materials/MeshPhysicalMaterial.d.ts
115
- */
116
- 'ngt-mesh-physical-material': Extract<keyof ThreeExports, 'MeshPhysicalMaterial'>;
117
- /**
118
- * @from node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts
119
- */
120
- 'ngt-mesh-standard-material': Extract<keyof ThreeExports, 'MeshStandardMaterial'>;
121
- /**
122
- * @from node_modules/@types/three/src/materials/MeshToonMaterial.d.ts
123
- */
124
- 'ngt-mesh-toon-material': Extract<keyof ThreeExports, 'MeshToonMaterial'>;
125
- /**
126
- * @from node_modules/@types/three/src/materials/MeshNormalMaterial.d.ts
127
- */
128
- 'ngt-mesh-normal-material': Extract<keyof ThreeExports, 'MeshNormalMaterial'>;
129
- /**
130
- * @from node_modules/@types/three/src/materials/MeshDepthMaterial.d.ts
131
- */
132
- 'ngt-mesh-depth-material': Extract<keyof ThreeExports, 'MeshDepthMaterial'>;
133
- /**
134
- * @from node_modules/@types/three/src/materials/MeshDistanceMaterial.d.ts
135
- */
136
- 'ngt-mesh-distance-material': Extract<keyof ThreeExports, 'MeshDistanceMaterial'>;
137
- /**
138
- * @from node_modules/@types/three/src/materials/MeshMatcapMaterial.d.ts
139
- */
140
- 'ngt-mesh-matcap-material': Extract<keyof ThreeExports, 'MeshMatcapMaterial'>;
141
- /**
142
- * @from node_modules/@types/three/src/materials/MeshPhongMaterial.d.ts
143
- */
144
- 'ngt-mesh-phong-material': Extract<keyof ThreeExports, 'MeshPhongMaterial'>;
145
- /**
146
- * @from node_modules/@types/three/src/materials/LineBasicMaterial.d.ts
147
- */
148
- 'ngt-line-basic-material': Extract<keyof ThreeExports, 'LineBasicMaterial'>;
149
- /**
150
- * @from node_modules/@types/three/src/materials/LineDashedMaterial.d.ts
151
- */
152
- 'ngt-line-dashed-material': Extract<keyof ThreeExports, 'LineDashedMaterial'>;
153
- /**
154
- * @from node_modules/@types/three/src/materials/MeshLambertMaterial.d.ts
155
- */
156
- 'ngt-mesh-lambert-material': Extract<keyof ThreeExports, 'MeshLambertMaterial'>;
157
- /**
158
- * @from node_modules/@types/three/src/materials/PointsMaterial.d.ts
159
- */
160
- 'ngt-points-material': Extract<keyof ThreeExports, 'PointsMaterial'>;
161
- /**
162
- * @from node_modules/@types/three/src/materials/RawShaderMaterial.d.ts
163
- */
164
- 'ngt-raw-shader-material': Extract<keyof ThreeExports, 'RawShaderMaterial'>;
165
- /**
166
- * @from node_modules/@types/three/src/materials/ShaderMaterial.d.ts
167
- */
168
- 'ngt-shader-material': Extract<keyof ThreeExports, 'ShaderMaterial'>;
169
- /**
170
- * @from node_modules/@types/three/src/materials/ShadowMaterial.d.ts
171
- */
172
- 'ngt-shadow-material': Extract<keyof ThreeExports, 'ShadowMaterial'>;
173
- /**
174
- * @from node_modules/@types/three/src/materials/SpriteMaterial.d.ts
175
- */
176
- 'ngt-sprite-material': Extract<keyof ThreeExports, 'SpriteMaterial'>;
177
- /**
178
- * @from node_modules/@types/three/src/core/InstancedBufferGeometry.d.ts
179
- */
180
- 'ngt-instanced-buffer-geometry': Extract<keyof ThreeExports, 'InstancedBufferGeometry'>;
181
- /**
182
- * @from node_modules/@types/three/src/core/BufferGeometry.d.ts
183
- */
184
- 'ngt-buffer-geometry': Extract<keyof ThreeExports, 'BufferGeometry'>;
185
- /**
186
- * @from node_modules/@types/three/src/core/WireframeGeometry.d.ts
187
- */
188
- 'ngt-wireframe-geometry': Extract<keyof ThreeExports, 'WireframeGeometry'>;
189
- /**
190
- * @from node_modules/@types/three/src/geometries/TetrahedronGeometry.d.ts
191
- */
192
- 'ngt-tetrahedron-geometry': Extract<keyof ThreeExports, 'TetrahedronGeometry'>;
193
- /**
194
- * @from node_modules/@types/three/src/geometries/OctahedronGeometry.d.ts
195
- */
196
- 'ngt-octahedron-geometry': Extract<keyof ThreeExports, 'OctahedronGeometry'>;
197
- /**
198
- * @from node_modules/@types/three/src/geometries/IcosahedronGeometry.d.ts
199
- */
200
- 'ngt-icosahedron-geometry': Extract<keyof ThreeExports, 'IcosahedronGeometry'>;
201
- /**
202
- * @from node_modules/@types/three/src/geometries/PolyhedronGeometry.d.ts
203
- */
204
- 'ngt-polyhedron-geometry': Extract<keyof ThreeExports, 'PolyhedronGeometry'>;
205
- /**
206
- * @from node_modules/@types/three/src/geometries/DodecahedronGeometry.d.ts
207
- */
208
- 'ngt-dodecahedron-geometry': Extract<keyof ThreeExports, 'DodecahedronGeometry'>;
209
- /**
210
- * @from node_modules/@types/three/src/geometries/TubeGeometry.d.ts
211
- */
212
- 'ngt-tube-geometry': Extract<keyof ThreeExports, 'TubeGeometry'>;
213
- /**
214
- * @from node_modules/@types/three/src/geometries/TorusKnotGeometry.d.ts
215
- */
216
- 'ngt-torus-knot-geometry': Extract<keyof ThreeExports, 'TorusKnotGeometry'>;
217
- /**
218
- * @from node_modules/@types/three/src/geometries/TorusGeometry.d.ts
219
- */
220
- 'ngt-torus-geometry': Extract<keyof ThreeExports, 'TorusGeometry'>;
221
- /**
222
- * @from node_modules/@types/three/src/geometries/SphereGeometry.d.ts
223
- */
224
- 'ngt-sphere-geometry': Extract<keyof ThreeExports, 'SphereGeometry'>;
225
- /**
226
- * @from node_modules/@types/three/src/geometries/RingGeometry.d.ts
227
- */
228
- 'ngt-ring-geometry': Extract<keyof ThreeExports, 'RingGeometry'>;
229
- /**
230
- * @from node_modules/@types/three/src/geometries/PlaneGeometry.d.ts
231
- */
232
- 'ngt-plane-geometry': Extract<keyof ThreeExports, 'PlaneGeometry'>;
233
- /**
234
- * @from node_modules/@types/three/src/geometries/LatheGeometry.d.ts
235
- */
236
- 'ngt-lathe-geometry': Extract<keyof ThreeExports, 'LatheGeometry'>;
237
- /**
238
- * @from node_modules/@types/three/src/geometries/LineSegments.d.ts
239
- */
240
- 'ngt-line-segments': Extract<keyof ThreeExports, 'LineSegments'>;
241
- /**
242
- * @from node_modules/@types/three/src/geometries/LineLoop.d.ts
243
- */
244
- 'ngt-line-loop': Extract<keyof ThreeExports, 'LineLoop'>;
245
- /**
246
- * @from node_modules/@types/three/src/geometries/Points.d.ts
247
- */
248
- 'ngt-points': Extract<keyof ThreeExports, 'Points'>;
249
- /**
250
- * @from node_modules/@types/three/src/objects/Group.d.ts
251
- */
252
- 'ngt-group': Extract<keyof ThreeExports, 'Group'>;
253
- /**
254
- * @from node_modules/@types/three/src/cameras/Camera.d.ts
255
- */
256
- 'ngt-camera': Extract<keyof ThreeExports, 'Camera'>;
257
- /**
258
- * @from node_modules/@types/three/src/cameras/PerspectiveCamera.d.ts
259
- */
260
- 'ngt-perspective-camera': Extract<keyof ThreeExports, 'PerspectiveCamera'>;
261
- /**
262
- * @from node_modules/@types/three/src/cameras/OrthographicCamera.d.ts
263
- */
264
- 'ngt-orthographic-camera': Extract<keyof ThreeExports, 'OrthographicCamera'>;
265
- /**
266
- * @from node_modules/@types/three/src/cameras/CubeCamera.d.ts
267
- */
268
- 'ngt-cube-camera': Extract<keyof ThreeExports, 'CubeCamera'>;
269
- /**
270
- * @from node_modules/@types/three/src/cameras/ArrayCamera.d.ts
271
- */
272
- 'ngt-array-camera': Extract<keyof ThreeExports, 'ArrayCamera'>;
273
- /**
274
- * @from node_modules/@types/three/src/lights/LightShadow.d.ts
275
- */
276
- 'ngt-light-shadow': Extract<keyof ThreeExports, 'LightShadow'>;
277
- /**
278
- * @from node_modules/@types/three/src/lights/SpotLightShadow.d.ts
279
- */
280
- 'ngt-spot-light-shadow': Extract<keyof ThreeExports, 'SpotLightShadow'>;
281
- /**
282
- * @from node_modules/@types/three/src/lights/DirectionalLightShadow.d.ts
283
- */
284
- 'ngt-directional-light-shadow': Extract<keyof ThreeExports, 'DirectionalLightShadow'>;
285
- /**
286
- * @from node_modules/@types/three/src/lights/SpotLight.d.ts
287
- */
288
- 'ngt-spot-light': Extract<keyof ThreeExports, 'SpotLight'>;
289
- /**
290
- * @from node_modules/@types/three/src/lights/PointLight.d.ts
291
- */
292
- 'ngt-point-light': Extract<keyof ThreeExports, 'PointLight'>;
293
- /**
294
- * @from node_modules/@types/three/src/lights/RectAreaLight.d.ts
295
- */
296
- 'ngt-rect-area-light': Extract<keyof ThreeExports, 'RectAreaLight'>;
297
- /**
298
- * @from node_modules/@types/three/src/lights/HemisphereLight.d.ts
299
- */
300
- 'ngt-hemisphere-light': Extract<keyof ThreeExports, 'HemisphereLight'>;
301
- /**
302
- * @from node_modules/@types/three/src/lights/DirectionalLight.d.ts
303
- */
304
- 'ngt-directional-light': Extract<keyof ThreeExports, 'DirectionalLight'>;
305
- /**
306
- * @from node_modules/@types/three/src/lights/AmbientLight.d.ts
307
- */
308
- 'ngt-ambient-light': Extract<keyof ThreeExports, 'AmbientLight'>;
309
- /**
310
- * @from node_modules/@types/three/src/lights/LightProbe.d.ts
311
- */
312
- 'ngt-light-probe': Extract<keyof ThreeExports, 'LightProbe'>;
313
- /**
314
- * @from node_modules/@types/three/src/helpers/SpotLightHelper.d.ts
315
- */
316
- 'ngt-spot-light-helper': Extract<keyof ThreeExports, 'SpotLightHelper'>;
317
- /**
318
- * @from node_modules/@types/three/src/helpers/SkeletonHelper.d.ts
319
- */
320
- 'ngt-skeleton-helper': Extract<keyof ThreeExports, 'SkeletonHelper'>;
321
- /**
322
- * @from node_modules/@types/three/src/helpers/PointLightHelper.d.ts
323
- */
324
- 'ngt-point-light-helper': Extract<keyof ThreeExports, 'PointLightHelper'>;
325
- /**
326
- * @from node_modules/@types/three/src/helpers/HemisphereLightHelper.d.ts
327
- */
328
- 'ngt-hemisphere-light-helper': Extract<keyof ThreeExports, 'HemisphereLightHelper'>;
329
- /**
330
- * @from node_modules/@types/three/src/helpers/GridHelper.d.ts
331
- */
332
- 'ngt-grid-helper': Extract<keyof ThreeExports, 'GridHelper'>;
333
- /**
334
- * @from node_modules/@types/three/src/helpers/PolarGridHelper.d.ts
335
- */
336
- 'ngt-polar-grid-helper': Extract<keyof ThreeExports, 'PolarGridHelper'>;
337
- /**
338
- * @from node_modules/@types/three/src/helpers/DirectionalLightHelper.d.ts
339
- */
340
- 'ngt-directional-light-helper': Extract<keyof ThreeExports, 'DirectionalLightHelper'>;
341
- /**
342
- * @from node_modules/@types/three/src/helpers/CameraHelper.d.ts
343
- */
344
- 'ngt-camera-helper': Extract<keyof ThreeExports, 'CameraHelper'>;
345
- /**
346
- * @from node_modules/@types/three/src/helpers/BoxHelper.d.ts
347
- */
348
- 'ngt-box-helper': Extract<keyof ThreeExports, 'BoxHelper'>;
349
- /**
350
- * @from node_modules/@types/three/src/helpers/Box3Helper.d.ts
351
- */
352
- 'ngt-box3-helper': Extract<keyof ThreeExports, 'Box3Helper'>;
353
- /**
354
- * @from node_modules/@types/three/src/helpers/PlaneHelper.d.ts
355
- */
356
- 'ngt-plane-helper': Extract<keyof ThreeExports, 'PlaneHelper'>;
357
- /**
358
- * @from node_modules/@types/three/src/helpers/ArrowHelper.d.ts
359
- */
360
- 'ngt-arrow-helper': Extract<keyof ThreeExports, 'ArrowHelper'>;
361
- /**
362
- * @from node_modules/@types/three/src/helpers/AxesHelper.d.ts
363
- */
364
- 'ngt-axes-helper': Extract<keyof ThreeExports, 'AxesHelper'>;
365
- /**
366
- * @from node_modules/@types/three/src/helpers/Audio.d.ts
367
- */
368
- 'ngt-audio': Extract<keyof ThreeExports, 'Audio'>;
369
- /**
370
- * @from node_modules/@types/three/src/helpers/PositionalAudio.d.ts
371
- */
372
- 'ngt-positional-audio': Extract<keyof ThreeExports, 'PositionalAudio'>;
373
- /**
374
- * @from node_modules/@types/three/src/helpers/AudioListener.d.ts
375
- */
376
- 'ngt-audio-listener': Extract<keyof ThreeExports, 'AudioListener'>;
377
- /**
378
- * @from node_modules/@types/three/src/textures/Texture.d.ts
379
- */
380
- 'ngt-texture': Extract<keyof ThreeExports, 'Texture'>;
381
- /**
382
- * @from node_modules/@types/three/src/textures/CompressedTexture.d.ts
383
- */
384
- 'ngt-compressed-texture': Extract<keyof ThreeExports, 'CompressedTexture'>;
385
- /**
386
- * @from node_modules/@types/three/src/textures/VideoTexture.d.ts
387
- */
388
- 'ngt-video-texture': Extract<keyof ThreeExports, 'VideoTexture'>;
389
- /**
390
- * @from node_modules/@types/three/src/textures/DataTexture.d.ts
391
- */
392
- 'ngt-data-texture': Extract<keyof ThreeExports, 'DataTexture'>;
393
- /**
394
- * @from node_modules/@types/three/src/textures/Data3DTexture.d.ts
395
- */
396
- 'ngt-data3D-texture': Extract<keyof ThreeExports, 'Data3DTexture'>;
397
- /**
398
- * @from node_modules/@types/three/src/textures/CubeTexture.d.ts
399
- */
400
- 'ngt-cube-texture': Extract<keyof ThreeExports, 'CubeTexture'>;
401
- /**
402
- * @from node_modules/@types/three/src/textures/CanvasTexture.d.ts
403
- */
404
- 'ngt-canvas-texture': Extract<keyof ThreeExports, 'CanvasTexture'>;
405
- /**
406
- * @from node_modules/@types/three/src/textures/DepthTexture.d.ts
407
- */
408
- 'ngt-depth-texture': Extract<keyof ThreeExports, 'DepthTexture'>;
409
- /**
410
- * @from node_modules/@types/three/src/core/Raycaster.d.ts
411
- */
412
- 'ngt-raycaster': Extract<keyof ThreeExports, 'Raycaster'>;
413
- /**
414
- * @from node_modules/@types/three/src/math/Vector2.d.ts
415
- */
416
- 'ngt-vector2': Extract<keyof ThreeExports, 'Vector2'>;
417
- /**
418
- * @from node_modules/@types/three/src/math/Vector3.d.ts
419
- */
420
- 'ngt-vector3': Extract<keyof ThreeExports, 'Vector3'>;
421
- /**
422
- * @from node_modules/@types/three/src/math/Vector4.d.ts
423
- */
424
- 'ngt-vector4': Extract<keyof ThreeExports, 'Vector4'>;
425
- /**
426
- * @from node_modules/@types/three/src/math/Euler.d.ts
427
- */
428
- 'ngt-euler': Extract<keyof ThreeExports, 'Euler'>;
429
- /**
430
- * @from node_modules/@types/three/src/math/Matrix3.d.ts
431
- */
432
- 'ngt-matrix3': Extract<keyof ThreeExports, 'Matrix3'>;
433
- /**
434
- * @from node_modules/@types/three/src/math/Matrix4.d.ts
435
- */
436
- 'ngt-matrix4': Extract<keyof ThreeExports, 'Matrix4'>;
437
- /**
438
- * @from node_modules/@types/three/src/math/Quaternion.d.ts
439
- */
440
- 'ngt-quaternion': Extract<keyof ThreeExports, 'Quaternion'>;
441
- /**
442
- * @from node_modules/@types/three/src/core/BufferAttribute.d.ts
443
- */
444
- 'ngt-buffer-attribute': Extract<keyof ThreeExports, 'BufferAttribute'>;
445
- /**
446
- * @from node_modules/@types/three/src/core/Float16BufferAttribute.d.ts
447
- */
448
- 'ngt-float16-buffer-attribute': Extract<keyof ThreeExports, 'Float16BufferAttribute'>;
449
- /**
450
- * @from node_modules/@types/three/src/core/Float32BufferAttribute.d.ts
451
- */
452
- 'ngt-float32-buffer-attribute': Extract<keyof ThreeExports, 'Float32BufferAttribute'>;
453
- /**
454
- * @from node_modules/@types/three/src/core/Int8BufferAttribute.d.ts
455
- */
456
- 'ngt-int8-buffer-attribute': Extract<keyof ThreeExports, 'Int8BufferAttribute'>;
457
- /**
458
- * @from node_modules/@types/three/src/core/Int16BufferAttribute.d.ts
459
- */
460
- 'ngt-int16-buffer-attribute': Extract<keyof ThreeExports, 'Int16BufferAttribute'>;
461
- /**
462
- * @from node_modules/@types/three/src/core/Int32BufferAttribute.d.ts
463
- */
464
- 'ngt-int32-buffer-attribute': Extract<keyof ThreeExports, 'Int32BufferAttribute'>;
465
- /**
466
- * @from node_modules/@types/three/src/core/Uint8BufferAttribute.d.ts
467
- */
468
- 'ngt-unit8-buffer-attribute': Extract<keyof ThreeExports, 'Uint8BufferAttribute'>;
469
- /**
470
- * @from node_modules/@types/three/src/core/Uint16BufferAttribute.d.ts
471
- */
472
- 'ngt-unit16-buffer-attribute': Extract<keyof ThreeExports, 'Uint16BufferAttribute'>;
473
- /**
474
- * @from node_modules/@types/three/src/core/Uint32BufferAttribute.d.ts
475
- */
476
- 'ngt-unit32-buffer-attribute': Extract<keyof ThreeExports, 'Uint32BufferAttribute'>;
477
- /**
478
- * @from node_modules/@types/three/src/core/InstancedBufferAttribute.d.ts
479
- */
480
- 'ngt-instanced-buffer-attribute': Extract<keyof ThreeExports, 'InstancedBufferAttribute'>;
481
- /**
482
- * @from node_modules/@types/three/src/math/Color.d.ts
483
- */
484
- 'ngt-color': Extract<keyof ThreeExports, 'Color'>;
485
- /**
486
- * @from node_modules/@types/three/src/scenes/Fog.d.ts
487
- */
488
- 'ngt-fog': Extract<keyof ThreeExports, 'Fog'>;
489
- /**
490
- * @from node_modules/@types/three/src/scenes/FogExp2.d.ts
491
- */
492
- 'ngt-fog-exp2': Extract<keyof ThreeExports, 'FogExp2'>;
493
- /**
494
- * @from node_modules/@types/three/src/extras/core/Shape.d.ts
495
- */
496
- 'ngt-shape': Extract<keyof ThreeExports, 'Shape'>;
497
- };
498
- export type NgtThreeElements = {
499
- [NgtKey in keyof NgtThreeElementsMap]: NgtThreeElementsImpl[NgtThreeElementsMap[NgtKey]];
500
- } & {
102
+ export interface NgtThreeElements {
103
+ 'ngt-scene': NgtThreeElementsImpl['Scene'];
104
+ 'ngt-object3D': NgtThreeElementsImpl['Object3D'];
105
+ 'ngt-lOD': NgtThreeElementsImpl['LOD'];
106
+ 'ngt-mesh': NgtThreeElementsImpl['Mesh'];
107
+ 'ngt-instanced-mesh': NgtThreeElementsImpl['InstancedMesh'];
108
+ 'ngt-skinned-mesh': NgtThreeElementsImpl['SkinnedMesh'];
109
+ 'ngt-bone': NgtThreeElementsImpl['Bone'];
110
+ 'ngt-material': NgtThreeElementsImpl['Material'];
111
+ 'ngt-mesh-basic-material': NgtThreeElementsImpl['MeshBasicMaterial'];
112
+ 'ngt-mesh-physical-material': NgtThreeElementsImpl['MeshPhysicalMaterial'];
113
+ 'ngt-mesh-standard-material': NgtThreeElementsImpl['MeshStandardMaterial'];
114
+ 'ngt-mesh-toon-material': NgtThreeElementsImpl['MeshToonMaterial'];
115
+ 'ngt-mesh-normal-material': NgtThreeElementsImpl['MeshNormalMaterial'];
116
+ 'ngt-mesh-depth-material': NgtThreeElementsImpl['MeshDepthMaterial'];
117
+ 'ngt-mesh-distance-material': NgtThreeElementsImpl['MeshDistanceMaterial'];
118
+ 'ngt-mesh-matcap-material': NgtThreeElementsImpl['MeshMatcapMaterial'];
119
+ 'ngt-mesh-phong-material': NgtThreeElementsImpl['MeshPhongMaterial'];
120
+ 'ngt-line-basic-material': NgtThreeElementsImpl['LineBasicMaterial'];
121
+ 'ngt-line-dashed-material': NgtThreeElementsImpl['LineDashedMaterial'];
122
+ 'ngt-mesh-lambert-material': NgtThreeElementsImpl['MeshLambertMaterial'];
123
+ 'ngt-points-material': NgtThreeElementsImpl['PointsMaterial'];
124
+ 'ngt-raw-shader-material': NgtThreeElementsImpl['RawShaderMaterial'];
125
+ 'ngt-shader-material': NgtThreeElementsImpl['ShaderMaterial'];
126
+ 'ngt-shadow-material': NgtThreeElementsImpl['ShadowMaterial'];
127
+ 'ngt-sprite-material': NgtThreeElementsImpl['SpriteMaterial'];
128
+ 'ngt-instanced-buffer-geometry': NgtThreeElementsImpl['InstancedBufferGeometry'];
129
+ 'ngt-buffer-geometry': NgtThreeElementsImpl['BufferGeometry'];
130
+ 'ngt-wireframe-geometry': NgtThreeElementsImpl['WireframeGeometry'];
131
+ 'ngt-box-geometry': NgtThreeElementsImpl['BoxGeometry'];
132
+ 'ngt-extrude-geometry': NgtThreeElementsImpl['ExtrudeGeometry'];
133
+ 'ngt-shape-geometry': NgtThreeElementsImpl['ShapeGeometry'];
134
+ 'ngt-circle-geometry': NgtThreeElementsImpl['CircleGeometry'];
135
+ 'ngt-cylinder-geometry': NgtThreeElementsImpl['CylinderGeometry'];
136
+ 'ngt-capsule-geometry': NgtThreeElementsImpl['CapsuleGeometry'];
137
+ 'ngt-cone-geometry': NgtThreeElementsImpl['ConeGeometry'];
138
+ 'ngt-edges-geometry': NgtThreeElementsImpl['EdgesGeometry'];
139
+ 'ngt-tetrahedron-geometry': NgtThreeElementsImpl['TetrahedronGeometry'];
140
+ 'ngt-octahedron-geometry': NgtThreeElementsImpl['OctahedronGeometry'];
141
+ 'ngt-icosahedron-geometry': NgtThreeElementsImpl['IcosahedronGeometry'];
142
+ 'ngt-polyhedron-geometry': NgtThreeElementsImpl['PolyhedronGeometry'];
143
+ 'ngt-dodecahedron-geometry': NgtThreeElementsImpl['DodecahedronGeometry'];
144
+ 'ngt-tube-geometry': NgtThreeElementsImpl['TubeGeometry'];
145
+ 'ngt-torus-knot-geometry': NgtThreeElementsImpl['TorusKnotGeometry'];
146
+ 'ngt-torus-geometry': NgtThreeElementsImpl['TorusGeometry'];
147
+ 'ngt-sphere-geometry': NgtThreeElementsImpl['SphereGeometry'];
148
+ 'ngt-ring-geometry': NgtThreeElementsImpl['RingGeometry'];
149
+ 'ngt-plane-geometry': NgtThreeElementsImpl['PlaneGeometry'];
150
+ 'ngt-lathe-geometry': NgtThreeElementsImpl['LatheGeometry'];
151
+ 'ngt-line-segments': NgtThreeElementsImpl['LineSegments'];
152
+ 'ngt-line-loop': NgtThreeElementsImpl['LineLoop'];
153
+ 'ngt-points': NgtThreeElementsImpl['Points'];
154
+ 'ngt-group': NgtThreeElementsImpl['Group'];
155
+ 'ngt-camera': NgtThreeElementsImpl['Camera'];
156
+ 'ngt-perspective-camera': NgtThreeElementsImpl['PerspectiveCamera'];
157
+ 'ngt-orthographic-camera': NgtThreeElementsImpl['OrthographicCamera'];
158
+ 'ngt-cube-camera': NgtThreeElementsImpl['CubeCamera'];
159
+ 'ngt-array-camera': NgtThreeElementsImpl['ArrayCamera'];
160
+ 'ngt-spot-light': NgtThreeElementsImpl['SpotLight'];
161
+ 'ngt-point-light': NgtThreeElementsImpl['PointLight'];
162
+ 'ngt-rect-area-light': NgtThreeElementsImpl['RectAreaLight'];
163
+ 'ngt-hemisphere-light': NgtThreeElementsImpl['HemisphereLight'];
164
+ 'ngt-directional-light': NgtThreeElementsImpl['DirectionalLight'];
165
+ 'ngt-ambient-light': NgtThreeElementsImpl['AmbientLight'];
166
+ 'ngt-light-probe': NgtThreeElementsImpl['LightProbe'];
167
+ 'ngt-spot-light-helper': NgtThreeElementsImpl['SpotLightHelper'];
168
+ 'ngt-skeleton-helper': NgtThreeElementsImpl['SkeletonHelper'];
169
+ 'ngt-point-light-helper': NgtThreeElementsImpl['PointLightHelper'];
170
+ 'ngt-hemisphere-light-helper': NgtThreeElementsImpl['HemisphereLightHelper'];
171
+ 'ngt-grid-helper': NgtThreeElementsImpl['GridHelper'];
172
+ 'ngt-polar-grid-helper': NgtThreeElementsImpl['PolarGridHelper'];
173
+ 'ngt-directional-light-helper': NgtThreeElementsImpl['DirectionalLightHelper'];
174
+ 'ngt-camera-helper': NgtThreeElementsImpl['CameraHelper'];
175
+ 'ngt-box-helper': NgtThreeElementsImpl['BoxHelper'];
176
+ 'ngt-box3-helper': NgtThreeElementsImpl['Box3Helper'];
177
+ 'ngt-plane-helper': NgtThreeElementsImpl['PlaneHelper'];
178
+ 'ngt-arrow-helper': NgtThreeElementsImpl['ArrowHelper'];
179
+ 'ngt-axes-helper': NgtThreeElementsImpl['AxesHelper'];
180
+ 'ngt-audio': NgtThreeElementsImpl['Audio'];
181
+ 'ngt-positional-audio': NgtThreeElementsImpl['PositionalAudio'];
182
+ 'ngt-audio-listener': NgtThreeElementsImpl['AudioListener'];
183
+ 'ngt-texture': NgtThreeElementsImpl['Texture'];
184
+ 'ngt-compressed-texture': NgtThreeElementsImpl['CompressedTexture'];
185
+ 'ngt-video-texture': NgtThreeElementsImpl['VideoTexture'];
186
+ 'ngt-data-texture': NgtThreeElementsImpl['DataTexture'];
187
+ 'ngt-data3D-texture': NgtThreeElementsImpl['Data3DTexture'];
188
+ 'ngt-cube-texture': NgtThreeElementsImpl['CubeTexture'];
189
+ 'ngt-canvas-texture': NgtThreeElementsImpl['CanvasTexture'];
190
+ 'ngt-depth-texture': NgtThreeElementsImpl['DepthTexture'];
191
+ 'ngt-raycaster': NgtThreeElementsImpl['Raycaster'];
192
+ 'ngt-vector2': NgtThreeElementsImpl['Vector2'];
193
+ 'ngt-vector3': NgtThreeElementsImpl['Vector3'];
194
+ 'ngt-vector4': NgtThreeElementsImpl['Vector4'];
195
+ 'ngt-euler': NgtThreeElementsImpl['Euler'];
196
+ 'ngt-matrix3': NgtThreeElementsImpl['Matrix3'];
197
+ 'ngt-matrix4': NgtThreeElementsImpl['Matrix4'];
198
+ 'ngt-quaternion': NgtThreeElementsImpl['Quaternion'];
199
+ 'ngt-buffer-attribute': NgtThreeElementsImpl['BufferAttribute'];
200
+ 'ngt-float16-buffer-attribute': NgtThreeElementsImpl['Float16BufferAttribute'];
201
+ 'ngt-float32-buffer-attribute': NgtThreeElementsImpl['Float32BufferAttribute'];
202
+ 'ngt-int8-buffer-attribute': NgtThreeElementsImpl['Int8BufferAttribute'];
203
+ 'ngt-int16-buffer-attribute': NgtThreeElementsImpl['Int16BufferAttribute'];
204
+ 'ngt-int32-buffer-attribute': NgtThreeElementsImpl['Int32BufferAttribute'];
205
+ 'ngt-uint8-buffer-attribute': NgtThreeElementsImpl['Uint8BufferAttribute'];
206
+ 'ngt-uint16-buffer-attribute': NgtThreeElementsImpl['Uint16BufferAttribute'];
207
+ 'ngt-uint32-buffer-attribute': NgtThreeElementsImpl['Uint32BufferAttribute'];
208
+ 'ngt-instanced-buffer-attribute': NgtThreeElementsImpl['InstancedBufferAttribute'];
209
+ 'ngt-color': NgtThreeElementsImpl['Color'];
210
+ 'ngt-fog': NgtThreeElementsImpl['Fog'];
211
+ 'ngt-fog-exp2': NgtThreeElementsImpl['FogExp2'];
212
+ 'ngt-shape': NgtThreeElementsImpl['Shape'];
501
213
  'ngt-primitive': NgtThreeElement<any>;
502
214
  'ngt-value': NgtThreeElement<any> & {
503
215
  rawValue: any;
504
216
  };
505
- };
217
+ }
506
218
  declare global {
507
219
  interface HTMLElementTagNameMap extends NgtThreeElements {
508
220
  }
package/lib/types.d.ts CHANGED
@@ -28,10 +28,14 @@ export type NgtCameraParameters = Partial<NgtThreeElement<typeof THREE.Camera> &
28
28
  };
29
29
  export interface NgtRendererLike {
30
30
  render: (scene: THREE.Scene, camera: THREE.Camera) => any;
31
+ dispose?: () => void;
31
32
  }
32
33
  export type NgtCanvasElement = HTMLCanvasElement | OffscreenCanvas;
33
34
  export type NgtGlobalRenderCallback = (timeStamp: number) => void;
34
- export type NgtGLOptions = NgtRendererLike | ((canvas: NgtCanvasElement) => NgtRendererLike) | Partial<NgtProperties<THREE.WebGLRenderer> | THREE.WebGLRendererParameters> | undefined;
35
+ export type NgtGLDefaultOptions = Omit<THREE.WebGLRendererParameters, 'canvas'> & {
36
+ canvas: NgtCanvasElement;
37
+ };
38
+ export type NgtGLOptions = NgtRendererLike | ((defaultGLOptions: NgtGLDefaultOptions) => NgtRendererLike) | Partial<NgtProperties<THREE.WebGLRenderer> | THREE.WebGLRendererParameters> | undefined;
35
39
  export type NgtDpr = number | [min: number, max: number];
36
40
  export interface NgtSize {
37
41
  width: number;