angular-three 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -43
- package/fesm2022/angular-three-testing.mjs +0 -1
- package/fesm2022/angular-three-testing.mjs.map +1 -1
- package/fesm2022/angular-three.mjs +21 -27
- package/fesm2022/angular-three.mjs.map +1 -1
- package/lib/canvas.d.ts +18 -18
- package/lib/portal.d.ts +1 -1
- package/package.json +1 -1
- package/plugin/src/generators/init/generator.js +2 -2
- package/plugin/src/generators/init/generator.js.map +1 -1
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
183
|
-
|
|
184
|
-
|
|
180
|
+
template: `
|
|
181
|
+
<ngt-mesh #mesh></ngt-mesh>
|
|
182
|
+
`,
|
|
185
183
|
})
|
|
186
184
|
export class Box {
|
|
187
|
-
|
|
188
|
-
|
|
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
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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
|
```
|
|
@@ -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
|
-
|
|
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]'
|
|
818
|
+
args: [{ selector: 'ng-template[args]' }]
|
|
820
819
|
}], ctorParameters: () => [] });
|
|
821
820
|
|
|
822
821
|
const roots = new Map();
|
|
@@ -2543,14 +2542,12 @@ class NgtCanvas {
|
|
|
2543
2542
|
};
|
|
2544
2543
|
this.zone.runOutsideAngular(() => {
|
|
2545
2544
|
configurator.configure(canvasOptions);
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
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: [{
|
|
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
|
-
}
|
|
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: [{
|
|
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
|
|
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]'
|
|
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
|
-
|
|
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
|
-
|
|
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: [{
|
|
3229
|
+
args: [{ selector: '[ngtObjectEvents]' }]
|
|
3236
3230
|
}], ctorParameters: () => [] });
|
|
3237
3231
|
function injectObjectEvents(target, events, { injector } = {}) {
|
|
3238
3232
|
return assertInjector(injectObjectEvents, injector, () => {
|