angular-three-soba 1.1.0 → 1.3.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 (59) hide show
  1. package/cameras/README.md +3 -0
  2. package/cameras/index.d.ts +3 -0
  3. package/cameras/lib/camera/camera-content.d.ts +13 -0
  4. package/cameras/lib/camera/camera.d.ts +19 -0
  5. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +17 -0
  6. package/cameras/lib/perspective-camera/perspective-camera.d.ts +9 -0
  7. package/esm2020/cameras/angular-three-soba-cameras.mjs +5 -0
  8. package/esm2020/cameras/index.mjs +4 -0
  9. package/esm2020/cameras/lib/camera/camera-content.mjs +20 -0
  10. package/esm2020/cameras/lib/camera/camera.mjs +74 -0
  11. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +92 -0
  12. package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +46 -0
  13. package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +3 -3
  14. package/esm2020/loaders/lib/loader/loader.mjs +3 -3
  15. package/esm2020/misc/index.mjs +2 -1
  16. package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +3 -3
  17. package/esm2020/misc/lib/fbo/fbo.mjs +38 -0
  18. package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +3 -3
  19. package/esm2020/performance/lib/adaptive/adaptive-events.mjs +3 -3
  20. package/esm2020/performance/lib/detailed/detailed.mjs +3 -3
  21. package/esm2020/performance/lib/stats/stats.mjs +3 -3
  22. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +20 -18
  23. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +12 -9
  24. package/esm2020/staging/lib/bounds/bounds.mjs +3 -3
  25. package/esm2020/staging/lib/center/center.mjs +3 -3
  26. package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +3 -3
  27. package/esm2020/staging/lib/environment/environment-cube.mjs +3 -3
  28. package/esm2020/staging/lib/environment/environment-ground.mjs +3 -3
  29. package/esm2020/staging/lib/environment/environment-inputs.mjs +3 -3
  30. package/esm2020/staging/lib/environment/environment-map.mjs +3 -3
  31. package/esm2020/staging/lib/environment/environment-portal.mjs +3 -3
  32. package/esm2020/staging/lib/environment/environment.mjs +6 -6
  33. package/esm2020/staging/lib/float/float.mjs +3 -3
  34. package/esm2020/staging/lib/sky/sky.mjs +3 -3
  35. package/esm2020/staging/lib/sparkles/sparkles.mjs +3 -3
  36. package/esm2020/staging/lib/stage/stage.mjs +6 -6
  37. package/esm2020/staging/lib/stars/stars.mjs +3 -3
  38. package/fesm2015/angular-three-soba-cameras.mjs +224 -0
  39. package/fesm2015/angular-three-soba-cameras.mjs.map +1 -0
  40. package/fesm2015/angular-three-soba-controls.mjs +3 -3
  41. package/fesm2015/angular-three-soba-loaders.mjs +3 -3
  42. package/fesm2015/angular-three-soba-misc.mjs +37 -5
  43. package/fesm2015/angular-three-soba-misc.mjs.map +1 -1
  44. package/fesm2015/angular-three-soba-performance.mjs +12 -12
  45. package/fesm2015/angular-three-soba-staging.mjs +77 -72
  46. package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
  47. package/fesm2020/angular-three-soba-cameras.mjs +224 -0
  48. package/fesm2020/angular-three-soba-cameras.mjs.map +1 -0
  49. package/fesm2020/angular-three-soba-controls.mjs +3 -3
  50. package/fesm2020/angular-three-soba-loaders.mjs +3 -3
  51. package/fesm2020/angular-three-soba-misc.mjs +41 -5
  52. package/fesm2020/angular-three-soba-misc.mjs.map +1 -1
  53. package/fesm2020/angular-three-soba-performance.mjs +12 -12
  54. package/fesm2020/angular-three-soba-staging.mjs +77 -72
  55. package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
  56. package/misc/index.d.ts +1 -0
  57. package/misc/lib/fbo/fbo.d.ts +13 -0
  58. package/package.json +10 -2
  59. package/plugin/package.json +1 -1
@@ -40,9 +40,9 @@ export class NgtsStageRefit {
40
40
  }
41
41
  }
42
42
  }
