angular-three-soba 1.5.0 → 1.6.0-beta.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: [{
@@ -1402,7 +1404,7 @@ class NgtsContactShadows extends NgtRxStore {
1402
1404
  }
1403
1405
  NgtsContactShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsContactShadows, deps: [], target: i0.ɵɵFactoryTarget.Component });
1404
1406
  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: `
1405
- <ngt-group ngtCompound [ref]="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1407
+ <ngt-group ngtCompound *ref="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1406
1408
  <ng-container *ngIf="contactShadows$ | ngtPush : null as contactShadows">
1407
1409
  <ngt-mesh
1408
1410
  [renderOrder]="get('renderOrder')"
@@ -1412,24 +1414,26 @@ NgtsContactShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
1412
1414
  >
1413
1415
  <ngt-mesh-basic-material
1414
1416
  [map]="contactShadows.renderTarget.texture"
1415
- transparent
1417
+ [transparent]="true"
1416
1418
  [opacity]="get('opacity')"
1417
1419
  [depthWrite]="get('depthWrite')"
1418
1420
  >
1419
1421
  <ngt-value [rawValue]="encoding" attach="map.encoding" />
1420
1422
  </ngt-mesh-basic-material>
1421
1423
  </ngt-mesh>
1422
- <ngt-orthographic-camera *args="get('cameraArgs')" [ref]="shadowCameraRef" />
1424
+ <ng-container *args="get('cameraArgs')">
1425
+ <ngt-orthographic-camera *ref="shadowCameraRef" />
1426
+ </ng-container>
1423
1427
  </ng-container>
1424
1428
  </ngt-group>
1425
- `, 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"] }] });
1429
+ `, 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"] }] });
1426
1430
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsContactShadows, decorators: [{
1427
1431
  type: Component,
1428
1432
  args: [{
1429
1433
  selector: 'ngts-contact-shadows',
1430
1434
  standalone: true,
1431
1435
  template: `
1432
- <ngt-group ngtCompound [ref]="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1436
+ <ngt-group ngtCompound *ref="contactShadowsRef" [rotation]="[Math.PI / 2, 0, 0]">
1433
1437
  <ng-container *ngIf="contactShadows$ | ngtPush : null as contactShadows">
1434
1438
  <ngt-mesh
1435
1439
  [renderOrder]="get('renderOrder')"
@@ -1439,18 +1443,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
1439
1443
  >
1440
1444
  <ngt-mesh-basic-material
1441
1445
  [map]="contactShadows.renderTarget.texture"
1442
- transparent
1446
+ [transparent]="true"
1443
1447
  [opacity]="get('opacity')"
1444
1448
  [depthWrite]="get('depthWrite')"
1445
1449
  >
1446
1450
  <ngt-value [rawValue]="encoding" attach="map.encoding" />
1447
1451
  </ngt-mesh-basic-material>
1448
1452
  </ngt-mesh>
1449
- <ngt-orthographic-camera *args="get('cameraArgs')" [ref]="shadowCameraRef" />
1453
+ <ng-container *args="get('cameraArgs')">
1454
+ <ngt-orthographic-camera *ref="shadowCameraRef" />
1455
+ </ng-container>
1450
1456
  </ng-container>
1451
1457
  </ngt-group>
1452
1458
  `,
1453
- imports: [NgIf, NgtPush, NgtArgs],
1459
+ imports: [NgIf, NgtPush, NgtArgs, NgtRef],
1454
1460
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
1455
1461
  }]
1456
1462
  }], ctorParameters: function () { return []; }, propDecorators: { contactShadowsRef: [{
@@ -1817,7 +1823,9 @@ NgtsEnvironmentPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
1817
1823
  <ngt-portal [container]="virtualSceneRef">
1818
1824
  <ng-template ngtPortalContent>
1819
1825
  <ng-content />
1820
- <ngt-cube-camera *args="get('cameraArgs')" [ref]="cubeCameraRef" />
1826
+ <ng-container *args="get('cameraArgs')">
1827
+ <ngt-cube-camera *ref="cubeCameraRef" />
1828
+ </ng-container>
1821
1829
  <ng-container *ngIf="get('files') || get('preset'); else environmentMap">
1822
1830
  <ngts-environment-cube
1823
1831
  [background]="true"
@@ -1832,7 +1840,7 @@ NgtsEnvironmentPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
1832
1840
  </ng-template>
1833
1841
  </ng-template>
1834
1842
  </ngt-portal>
1835
- `, 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"] }] });
1843
+ `, 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"] }] });
1836
1844
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
1837
1845
  type: Component,
1838
1846
  args: [{
@@ -1842,7 +1850,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
1842
1850
  <ngt-portal [container]="virtualSceneRef">
1843
1851
  <ng-template ngtPortalContent>
1844
1852
  <ng-content />
1845
- <ngt-cube-camera *args="get('cameraArgs')" [ref]="cubeCameraRef" />
1853
+ <ng-container *args="get('cameraArgs')">
1854
+ <ngt-cube-camera *ref="cubeCameraRef" />
1855
+ </ng-container>
1846
1856
  <ng-container *ngIf="get('files') || get('preset'); else environmentMap">
1847
1857
  <ngts-environment-cube
1848
1858
  [background]="true"
@@ -1858,7 +1868,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
1858
1868
  </ng-template>
1859
1869
  </ngt-portal>
1860
1870
  `,
1861
- imports: [NgtPortal, NgtPortalContent, NgtsEnvironmentMap, NgtsEnvironmentCube, NgIf, NgtArgs],
1871
+ imports: [NgtPortal, NgtPortalContent, NgtsEnvironmentMap, NgtsEnvironmentCube, NgIf, NgtArgs, NgtRef],
1862
1872
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
1863
1873
  }]
1864
1874
  }], 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: [{
@@ -2858,7 +2867,7 @@ class NgtsStars extends NgtRxStore {
2858
2867
  }
2859
2868
  NgtsStars.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component });
2860
2869
  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: `
2861
- <ngt-points [ref]="starsRef">
2870
+ <ngt-points *ref="starsRef">
2862
2871
  <ngt-buffer-geometry>
2863
2872
  <ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
2864
2873
  <ngt-buffer-attribute attach="attributes.color" *args="[get('bufferAttributes').colors, 3]" />
@@ -2875,14 +2884,14 @@ NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
2875
2884
  <ngt-value attach="uniforms.fade.value" [rawValue]="get('fade')" />
2876
2885
  </ngt-primitive>
2877
2886
  </ngt-points>
2878
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
2887
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
2879
2888
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStars, decorators: [{
2880
2889
  type: Component,
2881
2890
  args: [{
2882
2891
  selector: 'ngts-stars',
2883
2892
  standalone: true,
2884
2893
  template: `
2885
- <ngt-points [ref]="starsRef">
2894
+ <ngt-points *ref="starsRef">
2886
2895
  <ngt-buffer-geometry>
2887
2896
  <ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
2888
2897
  <ngt-buffer-attribute attach="attributes.color" *args="[get('bufferAttributes').colors, 3]" />
@@ -2900,7 +2909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
2900
2909
  </ngt-primitive>
2901
2910
  </ngt-points>
2902
2911
  `,
2903
- imports: [NgtArgs],
2912
+ imports: [NgtArgs, NgtRef],
2904
2913
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
2905
2914
  }]
2906
2915
  }], ctorParameters: function () { return []; }, propDecorators: { starsRef: [{