angular-three-soba 4.2.1 → 4.2.2

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.
@@ -45,7 +45,7 @@ class NgtsAccumulativeShadows {
45
45
  constructor() {
46
46
  this.nullTraversal = () => null;
47
47
  this.Math = Math;
48
- this.options = input(defaultOptions$e, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$e) });
48
+ this.options = input(defaultOptions$e, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$e) });
49
49
  this.parameters = omit(this.options, [
50
50
  'temporal',
51
51
  'frames',
@@ -71,16 +71,16 @@ class NgtsAccumulativeShadows {
71
71
  this.previousPLM.clear();
72
72
  }
73
73
  return (this.previousPLM = new ProgressiveLightMap(this.store.gl(), this.store.scene(), this.resolution()));
74
- }, ...(ngDevMode ? [{ debugName: "pLM" }] : []));
74
+ }, ...(ngDevMode ? [{ debugName: "pLM" }] : /* istanbul ignore next */ []));
75
75
  this.scale = pick(this.options, 'scale');
76
76
  this.toneMapped = pick(this.options, 'toneMapped');
77
77
  this.color = pick(this.options, 'color');
78
78
  this.colorBlend = pick(this.options, 'colorBlend');
79
- this.map = computed(() => this.pLM().progressiveLightMap2.texture, ...(ngDevMode ? [{ debugName: "map" }] : []));
79
+ this.map = computed(() => this.pLM().progressiveLightMap2.texture, ...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
80
80
  this.lightsMap = new Map();
81
- this.temporal = computed(() => !!this.options().temporal, ...(ngDevMode ? [{ debugName: "temporal" }] : []));
82
- this.frames = computed(() => Math.max(2, this.options().frames), ...(ngDevMode ? [{ debugName: "frames" }] : []));
83
- this.blend = computed(() => Math.max(2, this.options().frames === Infinity ? this.options().blend : this.options().frames), ...(ngDevMode ? [{ debugName: "blend" }] : []));
81
+ this.temporal = computed(() => !!this.options().temporal, ...(ngDevMode ? [{ debugName: "temporal" }] : /* istanbul ignore next */ []));
82
+ this.frames = computed(() => Math.max(2, this.options().frames), ...(ngDevMode ? [{ debugName: "frames" }] : /* istanbul ignore next */ []));
83
+ this.blend = computed(() => Math.max(2, this.options().frames === Infinity ? this.options().blend : this.options().frames), ...(ngDevMode ? [{ debugName: "blend" }] : /* istanbul ignore next */ []));
84
84
  this.count = 0;
85
85
  extend({ Group, SoftShadowMaterial, Mesh, PlaneGeometry });
86
86
  effect(() => {
@@ -176,8 +176,8 @@ class NgtsAccumulativeShadows {
176
176
  // Restore lights and meshes
177
177
  this.pLM().finish();
178
178
  }
179
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsAccumulativeShadows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
180
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsAccumulativeShadows, isStandalone: true, selector: "ngts-accumulative-shadows", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lightsRef", first: true, predicate: ["lights"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsAccumulativeShadows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsAccumulativeShadows, isStandalone: true, selector: "ngts-accumulative-shadows", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lightsRef", first: true, predicate: ["lights"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
181
181
  <ngt-group [parameters]="parameters()">
182
182
  <ngt-group #lights [traverse]="nullTraversal">
183
183
  <ng-content />
@@ -197,7 +197,7 @@ class NgtsAccumulativeShadows {
197
197
  </ngt-group>
198
198
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
199
199
  }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
201
201
  type: Component,
202
202
  args: [{
203
203
  selector: 'ngts-accumulative-shadows',
@@ -247,10 +247,10 @@ const defaultOptions$d = {
247
247
  class NgtsBackdrop {
248
248
  constructor() {
249
249
  this.Math = Math;
250
- this.options = input(defaultOptions$d, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$d) });
250
+ this.options = input(defaultOptions$d, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$d) });
251
251
  this.parameters = omit(this.options, ['floor', 'segments', 'receiveShadow']);
252
252
  this.groupRef = viewChild.required('group');
253
- this.planeRef = viewChild('plane', ...(ngDevMode ? [{ debugName: "planeRef" }] : []));
253
+ this.planeRef = viewChild('plane', ...(ngDevMode ? [{ debugName: "planeRef" }] : /* istanbul ignore next */ []));
254
254
  this.receiveShadow = pick(this.options, 'receiveShadow');
255
255
  this.segments = pick(this.options, 'segments');
256
256
  this.floor = pick(this.options, 'floor');
@@ -272,8 +272,8 @@ class NgtsBackdrop {
272
272
  plane.computeVertexNormals();
273
273
  });
274
274
  }
275
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
276
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsBackdrop, isStandalone: true, selector: "ngts-backdrop", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsBackdrop, isStandalone: true, selector: "ngts-backdrop", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
277
277
  <ngt-group #group [parameters]="parameters()">
278
278
  <ngt-mesh [receiveShadow]="receiveShadow()" [rotation]="[-Math.PI / 2, 0, Math.PI / 2]">
279
279
  <ngt-plane-geometry #plane *args="[1, 1, segments(), segments()]" />
@@ -282,7 +282,7 @@ class NgtsBackdrop {
282
282
  </ngt-group>
283
283
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
284
284
  }
285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsBackdrop, decorators: [{
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBackdrop, decorators: [{
286
286
  type: Component,
287
287
  args: [{
288
288
  selector: 'ngts-backdrop',
@@ -324,10 +324,10 @@ const boundingBoxSize = new THREE.Vector3();
324
324
  */
325
325
  class NgtsBBAnchor {
326
326
  constructor() {
327
- this.options = input.required(...(ngDevMode ? [{ debugName: "options" }] : []));
327
+ this.options = input.required(...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
328
328
  this.parameters = omit(this.options, ['anchor']);
329
329
  this.bbAnchorRef = viewChild.required('bbAnchor');
330
- this.parent = signal(null, ...(ngDevMode ? [{ debugName: "parent" }] : []));
330
+ this.parent = signal(null, ...(ngDevMode ? [{ debugName: "parent" }] : /* istanbul ignore next */ []));
331
331
  this.anchor = vector3(this.options, 'anchor');
332
332
  extend({ Group });
333
333
  // Reattach group created by this component to the parent's parent,
@@ -352,14 +352,14 @@ class NgtsBBAnchor {
352
352
  }
353
353
  });
354
354
  }
355
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsBBAnchor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
356
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsBBAnchor, isStandalone: true, selector: "ngts-bb-anchor", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "bbAnchorRef", first: true, predicate: ["bbAnchor"], descendants: true, isSignal: true }], ngImport: i0, template: `
355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBBAnchor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
356
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsBBAnchor, isStandalone: true, selector: "ngts-bb-anchor", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "bbAnchorRef", first: true, predicate: ["bbAnchor"], descendants: true, isSignal: true }], ngImport: i0, template: `
357
357
  <ngt-group #bbAnchor [parameters]="parameters()">
358
358
  <ng-content />
359
359
  </ngt-group>
360
360
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
361
361
  }
362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsBBAnchor, decorators: [{
362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBBAnchor, decorators: [{
363
363
  type: Component,
364
364
  args: [{
365
365
  selector: 'ngts-bb-anchor',
@@ -411,7 +411,7 @@ const defaultOptions$c = {
411
411
  */
412
412
  class NgtsBounds {
413
413
  constructor() {
414
- this.options = input(defaultOptions$c, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$c) });
414
+ this.options = input(defaultOptions$c, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$c) });
415
415
  this.groupRef = viewChild.required('group');
416
416
  this.store = injectStore();
417
417
  this.clipOption = pick(this.options, 'clip');
@@ -689,14 +689,14 @@ class NgtsBounds {
689
689
  invalidate();
690
690
  return this;
691
691
  }
692
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsBounds, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
693
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsBounds, isStandalone: true, selector: "ngts-bounds", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBounds, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsBounds, isStandalone: true, selector: "ngts-bounds", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
694
694
  <ngt-group #group>
695
695
  <ng-content />
696
696
  </ngt-group>
697
697
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
698
698
  }
699
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsBounds, decorators: [{
699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsBounds, decorators: [{
700
700
  type: Component,
701
701
  args: [{
702
702
  selector: 'ngts-bounds',
@@ -739,13 +739,13 @@ const defaultOptions$b = {
739
739
  class NgtsCameraShake {
740
740
  constructor() {
741
741
  /** Configuration options for the camera shake effect. */
742
- this.options = input(defaultOptions$b, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$b) });
742
+ this.options = input(defaultOptions$b, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$b) });
743
743
  this.store = injectStore();
744
744
  /**
745
745
  * The underlying CameraShake instance that performs the actual shake calculations.
746
746
  * Exposed for advanced usage such as manually triggering or stopping the shake.
747
747
  */
748
- this.cameraShaker = computed(() => new CameraShake(this.store.camera()), ...(ngDevMode ? [{ debugName: "cameraShaker" }] : []));
748
+ this.cameraShaker = computed(() => new CameraShake(this.store.camera()), ...(ngDevMode ? [{ debugName: "cameraShaker" }] : /* istanbul ignore next */ []));
749
749
  effect((onCleanup) => {
750
750
  const defaultControls = this.store.controls();
751
751
  if (!defaultControls)
@@ -764,10 +764,10 @@ class NgtsCameraShake {
764
764
  cameraShaker.update(delta, clock.elapsedTime);
765
765
  });
766
766
  }
767
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCameraShake, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
768
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: NgtsCameraShake, isStandalone: true, selector: "ngts-camera-shake", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["cameraShake"], ngImport: i0 }); }
767
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCameraShake, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
768
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsCameraShake, isStandalone: true, selector: "ngts-camera-shake", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["cameraShake"], ngImport: i0 }); }
769
769
  }
770
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCameraShake, decorators: [{
770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCameraShake, decorators: [{
771
771
  type: Directive,
772
772
  args: [{
773
773
  selector: 'ngts-camera-shake',
@@ -776,7 +776,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
776
776
  }], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
777
777
 
778
778
  const NORMAL_OPTIONS = {
779
- depthBuffer: true,
779
+ depth: true,
780
780
  minFilter: THREE.LinearFilter,
781
781
  magFilter: THREE.LinearFilter,
782
782
  type: THREE.UnsignedByteType,
@@ -825,7 +825,7 @@ class NgtsCaustics {
825
825
  this.OneFactor = THREE.OneFactor;
826
826
  this.SrcAlphaFactor = THREE.SrcAlphaFactor;
827
827
  /** Configuration options for the caustics effect. */
828
- this.options = input(defaultOptions$a, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$a) });
828
+ this.options = input(defaultOptions$a, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$a) });
829
829
  this.parameters = omit(this.options, [
830
830
  'frames',
831
831
  'debug',
@@ -851,7 +851,7 @@ class NgtsCaustics {
851
851
  width: this.resolution(),
852
852
  height: this.resolution(),
853
853
  settings: NORMAL_OPTIONS,
854
- }), ...(ngDevMode ? [{ debugName: "normalTargetParams" }] : []));
854
+ }), ...(ngDevMode ? [{ debugName: "normalTargetParams" }] : /* istanbul ignore next */ []));
855
855
  // Buffers for front and back faces
856
856
  this.normalTarget = fbo(this.normalTargetParams);
857
857
  this.normalTargetB = fbo(this.normalTargetParams);
@@ -859,7 +859,7 @@ class NgtsCaustics {
859
859
  width: this.resolution(),
860
860
  height: this.resolution(),
861
861
  settings: CAUSTIC_OPTIONS,
862
- }), ...(ngDevMode ? [{ debugName: "causticsTargetParams" }] : []));
862
+ }), ...(ngDevMode ? [{ debugName: "causticsTargetParams" }] : /* istanbul ignore next */ []));
863
863
  this.causticsTarget = fbo(this.causticsTargetParams);
864
864
  this.causticsTargetB = fbo(this.causticsTargetParams);
865
865
  this.cameraHelper = helper(() => (this.debug() ? this.cameraRef().nativeElement : null), () => THREE.CameraHelper);
@@ -912,8 +912,8 @@ class NgtsCaustics {
912
912
  });
913
913
  beforeRender(({ gl }) => update(gl));
914
914
  }