43
- NgtsStageRefit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
44
- NgtsStageRefit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: "radius", adjustCamera: "adjustCamera" }, usesOnChanges: true, ngImport: i0 });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsStageRefit, decorators: [{
43
+ NgtsStageRefit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
44
+ 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 });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStageRefit, decorators: [{
46
46
  type: Directive,
47
47
  args: [{
48
48
  selector: 'ngts-stage-refit',
@@ -130,8 +130,8 @@ export class NgtsStage extends NgtRxStore {
130
130
  this.centered.emit(props);
131
131
  }
132
132
  }
133
- NgtsStage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsStage, deps: null, target: i0.ɵɵFactoryTarget.Component });
134
- NgtsStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { preset: "preset", shadows: "shadows", adjustCamera: "adjustCamera", environment: "environment", intensity: "intensity", center: "center" }, outputs: { centered: "centered" }, usesInheritance: true, ngImport: i0, template: `
133
+ NgtsStage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStage, deps: null, target: i0.ɵɵFactoryTarget.Component });
134
+ NgtsStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { preset: "preset", shadows: "shadows", adjustCamera: "adjustCamera", environment: "environment", intensity: "intensity", center: "center" }, outputs: { centered: "centered" }, usesInheritance: true, ngImport: i0, template: `
135
135
  <ngt-ambient-light [intensity]="get('intensity')! / 3" />
136
136
  <ngt-spot-light
137
137
  [penumbra]="1"
@@ -232,7 +232,7 @@ NgtsStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
232
232
  [encoding]="get('environmentInfo').encoding"
233
233
  />
234
234
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsBounds, selector: "ngts-bounds", inputs: ["boundsRef", "damping", "fit", "clip", "observe", "margin", "eps"], outputs: ["fitted"] }, { kind: "directive", type: NgtsStageRefit, selector: "ngts-stage-refit", inputs: ["radius", "adjustCamera"] }, { kind: "component", type: NgtsCenter, selector: "ngts-center", inputs: ["centerRef", "top", "right", "bottom", "left", "front", "back", "disableX", "disableY", "disableZ", "disabled", "precise"], outputs: ["centered"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtsContactShadows, selector: "ngts-contact-shadows", inputs: ["contactShadowsRef", "opacity", "width", "height", "blur", "far", "smooth", "resolution", "frames", "scale", "color", "depthWrite", "renderOrder"] }, { kind: "component", type: NgtsAccumulativeShadows, selector: "ngts-accumulative-shadows", inputs: ["frames", "blend", "limit", "scale", "temporal", "opacity", "alphaTest", "color", "colorBlend", "resolution", "toneMapped"] }, { kind: "component", type: NgtsRandomizedLights, selector: "ngts-randomized-lights", inputs: ["lightsRef", "frames", "position", "radius", "amount", "intensity", "ambient", "castShadow", "bias", "mapSize", "size", "near", "far"] }, { kind: "component", type: NgtsEnvironment, selector: "ngts-environment" }] });
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsStage, decorators: [{
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStage, decorators: [{
236
236
  type: Component,
237
237
  args: [{
238
238
  selector: 'ngts-stage',
@@ -104,8 +104,8 @@ export class NgtsStars extends NgtRxStore {
104
104
  this.material.uniforms['time'].value = clock.getElapsedTime() * this.get('speed');
105
105
  }
106
106
  }
107
- NgtsStars.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component });
108
- NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", 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: `
107
+ NgtsStars.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component });
108
+ 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: `
109
109
  <ngt-points [ref]="starsRef">
110
110
  <ngt-buffer-geometry>
111
111
  <ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
@@ -124,7 +124,7 @@ NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
124
124
  </ngt-primitive>
125
125
  </ngt-points>
126
126
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsStars, decorators: [{
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStars, decorators: [{
128
128
  type: Component,
129
129
  args: [{
130
130
  selector: 'ngts-stars',
@@ -0,0 +1,224 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, TemplateRef, Directive, Input, Component, CUSTOM_ELEMENTS_SCHEMA, ContentChild } from '@angular/core';
3
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
4
+ import { NgtRxStore, injectNgtRef, NgtStore, extend, NgtPush } from 'angular-three';
5
+ import { map, combineLatest } from 'rxjs';
6
+ import { OrthographicCamera, Group, PerspectiveCamera } from 'three';
7
+ import { injectNgtsFBO } from 'angular-three-soba/misc';
8
+
9
+ class NgtsCameraContent {
10
+ constructor() {
11
+ this.template = inject(TemplateRef);
12
+ this.ngtsCameraContent = '';
13
+ }
14
+ static ngTemplateContextGuard(_, ctx) {
15
+ return true;
16
+ }
17
+ }
18
+ NgtsCameraContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsCameraContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
+ NgtsCameraContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsCameraContent, isStandalone: true, selector: "ng-template[ngtsCameraContent]", inputs: { ngtsCameraContent: "ngtsCameraContent" }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsCameraContent, decorators: [{
21
+ type: Directive,
22
+ args: [{ selector: 'ng-template[ngtsCameraContent]', standalone: true }]
23
+ }], propDecorators: { ngtsCameraContent: [{
24
+ type: Input
25
+ }] } });
26
+
27
+ class NgtsCamera extends NgtRxStore {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.cameraRef = injectNgtRef();
31
+ this.store = inject(NgtStore);
32
+ this.fboRef = injectNgtsFBO(() => this.select('resolution').pipe(map((resolution) => ({ width: resolution }))));
33
+ }
34
+ set makeDefault(makeDefault) {
35
+ this.set({ makeDefault });
36
+ }
37
+ set manual(manual) {
38
+ this.set({ manual });
39
+ }
40
+ set frames(frames) {
41
+ this.set({ frames });
42
+ }
43
+ set resolution(resolution) {
44
+ this.set({ resolution });
45
+ }
46
+ set envMap(envMap) {
47
+ this.set({ envMap });
48
+ }
49
+ initialize() {
50
+ super.initialize();
51
+ this.set({ resolution: 256, frames: Infinity, makeDefault: false, manual: false });
52
+ }
53
+ ngOnInit() {
54
+ this.hold(this.cameraRef.$, (camera) => {
55
+ camera.updateProjectionMatrix();
56
+ this.setDefaultCamera();
57
+ this.updateProjectionMatrix();
58
+ });
59
+ }
60
+ setDefaultCamera() {
61
+ this.effect(combineLatest([this.cameraRef.$, this.select('makeDefault')]), ([camera, makeDefault]) => {
62
+ if (makeDefault) {
63
+ const { camera: oldCamera } = this.store.get();
64
+ this.store.set({ camera });
65
+ return () => {
66
+ this.store.set({ camera: oldCamera });
67
+ };
68
+ }
69
+ });
70
+ }
71
+ updateProjectionMatrix() {
72
+ this.effect(combineLatest([this.cameraRef.$, this.select('manual')]), ([camera, manual]) => {
73
+ if (!manual && camera)
74
+ camera.updateProjectionMatrix();
75
+ });
76
+ }
77
+ }
78
+ NgtsCamera.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsCamera, deps: null, target: i0.ɵɵFactoryTarget.Directive });
79
+ NgtsCamera.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsCamera, inputs: { makeDefault: "makeDefault", manual: "manual", frames: "frames", resolution: "resolution", envMap: "envMap", cameraRef: "cameraRef" }, usesInheritance: true, ngImport: i0 });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsCamera, decorators: [{
81
+ type: Directive
82
+ }], propDecorators: { makeDefault: [{
83
+ type: Input
84
+ }], manual: [{
85
+ type: Input
86
+ }], frames: [{
87
+ type: Input
88
+ }], resolution: [{
89
+ type: Input
90
+ }], envMap: [{
91
+ type: Input
92
+ }], cameraRef: [{
93
+ type: Input
94
+ }] } });
95
+
96
+ extend({ OrthographicCamera, Group });
97
+ class NgtsOrthographicCamera extends NgtsCamera {
98
+ constructor() {
99
+ super(...arguments);
100
+ this.left$ = combineLatest([this.select('left'), this.store.select('size')]).pipe(map(([left, size]) => left !== null && left !== void 0 ? left : size.width / -2));
101
+ this.right$ = combineLatest([this.select('right'), this.store.select('size')]).pipe(map(([right, size]) => right !== null && right !== void 0 ? right : size.width / 2));
102
+ this.top$ = combineLatest([this.select('top'), this.store.select('size')]).pipe(map(([top, size]) => top !== null && top !== void 0 ? top : size.height / 2));
103
+ this.bottom$ = combineLatest([this.select('bottom'), this.store.select('size')]).pipe(map(([bottom, size]) => bottom !== null && bottom !== void 0 ? bottom : size.height / -2));
104
+ }
105
+ set left(left) {
106
+ this.set({ left });
107
+ }
108
+ set right(right) {
109
+ this.set({ right });
110
+ }
111
+ set top(top) {
112
+ this.set({ top });
113
+ }
114
+ set bottom(bottom) {
115
+ this.set({ bottom });
116
+ }
117
+ initialize() {
118
+ super.initialize();
119
+ this.set({ left: 0, right: 0, top: 0, bottom: 0 });
120
+ }
121
+ }
122
+ NgtsOrthographicCamera.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsOrthographicCamera, deps: null, target: i0.ɵɵFactoryTarget.Component });
123
+ NgtsOrthographicCamera.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsOrthographicCamera, isStandalone: true, selector: "ngts-orthographic-camera", inputs: { left: "left", right: "right", top: "top", bottom: "bottom" }, queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
124
+ <ngt-orthographic-camera
125
+ ngtCompound
126
+ [ref]="cameraRef"
127
+ [left]="left$ | ngtPush"
128
+ [right]="right$ | ngtPush"
129
+ [top]="top$ | ngtPush"
130
+ [bottom]="bottom$ | ngtPush"
131
+ >
132
+ <ng-container
133
+ *ngIf="cameraContent && !cameraContent.ngtsCameraContent"
134
+ [ngTemplateOutlet]="cameraContent.template"
135
+ />
136
+ </ngt-orthographic-camera>
137
+ <ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
138
+ <ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
139
+ </ngt-group>
140
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsOrthographicCamera, decorators: [{
142
+ type: Component,
143
+ args: [{
144
+ selector: 'ngts-orthographic-camera',
145
+ standalone: true,
146
+ template: `
147
+ <ngt-orthographic-camera
148
+ ngtCompound
149
+ [ref]="cameraRef"
150
+ [left]="left$ | ngtPush"
151
+ [right]="right$ | ngtPush"
152
+ [top]="top$ | ngtPush"
153
+ [bottom]="bottom$ | ngtPush"
154
+ >
155
+ <ng-container
156
+ *ngIf="cameraContent && !cameraContent.ngtsCameraContent"
157
+ [ngTemplateOutlet]="cameraContent.template"
158
+ />
159
+ </ngt-orthographic-camera>
160
+ <ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
161
+ <ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
162
+ </ngt-group>
163
+ `,
164
+ imports: [NgIf, NgTemplateOutlet, NgtPush],
165
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
166
+ }]
167
+ }], propDecorators: { cameraContent: [{
168
+ type: ContentChild,
169
+ args: [NgtsCameraContent]
170
+ }], left: [{
171
+ type: Input
172
+ }], right: [{
173
+ type: Input
174
+ }], top: [{
175
+ type: Input
176
+ }], bottom: [{
177
+ type: Input
178
+ }] } });
179
+
180
+ extend({ PerspectiveCamera, Group });
181
+ class NgtsPerspectiveCamera extends NgtsCamera {
182
+ }
183
+ NgtsPerspectiveCamera.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsPerspectiveCamera, deps: null, target: i0.ɵɵFactoryTarget.Component });
184
+ NgtsPerspectiveCamera.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsPerspectiveCamera, isStandalone: true, selector: "ngts-perspective-camera", queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
185
+ <ngt-perspective-camera [ref]="cameraRef" ngtCompound>
186
+ <ng-container
187
+ *ngIf="cameraContent && !cameraContent.ngtsCameraContent"
188
+ [ngTemplateOutlet]="cameraContent.template"
189
+ />
190
+ </ngt-perspective-camera>
191
+ <ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
192
+ <ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
193
+ </ngt-group>
194
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsPerspectiveCamera, decorators: [{
196
+ type: Component,
197
+ args: [{
198
+ selector: 'ngts-perspective-camera',
199
+ standalone: true,
200
+ template: `
201
+ <ngt-perspective-camera [ref]="cameraRef" ngtCompound>
202
+ <ng-container
203
+ *ngIf="cameraContent && !cameraContent.ngtsCameraContent"
204
+ [ngTemplateOutlet]="cameraContent.template"
205
+ />
206
+ </ngt-perspective-camera>
207
+ <ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
208
+ <ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
209
+ </ngt-group>
210
+ `,
211
+ imports: [NgIf, NgTemplateOutlet],
212
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
213
+ }]
214
+ }], propDecorators: { cameraContent: [{
215
+ type: ContentChild,
216
+ args: [NgtsCameraContent]
217
+ }] } });
218
+
219
+ /**
220
+ * Generated bundle index. Do not edit.
221
+ */
222
+
223
+ export { NgtsCameraContent, NgtsOrthographicCamera, NgtsPerspectiveCamera };
224
+ //# sourceMappingURL=angular-three-soba-cameras.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular-three-soba-cameras.mjs","sources":["../../../../libs/angular-three-soba/cameras/src/lib/camera/camera-content.ts","../../../../libs/angular-three-soba/cameras/src/lib/camera/camera.ts","../../../../libs/angular-three-soba/cameras/src/lib/orthographic-camera/orthographic-camera.ts","../../../../libs/angular-three-soba/cameras/src/lib/perspective-camera/perspective-camera.ts","../../../../libs/angular-three-soba/cameras/src/angular-three-soba-cameras.ts"],"sourcesContent":["import { Directive, inject, Input, TemplateRef } from '@angular/core';\nimport * as THREE from 'three';\n\n@Directive({ selector: 'ng-template[ngtsCameraContent]', standalone: true })\nexport class NgtsCameraContent {\n readonly template = inject(TemplateRef);\n @Input() ngtsCameraContent: boolean | '' = '';\n\n static ngTemplateContextGuard(\n _: NgtsCameraContent,\n ctx: unknown\n ): ctx is { target: THREE.WebGLRenderTarget; group?: THREE.Group } {\n return true;\n }\n}\n","import { Directive, inject, Input, OnInit } from '@angular/core';\nimport { injectNgtRef, NgtCamera, NgtRxStore, NgtStore } from 'angular-three';\nimport { injectNgtsFBO } from 'angular-three-soba/misc';\nimport { combineLatest, map } from 'rxjs';\n\n@Directive()\nexport abstract class NgtsCamera<TCamera extends NgtCamera> extends NgtRxStore implements OnInit {\n @Input() set makeDefault(makeDefault: boolean) {\n this.set({ makeDefault });\n }\n\n @Input() set manual(manual: boolean) {\n this.set({ manual });\n }\n\n @Input() set frames(frames: number) {\n this.set({ frames });\n }\n\n @Input() set resolution(resolution: number) {\n this.set({ resolution });\n }\n\n @Input() set envMap(envMap: THREE.Texture) {\n this.set({ envMap });\n }\n\n @Input() cameraRef = injectNgtRef<TCamera>();\n\n protected readonly store = inject(NgtStore);\n readonly fboRef = injectNgtsFBO(() => this.select('resolution').pipe(map((resolution) => ({ width: resolution }))));\n\n override initialize() {\n super.initialize();\n this.set({ resolution: 256, frames: Infinity, makeDefault: false, manual: false });\n }\n\n ngOnInit() {\n this.hold(this.cameraRef.$, (camera) => {\n camera.updateProjectionMatrix();\n this.setDefaultCamera();\n this.updateProjectionMatrix();\n });\n }\n\n private setDefaultCamera() {\n this.effect(combineLatest([this.cameraRef.$, this.select('makeDefault')]), ([camera, makeDefault]) => {\n if (makeDefault) {\n const { camera: oldCamera } = this.store.get();\n this.store.set({ camera });\n return () => {\n this.store.set({ camera: oldCamera });\n };\n }\n });\n }\n\n private updateProjectionMatrix() {\n this.effect(combineLatest([this.cameraRef.$, this.select('manual')]), ([camera, manual]) => {\n if (!manual && camera) camera.updateProjectionMatrix();\n });\n }\n}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\nimport { extend, NgtPush } from 'angular-three';\nimport { combineLatest, map } from 'rxjs';\nimport { Group, OrthographicCamera } from 'three';\nimport { NgtsCamera } from '../camera/camera';\nimport { NgtsCameraContent } from '../camera/camera-content';\n\nextend({ OrthographicCamera, Group });\n\n@Component({\n selector: 'ngts-orthographic-camera',\n standalone: true,\n template: `\n <ngt-orthographic-camera\n ngtCompound\n [ref]=\"cameraRef\"\n [left]=\"left$ | ngtPush\"\n [right]=\"right$ | ngtPush\"\n [top]=\"top$ | ngtPush\"\n [bottom]=\"bottom$ | ngtPush\"\n >\n <ng-container\n *ngIf=\"cameraContent && !cameraContent.ngtsCameraContent\"\n [ngTemplateOutlet]=\"cameraContent.template\"\n />\n </ngt-orthographic-camera>\n <ngt-group #group *ngIf=\"cameraContent && cameraContent.ngtsCameraContent\">\n <ng-container *ngTemplateOutlet=\"cameraContent.template; context: { fbo: fboRef.nativeElement, group }\" />\n </ngt-group>\n `,\n imports: [NgIf, NgTemplateOutlet, NgtPush],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrthographicCamera extends NgtsCamera<THREE.OrthographicCamera> {\n @ContentChild(NgtsCameraContent) cameraContent?: NgtsCameraContent;\n\n @Input() set left(left: number) {\n this.set({ left });\n }\n\n @Input() set right(right: number) {\n this.set({ right });\n }\n\n @Input() set top(top: number) {\n this.set({ top });\n }\n\n @Input() set bottom(bottom: number) {\n this.set({ bottom });\n }\n\n override initialize(): void {\n super.initialize();\n this.set({ left: 0, right: 0, top: 0, bottom: 0 });\n }\n\n readonly left$ = combineLatest([this.select('left'), this.store.select('size')]).pipe(\n map(([left, size]) => left ?? size.width / -2)\n );\n\n readonly right$ = combineLatest([this.select('right'), this.store.select('size')]).pipe(\n map(([right, size]) => right ?? size.width / 2)\n );\n\n readonly top$ = combineLatest([this.select('top'), this.store.select('size')]).pipe(\n map(([top, size]) => top ?? size.height / 2)\n );\n\n readonly bottom$ = combineLatest([this.select('bottom'), this.store.select('size')]).pipe(\n map(([bottom, size]) => bottom ?? size.height / -2)\n );\n}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { extend } from 'angular-three';\nimport { Group, PerspectiveCamera } from 'three';\nimport { NgtsCamera } from '../camera/camera';\nimport { NgtsCameraContent } from '../camera/camera-content';\n\nextend({ PerspectiveCamera, Group });\n\n@Component({\n selector: 'ngts-perspective-camera',\n standalone: true,\n template: `\n <ngt-perspective-camera [ref]=\"cameraRef\" ngtCompound>\n <ng-container\n *ngIf=\"cameraContent && !cameraContent.ngtsCameraContent\"\n [ngTemplateOutlet]=\"cameraContent.template\"\n />\n </ngt-perspective-camera>\n <ngt-group #group *ngIf=\"cameraContent && cameraContent.ngtsCameraContent\">\n <ng-container *ngTemplateOutlet=\"cameraContent.template; context: { fbo: fboRef.nativeElement, group }\" />\n </ngt-group>\n `,\n imports: [NgIf, NgTemplateOutlet],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsPerspectiveCamera extends NgtsCamera<PerspectiveCamera> {\n @ContentChild(NgtsCameraContent) cameraContent?: NgtsCameraContent;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAIa,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEa,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/B,QAAA,IAAiB,CAAA,iBAAA,GAAiB,EAAE,CAAC;KAQjD;AANG,IAAA,OAAO,sBAAsB,CACzB,CAAoB,EACpB,GAAY,EAAA;AAEZ,QAAA,OAAO,IAAI,CAAC;KACf;;8GATQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,SAAS;YAAC,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,gCAAgC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;8BAG9D,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;;;ACAJ,MAAgB,UAAsC,SAAQ,UAAU,CAAA;AAD9E,IAAA,WAAA,GAAA;;AAsBa,QAAA,IAAS,CAAA,SAAA,GAAG,YAAY,EAAW,CAAC;AAE1B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,MAAM,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAgCvH;IAvDG,IAAa,WAAW,CAAC,WAAoB,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KAC7B;IAED,IAAa,MAAM,CAAC,MAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,MAAM,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAED,IAAa,UAAU,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,MAAM,CAAC,MAAqB,EAAA;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAOQ,UAAU,GAAA;QACf,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;KACtF;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,KAAI;YACnC,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAClC,SAAC,CAAC,CAAC;KACN;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,KAAI;AACjG,YAAA,IAAI,WAAW,EAAE;AACb,gBAAA,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3B,gBAAA,OAAO,MAAK;oBACR,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC1C,iBAAC,CAAC;AACL,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IAEO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,KAAI;YACvF,IAAI,CAAC,MAAM,IAAI,MAAM;gBAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC3D,SAAC,CAAC,CAAC;KACN;;uGAvDiB,UAAU,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;8BAEO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;ACnBV,MAAM,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;AA0BhC,MAAO,sBAAuB,SAAQ,UAAoC,CAAA;AAxBhF,IAAA,WAAA,GAAA;;QAgDa,IAAK,CAAA,KAAA,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CACjF,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,IAAI,GAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CACjD,CAAC;QAEO,IAAM,CAAA,MAAA,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CACnF,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAClD,CAAC;QAEO,IAAI,CAAA,IAAA,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAH,GAAG,GAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/C,CAAC;QAEO,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CACrF,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,MAAM,GAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CACtD,CAAC;KACL;IApCG,IAAa,IAAI,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACtB;IAED,IAAa,KAAK,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvB;IAED,IAAa,GAAG,CAAC,GAAW,EAAA;AACxB,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACrB;IAED,IAAa,MAAM,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACxB;IAEQ,UAAU,GAAA;QACf,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;KACtD;;mHAtBQ,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACjB,iBAAiB,EAtBrB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,OAAO,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGhC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAxBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,IAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC;oBAC1C,OAAO,EAAE,CAAC,sBAAsB,CAAC;iBACpC,CAAA;8BAEoC,aAAa,EAAA,CAAA;sBAA7C,YAAY;uBAAC,iBAAiB,CAAA;gBAElB,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAIO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAIO,GAAG,EAAA,CAAA;sBAAf,KAAK;gBAIO,MAAM,EAAA,CAAA;sBAAlB,KAAK;;;AC1CV,MAAM,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;AAmB/B,MAAO,qBAAsB,SAAQ,UAA6B,CAAA;;kHAA3D,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAChB,iBAAiB,EAfrB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;KAUT,EACS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGvB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;AAUT,IAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC;oBACjC,OAAO,EAAE,CAAC,sBAAsB,CAAC;iBACpC,CAAA;8BAEoC,aAAa,EAAA,CAAA;sBAA7C,YAAY;uBAAC,iBAAiB,CAAA;;;AC3BnC;;AAEG;;;;"}
@@ -108,11 +108,11 @@ class NgtsOrbitControls extends NgtRxStore {
108
108
  });
