angular-three 3.1.0 → 3.2.1

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 CHANGED
@@ -23,10 +23,10 @@ import { extend } from 'angular-three';
23
23
  import { Mesh, BoxGeometry } from 'three';
24
24
 
25
25
  extend({
26
- Mesh, // makes ngt-mesh available
27
- BoxGeometry, // makes ngt-box-geometry available
28
- /* ... */
29
- MyMesh: Mesh, // makes ngt-my-mesh available
26
+ Mesh, // makes ngt-mesh available
27
+ BoxGeometry, // makes ngt-box-geometry available
28
+ /* ... */
29
+ MyMesh: Mesh, // makes ngt-my-mesh available
30
30
  });
31
31
 
32
32
  // alternatively for demo purposes, you can use the following
@@ -34,29 +34,27 @@ extend({
34
34
  // This includes the entire THREE.js namespace
35
35
 
36
36
  @Component({
37
- // This Component is rendered in the Custom Renderer
38
- standalone: true,
39
- template: `
40
- <ngt-mesh>
41
- <ngt-box-geometry />
42
- </ngt-mesh>
43
- `,
44
- schemas: [CUSTOM_ELEMENTS_SCHEMA], // required
45
- changeDetection: ChangeDetectionStrategy.OnPush,
37
+ // This Component is rendered in the Custom Renderer
38
+ template: `
39
+ <ngt-mesh>
40
+ <ngt-box-geometry />
41
+ </ngt-mesh>
42
+ `,
43
+ schemas: [CUSTOM_ELEMENTS_SCHEMA], // required
44
+ changeDetection: ChangeDetectionStrategy.OnPush,
46
45
  })
47
46
  export class SceneGraph {}
48
47
 
49
48
  @Component({
50
- // This Component is rendered normally in Angular.
51
- selector: 'app-my-experience',
52
- standalone: true,
53
- template: `
54
- <ngt-canvas [sceneGraph]="SceneGraph" />
55
- `,
56
- imports: [NgtCanvas],
49
+ // This Component is rendered normally in Angular.
50
+ selector: 'app-my-experience',
51
+ template: `
52
+ <ngt-canvas [sceneGraph]="SceneGraph" />
53
+ `,
54
+ imports: [NgtCanvas],
57
55
  })
58
56
  export class MyExperience {
59
- SceneGraph = SceneGraph;
57
+ SceneGraph = SceneGraph;
60
58
  }
61
59
  ```
62
60
 
@@ -98,7 +96,7 @@ The consumers can add `web-types` property to the workspace's `package.json` and
98
96
 
99
97
  ```json
100
98
  {
101
- "web-types": "node_modules/angular-three/web-types.json"
99
+ "web-types": "node_modules/angular-three/web-types.json"
102
100
  }
103
101
  ```
104
102
 
@@ -110,7 +108,7 @@ The consumers can enable it via `html.customData` in their `settings.json` file.
110
108
 
111
109
  ```json
112
110
  {
113
- "html.customData": ["node_modules/angular-three/metadata.json"]
111
+ "html.customData": ["node_modules/angular-three/metadata.json"]
114
112
  }
115
113
  ```
116
114
 
@@ -122,7 +120,7 @@ Input bindings for `ngt-*` elements work the same way as they do in Angular.
122
120
 
123
121
  ```html
124
122
  <ngt-mesh [position]="[x, y, z]" [rotation]="[x, y, z]">
125
- <ngt-mesh-basic-material color="hotpink" />
123
+ <ngt-mesh-basic-material color="hotpink" />
126
124
  </ngt-mesh>
127
125
  ```
128
126
 
@@ -179,13 +177,13 @@ The consumers can query for the THREE.js entities like they would do in normal H
179
177
 
180
178
  ```ts
181
179
  @Component({
182
- template: `
183
- <ngt-mesh #mesh></ngt-mesh>
184
- `,
180
+ template: `
181
+ <ngt-mesh #mesh></ngt-mesh>
182
+ `,
185
183
  })
186
184
  export class Box {
187
- mesh = viewChild.required<ElementRef<Mesh>>('mesh');
188
- // notice that it is an ElementRef of THREE.Mesh instead of an HTMLElement
185
+ mesh = viewChild.required<ElementRef<Mesh>>('mesh');
186
+ // notice that it is an ElementRef of THREE.Mesh instead of an HTMLElement
189
187
  }
190
188
  ```
191
189
 
@@ -195,18 +193,18 @@ In order to participate in the animation loop, use `injectBeforeRender` inject f
195
193
 
196
194
  ```ts
197
195
  @Component({
198
- /*...*/
196
+ /*...*/
199
197
  })
200
198
  export class Box {
201
- mesh = viewChild.required<ElementRef<Mesh>>('mesh');
202
-
203
- constructor() {
204
- injectBeforeRender(() => {
205
- // runs every frame
206
- const mesh = this.mesh().nativeElement;
207
- mesh.rotation.x += 0.01;
208
- });
209
- }
199
+ mesh = viewChild.required<ElementRef<Mesh>>('mesh');
200
+
201
+ constructor() {
202
+ injectBeforeRender(() => {
203
+ // runs every frame
204
+ const mesh = this.mesh().nativeElement;
205
+ mesh.rotation.x += 0.01;
206
+ });
207
+ }
210
208
  }
211
209
  ```
212
210
 
@@ -216,9 +214,9 @@ Angular Three keeps track of its state via an internal store. The consumers can
216
214
 
217
215
  ```ts
218
216
  export class Box {
219
- store = injectStore();
220
- viewport = this.store.select('viewport'); // Signal<NgtViewport>
221
- camera = this.store.select('camera'); // Signal<NgtCamera> - the default camera
222
- /* many more properties */
217
+ store = injectStore();
218
+ viewport = this.store.select('viewport'); // Signal<NgtViewport>
219
+ camera = this.store.select('camera'); // Signal<NgtCamera> - the default camera
220
+ /* many more properties */
223
221
  }
224
222
  ```
@@ -39,7 +39,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
39
39
  args: [{
40
40
  selector: 'ngt-test-canvas',
41
41
  template: '',
42
- standalone: true,
43
42
  changeDetection: ChangeDetectionStrategy.OnPush,
44
43
  }]
45
44
  }], ctorParameters: () => [] });
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-testing.mjs","sources":["../../../../libs/core/testing/src/lib/test-canvas.ts","../../../../libs/core/testing/src/lib/utils/web-gl-rendering-context.ts","../../../../libs/core/testing/src/lib/utils/mock-canvas.ts","../../../../libs/core/testing/src/lib/test-bed.ts","../../../../libs/core/testing/src/angular-three-testing.ts"],"sourcesContent":["import {\n\tafterNextRender,\n\tChangeDetectionStrategy,\n\tComponent,\n\tComponentRef,\n\tcreateEnvironmentInjector,\n\tDestroyRef,\n\teffect,\n\tEnvironmentInjector,\n\tinject,\n\tInjector,\n\tinput,\n\tType,\n\tViewContainerRef,\n} from '@angular/core';\nimport { extend, injectStore, provideNgtRenderer } from 'angular-three';\nimport * as THREE from 'three';\n\n@Component({\n\tselector: 'ngt-test-canvas',\n\ttemplate: '',\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtTestCanvas {\n\tsceneGraph = input.required<Type<any>>();\n\n\tprivate ref?: ComponentRef<any>;\n\tprivate environmentInjector?: EnvironmentInjector;\n\n\tconstructor() {\n\t\textend(THREE);\n\n\t\tconst vcr = inject(ViewContainerRef);\n\t\tconst parentEnvironmentInjector = inject(EnvironmentInjector);\n\t\tconst parentInjector = inject(Injector);\n\t\tconst store = injectStore();\n\n\t\tafterNextRender(() => {\n\t\t\teffect(\n\t\t\t\t() => {\n\t\t\t\t\tconst sceneGraph = this.sceneGraph();\n\n\t\t\t\t\tthis.environmentInjector = createEnvironmentInjector([provideNgtRenderer(store)], parentEnvironmentInjector);\n\n\t\t\t\t\tthis.ref = vcr.createComponent(sceneGraph, {\n\t\t\t\t\t\tenvironmentInjector: this.environmentInjector,\n\t\t\t\t\t\tinjector: parentInjector,\n\t\t\t\t\t});\n\t\t\t\t\tthis.ref.changeDetectorRef.detectChanges();\n\t\t\t\t},\n\t\t\t\t{ injector: parentInjector },\n\t\t\t);\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.destroy();\n\t\t});\n\t}\n\n\tdestroy() {\n\t\tthis.environmentInjector?.destroy();\n\t\tthis.ref?.destroy();\n\t}\n}\n","const functions = [\n\t'activeTexture',\n\t'attachShader',\n\t'beginQuery',\n\t'beginTransformFeedback',\n\t'bindAttribLocation',\n\t'bindBufferBase',\n\t'bindBufferRange',\n\t'bindRenderbuffer',\n\t'bindSampler',\n\t'bindTransformFeedback',\n\t'bindVertexArray',\n\t'blendColor',\n\t'blendEquation',\n\t'blendEquationSeparate',\n\t'blendFunc',\n\t'blendFuncSeparate',\n\t'blitFramebuffer',\n\t'bufferData',\n\t'bufferSubData',\n\t'checkFramebufferStatus',\n\t'clientWaitSync',\n\t'compileShader',\n\t'compressedTexImage2D',\n\t'compressedTexImage3D',\n\t'compressedTexSubImage2D',\n\t'compressedTexSubImage3D',\n\t'copyBufferSubData',\n\t'copyTexImage2D',\n\t'copyTexSubImage2D',\n\t'copyTexSubImage3D',\n\t'createBuffer',\n\t'createFramebuffer',\n\t'createProgram',\n\t'createQuery',\n\t'createRenderbuffer',\n\t'createSampler',\n\t'createShader',\n\t'createTexture',\n\t'createTransformFeedback',\n\t'createVertexArray',\n\t'cullFace',\n\t'deleteBuffer',\n\t'deleteFramebuffer',\n\t'deleteProgram',\n\t'deleteQuery',\n\t'deleteRenderbuffer',\n\t'deleteSampler',\n\t'deleteShader',\n\t'deleteSync',\n\t'deleteTexture',\n\t'deleteTransformFeedback',\n\t'deleteVertexArray',\n\t'depthFunc',\n\t'depthMask',\n\t'depthRange',\n\t'detachShader',\n\t'disable',\n\t'drawArraysInstanced',\n\t'drawElementsInstanced',\n\t'drawRangeElements',\n\t'enable',\n\t'endQuery',\n\t'endTransformFeedback',\n\t'fenceSync',\n\t'finish',\n\t'flush',\n\t'framebufferRenderbuffer',\n\t'framebufferTexture2D',\n\t'framebufferTextureLayer',\n\t'frontFace',\n\t'generateMipmap',\n\t'getActiveAttrib',\n\t'getActiveUniform',\n\t'getActiveUniformBlockName',\n\t'getActiveUniformBlockParameter',\n\t'getActiveUniforms',\n\t'getAttachedShaders',\n\t'getAttribLocation',\n\t'getBufferParameter',\n\t'getBufferSubData',\n\t'getContextAttributes',\n\t'getError',\n\t'getExtension',\n\t'getFragDataLocation',\n\t'getFramebufferAttachmentParameter',\n\t'getIndexedParameter',\n\t'getInternalformatParameter',\n\t'getParameter',\n\t'getProgramInfoLog',\n\t'getProgramParameter',\n\t'getQuery',\n\t'getQueryParameter',\n\t'getRenderbufferParameter',\n\t'getSamplerParameter',\n\t'getShaderInfoLog',\n\t'getShaderParameter',\n\t'getShaderPrecisionFormat',\n\t'getShaderSource',\n\t'getSupportedExtensions',\n\t'getSyncParameter',\n\t'getTexParameter',\n\t'getTransformFeedbackVarying',\n\t'getUniform',\n\t'getUniformBlockIndex',\n\t'getUniformIndices',\n\t'getUniformLocation',\n\t'getVertexAttrib',\n\t'getVertexAttribOffset',\n\t'hint',\n\t'invalidateFramebuffer',\n\t'invalidateSubFramebuffer',\n\t'isBuffer',\n\t'isContextLost',\n\t'isEnabled',\n\t'isFramebuffer',\n\t'isProgram',\n\t'isQuery',\n\t'isRenderbuffer',\n\t'isSampler',\n\t'isShader',\n\t'isSync',\n\t'isTexture',\n\t'isTransformFeedback',\n\t'isVertexArray',\n\t'lineWidth',\n\t'linkProgram',\n\t'pauseTransformFeedback',\n\t'pixelStorei',\n\t'polygonOffset',\n\t'readBuffer',\n\t'readPixels',\n\t'renderbufferStorage',\n\t'renderbufferStorageMultisample',\n\t'resumeTransformFeedback',\n\t'sampleCoverage',\n\t'samplerParameterf',\n\t'samplerParameteri',\n\t'shaderSource',\n\t'stencilFunc',\n\t'stencilFuncSeparate',\n\t'stencilMask',\n\t'stencilMaskSeparate',\n\t'stencilOp',\n\t'stencilOpSeparate',\n\t'texImage2D',\n\t'texImage3D',\n\t'texParameterf',\n\t'texParameteri',\n\t'texStorage2D',\n\t'texStorage3D',\n\t'texSubImage2D',\n\t'texSubImage3D',\n\t'transformFeedbackVaryings',\n\t'uniform1ui',\n\t'uniform2ui',\n\t'uniform3ui',\n\t'uniform4ui',\n\t'uniformBlockBinding',\n\t'useProgram',\n\t'validateProgram',\n\t'vertexAttribDivisor',\n\t'vertexAttribI4i',\n\t'vertexAttribI4ui',\n\t'vertexAttribIPointer',\n\t'waitSync',\n\t'bindBuffer',\n\t'bindFramebuffer',\n\t'bindTexture',\n\t'clear',\n\t'clearBufferfi',\n\t'clearBufferfv',\n\t'clearBufferiv',\n\t'clearBufferuiv',\n\t'clearColor',\n\t'clearDepth',\n\t'clearStencil',\n\t'colorMask',\n\t'disableVertexAttribArray',\n\t'drawArrays',\n\t'drawBuffers',\n\t'drawElements',\n\t'enableVertexAttribArray',\n\t'scissor',\n\t'uniform1f',\n\t'uniform1fv',\n\t'uniform1i',\n\t'uniform1iv',\n\t'uniform1uiv',\n\t'uniform2f',\n\t'uniform2fv',\n\t'uniform2i',\n\t'uniform2iv',\n\t'uniform2uiv',\n\t'uniform3f',\n\t'uniform3fv',\n\t'uniform3i',\n\t'uniform3iv',\n\t'uniform3uiv',\n\t'uniform4f',\n\t'uniform4fv',\n\t'uniform4i',\n\t'uniform4iv',\n\t'uniform4uiv',\n\t'uniformMatrix2fv',\n\t'uniformMatrix2x3fv',\n\t'uniformMatrix2x4fv',\n\t'uniformMatrix3fv',\n\t'uniformMatrix3x2fv',\n\t'uniformMatrix3x4fv',\n\t'uniformMatrix4fv',\n\t'uniformMatrix4x2fv',\n\t'uniformMatrix4x3fv',\n\t'vertexAttrib1f',\n\t'vertexAttrib1fv',\n\t'vertexAttrib2f',\n\t'vertexAttrib2fv',\n\t'vertexAttrib3f',\n\t'vertexAttrib3fv',\n\t'vertexAttrib4f',\n\t'vertexAttrib4fv',\n\t'vertexAttribI4iv',\n\t'vertexAttribI4uiv',\n\t'vertexAttribPointer',\n\t'viewport',\n\t'makeXRCompatible',\n];\n\nconst enums: Record<string, number> = {\n\tDEPTH_BUFFER_BIT: 256,\n\tSTENCIL_BUFFER_BIT: 1024,\n\tCOLOR_BUFFER_BIT: 16384,\n\tPOINTS: 0,\n\tLINES: 1,\n\tLINE_LOOP: 2,\n\tLINE_STRIP: 3,\n\tTRIANGLES: 4,\n\tTRIANGLE_STRIP: 5,\n\tTRIANGLE_FAN: 6,\n\tZERO: 0,\n\tONE: 1,\n\tSRC_COLOR: 768,\n\tONE_MINUS_SRC_COLOR: 769,\n\tSRC_ALPHA: 770,\n\tONE_MINUS_SRC_ALPHA: 771,\n\tDST_ALPHA: 772,\n\tONE_MINUS_DST_ALPHA: 773,\n\tDST_COLOR: 774,\n\tONE_MINUS_DST_COLOR: 775,\n\tSRC_ALPHA_SATURATE: 776,\n\tFUNC_ADD: 32774,\n\tBLEND_EQUATION: 32777,\n\tBLEND_EQUATION_RGB: 32777,\n\tBLEND_EQUATION_ALPHA: 34877,\n\tFUNC_SUBTRACT: 32778,\n\tFUNC_REVERSE_SUBTRACT: 32779,\n\tBLEND_DST_RGB: 32968,\n\tBLEND_SRC_RGB: 32969,\n\tBLEND_DST_ALPHA: 32970,\n\tBLEND_SRC_ALPHA: 32971,\n\tCONSTANT_COLOR: 32769,\n\tONE_MINUS_CONSTANT_COLOR: 32770,\n\tCONSTANT_ALPHA: 32771,\n\tONE_MINUS_CONSTANT_ALPHA: 32772,\n\tBLEND_COLOR: 32773,\n\tARRAY_BUFFER: 34962,\n\tELEMENT_ARRAY_BUFFER: 34963,\n\tARRAY_BUFFER_BINDING: 34964,\n\tELEMENT_ARRAY_BUFFER_BINDING: 34965,\n\tSTREAM_DRAW: 35040,\n\tSTATIC_DRAW: 35044,\n\tDYNAMIC_DRAW: 35048,\n\tBUFFER_SIZE: 34660,\n\tBUFFER_USAGE: 34661,\n\tCURRENT_VERTEX_ATTRIB: 34342,\n\tFRONT: 1028,\n\tBACK: 1029,\n\tFRONT_AND_BACK: 1032,\n\tTEXTURE_2D: 3553,\n\tCULL_FACE: 2884,\n\tBLEND: 3042,\n\tDITHER: 3024,\n\tSTENCIL_TEST: 2960,\n\tDEPTH_TEST: 2929,\n\tSCISSOR_TEST: 3089,\n\tPOLYGON_OFFSET_FILL: 32823,\n\tSAMPLE_ALPHA_TO_COVERAGE: 32926,\n\tSAMPLE_COVERAGE: 32928,\n\tNO_ERROR: 0,\n\tINVALID_ENUM: 1280,\n\tINVALID_VALUE: 1281,\n\tINVALID_OPERATION: 1282,\n\tOUT_OF_MEMORY: 1285,\n\tCW: 2304,\n\tCCW: 2305,\n\tLINE_WIDTH: 2849,\n\tALIASED_POINT_SIZE_RANGE: 33901,\n\tALIASED_LINE_WIDTH_RANGE: 33902,\n\tCULL_FACE_MODE: 2885,\n\tFRONT_FACE: 2886,\n\tDEPTH_RANGE: 2928,\n\tDEPTH_WRITEMASK: 2930,\n\tDEPTH_CLEAR_VALUE: 2931,\n\tDEPTH_FUNC: 2932,\n\tSTENCIL_CLEAR_VALUE: 2961,\n\tSTENCIL_FUNC: 2962,\n\tSTENCIL_FAIL: 2964,\n\tSTENCIL_PASS_DEPTH_FAIL: 2965,\n\tSTENCIL_PASS_DEPTH_PASS: 2966,\n\tSTENCIL_REF: 2967,\n\tSTENCIL_VALUE_MASK: 2963,\n\tSTENCIL_WRITEMASK: 2968,\n\tSTENCIL_BACK_FUNC: 34816,\n\tSTENCIL_BACK_FAIL: 34817,\n\tSTENCIL_BACK_PASS_DEPTH_FAIL: 34818,\n\tSTENCIL_BACK_PASS_DEPTH_PASS: 34819,\n\tSTENCIL_BACK_REF: 36003,\n\tSTENCIL_BACK_VALUE_MASK: 36004,\n\tSTENCIL_BACK_WRITEMASK: 36005,\n\tVIEWPORT: 2978,\n\tSCISSOR_BOX: 3088,\n\tCOLOR_CLEAR_VALUE: 3106,\n\tCOLOR_WRITEMASK: 3107,\n\tUNPACK_ALIGNMENT: 3317,\n\tPACK_ALIGNMENT: 3333,\n\tMAX_TEXTURE_SIZE: 3379,\n\tMAX_VIEWPORT_DIMS: 3386,\n\tSUBPIXEL_BITS: 3408,\n\tRED_BITS: 3410,\n\tGREEN_BITS: 3411,\n\tBLUE_BITS: 3412,\n\tALPHA_BITS: 3413,\n\tDEPTH_BITS: 3414,\n\tSTENCIL_BITS: 3415,\n\tPOLYGON_OFFSET_UNITS: 10752,\n\tPOLYGON_OFFSET_FACTOR: 32824,\n\tTEXTURE_BINDING_2D: 32873,\n\tSAMPLE_BUFFERS: 32936,\n\tSAMPLES: 32937,\n\tSAMPLE_COVERAGE_VALUE: 32938,\n\tSAMPLE_COVERAGE_INVERT: 32939,\n\tCOMPRESSED_TEXTURE_FORMATS: 34467,\n\tDONT_CARE: 4352,\n\tFASTEST: 4353,\n\tNICEST: 4354,\n\tGENERATE_MIPMAP_HINT: 33170,\n\tBYTE: 5120,\n\tUNSIGNED_BYTE: 5121,\n\tSHORT: 5122,\n\tUNSIGNED_SHORT: 5123,\n\tINT: 5124,\n\tUNSIGNED_INT: 5125,\n\tFLOAT: 5126,\n\tDEPTH_COMPONENT: 6402,\n\tALPHA: 6406,\n\tRGB: 6407,\n\tRGBA: 6408,\n\tLUMINANCE: 6409,\n\tLUMINANCE_ALPHA: 6410,\n\tUNSIGNED_SHORT_4_4_4_4: 32819,\n\tUNSIGNED_SHORT_5_5_5_1: 32820,\n\tUNSIGNED_SHORT_5_6_5: 33635,\n\tFRAGMENT_SHADER: 35632,\n\tVERTEX_SHADER: 35633,\n\tMAX_VERTEX_ATTRIBS: 34921,\n\tMAX_VERTEX_UNIFORM_VECTORS: 36347,\n\tMAX_VARYING_VECTORS: 36348,\n\tMAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661,\n\tMAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660,\n\tMAX_TEXTURE_IMAGE_UNITS: 34930,\n\tMAX_FRAGMENT_UNIFORM_VECTORS: 36349,\n\tSHADER_TYPE: 35663,\n\tDELETE_STATUS: 35712,\n\tLINK_STATUS: 35714,\n\tVALIDATE_STATUS: 35715,\n\tATTACHED_SHADERS: 35717,\n\tACTIVE_UNIFORMS: 35718,\n\tACTIVE_ATTRIBUTES: 35721,\n\tSHADING_LANGUAGE_VERSION: 35724,\n\tCURRENT_PROGRAM: 35725,\n\tNEVER: 512,\n\tLESS: 513,\n\tEQUAL: 514,\n\tLEQUAL: 515,\n\tGREATER: 516,\n\tNOTEQUAL: 517,\n\tGEQUAL: 518,\n\tALWAYS: 519,\n\tKEEP: 7680,\n\tREPLACE: 7681,\n\tINCR: 7682,\n\tDECR: 7683,\n\tINVERT: 5386,\n\tINCR_WRAP: 34055,\n\tDECR_WRAP: 34056,\n\tVENDOR: 7936,\n\tRENDERER: 7937,\n\tVERSION: 7938,\n\tNEAREST: 9728,\n\tLINEAR: 9729,\n\tNEAREST_MIPMAP_NEAREST: 9984,\n\tLINEAR_MIPMAP_NEAREST: 9985,\n\tNEAREST_MIPMAP_LINEAR: 9986,\n\tLINEAR_MIPMAP_LINEAR: 9987,\n\tTEXTURE_MAG_FILTER: 10240,\n\tTEXTURE_MIN_FILTER: 10241,\n\tTEXTURE_WRAP_S: 10242,\n\tTEXTURE_WRAP_T: 10243,\n\tTEXTURE: 5890,\n\tTEXTURE_CUBE_MAP: 34067,\n\tTEXTURE_BINDING_CUBE_MAP: 34068,\n\tTEXTURE_CUBE_MAP_POSITIVE_X: 34069,\n\tTEXTURE_CUBE_MAP_NEGATIVE_X: 34070,\n\tTEXTURE_CUBE_MAP_POSITIVE_Y: 34071,\n\tTEXTURE_CUBE_MAP_NEGATIVE_Y: 34072,\n\tTEXTURE_CUBE_MAP_POSITIVE_Z: 34073,\n\tTEXTURE_CUBE_MAP_NEGATIVE_Z: 34074,\n\tMAX_CUBE_MAP_TEXTURE_SIZE: 34076,\n\tTEXTURE0: 33984,\n\tTEXTURE1: 33985,\n\tTEXTURE2: 33986,\n\tTEXTURE3: 33987,\n\tTEXTURE4: 33988,\n\tTEXTURE5: 33989,\n\tTEXTURE6: 33990,\n\tTEXTURE7: 33991,\n\tTEXTURE8: 33992,\n\tTEXTURE9: 33993,\n\tTEXTURE10: 33994,\n\tTEXTURE11: 33995,\n\tTEXTURE12: 33996,\n\tTEXTURE13: 33997,\n\tTEXTURE14: 33998,\n\tTEXTURE15: 33999,\n\tTEXTURE16: 34000,\n\tTEXTURE17: 34001,\n\tTEXTURE18: 34002,\n\tTEXTURE19: 34003,\n\tTEXTURE20: 34004,\n\tTEXTURE21: 34005,\n\tTEXTURE22: 34006,\n\tTEXTURE23: 34007,\n\tTEXTURE24: 34008,\n\tTEXTURE25: 34009,\n\tTEXTURE26: 34010,\n\tTEXTURE27: 34011,\n\tTEXTURE28: 34012,\n\tTEXTURE29: 34013,\n\tTEXTURE30: 34014,\n\tTEXTURE31: 34015,\n\tACTIVE_TEXTURE: 34016,\n\tREPEAT: 10497,\n\tCLAMP_TO_EDGE: 33071,\n\tMIRRORED_REPEAT: 33648,\n\tFLOAT_VEC2: 35664,\n\tFLOAT_VEC3: 35665,\n\tFLOAT_VEC4: 35666,\n\tINT_VEC2: 35667,\n\tINT_VEC3: 35668,\n\tINT_VEC4: 35669,\n\tBOOL: 35670,\n\tBOOL_VEC2: 35671,\n\tBOOL_VEC3: 35672,\n\tBOOL_VEC4: 35673,\n\tFLOAT_MAT2: 35674,\n\tFLOAT_MAT3: 35675,\n\tFLOAT_MAT4: 35676,\n\tSAMPLER_2D: 35678,\n\tSAMPLER_CUBE: 35680,\n\tVERTEX_ATTRIB_ARRAY_ENABLED: 34338,\n\tVERTEX_ATTRIB_ARRAY_SIZE: 34339,\n\tVERTEX_ATTRIB_ARRAY_STRIDE: 34340,\n\tVERTEX_ATTRIB_ARRAY_TYPE: 34341,\n\tVERTEX_ATTRIB_ARRAY_NORMALIZED: 34922,\n\tVERTEX_ATTRIB_ARRAY_POINTER: 34373,\n\tVERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975,\n\tIMPLEMENTATION_COLOR_READ_TYPE: 35738,\n\tIMPLEMENTATION_COLOR_READ_FORMAT: 35739,\n\tCOMPILE_STATUS: 35713,\n\tLOW_FLOAT: 36336,\n\tMEDIUM_FLOAT: 36337,\n\tHIGH_FLOAT: 36338,\n\tLOW_INT: 36339,\n\tMEDIUM_INT: 36340,\n\tHIGH_INT: 36341,\n\tFRAMEBUFFER: 36160,\n\tRENDERBUFFER: 36161,\n\tRGBA4: 32854,\n\tRGB5_A1: 32855,\n\tRGB565: 36194,\n\tDEPTH_COMPONENT16: 33189,\n\tSTENCIL_INDEX: 6401,\n\tSTENCIL_INDEX8: 36168,\n\tDEPTH_STENCIL: 34041,\n\tRENDERBUFFER_WIDTH: 36162,\n\tRENDERBUFFER_HEIGHT: 36163,\n\tRENDERBUFFER_INTERNAL_FORMAT: 36164,\n\tRENDERBUFFER_RED_SIZE: 36176,\n\tRENDERBUFFER_GREEN_SIZE: 36177,\n\tRENDERBUFFER_BLUE_SIZE: 36178,\n\tRENDERBUFFER_ALPHA_SIZE: 36179,\n\tRENDERBUFFER_DEPTH_SIZE: 36180,\n\tRENDERBUFFER_STENCIL_SIZE: 36181,\n\tFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048,\n\tFRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049,\n\tFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050,\n\tFRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051,\n\tCOLOR_ATTACHMENT0: 36064,\n\tDEPTH_ATTACHMENT: 36096,\n\tSTENCIL_ATTACHMENT: 36128,\n\tDEPTH_STENCIL_ATTACHMENT: 33306,\n\tNONE: 0,\n\tFRAMEBUFFER_COMPLETE: 36053,\n\tFRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054,\n\tFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055,\n\tFRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057,\n\tFRAMEBUFFER_UNSUPPORTED: 36061,\n\tFRAMEBUFFER_BINDING: 36006,\n\tRENDERBUFFER_BINDING: 36007,\n\tMAX_RENDERBUFFER_SIZE: 34024,\n\tINVALID_FRAMEBUFFER_OPERATION: 1286,\n\tUNPACK_FLIP_Y_WEBGL: 37440,\n\tUNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441,\n\tCONTEXT_LOST_WEBGL: 37442,\n\tUNPACK_COLORSPACE_CONVERSION_WEBGL: 37443,\n\tBROWSER_DEFAULT_WEBGL: 37444,\n\tREAD_BUFFER: 3074,\n\tUNPACK_ROW_LENGTH: 3314,\n\tUNPACK_SKIP_ROWS: 3315,\n\tUNPACK_SKIP_PIXELS: 3316,\n\tPACK_ROW_LENGTH: 3330,\n\tPACK_SKIP_ROWS: 3331,\n\tPACK_SKIP_PIXELS: 3332,\n\tCOLOR: 6144,\n\tDEPTH: 6145,\n\tSTENCIL: 6146,\n\tRED: 6403,\n\tUNPACK_SKIP_IMAGES: 32877,\n\tUNPACK_IMAGE_HEIGHT: 32878,\n\tTEXTURE_WRAP_R: 32882,\n\tMAX_ELEMENTS_VERTICES: 33000,\n\tMAX_ELEMENTS_INDICES: 33001,\n\tTEXTURE_MIN_LOD: 33082,\n\tTEXTURE_MAX_LOD: 33083,\n\tTEXTURE_BASE_LEVEL: 33084,\n\tTEXTURE_MAX_LEVEL: 33085,\n\tMIN: 32775,\n\tMAX: 32776,\n\tMAX_TEXTURE_LOD_BIAS: 34045,\n\tTEXTURE_COMPARE_MODE: 34892,\n\tTEXTURE_COMPARE_FUNC: 34893,\n\tCURRENT_QUERY: 34917,\n\tQUERY_RESULT: 34918,\n\tQUERY_RESULT_AVAILABLE: 34919,\n\tSTREAM_READ: 35041,\n\tSTREAM_COPY: 35042,\n\tSTATIC_READ: 35045,\n\tSTATIC_COPY: 35046,\n\tDYNAMIC_READ: 35049,\n\tDYNAMIC_COPY: 35050,\n\tMAX_DRAW_BUFFERS: 34852,\n\tMAX_FRAGMENT_UNIFORM_COMPONENTS: 35657,\n\tMAX_VERTEX_UNIFORM_COMPONENTS: 35658,\n\tFRAGMENT_SHADER_DERIVATIVE_HINT: 35723,\n\tPIXEL_PACK_BUFFER: 35051,\n\tPIXEL_UNPACK_BUFFER: 35052,\n\tPIXEL_PACK_BUFFER_BINDING: 35053,\n\tPIXEL_UNPACK_BUFFER_BINDING: 35055,\n\tSRGB: 35904,\n\tCOMPARE_REF_TO_TEXTURE: 34894,\n\tVERTEX_ATTRIB_ARRAY_INTEGER: 35069,\n\tMAX_ARRAY_TEXTURE_LAYERS: 35071,\n\tMIN_PROGRAM_TEXEL_OFFSET: 35076,\n\tMAX_PROGRAM_TEXEL_OFFSET: 35077,\n\tMAX_VARYING_COMPONENTS: 35659,\n\tTRANSFORM_FEEDBACK_BUFFER_MODE: 35967,\n\tMAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 35968,\n\tTRANSFORM_FEEDBACK_VARYINGS: 35971,\n\tTRANSFORM_FEEDBACK_BUFFER_START: 35972,\n\tTRANSFORM_FEEDBACK_BUFFER_SIZE: 35973,\n\tTRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 35976,\n\tRASTERIZER_DISCARD: 35977,\n\tMAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 35978,\n\tMAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 35979,\n\tINTERLEAVED_ATTRIBS: 35980,\n\tSEPARATE_ATTRIBS: 35981,\n\tTRANSFORM_FEEDBACK_BUFFER: 35982,\n\tTRANSFORM_FEEDBACK_BUFFER_BINDING: 35983,\n\tRED_INTEGER: 36244,\n\tRGB_INTEGER: 36248,\n\tRGBA_INTEGER: 36249,\n\tSAMPLER_CUBE_SHADOW: 36293,\n\tINT_SAMPLER_CUBE: 36300,\n\tUNSIGNED_INT_SAMPLER_CUBE: 36308,\n\tFRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 33296,\n\tFRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 33297,\n\tFRAMEBUFFER_ATTACHMENT_RED_SIZE: 33298,\n\tFRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 33299,\n\tFRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 33300,\n\tFRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 33301,\n\tFRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 33302,\n\tFRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 33303,\n\tFRAMEBUFFER_DEFAULT: 33304,\n\tUNSIGNED_NORMALIZED: 35863,\n\tDRAW_FRAMEBUFFER_BINDING: 36006,\n\tREAD_FRAMEBUFFER: 36008,\n\tDRAW_FRAMEBUFFER: 36009,\n\tREAD_FRAMEBUFFER_BINDING: 36010,\n\tRENDERBUFFER_SAMPLES: 36011,\n\tFRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 36052,\n\tMAX_COLOR_ATTACHMENTS: 36063,\n\tFRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 36182,\n\tMAX_SAMPLES: 36183,\n\tHALF_FLOAT: 5131,\n\tRG: 33319,\n\tRG_INTEGER: 33320,\n\tVERTEX_ARRAY_BINDING: 34229,\n\tSIGNED_NORMALIZED: 36764,\n\tCOPY_READ_BUFFER: 36662,\n\tCOPY_WRITE_BUFFER: 36663,\n\tCOPY_READ_BUFFER_BINDING: 36662,\n\tCOPY_WRITE_BUFFER_BINDING: 36663,\n\tUNIFORM_BUFFER: 35345,\n\tUNIFORM_BUFFER_BINDING: 35368,\n\tUNIFORM_BUFFER_START: 35369,\n\tUNIFORM_BUFFER_SIZE: 35370,\n\tMAX_VERTEX_UNIFORM_BLOCKS: 35371,\n\tMAX_FRAGMENT_UNIFORM_BLOCKS: 35373,\n\tMAX_COMBINED_UNIFORM_BLOCKS: 35374,\n\tMAX_UNIFORM_BUFFER_BINDINGS: 35375,\n\tMAX_UNIFORM_BLOCK_SIZE: 35376,\n\tMAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 35377,\n\tMAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 35379,\n\tUNIFORM_BUFFER_OFFSET_ALIGNMENT: 35380,\n\tACTIVE_UNIFORM_BLOCKS: 35382,\n\tUNIFORM_TYPE: 35383,\n\tUNIFORM_SIZE: 35384,\n\tUNIFORM_BLOCK_INDEX: 35386,\n\tUNIFORM_OFFSET: 35387,\n\tUNIFORM_ARRAY_STRIDE: 35388,\n\tUNIFORM_MATRIX_STRIDE: 35389,\n\tUNIFORM_IS_ROW_MAJOR: 35390,\n\tUNIFORM_BLOCK_BINDING: 35391,\n\tUNIFORM_BLOCK_DATA_SIZE: 35392,\n\tUNIFORM_BLOCK_ACTIVE_UNIFORMS: 35394,\n\tUNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 35395,\n\tUNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 35396,\n\tUNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 35398,\n\tINVALID_INDEX: 4294967295,\n\tMAX_VERTEX_OUTPUT_COMPONENTS: 37154,\n\tMAX_FRAGMENT_INPUT_COMPONENTS: 37157,\n\tMAX_SERVER_WAIT_TIMEOUT: 37137,\n\tOBJECT_TYPE: 37138,\n\tSYNC_CONDITION: 37139,\n\tSYNC_STATUS: 37140,\n\tSYNC_FLAGS: 37141,\n\tSYNC_FENCE: 37142,\n\tSYNC_GPU_COMMANDS_COMPLETE: 37143,\n\tUNSIGNALED: 37144,\n\tSIGNALED: 37145,\n\tALREADY_SIGNALED: 37146,\n\tTIMEOUT_EXPIRED: 37147,\n\tCONDITION_SATISFIED: 37148,\n\tWAIT_FAILED: 37149,\n\tSYNC_FLUSH_COMMANDS_BIT: 1,\n\tVERTEX_ATTRIB_ARRAY_DIVISOR: 35070,\n\tANY_SAMPLES_PASSED: 35887,\n\tANY_SAMPLES_PASSED_CONSERVATIVE: 36202,\n\tSAMPLER_BINDING: 35097,\n\tTRANSFORM_FEEDBACK: 36386,\n\tTRANSFORM_FEEDBACK_PAUSED: 36387,\n\tTRANSFORM_FEEDBACK_ACTIVE: 36388,\n\tTRANSFORM_FEEDBACK_BINDING: 36389,\n\tTEXTURE_IMMUTABLE_FORMAT: 37167,\n\tMAX_ELEMENT_INDEX: 36203,\n\tTEXTURE_IMMUTABLE_LEVELS: 33503,\n\tTIMEOUT_IGNORED: -1,\n\tMAX_CLIENT_WAIT_TIMEOUT_WEBGL: 37447,\n};\n\nconst extensions: { [key: string]: any } = {\n\t// ratified\n\tOES_texture_float: {},\n\tOES_texture_half_float: {},\n\tWEBGL_lose_context: {\n\t\tloseContext: () => {},\n\t},\n\tOES_standard_derivatives: {},\n\tOES_vertex_array_object: {\n\t\tcreateVertexArrayOES: () => {},\n\t\tbindVertexArrayOES: () => {},\n\t\tdeleteVertexArrayOES: () => {},\n\t},\n\tWEBGL_debug_renderer_info: null,\n\tWEBGL_debug_shaders: null,\n\tWEBGL_compressed_texture_s3tc: null,\n\tWEBGL_depth_texture: {},\n\tOES_element_index_uint: {},\n\tEXT_texture_filter_anisotropic: null,\n\tEXT_frag_depth: {},\n\tWEBGL_draw_buffers: {},\n\tANGLE_instanced_arrays: null,\n\tOES_texture_float_linear: null,\n\tOES_texture_half_float_linear: null,\n\tEXT_blend_minmax: { MIN_EXT: 0, MAX_EXT: 0 },\n\tEXT_shader_texture_lod: null,\n\t// community\n\tWEBGL_compressed_texture_atc: null,\n\tWEBGL_compressed_texture_pvrtc: null,\n\tEXT_color_buffer_half_float: null,\n\tWEBGL_color_buffer_float: null,\n\tEXT_sRGB: null,\n\tWEBGL_compressed_texture_etc1: null,\n};\n\nexport class WebGL2RenderingContext {\n\t[key: string]: any;\n\n\tconstructor(canvas: HTMLCanvasElement) {\n\t\t// @ts-ignore\n\t\tthis.canvas = canvas;\n\t\t// @ts-ignore\n\t\tthis.drawingBufferWidth = canvas.width;\n\t\t// @ts-ignore\n\t\tthis.drawingBufferHeight = canvas.height;\n\n\t\tfor (const method of functions) {\n\t\t\tthis[method] ??= () => {};\n\t\t}\n\n\t\tObject.assign(this, enums);\n\t}\n\n\tgetShaderPrecisionFormat = () => {\n\t\treturn {\n\t\t\trangeMin: 127,\n\t\t\trangeMax: 127,\n\t\t\tprecision: 23,\n\t\t};\n\t};\n\n\tprivate GL_VERSION = 7938;\n\tprivate SCISSOR_BOX = 3088;\n\tprivate VIEWPORT = 2978;\n\n\t// @ts-ignore\n\tgetParameter(paramId: number) {\n\t\tswitch (paramId) {\n\t\t\tcase this.GL_VERSION:\n\t\t\t\treturn ['WebGL2'];\n\t\t\tcase this.SCISSOR_BOX:\n\t\t\tcase this.VIEWPORT:\n\t\t\t\treturn [0, 0, 1, 1];\n\t\t}\n\t}\n\n\tgetExtension(ext: string) {\n\t\treturn extensions[ext];\n\t}\n\n\tgetProgramInfoLog = () => '';\n\n\tgetShaderInfoLog = () => '';\n}\n","import { WebGL2RenderingContext } from './web-gl-rendering-context';\n\nexport function createMockCanvas({\n\twidth = 1280,\n\theight = 800,\n\tbeforeReturn,\n}: {\n\twidth?: number;\n\theight?: number;\n\tbeforeReturn?: (canvas: HTMLCanvasElement) => void;\n}) {\n\tlet canvas: HTMLCanvasElement;\n\n\tif (typeof document !== 'undefined' && typeof document.createElement === 'function') {\n\t\tcanvas = document.createElement('canvas');\n\t} else {\n\t\tcanvas = {\n\t\t\tstyle: {},\n\t\t\taddEventListener: (() => {}) as any,\n\t\t\tremoveEventListener: (() => {}) as any,\n\t\t\tclientWidth: width,\n\t\t\tclientHeight: height,\n\t\t\tgetContext: (() => new WebGL2RenderingContext(canvas)) as any,\n\t\t} as HTMLCanvasElement;\n\t}\n\tcanvas.width = width;\n\tcanvas.height = height;\n\n\tif (globalThis.HTMLCanvasElement) {\n\t\tconst getContext = HTMLCanvasElement.prototype.getContext;\n\t\tHTMLCanvasElement.prototype.getContext = function (\n\t\t\tthis: HTMLCanvasElement,\n\t\t\t...args: Parameters<typeof getContext>\n\t\t) {\n\t\t\tconst id = args[0];\n\t\t\tif (id.startsWith('webgl')) return new WebGL2RenderingContext(this);\n\t\t\treturn getContext.apply(this, args);\n\t\t} as any;\n\t}\n\n\tbeforeReturn?.(canvas);\n\n\tclass WebGLRenderingContext extends WebGL2RenderingContext {}\n\t// @ts-expect-error - WebGLRenderingContext is not defined in the global scope for non-browser\n\tglobalThis.WebGLRenderingContext ??= WebGLRenderingContext;\n\t// @ts-expect-error - WebGL2RenderingContext is not defined in the global scope for non-browser\n\tglobalThis.WebGL2RenderingContext ??= WebGL2RenderingContext;\n\n\treturn canvas;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, provideEnvironmentInitializer, Type } from '@angular/core';\nimport { ComponentFixture, TestBed } from '@angular/core/testing';\nimport {\n\tgetLocalState,\n\tinjectCanvasRootInitializer,\n\tNGT_STORE,\n\tNgtAnyRecord,\n\tNgtCanvasOptions,\n\tNgtEventHandlers,\n\tNgtInstanceNode,\n\tNgtSignalStore,\n\tNgtState,\n\tprovideStore,\n} from 'angular-three';\nimport { Object3D } from 'three';\nimport { NgtTestCanvas } from './test-canvas';\nimport { createMockCanvas } from './utils/mock-canvas';\n\nexport interface NgtTestGraphedObject {\n\ttype: string;\n\tname: string;\n\tchildren: NgtTestGraphedObject[];\n}\n\nexport class NgtTestBed {\n\tstatic create<T extends Type<any>>(\n\t\tsceneGraph: T,\n\t\t{\n\t\t\tmockCanvasOptions = {},\n\t\t\tcanvasConfiguration = {},\n\t\t\terrorOnUnknownElements,\n\t\t\tproviders,\n\t\t\tdeclarations,\n\t\t\timports,\n\t\t\tteardown,\n\t\t\tdeferBlockBehavior,\n\t\t}: {\n\t\t\tmockCanvasOptions?: { width?: number; height?: number; beforeReturn?: (canvas: HTMLCanvasElement) => void };\n\t\t\tcanvasConfiguration?: Partial<Omit<NgtCanvasOptions, 'frameloop' | 'size' | 'events'>>;\n\t\t} & Omit<Parameters<TestBed['configureTestingModule']>[0], 'schemas'> = {},\n\t) {\n\t\tconst mockedCanvas = createMockCanvas(mockCanvasOptions);\n\n\t\tconst fixture = TestBed.configureTestingModule({\n\t\t\tproviders: [\n\t\t\t\tprovideStore(),\n\t\t\t\tprovideEnvironmentInitializer(() => {\n\t\t\t\t\tconst initializerFn = (() => {\n\t\t\t\t\t\tconst initRoot = injectCanvasRootInitializer();\n\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\tconst configurator = initRoot(mockedCanvas);\n\t\t\t\t\t\t\tconfigurator.configure({\n\t\t\t\t\t\t\t\tframeloop: 'never',\n\t\t\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t\t\twidth: mockCanvasOptions.width ?? mockedCanvas.width ?? 1280,\n\t\t\t\t\t\t\t\t\theight: mockCanvasOptions.height ?? mockedCanvas.height ?? 800,\n\t\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...canvasConfiguration,\n\t\t\t\t\t\t\t\tevents: undefined,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t};\n\t\t\t\t\t})();\n\t\t\t\t\treturn initializerFn();\n\t\t\t\t}),\n\t\t\t\t...(providers ?? []),\n\t\t\t],\n\t\t\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\t\t\terrorOnUnknownElements: errorOnUnknownElements ?? false,\n\t\t\tdeclarations,\n\t\t\timports,\n\t\t\tteardown,\n\t\t\tdeferBlockBehavior,\n\t\t}).createComponent(NgtTestCanvas);\n\n\t\tfixture.componentRef.setInput('sceneGraph', sceneGraph);\n\t\tfixture.detectChanges();\n\n\t\tconst store = TestBed.inject(NGT_STORE);\n\n\t\tTestBed.flushEffects();\n\n\t\treturn {\n\t\t\tstore,\n\t\t\tfixture,\n\t\t\tscene: store.snapshot.scene,\n\t\t\tsceneInstanceNode: getLocalState(store.snapshot.scene)!,\n\t\t\tcanvas: mockedCanvas,\n\t\t\tdestroy: fixture.componentInstance.destroy.bind(fixture.componentInstance),\n\t\t\tfireEvent: this.createEventFirer(store, fixture),\n\t\t\tadvance: this.createAdvance(store),\n\t\t\ttoGraph: this.createToGraph(store),\n\t\t};\n\t}\n\n\tstatic createToGraph(store: NgtSignalStore<NgtState>) {\n\t\tfunction graphify(type: string, name: string, children: NgtTestGraphedObject[]): NgtTestGraphedObject {\n\t\t\treturn { type, name, children };\n\t\t}\n\n\t\tfunction toGraph(node: Object3D): NgtTestGraphedObject[] {\n\t\t\treturn node.children.map((child) => graphify(child.type, child.name || '', toGraph(child)));\n\t\t}\n\n\t\treturn () => {\n\t\t\tconst state = store.snapshot;\n\t\t\treturn toGraph(state.scene);\n\t\t};\n\t}\n\n\tstatic createAdvance(store: NgtSignalStore<NgtState>) {\n\t\treturn async (frames: number, delta: number | number[] = 1) => {\n\t\t\tconst state = store.snapshot;\n\t\t\tconst subscribers = state.internal.subscribers;\n\n\t\t\tconst promises: Promise<void>[] = [];\n\n\t\t\tfor (const subscriber of subscribers) {\n\t\t\t\tfor (let i = 0; i < frames; i++) {\n\t\t\t\t\tif (Array.isArray(delta)) {\n\t\t\t\t\t\tpromises.push(\n\t\t\t\t\t\t\tnew Promise((res) => {\n\t\t\t\t\t\t\t\tsubscriber.callback({ ...state, delta: delta[i] || delta[-1] });\n\t\t\t\t\t\t\t\tres();\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpromises.push(\n\t\t\t\t\t\t\tnew Promise((res) => {\n\t\t\t\t\t\t\t\tsubscriber.callback({ ...state, delta });\n\t\t\t\t\t\t\t\tres();\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait Promise.all(promises);\n\t\t};\n\t}\n\n\tstatic createEventFirer(store: NgtSignalStore<NgtState>, fixture: ComponentFixture<NgtTestCanvas>) {\n\t\tlet autoDetectChanges = true;\n\n\t\tasync function fireEvent(el: NgtInstanceNode, eventName: keyof NgtEventHandlers, eventData: NgtAnyRecord = {}) {\n\t\t\tconst localState = getLocalState(el);\n\t\t\tif (!localState) {\n\t\t\t\tconsole.warn(`[NGT Test] ${el} has no local state`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst handler = localState.handlers[eventName];\n\t\t\tif (!handler) {\n\t\t\t\tconsole.warn(`[NGT Test] ${el} has no ${eventName} handler`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst raycastEvent = {\n\t\t\t\tcamera: store.snapshot.camera,\n\t\t\t\tstopPropagation: () => {},\n\t\t\t\ttarget: el,\n\t\t\t\tcurrentTarget: el,\n\t\t\t\tsourceEvent: eventData,\n\t\t\t\tnativeEvent: eventData,\n\t\t\t\tobject: el,\n\t\t\t\teventObject: el,\n\t\t\t\t...eventData,\n\t\t\t};\n\n\t\t\tconst result = await handler(raycastEvent as any);\n\n\t\t\tif (autoDetectChanges) {\n\t\t\t\tfixture.detectChanges();\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tfireEvent.setAutoDetectChanges = (auto: boolean) => {\n\t\t\tautoDetectChanges = auto;\n\t\t};\n\n\t\treturn fireEvent;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-testing.mjs","sources":["../../../../libs/core/testing/src/lib/test-canvas.ts","../../../../libs/core/testing/src/lib/utils/web-gl-rendering-context.ts","../../../../libs/core/testing/src/lib/utils/mock-canvas.ts","../../../../libs/core/testing/src/lib/test-bed.ts","../../../../libs/core/testing/src/angular-three-testing.ts"],"sourcesContent":["import {\n\tafterNextRender,\n\tChangeDetectionStrategy,\n\tComponent,\n\tComponentRef,\n\tcreateEnvironmentInjector,\n\tDestroyRef,\n\teffect,\n\tEnvironmentInjector,\n\tinject,\n\tInjector,\n\tinput,\n\tType,\n\tViewContainerRef,\n} from '@angular/core';\nimport { extend, injectStore, provideNgtRenderer } from 'angular-three';\nimport * as THREE from 'three';\n\n@Component({\n\tselector: 'ngt-test-canvas',\n\ttemplate: '',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtTestCanvas {\n\tsceneGraph = input.required<Type<any>>();\n\n\tprivate ref?: ComponentRef<any>;\n\tprivate environmentInjector?: EnvironmentInjector;\n\n\tconstructor() {\n\t\textend(THREE);\n\n\t\tconst vcr = inject(ViewContainerRef);\n\t\tconst parentEnvironmentInjector = inject(EnvironmentInjector);\n\t\tconst parentInjector = inject(Injector);\n\t\tconst store = injectStore();\n\n\t\tafterNextRender(() => {\n\t\t\teffect(\n\t\t\t\t() => {\n\t\t\t\t\tconst sceneGraph = this.sceneGraph();\n\n\t\t\t\t\tthis.environmentInjector = createEnvironmentInjector([provideNgtRenderer(store)], parentEnvironmentInjector);\n\n\t\t\t\t\tthis.ref = vcr.createComponent(sceneGraph, {\n\t\t\t\t\t\tenvironmentInjector: this.environmentInjector,\n\t\t\t\t\t\tinjector: parentInjector,\n\t\t\t\t\t});\n\t\t\t\t\tthis.ref.changeDetectorRef.detectChanges();\n\t\t\t\t},\n\t\t\t\t{ injector: parentInjector },\n\t\t\t);\n\t\t});\n\n\t\tinject(DestroyRef).onDestroy(() => {\n\t\t\tthis.destroy();\n\t\t});\n\t}\n\n\tdestroy() {\n\t\tthis.environmentInjector?.destroy();\n\t\tthis.ref?.destroy();\n\t}\n}\n","const functions = [\n\t'activeTexture',\n\t'attachShader',\n\t'beginQuery',\n\t'beginTransformFeedback',\n\t'bindAttribLocation',\n\t'bindBufferBase',\n\t'bindBufferRange',\n\t'bindRenderbuffer',\n\t'bindSampler',\n\t'bindTransformFeedback',\n\t'bindVertexArray',\n\t'blendColor',\n\t'blendEquation',\n\t'blendEquationSeparate',\n\t'blendFunc',\n\t'blendFuncSeparate',\n\t'blitFramebuffer',\n\t'bufferData',\n\t'bufferSubData',\n\t'checkFramebufferStatus',\n\t'clientWaitSync',\n\t'compileShader',\n\t'compressedTexImage2D',\n\t'compressedTexImage3D',\n\t'compressedTexSubImage2D',\n\t'compressedTexSubImage3D',\n\t'copyBufferSubData',\n\t'copyTexImage2D',\n\t'copyTexSubImage2D',\n\t'copyTexSubImage3D',\n\t'createBuffer',\n\t'createFramebuffer',\n\t'createProgram',\n\t'createQuery',\n\t'createRenderbuffer',\n\t'createSampler',\n\t'createShader',\n\t'createTexture',\n\t'createTransformFeedback',\n\t'createVertexArray',\n\t'cullFace',\n\t'deleteBuffer',\n\t'deleteFramebuffer',\n\t'deleteProgram',\n\t'deleteQuery',\n\t'deleteRenderbuffer',\n\t'deleteSampler',\n\t'deleteShader',\n\t'deleteSync',\n\t'deleteTexture',\n\t'deleteTransformFeedback',\n\t'deleteVertexArray',\n\t'depthFunc',\n\t'depthMask',\n\t'depthRange',\n\t'detachShader',\n\t'disable',\n\t'drawArraysInstanced',\n\t'drawElementsInstanced',\n\t'drawRangeElements',\n\t'enable',\n\t'endQuery',\n\t'endTransformFeedback',\n\t'fenceSync',\n\t'finish',\n\t'flush',\n\t'framebufferRenderbuffer',\n\t'framebufferTexture2D',\n\t'framebufferTextureLayer',\n\t'frontFace',\n\t'generateMipmap',\n\t'getActiveAttrib',\n\t'getActiveUniform',\n\t'getActiveUniformBlockName',\n\t'getActiveUniformBlockParameter',\n\t'getActiveUniforms',\n\t'getAttachedShaders',\n\t'getAttribLocation',\n\t'getBufferParameter',\n\t'getBufferSubData',\n\t'getContextAttributes',\n\t'getError',\n\t'getExtension',\n\t'getFragDataLocation',\n\t'getFramebufferAttachmentParameter',\n\t'getIndexedParameter',\n\t'getInternalformatParameter',\n\t'getParameter',\n\t'getProgramInfoLog',\n\t'getProgramParameter',\n\t'getQuery',\n\t'getQueryParameter',\n\t'getRenderbufferParameter',\n\t'getSamplerParameter',\n\t'getShaderInfoLog',\n\t'getShaderParameter',\n\t'getShaderPrecisionFormat',\n\t'getShaderSource',\n\t'getSupportedExtensions',\n\t'getSyncParameter',\n\t'getTexParameter',\n\t'getTransformFeedbackVarying',\n\t'getUniform',\n\t'getUniformBlockIndex',\n\t'getUniformIndices',\n\t'getUniformLocation',\n\t'getVertexAttrib',\n\t'getVertexAttribOffset',\n\t'hint',\n\t'invalidateFramebuffer',\n\t'invalidateSubFramebuffer',\n\t'isBuffer',\n\t'isContextLost',\n\t'isEnabled',\n\t'isFramebuffer',\n\t'isProgram',\n\t'isQuery',\n\t'isRenderbuffer',\n\t'isSampler',\n\t'isShader',\n\t'isSync',\n\t'isTexture',\n\t'isTransformFeedback',\n\t'isVertexArray',\n\t'lineWidth',\n\t'linkProgram',\n\t'pauseTransformFeedback',\n\t'pixelStorei',\n\t'polygonOffset',\n\t'readBuffer',\n\t'readPixels',\n\t'renderbufferStorage',\n\t'renderbufferStorageMultisample',\n\t'resumeTransformFeedback',\n\t'sampleCoverage',\n\t'samplerParameterf',\n\t'samplerParameteri',\n\t'shaderSource',\n\t'stencilFunc',\n\t'stencilFuncSeparate',\n\t'stencilMask',\n\t'stencilMaskSeparate',\n\t'stencilOp',\n\t'stencilOpSeparate',\n\t'texImage2D',\n\t'texImage3D',\n\t'texParameterf',\n\t'texParameteri',\n\t'texStorage2D',\n\t'texStorage3D',\n\t'texSubImage2D',\n\t'texSubImage3D',\n\t'transformFeedbackVaryings',\n\t'uniform1ui',\n\t'uniform2ui',\n\t'uniform3ui',\n\t'uniform4ui',\n\t'uniformBlockBinding',\n\t'useProgram',\n\t'validateProgram',\n\t'vertexAttribDivisor',\n\t'vertexAttribI4i',\n\t'vertexAttribI4ui',\n\t'vertexAttribIPointer',\n\t'waitSync',\n\t'bindBuffer',\n\t'bindFramebuffer',\n\t'bindTexture',\n\t'clear',\n\t'clearBufferfi',\n\t'clearBufferfv',\n\t'clearBufferiv',\n\t'clearBufferuiv',\n\t'clearColor',\n\t'clearDepth',\n\t'clearStencil',\n\t'colorMask',\n\t'disableVertexAttribArray',\n\t'drawArrays',\n\t'drawBuffers',\n\t'drawElements',\n\t'enableVertexAttribArray',\n\t'scissor',\n\t'uniform1f',\n\t'uniform1fv',\n\t'uniform1i',\n\t'uniform1iv',\n\t'uniform1uiv',\n\t'uniform2f',\n\t'uniform2fv',\n\t'uniform2i',\n\t'uniform2iv',\n\t'uniform2uiv',\n\t'uniform3f',\n\t'uniform3fv',\n\t'uniform3i',\n\t'uniform3iv',\n\t'uniform3uiv',\n\t'uniform4f',\n\t'uniform4fv',\n\t'uniform4i',\n\t'uniform4iv',\n\t'uniform4uiv',\n\t'uniformMatrix2fv',\n\t'uniformMatrix2x3fv',\n\t'uniformMatrix2x4fv',\n\t'uniformMatrix3fv',\n\t'uniformMatrix3x2fv',\n\t'uniformMatrix3x4fv',\n\t'uniformMatrix4fv',\n\t'uniformMatrix4x2fv',\n\t'uniformMatrix4x3fv',\n\t'vertexAttrib1f',\n\t'vertexAttrib1fv',\n\t'vertexAttrib2f',\n\t'vertexAttrib2fv',\n\t'vertexAttrib3f',\n\t'vertexAttrib3fv',\n\t'vertexAttrib4f',\n\t'vertexAttrib4fv',\n\t'vertexAttribI4iv',\n\t'vertexAttribI4uiv',\n\t'vertexAttribPointer',\n\t'viewport',\n\t'makeXRCompatible',\n];\n\nconst enums: Record<string, number> = {\n\tDEPTH_BUFFER_BIT: 256,\n\tSTENCIL_BUFFER_BIT: 1024,\n\tCOLOR_BUFFER_BIT: 16384,\n\tPOINTS: 0,\n\tLINES: 1,\n\tLINE_LOOP: 2,\n\tLINE_STRIP: 3,\n\tTRIANGLES: 4,\n\tTRIANGLE_STRIP: 5,\n\tTRIANGLE_FAN: 6,\n\tZERO: 0,\n\tONE: 1,\n\tSRC_COLOR: 768,\n\tONE_MINUS_SRC_COLOR: 769,\n\tSRC_ALPHA: 770,\n\tONE_MINUS_SRC_ALPHA: 771,\n\tDST_ALPHA: 772,\n\tONE_MINUS_DST_ALPHA: 773,\n\tDST_COLOR: 774,\n\tONE_MINUS_DST_COLOR: 775,\n\tSRC_ALPHA_SATURATE: 776,\n\tFUNC_ADD: 32774,\n\tBLEND_EQUATION: 32777,\n\tBLEND_EQUATION_RGB: 32777,\n\tBLEND_EQUATION_ALPHA: 34877,\n\tFUNC_SUBTRACT: 32778,\n\tFUNC_REVERSE_SUBTRACT: 32779,\n\tBLEND_DST_RGB: 32968,\n\tBLEND_SRC_RGB: 32969,\n\tBLEND_DST_ALPHA: 32970,\n\tBLEND_SRC_ALPHA: 32971,\n\tCONSTANT_COLOR: 32769,\n\tONE_MINUS_CONSTANT_COLOR: 32770,\n\tCONSTANT_ALPHA: 32771,\n\tONE_MINUS_CONSTANT_ALPHA: 32772,\n\tBLEND_COLOR: 32773,\n\tARRAY_BUFFER: 34962,\n\tELEMENT_ARRAY_BUFFER: 34963,\n\tARRAY_BUFFER_BINDING: 34964,\n\tELEMENT_ARRAY_BUFFER_BINDING: 34965,\n\tSTREAM_DRAW: 35040,\n\tSTATIC_DRAW: 35044,\n\tDYNAMIC_DRAW: 35048,\n\tBUFFER_SIZE: 34660,\n\tBUFFER_USAGE: 34661,\n\tCURRENT_VERTEX_ATTRIB: 34342,\n\tFRONT: 1028,\n\tBACK: 1029,\n\tFRONT_AND_BACK: 1032,\n\tTEXTURE_2D: 3553,\n\tCULL_FACE: 2884,\n\tBLEND: 3042,\n\tDITHER: 3024,\n\tSTENCIL_TEST: 2960,\n\tDEPTH_TEST: 2929,\n\tSCISSOR_TEST: 3089,\n\tPOLYGON_OFFSET_FILL: 32823,\n\tSAMPLE_ALPHA_TO_COVERAGE: 32926,\n\tSAMPLE_COVERAGE: 32928,\n\tNO_ERROR: 0,\n\tINVALID_ENUM: 1280,\n\tINVALID_VALUE: 1281,\n\tINVALID_OPERATION: 1282,\n\tOUT_OF_MEMORY: 1285,\n\tCW: 2304,\n\tCCW: 2305,\n\tLINE_WIDTH: 2849,\n\tALIASED_POINT_SIZE_RANGE: 33901,\n\tALIASED_LINE_WIDTH_RANGE: 33902,\n\tCULL_FACE_MODE: 2885,\n\tFRONT_FACE: 2886,\n\tDEPTH_RANGE: 2928,\n\tDEPTH_WRITEMASK: 2930,\n\tDEPTH_CLEAR_VALUE: 2931,\n\tDEPTH_FUNC: 2932,\n\tSTENCIL_CLEAR_VALUE: 2961,\n\tSTENCIL_FUNC: 2962,\n\tSTENCIL_FAIL: 2964,\n\tSTENCIL_PASS_DEPTH_FAIL: 2965,\n\tSTENCIL_PASS_DEPTH_PASS: 2966,\n\tSTENCIL_REF: 2967,\n\tSTENCIL_VALUE_MASK: 2963,\n\tSTENCIL_WRITEMASK: 2968,\n\tSTENCIL_BACK_FUNC: 34816,\n\tSTENCIL_BACK_FAIL: 34817,\n\tSTENCIL_BACK_PASS_DEPTH_FAIL: 34818,\n\tSTENCIL_BACK_PASS_DEPTH_PASS: 34819,\n\tSTENCIL_BACK_REF: 36003,\n\tSTENCIL_BACK_VALUE_MASK: 36004,\n\tSTENCIL_BACK_WRITEMASK: 36005,\n\tVIEWPORT: 2978,\n\tSCISSOR_BOX: 3088,\n\tCOLOR_CLEAR_VALUE: 3106,\n\tCOLOR_WRITEMASK: 3107,\n\tUNPACK_ALIGNMENT: 3317,\n\tPACK_ALIGNMENT: 3333,\n\tMAX_TEXTURE_SIZE: 3379,\n\tMAX_VIEWPORT_DIMS: 3386,\n\tSUBPIXEL_BITS: 3408,\n\tRED_BITS: 3410,\n\tGREEN_BITS: 3411,\n\tBLUE_BITS: 3412,\n\tALPHA_BITS: 3413,\n\tDEPTH_BITS: 3414,\n\tSTENCIL_BITS: 3415,\n\tPOLYGON_OFFSET_UNITS: 10752,\n\tPOLYGON_OFFSET_FACTOR: 32824,\n\tTEXTURE_BINDING_2D: 32873,\n\tSAMPLE_BUFFERS: 32936,\n\tSAMPLES: 32937,\n\tSAMPLE_COVERAGE_VALUE: 32938,\n\tSAMPLE_COVERAGE_INVERT: 32939,\n\tCOMPRESSED_TEXTURE_FORMATS: 34467,\n\tDONT_CARE: 4352,\n\tFASTEST: 4353,\n\tNICEST: 4354,\n\tGENERATE_MIPMAP_HINT: 33170,\n\tBYTE: 5120,\n\tUNSIGNED_BYTE: 5121,\n\tSHORT: 5122,\n\tUNSIGNED_SHORT: 5123,\n\tINT: 5124,\n\tUNSIGNED_INT: 5125,\n\tFLOAT: 5126,\n\tDEPTH_COMPONENT: 6402,\n\tALPHA: 6406,\n\tRGB: 6407,\n\tRGBA: 6408,\n\tLUMINANCE: 6409,\n\tLUMINANCE_ALPHA: 6410,\n\tUNSIGNED_SHORT_4_4_4_4: 32819,\n\tUNSIGNED_SHORT_5_5_5_1: 32820,\n\tUNSIGNED_SHORT_5_6_5: 33635,\n\tFRAGMENT_SHADER: 35632,\n\tVERTEX_SHADER: 35633,\n\tMAX_VERTEX_ATTRIBS: 34921,\n\tMAX_VERTEX_UNIFORM_VECTORS: 36347,\n\tMAX_VARYING_VECTORS: 36348,\n\tMAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661,\n\tMAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660,\n\tMAX_TEXTURE_IMAGE_UNITS: 34930,\n\tMAX_FRAGMENT_UNIFORM_VECTORS: 36349,\n\tSHADER_TYPE: 35663,\n\tDELETE_STATUS: 35712,\n\tLINK_STATUS: 35714,\n\tVALIDATE_STATUS: 35715,\n\tATTACHED_SHADERS: 35717,\n\tACTIVE_UNIFORMS: 35718,\n\tACTIVE_ATTRIBUTES: 35721,\n\tSHADING_LANGUAGE_VERSION: 35724,\n\tCURRENT_PROGRAM: 35725,\n\tNEVER: 512,\n\tLESS: 513,\n\tEQUAL: 514,\n\tLEQUAL: 515,\n\tGREATER: 516,\n\tNOTEQUAL: 517,\n\tGEQUAL: 518,\n\tALWAYS: 519,\n\tKEEP: 7680,\n\tREPLACE: 7681,\n\tINCR: 7682,\n\tDECR: 7683,\n\tINVERT: 5386,\n\tINCR_WRAP: 34055,\n\tDECR_WRAP: 34056,\n\tVENDOR: 7936,\n\tRENDERER: 7937,\n\tVERSION: 7938,\n\tNEAREST: 9728,\n\tLINEAR: 9729,\n\tNEAREST_MIPMAP_NEAREST: 9984,\n\tLINEAR_MIPMAP_NEAREST: 9985,\n\tNEAREST_MIPMAP_LINEAR: 9986,\n\tLINEAR_MIPMAP_LINEAR: 9987,\n\tTEXTURE_MAG_FILTER: 10240,\n\tTEXTURE_MIN_FILTER: 10241,\n\tTEXTURE_WRAP_S: 10242,\n\tTEXTURE_WRAP_T: 10243,\n\tTEXTURE: 5890,\n\tTEXTURE_CUBE_MAP: 34067,\n\tTEXTURE_BINDING_CUBE_MAP: 34068,\n\tTEXTURE_CUBE_MAP_POSITIVE_X: 34069,\n\tTEXTURE_CUBE_MAP_NEGATIVE_X: 34070,\n\tTEXTURE_CUBE_MAP_POSITIVE_Y: 34071,\n\tTEXTURE_CUBE_MAP_NEGATIVE_Y: 34072,\n\tTEXTURE_CUBE_MAP_POSITIVE_Z: 34073,\n\tTEXTURE_CUBE_MAP_NEGATIVE_Z: 34074,\n\tMAX_CUBE_MAP_TEXTURE_SIZE: 34076,\n\tTEXTURE0: 33984,\n\tTEXTURE1: 33985,\n\tTEXTURE2: 33986,\n\tTEXTURE3: 33987,\n\tTEXTURE4: 33988,\n\tTEXTURE5: 33989,\n\tTEXTURE6: 33990,\n\tTEXTURE7: 33991,\n\tTEXTURE8: 33992,\n\tTEXTURE9: 33993,\n\tTEXTURE10: 33994,\n\tTEXTURE11: 33995,\n\tTEXTURE12: 33996,\n\tTEXTURE13: 33997,\n\tTEXTURE14: 33998,\n\tTEXTURE15: 33999,\n\tTEXTURE16: 34000,\n\tTEXTURE17: 34001,\n\tTEXTURE18: 34002,\n\tTEXTURE19: 34003,\n\tTEXTURE20: 34004,\n\tTEXTURE21: 34005,\n\tTEXTURE22: 34006,\n\tTEXTURE23: 34007,\n\tTEXTURE24: 34008,\n\tTEXTURE25: 34009,\n\tTEXTURE26: 34010,\n\tTEXTURE27: 34011,\n\tTEXTURE28: 34012,\n\tTEXTURE29: 34013,\n\tTEXTURE30: 34014,\n\tTEXTURE31: 34015,\n\tACTIVE_TEXTURE: 34016,\n\tREPEAT: 10497,\n\tCLAMP_TO_EDGE: 33071,\n\tMIRRORED_REPEAT: 33648,\n\tFLOAT_VEC2: 35664,\n\tFLOAT_VEC3: 35665,\n\tFLOAT_VEC4: 35666,\n\tINT_VEC2: 35667,\n\tINT_VEC3: 35668,\n\tINT_VEC4: 35669,\n\tBOOL: 35670,\n\tBOOL_VEC2: 35671,\n\tBOOL_VEC3: 35672,\n\tBOOL_VEC4: 35673,\n\tFLOAT_MAT2: 35674,\n\tFLOAT_MAT3: 35675,\n\tFLOAT_MAT4: 35676,\n\tSAMPLER_2D: 35678,\n\tSAMPLER_CUBE: 35680,\n\tVERTEX_ATTRIB_ARRAY_ENABLED: 34338,\n\tVERTEX_ATTRIB_ARRAY_SIZE: 34339,\n\tVERTEX_ATTRIB_ARRAY_STRIDE: 34340,\n\tVERTEX_ATTRIB_ARRAY_TYPE: 34341,\n\tVERTEX_ATTRIB_ARRAY_NORMALIZED: 34922,\n\tVERTEX_ATTRIB_ARRAY_POINTER: 34373,\n\tVERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975,\n\tIMPLEMENTATION_COLOR_READ_TYPE: 35738,\n\tIMPLEMENTATION_COLOR_READ_FORMAT: 35739,\n\tCOMPILE_STATUS: 35713,\n\tLOW_FLOAT: 36336,\n\tMEDIUM_FLOAT: 36337,\n\tHIGH_FLOAT: 36338,\n\tLOW_INT: 36339,\n\tMEDIUM_INT: 36340,\n\tHIGH_INT: 36341,\n\tFRAMEBUFFER: 36160,\n\tRENDERBUFFER: 36161,\n\tRGBA4: 32854,\n\tRGB5_A1: 32855,\n\tRGB565: 36194,\n\tDEPTH_COMPONENT16: 33189,\n\tSTENCIL_INDEX: 6401,\n\tSTENCIL_INDEX8: 36168,\n\tDEPTH_STENCIL: 34041,\n\tRENDERBUFFER_WIDTH: 36162,\n\tRENDERBUFFER_HEIGHT: 36163,\n\tRENDERBUFFER_INTERNAL_FORMAT: 36164,\n\tRENDERBUFFER_RED_SIZE: 36176,\n\tRENDERBUFFER_GREEN_SIZE: 36177,\n\tRENDERBUFFER_BLUE_SIZE: 36178,\n\tRENDERBUFFER_ALPHA_SIZE: 36179,\n\tRENDERBUFFER_DEPTH_SIZE: 36180,\n\tRENDERBUFFER_STENCIL_SIZE: 36181,\n\tFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048,\n\tFRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049,\n\tFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050,\n\tFRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051,\n\tCOLOR_ATTACHMENT0: 36064,\n\tDEPTH_ATTACHMENT: 36096,\n\tSTENCIL_ATTACHMENT: 36128,\n\tDEPTH_STENCIL_ATTACHMENT: 33306,\n\tNONE: 0,\n\tFRAMEBUFFER_COMPLETE: 36053,\n\tFRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054,\n\tFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055,\n\tFRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057,\n\tFRAMEBUFFER_UNSUPPORTED: 36061,\n\tFRAMEBUFFER_BINDING: 36006,\n\tRENDERBUFFER_BINDING: 36007,\n\tMAX_RENDERBUFFER_SIZE: 34024,\n\tINVALID_FRAMEBUFFER_OPERATION: 1286,\n\tUNPACK_FLIP_Y_WEBGL: 37440,\n\tUNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441,\n\tCONTEXT_LOST_WEBGL: 37442,\n\tUNPACK_COLORSPACE_CONVERSION_WEBGL: 37443,\n\tBROWSER_DEFAULT_WEBGL: 37444,\n\tREAD_BUFFER: 3074,\n\tUNPACK_ROW_LENGTH: 3314,\n\tUNPACK_SKIP_ROWS: 3315,\n\tUNPACK_SKIP_PIXELS: 3316,\n\tPACK_ROW_LENGTH: 3330,\n\tPACK_SKIP_ROWS: 3331,\n\tPACK_SKIP_PIXELS: 3332,\n\tCOLOR: 6144,\n\tDEPTH: 6145,\n\tSTENCIL: 6146,\n\tRED: 6403,\n\tUNPACK_SKIP_IMAGES: 32877,\n\tUNPACK_IMAGE_HEIGHT: 32878,\n\tTEXTURE_WRAP_R: 32882,\n\tMAX_ELEMENTS_VERTICES: 33000,\n\tMAX_ELEMENTS_INDICES: 33001,\n\tTEXTURE_MIN_LOD: 33082,\n\tTEXTURE_MAX_LOD: 33083,\n\tTEXTURE_BASE_LEVEL: 33084,\n\tTEXTURE_MAX_LEVEL: 33085,\n\tMIN: 32775,\n\tMAX: 32776,\n\tMAX_TEXTURE_LOD_BIAS: 34045,\n\tTEXTURE_COMPARE_MODE: 34892,\n\tTEXTURE_COMPARE_FUNC: 34893,\n\tCURRENT_QUERY: 34917,\n\tQUERY_RESULT: 34918,\n\tQUERY_RESULT_AVAILABLE: 34919,\n\tSTREAM_READ: 35041,\n\tSTREAM_COPY: 35042,\n\tSTATIC_READ: 35045,\n\tSTATIC_COPY: 35046,\n\tDYNAMIC_READ: 35049,\n\tDYNAMIC_COPY: 35050,\n\tMAX_DRAW_BUFFERS: 34852,\n\tMAX_FRAGMENT_UNIFORM_COMPONENTS: 35657,\n\tMAX_VERTEX_UNIFORM_COMPONENTS: 35658,\n\tFRAGMENT_SHADER_DERIVATIVE_HINT: 35723,\n\tPIXEL_PACK_BUFFER: 35051,\n\tPIXEL_UNPACK_BUFFER: 35052,\n\tPIXEL_PACK_BUFFER_BINDING: 35053,\n\tPIXEL_UNPACK_BUFFER_BINDING: 35055,\n\tSRGB: 35904,\n\tCOMPARE_REF_TO_TEXTURE: 34894,\n\tVERTEX_ATTRIB_ARRAY_INTEGER: 35069,\n\tMAX_ARRAY_TEXTURE_LAYERS: 35071,\n\tMIN_PROGRAM_TEXEL_OFFSET: 35076,\n\tMAX_PROGRAM_TEXEL_OFFSET: 35077,\n\tMAX_VARYING_COMPONENTS: 35659,\n\tTRANSFORM_FEEDBACK_BUFFER_MODE: 35967,\n\tMAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 35968,\n\tTRANSFORM_FEEDBACK_VARYINGS: 35971,\n\tTRANSFORM_FEEDBACK_BUFFER_START: 35972,\n\tTRANSFORM_FEEDBACK_BUFFER_SIZE: 35973,\n\tTRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 35976,\n\tRASTERIZER_DISCARD: 35977,\n\tMAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 35978,\n\tMAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 35979,\n\tINTERLEAVED_ATTRIBS: 35980,\n\tSEPARATE_ATTRIBS: 35981,\n\tTRANSFORM_FEEDBACK_BUFFER: 35982,\n\tTRANSFORM_FEEDBACK_BUFFER_BINDING: 35983,\n\tRED_INTEGER: 36244,\n\tRGB_INTEGER: 36248,\n\tRGBA_INTEGER: 36249,\n\tSAMPLER_CUBE_SHADOW: 36293,\n\tINT_SAMPLER_CUBE: 36300,\n\tUNSIGNED_INT_SAMPLER_CUBE: 36308,\n\tFRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 33296,\n\tFRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 33297,\n\tFRAMEBUFFER_ATTACHMENT_RED_SIZE: 33298,\n\tFRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 33299,\n\tFRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 33300,\n\tFRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 33301,\n\tFRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 33302,\n\tFRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 33303,\n\tFRAMEBUFFER_DEFAULT: 33304,\n\tUNSIGNED_NORMALIZED: 35863,\n\tDRAW_FRAMEBUFFER_BINDING: 36006,\n\tREAD_FRAMEBUFFER: 36008,\n\tDRAW_FRAMEBUFFER: 36009,\n\tREAD_FRAMEBUFFER_BINDING: 36010,\n\tRENDERBUFFER_SAMPLES: 36011,\n\tFRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 36052,\n\tMAX_COLOR_ATTACHMENTS: 36063,\n\tFRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 36182,\n\tMAX_SAMPLES: 36183,\n\tHALF_FLOAT: 5131,\n\tRG: 33319,\n\tRG_INTEGER: 33320,\n\tVERTEX_ARRAY_BINDING: 34229,\n\tSIGNED_NORMALIZED: 36764,\n\tCOPY_READ_BUFFER: 36662,\n\tCOPY_WRITE_BUFFER: 36663,\n\tCOPY_READ_BUFFER_BINDING: 36662,\n\tCOPY_WRITE_BUFFER_BINDING: 36663,\n\tUNIFORM_BUFFER: 35345,\n\tUNIFORM_BUFFER_BINDING: 35368,\n\tUNIFORM_BUFFER_START: 35369,\n\tUNIFORM_BUFFER_SIZE: 35370,\n\tMAX_VERTEX_UNIFORM_BLOCKS: 35371,\n\tMAX_FRAGMENT_UNIFORM_BLOCKS: 35373,\n\tMAX_COMBINED_UNIFORM_BLOCKS: 35374,\n\tMAX_UNIFORM_BUFFER_BINDINGS: 35375,\n\tMAX_UNIFORM_BLOCK_SIZE: 35376,\n\tMAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 35377,\n\tMAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 35379,\n\tUNIFORM_BUFFER_OFFSET_ALIGNMENT: 35380,\n\tACTIVE_UNIFORM_BLOCKS: 35382,\n\tUNIFORM_TYPE: 35383,\n\tUNIFORM_SIZE: 35384,\n\tUNIFORM_BLOCK_INDEX: 35386,\n\tUNIFORM_OFFSET: 35387,\n\tUNIFORM_ARRAY_STRIDE: 35388,\n\tUNIFORM_MATRIX_STRIDE: 35389,\n\tUNIFORM_IS_ROW_MAJOR: 35390,\n\tUNIFORM_BLOCK_BINDING: 35391,\n\tUNIFORM_BLOCK_DATA_SIZE: 35392,\n\tUNIFORM_BLOCK_ACTIVE_UNIFORMS: 35394,\n\tUNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 35395,\n\tUNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 35396,\n\tUNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 35398,\n\tINVALID_INDEX: 4294967295,\n\tMAX_VERTEX_OUTPUT_COMPONENTS: 37154,\n\tMAX_FRAGMENT_INPUT_COMPONENTS: 37157,\n\tMAX_SERVER_WAIT_TIMEOUT: 37137,\n\tOBJECT_TYPE: 37138,\n\tSYNC_CONDITION: 37139,\n\tSYNC_STATUS: 37140,\n\tSYNC_FLAGS: 37141,\n\tSYNC_FENCE: 37142,\n\tSYNC_GPU_COMMANDS_COMPLETE: 37143,\n\tUNSIGNALED: 37144,\n\tSIGNALED: 37145,\n\tALREADY_SIGNALED: 37146,\n\tTIMEOUT_EXPIRED: 37147,\n\tCONDITION_SATISFIED: 37148,\n\tWAIT_FAILED: 37149,\n\tSYNC_FLUSH_COMMANDS_BIT: 1,\n\tVERTEX_ATTRIB_ARRAY_DIVISOR: 35070,\n\tANY_SAMPLES_PASSED: 35887,\n\tANY_SAMPLES_PASSED_CONSERVATIVE: 36202,\n\tSAMPLER_BINDING: 35097,\n\tTRANSFORM_FEEDBACK: 36386,\n\tTRANSFORM_FEEDBACK_PAUSED: 36387,\n\tTRANSFORM_FEEDBACK_ACTIVE: 36388,\n\tTRANSFORM_FEEDBACK_BINDING: 36389,\n\tTEXTURE_IMMUTABLE_FORMAT: 37167,\n\tMAX_ELEMENT_INDEX: 36203,\n\tTEXTURE_IMMUTABLE_LEVELS: 33503,\n\tTIMEOUT_IGNORED: -1,\n\tMAX_CLIENT_WAIT_TIMEOUT_WEBGL: 37447,\n};\n\nconst extensions: { [key: string]: any } = {\n\t// ratified\n\tOES_texture_float: {},\n\tOES_texture_half_float: {},\n\tWEBGL_lose_context: {\n\t\tloseContext: () => {},\n\t},\n\tOES_standard_derivatives: {},\n\tOES_vertex_array_object: {\n\t\tcreateVertexArrayOES: () => {},\n\t\tbindVertexArrayOES: () => {},\n\t\tdeleteVertexArrayOES: () => {},\n\t},\n\tWEBGL_debug_renderer_info: null,\n\tWEBGL_debug_shaders: null,\n\tWEBGL_compressed_texture_s3tc: null,\n\tWEBGL_depth_texture: {},\n\tOES_element_index_uint: {},\n\tEXT_texture_filter_anisotropic: null,\n\tEXT_frag_depth: {},\n\tWEBGL_draw_buffers: {},\n\tANGLE_instanced_arrays: null,\n\tOES_texture_float_linear: null,\n\tOES_texture_half_float_linear: null,\n\tEXT_blend_minmax: { MIN_EXT: 0, MAX_EXT: 0 },\n\tEXT_shader_texture_lod: null,\n\t// community\n\tWEBGL_compressed_texture_atc: null,\n\tWEBGL_compressed_texture_pvrtc: null,\n\tEXT_color_buffer_half_float: null,\n\tWEBGL_color_buffer_float: null,\n\tEXT_sRGB: null,\n\tWEBGL_compressed_texture_etc1: null,\n};\n\nexport class WebGL2RenderingContext {\n\t[key: string]: any;\n\n\tconstructor(canvas: HTMLCanvasElement) {\n\t\t// @ts-ignore\n\t\tthis.canvas = canvas;\n\t\t// @ts-ignore\n\t\tthis.drawingBufferWidth = canvas.width;\n\t\t// @ts-ignore\n\t\tthis.drawingBufferHeight = canvas.height;\n\n\t\tfor (const method of functions) {\n\t\t\tthis[method] ??= () => {};\n\t\t}\n\n\t\tObject.assign(this, enums);\n\t}\n\n\tgetShaderPrecisionFormat = () => {\n\t\treturn {\n\t\t\trangeMin: 127,\n\t\t\trangeMax: 127,\n\t\t\tprecision: 23,\n\t\t};\n\t};\n\n\tprivate GL_VERSION = 7938;\n\tprivate SCISSOR_BOX = 3088;\n\tprivate VIEWPORT = 2978;\n\n\t// @ts-ignore\n\tgetParameter(paramId: number) {\n\t\tswitch (paramId) {\n\t\t\tcase this.GL_VERSION:\n\t\t\t\treturn ['WebGL2'];\n\t\t\tcase this.SCISSOR_BOX:\n\t\t\tcase this.VIEWPORT:\n\t\t\t\treturn [0, 0, 1, 1];\n\t\t}\n\t}\n\n\tgetExtension(ext: string) {\n\t\treturn extensions[ext];\n\t}\n\n\tgetProgramInfoLog = () => '';\n\n\tgetShaderInfoLog = () => '';\n}\n","import { WebGL2RenderingContext } from './web-gl-rendering-context';\n\nexport function createMockCanvas({\n\twidth = 1280,\n\theight = 800,\n\tbeforeReturn,\n}: {\n\twidth?: number;\n\theight?: number;\n\tbeforeReturn?: (canvas: HTMLCanvasElement) => void;\n}) {\n\tlet canvas: HTMLCanvasElement;\n\n\tif (typeof document !== 'undefined' && typeof document.createElement === 'function') {\n\t\tcanvas = document.createElement('canvas');\n\t} else {\n\t\tcanvas = {\n\t\t\tstyle: {},\n\t\t\taddEventListener: (() => {}) as any,\n\t\t\tremoveEventListener: (() => {}) as any,\n\t\t\tclientWidth: width,\n\t\t\tclientHeight: height,\n\t\t\tgetContext: (() => new WebGL2RenderingContext(canvas)) as any,\n\t\t} as HTMLCanvasElement;\n\t}\n\tcanvas.width = width;\n\tcanvas.height = height;\n\n\tif (globalThis.HTMLCanvasElement) {\n\t\tconst getContext = HTMLCanvasElement.prototype.getContext;\n\t\tHTMLCanvasElement.prototype.getContext = function (\n\t\t\tthis: HTMLCanvasElement,\n\t\t\t...args: Parameters<typeof getContext>\n\t\t) {\n\t\t\tconst id = args[0];\n\t\t\tif (id.startsWith('webgl')) return new WebGL2RenderingContext(this);\n\t\t\treturn getContext.apply(this, args);\n\t\t} as any;\n\t}\n\n\tbeforeReturn?.(canvas);\n\n\tclass WebGLRenderingContext extends WebGL2RenderingContext {}\n\t// @ts-expect-error - WebGLRenderingContext is not defined in the global scope for non-browser\n\tglobalThis.WebGLRenderingContext ??= WebGLRenderingContext;\n\t// @ts-expect-error - WebGL2RenderingContext is not defined in the global scope for non-browser\n\tglobalThis.WebGL2RenderingContext ??= WebGL2RenderingContext;\n\n\treturn canvas;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, provideEnvironmentInitializer, Type } from '@angular/core';\nimport { ComponentFixture, TestBed } from '@angular/core/testing';\nimport {\n\tgetLocalState,\n\tinjectCanvasRootInitializer,\n\tNGT_STORE,\n\tNgtAnyRecord,\n\tNgtCanvasOptions,\n\tNgtEventHandlers,\n\tNgtInstanceNode,\n\tNgtSignalStore,\n\tNgtState,\n\tprovideStore,\n} from 'angular-three';\nimport { Object3D } from 'three';\nimport { NgtTestCanvas } from './test-canvas';\nimport { createMockCanvas } from './utils/mock-canvas';\n\nexport interface NgtTestGraphedObject {\n\ttype: string;\n\tname: string;\n\tchildren: NgtTestGraphedObject[];\n}\n\nexport class NgtTestBed {\n\tstatic create<T extends Type<any>>(\n\t\tsceneGraph: T,\n\t\t{\n\t\t\tmockCanvasOptions = {},\n\t\t\tcanvasConfiguration = {},\n\t\t\terrorOnUnknownElements,\n\t\t\tproviders,\n\t\t\tdeclarations,\n\t\t\timports,\n\t\t\tteardown,\n\t\t\tdeferBlockBehavior,\n\t\t}: {\n\t\t\tmockCanvasOptions?: { width?: number; height?: number; beforeReturn?: (canvas: HTMLCanvasElement) => void };\n\t\t\tcanvasConfiguration?: Partial<Omit<NgtCanvasOptions, 'frameloop' | 'size' | 'events'>>;\n\t\t} & Omit<Parameters<TestBed['configureTestingModule']>[0], 'schemas'> = {},\n\t) {\n\t\tconst mockedCanvas = createMockCanvas(mockCanvasOptions);\n\n\t\tconst fixture = TestBed.configureTestingModule({\n\t\t\tproviders: [\n\t\t\t\tprovideStore(),\n\t\t\t\tprovideEnvironmentInitializer(() => {\n\t\t\t\t\tconst initializerFn = (() => {\n\t\t\t\t\t\tconst initRoot = injectCanvasRootInitializer();\n\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\tconst configurator = initRoot(mockedCanvas);\n\t\t\t\t\t\t\tconfigurator.configure({\n\t\t\t\t\t\t\t\tframeloop: 'never',\n\t\t\t\t\t\t\t\tsize: {\n\t\t\t\t\t\t\t\t\twidth: mockCanvasOptions.width ?? mockedCanvas.width ?? 1280,\n\t\t\t\t\t\t\t\t\theight: mockCanvasOptions.height ?? mockedCanvas.height ?? 800,\n\t\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...canvasConfiguration,\n\t\t\t\t\t\t\t\tevents: undefined,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t};\n\t\t\t\t\t})();\n\t\t\t\t\treturn initializerFn();\n\t\t\t\t}),\n\t\t\t\t...(providers ?? []),\n\t\t\t],\n\t\t\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\t\t\terrorOnUnknownElements: errorOnUnknownElements ?? false,\n\t\t\tdeclarations,\n\t\t\timports,\n\t\t\tteardown,\n\t\t\tdeferBlockBehavior,\n\t\t}).createComponent(NgtTestCanvas);\n\n\t\tfixture.componentRef.setInput('sceneGraph', sceneGraph);\n\t\tfixture.detectChanges();\n\n\t\tconst store = TestBed.inject(NGT_STORE);\n\n\t\tTestBed.flushEffects();\n\n\t\treturn {\n\t\t\tstore,\n\t\t\tfixture,\n\t\t\tscene: store.snapshot.scene,\n\t\t\tsceneInstanceNode: getLocalState(store.snapshot.scene)!,\n\t\t\tcanvas: mockedCanvas,\n\t\t\tdestroy: fixture.componentInstance.destroy.bind(fixture.componentInstance),\n\t\t\tfireEvent: this.createEventFirer(store, fixture),\n\t\t\tadvance: this.createAdvance(store),\n\t\t\ttoGraph: this.createToGraph(store),\n\t\t};\n\t}\n\n\tstatic createToGraph(store: NgtSignalStore<NgtState>) {\n\t\tfunction graphify(type: string, name: string, children: NgtTestGraphedObject[]): NgtTestGraphedObject {\n\t\t\treturn { type, name, children };\n\t\t}\n\n\t\tfunction toGraph(node: Object3D): NgtTestGraphedObject[] {\n\t\t\treturn node.children.map((child) => graphify(child.type, child.name || '', toGraph(child)));\n\t\t}\n\n\t\treturn () => {\n\t\t\tconst state = store.snapshot;\n\t\t\treturn toGraph(state.scene);\n\t\t};\n\t}\n\n\tstatic createAdvance(store: NgtSignalStore<NgtState>) {\n\t\treturn async (frames: number, delta: number | number[] = 1) => {\n\t\t\tconst state = store.snapshot;\n\t\t\tconst subscribers = state.internal.subscribers;\n\n\t\t\tconst promises: Promise<void>[] = [];\n\n\t\t\tfor (const subscriber of subscribers) {\n\t\t\t\tfor (let i = 0; i < frames; i++) {\n\t\t\t\t\tif (Array.isArray(delta)) {\n\t\t\t\t\t\tpromises.push(\n\t\t\t\t\t\t\tnew Promise((res) => {\n\t\t\t\t\t\t\t\tsubscriber.callback({ ...state, delta: delta[i] || delta[-1] });\n\t\t\t\t\t\t\t\tres();\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpromises.push(\n\t\t\t\t\t\t\tnew Promise((res) => {\n\t\t\t\t\t\t\t\tsubscriber.callback({ ...state, delta });\n\t\t\t\t\t\t\t\tres();\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait Promise.all(promises);\n\t\t};\n\t}\n\n\tstatic createEventFirer(store: NgtSignalStore<NgtState>, fixture: ComponentFixture<NgtTestCanvas>) {\n\t\tlet autoDetectChanges = true;\n\n\t\tasync function fireEvent(el: NgtInstanceNode, eventName: keyof NgtEventHandlers, eventData: NgtAnyRecord = {}) {\n\t\t\tconst localState = getLocalState(el);\n\t\t\tif (!localState) {\n\t\t\t\tconsole.warn(`[NGT Test] ${el} has no local state`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst handler = localState.handlers[eventName];\n\t\t\tif (!handler) {\n\t\t\t\tconsole.warn(`[NGT Test] ${el} has no ${eventName} handler`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst raycastEvent = {\n\t\t\t\tcamera: store.snapshot.camera,\n\t\t\t\tstopPropagation: () => {},\n\t\t\t\ttarget: el,\n\t\t\t\tcurrentTarget: el,\n\t\t\t\tsourceEvent: eventData,\n\t\t\t\tnativeEvent: eventData,\n\t\t\t\tobject: el,\n\t\t\t\teventObject: el,\n\t\t\t\t...eventData,\n\t\t\t};\n\n\t\t\tconst result = await handler(raycastEvent as any);\n\n\t\t\tif (autoDetectChanges) {\n\t\t\t\tfixture.detectChanges();\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tfireEvent.setAutoDetectChanges = (auto: boolean) => {\n\t\t\tautoDetectChanges = auto;\n\t\t};\n\n\t\treturn fireEvent;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ function reducer(state) {
26
26
  function updater(_source) {
27
27
  return (state) => {
28
28
  const updater = reducer(state);
29
+ // TODO: (chau) I'm keeping this one around for now.
29
30
  untracked(() => {
30
31
  _source.update((previous) => ({ ...previous, ...updater(previous) }));
31
32
  });
@@ -787,9 +788,7 @@ class NgtArgs {
787
788
  return;
788
789
  this.injected = false;
789
790
  this.injectedArgs = value;
790
- untracked(() => {
791
- this.createView();
792
- });
791
+ this.createView();
793
792
  });
794
793
  inject(DestroyRef).onDestroy(() => {
795
794
  this.view?.destroy();
@@ -816,7 +815,7 @@ class NgtArgs {
816
815
  }
817
816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgtArgs, decorators: [{
818
817
  type: Directive,
819
- args: [{ selector: 'ng-template[args]', standalone: true }]
818
+ args: [{ selector: 'ng-template[args]' }]
820
819
  }], ctorParameters: () => [] });
821
820
 
822
821
  const roots = new Map();
@@ -1514,7 +1513,7 @@ function processThreeEvent(instance, priority, eventName, callback) {
1514
1513
  }
1515
1514
  if (eventName === SPECIAL_EVENTS.ATTACHED) {
1516
1515
  lS.onAttach = callback;
1517
- if (untracked(lS.parent)) {
1516
+ if (lS.parent && untracked(lS.parent)) {
1518
1517
  lS.onAttach({ parent: untracked(lS.parent), node: instance });
1519
1518
  }
1520
1519
  return () => {
@@ -2543,14 +2542,12 @@ class NgtCanvas {
2543
2542
  };
2544
2543
  this.zone.runOutsideAngular(() => {
2545
2544
  configurator.configure(canvasOptions);
2546
- untracked(() => {
2547
- if (this.glRef) {
2548
- this.glRef.changeDetectorRef.detectChanges();
2549
- }
2550
- else {
2551
- this.noZoneRender();
2552
- }
2553
- });
2545
+ if (this.glRef) {
2546
+ this.glRef.changeDetectorRef.detectChanges();
2547
+ }
2548
+ else {
2549
+ this.noZoneRender();
2550
+ }
2554
2551
  });
2555
2552
  }, { injector: this.injector });
2556
2553
  });
@@ -2653,7 +2650,7 @@ class NgtSelection {
2653
2650
  }
2654
2651
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgtSelection, decorators: [{
2655
2652
  type: Directive,
2656
- args: [{ standalone: true, selector: '[ngtSelection]' }]
2653
+ args: [{ selector: '[ngtSelection]' }]
2657
2654
  }] });
2658
2655
  class NgtSelect {
2659
2656
  constructor() {
@@ -2693,14 +2690,14 @@ class NgtSelect {
2693
2690
  onCleanup(() => {
2694
2691
  selection.update((prev) => prev.filter((el) => !current.includes(el)));
2695
2692
  });
2696
- }, { allowSignalWrites: true });
2693
+ });
2697
2694
  }
2698
2695
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgtSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2699
2696
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: NgtSelect, isStandalone: true, selector: "ngt-group[ngtSelect], ngt-mesh[ngtSelect]", inputs: { enabled: { classPropertyName: "enabled", publicName: "ngtSelect", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
2700
2697
  }
2701
2698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgtSelect, decorators: [{
2702
2699
  type: Directive,
2703
- args: [{ standalone: true, selector: 'ngt-group[ngtSelect], ngt-mesh[ngtSelect]' }]
2700
+ args: [{ selector: 'ngt-group[ngtSelect], ngt-mesh[ngtSelect]' }]
2704
2701
  }], ctorParameters: () => [] });
2705
2702
 
2706
2703
  var _a;
@@ -2912,7 +2909,7 @@ class NgtHexify {
2912
2909
  }
2913
2910
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgtHexify, decorators: [{
2914
2911
  type: Pipe,
2915
- args: [{ name: 'hexify', pure: true, standalone: true }]
2912
+ args: [{ name: 'hexify', pure: true }]
2916
2913
  }] });
2917
2914
 
2918
2915
  class NgtPortalBeforeRender {
@@ -2956,7 +2953,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
2956
2953
  type: Component,
2957
2954
  args: [{
2958
2955
  selector: 'ngt-portal-before-render',
2959
- standalone: true,
2960
2956
  template: `
2961
2957
  <!-- Without an element that receives pointer events state.pointer will always be 0/0 -->
2962
2958
  <ngt-group (pointerover)="onPointerOver()" attach="none" />
@@ -2982,7 +2978,7 @@ class NgtPortalContent {
2982
2978
  }
2983
2979
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgtPortalContent, decorators: [{
2984
2980
  type: Directive,
2985
- args: [{ selector: 'ng-template[portalContent]', standalone: true }]
2981
+ args: [{ selector: 'ng-template[portalContent]' }]
2986
2982
  }], ctorParameters: () => [] });
