angular-three-soba 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/abstractions/lib/line/line.d.ts +4 -4
  2. package/abstractions/lib/text/text.d.ts +1 -1
  3. package/esm2020/abstractions/lib/billboard/billboard.mjs +6 -5
  4. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +6 -6
  5. package/esm2020/abstractions/lib/line/line.mjs +58 -69
  6. package/esm2020/abstractions/lib/text/text.mjs +28 -26
  7. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +6 -6
  8. package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +6 -6
  9. package/esm2020/performance/lib/detailed/detailed.mjs +6 -5
  10. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +8 -8
  11. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +6 -6
  12. package/esm2020/staging/lib/bounds/bounds.mjs +6 -5
  13. package/esm2020/staging/lib/center/center.mjs +10 -9
  14. package/esm2020/staging/lib/cloud/cloud.mjs +6 -6
  15. package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +14 -10
  16. package/esm2020/staging/lib/environment/environment-portal.mjs +10 -6
  17. package/esm2020/staging/lib/float/float.mjs +6 -5
  18. package/esm2020/staging/lib/sky/sky.mjs +23 -22
  19. package/esm2020/staging/lib/sparkles/sparkles.mjs +8 -8
  20. package/esm2020/staging/lib/stage/stage.mjs +2 -5
  21. package/esm2020/staging/lib/stars/stars.mjs +6 -6
  22. package/fesm2015/angular-three-soba-abstractions.mjs +91 -99
  23. package/fesm2015/angular-three-soba-abstractions.mjs.map +1 -1
  24. package/fesm2015/angular-three-soba-cameras.mjs +9 -9
  25. package/fesm2015/angular-three-soba-cameras.mjs.map +1 -1
  26. package/fesm2015/angular-three-soba-performance.mjs +5 -4
  27. package/fesm2015/angular-three-soba-performance.mjs.map +1 -1
  28. package/fesm2015/angular-three-soba-staging.mjs +83 -74
  29. package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
  30. package/fesm2020/angular-three-soba-abstractions.mjs +91 -99
  31. package/fesm2020/angular-three-soba-abstractions.mjs.map +1 -1
  32. package/fesm2020/angular-three-soba-cameras.mjs +9 -9
  33. package/fesm2020/angular-three-soba-cameras.mjs.map +1 -1
  34. package/fesm2020/angular-three-soba-performance.mjs +5 -4
  35. package/fesm2020/angular-three-soba-performance.mjs.map +1 -1
  36. package/fesm2020/angular-three-soba-staging.mjs +83 -74
  37. package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
  38. package/package.json +3 -3
  39. package/plugin/package.json +1 -1
  40. package/staging/lib/sky/sky.d.ts +2 -3
  41. package/staging/lib/stage/stage.d.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Directive, Component, CUSTOM_ELEMENTS_SCHEMA, Input, EventEmitter, Output, TemplateRef, ContentChild, ChangeDetectorRef } from '@angular/core';
3
- import { extend, NgtStore, getLocalState, NgtRxStore, injectNgtRef, NgtArgs, NgtRepeat, is, injectBeforeRender, NgtPush, injectNgtDestroy, injectNgtLoader, startWithUndefined, prepare, NgtPortal, NgtPortalContent } from 'angular-three';
3
+ import { extend, NgtStore, getLocalState, NgtRxStore, injectNgtRef, NgtRef, NgtArgs, NgtRepeat, is, injectBeforeRender, NgtPush, injectNgtDestroy, injectNgtLoader, startWithUndefined, prepare, NgtPortal, NgtPortalContent } from 'angular-three';
4
4
  import { shaderMaterial } from 'angular-three-soba/shaders';
5
5
  import { Subject, combineLatest, switchMap, isObservable, of, debounceTime, map, takeUntil, startWith, withLatestFrom } from 'rxjs';
6
6
  import * as THREE from 'three';
@@ -312,11 +312,11 @@ NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
312
312
  },