109
109
  }
110
110
  }
111
- NgtsOrbitControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
- NgtsOrbitControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping" }, outputs: { change: "change", start: "start", end: "end" }, usesInheritance: true, ngImport: i0, template: `
111
+ NgtsOrbitControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
+ NgtsOrbitControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping" }, outputs: { change: "change", start: "start", end: "end" }, usesInheritance: true, ngImport: i0, template: `
113
113
  <ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
114
114
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsOrbitControls, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsOrbitControls, decorators: [{
116
116
  type: Component,
117
117
  args: [{
118
118
  selector: 'ngts-orbit-controls',
@@ -137,8 +137,8 @@ class NgtsLoader extends NgtRxStore {
137
137
  });
138
138
  }
139
139
  }
140
- NgtsLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsLoader, deps: null, target: i0.ɵɵFactoryTarget.Component });
141
- NgtsLoader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgtsLoader, isStandalone: true, selector: "ngts-loader", inputs: { containerClass: "containerClass", innerClass: "innerClass", barClass: "barClass", dataClass: "dataClass", dataInterpolation: "dataInterpolation", initialState: "initialState" }, viewQueries: [{ propertyName: "progressSpanRef", first: true, predicate: ["progressSpanRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
140
+ NgtsLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsLoader, deps: null, target: i0.ɵɵFactoryTarget.Component });
141
+ NgtsLoader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsLoader, isStandalone: true, selector: "ngts-loader", inputs: { containerClass: "containerClass", innerClass: "innerClass", barClass: "barClass", dataClass: "dataClass", dataInterpolation: "dataInterpolation", initialState: "initialState" }, viewQueries: [{ propertyName: "progressSpanRef", first: true, predicate: ["progressSpanRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
142
142
  <ng-container *ngIf="vm$ | ngtPush as vm">
143
143
  <div
144
144
  *ngIf="vm.shown"
@@ -159,7 +159,7 @@ NgtsLoader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
159
159
  </div>
160
160
  </ng-container>
161
161
  `, isInline: true, styles: [".ngts-loader-container{--ngts-loader-container-opacity: 0;position:absolute;top:0;left:0;width:100%;height:100%;background:#171717;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease;z-index:1000;opacity:var(--ngts-loader-container-opacity)}.ngts-loader-inner{width:100px;height:3px;background:#272727;text-align:center}.ngts-loader-bar{--ngts-loader-bar-scale: 0;height:3px;width:100px;background:white;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;margin-top:.8em;color:#f0f0f0;font-size:.6em;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Helvetica Neue,Helvetica,Arial,Roboto,Ubuntu,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsLoader, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsLoader, decorators: [{
163
163
  type: Component,
164
164
  args: [{ selector: 'ngts-loader', standalone: true, template: `
165
165
  <ng-container *ngIf="vm$ | ngtPush as vm">
@@ -1,6 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Directive } from '@angular/core';
3
- import { NgtRxStore, NgtStore } from 'angular-three';
3
+ import { NgtRxStore, NgtStore, injectNgtRef, injectNgtDestroy, safeDetectChanges } from 'angular-three';
4
+ import { __rest } from 'tslib';
5
+ import { isObservable, of, takeUntil } from 'rxjs';
6
+ import * as THREE from 'three';
4
7
 
5
8
  class NgtsBakeShadows extends NgtRxStore {
6
9
  constructor() {
@@ -17,16 +20,45 @@ class NgtsBakeShadows extends NgtRxStore {
17
20
  });
18
21
  }
19
22
  }
20
- NgtsBakeShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsBakeShadows, deps: null, target: i0.ɵɵFactoryTarget.Directive });
21
- NgtsBakeShadows.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", usesInheritance: true, ngImport: i0 });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsBakeShadows, decorators: [{
23
+ NgtsBakeShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsBakeShadows, deps: null, target: i0.ɵɵFactoryTarget.Directive });
24
+ NgtsBakeShadows.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", usesInheritance: true, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsBakeShadows, decorators: [{
23
26
  type: Directive,