915
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCaustics, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
916
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsCaustics, isStandalone: true, selector: "ngts-caustics", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "sceneRef", first: true, predicate: ["scene"], descendants: true, isSignal: true }, { propertyName: "cameraRef", first: true, predicate: ["camera"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
915
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCaustics, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
916
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsCaustics, isStandalone: true, selector: "ngts-caustics", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "sceneRef", first: true, predicate: ["scene"], descendants: true, isSignal: true }, { propertyName: "cameraRef", first: true, predicate: ["camera"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
917
917
  <ngt-group #group [parameters]="parameters()">
918
918
  <ngt-scene #scene>
919
919
  <ngt-orthographic-camera #camera [up]="[0, 1, 0]" />
@@ -942,7 +942,7 @@ class NgtsCaustics {
942
942
  </ngt-group>
943
943
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsEdges, selector: "ngts-edges", inputs: ["options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
944
944
  }
945
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCaustics, decorators: [{
945
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCaustics, decorators: [{
946
946
  type: Component,
947
947
  args: [{
948
948
  selector: 'ngts-caustics',
@@ -1004,7 +1004,7 @@ const defaultOptions$9 = {
1004
1004
  class NgtsCenter {
1005
1005
  constructor() {
1006
1006
  /** Configuration options for centering behavior. */
1007
- this.options = input(defaultOptions$9, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$9) });
1007
+ this.options = input(defaultOptions$9, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$9) });
1008
1008
  this.parameters = omit(this.options, [
1009
1009
  'top',
1010
1010
  'right',
@@ -1080,8 +1080,8 @@ class NgtsCenter {
1080
1080
  });
1081
1081
  });
1082
1082
  }
1083
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCenter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1084
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsCenter, isStandalone: true, selector: "ngts-center", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { centered: "centered" }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "outerRef", first: true, predicate: ["outer"], descendants: true, isSignal: true }, { propertyName: "innerRef", first: true, predicate: ["inner"], descendants: true, isSignal: true }], ngImport: i0, template: `
1083
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCenter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1084
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsCenter, isStandalone: true, selector: "ngts-center", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { centered: "centered" }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "outerRef", first: true, predicate: ["outer"], descendants: true, isSignal: true }, { propertyName: "innerRef", first: true, predicate: ["inner"], descendants: true, isSignal: true }], ngImport: i0, template: `
1085
1085
  <ngt-group #group [parameters]="parameters()">
1086
1086
  <ngt-group #outer>
1087
1087
  <ngt-group #inner>
@@ -1091,7 +1091,7 @@ class NgtsCenter {
1091
1091
  </ngt-group>
1092
1092
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1093
1093
  }
1094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCenter, decorators: [{
1094
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCenter, decorators: [{
1095
1095
  type: Component,
1096
1096
  args: [{
1097
1097
  selector: 'ngts-center',
@@ -1140,18 +1140,18 @@ class NgtsClouds {
1140
1140
  constructor() {
1141
1141
  this.DynamicDrawUsage = THREE.DynamicDrawUsage;
1142
1142
  /** Configuration options for the clouds container. */
1143
- this.options = input(defaultCloudsOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultCloudsOptions) });
1143
+ this.options = input(defaultCloudsOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultCloudsOptions) });
1144
1144
  this.parameters = omit(this.options, ['material', 'texture', 'range', 'limit', 'frustumCulled']);
1145
1145
  this.texture = pick(this.options, 'texture');
1146
1146
  this.material = pick(this.options, 'material');
1147
1147
  this.range = pick(this.options, 'range');
1148
1148
  /** Reference to the container group element. */
1149
1149
  this.cloudsRef = viewChild.required('group');
1150
- this.instancesRef = viewChild('instances', ...(ngDevMode ? [{ debugName: "instancesRef" }] : []));
1150
+ this.instancesRef = viewChild('instances', ...(ngDevMode ? [{ debugName: "instancesRef" }] : /* istanbul ignore next */ []));
1151
1151
  this.limit = pick(this.options, 'limit');
1152
1152
  this.frustumCulled = pick(this.options, 'frustumCulled');
1153
- this.opacities = computed(() => new Float32Array(Array.from({ length: this.limit() }, () => 1)), ...(ngDevMode ? [{ debugName: "opacities" }] : []));
1154
- this.colors = computed(() => new Float32Array(Array.from({ length: this.limit() }, () => [1, 1, 1]).flat()), ...(ngDevMode ? [{ debugName: "colors" }] : []));
1153
+ this.opacities = computed(() => new Float32Array(Array.from({ length: this.limit() }, () => 1)), ...(ngDevMode ? [{ debugName: "opacities" }] : /* istanbul ignore next */ []));
1154
+ this.colors = computed(() => new Float32Array(Array.from({ length: this.limit() }, () => [1, 1, 1]).flat()), ...(ngDevMode ? [{ debugName: "colors" }] : /* istanbul ignore next */ []));
1155
1155
  this.cloudTexture = textureResource(this.texture);
1156
1156
  this.cloudMaterial = computed(() => {
1157
1157
  const _CloudMaterial = class extends this.material() {
@@ -1180,7 +1180,7 @@ class NgtsClouds {
1180
1180
  _material.depthWrite = false;
1181
1181
  checkUpdate(_material);
1182
1182
  return _material;
1183
- }, ...(ngDevMode ? [{ debugName: "cloudMaterial" }] : []));
1183
+ }, ...(ngDevMode ? [{ debugName: "cloudMaterial" }] : /* istanbul ignore next */ []));
1184
1184
  this.imageBounds = computed(() => {
1185
1185
  const texture = this.cloudTexture.value();
1186
1186
  if (!texture)
@@ -1188,7 +1188,7 @@ class NgtsClouds {
1188
1188
  const [w, h] = [texture.image.width ?? 1, texture.image.height ?? 1];
1189
1189
  const max = Math.max(w, h);
1190
1190
  return [w / max, h / max];
1191
- }, ...(ngDevMode ? [{ debugName: "imageBounds" }] : []));
1191
+ }, ...(ngDevMode ? [{ debugName: "imageBounds" }] : /* istanbul ignore next */ []));
1192
1192
  /**
1193
1193
  * Array of cloud segment states managed by this container.
1194
1194
  * Updated by NgtsCloudInstance children when they mount/unmount.
@@ -1254,8 +1254,8 @@ class NgtsClouds {
1254
1254
  checkUpdate(instances.instanceColor);
1255
1255
  });
1256
1256
  }
1257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsClouds, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1258
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsClouds, isStandalone: true, selector: "ngts-clouds", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "cloudsRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "instancesRef", first: true, predicate: ["instances"], descendants: true, isSignal: true }], ngImport: i0, template: `
1257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsClouds, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsClouds, isStandalone: true, selector: "ngts-clouds", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "cloudsRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "instancesRef", first: true, predicate: ["instances"], descendants: true, isSignal: true }], ngImport: i0, template: `
1259
1259
  <ngt-group #group [parameters]="parameters()">
1260
1260
  <ng-content />
1261
1261
  <ngt-instanced-mesh
@@ -1281,7 +1281,7 @@ class NgtsClouds {
1281
1281
  </ngt-group>
1282
1282
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1283
1283
  }
1284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsClouds, decorators: [{
1284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsClouds, decorators: [{
1285
1285
  type: Component,
1286
1286
  args: [{
1287
1287
  selector: 'ngts-clouds',
@@ -1345,7 +1345,7 @@ const defaultCloudOptions = {
1345
1345
  class NgtsCloudInstance {
1346
1346
  constructor() {
1347
1347
  /** Configuration options for this cloud formation. */
1348
- this.options = input(defaultCloudOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultCloudOptions) });
1348
+ this.options = input(defaultCloudOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultCloudOptions) });
1349
1349
  this.parameters = omit(this.options, [
1350
1350
  'bounds',
1351
1351
  'seed',
@@ -1385,7 +1385,7 @@ class NgtsCloudInstance {
1385
1385
  matrix: new THREE.Matrix4(),
1386
1386
  color: new THREE.Color(),
1387
1387
  rotation: index * (Math.PI / this.segments()),
1388
- })), ...(ngDevMode ? [{ debugName: "clouds" }] : []));
1388
+ })), ...(ngDevMode ? [{ debugName: "clouds" }] : /* istanbul ignore next */ []));
1389
1389
  this.parent = inject(NgtsClouds);
1390
1390
  extend({ Group });
1391
1391
  afterRenderEffect({
@@ -1461,14 +1461,14 @@ class NgtsCloudInstance {
1461
1461
  const x = Math.sin(ref.seed++) * 10_000;
1462
1462
  return x - Math.floor(x);
1463
1463
  }
1464
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCloudInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1465
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsCloudInstance, isStandalone: true, selector: "ngts-cloud-instance", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "cloudInstanceRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
1464
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCloudInstance, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1465
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsCloudInstance, isStandalone: true, selector: "ngts-cloud-instance", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "cloudInstanceRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
1466
1466
  <ngt-group #group [parameters]="parameters()">
1467
1467
  <ng-content />
1468
1468
  </ngt-group>
1469
1469
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1470
1470
  }
1471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCloudInstance, decorators: [{
1471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCloudInstance, decorators: [{
1472
1472
  type: Component,
1473
1473
  args: [{
1474
1474
  selector: 'ngts-cloud-instance',
@@ -1496,13 +1496,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
1496
1496
  class NgtsCloud {
1497
1497
  constructor() {
1498
1498
  /** Configuration options for the cloud. */
1499
- this.options = input(defaultCloudOptions, ...(ngDevMode ? [{ debugName: "options" }] : []));
1499
+ this.options = input(defaultCloudOptions, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
1500
1500
  this.parent = inject(NgtsClouds, { optional: true });
1501
1501
  /** Reference to the underlying NgtsCloudInstance component. */
1502
- this.cloudRef = viewChild(NgtsCloudInstance, ...(ngDevMode ? [{ debugName: "cloudRef" }] : []));
1502
+ this.cloudRef = viewChild(NgtsCloudInstance, ...(ngDevMode ? [{ debugName: "cloudRef" }] : /* istanbul ignore next */ []));
1503
1503
  }
1504
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCloud, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1505
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsCloud, isStandalone: true, selector: "ngts-cloud", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "cloudRef", first: true, predicate: NgtsCloudInstance, descendants: true, isSignal: true }], ngImport: i0, template: `
1504
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCloud, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1505
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsCloud, isStandalone: true, selector: "ngts-cloud", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "cloudRef", first: true, predicate: NgtsCloudInstance, descendants: true, isSignal: true }], ngImport: i0, template: `
1506
1506
  @if (parent) {
1507
1507
  <ngts-cloud-instance [options]="options()">
1508
1508
  <ng-content />
@@ -1516,7 +1516,7 @@ class NgtsCloud {
1516
1516
  }
1517
1517
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsCloudInstance, selector: "ngts-cloud-instance", inputs: ["options"] }, { kind: "component", type: NgtsClouds, selector: "ngts-clouds", inputs: ["options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1518
1518
  }
1519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsCloud, decorators: [{
1519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsCloud, decorators: [{
1520
1520
  type: Component,
1521
1521
  args: [{
1522
1522
  selector: 'ngts-cloud',
@@ -1571,7 +1571,7 @@ const defaultOptions$8 = {
1571
1571
  class NgtsContactShadows {
1572
1572
  constructor() {
1573
1573
  this.Math = Math;
1574
- this.options = input(defaultOptions$8, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$8) });
1574
+ this.options = input(defaultOptions$8, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$8) });
1575
1575
  this.parameters = omit(this.options, [
1576
1576
  'scale',
1577
1577
  'frames',
@@ -1588,7 +1588,7 @@ class NgtsContactShadows {
1588
1588
  'renderOrder',
1589
1589
  ]);
1590
1590
  this.contactShadowsRef = viewChild.required('contactShadows');
1591
- this.shadowsCameraRef = viewChild('shadowsCamera', ...(ngDevMode ? [{ debugName: "shadowsCameraRef" }] : []));
1591
+ this.shadowsCameraRef = viewChild('shadowsCamera', ...(ngDevMode ? [{ debugName: "shadowsCameraRef" }] : /* istanbul ignore next */ []));
1592
1592
  this.store = injectStore();
1593
1593
  this.width = pick(this.options, 'width');
1594
1594
  this.height = pick(this.options, 'height');
@@ -1596,11 +1596,11 @@ class NgtsContactShadows {
1596
1596
  this.scaledWidth = computed(() => {
1597
1597
  const [width, scale] = [this.width(), this.scale()];
1598
1598
  return width * (Array.isArray(scale) ? scale[0] : scale);
1599
- }, ...(ngDevMode ? [{ debugName: "scaledWidth" }] : []));
1599
+ }, ...(ngDevMode ? [{ debugName: "scaledWidth" }] : /* istanbul ignore next */ []));
1600
1600
  this.scaledHeight = computed(() => {
1601
1601
  const [height, scale] = [this.height(), this.scale()];
1602
1602
  return height * (Array.isArray(scale) ? scale[1] : scale);
1603
- }, ...(ngDevMode ? [{ debugName: "scaledHeight" }] : []));
1603
+ }, ...(ngDevMode ? [{ debugName: "scaledHeight" }] : /* istanbul ignore next */ []));
1604
1604
  this.resolution = pick(this.options, 'resolution');
1605
1605
  this.color = pick(this.options, 'color');
1606
1606
  this.near = pick(this.options, 'near');
@@ -1608,10 +1608,10 @@ class NgtsContactShadows {
1608
1608
  this.smooth = pick(this.options, 'smooth');
1609
1609
  this.frames = pick(this.options, 'frames');
1610
1610
  this.blur = pick(this.options, 'blur');
1611
- this.renderTarget = computed(() => this.createRenderTarget(this.resolution()), ...(ngDevMode ? [{ debugName: "renderTarget" }] : []));
1612
- this.renderTargetBlur = computed(() => this.createRenderTarget(this.resolution()), ...(ngDevMode ? [{ debugName: "renderTargetBlur" }] : []));
1613
- this.planeGeometry = computed(() => new THREE.PlaneGeometry(this.scaledWidth(), this.scaledHeight()).rotateX(Math.PI / 2), ...(ngDevMode ? [{ debugName: "planeGeometry" }] : []));
1614
- this.blurPlane = computed(() => new THREE.Mesh(this.planeGeometry()), ...(ngDevMode ? [{ debugName: "blurPlane" }] : []));
1611
+ this.renderTarget = computed(() => this.createRenderTarget(this.resolution()), ...(ngDevMode ? [{ debugName: "renderTarget" }] : /* istanbul ignore next */ []));
1612
+ this.renderTargetBlur = computed(() => this.createRenderTarget(this.resolution()), ...(ngDevMode ? [{ debugName: "renderTargetBlur" }] : /* istanbul ignore next */ []));
1613
+ this.planeGeometry = computed(() => new THREE.PlaneGeometry(this.scaledWidth(), this.scaledHeight()).rotateX(Math.PI / 2), ...(ngDevMode ? [{ debugName: "planeGeometry" }] : /* istanbul ignore next */ []));
1614
+ this.blurPlane = computed(() => new THREE.Mesh(this.planeGeometry()), ...(ngDevMode ? [{ debugName: "blurPlane" }] : /* istanbul ignore next */ []));
1615
1615
  this.depthMaterial = computed(() => {
1616
1616
  const color = new THREE.Color(this.color());
1617
1617
  const material = new THREE.MeshDepthMaterial();
@@ -1627,7 +1627,7 @@ class NgtsContactShadows {
1627
1627
  'vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );');
1628
1628
  };
1629
1629
  return material;
1630
- }, ...(ngDevMode ? [{ debugName: "depthMaterial" }] : []));
1630
+ }, ...(ngDevMode ? [{ debugName: "depthMaterial" }] : /* istanbul ignore next */ []));
1631
1631
  this.horizontalBlurMaterial = new THREE.ShaderMaterial({ ...HorizontalBlurShader, depthTest: false });
1632
1632
  this.verticalBlurMaterial = new THREE.ShaderMaterial({ ...VerticalBlurShader, depthTest: false });
1633
1633
  this.renderOrder = pick(this.options, 'renderOrder');
@@ -1637,7 +1637,7 @@ class NgtsContactShadows {
1637
1637
  this.cameraArgs = computed(() => {
1638
1638
  const [width, height, near, far] = [this.scaledWidth(), this.scaledHeight(), this.near(), this.far()];
1639
1639
  return [-width / 2, width / 2, height / 2, -height / 2, near, far];
1640
- }, ...(ngDevMode ? [{ debugName: "cameraArgs" }] : []));
1640
+ }, ...(ngDevMode ? [{ debugName: "cameraArgs" }] : /* istanbul ignore next */ []));
1641
1641
  extend({ Group, Mesh, MeshBasicMaterial, OrthographicCamera });
1642
1642
  let count = 0;
1643
1643
  beforeRender(() => {
@@ -1714,8 +1714,8 @@ class NgtsContactShadows {
1714
1714
  renderTarget.texture.generateMipmaps = false;
1715
1715
  return renderTarget;
1716
1716
  }
1717
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsContactShadows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1718
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsContactShadows, isStandalone: true, selector: "ngts-contact-shadows", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "contactShadowsRef", first: true, predicate: ["contactShadows"], descendants: true, isSignal: true }, { propertyName: "shadowsCameraRef", first: true, predicate: ["shadowsCamera"], descendants: true, isSignal: true }], ngImport: i0, template: `
1717
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsContactShadows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1718
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsContactShadows, isStandalone: true, selector: "ngts-contact-shadows", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "contactShadowsRef", first: true, predicate: ["contactShadows"], descendants: true, isSignal: true }, { propertyName: "shadowsCameraRef", first: true, predicate: ["shadowsCamera"], descendants: true, isSignal: true }], ngImport: i0, template: `
1719
1719
  <ngt-group #contactShadows [rotation]="[Math.PI / 2, 0, 0]" [parameters]="parameters()">
1720
1720
  <ngt-mesh
1721
1721
  [scale]="[1, -1, 1]"
@@ -1734,7 +1734,7 @@ class NgtsContactShadows {
1734
1734
  </ngt-group>
1735
1735
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1736
1736
  }
1737
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsContactShadows, decorators: [{
1737
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsContactShadows, decorators: [{
1738
1738
  type: Component,
1739
1739
  args: [{
1740
1740
  selector: 'ngts-contact-shadows',
@@ -1811,14 +1811,14 @@ function environmentResource(options = () => ({}), { injector } = {}) {
1811
1811
  path = CUBEMAP_ROOT;
1812
1812
  }
1813
1813
  return { files, preset, colorSpace, path, extensions };
1814
- }, ...(ngDevMode ? [{ debugName: "adjustedOptions" }] : []));
1814
+ }, ...(ngDevMode ? [{ debugName: "adjustedOptions" }] : /* istanbul ignore next */ []));
1815
1815
  const files = pick(adjustedOptions, 'files');
1816
- const multiFile = computed(() => Array.isArray(files()), ...(ngDevMode ? [{ debugName: "multiFile" }] : []));
1817
- const resultOptions = computed(() => getExtension(files()), ...(ngDevMode ? [{ debugName: "resultOptions" }] : []));
1816
+ const multiFile = computed(() => Array.isArray(files()), ...(ngDevMode ? [{ debugName: "multiFile" }] : /* istanbul ignore next */ []));
1817
+ const resultOptions = computed(() => getExtension(files()), ...(ngDevMode ? [{ debugName: "resultOptions" }] : /* istanbul ignore next */ []));
1818
1818
  const extension = pick(resultOptions, 'extension');
1819
- const loader = computed(() => getLoader(extension()), ...(ngDevMode ? [{ debugName: "loader" }] : []));
1819
+ const loader = computed(() => getLoader(extension()), ...(ngDevMode ? [{ debugName: "loader" }] : /* istanbul ignore next */ []));
1820
1820
  const store = injectStore();
1821
- const texture = signal(null, ...(ngDevMode ? [{ debugName: "texture" }] : []));
1821
+ const texture = signal(null, ...(ngDevMode ? [{ debugName: "texture" }] : /* istanbul ignore next */ []));
1822
1822
  effect(() => {
1823
1823
  const [_extension, _multiFile, _files] = [untracked(extension), untracked(multiFile), files()];
1824
1824
  if (_extension !== 'webp' && _extension !== 'jpg' && _extension !== 'jpeg')
@@ -2009,7 +2009,7 @@ const defaultBackground = {
2009
2009
  */
2010
2010
  class NgtsEnvironmentMap {
2011
2011
  constructor() {
2012
- this.options = input(defaultBackground, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultBackground) });
2012
+ this.options = input(defaultBackground, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultBackground) });
2013
2013
  this.envSet = output();
2014
2014
  const store = injectStore();
2015
2015
  const _map = pick(this.options, 'map');
@@ -2025,7 +2025,7 @@ class NgtsEnvironmentMap {
2025
2025
  environmentIntensity,
2026
2026
  environmentRotation,
2027
2027
  };
2028
- }, ...(ngDevMode ? [{ debugName: "_envConfig" }] : []));
2028
+ }, ...(ngDevMode ? [{ debugName: "_envConfig" }] : /* istanbul ignore next */ []));
2029
2029
  effect((onCleanup) => {
2030
2030
  const map = _map();
2031
2031
  if (!map)
@@ -2036,10 +2036,10 @@ class NgtsEnvironmentMap {
2036
2036
  onCleanup(() => cleanup());
2037
2037
  });
2038
2038
  }
2039
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironmentMap, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2040
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: NgtsEnvironmentMap, isStandalone: true, selector: "ngts-environment-map", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { envSet: "envSet" }, ngImport: i0 }); }
2039
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironmentMap, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2040
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsEnvironmentMap, isStandalone: true, selector: "ngts-environment-map", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { envSet: "envSet" }, ngImport: i0 }); }
2041
2041
  }