2987
2983
  // Keys that shouldn't be copied between stores
2988
2984
  const privateKeys = [
@@ -3044,15 +3040,13 @@ class NgtPortal {
3044
3040
  const state = this.state();
3045
3041
  const _parentState = parentState();
3046
3042
  this.portalStore.update((prev) => this.inject(_parentState, prev, state, untracked(this.container)));
3047
- untracked(() => {
3048
- if (this.portalView) {
3049
- this.portalView.detectChanges();
3050
- return;
3051
- }
3052
- this.portalView = this.portalAnchor().createEmbeddedView(this.portalContent(), { container: this.container(), injector: this.injector }, { injector: this.injector });
3043
+ if (this.portalView) {
3053
3044
  this.portalView.detectChanges();
3054
- this.portalRendered.set(true);
3055
- });
3045
+ return;
3046
+ }
3047
+ this.portalView = untracked(this.portalAnchor).createEmbeddedView(untracked(this.portalContent), { container: untracked(this.container), injector: this.injector }, { injector: this.injector });
3048
+ this.portalView.detectChanges();
3049
+ this.portalRendered.set(true);
3056
3050
  }, { injector: this.injector });
3057
3051
  });
3058
3052
  inject(DestroyRef).onDestroy(() => {
@@ -3232,7 +3226,7 @@ class NgtObjectEvents {
3232
3226
  }
3233
3227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgtObjectEvents, decorators: [{
3234
3228
  type: Directive,
3235
- args: [{ standalone: true, selector: '[ngtObjectEvents]' }]
3229
+ args: [{ selector: '[ngtObjectEvents]' }]
3236
3230
  }], ctorParameters: () => [] });
3237
3231
  function injectObjectEvents(target, events, { injector } = {}) {
3238
3232
  return assertInjector(injectObjectEvents, injector, () => {