24
27
  args: [{ selector: 'ngts-bake-shadows', standalone: true }]
25
28
  }] });
26
29
 
30
+ function injectNgtsFBO(paramsFactory) {
31
+ const store = inject(NgtStore);
32
+ const targetRef = injectNgtRef();
33
+ const { destroy$, cdr } = injectNgtDestroy(() => {
34
+ var _a;
35
+ (_a = targetRef.nativeElement) === null || _a === void 0 ? void 0 : _a.dispose();
36
+ });
37
+ const params = paramsFactory({});
38
+ const params$ = isObservable(params) ? params : of(params);
39
+ params$.pipe(takeUntil(destroy$)).subscribe(({ width, height, settings }) => {
40
+ const { gl, size, viewport } = store.get();
41
+ const _width = typeof width === 'number' ? width : size.width * viewport.dpr;
42
+ const _height = typeof height === 'number' ? height : size.height * viewport.dpr;
43
+ const _settings = (typeof width === 'number' ? settings : width) || {};
44
+ const { samples } = _settings, targetSettings = __rest(_settings, ["samples"]);
45
+ if (!targetRef.nativeElement) {
46
+ const target = new THREE.WebGLRenderTarget(_width, _height, Object.assign({ minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, encoding: gl.outputEncoding, type: THREE.HalfFloatType }, targetSettings));
47
+ if (samples)
48
+ target.samples = samples;
49
+ targetRef.nativeElement = target;
50
+ }
51
+ targetRef.nativeElement.setSize(_width, _height);
52
+ if (samples)
53
+ targetRef.nativeElement.samples = samples;
54
+ safeDetectChanges(cdr);
55
+ });
56
+ return targetRef;
57
+ }
58
+
27
59
  /**
28
60
  * Generated bundle index. Do not edit.
29
61
  */