2042
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironmentMap, decorators: [{
2042
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironmentMap, decorators: [{
2043
2043
  type: Directive,
2044
2044
  args: [{ selector: 'ngts-environment-map' }]
2045
2045
  }], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], envSet: [{ type: i0.Output, args: ["envSet"] }] } });
@@ -2054,7 +2054,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2054
2054
  */
2055
2055
  class NgtsEnvironmentCube {
2056
2056
  constructor() {
2057
- this.options = input(defaultBackground, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultBackground) });
2057
+ this.options = input(defaultBackground, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultBackground) });
2058
2058
  this.envSet = output();
2059
2059
  this.store = injectStore();
2060
2060
  this.envConfig = computed(() => {
@@ -2069,7 +2069,7 @@ class NgtsEnvironmentCube {
2069
2069
  environmentIntensity,
2070
2070
  environmentRotation,
2071
2071
  };
2072
- }, ...(ngDevMode ? [{ debugName: "envConfig" }] : []));
2072
+ }, ...(ngDevMode ? [{ debugName: "envConfig" }] : /* istanbul ignore next */ []));
2073
2073
  const { texture: _texture } = environmentResource(this.options);
2074
2074
  effect((onCleanup) => {
2075
2075
  const texture = _texture();
@@ -2084,10 +2084,10 @@ class NgtsEnvironmentCube {
2084
2084
  _texture()?.dispose();
2085
2085
  });
2086
2086
  }
2087
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironmentCube, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2088
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: NgtsEnvironmentCube, isStandalone: true, selector: "ngts-environment-cube", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { envSet: "envSet" }, ngImport: i0 }); }
2087
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironmentCube, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2088
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsEnvironmentCube, isStandalone: true, selector: "ngts-environment-cube", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { envSet: "envSet" }, ngImport: i0 }); }
2089
2089
  }
2090
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironmentCube, decorators: [{
2090
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironmentCube, decorators: [{
2091
2091
  type: Directive,
2092
2092
  args: [{ selector: 'ngts-environment-cube' }]
2093
2093
  }], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], envSet: [{ type: i0.Output, args: ["envSet"] }] } });
@@ -2116,25 +2116,25 @@ class NgtsEnvironmentPortal {
2116
2116
  frames: 1,
2117
2117
  background: false,
2118
2118
  };
2119
- this.options = input(this.defaultOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(this.defaultOptions) });
2120
- this.content = input.required(...(ngDevMode ? [{ debugName: "content" }] : []));
2119
+ this.options = input(this.defaultOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(this.defaultOptions) });
2120
+ this.content = input.required(...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
2121
2121
  this.envSet = output();
2122
2122
  this.injector = inject(Injector);
2123
2123
  this.store = injectStore();
2124
- this.cameraRef = viewChild('cubeCamera', ...(ngDevMode ? [{ debugName: "cameraRef" }] : []));
2124
+ this.cameraRef = viewChild('cubeCamera', ...(ngDevMode ? [{ debugName: "cameraRef" }] : /* istanbul ignore next */ []));
2125
2125
  this.map = pick(this.options, 'map');
2126
2126
  this.files = pick(this.options, 'files');
2127
2127
  this.preset = pick(this.options, 'preset');
2128
2128
  this.extensions = pick(this.options, 'extensions');
2129
2129
  this.path = pick(this.options, 'path');
2130
- this.envMapOptions = computed(() => ({ background: true, map: this.map(), extensions: this.extensions() }), ...(ngDevMode ? [{ debugName: "envMapOptions" }] : []));
2130
+ this.envMapOptions = computed(() => ({ background: true, map: this.map(), extensions: this.extensions() }), ...(ngDevMode ? [{ debugName: "envMapOptions" }] : /* istanbul ignore next */ []));
2131
2131
  this.envCubeOptions = computed(() => ({
2132
2132
  background: true,
2133
2133
  files: this.files(),
2134
2134
  preset: this.preset(),
2135
2135
  extensions: this.extensions(),
2136
2136
  path: this.path(),
2137
- }), ...(ngDevMode ? [{ debugName: "envCubeOptions" }] : []));
2137
+ }), ...(ngDevMode ? [{ debugName: "envCubeOptions" }] : /* istanbul ignore next */ []));
2138
2138
  this.near = pick(this.options, 'near');
2139
2139
  this.far = pick(this.options, 'far');
2140
2140
  this.resolution = pick(this.options, 'resolution');
@@ -2142,8 +2142,8 @@ class NgtsEnvironmentPortal {
2142
2142
  const fbo = new THREE.WebGLCubeRenderTarget(this.resolution());
2143
2143
  fbo.texture.type = THREE.HalfFloatType;
2144
2144
  return fbo;
2145
- }, ...(ngDevMode ? [{ debugName: "fbo" }] : []));
2146
- this.cameraArgs = computed(() => [this.near(), this.far(), this.fbo()], ...(ngDevMode ? [{ debugName: "cameraArgs" }] : []));
2145
+ }, ...(ngDevMode ? [{ debugName: "fbo" }] : /* istanbul ignore next */ []));
2146
+ this.cameraArgs = computed(() => [this.near(), this.far(), this.fbo()], ...(ngDevMode ? [{ debugName: "cameraArgs" }] : /* istanbul ignore next */ []));
2147
2147
  this.virtualScene = new THREE.Scene();
2148
2148
  extend({ CubeCamera });
2149
2149
  effect((onCleanup) => {
@@ -2177,7 +2177,7 @@ class NgtsEnvironmentPortal {
2177
2177
  this.setEnvEffectRef = effect((onCleanup) => {
2178
2178
  const cleanup = this.setPortalEnv();
2179
2179
  onCleanup(() => cleanup?.());
2180
- }, { ...(ngDevMode ? { debugName: "setEnvEffectRef" } : {}), manualCleanup: true, injector: this.injector });
2180
+ }, { ...(ngDevMode ? { debugName: "setEnvEffectRef" } : /* istanbul ignore next */ {}), manualCleanup: true, injector: this.injector });
2181
2181
  }
2182
2182
  setPortalEnv() {
2183
2183
  const camera = this.cameraRef();
@@ -2197,8 +2197,8 @@ class NgtsEnvironmentPortal {
2197
2197
  this.envSet.emit();
2198
2198
  return cleanup;
2199
2199
  }
2200
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2201
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { envSet: "envSet" }, viewQueries: [{ propertyName: "cameraRef", first: true, predicate: ["cubeCamera"], descendants: true, isSignal: true }], ngImport: i0, template: `
2200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { envSet: "envSet" }, viewQueries: [{ propertyName: "cameraRef", first: true, predicate: ["cubeCamera"], descendants: true, isSignal: true }], ngImport: i0, template: `
2202
2202
  <ngt-portal [container]="virtualScene">
2203
2203
  <ng-template portalContent let-injector="injector">
2204
2204
  <ng-container
@@ -2218,7 +2218,7 @@ class NgtsEnvironmentPortal {
2218
2218
  </ngt-portal>
2219
2219
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["options"], outputs: ["envSet"] }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["options"], outputs: ["envSet"] }, { kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: i1.NgtPortalImpl, selector: "ngt-portal", inputs: ["container", "state"] }, { kind: "directive", type: i1.NgtPortalContent, selector: "ng-template[portalContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2220
2220
  }
2221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
2221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
2222
2222
  type: Component,
