angular-three-soba 1.9.0 → 1.9.1

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.
@@ -1,11 +1,7 @@
1
- import { ChangeDetectorRef, Directive, inject, Input } from '@angular/core';
1
+ import { Directive, Input } from '@angular/core';
2
2
  import { NgtRxStore } from 'angular-three';
3
3
  import * as i0 from "@angular/core";
4
4
  export class NgtsSpotLightShadowMeshInput extends NgtRxStore {
5
- constructor() {
6
- super(...arguments);
7
- this.cdr = inject(ChangeDetectorRef);
8
- }
9
5
  set distance(distance) {
10
6
  this.set({ distance });
11
7
  }
@@ -20,7 +16,6 @@ export class NgtsSpotLightShadowMeshInput extends NgtRxStore {
20
16
  }
21
17
  set shader(shader) {
22
18
  this.set({ shader });
23
- this.cdr.detectChanges();
24
19
  }
25
20
  set width(width) {
26
21
  this.set({ width });
@@ -48,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
48
43
  }], height: [{
49
44
  type: Input
50
45
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZG93LW1lc2gtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3BvdC1saWdodC9zaGFkb3ctbWVzaC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFnQiw0QkFBNkIsU0FBUSxVQUFVO0lBRHJFOztRQUVxQixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0E4QnBEO0lBNUJHLElBQWEsUUFBUSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxTQUFpQjtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxHQUFHLENBQUMsR0FBa0I7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzt5SEE5QmlCLDRCQUE0Qjs2R0FBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRGpELFNBQVM7OEJBSU8sUUFBUTtzQkFBcEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0UnhTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgQElucHV0KCkgc2V0IGRpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkaXN0YW5jZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYWxwaGFUZXN0KGFscGhhVGVzdDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWxwaGFUZXN0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzY2FsZShzY2FsZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2NhbGUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1hcChtYXA6IFRIUkVFLlRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtYXAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNoYWRlcihzaGFkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IHNoYWRlciB9KTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB3aWR0aCh3aWR0aDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgd2lkdGggfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGhlaWdodChoZWlnaHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGhlaWdodCB9KTtcbiAgICB9XG59XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZG93LW1lc2gtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3BvdC1saWdodC9zaGFkb3ctbWVzaC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQWdCLDRCQUE2QixTQUFRLFVBQVU7SUFDakUsSUFBYSxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLFNBQWlCO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxHQUFrQjtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzt5SEEzQmlCLDRCQUE0Qjs2R0FBNUIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRGpELFNBQVM7OEJBRU8sUUFBUTtzQkFBcEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0UnhTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQElucHV0KCkgc2V0IGRpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkaXN0YW5jZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYWxwaGFUZXN0KGFscGhhVGVzdDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWxwaGFUZXN0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzY2FsZShzY2FsZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2NhbGUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1hcChtYXA6IFRIUkVFLlRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtYXAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNoYWRlcihzaGFkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IHNoYWRlciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgd2lkdGgod2lkdGg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHdpZHRoIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBoZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBoZWlnaHQgfSk7XG4gICAgfVxufVxuIl19
@@ -1,6 +1,5 @@
1
- import { NgIf } from '@angular/common';
2
1
  import { Component, CUSTOM_ELEMENTS_SCHEMA, inject } from '@angular/core';
3
- import { createRunInContext, extend, injectNgtRef } from 'angular-three';
2
+ import { checkUpdate, createRunInContext, extend, injectNgtRef, NgtPush } from 'angular-three';
4
3
  import * as THREE from 'three';
5
4
  import { Mesh, MeshBasicMaterial, PlaneGeometry } from 'three';
6
5
  import { injectShadowMeshCommon } from './common';
@@ -14,12 +13,17 @@ export class NgtsSpotLightShadowNoShader extends NgtsSpotLightShadowMeshInput {
14
13
  this.mesh = injectNgtRef();
15
14
  this.spotLightApi = inject(NGTS_SPOT_LIGHT_API);
16
15
  this.DoubleSide = THREE.DoubleSide;
17
- this.RepeatWrapping = THREE.RepeatWrapping;
18
16
  this.runInContext = createRunInContext();
19
17
  }
20
18
  initialize() {
21
19
  super.initialize();
22
20
  this.set({ distance: 0.4, alphaTest: 0.5, width: 512, height: 512 });
21
+ this.hold(this.select('map'), (map) => {
22
+ if (map) {
23
+ map.wrapS = map.wrapT = THREE.RepeatWrapping;
24
+ checkUpdate(map);
25
+ }
26
+ });
23
27
  }
24
28
  ngOnInit() {
25
29
  const commonEffect = this.runInContext(() => {
@@ -33,19 +37,16 @@ NgtsSpotLightShadowNoShader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
33
37
  <ngt-mesh [ref]="mesh" [scale]="get('scale')" [castShadow]="true">
34
38
  <ngt-plane-geometry />
35
39
  <ngt-mesh-basic-material
36
- *ngIf="!!get('map')"
37
40
  [transparent]="true"
38
41
  [side]="DoubleSide"
39
42
  [alphaTest]="get('alphaTest')"
40
- [alphaMap]="get('map')"
43
+ [alphaMap]="key$('map') | ngtPush"
41
44
  [opacity]="spotLightApi.debug ? 1 : 0"
42
45
  >
43
- <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapS" />
44
- <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapT" />
45
46
  <ng-content />
46
47
  </ngt-mesh-basic-material>
47
48
  </ngt-mesh>
48
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
49
+ `, isInline: true, dependencies: [{ kind: "pipe", type: NgtPush, name: "ngtPush" }] });
49
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsSpotLightShadowNoShader, decorators: [{
50
51
  type: Component,
51
52
  args: [{
@@ -55,21 +56,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
55
56
  <ngt-mesh [ref]="mesh" [scale]="get('scale')" [castShadow]="true">
56
57
  <ngt-plane-geometry />
57
58
  <ngt-mesh-basic-material
58
- *ngIf="!!get('map')"
59
59
  [transparent]="true"
60
60
  [side]="DoubleSide"
61
61
  [alphaTest]="get('alphaTest')"
62
- [alphaMap]="get('map')"
62
+ [alphaMap]="key$('map') | ngtPush"
63
63
  [opacity]="spotLightApi.debug ? 1 : 0"
64
64
  >
65
- <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapS" />
66
- <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapT" />
67
65
  <ng-content />
68
66
  </ngt-mesh-basic-material>
69
67
  </ngt-mesh>
70
68
  `,
71
- imports: [NgIf],
69
+ imports: [NgtPush],
72
70
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
73
71
  }]
74
72
  }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC1zaGFkb3ctbm8tc2hhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc3RhZ2luZy9zcmMvbGliL3Nwb3QtbGlnaHQvc3BvdC1saWdodC1zaGFkb3ctbm8tc2hhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUVuRCxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQXlCbkQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDRCQUE0QjtJQXZCN0U7O1FBd0JhLFNBQUksR0FBRyxZQUFZLEVBQWMsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTNDLGVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUV0QyxpQkFBWSxHQUFHLGtCQUFrQixFQUFFLENBQUM7S0FtQmhEO0lBakJZLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxzQkFBc0IsQ0FDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQzNCLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDdkIsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O3dIQXpCUSwyQkFBMkI7NEdBQTNCLDJCQUEyQixtSEFwQjFCOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JULDREQUNTLElBQUk7MkZBR0wsMkJBQTJCO2tCQXZCdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQztvQkFDZixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVJ1bkluQ29udGV4dCwgZXh0ZW5kLCBpbmplY3ROZ3RSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2gsIE1lc2hCYXNpY01hdGVyaWFsLCBQbGFuZUdlb21ldHJ5IH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0U2hhZG93TWVzaENvbW1vbiB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoSW5wdXQgfSBmcm9tICcuL3NoYWRvdy1tZXNoLWlucHV0JztcbmltcG9ydCB7IE5HVFNfU1BPVF9MSUdIVF9BUEkgfSBmcm9tICcuL3Nwb3QtbGlnaHQnO1xuXG5leHRlbmQoeyBNZXNoLCBQbGFuZUdlb21ldHJ5LCBNZXNoQmFzaWNNYXRlcmlhbCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXNwb3QtbGlnaHQtc2hhZG93LW5vLXNoYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW1lc2ggW3JlZl09XCJtZXNoXCIgW3NjYWxlXT1cImdldCgnc2NhbGUnKVwiIFtjYXN0U2hhZG93XT1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZ3QtcGxhbmUtZ2VvbWV0cnkgLz5cbiAgICAgICAgICAgIDxuZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiISFnZXQoJ21hcCcpXCJcbiAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NpZGVdPVwiRG91YmxlU2lkZVwiXG4gICAgICAgICAgICAgICAgW2FscGhhVGVzdF09XCJnZXQoJ2FscGhhVGVzdCcpXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFNYXBdPVwiZ2V0KCdtYXAnKVwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwic3BvdExpZ2h0QXBpLmRlYnVnID8gMSA6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cIlJlcGVhdFdyYXBwaW5nXCIgYXR0YWNoPVwiYWxwaGFNYXAud3JhcFNcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cIlJlcGVhdFdyYXBwaW5nXCIgYXR0YWNoPVwiYWxwaGFNYXAud3JhcFRcIiAvPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsPlxuICAgICAgICA8L25ndC1tZXNoPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05nSWZdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1Nwb3RMaWdodFNoYWRvd05vU2hhZGVyIGV4dGVuZHMgTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgbWVzaCA9IGluamVjdE5ndFJlZjxUSFJFRS5NZXNoPigpO1xuICAgIHJlYWRvbmx5IHNwb3RMaWdodEFwaSA9IGluamVjdChOR1RTX1NQT1RfTElHSFRfQVBJKTtcblxuICAgIHJlYWRvbmx5IERvdWJsZVNpZGUgPSBUSFJFRS5Eb3VibGVTaWRlO1xuICAgIHJlYWRvbmx5IFJlcGVhdFdyYXBwaW5nID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG5cbiAgICByZWFkb25seSBydW5JbkNvbnRleHQgPSBjcmVhdGVSdW5JbkNvbnRleHQoKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBkaXN0YW5jZTogMC40LCBhbHBoYVRlc3Q6IDAuNSwgd2lkdGg6IDUxMiwgaGVpZ2h0OiA1MTIgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGNvbW1vbkVmZmVjdCA9IHRoaXMucnVuSW5Db250ZXh0KCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBpbmplY3RTaGFkb3dNZXNoQ29tbW9uKFxuICAgICAgICAgICAgICAgIHRoaXMuc3BvdExpZ2h0QXBpLnNwb3RMaWdodCxcbiAgICAgICAgICAgICAgICB0aGlzLm1lc2gsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXQoJ3dpZHRoJyksXG4gICAgICAgICAgICAgICAgdGhpcy5nZXQoJ2hlaWdodCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0KCdkaXN0YW5jZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tbW9uRWZmZWN0KHRoaXMpO1xuICAgIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC1zaGFkb3ctbm8tc2hhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc3RhZ2luZy9zcmMvbGliL3Nwb3QtbGlnaHQvc3BvdC1saWdodC1zaGFkb3ctbm8tc2hhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFbkQsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7QUFzQm5ELE1BQU0sT0FBTywyQkFBNEIsU0FBUSw0QkFBNEI7SUFwQjdFOztRQXFCYSxTQUFJLEdBQUcsWUFBWSxFQUFjLENBQUM7UUFDbEMsaUJBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUzQyxlQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUU5QixpQkFBWSxHQUFHLGtCQUFrQixFQUFFLENBQUM7S0F5QmhEO0lBdkJZLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2xDLElBQUksR0FBRyxFQUFFO2dCQUNMLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO2dCQUM3QyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDcEI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxzQkFBc0IsQ0FDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQzNCLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDdkIsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O3dIQTlCUSwyQkFBMkI7NEdBQTNCLDJCQUEyQixtSEFqQjFCOzs7Ozs7Ozs7Ozs7O0tBYVQsdURBQ1MsT0FBTzsyRkFHUiwyQkFBMkI7a0JBcEJ2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7S0FhVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNoZWNrVXBkYXRlLCBjcmVhdGVSdW5JbkNvbnRleHQsIGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBOZ3RQdXNoIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBNZXNoLCBNZXNoQmFzaWNNYXRlcmlhbCwgUGxhbmVHZW9tZXRyeSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdFNoYWRvd01lc2hDb21tb24gfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IH0gZnJvbSAnLi9zaGFkb3ctbWVzaC1pbnB1dCc7XG5pbXBvcnQgeyBOR1RTX1NQT1RfTElHSFRfQVBJIH0gZnJvbSAnLi9zcG90LWxpZ2h0JztcblxuZXh0ZW5kKHsgTWVzaCwgUGxhbmVHZW9tZXRyeSwgTWVzaEJhc2ljTWF0ZXJpYWwgfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zcG90LWxpZ2h0LXNoYWRvdy1uby1zaGFkZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1tZXNoIFtyZWZdPVwibWVzaFwiIFtzY2FsZV09XCJnZXQoJ3NjYWxlJylcIiBbY2FzdFNoYWRvd109XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmd0LXBsYW5lLWdlb21ldHJ5IC8+XG4gICAgICAgICAgICA8bmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWxcbiAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NpZGVdPVwiRG91YmxlU2lkZVwiXG4gICAgICAgICAgICAgICAgW2FscGhhVGVzdF09XCJnZXQoJ2FscGhhVGVzdCcpXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFNYXBdPVwia2V5JCgnbWFwJykgfCBuZ3RQdXNoXCJcbiAgICAgICAgICAgICAgICBbb3BhY2l0eV09XCJzcG90TGlnaHRBcGkuZGVidWcgPyAxIDogMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgIDwvbmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWw+XG4gICAgICAgIDwvbmd0LW1lc2g+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0UHVzaF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3BvdExpZ2h0U2hhZG93Tm9TaGFkZXIgZXh0ZW5kcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICByZWFkb25seSBtZXNoID0gaW5qZWN0Tmd0UmVmPFRIUkVFLk1lc2g+KCk7XG4gICAgcmVhZG9ubHkgc3BvdExpZ2h0QXBpID0gaW5qZWN0KE5HVFNfU1BPVF9MSUdIVF9BUEkpO1xuXG4gICAgcmVhZG9ubHkgRG91YmxlU2lkZSA9IFRIUkVFLkRvdWJsZVNpZGU7XG5cbiAgICByZWFkb25seSBydW5JbkNvbnRleHQgPSBjcmVhdGVSdW5JbkNvbnRleHQoKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBkaXN0YW5jZTogMC40LCBhbHBoYVRlc3Q6IDAuNSwgd2lkdGg6IDUxMiwgaGVpZ2h0OiA1MTIgfSk7XG4gICAgICAgIHRoaXMuaG9sZCh0aGlzLnNlbGVjdCgnbWFwJyksIChtYXApID0+IHtcbiAgICAgICAgICAgIGlmIChtYXApIHtcbiAgICAgICAgICAgICAgICBtYXAud3JhcFMgPSBtYXAud3JhcFQgPSBUSFJFRS5SZXBlYXRXcmFwcGluZztcbiAgICAgICAgICAgICAgICBjaGVja1VwZGF0ZShtYXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgY29tbW9uRWZmZWN0ID0gdGhpcy5ydW5JbkNvbnRleHQoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGluamVjdFNoYWRvd01lc2hDb21tb24oXG4gICAgICAgICAgICAgICAgdGhpcy5zcG90TGlnaHRBcGkuc3BvdExpZ2h0LFxuICAgICAgICAgICAgICAgIHRoaXMubWVzaCxcbiAgICAgICAgICAgICAgICB0aGlzLmdldCgnd2lkdGgnKSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldCgnaGVpZ2h0JyksXG4gICAgICAgICAgICAgICAgdGhpcy5nZXQoJ2Rpc3RhbmNlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21tb25FZmZlY3QodGhpcyk7XG4gICAgfVxufVxuIl19
@@ -10,7 +10,7 @@ export class NgtsSpotLightShadow extends NgtsSpotLightShadowMeshInput {
10
10
  NgtsSpotLightShadow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsSpotLightShadow, deps: null, target: i0.ɵɵFactoryTarget.Component });
11
11
  NgtsSpotLightShadow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: NgtsSpotLightShadow, isStandalone: true, selector: "ngts-spot-light-shadow", usesInheritance: true, ngImport: i0, template: `
12
12
  <ngts-spot-light-shadow-shader
13
- *ngIf="!!get('shader')"
13
+ *ngIf="!!get('shader'); else noShader"
14
14
  [distance]="get('distance')"
15
15
  [shader]="get('shader')"
16
16
  [alphaTest]="get('alphaTest')"
@@ -19,15 +19,16 @@ NgtsSpotLightShadow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
19
19
  [width]="get('width')"
20
20
  [height]="get('height')"
21
21
  />
22
- <ngts-spot-light-shadow-no-shader
23
- *ngIf="!get('shader')"
24
- [distance]="get('distance')"
25
- [alphaTest]="get('alphaTest')"
26
- [scale]="get('scale')"
27
- [map]="get('map')"
28
- [width]="get('width')"
29
- [height]="get('height')"
30
- />
22
+ <ng-template #noShader>
23
+ <ngts-spot-light-shadow-no-shader
24
+ [distance]="get('distance')"
25
+ [alphaTest]="get('alphaTest')"
26
+ [scale]="get('scale')"
27
+ [map]="get('map')"
28
+ [width]="get('width')"
29
+ [height]="get('height')"
30
+ />
31
+ </ng-template>
31
32
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsSpotLightShadowShader, selector: "ngts-spot-light-shadow-shader" }, { kind: "component", type: NgtsSpotLightShadowNoShader, selector: "ngts-spot-light-shadow-no-shader" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
32
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsSpotLightShadow, decorators: [{
33
34
  type: Component,
@@ -36,7 +37,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
36
37
  standalone: true,
37
38
  template: `
38
39
  <ngts-spot-light-shadow-shader
39
- *ngIf="!!get('shader')"
40
+ *ngIf="!!get('shader'); else noShader"
40
41
  [distance]="get('distance')"
41
42
  [shader]="get('shader')"
42
43
  [alphaTest]="get('alphaTest')"
@@ -45,17 +46,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
45
46
  [width]="get('width')"
46
47
  [height]="get('height')"
47
48
  />
48
- <ngts-spot-light-shadow-no-shader
49
- *ngIf="!get('shader')"
50
- [distance]="get('distance')"
51
- [alphaTest]="get('alphaTest')"
52
- [scale]="get('scale')"
53
- [map]="get('map')"
54
- [width]="get('width')"
55
- [height]="get('height')"
56
- />
49
+ <ng-template #noShader>
50
+ <ngts-spot-light-shadow-no-shader
51
+ [distance]="get('distance')"
52
+ [alphaTest]="get('alphaTest')"
53
+ [scale]="get('scale')"
54
+ [map]="get('map')"
55
+ [width]="get('width')"
56
+ [height]="get('height')"
57
+ />
58
+ </ng-template>
57
59
  `,
58
60
  imports: [NgtsSpotLightShadowShader, NgtsSpotLightShadowNoShader, NgIf, NgtPush],
59
61
  }]
60
62
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC1zaGFkb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3BvdC1saWdodC9zcG90LWxpZ2h0LXNoYWRvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQTRCdkUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLDRCQUE0Qjs7Z0hBQXhELG1CQUFtQjtvR0FBbkIsbUJBQW1CLHlHQXZCbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBb0JULDREQUNTLHlCQUF5QiwwRUFBRSwyQkFBMkIsNkVBQUUsSUFBSTsyRkFFN0QsbUJBQW1CO2tCQTFCL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9CVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO2lCQUNuRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RQdXNoIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IH0gZnJvbSAnLi9zaGFkb3ctbWVzaC1pbnB1dCc7XG5pbXBvcnQgeyBOZ3RzU3BvdExpZ2h0U2hhZG93Tm9TaGFkZXIgfSBmcm9tICcuL3Nwb3QtbGlnaHQtc2hhZG93LW5vLXNoYWRlcic7XG5pbXBvcnQgeyBOZ3RzU3BvdExpZ2h0U2hhZG93U2hhZGVyIH0gZnJvbSAnLi9zcG90LWxpZ2h0LXNoYWRvdy1zaGFkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtc3BvdC1saWdodC1zaGFkb3cnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndHMtc3BvdC1saWdodC1zaGFkb3ctc2hhZGVyXG4gICAgICAgICAgICAqbmdJZj1cIiEhZ2V0KCdzaGFkZXInKVwiXG4gICAgICAgICAgICBbZGlzdGFuY2VdPVwiZ2V0KCdkaXN0YW5jZScpXCJcbiAgICAgICAgICAgIFtzaGFkZXJdPVwiZ2V0KCdzaGFkZXInKVwiXG4gICAgICAgICAgICBbYWxwaGFUZXN0XT1cImdldCgnYWxwaGFUZXN0JylcIlxuICAgICAgICAgICAgW3NjYWxlXT1cImdldCgnc2NhbGUnKVwiXG4gICAgICAgICAgICBbbWFwXT1cImdldCgnbWFwJylcIlxuICAgICAgICAgICAgW3dpZHRoXT1cImdldCgnd2lkdGgnKVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cImdldCgnaGVpZ2h0JylcIlxuICAgICAgICAvPlxuICAgICAgICA8bmd0cy1zcG90LWxpZ2h0LXNoYWRvdy1uby1zaGFkZXJcbiAgICAgICAgICAgICpuZ0lmPVwiIWdldCgnc2hhZGVyJylcIlxuICAgICAgICAgICAgW2Rpc3RhbmNlXT1cImdldCgnZGlzdGFuY2UnKVwiXG4gICAgICAgICAgICBbYWxwaGFUZXN0XT1cImdldCgnYWxwaGFUZXN0JylcIlxuICAgICAgICAgICAgW3NjYWxlXT1cImdldCgnc2NhbGUnKVwiXG4gICAgICAgICAgICBbbWFwXT1cImdldCgnbWFwJylcIlxuICAgICAgICAgICAgW3dpZHRoXT1cImdldCgnd2lkdGgnKVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cImdldCgnaGVpZ2h0JylcIlxuICAgICAgICAvPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndHNTcG90TGlnaHRTaGFkb3dTaGFkZXIsIE5ndHNTcG90TGlnaHRTaGFkb3dOb1NoYWRlciwgTmdJZiwgTmd0UHVzaF0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTcG90TGlnaHRTaGFkb3cgZXh0ZW5kcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IHt9XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC1zaGFkb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3BvdC1saWdodC9zcG90LWxpZ2h0LXNoYWRvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQTZCdkUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLDRCQUE0Qjs7Z0hBQXhELG1CQUFtQjtvR0FBbkIsbUJBQW1CLHlHQXhCbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXFCVCw0REFDUyx5QkFBeUIsMEVBQUUsMkJBQTJCLDZFQUFFLElBQUk7MkZBRTdELG1CQUFtQjtrQkEzQi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBcUJUO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7aUJBQ25GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndFB1c2ggfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoSW5wdXQgfSBmcm9tICcuL3NoYWRvdy1tZXNoLWlucHV0JztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRTaGFkb3dOb1NoYWRlciB9IGZyb20gJy4vc3BvdC1saWdodC1zaGFkb3ctbm8tc2hhZGVyJztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRTaGFkb3dTaGFkZXIgfSBmcm9tICcuL3Nwb3QtbGlnaHQtc2hhZG93LXNoYWRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zcG90LWxpZ2h0LXNoYWRvdycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0cy1zcG90LWxpZ2h0LXNoYWRvdy1zaGFkZXJcbiAgICAgICAgICAgICpuZ0lmPVwiISFnZXQoJ3NoYWRlcicpOyBlbHNlIG5vU2hhZGVyXCJcbiAgICAgICAgICAgIFtkaXN0YW5jZV09XCJnZXQoJ2Rpc3RhbmNlJylcIlxuICAgICAgICAgICAgW3NoYWRlcl09XCJnZXQoJ3NoYWRlcicpXCJcbiAgICAgICAgICAgIFthbHBoYVRlc3RdPVwiZ2V0KCdhbHBoYVRlc3QnKVwiXG4gICAgICAgICAgICBbc2NhbGVdPVwiZ2V0KCdzY2FsZScpXCJcbiAgICAgICAgICAgIFttYXBdPVwiZ2V0KCdtYXAnKVwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiZ2V0KCd3aWR0aCcpXCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiZ2V0KCdoZWlnaHQnKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9TaGFkZXI+XG4gICAgICAgICAgICA8bmd0cy1zcG90LWxpZ2h0LXNoYWRvdy1uby1zaGFkZXJcbiAgICAgICAgICAgICAgICBbZGlzdGFuY2VdPVwiZ2V0KCdkaXN0YW5jZScpXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUZXN0XT1cImdldCgnYWxwaGFUZXN0JylcIlxuICAgICAgICAgICAgICAgIFtzY2FsZV09XCJnZXQoJ3NjYWxlJylcIlxuICAgICAgICAgICAgICAgIFttYXBdPVwiZ2V0KCdtYXAnKVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cImdldCgnd2lkdGgnKVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJnZXQoJ2hlaWdodCcpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0c1Nwb3RMaWdodFNoYWRvd1NoYWRlciwgTmd0c1Nwb3RMaWdodFNoYWRvd05vU2hhZGVyLCBOZ0lmLCBOZ3RQdXNoXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1Nwb3RMaWdodFNoYWRvdyBleHRlbmRzIE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoSW5wdXQge31cbiJdfQ==
@@ -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, createRunInContext } from 'angular-three';
3
+ import { extend, NgtStore, getLocalState, NgtRxStore, injectNgtRef, NgtArgs, NgtRepeat, is, injectBeforeRender, NgtPush, injectNgtDestroy, injectNgtLoader, startWithUndefined, prepare, NgtPortal, NgtPortalContent, createRunInContext, checkUpdate } from 'angular-three';
4
4
  import { shaderMaterial, SpotLightMaterial } 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';
@@ -2640,10 +2640,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
2640
2640
  }] } });
2641
2641
 
2642
2642
  class NgtsSpotLightShadowMeshInput extends NgtRxStore {
2643
- constructor() {
2644
- super(...arguments);
2645
- this.cdr = inject(ChangeDetectorRef);
2646
- }
2647
2643
  set distance(distance) {
2648
2644
  this.set({ distance });
2649
2645
  }
@@ -2658,7 +2654,6 @@ class NgtsSpotLightShadowMeshInput extends NgtRxStore {
2658
2654
  }
2659
2655
  set shader(shader) {
2660
2656
  this.set({ shader });
2661
- this.cdr.detectChanges();
2662
2657
  }
2663
2658
  set width(width) {
2664
2659
  this.set({ width });
@@ -2731,12 +2726,17 @@ class NgtsSpotLightShadowNoShader extends NgtsSpotLightShadowMeshInput {
2731
2726
  this.mesh = injectNgtRef();
2732
2727
  this.spotLightApi = inject(NGTS_SPOT_LIGHT_API);
2733
2728
  this.DoubleSide = THREE.DoubleSide;
2734
- this.RepeatWrapping = THREE.RepeatWrapping;
2735
2729
  this.runInContext = createRunInContext();
2736
2730
  }
2737
2731
  initialize() {
2738
2732
  super.initialize();
2739
2733
  this.set({ distance: 0.4, alphaTest: 0.5, width: 512, height: 512 });
2734
+ this.hold(this.select('map'), (map) => {
2735
+ if (map) {
2736
+ map.wrapS = map.wrapT = THREE.RepeatWrapping;
2737
+ checkUpdate(map);
2738
+ }
2739
+ });
2740
2740
  }
2741
2741
  ngOnInit() {
2742
2742
  const commonEffect = this.runInContext(() => {
@@ -2750,19 +2750,16 @@ NgtsSpotLightShadowNoShader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
2750
2750
  <ngt-mesh [ref]="mesh" [scale]="get('scale')" [castShadow]="true">
2751
2751
  <ngt-plane-geometry />
2752
2752
  <ngt-mesh-basic-material
2753
- *ngIf="!!get('map')"
2754
2753
  [transparent]="true"
2755
2754
  [side]="DoubleSide"
2756
2755
  [alphaTest]="get('alphaTest')"
2757
- [alphaMap]="get('map')"
2756
+ [alphaMap]="key$('map') | ngtPush"
2758
2757
  [opacity]="spotLightApi.debug ? 1 : 0"
2759
2758
  >
2760
- <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapS" />
2761
- <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapT" />
2762
2759
  <ng-content />
2763
2760
  </ngt-mesh-basic-material>
2764
2761
  </ngt-mesh>
2765
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2762
+ `, isInline: true, dependencies: [{ kind: "pipe", type: NgtPush, name: "ngtPush" }] });
2766
2763
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsSpotLightShadowNoShader, decorators: [{
2767
2764
  type: Component,
2768
2765
  args: [{
@@ -2772,20 +2769,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
2772
2769
  <ngt-mesh [ref]="mesh" [scale]="get('scale')" [castShadow]="true">
2773
2770
  <ngt-plane-geometry />
2774
2771
  <ngt-mesh-basic-material
2775
- *ngIf="!!get('map')"
2776
2772
  [transparent]="true"
2777
2773
  [side]="DoubleSide"
2778
2774
  [alphaTest]="get('alphaTest')"
2779
- [alphaMap]="get('map')"
2775
+ [alphaMap]="key$('map') | ngtPush"
2780
2776
  [opacity]="spotLightApi.debug ? 1 : 0"
2781
2777
  >
2782
- <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapS" />
2783
- <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapT" />
2784
2778
  <ng-content />
2785
2779
  </ngt-mesh-basic-material>
2786
2780
  </ngt-mesh>
2787
2781
  `,
2788
- imports: [NgIf],
2782
+ imports: [NgtPush],
2789
2783
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
2790
2784
  }]
2791
2785
  }] });
@@ -2909,7 +2903,7 @@ class NgtsSpotLightShadow extends NgtsSpotLightShadowMeshInput {
2909
2903
  NgtsSpotLightShadow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsSpotLightShadow, deps: null, target: i0.ɵɵFactoryTarget.Component });
2910
2904
  NgtsSpotLightShadow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: NgtsSpotLightShadow, isStandalone: true, selector: "ngts-spot-light-shadow", usesInheritance: true, ngImport: i0, template: `
2911
2905
  <ngts-spot-light-shadow-shader
2912
- *ngIf="!!get('shader')"
2906
+ *ngIf="!!get('shader'); else noShader"
2913
2907
  [distance]="get('distance')"
2914
2908
  [shader]="get('shader')"
2915
2909
  [alphaTest]="get('alphaTest')"
@@ -2918,15 +2912,16 @@ NgtsSpotLightShadow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
2918
2912
  [width]="get('width')"
2919
2913
  [height]="get('height')"
2920
2914
  />
2921
- <ngts-spot-light-shadow-no-shader
2922
- *ngIf="!get('shader')"
2923
- [distance]="get('distance')"
2924
- [alphaTest]="get('alphaTest')"
2925
- [scale]="get('scale')"
2926
- [map]="get('map')"
2927
- [width]="get('width')"
2928
- [height]="get('height')"
2929
- />
2915
+ <ng-template #noShader>
2916
+ <ngts-spot-light-shadow-no-shader
2917
+ [distance]="get('distance')"
2918
+ [alphaTest]="get('alphaTest')"
2919
+ [scale]="get('scale')"
2920
+ [map]="get('map')"
2921
+ [width]="get('width')"
2922
+ [height]="get('height')"
2923
+ />
2924
+ </ng-template>
2930
2925
  `, isInline: true, dependencies: [{ kind: "component", type: NgtsSpotLightShadowShader, selector: "ngts-spot-light-shadow-shader" }, { kind: "component", type: NgtsSpotLightShadowNoShader, selector: "ngts-spot-light-shadow-no-shader" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2931
2926
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsSpotLightShadow, decorators: [{
2932
2927
  type: Component,
@@ -2935,7 +2930,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
2935
2930
  standalone: true,
2936
2931
  template: `
2937
2932
  <ngts-spot-light-shadow-shader
2938
- *ngIf="!!get('shader')"
2933
+ *ngIf="!!get('shader'); else noShader"
2939
2934
  [distance]="get('distance')"
2940
2935
  [shader]="get('shader')"
2941
2936
  [alphaTest]="get('alphaTest')"
@@ -2944,15 +2939,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
2944
2939
  [width]="get('width')"
2945
2940
  [height]="get('height')"
2946
2941
  />
2947
- <ngts-spot-light-shadow-no-shader
2948
- *ngIf="!get('shader')"
2949
- [distance]="get('distance')"
2950
- [alphaTest]="get('alphaTest')"
2951
- [scale]="get('scale')"
2952
- [map]="get('map')"
2953
- [width]="get('width')"
2954
- [height]="get('height')"
2955
- />
2942
+ <ng-template #noShader>
2943
+ <ngts-spot-light-shadow-no-shader
2944
+ [distance]="get('distance')"
2945
+ [alphaTest]="get('alphaTest')"
2946
+ [scale]="get('scale')"
2947
+ [map]="get('map')"
2948
+ [width]="get('width')"
2949
+ [height]="get('height')"
2950
+ />
2951
+ </ng-template>
2956
2952
  `,
2957
2953
  imports: [NgtsSpotLightShadowShader, NgtsSpotLightShadowNoShader, NgIf, NgtPush],
2958
2954
  }]