30
62
 
31
- export { NgtsBakeShadows };
63
+ export { NgtsBakeShadows, injectNgtsFBO };
32
64
  //# sourceMappingURL=angular-three-soba-misc.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-misc.mjs","sources":["../../../../libs/angular-three-soba/misc/src/lib/bake-shadows/bake-shadows.ts","../../../../libs/angular-three-soba/misc/src/angular-three-soba-misc.ts"],"sourcesContent":["import { Directive, inject, OnInit } from '@angular/core';\nimport { NgtRxStore, NgtStore } from 'angular-three';\n\n@Directive({ selector: 'ngts-bake-shadows', standalone: true })\nexport class NgtsBakeShadows extends NgtRxStore implements OnInit {\n private readonly store = inject(NgtStore);\n\n ngOnInit() {\n this.effect(this.store.select('gl'), (gl) => {\n gl.shadowMap.autoUpdate = false;\n gl.shadowMap.needsUpdate = true;\n\n return () => {\n gl.shadowMap.autoUpdate = gl.shadowMap.needsUpdate = true;\n };\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAIM,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAD/C,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;KAY7C;IAVG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAI;AACxC,YAAA,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;AAChC,YAAA,EAAE,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;AAEhC,YAAA,OAAO,MAAK;AACR,gBAAA,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;AAC9D,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;KACN;;4GAZQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,SAAS;YAAC,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;;;ACH9D;;AAEG;;;;"}
