angular-three-soba 4.0.0-next.52 → 4.0.0-next.54

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.
@@ -26,7 +26,7 @@ export interface NgtsCubeCameraOptions extends Partial<NgtThreeElements['ngt-gro
26
26
  }
27
27
  export declare class NgtsCubeCamera {
28
28
  options: import("@angular/core").InputSignalWithTransform<NgtsCubeCameraOptions, "" | Partial<NgtsCubeCameraOptions>>;
29
- protected parameters: import("@angular/core").Signal<Omit<NgtsCubeCameraOptions, "resolution" | "near" | "far" | "envMap" | "fog" | "frames">>;
29
+ protected parameters: import("@angular/core").Signal<Omit<NgtsCubeCameraOptions, "near" | "far" | "envMap" | "frames" | "resolution" | "fog">>;
30
30
  private cubeCamera;
31
31
  protected camera: import("@angular/core").Signal<THREE.CubeCamera>;
32
32
  protected texture: import("@angular/core").Signal<THREE.CubeTexture>;
@@ -16,14 +16,16 @@ export interface NgtsOrthographicCameraOptions extends Partial<NgtThreeElements[
16
16
  }
17
17
  export declare class NgtsOrthographicCamera {
18
18
  options: import("@angular/core").InputSignalWithTransform<NgtsOrthographicCameraOptions, "" | Partial<NgtsOrthographicCameraOptions>>;
19
- protected parameters: import("@angular/core").Signal<Omit<NgtsOrthographicCameraOptions, "resolution" | "envMap" | "frames" | "left" | "right" | "top" | "bottom" | "makeDefault" | "manual">>;
19
+ protected parameters: import("@angular/core").Signal<Omit<NgtsOrthographicCameraOptions, "left" | "right" | "top" | "bottom" | "envMap" | "makeDefault" | "frames" | "resolution">>;
20
20
  protected content: import("@angular/core").Signal<TemplateRef<any> | undefined>;
21
21
  protected cameraContent: import("@angular/core").Signal<TemplateRef<any> | undefined>;
22
22
  cameraRef: import("@angular/core").Signal<ElementRef<THREE.OrthographicCamera>>;
23
23
  groupRef: import("@angular/core").Signal<ElementRef<THREE.Group<THREE.Object3DEventMap>>>;
24
24
  private store;
25
- private camera;
26
- private size;
25
+ private _left;
26
+ private _right;
27
+ private _top;
28
+ private _bottom;
27
29
  protected left: import("@angular/core").Signal<number>;
28
30
  protected right: import("@angular/core").Signal<number>;
29
31
  protected top: import("@angular/core").Signal<number>;
@@ -16,14 +16,12 @@ export interface NgtsPerspectiveCameraOptions extends Partial<NgtThreeElements['
16
16
  }
17
17
  export declare class NgtsPerspectiveCamera {
18
18
  options: import("@angular/core").InputSignalWithTransform<NgtsPerspectiveCameraOptions, "" | Partial<NgtsPerspectiveCameraOptions>>;
19
- protected parameters: import("@angular/core").Signal<Omit<NgtsPerspectiveCameraOptions, "resolution" | "envMap" | "frames" | "makeDefault" | "manual">>;
19
+ protected parameters: import("@angular/core").Signal<Omit<NgtsPerspectiveCameraOptions, "envMap" | "makeDefault" | "frames" | "resolution">>;
20
20
  protected content: import("@angular/core").Signal<TemplateRef<any> | undefined>;
21
21
  protected cameraContent: import("@angular/core").Signal<TemplateRef<any> | undefined>;
22
22
  cameraRef: import("@angular/core").Signal<ElementRef<THREE.PerspectiveCamera>>;
23
23
  groupRef: import("@angular/core").Signal<ElementRef<THREE.Group<THREE.Object3DEventMap>>>;
24
24
  private store;
25
- private camera;
26
- private size;
27
25
  private manual;
28
26
  private makeDefault;
29
27
  private resolution;
@@ -134,7 +134,6 @@ class NgtsOrthographicCamera {
134
134
  this.parameters = omit(this.options, [
135
135
  'envMap',
136
136
  'makeDefault',
137
- 'manual',
138
137
  'frames',
139
138
  'resolution',
140
139
  'left',
@@ -147,12 +146,14 @@ class NgtsOrthographicCamera {
147
146
  this.cameraRef = viewChild.required('camera');
148
147
  this.groupRef = viewChild.required('group');
149
148
  this.store = injectStore();
150
- this.camera = this.store.camera;
151
- this.size = this.store.size;
152
- this.left = computed(() => this.options().left ?? this.size().width / -2);
153
- this.right = computed(() => this.options().right ?? this.size().width / 2);
154
- this.top = computed(() => this.options().top ?? this.size().height / 2);
155
- this.bottom = computed(() => this.options().bottom ?? this.size().height / -2);
149
+ this._left = pick(this.options, 'left');
150
+ this._right = pick(this.options, 'right');
151
+ this._top = pick(this.options, 'top');
152
+ this._bottom = pick(this.options, 'bottom');
153
+ this.left = computed(() => this._left() ?? this.store.size.width() / -2);
154
+ this.right = computed(() => this._right() ?? this.store.size.width() / 2);
155
+ this.top = computed(() => this._top() ?? this.store.size.height() / 2);
156
+ this.bottom = computed(() => this._bottom() ?? this.store.size.height() / -2);
156
157
  this.manual = pick(this.options, 'manual');
157
158
  this.makeDefault = pick(this.options, 'makeDefault');
158
159
  this.resolution = pick(this.options, 'resolution');
@@ -173,7 +174,7 @@ class NgtsOrthographicCamera {
173
174
  const makeDefault = this.makeDefault();
174
175
  if (!makeDefault)
175
176
  return;
176
- const oldCam = untracked(this.camera);
177
+ const oldCam = this.store.snapshot.camera;
177
178
  this.store.update({ camera: this.cameraRef().nativeElement });
178
179
  onCleanup(() => this.store.update(() => ({ camera: oldCam })));
179
180
  });
@@ -259,14 +260,12 @@ const defaultOptions = {
259
260
  class NgtsPerspectiveCamera {
260
261
  constructor() {
261
262
  this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
262
- this.parameters = omit(this.options, ['envMap', 'makeDefault', 'manual', 'frames', 'resolution']);
263
+ this.parameters = omit(this.options, ['envMap', 'makeDefault', 'frames', 'resolution']);
263
264
  this.content = contentChild(TemplateRef);
264
265
  this.cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });
265
266
  this.cameraRef = viewChild.required('camera');
266
267
  this.groupRef = viewChild.required('group');
267
268
  this.store = injectStore();
268
- this.camera = this.store.camera;
269
- this.size = this.store.size;
270
269
  this.manual = pick(this.options, 'manual');
271
270
  this.makeDefault = pick(this.options, 'makeDefault');
272
271
  this.resolution = pick(this.options, 'resolution');
@@ -280,15 +279,19 @@ class NgtsPerspectiveCamera {
280
279
  const manual = this.manual();
281
280
  if (manual)
282
281
  return;
283
- const [camera, size] = [this.cameraRef().nativeElement, this.size()];
284
- camera.aspect = size.width / size.height;
282
+ const [camera, width, height] = [
283
+ this.cameraRef().nativeElement,
284
+ this.store.size.width(),
285
+ this.store.size.height(),
286
+ ];
287
+ camera.aspect = width / height;
285
288
  camera.updateProjectionMatrix();
286
289
  });
287
290
  effect((onCleanup) => {
288
291
  const makeDefault = this.makeDefault();
289
292
  if (!makeDefault)
290
293
  return;
291
- const oldCam = untracked(this.camera);
294
+ const oldCam = this.store.snapshot.camera;
292
295
  this.store.update({ camera: this.cameraRef().nativeElement });
293
296
  onCleanup(() => this.store.update(() => ({ camera: oldCam })));
294
297
  });
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-cameras.mjs","sources":["../../../../libs/soba/cameras/src/lib/camera-content.ts","../../../../libs/soba/cameras/src/lib/cube-camera.ts","../../../../libs/soba/cameras/src/lib/orthographic-camera.ts","../../../../libs/soba/cameras/src/lib/perspective-camera.ts","../../../../libs/soba/cameras/src/angular-three-soba-cameras.ts"],"sourcesContent":["import { Directive, Signal } from '@angular/core';\nimport * as THREE from 'three';\n\n@Directive({ selector: 'ng-template[cameraContent]' })\nexport class NgtsCameraContent {\n\tstatic ngTemplateContextGuard(_: NgtsCameraContent, ctx: unknown): ctx is { $implicit: Signal<THREE.Texture> } {\n\t\treturn true;\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\teffect,\n\tElementRef,\n\tInjector,\n\tinput,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { extend, injectBeforeRender, injectStore, merge, NgtArgs, NgtThreeElements, omit, pick } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface CubeCameraOptions {\n\t/** Resolution of the FBO, 256 */\n\tresolution?: number;\n\t/** Camera near, 0.1 */\n\tnear?: number;\n\t/** Camera far, 1000 */\n\tfar?: number;\n\t/** Custom environment map that is temporarily set as the scenes background */\n\tenvMap?: THREE.Texture;\n\t/** Custom fog that is temporarily set as the scenes fog */\n\tfog?: THREE.Fog | THREE.FogExp2;\n}\n\nexport function injectCubeCamera(options: () => CubeCameraOptions, { injector }: { injector?: Injector } = {}) {\n\treturn assertInjector(injectCubeCamera, injector, () => {\n\t\tconst store = injectStore();\n\n\t\t// backfill the options with default values\n\t\tconst mergedOptions = merge(options, { resolution: 256, near: 0.1, far: 1000 }, 'backfill');\n\t\tconst resolution = pick(mergedOptions, 'resolution');\n\t\tconst near = pick(mergedOptions, 'near');\n\t\tconst far = pick(mergedOptions, 'far');\n\n\t\tconst fbo = computed(() => {\n\t\t\tconst fbo = new THREE.WebGLCubeRenderTarget(resolution());\n\t\t\tfbo.texture.type = THREE.HalfFloatType;\n\t\t\treturn fbo;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst _fbo = fbo();\n\t\t\tonCleanup(() => _fbo.dispose());\n\t\t});\n\n\t\tconst cubeCamera = computed(() => new THREE.CubeCamera(near()!, far()!, fbo()));\n\t\tconst update = () => {\n\t\t\tconst [scene, gl, camera, { envMap, fog }] = [\n\t\t\t\tstore.scene(),\n\t\t\t\tstore.gl(),\n\t\t\t\tcubeCamera(),\n\t\t\t\tuntracked(mergedOptions),\n\t\t\t];\n\t\t\tlet originalFog: THREE.Fog | THREE.FogExp2;\n\t\t\tlet originalBackground: THREE.Texture;\n\n\t\t\toriginalFog = scene.fog as THREE.Fog | THREE.FogExp2;\n\t\t\toriginalBackground = scene.background as THREE.Texture;\n\t\t\tscene.background = envMap || originalBackground;\n\t\t\tscene.fog = fog || originalFog;\n\t\t\tcamera.update(gl, scene);\n\t\t\tscene.fog = originalFog;\n\t\t\tscene.background = originalBackground;\n\t\t};\n\n\t\treturn { fbo, camera: cubeCamera, update };\n\t});\n}\n\nexport interface NgtsCubeCameraOptions extends Partial<NgtThreeElements['ngt-group']>, CubeCameraOptions {\n\tframes: number;\n}\n\nconst defaultOptions: NgtsCubeCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tnear: 0.1,\n\tfar: 1000,\n};\n\n@Component({\n\tselector: 'ngts-cube-camera',\n\ttemplate: `\n\t\t<ngt-group [parameters]=\"parameters()\">\n\t\t\t<ngt-primitive *args=\"[camera()]\" />\n\t\t\t<ngt-group #group>\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t\t/>\n\t\t\t</ngt-group>\n\t\t</ngt-group>\n\t`,\n\timports: [NgtArgs, NgTemplateOutlet],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsCubeCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, ['fog', 'near', 'far', 'envMap', 'resolution', 'frames']);\n\n\tprivate cubeCamera = injectCubeCamera(pick(this.options, ['near', 'far', 'envMap', 'fog', 'resolution']));\n\n\tprotected camera = this.cubeCamera.camera;\n\tprotected texture = pick(this.cubeCamera.fbo, 'texture');\n\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tconstructor() {\n\t\textend({ Group });\n\n\t\tlet count = 0;\n\t\tinjectBeforeRender(() => {\n\t\t\tconst group = this.groupRef().nativeElement;\n\t\t\tif (!group) return;\n\n\t\t\tconst frames = this.options().frames;\n\t\t\tif (frames === Infinity || count < frames) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tthis.cubeCamera.update();\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tTemplateRef,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tinput,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { NgtThreeElements, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group, OrthographicCamera } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface NgtsOrthographicCameraOptions extends Partial<NgtThreeElements['ngt-orthographic-camera']> {\n\t/** Registers the camera as the system default, fiber will start rendering with it */\n\tmakeDefault?: boolean;\n\t/** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */\n\tmanual?: boolean;\n\t/** Number of frames to render, Infinity */\n\tframes: number;\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Optional environment map for functional use */\n\tenvMap?: THREE.Texture;\n}\n\nconst defaultOptions: NgtsOrthographicCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tmakeDefault: false,\n\tmanual: false,\n};\n\n@Component({\n\tselector: 'ngts-orthographic-camera',\n\ttemplate: `\n\t\t<ngt-orthographic-camera\n\t\t\t#camera\n\t\t\t[left]=\"left()\"\n\t\t\t[right]=\"right()\"\n\t\t\t[top]=\"top()\"\n\t\t\t[bottom]=\"bottom()\"\n\t\t\t[parameters]=\"parameters()\"\n\t\t>\n\t\t\t<ng-container [ngTemplateOutlet]=\"content() ?? null\" />\n\t\t</ngt-orthographic-camera>\n\n\t\t<ngt-group #group>\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t/>\n\t\t</ngt-group>\n\t`,\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrthographicCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, [\n\t\t'envMap',\n\t\t'makeDefault',\n\t\t'manual',\n\t\t'frames',\n\t\t'resolution',\n\t\t'left',\n\t\t'top',\n\t\t'bottom',\n\t\t'right',\n\t]);\n\n\tprotected content = contentChild(TemplateRef);\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tcameraRef = viewChild.required<ElementRef<THREE.OrthographicCamera>>('camera');\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate store = injectStore();\n\n\tprivate camera = this.store.camera;\n\tprivate size = this.store.size;\n\n\tprotected left = computed(() => this.options().left ?? this.size().width / -2);\n\tprotected right = computed(() => this.options().right ?? this.size().width / 2);\n\tprotected top = computed(() => this.options().top ?? this.size().height / 2);\n\tprotected bottom = computed(() => this.options().bottom ?? this.size().height / -2);\n\n\tprivate manual = pick(this.options, 'manual');\n\tprivate makeDefault = pick(this.options, 'makeDefault');\n\tprivate resolution = pick(this.options, 'resolution');\n\n\tprivate fbo = injectFBO(() => ({ width: this.resolution() }));\n\tprotected texture = pick(this.fbo, 'texture');\n\n\tconstructor() {\n\t\textend({ OrthographicCamera, Group });\n\n\t\teffect(() => {\n\t\t\tthis.cameraRef().nativeElement.updateProjectionMatrix();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst manual = this.manual();\n\t\t\tif (manual) return;\n\n\t\t\tconst camera = this.cameraRef().nativeElement;\n\t\t\tcamera.updateProjectionMatrix();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst makeDefault = this.makeDefault();\n\t\t\tif (!makeDefault) return;\n\n\t\t\tconst oldCam = untracked(this.camera);\n\t\t\tthis.store.update({ camera: this.cameraRef().nativeElement });\n\t\t\tonCleanup(() => this.store.update(() => ({ camera: oldCam })));\n\t\t});\n\n\t\tlet count = 0;\n\t\tlet oldEnvMap: THREE.Color | THREE.Texture | null = null;\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst [{ frames, envMap }, group, camera, fbo] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.fbo(),\n\t\t\t];\n\t\t\tif (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tgl.setRenderTarget(fbo);\n\t\t\t\toldEnvMap = scene.background;\n\t\t\t\tif (envMap) scene.background = envMap;\n\t\t\t\tgl.render(scene, camera);\n\t\t\t\tscene.background = oldEnvMap;\n\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tTemplateRef,\n\tcontentChild,\n\teffect,\n\tinput,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { NgtThreeElements, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group, PerspectiveCamera } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface NgtsPerspectiveCameraOptions extends Partial<NgtThreeElements['ngt-perspective-camera']> {\n\t/** Registers the camera as the system default, fiber will start rendering with it */\n\tmakeDefault?: boolean;\n\t/** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */\n\tmanual?: boolean;\n\t/** Number of frames to render, Infinity */\n\tframes: number;\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Optional environment map for functional use */\n\tenvMap?: THREE.Texture;\n}\n\nconst defaultOptions: NgtsPerspectiveCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tmakeDefault: false,\n\tmanual: false,\n};\n\n@Component({\n\tselector: 'ngts-perspective-camera',\n\ttemplate: `\n\t\t<ngt-perspective-camera #camera [parameters]=\"parameters()\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"content() ?? null\" />\n\t\t</ngt-perspective-camera>\n\n\t\t<ngt-group #group>\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t/>\n\t\t</ngt-group>\n\t`,\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsPerspectiveCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, ['envMap', 'makeDefault', 'manual', 'frames', 'resolution']);\n\n\tprotected content = contentChild(TemplateRef);\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tcameraRef = viewChild.required<ElementRef<THREE.PerspectiveCamera>>('camera');\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate store = injectStore();\n\n\tprivate camera = this.store.camera;\n\tprivate size = this.store.size;\n\n\tprivate manual = pick(this.options, 'manual');\n\tprivate makeDefault = pick(this.options, 'makeDefault');\n\tprivate resolution = pick(this.options, 'resolution');\n\tprivate fbo = injectFBO(() => ({ width: this.resolution() }));\n\tprotected texture = pick(this.fbo, 'texture');\n\n\tconstructor() {\n\t\textend({ PerspectiveCamera, Group });\n\n\t\teffect(() => {\n\t\t\tthis.cameraRef().nativeElement.updateProjectionMatrix();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst manual = this.manual();\n\t\t\tif (manual) return;\n\t\t\tconst [camera, size] = [this.cameraRef().nativeElement, this.size()];\n\t\t\tcamera.aspect = size.width / size.height;\n\t\t\tcamera.updateProjectionMatrix();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst makeDefault = this.makeDefault();\n\t\t\tif (!makeDefault) return;\n\n\t\t\tconst oldCam = untracked(this.camera);\n\t\t\tthis.store.update({ camera: this.cameraRef().nativeElement });\n\t\t\tonCleanup(() => this.store.update(() => ({ camera: oldCam })));\n\t\t});\n\n\t\tlet count = 0;\n\t\tlet oldEnvMap: THREE.Color | THREE.Texture | null = null;\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst [{ frames, envMap }, group, camera, fbo] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.fbo(),\n\t\t\t];\n\t\t\tif (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tgl.setRenderTarget(fbo);\n\t\t\t\toldEnvMap = scene.background;\n\t\t\t\tif (envMap) scene.background = envMap;\n\t\t\t\tgl.render(scene, camera);\n\t\t\t\tscene.background = oldEnvMap;\n\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions"],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-soba-cameras.mjs","sources":["../../../../libs/soba/cameras/src/lib/camera-content.ts","../../../../libs/soba/cameras/src/lib/cube-camera.ts","../../../../libs/soba/cameras/src/lib/orthographic-camera.ts","../../../../libs/soba/cameras/src/lib/perspective-camera.ts","../../../../libs/soba/cameras/src/angular-three-soba-cameras.ts"],"sourcesContent":["import { Directive, Signal } from '@angular/core';\nimport * as THREE from 'three';\n\n@Directive({ selector: 'ng-template[cameraContent]' })\nexport class NgtsCameraContent {\n\tstatic ngTemplateContextGuard(_: NgtsCameraContent, ctx: unknown): ctx is { $implicit: Signal<THREE.Texture> } {\n\t\treturn true;\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tCUSTOM_ELEMENTS_SCHEMA,\n\teffect,\n\tElementRef,\n\tInjector,\n\tinput,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { extend, injectBeforeRender, injectStore, merge, NgtArgs, NgtThreeElements, omit, pick } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface CubeCameraOptions {\n\t/** Resolution of the FBO, 256 */\n\tresolution?: number;\n\t/** Camera near, 0.1 */\n\tnear?: number;\n\t/** Camera far, 1000 */\n\tfar?: number;\n\t/** Custom environment map that is temporarily set as the scenes background */\n\tenvMap?: THREE.Texture;\n\t/** Custom fog that is temporarily set as the scenes fog */\n\tfog?: THREE.Fog | THREE.FogExp2;\n}\n\nexport function injectCubeCamera(options: () => CubeCameraOptions, { injector }: { injector?: Injector } = {}) {\n\treturn assertInjector(injectCubeCamera, injector, () => {\n\t\tconst store = injectStore();\n\n\t\t// backfill the options with default values\n\t\tconst mergedOptions = merge(options, { resolution: 256, near: 0.1, far: 1000 }, 'backfill');\n\t\tconst resolution = pick(mergedOptions, 'resolution');\n\t\tconst near = pick(mergedOptions, 'near');\n\t\tconst far = pick(mergedOptions, 'far');\n\n\t\tconst fbo = computed(() => {\n\t\t\tconst fbo = new THREE.WebGLCubeRenderTarget(resolution());\n\t\t\tfbo.texture.type = THREE.HalfFloatType;\n\t\t\treturn fbo;\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst _fbo = fbo();\n\t\t\tonCleanup(() => _fbo.dispose());\n\t\t});\n\n\t\tconst cubeCamera = computed(() => new THREE.CubeCamera(near()!, far()!, fbo()));\n\t\tconst update = () => {\n\t\t\tconst [scene, gl, camera, { envMap, fog }] = [\n\t\t\t\tstore.scene(),\n\t\t\t\tstore.gl(),\n\t\t\t\tcubeCamera(),\n\t\t\t\tuntracked(mergedOptions),\n\t\t\t];\n\t\t\tlet originalFog: THREE.Fog | THREE.FogExp2;\n\t\t\tlet originalBackground: THREE.Texture;\n\n\t\t\toriginalFog = scene.fog as THREE.Fog | THREE.FogExp2;\n\t\t\toriginalBackground = scene.background as THREE.Texture;\n\t\t\tscene.background = envMap || originalBackground;\n\t\t\tscene.fog = fog || originalFog;\n\t\t\tcamera.update(gl, scene);\n\t\t\tscene.fog = originalFog;\n\t\t\tscene.background = originalBackground;\n\t\t};\n\n\t\treturn { fbo, camera: cubeCamera, update };\n\t});\n}\n\nexport interface NgtsCubeCameraOptions extends Partial<NgtThreeElements['ngt-group']>, CubeCameraOptions {\n\tframes: number;\n}\n\nconst defaultOptions: NgtsCubeCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tnear: 0.1,\n\tfar: 1000,\n};\n\n@Component({\n\tselector: 'ngts-cube-camera',\n\ttemplate: `\n\t\t<ngt-group [parameters]=\"parameters()\">\n\t\t\t<ngt-primitive *args=\"[camera()]\" />\n\t\t\t<ngt-group #group>\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t\t/>\n\t\t\t</ngt-group>\n\t\t</ngt-group>\n\t`,\n\timports: [NgtArgs, NgTemplateOutlet],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsCubeCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, ['fog', 'near', 'far', 'envMap', 'resolution', 'frames']);\n\n\tprivate cubeCamera = injectCubeCamera(pick(this.options, ['near', 'far', 'envMap', 'fog', 'resolution']));\n\n\tprotected camera = this.cubeCamera.camera;\n\tprotected texture = pick(this.cubeCamera.fbo, 'texture');\n\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tconstructor() {\n\t\textend({ Group });\n\n\t\tlet count = 0;\n\t\tinjectBeforeRender(() => {\n\t\t\tconst group = this.groupRef().nativeElement;\n\t\t\tif (!group) return;\n\n\t\t\tconst frames = this.options().frames;\n\t\t\tif (frames === Infinity || count < frames) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tthis.cubeCamera.update();\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tTemplateRef,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { NgtThreeElements, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group, OrthographicCamera } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface NgtsOrthographicCameraOptions extends Partial<NgtThreeElements['ngt-orthographic-camera']> {\n\t/** Registers the camera as the system default, fiber will start rendering with it */\n\tmakeDefault?: boolean;\n\t/** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */\n\tmanual?: boolean;\n\t/** Number of frames to render, Infinity */\n\tframes: number;\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Optional environment map for functional use */\n\tenvMap?: THREE.Texture;\n}\n\nconst defaultOptions: NgtsOrthographicCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tmakeDefault: false,\n\tmanual: false,\n};\n\n@Component({\n\tselector: 'ngts-orthographic-camera',\n\ttemplate: `\n\t\t<ngt-orthographic-camera\n\t\t\t#camera\n\t\t\t[left]=\"left()\"\n\t\t\t[right]=\"right()\"\n\t\t\t[top]=\"top()\"\n\t\t\t[bottom]=\"bottom()\"\n\t\t\t[parameters]=\"parameters()\"\n\t\t>\n\t\t\t<ng-container [ngTemplateOutlet]=\"content() ?? null\" />\n\t\t</ngt-orthographic-camera>\n\n\t\t<ngt-group #group>\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t/>\n\t\t</ngt-group>\n\t`,\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrthographicCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, [\n\t\t'envMap',\n\t\t'makeDefault',\n\t\t'frames',\n\t\t'resolution',\n\t\t'left',\n\t\t'top',\n\t\t'bottom',\n\t\t'right',\n\t]);\n\n\tprotected content = contentChild(TemplateRef);\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tcameraRef = viewChild.required<ElementRef<THREE.OrthographicCamera>>('camera');\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate store = injectStore();\n\n\tprivate _left = pick(this.options, 'left');\n\tprivate _right = pick(this.options, 'right');\n\tprivate _top = pick(this.options, 'top');\n\tprivate _bottom = pick(this.options, 'bottom');\n\n\tprotected left = computed(() => this._left() ?? this.store.size.width() / -2);\n\tprotected right = computed(() => this._right() ?? this.store.size.width() / 2);\n\tprotected top = computed(() => this._top() ?? this.store.size.height() / 2);\n\tprotected bottom = computed(() => this._bottom() ?? this.store.size.height() / -2);\n\n\tprivate manual = pick(this.options, 'manual');\n\tprivate makeDefault = pick(this.options, 'makeDefault');\n\tprivate resolution = pick(this.options, 'resolution');\n\n\tprivate fbo = injectFBO(() => ({ width: this.resolution() }));\n\tprotected texture = pick(this.fbo, 'texture');\n\n\tconstructor() {\n\t\textend({ OrthographicCamera, Group });\n\n\t\teffect(() => {\n\t\t\tthis.cameraRef().nativeElement.updateProjectionMatrix();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst manual = this.manual();\n\t\t\tif (manual) return;\n\n\t\t\tconst camera = this.cameraRef().nativeElement;\n\t\t\tcamera.updateProjectionMatrix();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst makeDefault = this.makeDefault();\n\t\t\tif (!makeDefault) return;\n\n\t\t\tconst oldCam = this.store.snapshot.camera;\n\t\t\tthis.store.update({ camera: this.cameraRef().nativeElement });\n\t\t\tonCleanup(() => this.store.update(() => ({ camera: oldCam })));\n\t\t});\n\n\t\tlet count = 0;\n\t\tlet oldEnvMap: THREE.Color | THREE.Texture | null = null;\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst [{ frames, envMap }, group, camera, fbo] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.fbo(),\n\t\t\t];\n\t\t\tif (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tgl.setRenderTarget(fbo);\n\t\t\t\toldEnvMap = scene.background;\n\t\t\t\tif (envMap) scene.background = envMap;\n\t\t\t\tgl.render(scene, camera);\n\t\t\t\tscene.background = oldEnvMap;\n\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tTemplateRef,\n\tcontentChild,\n\teffect,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport { NgtThreeElements, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';\nimport { injectFBO } from 'angular-three-soba/misc';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport * as THREE from 'three';\nimport { Group, PerspectiveCamera } from 'three';\nimport { NgtsCameraContent } from './camera-content';\n\nexport interface NgtsPerspectiveCameraOptions extends Partial<NgtThreeElements['ngt-perspective-camera']> {\n\t/** Registers the camera as the system default, fiber will start rendering with it */\n\tmakeDefault?: boolean;\n\t/** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */\n\tmanual?: boolean;\n\t/** Number of frames to render, Infinity */\n\tframes: number;\n\t/** Resolution of the FBO, 256 */\n\tresolution: number;\n\t/** Optional environment map for functional use */\n\tenvMap?: THREE.Texture;\n}\n\nconst defaultOptions: NgtsPerspectiveCameraOptions = {\n\tframes: Infinity,\n\tresolution: 256,\n\tmakeDefault: false,\n\tmanual: false,\n};\n\n@Component({\n\tselector: 'ngts-perspective-camera',\n\ttemplate: `\n\t\t<ngt-perspective-camera #camera [parameters]=\"parameters()\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"content() ?? null\" />\n\t\t</ngt-perspective-camera>\n\n\t\t<ngt-group #group>\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"cameraContent() ?? null\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: texture }\"\n\t\t\t/>\n\t\t</ngt-group>\n\t`,\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsPerspectiveCamera {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tprotected parameters = omit(this.options, ['envMap', 'makeDefault', 'frames', 'resolution']);\n\n\tprotected content = contentChild(TemplateRef);\n\tprotected cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });\n\n\tcameraRef = viewChild.required<ElementRef<THREE.PerspectiveCamera>>('camera');\n\tgroupRef = viewChild.required<ElementRef<THREE.Group>>('group');\n\n\tprivate store = injectStore();\n\n\tprivate manual = pick(this.options, 'manual');\n\tprivate makeDefault = pick(this.options, 'makeDefault');\n\tprivate resolution = pick(this.options, 'resolution');\n\tprivate fbo = injectFBO(() => ({ width: this.resolution() }));\n\tprotected texture = pick(this.fbo, 'texture');\n\n\tconstructor() {\n\t\textend({ PerspectiveCamera, Group });\n\n\t\teffect(() => {\n\t\t\tthis.cameraRef().nativeElement.updateProjectionMatrix();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst manual = this.manual();\n\t\t\tif (manual) return;\n\t\t\tconst [camera, width, height] = [\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.store.size.width(),\n\t\t\t\tthis.store.size.height(),\n\t\t\t];\n\t\t\tcamera.aspect = width / height;\n\t\t\tcamera.updateProjectionMatrix();\n\t\t});\n\n\t\teffect((onCleanup) => {\n\t\t\tconst makeDefault = this.makeDefault();\n\t\t\tif (!makeDefault) return;\n\n\t\t\tconst oldCam = this.store.snapshot.camera;\n\t\t\tthis.store.update({ camera: this.cameraRef().nativeElement });\n\t\t\tonCleanup(() => this.store.update(() => ({ camera: oldCam })));\n\t\t});\n\n\t\tlet count = 0;\n\t\tlet oldEnvMap: THREE.Color | THREE.Texture | null = null;\n\t\tinjectBeforeRender(({ gl, scene }) => {\n\t\t\tconst [{ frames, envMap }, group, camera, fbo] = [\n\t\t\t\tthis.options(),\n\t\t\t\tthis.groupRef().nativeElement,\n\t\t\t\tthis.cameraRef().nativeElement,\n\t\t\t\tthis.fbo(),\n\t\t\t];\n\t\t\tif (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {\n\t\t\t\tgroup.visible = false;\n\t\t\t\tgl.setRenderTarget(fbo);\n\t\t\t\toldEnvMap = scene.background;\n\t\t\t\tif (envMap) scene.background = envMap;\n\t\t\t\tgl.render(scene, camera);\n\t\t\t\tscene.background = oldEnvMap;\n\t\t\t\tgl.setRenderTarget(null);\n\t\t\t\tgroup.visible = true;\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["defaultOptions"],"mappings":";;;;;;;;;;MAIa,iBAAiB,CAAA;AAC7B,IAAA,OAAO,sBAAsB,CAAC,CAAoB,EAAE,GAAY,EAAA;AAC/D,QAAA,OAAO,IAAI;;8GAFA,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,SAAS;mBAAC,EAAE,QAAQ,EAAE,4BAA4B,EAAE;;;ACgC/C,SAAU,gBAAgB,CAAC,OAAgC,EAAE,EAAE,QAAQ,KAA8B,EAAE,EAAA;AAC5G,IAAA,OAAO,cAAc,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAK;AACtD,QAAA,MAAM,KAAK,GAAG,WAAW,EAAE;;QAG3B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC;QAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;AAEtC,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAK;YACzB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;YACzD,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,aAAa;AACtC,YAAA,OAAO,GAAG;AACX,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACpB,YAAA,MAAM,IAAI,GAAG,GAAG,EAAE;YAClB,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAChC,SAAC,CAAC;QAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAK;AACnB,YAAA,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG;gBAC5C,KAAK,CAAC,KAAK,EAAE;gBACb,KAAK,CAAC,EAAE,EAAE;AACV,gBAAA,UAAU,EAAE;gBACZ,SAAS,CAAC,aAAa,CAAC;aACxB;AACD,YAAA,IAAI,WAAsC;AAC1C,YAAA,IAAI,kBAAiC;AAErC,YAAA,WAAW,GAAG,KAAK,CAAC,GAAgC;AACpD,YAAA,kBAAkB,GAAG,KAAK,CAAC,UAA2B;AACtD,YAAA,KAAK,CAAC,UAAU,GAAG,MAAM,IAAI,kBAAkB;AAC/C,YAAA,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,WAAW;AAC9B,YAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;AACxB,YAAA,KAAK,CAAC,GAAG,GAAG,WAAW;AACvB,YAAA,KAAK,CAAC,UAAU,GAAG,kBAAkB;AACtC,SAAC;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;AAC3C,KAAC,CAAC;AACH;AAMA,MAAMA,gBAAc,GAA0B;AAC7C,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,GAAG,EAAE,IAAI;CACT;MAmBY,cAAc,CAAA;AAY1B,IAAA,WAAA,GAAA;AAXA,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAACA,gBAAc,EAAE,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC;QACjE,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE3F,IAAU,CAAA,UAAA,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;AAE/F,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;QAC/B,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC;AAExD,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAA0B,OAAO,CAAC;QACrD,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAG/E,QAAA,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QAEjB,IAAI,KAAK,GAAG,CAAC;QACb,kBAAkB,CAAC,MAAK;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa;AAC3C,YAAA,IAAI,CAAC,KAAK;gBAAE;YAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;YACpC,IAAI,MAAM,KAAK,QAAQ,IAAI,KAAK,GAAG,MAAM,EAAE;AAC1C,gBAAA,KAAK,CAAC,OAAO,GAAG,KAAK;AACrB,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACxB,gBAAA,KAAK,CAAC,OAAO,GAAG,IAAI;AACpB,gBAAA,KAAK,EAAE;;AAET,SAAC,CAAC;;8GA3BS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAUa,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAzBnE,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;EAUT,EACS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,gFAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIvB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAjB1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;;;;;;;;;;AAUT,CAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;oBACpC,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,iBAAA;;;AC1ED,MAAMA,gBAAc,GAAkC;AACrD,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,MAAM,EAAE,KAAK;CACb;MA2BY,sBAAsB,CAAA;AAsClC,IAAA,WAAA,GAAA;AArCA,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAACA,gBAAc,EAAE,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACzC,QAAQ;YACR,aAAa;YACb,QAAQ;YACR,YAAY;YACZ,MAAM;YACN,KAAK;YACL,QAAQ;YACR,OAAO;AACP,SAAA,CAAC;AAEQ,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC;QACnC,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAEhF,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAuC,QAAQ,CAAC;AAC9E,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAA0B,OAAO,CAAC;QAEvD,IAAK,CAAA,KAAA,GAAG,WAAW,EAAE;QAErB,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;QAClC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACpC,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;QAChC,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAEpC,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACnE,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpE,IAAG,CAAA,GAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjE,IAAM,CAAA,MAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAE1E,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACrC,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAC/C,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AAE7C,QAAA,IAAA,CAAA,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnD,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC;AAG5C,QAAA,MAAM,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;QAErC,MAAM,CAAC,MAAK;YACX,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,sBAAsB,EAAE;AACxD,SAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,YAAA,IAAI,MAAM;gBAAE;YAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa;YAC7C,MAAM,CAAC,sBAAsB,EAAE;AAChC,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACpB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,IAAI,CAAC,WAAW;gBAAE;YAElB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;AACzC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE,CAAC;YAC7D,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/D,SAAC,CAAC;QAEF,IAAI,KAAK,GAAG,CAAC;QACb,IAAI,SAAS,GAAuC,IAAI;QACxD,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAI;AACpC,YAAA,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG;gBAChD,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa;AAC7B,gBAAA,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa;gBAC9B,IAAI,CAAC,GAAG,EAAE;aACV;YACD,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,KAAK,MAAM,KAAK,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE;AAC9F,gBAAA,KAAK,CAAC,OAAO,GAAG,KAAK;AACrB,gBAAA,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;AACvB,gBAAA,SAAS,GAAG,KAAK,CAAC,UAAU;AAC5B,gBAAA,IAAI,MAAM;AAAE,oBAAA,KAAK,CAAC,UAAU,GAAG,MAAM;AACrC,gBAAA,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;AACxB,gBAAA,KAAK,CAAC,UAAU,GAAG,SAAS;AAC5B,gBAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,gBAAA,KAAK,CAAC,OAAO,GAAG,IAAI;AACpB,gBAAA,KAAK,EAAE;;AAET,SAAC,CAAC;;8GAlFS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,mQAaD,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACL,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,EArCnE,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;AAkBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAId,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAzBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;AAkBT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA;;;AChCD,MAAM,cAAc,GAAiC;AACpD,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,MAAM,EAAE,KAAK;CACb;MAoBY,qBAAqB,CAAA;AAkBjC,IAAA,WAAA,GAAA;AAjBA,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAElF,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC;QACnC,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAEhF,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAsC,QAAQ,CAAC;AAC7E,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAA0B,OAAO,CAAC;QAEvD,IAAK,CAAA,KAAA,GAAG,WAAW,EAAE;QAErB,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACrC,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAC/C,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AAC7C,QAAA,IAAA,CAAA,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACnD,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC;AAG5C,QAAA,MAAM,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;QAEpC,MAAM,CAAC,MAAK;YACX,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,sBAAsB,EAAE;AACxD,SAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,YAAA,IAAI,MAAM;gBAAE;AACZ,YAAA,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG;AAC/B,gBAAA,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;aACxB;AACD,YAAA,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM;YAC9B,MAAM,CAAC,sBAAsB,EAAE;AAChC,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACpB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,IAAI,CAAC,WAAW;gBAAE;YAElB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;AACzC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE,CAAC;YAC7D,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC/D,SAAC,CAAC;QAEF,IAAI,KAAK,GAAG,CAAC;QACb,IAAI,SAAS,GAAuC,IAAI;QACxD,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAI;AACpC,YAAA,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG;gBAChD,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa;AAC7B,gBAAA,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa;gBAC9B,IAAI,CAAC,GAAG,EAAE;aACV;YACD,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,KAAK,MAAM,KAAK,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE;AAC9F,gBAAA,KAAK,CAAC,OAAO,GAAG,KAAK;AACrB,gBAAA,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;AACvB,gBAAA,SAAS,GAAG,KAAK,CAAC,UAAU;AAC5B,gBAAA,IAAI,MAAM;AAAE,oBAAA,KAAK,CAAC,UAAU,GAAG,MAAM;AACrC,gBAAA,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;AACxB,gBAAA,KAAK,CAAC,UAAU,GAAG,SAAS;AAC5B,gBAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,gBAAA,KAAK,CAAC,OAAO,GAAG,IAAI;AACpB,gBAAA,KAAK,EAAE;;AAET,SAAC,CAAC;;8GAlES,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,kQAIA,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACL,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,EArBnE,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;AAWT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAId,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE;;;;;;;;;;;AAWT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA;;;ACxDD;;AAEG;;;;"}
@@ -4,10 +4,10 @@ import * as THREE from 'three';
4
4
  import CustomShaderMaterial from 'three-custom-shader-material/vanilla';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class NgtsCustomShaderMaterial {
7
- baseMaterial: import("@angular/core").InputSignal<typeof THREE.Material | THREE.Material | ElementRef<THREE.Material>>;
7
+ baseMaterial: import("@angular/core").InputSignal<THREE.Material | typeof THREE.Material | ElementRef<THREE.Material>>;
8
8
  attach: import("@angular/core").InputSignal<NgtAttachable>;
9
9
  options: import("@angular/core").InputSignal<Omit<any, "baseMaterial">>;
10
- parameters: import("@angular/core").Signal<Omit<Omit<any, "baseMaterial">, "uniforms" | "vertexShader" | "fragmentShader" | "cacheKey">>;
10
+ parameters: import("@angular/core").Signal<Omit<Omit<any, "baseMaterial">, "fragmentShader" | "vertexShader" | "uniforms" | "cacheKey">>;
11
11
  private base;
12
12
  private fragmentShader;
13
13
  private vertexShader;
@@ -29,7 +29,7 @@ export type NgtsMeshTransmissionMaterialOptions = Partial<NgtThreeElements['ngt-
29
29
  export declare class NgtsMeshTransmissionMaterial {
30
30
  attach: import("@angular/core").InputSignal<NgtAttachable>;
31
31
  options: import("@angular/core").InputSignalWithTransform<NgtsMeshTransmissionMaterialOptions, "" | Partial<NgtsMeshTransmissionMaterialOptions>>;
32
- protected parameters: import("@angular/core").Signal<Omit<NgtsMeshTransmissionMaterialOptions, "thickness" | "anisotropy" | "transmission" | "side" | "buffer" | "anisotropicBlur" | "samples" | "transmissionSampler" | "backside" | "backsideThickness" | "backsideEnvMapIntensity" | "resolution" | "backsideResolution" | "background">>;
32
+ protected parameters: import("@angular/core").Signal<Omit<NgtsMeshTransmissionMaterialOptions, "thickness" | "anisotropy" | "transmission" | "side" | "resolution" | "background" | "buffer" | "anisotropicBlur" | "samples" | "transmissionSampler" | "backside" | "backsideThickness" | "backsideEnvMapIntensity" | "backsideResolution">>;
33
33
  private resolution;
34
34
  private backsideResolution;
35
35
  private samples;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three-soba",
3
- "version": "4.0.0-next.52",
3
+ "version": "4.0.0-next.54",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -35,6 +35,10 @@
35
35
  "types": "./abstractions/index.d.ts",
36
36
  "default": "./fesm2022/angular-three-soba-abstractions.mjs"
37
37
  },
38
+ "./controls": {
39
+ "types": "./controls/index.d.ts",
40
+ "default": "./fesm2022/angular-three-soba-controls.mjs"
41
+ },
38
42
  "./cameras": {
39
43
  "types": "./cameras/index.d.ts",
40
44
  "default": "./fesm2022/angular-three-soba-cameras.mjs"
@@ -43,18 +47,14 @@
43
47
  "types": "./gizmos/index.d.ts",
44
48
  "default": "./fesm2022/angular-three-soba-gizmos.mjs"
45
49
  },
46
- "./controls": {
47
- "types": "./controls/index.d.ts",
48
- "default": "./fesm2022/angular-three-soba-controls.mjs"
50
+ "./loaders": {
51
+ "types": "./loaders/index.d.ts",
52
+ "default": "./fesm2022/angular-three-soba-loaders.mjs"
49
53
  },
50
54
  "./materials": {
51
55
  "types": "./materials/index.d.ts",
52
56
  "default": "./fesm2022/angular-three-soba-materials.mjs"
53
57
  },
54
- "./loaders": {
55
- "types": "./loaders/index.d.ts",
56
- "default": "./fesm2022/angular-three-soba-loaders.mjs"
57
- },
58
58
  "./misc": {
59
59
  "types": "./misc/index.d.ts",
60
60
  "default": "./fesm2022/angular-three-soba-misc.mjs"