2223
2223
  args: [{
2224
2224
  selector: 'ngts-environment-portal',
@@ -2257,30 +2257,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2257
2257
  */
2258
2258
  class NgtsEnvironmentGround {
2259
2259
  constructor() {
2260
- this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
2260
+ this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
2261
2261
  this.envSet = output();
2262
2262
  this.defaultEnvironment = environmentResource(this.options);
2263
- this.height = computed(() => this.options().ground?.height, ...(ngDevMode ? [{ debugName: "height" }] : []));
2264
- this.radius = computed(() => this.options().ground?.radius, ...(ngDevMode ? [{ debugName: "radius" }] : []));
2265
- this.scale = computed(() => this.options().ground?.scale ?? 1000, ...(ngDevMode ? [{ debugName: "scale" }] : []));
2266
- this.args = computed(() => [this.options().map || this.defaultEnvironment.texture()], ...(ngDevMode ? [{ debugName: "args" }] : []));
2263
+ this.height = computed(() => this.options().ground?.height, ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
2264
+ this.radius = computed(() => this.options().ground?.radius, ...(ngDevMode ? [{ debugName: "radius" }] : /* istanbul ignore next */ []));
2265
+ this.scale = computed(() => this.options().ground?.scale ?? 1000, ...(ngDevMode ? [{ debugName: "scale" }] : /* istanbul ignore next */ []));
2266
+ this.args = computed(() => [this.options().map || this.defaultEnvironment.texture()], ...(ngDevMode ? [{ debugName: "args" }] : /* istanbul ignore next */ []));
2267
2267
  this.envMapOptions = computed(() => {
2268
2268
  const { map: _, ...options } = this.options();
2269
2269
  const [map] = this.args();
2270
2270
  return Object.assign(options, { map });
2271
- }, ...(ngDevMode ? [{ debugName: "envMapOptions" }] : []));
2271
+ }, ...(ngDevMode ? [{ debugName: "envMapOptions" }] : /* istanbul ignore next */ []));
2272
2272
  extend({ GroundProjectedEnv });
2273
2273
  inject(DestroyRef).onDestroy(() => {
2274
2274
  this.defaultEnvironment.texture()?.dispose();
2275
2275
  });
2276
2276
  }
2277
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironmentGround, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2278
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: NgtsEnvironmentGround, isStandalone: true, selector: "ngts-environment-ground", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { envSet: "envSet" }, ngImport: i0, template: `
2277
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironmentGround, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2278
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NgtsEnvironmentGround, isStandalone: true, selector: "ngts-environment-ground", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { envSet: "envSet" }, ngImport: i0, template: `
2279
2279
  <ngts-environment-map [options]="envMapOptions()" (envSet)="envSet.emit()" />
2280
2280
  <ngt-ground-projected-env *args="args()" [scale]="scale()" [height]="height()" [radius]="radius()" />
2281
2281
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["options"], outputs: ["envSet"] }, { kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2282
2282
  }
2283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironmentGround, decorators: [{
2283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironmentGround, decorators: [{
2284
2284
  type: Component,
2285
2285
  args: [{
2286
2286
  selector: 'ngts-environment-ground',
@@ -2318,12 +2318,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2318
2318
  */
2319
2319
  class NgtsEnvironment {
2320
2320
  constructor() {
2321
- this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
2322
- this.content = contentChild(TemplateRef, ...(ngDevMode ? [{ debugName: "content" }] : []));
2321
+ this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
2322
+ this.content = contentChild(TemplateRef, ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
2323
2323
  this.envSet = output();
2324
2324
  }
2325
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2326
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { envSet: "envSet" }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: `
2325
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2326
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { envSet: "envSet" }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: `
2327
2327
  @let _options = options();
2328
2328
  @let _content = content();
2329
2329
 
@@ -2338,7 +2338,7 @@ class NgtsEnvironment {
2338
2338
  }
2339
2339
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["options"], outputs: ["envSet"] }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["options"], outputs: ["envSet"] }, { kind: "component", type: NgtsEnvironmentPortal, selector: "ngts-environment-portal", inputs: ["options", "content"], outputs: ["envSet"] }, { kind: "component", type: NgtsEnvironmentGround, selector: "ngts-environment-ground", inputs: ["options"], outputs: ["envSet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2340
2340
  }
2341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsEnvironment, decorators: [{
2341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsEnvironment, decorators: [{
2342
2342
  type: Component,
2343
2343
  args: [{
2344
2344
  selector: 'ngts-environment',
@@ -2422,7 +2422,7 @@ const defaultOptions$7 = {
2422
2422
  */
2423
2423
  class NgtsFloat {
2424
2424
  constructor() {
2425
- this.options = input(defaultOptions$7, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$7) });
2425
+ this.options = input(defaultOptions$7, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$7) });
2426
2426
  this.parameters = omit(this.options, [
2427
2427
  'enabled',
2428
2428
  'speed',
@@ -2453,8 +2453,8 @@ class NgtsFloat {
2453
2453
  container.updateMatrix();
2454
2454
  });
2455
2455
  }
2456
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2457
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "floatRef", first: true, predicate: ["float"], descendants: true, isSignal: true }], ngImport: i0, template: `
2456
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2457
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "floatRef", first: true, predicate: ["float"], descendants: true, isSignal: true }], ngImport: i0, template: `
2458
2458
  <ngt-group [parameters]="parameters()">
2459
2459
  <ngt-group #float [matrixAutoUpdate]="false">
2460
2460
  <ng-content />
@@ -2462,7 +2462,7 @@ class NgtsFloat {
2462
2462
  </ngt-group>
2463
2463
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2464
2464
  }
2465
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsFloat, decorators: [{
2465
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsFloat, decorators: [{
2466
2466
  type: Component,
2467
2467
  args: [{
2468
2468
  selector: 'ngts-float',
@@ -2497,7 +2497,7 @@ const defaultOptions$6 = {
2497
2497
  class NgtsLightformer {
2498
2498
  constructor() {
2499
2499
  this.side = THREE.DoubleSide;
2500
- this.options = input(defaultOptions$6, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$6) });
2500
+ this.options = input(defaultOptions$6, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$6) });
2501
2501
  this.parameters = omit(this.options, ['map', 'toneMapped', 'color', 'form', 'scale', 'intensity', 'target']);
2502
2502
  this.intensity = pick(this.options, 'intensity');
2503
2503
  this.color = pick(this.options, 'color');
@@ -2506,12 +2506,12 @@ class NgtsLightformer {
2506
2506
  this.fixedScale = computed(() => {
2507
2507
  const scale = this.scale();
2508
2508
  return Array.isArray(scale) && scale.length === 2 ? [scale[0], scale[1], 1] : scale;
2509
- }, ...(ngDevMode ? [{ debugName: "fixedScale" }] : []));
2509
+ }, ...(ngDevMode ? [{ debugName: "fixedScale" }] : /* istanbul ignore next */ []));
2510
2510
  this.form = pick(this.options, 'form');
2511
2511
  this.toneMapped = pick(this.options, 'toneMapped');
2512
2512
  this.map = pick(this.options, 'map');
2513
2513
  this.meshRef = viewChild.required('mesh');
2514
- this.defaultMaterialRef = viewChild('defaultMaterial', ...(ngDevMode ? [{ debugName: "defaultMaterialRef" }] : []));
2514
+ this.defaultMaterialRef = viewChild('defaultMaterial', ...(ngDevMode ? [{ debugName: "defaultMaterialRef" }] : /* istanbul ignore next */ []));
2515
2515
  extend({ Mesh, MeshBasicMaterial, RingGeometry, PlaneGeometry });
2516
2516
  effect(() => {
2517
2517
  const material = this.defaultMaterialRef()?.nativeElement;
@@ -2528,8 +2528,8 @@ class NgtsLightformer {
2528
2528
  mesh.lookAt(target);
2529
2529
  });
2530
2530
  }
2531
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsLightformer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2532
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsLightformer, isStandalone: true, selector: "ngts-lightformer", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "defaultMaterialRef", first: true, predicate: ["defaultMaterial"], descendants: true, isSignal: true }], ngImport: i0, template: `
2531
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsLightformer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2532
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsLightformer, isStandalone: true, selector: "ngts-lightformer", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }, { propertyName: "defaultMaterialRef", first: true, predicate: ["defaultMaterial"], descendants: true, isSignal: true }], ngImport: i0, template: `
2533
2533
  <ngt-mesh #mesh [scale]="fixedScale()" [parameters]="parameters()">
2534
2534
  <ng-content select="[data-lightformer-geometry]">
2535
2535
  @switch (form()) {
@@ -2552,7 +2552,7 @@ class NgtsLightformer {
2552
2552
  </ngt-mesh>
2553
2553
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2554
2554
  }
2555
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsLightformer, decorators: [{
2555
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsLightformer, decorators: [{
2556
2556
  type: Component,
2557
2557
  args: [{
2558
2558
  selector: 'ngts-lightformer',
@@ -2611,8 +2611,8 @@ const defaultOptions$5 = {
2611
2611
  */
2612
2612
  class NgtsMask {
2613
2613
  constructor() {
2614
- this.id = input(1, { ...(ngDevMode ? { debugName: "id" } : {}), transform: numberAttribute });
2615
- this.options = input(defaultOptions$5, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$5) });
2614
+ this.id = input(1, { ...(ngDevMode ? { debugName: "id" } : /* istanbul ignore next */ {}), transform: numberAttribute });
2615
+ this.options = input(defaultOptions$5, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$5) });
2616
2616
  this.parameters = omit(this.options, ['colorWrite', 'depthWrite']);
2617
2617
  this.meshRef = viewChild.required('mesh');
2618
2618
  this.colorWrite = pick(this.options, 'colorWrite');
@@ -2629,21 +2629,21 @@ class NgtsMask {
2629
2629
  stencilZFail: THREE.ReplaceStencilOp,
2630
2630
  stencilZPass: THREE.ReplaceStencilOp,
2631
2631
  };
2632
- }, ...(ngDevMode ? [{ debugName: "spread" }] : []));
2632
+ }, ...(ngDevMode ? [{ debugName: "spread" }] : /* istanbul ignore next */ []));
2633
2633
  extend({ Mesh });
2634
2634
  effect(() => {
2635
2635
  const [mesh, spread] = [this.meshRef().nativeElement, this.spread()];
2636
2636
  Object.assign(mesh.material, spread);
2637
2637
  });
2638
2638
  }
2639
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsMask, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2640
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsMask, isStandalone: true, selector: "ngts-mask", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
2639
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsMask, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2640
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsMask, isStandalone: true, selector: "ngts-mask", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
2641
2641
  <ngt-mesh #mesh [renderOrder]="-id()" [parameters]="parameters()">
2642
2642
  <ng-content />
2643
2643
  </ngt-mesh>
2644
2644
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2645
2645
  }
2646
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsMask, decorators: [{
2646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsMask, decorators: [{
2647
2647
  type: Component,
2648
2648
  args: [{
2649
2649
  selector: 'ngts-mask',
@@ -2727,14 +2727,14 @@ const MATCAP_ROOT = 'https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24
2727
2727
  */
2728
2728
  function injectMatcapTexture(id = () => 0, { format = () => 1024, onLoad, injector, } = {}) {
2729
2729
  return assertInjector(injectMatcapTexture, injector, () => {
2730
- const matcapList = signal({}, ...(ngDevMode ? [{ debugName: "matcapList" }] : []));
2730
+ const matcapList = signal({}, ...(ngDevMode ? [{ debugName: "matcapList" }] : /* istanbul ignore next */ []));
2731
2731
  fetch(LIST_URL$1)
2732
2732
  .then((res) => res.json())
2733
2733
  .then((list) => {
2734
2734
  matcapList.set(list);
2735
2735
  });
2736
- const DEFAULT_MATCAP = computed(() => matcapList()[0], ...(ngDevMode ? [{ debugName: "DEFAULT_MATCAP" }] : []));
2737
- const numTot = computed(() => Object.keys(matcapList()).length, ...(ngDevMode ? [{ debugName: "numTot" }] : []));
2736
+ const DEFAULT_MATCAP = computed(() => matcapList()[0], ...(ngDevMode ? [{ debugName: "DEFAULT_MATCAP" }] : /* istanbul ignore next */ []));
2737
+ const numTot = computed(() => Object.keys(matcapList()).length, ...(ngDevMode ? [{ debugName: "numTot" }] : /* istanbul ignore next */ []));
2738
2738
  const fileHash = computed(() => {
2739
2739
  const idValue = id();
2740
2740
  if (typeof idValue === 'string') {
@@ -2744,9 +2744,9 @@ function injectMatcapTexture(id = () => 0, { format = () => 1024, onLoad, inject
2744
2744
  return matcapList()[idValue];
2745
2745
  }
2746
2746
  return null;
2747
- }, ...(ngDevMode ? [{ debugName: "fileHash" }] : []));
2748
- const fileName = computed(() => `${fileHash() || DEFAULT_MATCAP()}${getFormatString(format())}.png`, ...(ngDevMode ? [{ debugName: "fileName" }] : []));
2749
- const url = computed(() => `${MATCAP_ROOT}/${format()}/${fileName()}`, ...(ngDevMode ? [{ debugName: "url" }] : []));
2747
+ }, ...(ngDevMode ? [{ debugName: "fileHash" }] : /* istanbul ignore next */ []));
2748
+ const fileName = computed(() => `${fileHash() || DEFAULT_MATCAP()}${getFormatString(format())}.png`, ...(ngDevMode ? [{ debugName: "fileName" }] : /* istanbul ignore next */ []));
2749
+ const url = computed(() => `${MATCAP_ROOT}/${format()}/${fileName()}`, ...(ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []));
2750
2750
  const matcapTexture = injectTexture(url, { onLoad });
2751
2751
  return { url, texture: matcapTexture, numTot };
2752
2752
  });
@@ -2770,14 +2770,14 @@ function injectMatcapTexture(id = () => 0, { format = () => 1024, onLoad, inject
2770
2770
  */
2771
2771
  function matcapTextureResource(id = () => 0, { format = () => 1024, onLoad, injector, } = {}) {
2772
2772
  return assertInjector(matcapTextureResource, injector, () => {
2773
- const matcapList = signal({}, ...(ngDevMode ? [{ debugName: "matcapList" }] : []));
2773
+ const matcapList = signal({}, ...(ngDevMode ? [{ debugName: "matcapList" }] : /* istanbul ignore next */ []));
2774
2774
  fetch(LIST_URL$1)
2775
2775
  .then((res) => res.json())
2776
2776
  .then((list) => {
2777
2777
  matcapList.set(list);
2778
2778
  });
2779
- const DEFAULT_MATCAP = computed(() => matcapList()[0], ...(ngDevMode ? [{ debugName: "DEFAULT_MATCAP" }] : []));
2780
- const numTot = computed(() => Object.keys(matcapList()).length, ...(ngDevMode ? [{ debugName: "numTot" }] : []));
2779
+ const DEFAULT_MATCAP = computed(() => matcapList()[0], ...(ngDevMode ? [{ debugName: "DEFAULT_MATCAP" }] : /* istanbul ignore next */ []));
2780
+ const numTot = computed(() => Object.keys(matcapList()).length, ...(ngDevMode ? [{ debugName: "numTot" }] : /* istanbul ignore next */ []));
2781
2781
  const fileHash = computed(() => {
2782
2782
  const idValue = id();
2783
2783
  if (typeof idValue === 'string') {
@@ -2787,9 +2787,9 @@ function matcapTextureResource(id = () => 0, { format = () => 1024, onLoad, inje
2787
2787
  return matcapList()[idValue];
2788
2788
  }
2789
2789
  return null;
2790
- }, ...(ngDevMode ? [{ debugName: "fileHash" }] : []));
2791
- const fileName = computed(() => `${fileHash() || DEFAULT_MATCAP()}${getFormatString(format())}.png`, ...(ngDevMode ? [{ debugName: "fileName" }] : []));
2792
- const url = computed(() => `${MATCAP_ROOT}/${format()}/${fileName()}`, ...(ngDevMode ? [{ debugName: "url" }] : []));
2790
+ }, ...(ngDevMode ? [{ debugName: "fileHash" }] : /* istanbul ignore next */ []));
2791
+ const fileName = computed(() => `${fileHash() || DEFAULT_MATCAP()}${getFormatString(format())}.png`, ...(ngDevMode ? [{ debugName: "fileName" }] : /* istanbul ignore next */ []));
2792
+ const url = computed(() => `${MATCAP_ROOT}/${format()}/${fileName()}`, ...(ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []));
2793
2793
  const resource = textureResource(url, { onLoad });
2794
2794
  return { url, resource, numTot };
2795
2795
  });
@@ -2809,12 +2809,12 @@ function matcapTextureResource(id = () => 0, { format = () => 1024, onLoad, inje
2809
2809
  */
2810
2810
  class NgtsMatcapTexture {
2811
2811
  constructor() {
2812
- this.matcapTexture = input(...(ngDevMode ? [undefined, { debugName: "matcapTexture" }] : []));
2813
- this.matcapTextureLoaded = input(...(ngDevMode ? [undefined, { debugName: "matcapTextureLoaded" }] : []));
2812
+ this.matcapTexture = input(...(ngDevMode ? [undefined, { debugName: "matcapTexture" }] : /* istanbul ignore next */ []));
2813
+ this.matcapTextureLoaded = input(...(ngDevMode ? [undefined, { debugName: "matcapTextureLoaded" }] : /* istanbul ignore next */ []));
2814
2814
  this.template = inject(TemplateRef);
2815
2815
  this.vcr = inject(ViewContainerRef);
2816
- this.id = computed(() => this.matcapTexture()?.id ?? 0, ...(ngDevMode ? [{ debugName: "id" }] : []));
2817
- this.format = computed(() => this.matcapTexture()?.format ?? 1024, ...(ngDevMode ? [{ debugName: "format" }] : []));
2816
+ this.id = computed(() => this.matcapTexture()?.id ?? 0, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
2817
+ this.format = computed(() => this.matcapTexture()?.format ?? 1024, ...(ngDevMode ? [{ debugName: "format" }] : /* istanbul ignore next */ []));
2818
2818
  const { resource } = matcapTextureResource(this.id, {
2819
2819
  format: this.format,
2820
2820
  onLoad: this.matcapTextureLoaded(),
@@ -2830,10 +2830,10 @@ class NgtsMatcapTexture {
2830
2830
  static ngTemplateContextGuard(_, ctx) {
2831
2831
  return true;
2832
2832
  }
2833
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsMatcapTexture, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2834
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: NgtsMatcapTexture, isStandalone: true, selector: "ng-template[matcapTexture]", inputs: { matcapTexture: { classPropertyName: "matcapTexture", publicName: "matcapTexture", isSignal: true, isRequired: false, transformFunction: null }, matcapTextureLoaded: { classPropertyName: "matcapTextureLoaded", publicName: "matcapTextureLoaded", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
2833
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsMatcapTexture, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2834
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsMatcapTexture, isStandalone: true, selector: "ng-template[matcapTexture]", inputs: { matcapTexture: { classPropertyName: "matcapTexture", publicName: "matcapTexture", isSignal: true, isRequired: false, transformFunction: null }, matcapTextureLoaded: { classPropertyName: "matcapTextureLoaded", publicName: "matcapTextureLoaded", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
2835
2835
  }
2836
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsMatcapTexture, decorators: [{
2836
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsMatcapTexture, decorators: [{
2837
2837
  type: Directive,
2838
2838
  args: [{ selector: 'ng-template[matcapTexture]' }]
2839
2839
  }], ctorParameters: () => [], propDecorators: { matcapTexture: [{ type: i0.Input, args: [{ isSignal: true, alias: "matcapTexture", required: false }] }], matcapTextureLoaded: [{ type: i0.Input, args: [{ isSignal: true, alias: "matcapTextureLoaded", required: false }] }] } });
@@ -2863,14 +2863,14 @@ const LIST_URL = 'https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/
2863
2863
  */
2864
2864
  function injectNormalTexture(id = () => 0, { settings = () => ({}), onLoad, injector, }) {
2865
2865
  return assertInjector(injectNormalTexture, injector, () => {
2866
- const normalList = signal({}, ...(ngDevMode ? [{ debugName: "normalList" }] : []));
2866
+ const normalList = signal({}, ...(ngDevMode ? [{ debugName: "normalList" }] : /* istanbul ignore next */ []));
2867
2867
  fetch(LIST_URL)
2868
2868
  .then((res) => res.json())
2869
2869
  .then((list) => {
2870
2870
  normalList.set(list);
2871
2871
  });
2872
- const DEFAULT_NORMAL = computed(() => normalList()[0], ...(ngDevMode ? [{ debugName: "DEFAULT_NORMAL" }] : []));
2873
- const numTot = computed(() => Object.keys(normalList()).length, ...(ngDevMode ? [{ debugName: "numTot" }] : []));
2872
+ const DEFAULT_NORMAL = computed(() => normalList()[0], ...(ngDevMode ? [{ debugName: "DEFAULT_NORMAL" }] : /* istanbul ignore next */ []));
2873
+ const numTot = computed(() => Object.keys(normalList()).length, ...(ngDevMode ? [{ debugName: "numTot" }] : /* istanbul ignore next */ []));
2874
2874
  const fileHash = computed(() => {
2875
2875
  const idValue = id();
2876
2876
  if (typeof idValue === 'string') {
@@ -2880,9 +2880,9 @@ function injectNormalTexture(id = () => 0, { settings = () => ({}), onLoad, inje
2880
2880
  return normalList()[idValue];
2881
2881
  }
2882
2882
  return null;
2883
- }, ...(ngDevMode ? [{ debugName: "fileHash" }] : []));
2884
- const imageName = computed(() => fileHash() || DEFAULT_NORMAL(), ...(ngDevMode ? [{ debugName: "imageName" }] : []));
2885
- const url = computed(() => `${NORMAL_ROOT}/normals/${imageName()}`, ...(ngDevMode ? [{ debugName: "url" }] : []));
2883
+ }, ...(ngDevMode ? [{ debugName: "fileHash" }] : /* istanbul ignore next */ []));
2884
+ const imageName = computed(() => fileHash() || DEFAULT_NORMAL(), ...(ngDevMode ? [{ debugName: "imageName" }] : /* istanbul ignore next */ []));
2885
+ const url = computed(() => `${NORMAL_ROOT}/normals/${imageName()}`, ...(ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []));
2886
2886
  const normalTexture = injectTexture(url, { onLoad });
2887
2887
  effect(() => {
2888
2888
  const texture = normalTexture();
@@ -2916,14 +2916,14 @@ function injectNormalTexture(id = () => 0, { settings = () => ({}), onLoad, inje
2916
2916
  */
2917
2917
  function normalTextureResource(id = () => 0, { settings = () => ({}), onLoad, injector, }) {
2918
2918
  return assertInjector(normalTextureResource, injector, () => {
2919
- const normalList = signal({}, ...(ngDevMode ? [{ debugName: "normalList" }] : []));
2919
+ const normalList = signal({}, ...(ngDevMode ? [{ debugName: "normalList" }] : /* istanbul ignore next */ []));
2920
2920
  fetch(LIST_URL)
2921
2921
  .then((res) => res.json())
2922
2922
  .then((list) => {
2923
2923
  normalList.set(list);
2924
2924
  });
2925
- const DEFAULT_NORMAL = computed(() => normalList()[0], ...(ngDevMode ? [{ debugName: "DEFAULT_NORMAL" }] : []));
2926
- const numTot = computed(() => Object.keys(normalList()).length, ...(ngDevMode ? [{ debugName: "numTot" }] : []));
2925
+ const DEFAULT_NORMAL = computed(() => normalList()[0], ...(ngDevMode ? [{ debugName: "DEFAULT_NORMAL" }] : /* istanbul ignore next */ []));
2926
+ const numTot = computed(() => Object.keys(normalList()).length, ...(ngDevMode ? [{ debugName: "numTot" }] : /* istanbul ignore next */ []));
2927
2927
  const fileHash = computed(() => {
2928
2928
  const idValue = id();
2929
2929
  if (typeof idValue === 'string') {
@@ -2933,9 +2933,9 @@ function normalTextureResource(id = () => 0, { settings = () => ({}), onLoad, in
2933
2933
  return normalList()[idValue];
2934
2934
  }
2935
2935
  return null;
2936
- }, ...(ngDevMode ? [{ debugName: "fileHash" }] : []));
2937
- const imageName = computed(() => fileHash() || DEFAULT_NORMAL(), ...(ngDevMode ? [{ debugName: "imageName" }] : []));
2938
- const url = computed(() => `${NORMAL_ROOT}/normals/${imageName()}`, ...(ngDevMode ? [{ debugName: "url" }] : []));
2936
+ }, ...(ngDevMode ? [{ debugName: "fileHash" }] : /* istanbul ignore next */ []));
2937
+ const imageName = computed(() => fileHash() || DEFAULT_NORMAL(), ...(ngDevMode ? [{ debugName: "imageName" }] : /* istanbul ignore next */ []));
2938
+ const url = computed(() => `${NORMAL_ROOT}/normals/${imageName()}`, ...(ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []));
2939
2939
  const resource = textureResource(url, { onLoad });
2940
2940
  effect(() => {
2941
2941
  if (!resource.hasValue())
@@ -2965,15 +2965,15 @@ function normalTextureResource(id = () => 0, { settings = () => ({}), onLoad, in
2965
2965
  */
2966
2966
  class NgtsNormalTexture {
2967
2967
  constructor() {
2968
- this.normalTexture = input(...(ngDevMode ? [undefined, { debugName: "normalTexture" }] : []));
2969
- this.normalTextureLoaded = input(...(ngDevMode ? [undefined, { debugName: "normalTextureLoaded" }] : []));
2968
+ this.normalTexture = input(...(ngDevMode ? [undefined, { debugName: "normalTexture" }] : /* istanbul ignore next */ []));
2969
+ this.normalTextureLoaded = input(...(ngDevMode ? [undefined, { debugName: "normalTextureLoaded" }] : /* istanbul ignore next */ []));
2970
2970
  this.template = inject(TemplateRef);
2971
2971
  this.vcr = inject(ViewContainerRef);
2972
- this.id = computed(() => this.normalTexture()?.id ?? 0, ...(ngDevMode ? [{ debugName: "id" }] : []));
2972
+ this.id = computed(() => this.normalTexture()?.id ?? 0, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
2973
2973
  this.settings = computed(() => {
2974
2974
  const { id: _, ...settings } = this.normalTexture() || {};
2975
2975
  return settings;
2976
- }, ...(ngDevMode ? [{ debugName: "settings" }] : []));
2976
+ }, ...(ngDevMode ? [{ debugName: "settings" }] : /* istanbul ignore next */ []));
2977
2977
  const { resource } = normalTextureResource(this.id, {
2978
2978
  settings: this.settings,
2979
2979
  onLoad: this.normalTextureLoaded(),
@@ -2989,10 +2989,10 @@ class NgtsNormalTexture {
2989
2989
  static ngTemplateContextGuard(_, ctx) {
2990
2990
  return true;
2991
2991
  }
2992
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsNormalTexture, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2993
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: NgtsNormalTexture, isStandalone: true, selector: "ng-template[normalTexture]", inputs: { normalTexture: { classPropertyName: "normalTexture", publicName: "normalTexture", isSignal: true, isRequired: false, transformFunction: null }, normalTextureLoaded: { classPropertyName: "normalTextureLoaded", publicName: "normalTextureLoaded", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
2992
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsNormalTexture, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2993
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsNormalTexture, isStandalone: true, selector: "ng-template[normalTexture]", inputs: { normalTexture: { classPropertyName: "normalTexture", publicName: "normalTexture", isSignal: true, isRequired: false, transformFunction: null }, normalTextureLoaded: { classPropertyName: "normalTextureLoaded", publicName: "normalTextureLoaded", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
2994
2994
  }
2995
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsNormalTexture, decorators: [{
2995
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsNormalTexture, decorators: [{
2996
2996
  type: Directive,
2997
2997
  args: [{ selector: 'ng-template[normalTexture]' }]
2998
2998
  }], ctorParameters: () => [], propDecorators: { normalTexture: [{ type: i0.Input, args: [{ isSignal: true, alias: "normalTexture", required: false }] }], normalTextureLoaded: [{ type: i0.Input, args: [{ isSignal: true, alias: "normalTextureLoaded", required: false }] }] } });
@@ -3026,7 +3026,7 @@ const defaultOptions$4 = {
3026
3026
  */
3027
3027
  class NgtsRandomizedLights {
3028
3028
  constructor() {
3029
- this.options = input(defaultOptions$4, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$4) });
3029
+ this.options = input(defaultOptions$4, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$4) });
3030
3030
  this.parameters = omit(this.options, Object.keys(defaultOptions$4));
3031
3031
  this.lightsRef = viewChild.required('lights');
3032
3032
  this.accumulativeShadows = inject(NgtsAccumulativeShadows);
@@ -3035,10 +3035,10 @@ class NgtsRandomizedLights {
3035
3035
  this.intensity = pick(this.options, 'intensity');
3036
3036
  this.amount = pick(this.options, 'amount');
3037
3037
  this.mapSize = pick(this.options, 'mapSize');
3038
- this.shadowMapSize = computed(() => [this.mapSize(), this.mapSize()], ...(ngDevMode ? [{ debugName: "shadowMapSize" }] : []));
3038
+ this.shadowMapSize = computed(() => [this.mapSize(), this.mapSize()], ...(ngDevMode ? [{ debugName: "shadowMapSize" }] : /* istanbul ignore next */ []));
3039
3039
  this.position = pick(this.options, 'position');
3040
- this.length = computed(() => new THREE.Vector3(...this.position()).length(), ...(ngDevMode ? [{ debugName: "length" }] : []));
3041
- this.count = computed(() => Array.from({ length: this.amount() }, (_, index) => index), ...(ngDevMode ? [{ debugName: "count" }] : []));
3040
+ this.length = computed(() => new THREE.Vector3(...this.position()).length(), ...(ngDevMode ? [{ debugName: "length" }] : /* istanbul ignore next */ []));
3041
+ this.count = computed(() => Array.from({ length: this.amount() }, (_, index) => index), ...(ngDevMode ? [{ debugName: "count" }] : /* istanbul ignore next */ []));
3042
3042
  this.size = pick(this.options, 'size');
3043
3043
  this.near = pick(this.options, 'near');
3044
3044
  this.far = pick(this.options, 'far');
@@ -3049,7 +3049,7 @@ class NgtsRandomizedLights {
3049
3049
  -this.size(),
3050
3050
  this.near(),
3051
3051
  this.far(),
3052
- ], ...(ngDevMode ? [{ debugName: "cameraArgs" }] : []));
3052
+ ], ...(ngDevMode ? [{ debugName: "cameraArgs" }] : /* istanbul ignore next */ []));
3053
3053
  extend({ Group, DirectionalLight, OrthographicCamera, Vector2 });
3054
3054
  effect((onCleanup) => {
3055
3055
  const lights = this.lightsRef().nativeElement;
@@ -3080,8 +3080,8 @@ class NgtsRandomizedLights {
3080
3080
  }
3081
3081
  }
3082
3082
  }
3083
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRandomizedLights, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3084
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsRandomizedLights, isStandalone: true, selector: "ngts-randomized-lights", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lightsRef", first: true, predicate: ["lights"], descendants: true, isSignal: true }], ngImport: i0, template: `
3083
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRandomizedLights, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3084
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsRandomizedLights, isStandalone: true, selector: "ngts-randomized-lights", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lightsRef", first: true, predicate: ["lights"], descendants: true, isSignal: true }], ngImport: i0, template: `
3085
3085
  <ngt-group #lights [parameters]="parameters()">
3086
3086
  @for (i of count(); track $index) {
3087
3087
  <ngt-directional-light [castShadow]="castShadow()" [intensity]="intensity() / amount()">
@@ -3093,7 +3093,7 @@ class NgtsRandomizedLights {
3093
3093
  </ngt-group>
3094
3094
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3095
3095
  }
3096
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRandomizedLights, decorators: [{
3096
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRandomizedLights, decorators: [{
3097
3097
  type: Component,
3098
3098
  args: [{
3099
3099
  selector: 'ngts-randomized-lights',
@@ -3123,11 +3123,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3123
3123
  class NgtsRenderTextureContainer {
3124
3124
  constructor() {
3125
3125
  /** The WebGL render target (Frame Buffer Object) to render into. */
3126
- this.fbo = input.required(...(ngDevMode ? [{ debugName: "fbo" }] : []));
3126
+ this.fbo = input.required(...(ngDevMode ? [{ debugName: "fbo" }] : /* istanbul ignore next */ []));
3127
3127
  /** Priority in the render loop. Higher values render later. */
3128
- this.renderPriority = input.required(...(ngDevMode ? [{ debugName: "renderPriority" }] : []));
3128
+ this.renderPriority = input.required(...(ngDevMode ? [{ debugName: "renderPriority" }] : /* istanbul ignore next */ []));
3129
3129
  /** Number of frames to render. Use Infinity for continuous rendering. */
3130
- this.frames = input.required(...(ngDevMode ? [{ debugName: "frames" }] : []));
3130
+ this.frames = input.required(...(ngDevMode ? [{ debugName: "frames" }] : /* istanbul ignore next */ []));
3131
3131
  this.store = injectStore();
3132
3132
  effect((onCleanup) => {
3133
3133
  const [renderPriority, { internal }] = [this.renderPriority(), this.store()];
@@ -3162,10 +3162,10 @@ class NgtsRenderTextureContainer {
3162
3162
  });
3163
3163
  });
3164
3164
  }
3165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRenderTextureContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3166
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: NgtsRenderTextureContainer, isStandalone: true, selector: "[renderTextureContainer]", inputs: { fbo: { classPropertyName: "fbo", publicName: "fbo", isSignal: true, isRequired: true, transformFunction: null }, renderPriority: { classPropertyName: "renderPriority", publicName: "renderPriority", isSignal: true, isRequired: true, transformFunction: null }, frames: { classPropertyName: "frames", publicName: "frames", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
3165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRenderTextureContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3166
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsRenderTextureContainer, isStandalone: true, selector: "[renderTextureContainer]", inputs: { fbo: { classPropertyName: "fbo", publicName: "fbo", isSignal: true, isRequired: true, transformFunction: null }, renderPriority: { classPropertyName: "renderPriority", publicName: "renderPriority", isSignal: true, isRequired: true, transformFunction: null }, frames: { classPropertyName: "frames", publicName: "frames", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
3167
3167
  }
3168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRenderTextureContainer, decorators: [{
3168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRenderTextureContainer, decorators: [{
3169
3169
  type: Directive,
3170
3170
  args: [{ selector: '[renderTextureContainer]' }]
3171
3171
  }], ctorParameters: () => [], propDecorators: { fbo: [{ type: i0.Input, args: [{ isSignal: true, alias: "fbo", required: true }] }], renderPriority: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderPriority", required: true }] }], frames: [{ type: i0.Input, args: [{ isSignal: true, alias: "frames", required: true }] }] } });
@@ -3202,10 +3202,10 @@ class NgtsRenderTextureContent {
3202
3202
  static ngTemplateContextGuard(_, ctx) {
3203
3203
  return true;
3204
3204
  }
3205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRenderTextureContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3206
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.6", type: NgtsRenderTextureContent, isStandalone: true, selector: "ng-template[renderTextureContent]", ngImport: i0 }); }
3205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRenderTextureContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3206
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NgtsRenderTextureContent, isStandalone: true, selector: "ng-template[renderTextureContent]", ngImport: i0 }); }
3207
3207
  }
3208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRenderTextureContent, decorators: [{
3208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRenderTextureContent, decorators: [{
3209
3209
  type: Directive,
3210
3210
  args: [{ selector: 'ng-template[renderTextureContent]' }]
3211
3211
  }] });
@@ -3235,9 +3235,9 @@ let incrementId = 0;
3235
3235
  class NgtsRenderTextureImpl {
3236
3236
  constructor() {
3237
3237
  /** Property path to attach the texture (e.g., 'map', 'envMap', 'alphaMap'). */
3238
- this.attach = input('map', ...(ngDevMode ? [{ debugName: "attach" }] : []));
3238
+ this.attach = input('map', ...(ngDevMode ? [{ debugName: "attach" }] : /* istanbul ignore next */ []));
3239
3239
  /** Configuration options for the render texture. */
3240
- this.options = input(defaultOptions$3, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$3) });
3240
+ this.options = input(defaultOptions$3, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$3) });
3241
3241
  this.parameters = omit(this.options, [
3242
3242
  'samples',
3243
3243
  'renderPriority',
@@ -3268,7 +3268,7 @@ class NgtsRenderTextureImpl {
3268
3268
  stencilBuffer: this.stencilBuffer(),
3269
3269
  generateMipmaps: this.generateMipmaps(),
3270
3270
  },
3271
- }), ...(ngDevMode ? [{ debugName: "fboParams" }] : []));
3271
+ }), ...(ngDevMode ? [{ debugName: "fboParams" }] : /* istanbul ignore next */ []));
3272
3272
  this.renderPriority = pick(this.options, 'renderPriority');
3273
3273
  this.frames = pick(this.options, 'frames');
3274
3274
  this.fbo = fbo(this.fboParams);
@@ -3278,7 +3278,7 @@ class NgtsRenderTextureImpl {
3278
3278
  return scene;
3279
3279
  })();
3280
3280
  this.eventPriority = pick(this.options, 'eventPriority');
3281
- this.compute = computed(() => this.computeFn() || this.uvCompute, ...(ngDevMode ? [{ debugName: "compute" }] : []));
3281
+ this.compute = computed(() => this.computeFn() || this.uvCompute, ...(ngDevMode ? [{ debugName: "compute" }] : /* istanbul ignore next */ []));
3282
3282
  this.uvCompute = (event, root, previous) => {
3283
3283
  const fbo = this.fbo;
3284
3284
  if (!fbo)
@@ -3310,8 +3310,8 @@ class NgtsRenderTextureImpl {
3310
3310
  };
3311
3311
  extend({ Group });
3312
3312
  }
3313
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRenderTextureImpl, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3314
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsRenderTextureImpl, isStandalone: true, selector: "ngts-render-texture", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: NgtsRenderTextureContent, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: `
3313
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRenderTextureImpl, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3314
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsRenderTextureImpl, isStandalone: true, selector: "ngts-render-texture", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: NgtsRenderTextureContent, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: `
3315
3315
  <ngt-portal [container]="virtualScene" [state]="{ events: { compute: compute(), priority: eventPriority() } }">
3316
3316
  <ng-template portalContent let-injector="injector">
3317
3317
  <ng-container
@@ -3331,7 +3331,7 @@ class NgtsRenderTextureImpl {
3331
3331
  <ngt-primitive *args="[fbo.texture]" [attach]="attach()" [parameters]="parameters()" />
3332
3332
  `, isInline: true, dependencies: [{ kind: "component", type: i1.NgtPortalImpl, selector: "ngt-portal", inputs: ["container", "state"] }, { kind: "directive", type: i1.NgtPortalContent, selector: "ng-template[portalContent]" }, { kind: "directive", type: NgtsRenderTextureContainer, selector: "[renderTextureContainer]", inputs: ["fbo", "renderPriority", "frames"] }, { kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3333
3333
  }
3334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsRenderTextureImpl, decorators: [{
3334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsRenderTextureImpl, decorators: [{
3335
3335
  type: Component,
3336
3336
  args: [{
3337
3337
  selector: 'ngts-render-texture',
@@ -3394,7 +3394,7 @@ class NgtsShadow {
3394
3394
  this.Math = Math;
3395
3395
  this.DoubleSide = THREE.DoubleSide;
3396
3396
  /** Configuration options for the shadow appearance. */
3397
- this.options = input(defaultShadowOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultShadowOptions) });
3397
+ this.options = input(defaultShadowOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultShadowOptions) });
3398
3398
  this.parameters = omit(this.options, ['colorStop', 'fog', 'color', 'opacity', 'depthWrite', 'renderOrder']);
3399
3399
  this.document = inject(DOCUMENT);
3400
3400
  this.renderOrder = pick(this.options, 'renderOrder');
@@ -3416,11 +3416,11 @@ class NgtsShadow {
3416
3416
  context.fillStyle = gradient;
3417
3417
  context.fillRect(0, 0, canvas.width, canvas.height);
3418
3418
  return canvas;
3419
- }, ...(ngDevMode ? [{ debugName: "canvas" }] : []));
3419
+ }, ...(ngDevMode ? [{ debugName: "canvas" }] : /* istanbul ignore next */ []));
3420
3420
  extend({ Mesh, PlaneGeometry, MeshBasicMaterial, CanvasTexture });
3421
3421
  }
3422
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsShadow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3423
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: NgtsShadow, isStandalone: true, selector: "ngts-shadow", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3422
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsShadow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3423
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NgtsShadow, isStandalone: true, selector: "ngts-shadow", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3424
3424
  <ngt-mesh [renderOrder]="renderOrder()" [rotation.x]="-Math.PI / 2" [parameters]="parameters()">
3425
3425
  <ngt-plane-geometry />
3426
3426
  <ngt-mesh-basic-material
@@ -3436,7 +3436,7 @@ class NgtsShadow {
3436
3436
  </ngt-mesh>
3437
3437
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3438
3438
  }
3439
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsShadow, decorators: [{
3439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsShadow, decorators: [{
3440
3440
  type: Component,
3441
3441
  args: [{
3442
3442
  selector: 'ngts-shadow',
@@ -3498,7 +3498,7 @@ const defaultOptions$2 = {
3498
3498
  class NgtsSky {
3499
3499
  constructor() {
3500
3500
  /** Configuration options for the sky appearance. */
3501
- this.options = input(defaultOptions$2, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$2) });
3501
+ this.options = input(defaultOptions$2, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$2) });
3502
3502
  this.parameters = omit(this.options, [
3503
3503
  'distance',
3504
3504
  'inclination',
@@ -3514,7 +3514,7 @@ class NgtsSky {
3514
3514
  this.mieCoefficient = pick(this.options, 'mieCoefficient');
3515
3515
  this.mieDirectionalG = pick(this.options, 'mieDirectionalG');
3516
3516
  this.rayleigh = pick(this.options, 'rayleigh');
3517
- this.scale = computed(() => new THREE.Vector3().setScalar(this.distance()), ...(ngDevMode ? [{ debugName: "scale" }] : []));
3517
+ this.scale = computed(() => new THREE.Vector3().setScalar(this.distance()), ...(ngDevMode ? [{ debugName: "scale" }] : /* istanbul ignore next */ []));
3518
3518
  this.inclination = pick(this.options, 'inclination');
3519
3519
  this.azimuth = pick(this.options, 'azimuth');
3520
3520
  this.sunPosition = vector3(this.options, 'sunPosition', true);
@@ -3523,11 +3523,11 @@ class NgtsSky {
3523
3523
  if (sunPosition)
3524
3524
  return sunPosition;
3525
3525
  return calcPosFromAngles(this.inclination(), this.azimuth());
3526
- }, ...(ngDevMode ? [{ debugName: "calculatedSunPosition" }] : []));
3526
+ }, ...(ngDevMode ? [{ debugName: "calculatedSunPosition" }] : /* istanbul ignore next */ []));
3527
3527
  this.sky = new Sky();
3528
3528
  }
3529
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSky, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3530
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: NgtsSky, isStandalone: true, selector: "ngts-sky", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSky, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3530
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NgtsSky, isStandalone: true, selector: "ngts-sky", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3531
3531
  <ngt-primitive
3532
3532
  *args="[sky]"
3533
3533
  [parameters]="parameters()"
@@ -3542,7 +3542,7 @@ class NgtsSky {
3542
3542
  </ngt-primitive>
3543
3543
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3544
3544
  }
3545
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSky, decorators: [{
3545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSky, decorators: [{
3546
3546
  type: Component,
3547
3547
  args: [{
3548
3548
  selector: 'ngts-sky',
@@ -3589,7 +3589,7 @@ const defaultSparklesOptions = {
3589
3589
  class NgtsSparkles {
3590
3590
  constructor() {
3591
3591
  /** Configuration options for the sparkles effect. */
3592
- this.options = input(defaultSparklesOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultSparklesOptions) });
3592
+ this.options = input(defaultSparklesOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultSparklesOptions) });
3593
3593
  this.parameters = omit(this.options, ['noise', 'count', 'speed', 'opacity', 'scale', 'size', 'color']);
3594
3594
  this.sparklesOptions = pick(this.options, ['noise', 'count', 'speed', 'opacity', 'scale', 'size', 'color']);
3595
3595
  this.store = injectStore();
@@ -3601,19 +3601,19 @@ class NgtsSparkles {
3601
3601
  const s = new Sparkles(this.sparklesOptions());
3602
3602
  s.setPixelRatio(this.store.snapshot.viewport.dpr);
3603
3603
  return s;
3604
- }, ...(ngDevMode ? [{ debugName: "sparkles" }] : []));
3604
+ }, ...(ngDevMode ? [{ debugName: "sparkles" }] : /* istanbul ignore next */ []));
3605
3605
  beforeRender(({ clock }) => {
3606
3606
  this.sparkles().update(clock.elapsedTime);
3607
3607
  });
3608
3608
  }
3609
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSparkles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3610
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: NgtsSparkles, isStandalone: true, selector: "ngts-sparkles", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3609
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSparkles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3610
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NgtsSparkles, isStandalone: true, selector: "ngts-sparkles", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3611
3611
  <ngt-primitive *args="[sparkles()]" [parameters]="parameters()">
3612
3612
  <ng-content />
3613
3613
  </ngt-primitive>
3614
3614
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3615
3615
  }
3616
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSparkles, decorators: [{
3616
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSparkles, decorators: [{
3617
3617
  type: Component,
3618
3618
  args: [{
3619
3619
  selector: 'ngts-sparkles',
@@ -3646,7 +3646,7 @@ const defaultVolumetricMeshOptions = {
3646
3646
  class NgtsVolumetricMesh {
3647
3647
  constructor() {
3648
3648
  /** Configuration options for the volumetric mesh. */
3649
- this.options = input(defaultVolumetricMeshOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultVolumetricMeshOptions) });
3649
+ this.options = input(defaultVolumetricMeshOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultVolumetricMeshOptions) });
3650
3650
  /** Reference to the underlying mesh element. */
3651
3651
  this.meshRef = viewChild.required('mesh');
3652
3652
  this.store = injectStore();
@@ -3657,8 +3657,8 @@ class NgtsVolumetricMesh {
3657
3657
  this.radiusBottom = pick(this.options, 'radiusBottom');
3658
3658
  this.angle = pick(this.options, 'angle');
3659
3659
  this.distance = pick(this.options, 'distance');
3660
- this.normalizedRadiusTop = computed(() => (this.radiusTop() === undefined ? 0.1 : this.radiusTop()), ...(ngDevMode ? [{ debugName: "normalizedRadiusTop" }] : []));
3661
- this.normalizedRadiusBottom = computed(() => this.radiusBottom() === undefined ? this.angle() * 7 : this.radiusBottom(), ...(ngDevMode ? [{ debugName: "normalizedRadiusBottom" }] : []));
3660
+ this.normalizedRadiusTop = computed(() => (this.radiusTop() === undefined ? 0.1 : this.radiusTop()), ...(ngDevMode ? [{ debugName: "normalizedRadiusTop" }] : /* istanbul ignore next */ []));
3661
+ this.normalizedRadiusBottom = computed(() => this.radiusBottom() === undefined ? this.angle() * 7 : this.radiusBottom(), ...(ngDevMode ? [{ debugName: "normalizedRadiusBottom" }] : /* istanbul ignore next */ []));
3662
3662
  this.material = new SpotLightMaterial();
3663
3663
  this.opacity = pick(this.options, 'opacity');
3664
3664
  this.color = pick(this.options, 'color');
@@ -3670,7 +3670,7 @@ class NgtsVolumetricMesh {
3670
3670
  geometry.applyMatrix4(new THREE.Matrix4().makeTranslation(0, -this.distance() / 2, 0));
3671
3671
  geometry.applyMatrix4(new THREE.Matrix4().makeRotationX(-Math.PI / 2));
3672
3672
  return geometry;
3673
- }, ...(ngDevMode ? [{ debugName: "geometry" }] : []));
3673
+ }, ...(ngDevMode ? [{ debugName: "geometry" }] : /* istanbul ignore next */ []));
3674
3674
  extend({ Mesh });
3675
3675
  const vec = new THREE.Vector3();
3676
3676
  beforeRender(() => {
@@ -3682,8 +3682,8 @@ class NgtsVolumetricMesh {
3682
3682
  }
3683
3683
  });
3684
3684
  }
3685
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsVolumetricMesh, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3686
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsVolumetricMesh, isStandalone: true, selector: "ngts-volumetric-mesh", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
3685
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsVolumetricMesh, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3686
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsVolumetricMesh, isStandalone: true, selector: "ngts-volumetric-mesh", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
3687
3687
  <ngt-mesh #mesh [geometry]="geometry()" [raycast]="null">
3688
3688
  <ngt-primitive
3689
3689
  *args="[material]"
@@ -3700,7 +3700,7 @@ class NgtsVolumetricMesh {
3700
3700
  </ngt-mesh>
3701
3701
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3702
3702
  }
3703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsVolumetricMesh, decorators: [{
3703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsVolumetricMesh, decorators: [{
3704
3704
  type: Component,
3705
3705
  args: [{
3706
3706
  selector: 'ngts-volumetric-mesh',
@@ -3789,9 +3789,9 @@ class NgtsSpotLightShadowShader {
3789
3789
  constructor() {
3790
3790
  this.DoubleSide = THREE.DoubleSide;
3791
3791
  /** GLSL shader code for generating the shadow pattern. */
3792
- this.shader = input.required(...(ngDevMode ? [{ debugName: "shader" }] : []));
3792
+ this.shader = input.required(...(ngDevMode ? [{ debugName: "shader" }] : /* istanbul ignore next */ []));
3793
3793
  /** Configuration options for the shadow mesh. */
3794
- this.options = input(defaultSpotLightShadowOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultSpotLightShadowOptions) });
3794
+ this.options = input(defaultSpotLightShadowOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultSpotLightShadowOptions) });
3795
3795
  /** Reference to the shadow mesh element. */
3796
3796
  this.meshRef = viewChild.required('mesh');
3797
3797
  this.spotLight = inject(NgtsSpotLight);
@@ -3808,12 +3808,12 @@ class NgtsSpotLightShadowShader {
3808
3808
  stencilBuffer: false,
3809
3809
  // depthTexture: null!
3810
3810
  });
3811
- }, ...(ngDevMode ? [{ debugName: "renderTarget" }] : []));
3811
+ }, ...(ngDevMode ? [{ debugName: "renderTarget" }] : /* istanbul ignore next */ []));
3812
3812
  this.texture = computed(() => {
3813
3813
  const renderTarget = this.renderTarget();
3814
3814
  renderTarget.texture.wrapT = renderTarget.texture.wrapS = THREE.RepeatWrapping;
3815
3815
  return renderTarget.texture;
3816
- }, ...(ngDevMode ? [{ debugName: "texture" }] : []));
3816
+ }, ...(ngDevMode ? [{ debugName: "texture" }] : /* istanbul ignore next */ []));
3817
3817
  this.fsQuad = computed(() => {
3818
3818
  return new FullScreenQuad(new THREE.ShaderMaterial({
3819
3819
  uniforms: this.uniforms,
@@ -3827,7 +3827,7 @@ class NgtsSpotLightShadowShader {
3827
3827
  `,
3828
3828
  fragmentShader: this.shader(),
3829
3829
  }));
3830
- }, ...(ngDevMode ? [{ debugName: "fsQuad" }] : []));
3830
+ }, ...(ngDevMode ? [{ debugName: "fsQuad" }] : /* istanbul ignore next */ []));
3831
3831
  this.uniforms = {
3832
3832
  uShadowMap: { value: undefined },
3833
3833
  uTime: { value: 0 },
@@ -3857,8 +3857,8 @@ class NgtsSpotLightShadowShader {
3857
3857
  gl.setRenderTarget(null);
3858
3858
  });
3859
3859
  }
3860
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSpotLightShadowShader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3861
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsSpotLightShadowShader, isStandalone: true, selector: "ngts-spot-light-shadow-shader", inputs: { shader: { classPropertyName: "shader", publicName: "shader", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
3860
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSpotLightShadowShader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3861
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsSpotLightShadowShader, isStandalone: true, selector: "ngts-spot-light-shadow-shader", inputs: { shader: { classPropertyName: "shader", publicName: "shader", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
3862
3862
  <ngt-mesh #mesh [scale]="scale()" castShadow>
3863
3863
  <ngt-plane-geometry />
3864
3864
  <ngt-mesh-basic-material
@@ -3873,7 +3873,7 @@ class NgtsSpotLightShadowShader {
3873
3873
  </ngt-mesh>
3874
3874
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3875
3875
  }
3876
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSpotLightShadowShader, decorators: [{
3876
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSpotLightShadowShader, decorators: [{
3877
3877
  type: Component,
3878
3878
  args: [{
3879
3879
  selector: 'ngts-spot-light-shadow-shader',
@@ -3905,7 +3905,7 @@ class NgtsSpotLightShadowNoShader {
3905
3905
  constructor() {
3906
3906
  this.DoubleSide = THREE.DoubleSide;
3907
3907
  /** Configuration options for the shadow mesh. */
3908
- this.options = input(defaultSpotLightShadowOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultSpotLightShadowOptions) });
3908
+ this.options = input(defaultSpotLightShadowOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultSpotLightShadowOptions) });
3909
3909
  /** Reference to the shadow mesh element. */
3910
3910
  this.meshRef = viewChild.required('mesh');
3911
3911
  this.spotLight = inject(NgtsSpotLight);
@@ -3918,15 +3918,15 @@ class NgtsSpotLightShadowNoShader {
3918
3918
  map.wrapS = map.wrapT = RepeatWrapping;
3919
3919
  }
3920
3920
  return map;
3921
- }, ...(ngDevMode ? [{ debugName: "map" }] : []));
3921
+ }, ...(ngDevMode ? [{ debugName: "map" }] : /* istanbul ignore next */ []));
3922
3922
  this.width = pick(this.options, 'width');
3923
3923
  this.height = pick(this.options, 'height');
3924
3924
  this.distance = pick(this.options, 'distance');
3925
3925
  extend({ Mesh, PlaneGeometry, MeshBasicMaterial });
3926
3926
  spotLightCommon(this.spotLight.spotLightRef, this.meshRef, this.width, this.height, this.distance);
3927
3927
  }
3928
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSpotLightShadowNoShader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3929
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: NgtsSpotLightShadowNoShader, isStandalone: true, selector: "ngts-spot-light-shadow-no-shader", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
3928
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSpotLightShadowNoShader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3929
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NgtsSpotLightShadowNoShader, isStandalone: true, selector: "ngts-spot-light-shadow-no-shader", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "meshRef", first: true, predicate: ["mesh"], descendants: true, isSignal: true }], ngImport: i0, template: `
3930
3930
  <ngt-mesh #mesh [scale]="scale()" castShadow>
3931
3931
  <ngt-plane-geometry />
3932
3932
  <ngt-mesh-basic-material
@@ -3941,7 +3941,7 @@ class NgtsSpotLightShadowNoShader {
3941
3941
  </ngt-mesh>
3942
3942
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3943
3943
  }
3944
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSpotLightShadowNoShader, decorators: [{
3944
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSpotLightShadowNoShader, decorators: [{
3945
3945
  type: Component,
3946
3946
  args: [{
3947
3947
  selector: 'ngts-spot-light-shadow-no-shader',
@@ -3977,12 +3977,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3977
3977
  class NgtsSpotLightShadow {
3978
3978
  constructor() {
3979
3979
  /** Optional GLSL shader code for custom shadow patterns. If not provided, uses texture-based shadows. */
3980
- this.shader = input(...(ngDevMode ? [undefined, { debugName: "shader" }] : []));
3980
+ this.shader = input(...(ngDevMode ? [undefined, { debugName: "shader" }] : /* istanbul ignore next */ []));
3981
3981
  /** Configuration options for the shadow. */
3982
- this.options = input(defaultSpotLightShadowOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultSpotLightShadowOptions) });
3982
+ this.options = input(defaultSpotLightShadowOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultSpotLightShadowOptions) });
3983
3983
  }
3984
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSpotLightShadow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3985
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsSpotLightShadow, isStandalone: true, selector: "ngts-spot-light-shadow", inputs: { shader: { classPropertyName: "shader", publicName: "shader", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3984
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSpotLightShadow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3985
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsSpotLightShadow, isStandalone: true, selector: "ngts-spot-light-shadow", inputs: { shader: { classPropertyName: "shader", publicName: "shader", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
3986
3986
  @if (shader(); as shader) {
3987
3987
  <ngts-spot-light-shadow-shader [shader]="shader" [options]="options()" />
3988
3988
  } @else {
@@ -3990,7 +3990,7 @@ class NgtsSpotLightShadow {
3990
3990
  }
3991
3991
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsSpotLightShadowShader, selector: "ngts-spot-light-shadow-shader", inputs: ["shader", "options"] }, { kind: "component", type: NgtsSpotLightShadowNoShader, selector: "ngts-spot-light-shadow-no-shader", inputs: ["options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3992
3992
  }
3993
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSpotLightShadow, decorators: [{
3993
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSpotLightShadow, decorators: [{
3994
3994
  type: Component,
3995
3995
  args: [{
3996
3996
  selector: 'ngts-spot-light-shadow',
@@ -4037,7 +4037,7 @@ class NgtsSpotLight {
4037
4037
  constructor() {
4038
4038
  this.SpotLightHelper = THREE.SpotLightHelper;
4039
4039
  /** Configuration options for the spot light. */
4040
- this.options = input(defaultOptions$1, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions$1) });
4040
+ this.options = input(defaultOptions$1, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions$1) });
4041
4041
  this.parameters = omit(this.options, [
4042
4042
  'opacity',
4043
4043
  'radiusTop',
@@ -4073,8 +4073,8 @@ class NgtsSpotLight {
4073
4073
  this.volumetric = pick(this.options, 'volumetric');
4074
4074
  extend({ Group, SpotLight });
4075
4075
  }
4076
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSpotLight, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4077
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsSpotLight, isStandalone: true, selector: "ngts-spot-light", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "spotLightRef", first: true, predicate: ["spotLight"], descendants: true, isSignal: true }], ngImport: i0, template: `
4076
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSpotLight, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4077
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsSpotLight, isStandalone: true, selector: "ngts-spot-light", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "spotLightRef", first: true, predicate: ["spotLight"], descendants: true, isSignal: true }], ngImport: i0, template: `
4078
4078
  <ngt-group>
4079
4079
  <ngt-spot-light
4080
4080
  #spotLight
@@ -4096,7 +4096,7 @@ class NgtsSpotLight {
4096
4096
  </ngt-group>
4097
4097
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsVolumetricMesh, selector: "ngts-volumetric-mesh", inputs: ["options"] }, { kind: "component", type: NgtsHelper, selector: "ngts-helper", inputs: ["type", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4098
4098
  }
4099
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsSpotLight, decorators: [{
4099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsSpotLight, decorators: [{
4100
4100
  type: Component,
4101
4101
  args: [{
4102
4102
  selector: 'ngts-spot-light',
@@ -4152,9 +4152,9 @@ const defaultOptions = {
4152
4152
  class NgtsStageRefit {
4153
4153
  constructor() {
4154
4154
  /** Current radius of the scene bounds, used to trigger camera refit. */
4155
- this.radius = input.required(...(ngDevMode ? [{ debugName: "radius" }] : []));
4155
+ this.radius = input.required(...(ngDevMode ? [{ debugName: "radius" }] : /* istanbul ignore next */ []));
4156
4156
  /** Whether automatic camera adjustment is enabled. */
4157
- this.adjustCamera = input.required(...(ngDevMode ? [{ debugName: "adjustCamera" }] : []));
4157
+ this.adjustCamera = input.required(...(ngDevMode ? [{ debugName: "adjustCamera" }] : /* istanbul ignore next */ []));
4158
4158
  const bounds = inject(NgtsBounds);
4159
4159
  effect(() => {
4160
4160
  const [, adjustCamera] = [this.radius(), this.adjustCamera()];
@@ -4162,10 +4162,10 @@ class NgtsStageRefit {
4162
4162
  bounds.refresh().clip().fit();
4163
4163
  });
4164
4164
  }
4165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4166
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: true, transformFunction: null }, adjustCamera: { classPropertyName: "adjustCamera", publicName: "adjustCamera", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
4165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4166
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: true, transformFunction: null }, adjustCamera: { classPropertyName: "adjustCamera", publicName: "adjustCamera", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
4167
4167
  }
4168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsStageRefit, decorators: [{
4168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsStageRefit, decorators: [{
4169
4169
  type: Directive,
4170
4170
  args: [{ selector: 'ngts-stage-refit' }]
4171
4171
  }], ctorParameters: () => [], propDecorators: { radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: true }] }], adjustCamera: [{ type: i0.Input, args: [{ isSignal: true, alias: "adjustCamera", required: true }] }] } });
@@ -4193,7 +4193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4193
4193
  class NgtsStage {
4194
4194
  constructor() {
4195
4195
  /** Configuration options for the stage setup. */
4196
- this.options = input(defaultOptions, { ...(ngDevMode ? { debugName: "options" } : {}), transform: mergeInputs(defaultOptions) });
4196
+ this.options = input(defaultOptions, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), transform: mergeInputs(defaultOptions) });
4197
4197
  this.parameters = omit(this.options, [
4198
4198
  'preset',
4199
4199
  'shadows',
@@ -4204,12 +4204,12 @@ class NgtsStage {
4204
4204
  ]);
4205
4205
  /** Emits when the content has been centered, providing the calculated dimensions. */
4206
4206
  this.centered = output();
4207
- this.dims = signal({ radius: 0, width: 0, height: 0, depth: 0 }, ...(ngDevMode ? [{ debugName: "dims" }] : []));
4207
+ this.dims = signal({ radius: 0, width: 0, height: 0, depth: 0 }, ...(ngDevMode ? [{ debugName: "dims" }] : /* istanbul ignore next */ []));
4208
4208
  this.radius = pick(this.dims, 'radius');
4209
4209
  this.height = pick(this.dims, 'height');
4210
4210
  this.center = pick(this.options, 'center');
4211
4211
  this.adjustCamera = pick(this.options, 'adjustCamera');
4212
- this.margin = computed(() => Number(this.adjustCamera()), ...(ngDevMode ? [{ debugName: "margin" }] : []));
4212
+ this.margin = computed(() => Number(this.adjustCamera()), ...(ngDevMode ? [{ debugName: "margin" }] : /* istanbul ignore next */ []));
4213
4213
  this.intensity = pick(this.options, 'intensity');
4214
4214
  this.shadows = pick(this.options, 'shadows');
4215
4215
  this.environment = pick(this.options, 'environment');
@@ -4217,13 +4217,13 @@ class NgtsStage {
4217
4217
  this.config = computed(() => {
4218
4218
  const preset = this.preset();
4219
4219
  return typeof preset === 'string' ? presets[preset] : preset;
4220
- }, ...(ngDevMode ? [{ debugName: "config" }] : []));
4221
- this.shadowBias = computed(() => this.shadows().bias ?? -0.0001, ...(ngDevMode ? [{ debugName: "shadowBias" }] : []));
4222
- this.normalBias = computed(() => this.shadows().normalBias ?? 0, ...(ngDevMode ? [{ debugName: "normalBias" }] : []));
4223
- this.shadowSize = computed(() => this.shadows().size ?? 1024, ...(ngDevMode ? [{ debugName: "shadowSize" }] : []));
4224
- this.shadowOffset = computed(() => this.shadows().offset ?? 0, ...(ngDevMode ? [{ debugName: "shadowOffset" }] : []));
4225
- this.contactShadow = computed(() => this.shadows() === 'contact' || this.shadows()?.type === 'contact', ...(ngDevMode ? [{ debugName: "contactShadow" }] : []));
4226
- this.accumulativeShadow = computed(() => this.shadows() === 'accumulative' || this.shadows()?.type === 'accumulative', ...(ngDevMode ? [{ debugName: "accumulativeShadow" }] : []));
4220
+ }, ...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
4221
+ this.shadowBias = computed(() => this.shadows().bias ?? -0.0001, ...(ngDevMode ? [{ debugName: "shadowBias" }] : /* istanbul ignore next */ []));
4222
+ this.normalBias = computed(() => this.shadows().normalBias ?? 0, ...(ngDevMode ? [{ debugName: "normalBias" }] : /* istanbul ignore next */ []));
4223
+ this.shadowSize = computed(() => this.shadows().size ?? 1024, ...(ngDevMode ? [{ debugName: "shadowSize" }] : /* istanbul ignore next */ []));
4224
+ this.shadowOffset = computed(() => this.shadows().offset ?? 0, ...(ngDevMode ? [{ debugName: "shadowOffset" }] : /* istanbul ignore next */ []));
4225
+ this.contactShadow = computed(() => this.shadows() === 'contact' || this.shadows()?.type === 'contact', ...(ngDevMode ? [{ debugName: "contactShadow" }] : /* istanbul ignore next */ []));
4226
+ this.accumulativeShadow = computed(() => this.shadows() === 'accumulative' || this.shadows()?.type === 'accumulative', ...(ngDevMode ? [{ debugName: "accumulativeShadow" }] : /* istanbul ignore next */ []));
4227
4227
  this.shadowOptions = computed(() => {
4228
4228
  const shadows = this.shadows();
4229
4229
  if (this.contactShadow()) {
@@ -4240,7 +4240,7 @@ class NgtsStage {
4240
4240
  };
4241
4241
  }
4242
4242
  return typeof shadows === 'object' ? shadows : {};
4243
- }, ...(ngDevMode ? [{ debugName: "shadowOptions" }] : []));
4243
+ }, ...(ngDevMode ? [{ debugName: "shadowOptions" }] : /* istanbul ignore next */ []));
4244
4244
  this.randomizedLightsOptions = computed(() => {
4245
4245
  if (!this.accumulativeShadow())
4246
4246
  return {};
@@ -4259,22 +4259,22 @@ class NgtsStage {
4259
4259
  bias: -this.shadowBias(),
4260
4260
  mapSize: this.shadowSize(),
4261
4261
  };
4262
- }, ...(ngDevMode ? [{ debugName: "randomizedLightsOptions" }] : []));
4262
+ }, ...(ngDevMode ? [{ debugName: "randomizedLightsOptions" }] : /* istanbul ignore next */ []));
4263
4263
  this.environmentOptions = computed(() => {
4264
4264
  const environment = this.environment();
4265
4265
  return !environment ? {} : typeof environment === 'string' ? { preset: environment } : environment;
4266
- }, ...(ngDevMode ? [{ debugName: "environmentOptions" }] : []));
4266
+ }, ...(ngDevMode ? [{ debugName: "environmentOptions" }] : /* istanbul ignore next */ []));
4267
4267
  this.boundsOptions = computed(() => ({
4268
4268
  fit: !!this.adjustCamera(),
4269
4269
  clip: !!this.adjustCamera(),
4270
4270
  margin: this.margin(),
4271
4271
  observe: true,
4272
4272
  ...this.parameters(),
4273
- }), ...(ngDevMode ? [{ debugName: "boundsOptions" }] : []));
4273
+ }), ...(ngDevMode ? [{ debugName: "boundsOptions" }] : /* istanbul ignore next */ []));
4274
4274
  this.centerOptions = computed(() => ({
4275
4275
  ...(this.center() || {}),
4276
4276
  position: [0, this.shadowOffset() / 2, 0],
4277
- }), ...(ngDevMode ? [{ debugName: "centerOptions" }] : []));
4277
+ }), ...(ngDevMode ? [{ debugName: "centerOptions" }] : /* istanbul ignore next */ []));
4278
4278
  extend({ AmbientLight, SpotLight, PointLight, Group, Vector2 });
4279
4279
  }
4280
4280
  /**
@@ -4288,8 +4288,8 @@ class NgtsStage {
4288
4288
  this.dims.set({ radius: boundingSphere.radius, width, height, depth });
4289
4289
  this.centered.emit($event);
4290
4290
  }
4291
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsStage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4292
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { centered: "centered" }, ngImport: i0, template: `
4291
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsStage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4292
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { centered: "centered" }, ngImport: i0, template: `
4293
4293
  <ngt-ambient-light [intensity]="intensity() / 3" />
4294
4294
  <ngt-spot-light
4295
4295
  [penumbra]="1"
@@ -4330,7 +4330,7 @@ class NgtsStage {
4330
4330
  }
4331
4331
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtsBounds, selector: "ngts-bounds", inputs: ["options"] }, { kind: "directive", type: NgtsStageRefit, selector: "ngts-stage-refit", inputs: ["radius", "adjustCamera"] }, { kind: "component", type: NgtsCenter, selector: "ngts-center", inputs: ["options"], outputs: ["centered"] }, { kind: "component", type: NgtsContactShadows, selector: "ngts-contact-shadows", inputs: ["options"] }, { kind: "component", type: NgtsAccumulativeShadows, selector: "ngts-accumulative-shadows", inputs: ["options"] }, { kind: "component", type: NgtsEnvironment, selector: "ngts-environment", inputs: ["options"], outputs: ["envSet"] }, { kind: "component", type: NgtsRandomizedLights, selector: "ngts-randomized-lights", inputs: ["options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4332
4332
  }
4333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NgtsStage, decorators: [{
4333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgtsStage, decorators: [{
4334
4334
  type: Component,
4335
4335
  args: [{
4336
4336
  selector: 'ngts-stage',