1
+ {"version":3,"file":"angular-three-soba-misc.mjs","sources":["../../../../libs/angular-three-soba/misc/src/lib/bake-shadows/bake-shadows.ts","../../../../libs/angular-three-soba/misc/src/lib/fbo/fbo.ts","../../../../libs/angular-three-soba/misc/src/angular-three-soba-misc.ts"],"sourcesContent":["import { Directive, inject, OnInit } from '@angular/core';\nimport { NgtRxStore, NgtStore } from 'angular-three';\n\n@Directive({ selector: 'ngts-bake-shadows', standalone: true })\nexport class NgtsBakeShadows extends NgtRxStore implements OnInit {\n private readonly store = inject(NgtStore);\n\n ngOnInit() {\n this.effect(this.store.select('gl'), (gl) => {\n gl.shadowMap.autoUpdate = false;\n gl.shadowMap.needsUpdate = true;\n\n return () => {\n gl.shadowMap.autoUpdate = gl.shadowMap.needsUpdate = true;\n };\n });\n }\n}\n","import { inject } from '@angular/core';\nimport { injectNgtDestroy, injectNgtRef, NgtStore, safeDetectChanges } from 'angular-three';\nimport { isObservable, Observable, of, takeUntil } from 'rxjs';\nimport * as THREE from 'three';\n\ninterface FBOSettings<T extends boolean = false> extends THREE.WebGLRenderTargetOptions {\n multisample?: T;\n samples?: number;\n}\n\nexport interface NgtsFBOParams<T extends boolean = false> {\n width?: number | FBOSettings<T>;\n height?: number;\n settings?: FBOSettings<T>;\n}\n\nexport function injectNgtsFBO<T extends boolean = false>(\n paramsFactory: (defaultParams: Partial<NgtsFBOParams<T>>) => NgtsFBOParams<T> | Observable<NgtsFBOParams<T>>\n) {\n const store = inject(NgtStore);\n const targetRef = injectNgtRef<THREE.WebGLRenderTarget>();\n const { destroy$, cdr } = injectNgtDestroy(() => {\n targetRef.nativeElement?.dispose();\n });\n const params = paramsFactory({});\n const params$ = isObservable(params) ? params : of(params);\n\n params$.pipe(takeUntil(destroy$)).subscribe(({ width, height, settings }) => {\n const { gl, size, viewport } = store.get();\n const _width = typeof width === 'number' ? width : size.width * viewport.dpr;\n const _height = typeof height === 'number' ? height : size.height * viewport.dpr;\n const _settings = (typeof width === 'number' ? settings : (width as FBOSettings)) || {};\n\n const { samples, ...targetSettings } = _settings;\n\n if (!targetRef.nativeElement) {\n const target = new THREE.WebGLRenderTarget(_width, _height, {\n minFilter: THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n encoding: gl.outputEncoding,\n type: THREE.HalfFloatType,\n ...targetSettings,\n });\n if (samples) target.samples = samples;\n targetRef.nativeElement = target;\n }\n\n targetRef.nativeElement.setSize(_width, _height);\n if (samples) targetRef.nativeElement.samples = samples;\n safeDetectChanges(cdr);\n });\n\n return targetRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -36,9 +36,9 @@ class NgtsAdaptiveDpr extends NgtRxStore {
36
36
  });