313
313
  ], usesInheritance: true, ngImport: i0, template: `
314
314
  <ngt-group ngtCompound>
315
- <ngt-group [ref]="accumulativeShadowsRef" [traverse]="nullTraverse">
315
+ <ngt-group *ref="accumulativeShadowsRef" [traverse]="nullTraverse">
316
316
  <ng-content />
317
317
  <ngts-accumulative-shadows-consumer />
318
318
  </ngt-group>
319
- <ngt-mesh [receiveShadow]="true" [ref]="meshRef" [scale]="get('scale')" [rotation]="[-Math.PI / 2, 0, 0]">
319
+ <ngt-mesh *ref="meshRef" [receiveShadow]="true" [scale]="get('scale')" [rotation]="[-Math.PI / 2, 0, 0]">
320
320
  <ngt-plane-geometry />
321
321
  <ngt-soft-shadow-material
322
322
  [transparent]="true"
@@ -328,7 +328,7 @@ NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
328
328
  />
329
329
  </ngt-mesh>
330
330
  </ngt-group>
331
- `, isInline: true, dependencies: [{ kind: "directive", type: AccumulativeShadowsConsumer, selector: "ngts-accumulative-shadows-consumer" }] });
331
+ `, isInline: true, dependencies: [{ kind: "directive", type: AccumulativeShadowsConsumer, selector: "ngts-accumulative-shadows-consumer" }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
332
332
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
333
333
  type: Component,
334
334
  args: [{
@@ -336,11 +336,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
336
336
  standalone: true,
337
337
  template: `
338
338
  <ngt-group ngtCompound>
339
- <ngt-group [ref]="accumulativeShadowsRef" [traverse]="nullTraverse">
339
+ <ngt-group *ref="accumulativeShadowsRef" [traverse]="nullTraverse">
340
340
  <ng-content />
341
341
  <ngts-accumulative-shadows-consumer />
342
342
  </ngt-group>
343
- <ngt-mesh [receiveShadow]="true" [ref]="meshRef" [scale]="get('scale')" [rotation]="[-Math.PI / 2, 0, 0]">
343
+ <ngt-mesh *ref="meshRef" [receiveShadow]="true" [scale]="get('scale')" [rotation]="[-Math.PI / 2, 0, 0]">
344
344
  <ngt-plane-geometry />
345
345
  <ngt-soft-shadow-material
346
346
  [transparent]="true"
@@ -353,7 +353,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
353
353
  </ngt-mesh>
354
354
  </ngt-group>
355
355
  `,
356
- imports: [AccumulativeShadowsConsumer],
356
+ imports: [AccumulativeShadowsConsumer, NgtRef],
357
357
  providers: [
358
358
  {
359
359
  provide: NGTS_ACCUMULATIVE_SHADOWS_API,
@@ -513,7 +513,7 @@ NgtsRandomizedLights.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ver
513
513
  NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsRandomizedLights, isStandalone: true, selector: "ngts-randomized-lights", inputs: { lightsRef: "lightsRef", frames: "frames", position: "position", radius: "radius", amount: "amount", intensity: "intensity", ambient: "ambient", castShadow: "castShadow", bias: "bias", mapSize: "mapSize", size: "size", near: "near", far: "far" }, providers: [
514
514
  { provide: NGTS_RANDOMIZED_LIGHTS_API, useFactory: randomizedLightsApiFactory, deps: [NgtsRandomizedLights] },
515
515
  ], usesInheritance: true, ngImport: i0, template: `
516
- <ngt-group ngtCompound [ref]="lightsRef">
516
+ <ngt-group ngtCompound *ref="lightsRef">
517
517
  <ngt-directional-light
518
518
  *ngFor="let i; repeat: get('amount')"
519
519
  [castShadow]="get('castShadow')"
@@ -525,14 +525,14 @@ NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
525
525
  </ngt-directional-light>
526
526
  <ngts-randomized-lights-consumer />
527
527
  </ngt-group>