37
37
  }
38
38
  }
39
- NgtsAdaptiveDpr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsAdaptiveDpr, deps: null, target: i0.ɵɵFactoryTarget.Directive });
40
- NgtsAdaptiveDpr.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: "pixelated" }, providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
39
+ NgtsAdaptiveDpr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsAdaptiveDpr, deps: null, target: i0.ɵɵFactoryTarget.Directive });
40
+ NgtsAdaptiveDpr.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: "pixelated" }, providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
42
42
  type: Directive,
43
43
  args: [{
44
44
  selector: 'ngts-adaptive-dpr',
@@ -70,9 +70,9 @@ class NgtsAdaptiveEvents extends NgtRxStore {
70
70
  });
71
71
  }
72
72
  }
73
- NgtsAdaptiveEvents.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsAdaptiveEvents, deps: null, target: i0.ɵɵFactoryTarget.Directive });
74
- NgtsAdaptiveEvents.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
73
+ NgtsAdaptiveEvents.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsAdaptiveEvents, deps: null, target: i0.ɵɵFactoryTarget.Directive });
74
+ NgtsAdaptiveEvents.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
76
76
  type: Directive,
77
77
  args: [{
78
78
  selector: 'ngts-adaptive-events',
@@ -102,13 +102,13 @@ class NgtsDetailed extends NgtRxStore {
102
102
  });
103
103
  }
104
104
  }
105
- NgtsDetailed.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsDetailed, deps: null, target: i0.ɵɵFactoryTarget.Component });
106
- NgtsDetailed.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed[distances]", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
105
+ NgtsDetailed.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsDetailed, deps: null, target: i0.ɵɵFactoryTarget.Component });
106
+ NgtsDetailed.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed[distances]", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
107
107
  <ngt-lOD [ref]="lodRef" ngtCompound (beforeRender)="$any($event).object.update($any($event).state.camera)">
108
108
  <ng-content />
109
109
  </ngt-lOD>
110
110
  `, isInline: true });
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsDetailed, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsDetailed, decorators: [{
112
112
  type: Component,
113
113
  args: [{
114
114
  selector: 'ngts-detailed[distances]',
@@ -167,9 +167,9 @@ class NgtsStats extends NgtRxStore {
167
167
  });
168
168
  }
169
169
  }
170
- NgtsStats.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsStats, deps: null, target: i0.ɵɵFactoryTarget.Directive });
171
- NgtsStats.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NgtsStats, isStandalone: true, selector: "ngts-stats", inputs: { showPanel: "showPanel", parent: "parent", classes: "classes" }, usesInheritance: true, ngImport: i0 });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgtsStats, decorators: [{
170
+ NgtsStats.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStats, deps: null, target: i0.ɵɵFactoryTarget.Directive });
171
+ NgtsStats.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsStats, isStandalone: true, selector: "ngts-stats", inputs: { showPanel: "showPanel", parent: "parent", classes: "classes" }, usesInheritance: true, ngImport: i0 });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStats, decorators: [{
173
173
  type: Directive,
174
174
  args: [{
175
175
  selector: 'ngts-stats',