528
- `, isInline: true, dependencies: [{ kind: "directive", type: RandomizedLightsConsumer, selector: "ngts-randomized-lights-consumer" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRepeat, selector: "[ngFor][ngForRepeat]", inputs: ["ngForRepeat"] }] });
528
+ `, isInline: true, dependencies: [{ kind: "directive", type: RandomizedLightsConsumer, selector: "ngts-randomized-lights-consumer" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRepeat, selector: "[ngFor][ngForRepeat]", inputs: ["ngForRepeat"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
529
529
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsRandomizedLights, decorators: [{
530
530
  type: Component,
531
531
  args: [{
532
532
  selector: 'ngts-randomized-lights',
533
533
  standalone: true,
534
534
  template: `
535
- <ngt-group ngtCompound [ref]="lightsRef">
535
+ <ngt-group ngtCompound *ref="lightsRef">
536
536
  <ngt-directional-light
537
537
  *ngFor="let i; repeat: get('amount')"
538
538
  [castShadow]="get('castShadow')"
@@ -545,7 +545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
545
545
  <ngts-randomized-lights-consumer />
546
546
  </ngt-group>
547
547
  `,
548
- imports: [RandomizedLightsConsumer, NgtArgs, NgtRepeat],
548
+ imports: [RandomizedLightsConsumer, NgtArgs, NgtRepeat, NgtRef],
549
549
  providers: [
550
550
  { provide: NGTS_RANDOMIZED_LIGHTS_API, useFactory: randomizedLightsApiFactory, deps: [NgtsRandomizedLights] },
551
551
  ],
@@ -821,20 +821,21 @@ class NgtsBounds extends NgtRxStore {
821
821
  }
822
822
  NgtsBounds.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsBounds, deps: null, target: i0.ɵɵFactoryTarget.Component });
823
823
  NgtsBounds.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsBounds, isStandalone: true, selector: "ngts-bounds", inputs: { boundsRef: "boundsRef", damping: "damping", fit: "fit", clip: "clip", observe: "observe", margin: "margin", eps: "eps" }, outputs: { fitted: "fitted" }, providers: [{ provide: NGTS_BOUNDS_API, useFactory: boundsApiFactory, deps: [NgtsBounds] }], usesInheritance: true, ngImport: i0, template: `
824
- <ngt-group ngtCompound [ref]="boundsRef">
824
+ <ngt-group ngtCompound *ref="boundsRef">
825
825
  <ng-content />
826
826
  </ngt-group>
827
- `, isInline: true });
827
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
828
828
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsBounds, decorators: [{
829
829
  type: Component,
830
830
  args: [{
831
831
  selector: 'ngts-bounds',
832
832
  standalone: true,
833
833
  template: `
834
- <ngt-group ngtCompound [ref]="boundsRef">
834
+ <ngt-group ngtCompound *ref="boundsRef">
835
835
  <ng-content />
836
836
  </ngt-group>
837
837
  `,
838
+ imports: [NgtRef],
838
839
  providers: [{ provide: NGTS_BOUNDS_API, useFactory: boundsApiFactory, deps: [NgtsBounds] }],
839
840
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
840
841
  }]
@@ -1057,28 +1058,29 @@ class NgtsCenter extends NgtRxStore {
1057
1058
  }
1058
1059
  NgtsCenter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsCenter, deps: null, target: i0.ɵɵFactoryTarget.Component });
1059
1060
  NgtsCenter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsCenter, isStandalone: true, selector: "ngts-center", inputs: { centerRef: "centerRef", top: "top", right: "right", bottom: "bottom", left: "left", front: "front", back: "back", disableX: "disableX", disableY: "disableY", disableZ: "disableZ", disabled: "disabled", precise: "precise" }, outputs: { centered: "centered" }, usesInheritance: true, ngImport: i0, template: `
1060
- <ngt-group ngtCompound [ref]="centerRef">
1061
- <ngt-group [ref]="outerRef">
1062
- <ngt-group [ref]="innerRef">
1061
+ <ngt-group ngtCompound *ref="centerRef">
1062
+ <ngt-group *ref="outerRef">
1063
+ <ngt-group *ref="innerRef">
1063
1064
  <ng-content />
1064
1065
  </ngt-group>
1065
1066
  </ngt-group>
1066
1067
  </ngt-group>
1067
- `, isInline: true });
1068
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
1068
1069
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsCenter, decorators: [{
1069
1070
  type: Component,
1070
1071
  args: [{
1071
1072
  selector: 'ngts-center',
1072
1073
  standalone: true,
1073
1074
  template: `
1074
- <ngt-group ngtCompound [ref]="centerRef">
1075
- <ngt-group [ref]="outerRef">
1076
- <ngt-group [ref]="innerRef">
1075
+ <ngt-group ngtCompound *ref="centerRef">
1076
+ <ngt-group *ref="outerRef">
1077
+ <ngt-group *ref="innerRef">
1077
1078
  <ng-content />
1078
1079
  </ngt-group>
1079
1080
  </ngt-group>
1080
1081
  </ngt-group>
1081
1082
  `,
1083
+ imports: [NgtRef],
1082
1084
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
1083
1085
  }]
1084
1086
  }], propDecorators: { centerRef: [{
@@ -1176,7 +1178,7 @@ class NgtsCloud extends NgtRxStore {
1176
1178
  }
1177
1179
  NgtsCloud.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsCloud, deps: null, target: i0.ɵɵFactoryTarget.Component });
1178
1180
  NgtsCloud.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsCloud, isStandalone: true, selector: "ngts-cloud", inputs: { groupRef: "groupRef", opacity: "opacity", speed: "speed", width: "width", depth: "depth", segments: "segments", texture: "texture", color: "color", depthTest: "depthTest" }, usesInheritance: true, ngImport: i0, template: `
1179
- <ngt-group ngtCompound [ref]="groupRef">
1181
+ <ngt-group ngtCompound *ref="groupRef">
1180
1182
  <ngt-group
1181
1183
  [position]="[0, 0, (get('segments') / 2) * get('depth')]"
1182
1184
  (beforeRender)="onBeforeRender($any($event))"
@@ -1203,14 +1205,14 @@ NgtsCloud.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
1203
1205
  </ngts-billboard>
1204
1206
  </ngt-group>
1205
1207
  </ngt-group>
1206
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }, { kind: "component", type: NgtsBillboard, selector: "ngts-billboard", inputs: ["billboardRef", "follow", "lockX", "lockY", "lockZ"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1208
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }, { kind: "component", type: NgtsBillboard, selector: "ngts-billboard", inputs: ["billboardRef", "follow", "lockX", "lockY", "lockZ"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
1207
1209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsCloud, decorators: [{
1208
1210
  type: Component,
1209
1211
  args: [{
1210
1212
  selector: 'ngts-cloud',
1211
1213
  standalone: true,
1212
1214
  template: `
1213
- <ngt-group ngtCompound [ref]="groupRef">
1215
+ <ngt-group ngtCompound *ref="groupRef">
1214
1216
  <ngt-group
1215
1217
  [position]="[0, 0, (get('segments') / 2) * get('depth')]"
1216
1218
  (beforeRender)="onBeforeRender($any($event))"
@@ -1238,7 +1240,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
1238
1240
  </ngt-group>
1239
1241
  </ngt-group>
1240
1242
  `,
1241
- imports: [NgFor, NgtPush, NgtsBillboard, NgIf],
1243
+ imports: [NgFor, NgtPush, NgtsBillboard, NgIf, NgtRef],
1242
1244
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
1243
1245
  }]
1244
1246
  }], propDecorators: { groupRef: [{
@@ -1399,7 +1401,7 @@ class NgtsContactShadows extends NgtRxStore {
1399
1401
  }
1400
1402
  NgtsContactShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsContactShadows, deps: [], target: i0.ɵɵFactoryTarget.Component });
1401
1403
  NgtsContactShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsContactShadows, isStandalone: true, selector: "ngts-contact-shadows", inputs: { contactShadowsRef: "contactShadowsRef", opacity: "opacity", width: "width", height: "height", blur: "blur", far: "far", smooth: "smooth", resolution: "resolution", frames: "frames", scale: "scale", color: "color", depthWrite: "depthWrite", renderOrder: "renderOrder" }, usesInheritance: true, ngImport: i0, template: `
1402
- <ngt-group ngtCompound [ref]="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1404
+ <ngt-group ngtCompound *ref="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1403
1405
  <ng-container *ngIf="contactShadows$ | ngtPush : null as contactShadows">
1404
1406
  <ngt-mesh
1405
1407
  [renderOrder]="get('renderOrder')"
@@ -1409,24 +1411,26 @@ NgtsContactShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
1409
1411
  >
1410
1412
  <ngt-mesh-basic-material
1411
1413
  [map]="contactShadows.renderTarget.texture"
1412
- transparent
1414
+ [transparent]="true"
1413
1415
  [opacity]="get('opacity')"
1414
1416
  [depthWrite]="get('depthWrite')"
1415
1417
  >
1416
1418
  <ngt-value [rawValue]="encoding" attach="map.encoding" />
1417
1419
  </ngt-mesh-basic-material>
1418
1420
  </ngt-mesh>
1419
- <ngt-orthographic-camera *args="get('cameraArgs')" [ref]="shadowCameraRef" />
1421
+ <ng-container *args="get('cameraArgs')">
1422
+ <ngt-orthographic-camera *ref="shadowCameraRef" />
1423
+ </ng-container>
1420
1424
  </ng-container>
1421
1425
  </ngt-group>
1422
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
1426
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
1423
1427
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsContactShadows, decorators: [{
1424
1428
  type: Component,
1425
1429
  args: [{
1426
1430
  selector: 'ngts-contact-shadows',
1427
1431
  standalone: true,
1428
1432
  template: `
1429
- <ngt-group ngtCompound [ref]="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1433
+ <ngt-group ngtCompound *ref="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1430
1434
  <ng-container *ngIf="contactShadows$ | ngtPush : null as contactShadows">
1431
1435
  <ngt-mesh
1432
1436
  [renderOrder]="get('renderOrder')"
@@ -1436,18 +1440,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
1436
1440
  >
1437
1441
  <ngt-mesh-basic-material
1438
1442
  [map]="contactShadows.renderTarget.texture"
1439
- transparent
1443
+ [transparent]="true"
1440
1444
  [opacity]="get('opacity')"
1441
1445
  [depthWrite]="get('depthWrite')"
1442
1446
  >
1443
1447
  <ngt-value [rawValue]="encoding" attach="map.encoding" />
1444
1448
  </ngt-mesh-basic-material>
1445
1449
  </ngt-mesh>
1446
- <ngt-orthographic-camera *args="get('cameraArgs')" [ref]="shadowCameraRef" />
1450
+ <ng-container *args="get('cameraArgs')">
1451
+ <ngt-orthographic-camera *ref="shadowCameraRef" />
1452
+ </ng-container>
1447
1453
  </ng-container>
1448
1454
  </ngt-group>
1449
1455
  `,
1450
- imports: [NgIf, NgtPush, NgtArgs],
1456
+ imports: [NgIf, NgtPush, NgtArgs, NgtRef],
1451
1457
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
1452
1458
  }]
1453
1459
  }], ctorParameters: function () { return []; }, propDecorators: { contactShadowsRef: [{
@@ -1816,7 +1822,9 @@ NgtsEnvironmentPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
1816
1822
  <ngt-portal [container]="virtualSceneRef">
1817
1823
  <ng-template ngtPortalContent>
1818
1824
  <ng-content />
1819
- <ngt-cube-camera *args="get('cameraArgs')" [ref]="cubeCameraRef" />
1825
+ <ng-container *args="get('cameraArgs')">
1826
+ <ngt-cube-camera *ref="cubeCameraRef" />
1827
+ </ng-container>
1820
1828
  <ng-container *ngIf="get('files') || get('preset'); else environmentMap">
1821
1829
  <ngts-environment-cube
1822
1830
  [background]="true"
@@ -1831,7 +1839,7 @@ NgtsEnvironmentPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
1831
1839
  </ng-template>
1832
1840
  </ng-template>
1833
1841
  </ngt-portal>
1834
- `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
1842
+ `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
1835
1843
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
1836
1844
  type: Component,
1837
1845
  args: [{
@@ -1841,7 +1849,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
1841
1849
  <ngt-portal [container]="virtualSceneRef">
1842
1850
  <ng-template ngtPortalContent>
1843
1851
  <ng-content />
1844
- <ngt-cube-camera *args="get('cameraArgs')" [ref]="cubeCameraRef" />
1852
+ <ng-container *args="get('cameraArgs')">
1853
+ <ngt-cube-camera *ref="cubeCameraRef" />
1854
+ </ng-container>
1845
1855
  <ng-container *ngIf="get('files') || get('preset'); else environmentMap">
1846
1856
  <ngts-environment-cube
1847
1857
  [background]="true"
@@ -1857,7 +1867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
1857
1867
  </ng-template>
1858
1868
  </ngt-portal>
1859
1869
  `,
1860
- imports: [NgtPortal, NgtPortalContent, NgtsEnvironmentMap, NgtsEnvironmentCube, NgIf, NgtArgs],
1870
+ imports: [NgtPortal, NgtPortalContent, NgtsEnvironmentMap, NgtsEnvironmentCube, NgIf, NgtArgs, NgtRef],
1861
1871
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
1862
1872
  }]
1863
1873
  }], ctorParameters: function () { return []; } });
@@ -2058,11 +2068,11 @@ class NgtsFloat extends NgtRxStore {
2058
2068
  NgtsFloat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component });
2059
2069
  NgtsFloat.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { floatRef: "floatRef", speed: "speed", rotationIntensity: "rotationIntensity", floatIntensity: "floatIntensity", floatingRange: "floatingRange" }, usesInheritance: true, ngImport: i0, template: `
2060
2070
  <ngt-group ngtCompound>
2061
- <ngt-group [ref]="floatRef">
2071
+ <ngt-group *ref="floatRef">
2062
2072
  <ng-content />
2063
2073
  </ngt-group>
2064
2074
  </ngt-group>
2065
- `, isInline: true });
2075
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
2066
2076
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsFloat, decorators: [{
2067
2077
  type: Component,
2068
2078
  args: [{
@@ -2070,11 +2080,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
2070
2080
  standalone: true,
2071
2081
  template: `
2072
2082
  <ngt-group ngtCompound>
2073
- <ngt-group [ref]="floatRef">
2083
+ <ngt-group *ref="floatRef">
2074
2084
  <ng-content />
2075
2085
  </ngt-group>
2076
2086
  </ngt-group>
2077
2087
  `,
2088
+ imports: [NgtRef],
2078
2089
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
2079
2090
  }]
2080
2091
  }], ctorParameters: function () { return []; }, propDecorators: { floatRef: [{
@@ -2101,6 +2112,7 @@ class NgtsSky extends NgtRxStore {
2101
2112
  constructor() {
2102
2113
  super(...arguments);
2103
2114
  this.skyRef = injectNgtRef();
2115
+ this.sky = new Sky();
2104
2116
  }
2105
2117
  set distance(distance) {
2106
2118
  this.set({ distance });
@@ -2143,36 +2155,36 @@ class NgtsSky extends NgtRxStore {
2143
2155
  this.connect('sunPosition', this.select(['inclination', 'azimuth'], ({ inclination, azimuth }) => calcPosFromAngles(inclination, azimuth)));
2144
2156
  this.connect('scale', this.select(['distance'], ({ distance }) => new Vector3().setScalar(distance)));
2145
2157
  }
2146
- ngOnInit() {
2147
- if (!this.skyRef.nativeElement)
2148
- this.skyRef.nativeElement = new Sky();
2149
- }
2150
2158
  }
2151
2159
  NgtsSky.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsSky, deps: null, target: i0.ɵɵFactoryTarget.Component });
2152
2160
  NgtsSky.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsSky, isStandalone: true, selector: "ngts-sky", inputs: { skyRef: "skyRef", distance: "distance", sunPosition: "sunPosition", inclination: "inclination", azimuth: "azimuth", mieCoefficient: "mieCoefficient", mieDirectionalG: "mieDirectionalG", rayleigh: "rayleigh", turbidity: "turbidity" }, usesInheritance: true, ngImport: i0, template: `
2153
- <ngt-primitive *args="[skyRef.nativeElement]" ngtCompound [ref]="skyRef" [scale]="get('scale')">
2154
- <ngt-value [rawValue]="get('mieCoefficient')" attach="material.uniforms.mieCoefficient.value" />
2155
- <ngt-value [rawValue]="get('mieDirectionalG')" attach="material.uniforms.mieDirectionalG.value" />
2156
- <ngt-value [rawValue]="get('rayleigh')" attach="material.uniforms.rayleigh.value" />
2157
- <ngt-value [rawValue]="get('sunPosition')" attach="material.uniforms.sunPosition.value" />
2158
- <ngt-value [rawValue]="get('turbidity')" attach="material.uniforms.turbidity.value" />
2159
- </ngt-primitive>
2160
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
2161
+ <ng-container *args="[sky]">
2162
+ <ngt-primitive ngtCompound *ref="skyRef" [scale]="get('scale')">
2163
+ <ngt-value [rawValue]="get('mieCoefficient')" attach="material.uniforms.mieCoefficient.value" />
2164
+ <ngt-value [rawValue]="get('mieDirectionalG')" attach="material.uniforms.mieDirectionalG.value" />
2165
+ <ngt-value [rawValue]="get('rayleigh')" attach="material.uniforms.rayleigh.value" />
2166
+ <ngt-value [rawValue]="get('sunPosition')" attach="material.uniforms.sunPosition.value" />
2167
+ <ngt-value [rawValue]="get('turbidity')" attach="material.uniforms.turbidity.value" />
2168
+ </ngt-primitive>
2169
+ </ng-container>
2170
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
2161
2171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsSky, decorators: [{
2162
2172
  type: Component,
2163
2173
  args: [{
2164
2174
  selector: 'ngts-sky',
2165
2175
  standalone: true,
2166
2176
  template: `
2167
- <ngt-primitive *args="[skyRef.nativeElement]" ngtCompound [ref]="skyRef" [scale]="get('scale')">
2168
- <ngt-value [rawValue]="get('mieCoefficient')" attach="material.uniforms.mieCoefficient.value" />
2169
- <ngt-value [rawValue]="get('mieDirectionalG')" attach="material.uniforms.mieDirectionalG.value" />
2170
- <ngt-value [rawValue]="get('rayleigh')" attach="material.uniforms.rayleigh.value" />
2171
- <ngt-value [rawValue]="get('sunPosition')" attach="material.uniforms.sunPosition.value" />
2172
- <ngt-value [rawValue]="get('turbidity')" attach="material.uniforms.turbidity.value" />
2173
- </ngt-primitive>
2177
+ <ng-container *args="[sky]">
2178
+ <ngt-primitive ngtCompound *ref="skyRef" [scale]="get('scale')">
2179
+ <ngt-value [rawValue]="get('mieCoefficient')" attach="material.uniforms.mieCoefficient.value" />
2180
+ <ngt-value [rawValue]="get('mieDirectionalG')" attach="material.uniforms.mieDirectionalG.value" />
2181
+ <ngt-value [rawValue]="get('rayleigh')" attach="material.uniforms.rayleigh.value" />
2182
+ <ngt-value [rawValue]="get('sunPosition')" attach="material.uniforms.sunPosition.value" />
2183
+ <ngt-value [rawValue]="get('turbidity')" attach="material.uniforms.turbidity.value" />
2184
+ </ngt-primitive>
2185
+ </ng-container>
2174
2186
  `,
2175
- imports: [NgtArgs],
2187
+ imports: [NgtArgs, NgtRef],
2176
2188
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
2177
2189
  }]
2178
2190
  }], propDecorators: { skyRef: [{
@@ -2347,7 +2359,7 @@ class NgtsSparkles extends NgtRxStore {
2347
2359
  }
2348
2360
  NgtsSparkles.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsSparkles, deps: [], target: i0.ɵɵFactoryTarget.Component });
2349
2361
  NgtsSparkles.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsSparkles, isStandalone: true, selector: "ngts-sparkles", inputs: { pointsRef: "pointsRef", count: "count", speed: "speed", opacity: "opacity", color: "color", size: "size", scale: "scale", noise: "noise" }, usesInheritance: true, ngImport: i0, template: `
2350
- <ngt-points ngtCompount [ref]="pointsRef">
2362
+ <ngt-points ngtCompount *ref="pointsRef">
2351
2363
  <ngt-buffer-geometry>
2352
2364
  <ngt-buffer-attribute *args="[get('positions'), 3]" attach="attributes.position" />
2353
2365
  <ngt-buffer-attribute *args="[get('sizes'), 1]" attach="attributes.size" />
@@ -2356,16 +2368,16 @@ NgtsSparkles.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
2356
2368
  <ngt-buffer-attribute *args="[get('colors'), 3]" attach="attributes.color" />
2357
2369
  <ngt-buffer-attribute *args="[get('noises'), 3]" attach="attributes.noise" />
2358
2370
  </ngt-buffer-geometry>
2359
- <ngt-sparkles-material [ref]="materialRef" [transparent]="true" [depthWrite]="false" [pixelRatio]="dpr" />
2371
+ <ngt-sparkles-material *ref="materialRef" [transparent]="true" [depthWrite]="false" [pixelRatio]="dpr" />
2360
2372
  </ngt-points>
2361
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
2373
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
2362
2374
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsSparkles, decorators: [{
2363
2375
  type: Component,
2364
2376
  args: [{
2365
2377
  selector: 'ngts-sparkles',
2366
2378
  standalone: true,
2367
2379
  template: `
2368
- <ngt-points ngtCompount [ref]="pointsRef">
2380
+ <ngt-points ngtCompount *ref="pointsRef">
2369
2381
  <ngt-buffer-geometry>
2370
2382
  <ngt-buffer-attribute *args="[get('positions'), 3]" attach="attributes.position" />
2371
2383
  <ngt-buffer-attribute *args="[get('sizes'), 1]" attach="attributes.size" />
@@ -2374,10 +2386,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
2374
2386
  <ngt-buffer-attribute *args="[get('colors'), 3]" attach="attributes.color" />
2375
2387
  <ngt-buffer-attribute *args="[get('noises'), 3]" attach="attributes.noise" />
2376
2388
  </ngt-buffer-geometry>
2377
- <ngt-sparkles-material [ref]="materialRef" [transparent]="true" [depthWrite]="false" [pixelRatio]="dpr" />
2389
+ <ngt-sparkles-material *ref="materialRef" [transparent]="true" [depthWrite]="false" [pixelRatio]="dpr" />
2378
2390
  </ngt-points>
2379
2391
  `,
2380
- imports: [NgtArgs],
2392
+ imports: [NgtArgs, NgtRef],
2381
2393
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
2382
2394
  }]
2383
2395
  }], ctorParameters: function () { return []; }, propDecorators: { pointsRef: [{
@@ -2432,10 +2444,7 @@ NgtsStageRefit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
2432
2444
  NgtsStageRefit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: "radius", adjustCamera: "adjustCamera" }, usesOnChanges: true, ngImport: i0 });
2433
2445
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStageRefit, decorators: [{
2434
2446
  type: Directive,
2435
- args: [{
2436
- selector: 'ngts-stage-refit',
2437
- standalone: true,
2438
- }]
2447
+ args: [{ selector: 'ngts-stage-refit', standalone: true }]
2439
2448
  }], propDecorators: { radius: [{
2440
2449
  type: Input
2441
2450
  }], adjustCamera: [{
@@ -2851,7 +2860,7 @@ class NgtsStars extends NgtRxStore {
2851
2860
  }
2852
2861
  NgtsStars.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component });
2853
2862
  NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsStars, isStandalone: true, selector: "ngts-stars", inputs: { starsRef: "starsRef", radius: "radius", depth: "depth", count: "count", factor: "factor", saturation: "saturation", fade: "fade", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
2854
- <ngt-points [ref]="starsRef">
2863
+ <ngt-points *ref="starsRef">
2855
2864
  <ngt-buffer-geometry>
2856
2865
  <ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
2857
2866
  <ngt-buffer-attribute attach="attributes.color" *args="[get('bufferAttributes').colors, 3]" />
@@ -2868,14 +2877,14 @@ NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
2868
2877
  <ngt-value attach="uniforms.fade.value" [rawValue]="get('fade')" />
2869
2878
  </ngt-primitive>
2870
2879
  </ngt-points>
2871
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
2880
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
2872
2881
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStars, decorators: [{
2873
2882
  type: Component,
2874
2883
  args: [{
2875
2884
  selector: 'ngts-stars',
2876
2885
  standalone: true,
2877
2886
  template: `
2878
- <ngt-points [ref]="starsRef">
2887
+ <ngt-points *ref="starsRef">
2879
2888
  <ngt-buffer-geometry>
2880
2889
  <ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
2881
2890
  <ngt-buffer-attribute attach="attributes.color" *args="[get('bufferAttributes').colors, 3]" />
@@ -2893,7 +2902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
2893
2902
  </ngt-primitive>
2894
2903
  </ngt-points>
2895
2904
  `,
2896
- imports: [NgtArgs],
2905
+ imports: [NgtArgs, NgtRef],
2897
2906
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
2898
2907
  }]
2899
2908
  }], ctorParameters: function () { return []; }, propDecorators: { starsRef: [{