angular-three-soba 2.14.0 → 3.1.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 (179) hide show
  1. package/abstractions/lib/catmull-rom-line.d.ts +117 -117
  2. package/abstractions/lib/edges.d.ts +126 -126
  3. package/abstractions/lib/grid.d.ts +15 -15
  4. package/abstractions/lib/line.d.ts +1 -1
  5. package/abstractions/lib/prism-geometry.d.ts +4 -4
  6. package/abstractions/lib/rounded-box.d.ts +1 -1
  7. package/abstractions/lib/text-3d.d.ts +22 -22
  8. package/abstractions/lib/text.d.ts +1 -1
  9. package/cameras/lib/cube-camera.d.ts +1 -1
  10. package/cameras/lib/orthographic-camera.d.ts +1 -1
  11. package/cameras/lib/perspective-camera.d.ts +1 -1
  12. package/controls/index.d.ts +0 -9
  13. package/controls/lib/camera-controls.d.ts +1 -1
  14. package/controls/lib/orbit-controls.d.ts +1 -1
  15. package/fesm2022/angular-three-soba-abstractions.mjs +41 -52
  16. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  17. package/fesm2022/angular-three-soba-cameras.mjs +12 -15
  18. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  19. package/fesm2022/angular-three-soba-controls.mjs +16 -24
  20. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  21. package/fesm2022/angular-three-soba-gizmos.mjs +59 -60
  22. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
  23. package/fesm2022/angular-three-soba-loaders.mjs +3 -3
  24. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  25. package/fesm2022/angular-three-soba-materials.mjs +27 -35
  26. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  27. package/fesm2022/angular-three-soba-misc.mjs +27 -29
  28. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  29. package/fesm2022/angular-three-soba-performances.mjs +31 -34
  30. package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
  31. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  32. package/fesm2022/angular-three-soba-staging.mjs +91 -105
  33. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  34. package/fesm2022/angular-three-soba-stats.mjs +3 -3
  35. package/fesm2022/angular-three-soba-stats.mjs.map +1 -1
  36. package/gizmos/lib/gizmo-helper/gizmo-viewport.d.ts +1 -1
  37. package/gizmos/lib/pivot-controls/axis-arrow.d.ts +1 -1
  38. package/gizmos/lib/pivot-controls/axis-rotator.d.ts +1 -1
  39. package/gizmos/lib/pivot-controls/pivot-controls.d.ts +1 -1
  40. package/gizmos/lib/pivot-controls/plane-slider.d.ts +1 -1
  41. package/gizmos/lib/pivot-controls/scaling-sphere.d.ts +1 -1
  42. package/gizmos/lib/transform-controls.d.ts +2 -2
  43. package/materials/lib/custom-shader-material.d.ts +2 -2
  44. package/materials/lib/mesh-portal-material.d.ts +9 -9
  45. package/materials/lib/mesh-refraction-material.d.ts +2 -2
  46. package/materials/lib/mesh-transmission-material.d.ts +1 -1
  47. package/misc/lib/computed-attribute.d.ts +6 -6
  48. package/misc/lib/decal.d.ts +1 -1
  49. package/misc/lib/html/html.d.ts +2 -2
  50. package/misc/lib/sampler.d.ts +1 -1
  51. package/package.json +11 -37
  52. package/performances/lib/instances/instances.d.ts +5 -5
  53. package/performances/lib/points/points.d.ts +10 -10
  54. package/performances/lib/segments/segments.d.ts +4 -4
  55. package/shaders/lib/mesh-refraction-material.d.ts +2 -2
  56. package/staging/lib/caustics.d.ts +1 -1
  57. package/staging/lib/center.d.ts +2 -2
  58. package/staging/lib/contact-shadows.d.ts +1 -1
  59. package/staging/lib/lightformer.d.ts +1 -1
  60. package/staging/lib/mask.d.ts +1 -1
  61. package/staging/lib/render-texture.d.ts +1 -1
  62. package/staging/lib/spot-light.d.ts +2 -2
  63. package/esm2022/abstractions/angular-three-soba-abstractions.mjs +0 -5
  64. package/esm2022/abstractions/index.mjs +0 -14
  65. package/esm2022/abstractions/lib/billboard.mjs +0 -69
  66. package/esm2022/abstractions/lib/catmull-rom-line.mjs +0 -76
  67. package/esm2022/abstractions/lib/cubic-bezier-line.mjs +0 -51
  68. package/esm2022/abstractions/lib/edges.mjs +0 -66
  69. package/esm2022/abstractions/lib/gradient-texture.mjs +0 -91
  70. package/esm2022/abstractions/lib/grid.mjs +0 -103
  71. package/esm2022/abstractions/lib/helper.mjs +0 -74
  72. package/esm2022/abstractions/lib/line.mjs +0 -123
  73. package/esm2022/abstractions/lib/prism-geometry.mjs +0 -46
  74. package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +0 -73
  75. package/esm2022/abstractions/lib/rounded-box.mjs +0 -131
  76. package/esm2022/abstractions/lib/text-3d.mjs +0 -100
  77. package/esm2022/abstractions/lib/text.mjs +0 -86
  78. package/esm2022/angular-three-soba.mjs +0 -5
  79. package/esm2022/cameras/angular-three-soba-cameras.mjs +0 -5
  80. package/esm2022/cameras/index.mjs +0 -5
  81. package/esm2022/cameras/lib/camera-content.mjs +0 -14
  82. package/esm2022/cameras/lib/cube-camera.mjs +0 -102
  83. package/esm2022/cameras/lib/orthographic-camera.mjs +0 -131
  84. package/esm2022/cameras/lib/perspective-camera.mjs +0 -105
  85. package/esm2022/controls/angular-three-soba-controls.mjs +0 -5
  86. package/esm2022/controls/index.mjs +0 -9
  87. package/esm2022/controls/lib/camera-controls.mjs +0 -126
  88. package/esm2022/controls/lib/orbit-controls.mjs +0 -114
  89. package/esm2022/controls/lib/scroll-controls.mjs +0 -261
  90. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +0 -5
  91. package/esm2022/gizmos/index.mjs +0 -6
  92. package/esm2022/gizmos/lib/gizmo-helper/gizmo-helper.mjs +0 -191
  93. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewcube.mjs +0 -304
  94. package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewport.mjs +0 -348
  95. package/esm2022/gizmos/lib/pivot-controls/axis-arrow.mjs +0 -265
  96. package/esm2022/gizmos/lib/pivot-controls/axis-rotator.mjs +0 -264
  97. package/esm2022/gizmos/lib/pivot-controls/pivot-controls.mjs +0 -349
  98. package/esm2022/gizmos/lib/pivot-controls/plane-slider.mjs +0 -266
  99. package/esm2022/gizmos/lib/pivot-controls/scaling-sphere.mjs +0 -232
  100. package/esm2022/gizmos/lib/transform-controls.mjs +0 -177
  101. package/esm2022/index.mjs +0 -2
  102. package/esm2022/loaders/angular-three-soba-loaders.mjs +0 -5
  103. package/esm2022/loaders/index.mjs +0 -7
  104. package/esm2022/loaders/lib/fbx-loader.mjs +0 -13
  105. package/esm2022/loaders/lib/font-loader.mjs +0 -49
  106. package/esm2022/loaders/lib/gltf-loader.mjs +0 -51
  107. package/esm2022/loaders/lib/loader.mjs +0 -103
  108. package/esm2022/loaders/lib/progress.mjs +0 -51
  109. package/esm2022/loaders/lib/texture-loader.mjs +0 -32
  110. package/esm2022/materials/angular-three-soba-materials.mjs +0 -5
  111. package/esm2022/materials/index.mjs +0 -9
  112. package/esm2022/materials/lib/custom-shader-material.mjs +0 -67
  113. package/esm2022/materials/lib/mesh-distort-material.mjs +0 -43
  114. package/esm2022/materials/lib/mesh-portal-material.mjs +0 -294
  115. package/esm2022/materials/lib/mesh-reflector-material.mjs +0 -274
  116. package/esm2022/materials/lib/mesh-refraction-material.mjs +0 -140
  117. package/esm2022/materials/lib/mesh-transmission-material.mjs +0 -188
  118. package/esm2022/materials/lib/mesh-wobble-material.mjs +0 -43
  119. package/esm2022/materials/lib/point-material.mjs +0 -34
  120. package/esm2022/misc/angular-three-soba-misc.mjs +0 -5
  121. package/esm2022/misc/index.mjs +0 -15
  122. package/esm2022/misc/lib/animations.mjs +0 -71
  123. package/esm2022/misc/lib/bake-shadows.mjs +0 -24
  124. package/esm2022/misc/lib/computed-attribute.mjs +0 -51
  125. package/esm2022/misc/lib/constants.mjs +0 -5
  126. package/esm2022/misc/lib/decal.mjs +0 -142
  127. package/esm2022/misc/lib/deprecated.mjs +0 -15
  128. package/esm2022/misc/lib/depth-buffer.mjs +0 -35
  129. package/esm2022/misc/lib/fbo.mjs +0 -86
  130. package/esm2022/misc/lib/html/html-content.mjs +0 -322
  131. package/esm2022/misc/lib/html/html.mjs +0 -129
  132. package/esm2022/misc/lib/html/utils.mjs +0 -74
  133. package/esm2022/misc/lib/intersect.mjs +0 -49
  134. package/esm2022/misc/lib/preload.mjs +0 -58
  135. package/esm2022/misc/lib/sampler.mjs +0 -122
  136. package/esm2022/misc/lib/scale-factor.mjs +0 -29
  137. package/esm2022/performances/angular-three-soba-performances.mjs +0 -5
  138. package/esm2022/performances/index.mjs +0 -7
  139. package/esm2022/performances/lib/adaptive-dpr.mjs +0 -46
  140. package/esm2022/performances/lib/adaptive-events.mjs +0 -24
  141. package/esm2022/performances/lib/detailed.mjs +0 -53
  142. package/esm2022/performances/lib/instances/instances.mjs +0 -177
  143. package/esm2022/performances/lib/instances/position-mesh.mjs +0 -51
  144. package/esm2022/performances/lib/points/points.mjs +0 -272
  145. package/esm2022/performances/lib/points/position-point.mjs +0 -53
  146. package/esm2022/performances/lib/segments/segment-object.mjs +0 -9
  147. package/esm2022/performances/lib/segments/segments.mjs +0 -126
  148. package/esm2022/shaders/angular-three-soba-shaders.mjs +0 -5
  149. package/esm2022/shaders/index.mjs +0 -4
  150. package/esm2022/shaders/lib/grid-material.mjs +0 -81
  151. package/esm2022/shaders/lib/mesh-refraction-material.mjs +0 -163
  152. package/esm2022/shaders/lib/point-material.mjs +0 -24
  153. package/esm2022/staging/angular-three-soba-staging.mjs +0 -5
  154. package/esm2022/staging/index.mjs +0 -21
  155. package/esm2022/staging/lib/accumulative-shadows.mjs +0 -180
  156. package/esm2022/staging/lib/backdrop.mjs +0 -69
  157. package/esm2022/staging/lib/bb-anchor.mjs +0 -58
  158. package/esm2022/staging/lib/bounds.mjs +0 -282
  159. package/esm2022/staging/lib/camera-shake.mjs +0 -65
  160. package/esm2022/staging/lib/caustics.mjs +0 -184
  161. package/esm2022/staging/lib/center.mjs +0 -114
  162. package/esm2022/staging/lib/contact-shadows.mjs +0 -214
  163. package/esm2022/staging/lib/environment/environment.mjs +0 -344
  164. package/esm2022/staging/lib/environment/inject-environment.mjs +0 -184
  165. package/esm2022/staging/lib/float.mjs +0 -70
  166. package/esm2022/staging/lib/lightformer.mjs +0 -103
  167. package/esm2022/staging/lib/mask.mjs +0 -74
  168. package/esm2022/staging/lib/matcap-texture.mjs +0 -79
  169. package/esm2022/staging/lib/normal-texture.mjs +0 -79
  170. package/esm2022/staging/lib/randomized-lights.mjs +0 -100
  171. package/esm2022/staging/lib/render-texture.mjs +0 -202
  172. package/esm2022/staging/lib/sky.mjs +0 -86
  173. package/esm2022/staging/lib/spot-light.mjs +0 -445
  174. package/esm2022/staging/lib/stage.mjs +0 -232
  175. package/esm2022/stats/angular-three-soba-stats.mjs +0 -5
  176. package/esm2022/stats/index.mjs +0 -2
  177. package/esm2022/stats/lib/stats.mjs +0 -57
  178. package/esm2022/vanilla-exports/angular-three-soba-vanilla-exports.mjs +0 -5
  179. package/esm2022/vanilla-exports/index.mjs +0 -3
@@ -1,131 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, TemplateRef, computed, contentChild, effect, input, untracked, viewChild, } from '@angular/core';
3
- import { extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';
4
- import { injectFBO } from 'angular-three-soba/misc';
5
- import { mergeInputs } from 'ngxtension/inject-inputs';
6
- import { Group, OrthographicCamera } from 'three';
7
- import { NgtsCameraContent } from './camera-content';
8
- import * as i0 from "@angular/core";
9
- const defaultOptions = {
10
- frames: Infinity,
11
- resolution: 256,
12
- makeDefault: false,
13
- manual: false,
14
- };
15
- export class NgtsOrthographicCamera {
16
- constructor() {
17
- this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
18
- this.parameters = omit(this.options, [
19
- 'envMap',
20
- 'makeDefault',
21
- 'manual',
22
- 'frames',
23
- 'resolution',
24
- 'left',
25
- 'top',
26
- 'bottom',
27
- 'right',
28
- ]);
29
- this.content = contentChild(TemplateRef);
30
- this.cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });
31
- this.cameraRef = viewChild.required('camera');
32
- this.groupRef = viewChild.required('group');
33
- this.store = injectStore();
34
- this.camera = this.store.select('camera');
35
- this.size = this.store.select('size');
36
- this.left = computed(() => this.options().left ?? this.size().width / -2);
37
- this.right = computed(() => this.options().right ?? this.size().width / 2);
38
- this.top = computed(() => this.options().top ?? this.size().height / 2);
39
- this.bottom = computed(() => this.options().bottom ?? this.size().height / -2);
40
- this.manual = pick(this.options, 'manual');
41
- this.makeDefault = pick(this.options, 'makeDefault');
42
- this.resolution = pick(this.options, 'resolution');
43
- this.fbo = injectFBO(() => ({ width: this.resolution() }));
44
- this.texture = pick(this.fbo, 'texture');
45
- extend({ OrthographicCamera, Group });
46
- effect(() => {
47
- this.cameraRef().nativeElement.updateProjectionMatrix();
48
- });
49
- effect(() => {
50
- const manual = this.manual();
51
- if (manual)
52
- return;
53
- const camera = this.cameraRef().nativeElement;
54
- camera.updateProjectionMatrix();
55
- });
56
- effect((onCleanup) => {
57
- const makeDefault = this.makeDefault();
58
- if (!makeDefault)
59
- return;
60
- const oldCam = untracked(this.camera);
61
- this.store.update({ camera: this.cameraRef().nativeElement });
62
- onCleanup(() => this.store.update(() => ({ camera: oldCam })));
63
- });
64
- let count = 0;
65
- let oldEnvMap = null;
66
- injectBeforeRender(({ gl, scene }) => {
67
- const [{ frames, envMap }, group, camera, fbo] = [
68
- this.options(),
69
- this.groupRef().nativeElement,
70
- this.cameraRef().nativeElement,
71
- this.fbo(),
72
- ];
73
- if (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {
74
- group.visible = false;
75
- gl.setRenderTarget(fbo);
76
- oldEnvMap = scene.background;
77
- if (envMap)
78
- scene.background = envMap;
79
- gl.render(scene, camera);
80
- scene.background = oldEnvMap;
81
- gl.setRenderTarget(null);
82
- group.visible = true;
83
- count++;
84
- }
85
- });
86
- }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsOrthographicCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsOrthographicCamera, isStandalone: true, selector: "ngts-orthographic-camera", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "cameraRef", first: true, predicate: ["camera"], descendants: true, isSignal: true }, { propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
89
- <ngt-orthographic-camera
90
- #camera
91
- [left]="left()"
92
- [right]="right()"
93
- [top]="top()"
94
- [bottom]="bottom()"
95
- [parameters]="parameters()"
96
- >
97
- <ng-container [ngTemplateOutlet]="content() ?? null" />
98
- </ngt-orthographic-camera>
99
-
100
- <ngt-group #group>
101
- <ng-container [ngTemplateOutlet]="cameraContent() ?? null" [ngTemplateOutletContext]="{ $implicit: texture }" />
102
- </ngt-group>
103
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
- }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsOrthographicCamera, decorators: [{
106
- type: Component,
107
- args: [{
108
- selector: 'ngts-orthographic-camera',
109
- standalone: true,
110
- template: `
111
- <ngt-orthographic-camera
112
- #camera
113
- [left]="left()"
114
- [right]="right()"
115
- [top]="top()"
116
- [bottom]="bottom()"
117
- [parameters]="parameters()"
118
- >
119
- <ng-container [ngTemplateOutlet]="content() ?? null" />
120
- </ngt-orthographic-camera>
121
-
122
- <ngt-group #group>
123
- <ng-container [ngTemplateOutlet]="cameraContent() ?? null" [ngTemplateOutletContext]="{ $implicit: texture }" />
124
- </ngt-group>
125
- `,
126
- imports: [NgTemplateOutlet],
127
- changeDetection: ChangeDetectionStrategy.OnPush,
128
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
129
- }]
130
- }], ctorParameters: () => [] });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3J0aG9ncmFwaGljLWNhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9jYW1lcmFzL3NyYy9saWIvb3J0aG9ncmFwaGljLWNhbWVyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsV0FBVyxFQUNYLFFBQVEsRUFDUixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBeUIsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFTLEtBQUssRUFBRSxrQkFBa0IsRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFlckQsTUFBTSxjQUFjLEdBQWtDO0lBQ3JELE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEtBQUs7SUFDbEIsTUFBTSxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBeUJGLE1BQU0sT0FBTyxzQkFBc0I7SUFxQ2xDO1FBcENBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEUsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3pDLFFB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LEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO2dCQUN0QyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDekIsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7Z0JBQzdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixLQUFLLEVBQUUsQ0FBQztZQUNULENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7K0dBbEZXLHNCQUFzQjttR0FBdEIsc0JBQXNCLG1RQWNYLFdBQVcsZ0dBQ0wsaUJBQWlCLDJCQUFVLFdBQVcsc1FBbkN6RDs7Ozs7Ozs7Ozs7Ozs7O0VBZVQsNERBQ1MsZ0JBQWdCOzs0RkFJZCxzQkFBc0I7a0JBdkJsQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztFQWVUO29CQUNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRUZW1wbGF0ZVJlZixcblx0Y29tcHV0ZWQsXG5cdGNvbnRlbnRDaGlsZCxcblx0ZWZmZWN0LFxuXHRpbnB1dCxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0T3J0aG9ncmFwaGljQ2FtZXJhLCBleHRlbmQsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0U3RvcmUsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEZCTyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9taXNjJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IENvbG9yLCBHcm91cCwgT3J0aG9ncmFwaGljQ2FtZXJhLCBUZXh0dXJlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYUNvbnRlbnQgfSBmcm9tICcuL2NhbWVyYS1jb250ZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzT3J0aG9ncmFwaGljQ2FtZXJhT3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8Tmd0T3J0aG9ncmFwaGljQ2FtZXJhPiB7XG5cdC8qKiBSZWdpc3RlcnMgdGhlIGNhbWVyYSBhcyB0aGUgc3lzdGVtIGRlZmF1bHQsIGZpYmVyIHdpbGwgc3RhcnQgcmVuZGVyaW5nIHdpdGggaXQgKi9cblx0bWFrZURlZmF1bHQ/OiBib29sZWFuO1xuXHQvKiogTWFraW5nIGl0IG1hbnVhbCB3aWxsIHN0b3AgcmVzcG9uc2l2ZW5lc3MgYW5kIHlvdSBoYXZlIHRvIGNhbGN1bGF0ZSBhc3BlY3QgcmF0aW8geW91cnNlbGYuICovXG5cdG1hbnVhbD86IGJvb2xlYW47XG5cdC8qKiBOdW1iZXIgb2YgZnJhbWVzIHRvIHJlbmRlciwgSW5maW5pdHkgKi9cblx0ZnJhbWVzOiBudW1iZXI7XG5cdC8qKiBSZXNvbHV0aW9uIG9mIHRoZSBGQk8sIDI1NiAqL1xuXHRyZXNvbHV0aW9uOiBudW1iZXI7XG5cdC8qKiBPcHRpb25hbCBlbnZpcm9ubWVudCBtYXAgZm9yIGZ1bmN0aW9uYWwgdXNlICovXG5cdGVudk1hcD86IFRleHR1cmU7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzT3J0aG9ncmFwaGljQ2FtZXJhT3B0aW9ucyA9IHtcblx0ZnJhbWVzOiBJbmZpbml0eSxcblx0cmVzb2x1dGlvbjogMjU2LFxuXHRtYWtlRGVmYXVsdDogZmFsc2UsXG5cdG1hbnVhbDogZmFsc2UsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLW9ydGhvZ3JhcGhpYy1jYW1lcmEnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtb3J0aG9ncmFwaGljLWNhbWVyYVxuXHRcdFx0I2NhbWVyYVxuXHRcdFx0W2xlZnRdPVwibGVmdCgpXCJcblx0XHRcdFtyaWdodF09XCJyaWdodCgpXCJcblx0XHRcdFt0b3BdPVwidG9wKClcIlxuXHRcdFx0W2JvdHRvbV09XCJib3R0b20oKVwiXG5cdFx0XHRbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIlxuXHRcdD5cblx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudCgpID8/IG51bGxcIiAvPlxuXHRcdDwvbmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmE+XG5cblx0XHQ8bmd0LWdyb3VwICNncm91cD5cblx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FtZXJhQ29udGVudCgpID8/IG51bGxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRleHR1cmUgfVwiIC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c09ydGhvZ3JhcGhpY0NhbWVyYSB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cHJvdGVjdGVkIHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCdlbnZNYXAnLFxuXHRcdCdtYWtlRGVmYXVsdCcsXG5cdFx0J21hbnVhbCcsXG5cdFx0J2ZyYW1lcycsXG5cdFx0J3Jlc29sdXRpb24nLFxuXHRcdCdsZWZ0Jyxcblx0XHQndG9wJyxcblx0XHQnYm90dG9tJyxcblx0XHQncmlnaHQnLFxuXHRdKTtcblxuXHRjb250ZW50ID0gY29udGVudENoaWxkKFRlbXBsYXRlUmVmKTtcblx0Y2FtZXJhQ29udGVudCA9IGNvbnRlbnRDaGlsZChOZ3RzQ2FtZXJhQ29udGVudCwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KTtcblxuXHRjYW1lcmFSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxPcnRob2dyYXBoaWNDYW1lcmE+PignY2FtZXJhJyk7XG5cdGdyb3VwUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8R3JvdXA+PignZ3JvdXAnKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRwcml2YXRlIGNhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJvdGVjdGVkIHNpemUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXG5cdHByb3RlY3RlZCBsZWZ0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkubGVmdCA/PyB0aGlzLnNpemUoKS53aWR0aCAvIC0yKTtcblx0cHJvdGVjdGVkIHJpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkucmlnaHQgPz8gdGhpcy5zaXplKCkud2lkdGggLyAyKTtcblx0cHJvdGVjdGVkIHRvcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnRvcCA/PyB0aGlzLnNpemUoKS5oZWlnaHQgLyAyKTtcblx0cHJvdGVjdGVkIGJvdHRvbSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmJvdHRvbSA/PyB0aGlzLnNpemUoKS5oZWlnaHQgLyAtMik7XG5cblx0cHJpdmF0ZSBtYW51YWwgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21hbnVhbCcpO1xuXHRwcml2YXRlIG1ha2VEZWZhdWx0ID0gcGljayh0aGlzLm9wdGlvbnMsICdtYWtlRGVmYXVsdCcpO1xuXHRwcml2YXRlIHJlc29sdXRpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb24nKTtcblxuXHRwcml2YXRlIGZibyA9IGluamVjdEZCTygoKSA9PiAoeyB3aWR0aDogdGhpcy5yZXNvbHV0aW9uKCkgfSkpO1xuXHRwcm90ZWN0ZWQgdGV4dHVyZSA9IHBpY2sodGhpcy5mYm8sICd0ZXh0dXJlJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgT3J0aG9ncmFwaGljQ2FtZXJhLCBHcm91cCB9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLmNhbWVyYVJlZigpLm5hdGl2ZUVsZW1lbnQudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IG1hbnVhbCA9IHRoaXMubWFudWFsKCk7XG5cdFx0XHRpZiAobWFudWFsKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhUmVmKCkubmF0aXZlRWxlbWVudDtcblx0XHRcdGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgbWFrZURlZmF1bHQgPSB0aGlzLm1ha2VEZWZhdWx0KCk7XG5cdFx0XHRpZiAoIW1ha2VEZWZhdWx0KSByZXR1cm47XG5cblx0XHRcdGNvbnN0IG9sZENhbSA9IHVudHJhY2tlZCh0aGlzLmNhbWVyYSk7XG5cdFx0XHR0aGlzLnN0b3JlLnVwZGF0ZSh7IGNhbWVyYTogdGhpcy5jYW1lcmFSZWYoKS5uYXRpdmVFbGVtZW50IH0pO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHRoaXMuc3RvcmUudXBkYXRlKCgpID0+ICh7IGNhbWVyYTogb2xkQ2FtIH0pKSk7XG5cdFx0fSk7XG5cblx0XHRsZXQgY291bnQgPSAwO1xuXHRcdGxldCBvbGRFbnZNYXA6IENvbG9yIHwgVGV4dHVyZSB8IG51bGwgPSBudWxsO1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoeyBnbCwgc2NlbmUgfSkgPT4ge1xuXHRcdFx0Y29uc3QgW3sgZnJhbWVzLCBlbnZNYXAgfSwgZ3JvdXAsIGNhbWVyYSwgZmJvXSA9IFtcblx0XHRcdFx0dGhpcy5vcHRpb25zKCksXG5cdFx0XHRcdHRoaXMuZ3JvdXBSZWYoKS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmNhbWVyYVJlZigpLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuZmJvKCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKHRoaXMuY2FtZXJhQ29udGVudCgpICYmIGdyb3VwICYmIGNhbWVyYSAmJiBmYm8gJiYgKGZyYW1lcyA9PT0gSW5maW5pdHkgfHwgY291bnQgPCBmcmFtZXMpKSB7XG5cdFx0XHRcdGdyb3VwLnZpc2libGUgPSBmYWxzZTtcblx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KGZibyk7XG5cdFx0XHRcdG9sZEVudk1hcCA9IHNjZW5lLmJhY2tncm91bmQ7XG5cdFx0XHRcdGlmIChlbnZNYXApIHNjZW5lLmJhY2tncm91bmQgPSBlbnZNYXA7XG5cdFx0XHRcdGdsLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcblx0XHRcdFx0c2NlbmUuYmFja2dyb3VuZCA9IG9sZEVudk1hcDtcblx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdFx0XHRncm91cC52aXNpYmxlID0gdHJ1ZTtcblx0XHRcdFx0Y291bnQrKztcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuIl19
@@ -1,105 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, TemplateRef, contentChild, effect, input, untracked, viewChild, } from '@angular/core';
3
- import { extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';
4
- import { injectFBO } from 'angular-three-soba/misc';
5
- import { mergeInputs } from 'ngxtension/inject-inputs';
6
- import { Group, PerspectiveCamera } from 'three';
7
- import { NgtsCameraContent } from './camera-content';
8
- import * as i0 from "@angular/core";
9
- const defaultOptions = {
10
- frames: Infinity,
11
- resolution: 256,
12
- makeDefault: false,
13
- manual: false,
14
- };
15
- export class NgtsPerspectiveCamera {
16
- constructor() {
17
- this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
18
- this.parameters = omit(this.options, ['envMap', 'makeDefault', 'manual', 'frames', 'resolution']);
19
- this.content = contentChild(TemplateRef);
20
- this.cameraContent = contentChild(NgtsCameraContent, { read: TemplateRef });
21
- this.cameraRef = viewChild.required('camera');
22
- this.groupRef = viewChild.required('group');
23
- this.store = injectStore();
24
- this.camera = this.store.select('camera');
25
- this.size = this.store.select('size');
26
- this.manual = pick(this.options, 'manual');
27
- this.makeDefault = pick(this.options, 'makeDefault');
28
- this.resolution = pick(this.options, 'resolution');
29
- this.fbo = injectFBO(() => ({ width: this.resolution() }));
30
- this.texture = pick(this.fbo, 'texture');
31
- extend({ PerspectiveCamera, Group });
32
- effect(() => {
33
- this.cameraRef().nativeElement.updateProjectionMatrix();
34
- });
35
- effect(() => {
36
- const manual = this.manual();
37
- if (manual)
38
- return;
39
- const [camera, size] = [this.cameraRef().nativeElement, this.size()];
40
- camera.aspect = size.width / size.height;
41
- camera.updateProjectionMatrix();
42
- });
43
- effect((onCleanup) => {
44
- const makeDefault = this.makeDefault();
45
- if (!makeDefault)
46
- return;
47
- const oldCam = untracked(this.camera);
48
- this.store.update({ camera: this.cameraRef().nativeElement });
49
- onCleanup(() => this.store.update(() => ({ camera: oldCam })));
50
- });
51
- /**/
52
- let count = 0;
53
- let oldEnvMap = null;
54
- injectBeforeRender(({ gl, scene }) => {
55
- const [{ frames, envMap }, group, camera, fbo] = [
56
- this.options(),
57
- this.groupRef().nativeElement,
58
- this.cameraRef().nativeElement,
59
- this.fbo(),
60
- ];
61
- if (this.cameraContent() && group && camera && fbo && (frames === Infinity || count < frames)) {
62
- group.visible = false;
63
- gl.setRenderTarget(fbo);
64
- oldEnvMap = scene.background;
65
- if (envMap)
66
- scene.background = envMap;
67
- gl.render(scene, camera);
68
- scene.background = oldEnvMap;
69
- gl.setRenderTarget(null);
70
- group.visible = true;
71
- count++;
72
- }
73
- });
74
- }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsPerspectiveCamera, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsPerspectiveCamera, isStandalone: true, selector: "ngts-perspective-camera", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "cameraRef", first: true, predicate: ["camera"], descendants: true, isSignal: true }, { propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
77
- <ngt-perspective-camera #camera [parameters]="parameters()">
78
- <ng-container [ngTemplateOutlet]="content() ?? null" />
79
- </ngt-perspective-camera>
80
-
81
- <ngt-group #group>
82
- <ng-container [ngTemplateOutlet]="cameraContent() ?? null" [ngTemplateOutletContext]="{ $implicit: texture }" />
83
- </ngt-group>
84
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
85
- }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsPerspectiveCamera, decorators: [{
87
- type: Component,
88
- args: [{
89
- selector: 'ngts-perspective-camera',
90
- standalone: true,
91
- template: `
92
- <ngt-perspective-camera #camera [parameters]="parameters()">
93
- <ng-container [ngTemplateOutlet]="content() ?? null" />
94
- </ngt-perspective-camera>
95
-
96
- <ngt-group #group>
97
- <ng-container [ngTemplateOutlet]="cameraContent() ?? null" [ngTemplateOutletContext]="{ $implicit: texture }" />
98
- </ngt-group>
99
- `,
100
- imports: [NgTemplateOutlet],
101
- changeDetection: ChangeDetectionStrategy.OnPush,
102
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
103
- }]
104
- }], ctorParameters: () => [] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc3BlY3RpdmUtY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2NhbWVyYXMvc3JjL2xpYi9wZXJzcGVjdGl2ZS1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFTLEtBQUssRUFBRSxpQkFBaUIsRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFlckQsTUFBTSxjQUFjLEdBQWlDO0lBQ3BELE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEtBQUs7SUFDbEIsTUFBTSxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBa0JGLE1BQU0sT0FBTyxxQkFBcUI7SUFxQmpDO1FBcEJBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEUsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLGFBQWEs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b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7RUFRVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0VGVtcGxhdGVSZWYsXG5cdGNvbnRlbnRDaGlsZCxcblx0ZWZmZWN0LFxuXHRpbnB1dCxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0UGVyc3BlY3RpdmVDYW1lcmEsIGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3RTdG9yZSwgb21pdCwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0RkJPIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQ29sb3IsIEdyb3VwLCBQZXJzcGVjdGl2ZUNhbWVyYSwgVGV4dHVyZSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNDYW1lcmFDb250ZW50IH0gZnJvbSAnLi9jYW1lcmEtY29udGVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c1BlcnNwZWN0aXZlQ2FtZXJhT3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8Tmd0UGVyc3BlY3RpdmVDYW1lcmE+IHtcblx0LyoqIFJlZ2lzdGVycyB0aGUgY2FtZXJhIGFzIHRoZSBzeXN0ZW0gZGVmYXVsdCwgZmliZXIgd2lsbCBzdGFydCByZW5kZXJpbmcgd2l0aCBpdCAqL1xuXHRtYWtlRGVmYXVsdD86IGJvb2xlYW47XG5cdC8qKiBNYWtpbmcgaXQgbWFudWFsIHdpbGwgc3RvcCByZXNwb25zaXZlbmVzcyBhbmQgeW91IGhhdmUgdG8gY2FsY3VsYXRlIGFzcGVjdCByYXRpbyB5b3Vyc2VsZi4gKi9cblx0bWFudWFsPzogYm9vbGVhbjtcblx0LyoqIE51bWJlciBvZiBmcmFtZXMgdG8gcmVuZGVyLCBJbmZpbml0eSAqL1xuXHRmcmFtZXM6IG51bWJlcjtcblx0LyoqIFJlc29sdXRpb24gb2YgdGhlIEZCTywgMjU2ICovXG5cdHJlc29sdXRpb246IG51bWJlcjtcblx0LyoqIE9wdGlvbmFsIGVudmlyb25tZW50IG1hcCBmb3IgZnVuY3Rpb25hbCB1c2UgKi9cblx0ZW52TWFwPzogVGV4dHVyZTtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNQZXJzcGVjdGl2ZUNhbWVyYU9wdGlvbnMgPSB7XG5cdGZyYW1lczogSW5maW5pdHksXG5cdHJlc29sdXRpb246IDI1Nixcblx0bWFrZURlZmF1bHQ6IGZhbHNlLFxuXHRtYW51YWw6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1wZXJzcGVjdGl2ZS1jYW1lcmEnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcGVyc3BlY3RpdmUtY2FtZXJhICNjYW1lcmEgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnQoKSA/PyBudWxsXCIgLz5cblx0XHQ8L25ndC1wZXJzcGVjdGl2ZS1jYW1lcmE+XG5cblx0XHQ8bmd0LWdyb3VwICNncm91cD5cblx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FtZXJhQ29udGVudCgpID8/IG51bGxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRleHR1cmUgfVwiIC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1BlcnNwZWN0aXZlQ2FtZXJhIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRwcm90ZWN0ZWQgcGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ2Vudk1hcCcsICdtYWtlRGVmYXVsdCcsICdtYW51YWwnLCAnZnJhbWVzJywgJ3Jlc29sdXRpb24nXSk7XG5cblx0Y29udGVudCA9IGNvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZik7XG5cdGNhbWVyYUNvbnRlbnQgPSBjb250ZW50Q2hpbGQoTmd0c0NhbWVyYUNvbnRlbnQsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSk7XG5cblx0Y2FtZXJhUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8UGVyc3BlY3RpdmVDYW1lcmE+PignY2FtZXJhJyk7XG5cdGdyb3VwUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8R3JvdXA+PignZ3JvdXAnKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRwcml2YXRlIGNhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBzaXplID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKTtcblxuXHRwcml2YXRlIG1hbnVhbCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWFudWFsJyk7XG5cdHByaXZhdGUgbWFrZURlZmF1bHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21ha2VEZWZhdWx0Jyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIGZibyA9IGluamVjdEZCTygoKSA9PiAoeyB3aWR0aDogdGhpcy5yZXNvbHV0aW9uKCkgfSkpO1xuXHRwcm90ZWN0ZWQgdGV4dHVyZSA9IHBpY2sodGhpcy5mYm8sICd0ZXh0dXJlJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgUGVyc3BlY3RpdmVDYW1lcmEsIEdyb3VwIH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuY2FtZXJhUmVmKCkubmF0aXZlRWxlbWVudC51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgbWFudWFsID0gdGhpcy5tYW51YWwoKTtcblx0XHRcdGlmIChtYW51YWwpIHJldHVybjtcblx0XHRcdGNvbnN0IFtjYW1lcmEsIHNpemVdID0gW3RoaXMuY2FtZXJhUmVmKCkubmF0aXZlRWxlbWVudCwgdGhpcy5zaXplKCldO1xuXHRcdFx0Y2FtZXJhLmFzcGVjdCA9IHNpemUud2lkdGggLyBzaXplLmhlaWdodDtcblx0XHRcdGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgbWFrZURlZmF1bHQgPSB0aGlzLm1ha2VEZWZhdWx0KCk7XG5cdFx0XHRpZiAoIW1ha2VEZWZhdWx0KSByZXR1cm47XG5cblx0XHRcdGNvbnN0IG9sZENhbSA9IHVudHJhY2tlZCh0aGlzLmNhbWVyYSk7XG5cdFx0XHR0aGlzLnN0b3JlLnVwZGF0ZSh7IGNhbWVyYTogdGhpcy5jYW1lcmFSZWYoKS5uYXRpdmVFbGVtZW50IH0pO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHRoaXMuc3RvcmUudXBkYXRlKCgpID0+ICh7IGNhbWVyYTogb2xkQ2FtIH0pKSk7XG5cdFx0fSk7XG5cdFx0LyoqL1xuXHRcdGxldCBjb3VudCA9IDA7XG5cdFx0bGV0IG9sZEVudk1hcDogQ29sb3IgfCBUZXh0dXJlIHwgbnVsbCA9IG51bGw7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGdsLCBzY2VuZSB9KSA9PiB7XG5cdFx0XHRjb25zdCBbeyBmcmFtZXMsIGVudk1hcCB9LCBncm91cCwgY2FtZXJhLCBmYm9dID0gW1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0dGhpcy5ncm91cFJlZigpLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuY2FtZXJhUmVmKCkubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0dGhpcy5mYm8oKSxcblx0XHRcdF07XG5cdFx0XHRpZiAodGhpcy5jYW1lcmFDb250ZW50KCkgJiYgZ3JvdXAgJiYgY2FtZXJhICYmIGZibyAmJiAoZnJhbWVzID09PSBJbmZpbml0eSB8fCBjb3VudCA8IGZyYW1lcykpIHtcblx0XHRcdFx0Z3JvdXAudmlzaWJsZSA9IGZhbHNlO1xuXHRcdFx0XHRnbC5zZXRSZW5kZXJUYXJnZXQoZmJvKTtcblx0XHRcdFx0b2xkRW52TWFwID0gc2NlbmUuYmFja2dyb3VuZDtcblx0XHRcdFx0aWYgKGVudk1hcCkgc2NlbmUuYmFja2dyb3VuZCA9IGVudk1hcDtcblx0XHRcdFx0Z2wucmVuZGVyKHNjZW5lLCBjYW1lcmEpO1xuXHRcdFx0XHRzY2VuZS5iYWNrZ3JvdW5kID0gb2xkRW52TWFwO1xuXHRcdFx0XHRnbC5zZXRSZW5kZXJUYXJnZXQobnVsbCk7XG5cdFx0XHRcdGdyb3VwLnZpc2libGUgPSB0cnVlO1xuXHRcdFx0XHRjb3VudCsrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLWNvbnRyb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2NvbnRyb2xzL3NyYy9hbmd1bGFyLXRocmVlLXNvYmEtY29udHJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -1,9 +0,0 @@
1
- export * from './lib/camera-controls';
2
- export * from './lib/orbit-controls';
3
- export * from './lib/scroll-controls';
4
- import { NgtsPivotControls as GizmosPivotControls, } from 'angular-three-soba/gizmos';
5
- /**
6
- * @deprecated Use `NgtsPivotControls` from `angular-three-soba/gizmos` instead.
7
- */
8
- export const NgtsPivotControls = GizmosPivotControls;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLE9BQU8sRUFDTixpQkFBaUIsSUFBSSxtQkFBbUIsR0FFeEMsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2FtZXJhLWNvbnRyb2xzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29yYml0LWNvbnRyb2xzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Njcm9sbC1jb250cm9scyc7XG5cbmltcG9ydCB7XG5cdE5ndHNQaXZvdENvbnRyb2xzIGFzIEdpem1vc1Bpdm90Q29udHJvbHMsXG5cdE5ndHNQaXZvdENvbnRyb2xzT3B0aW9ucyBhcyBHaXptb3NQaXZvdENvbnRyb2xzT3B0aW9ucyxcbn0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2dpem1vcyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBOZ3RzUGl2b3RDb250cm9sc2AgZnJvbSBgYW5ndWxhci10aHJlZS1zb2JhL2dpem1vc2AgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IE5ndHNQaXZvdENvbnRyb2xzID0gR2l6bW9zUGl2b3RDb250cm9scztcbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBOZ3RzUGl2b3RDb250cm9sc09wdGlvbnNgIGZyb20gYGFuZ3VsYXItdGhyZWUtc29iYS9naXptb3NgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCB0eXBlIE5ndHNQaXZvdENvbnRyb2xzT3B0aW9ucyA9IEdpem1vc1Bpdm90Q29udHJvbHNPcHRpb25zO1xuIl19
@@ -1,126 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, output, } from '@angular/core';
2
- import { extend, injectBeforeRender, injectStore, NgtArgs, omit, pick } from 'angular-three';
3
- import CameraControls from 'camera-controls';
4
- import { mergeInputs } from 'ngxtension/inject-inputs';
5
- import { Box3, MathUtils, Matrix4, Quaternion, Raycaster, Sphere, Spherical, Vector2, Vector3, Vector4, } from 'three';
6
- import * as i0 from "@angular/core";
7
- const defaultOptions = {
8
- makeDefault: false,
9
- events: false,
10
- regress: false,
11
- };
12
- export class NgtsCameraControls {
13
- constructor() {
14
- this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
15
- this.parameters = omit(this.options, ['makeDefault', 'camera', 'regress', 'domElement']);
16
- this.changed = output();
17
- this.started = output();
18
- this.ended = output();
19
- this.store = injectStore();
20
- this.invalidate = this.store.select('invalidate');
21
- this.performanceRegress = this.store.select('performance', 'regress');
22
- this.defaultCamera = this.store.select('camera');
23
- this.glDomElement = this.store.select('gl', 'domElement');
24
- this.eventsElement = this.store.select('events', 'connected');
25
- this.camera = pick(this.options, 'camera');
26
- this.regress = pick(this.options, 'regress');
27
- this.domElement = pick(this.options, 'domElement');
28
- this.makeDefault = pick(this.options, 'makeDefault');
29
- this.controls = computed(() => {
30
- const [camera, defaultCamera] = [this.camera(), this.defaultCamera()];
31
- return new CameraControls(camera || defaultCamera);
32
- });
33
- // to allow for tree shaking, we only import the subset of THREE that is used by camera-controls
34
- // see https://github.com/yomotsu/camera-controls#important
35
- CameraControls.install({
36
- THREE: {
37
- Box3,
38
- MathUtils: { clamp: MathUtils.clamp },
39
- Matrix4,
40
- Quaternion,
41
- Raycaster,
42
- Sphere,
43
- Spherical,
44
- Vector2,
45
- Vector3,
46
- Vector4,
47
- },
48
- });
49
- extend({ CameraControls });
50
- injectBeforeRender(({ delta }) => {
51
- const controls = this.controls();
52
- if (controls?.enabled) {
53
- controls.update(delta);
54
- }
55
- }, { priority: -1 });
56
- effect((onCleanup) => {
57
- const [domElement, eventsElement, glDomElement, controls] = [
58
- this.domElement(),
59
- this.eventsElement(),
60
- this.glDomElement(),
61
- this.controls(),
62
- ];
63
- controls.connect(domElement || eventsElement || glDomElement);
64
- onCleanup(() => controls.disconnect());
65
- });
66
- effect((onCleanup) => {
67
- const controls = this.controls();
68
- if (!controls)
69
- return;
70
- const [regress, performanceRegress, invalidate] = [this.regress(), this.performanceRegress(), this.invalidate()];
71
- const callback = (e) => {
72
- invalidate();
73
- if (regress)
74
- performanceRegress();
75
- this.changed.emit(e);
76
- };
77
- const startCallback = this.started.emit.bind(this.started);
78
- const endCallback = this.ended.emit.bind(this.ended);
79
- controls.addEventListener('update', callback);
80
- controls.addEventListener('controlstart', startCallback);
81
- controls.addEventListener('controlend', endCallback);
82
- controls.addEventListener('control', callback);
83
- controls.addEventListener('transitionstart', callback);
84
- controls.addEventListener('wake', callback);
85
- onCleanup(() => {
86
- controls.removeEventListener('update', callback);
87
- controls.removeEventListener('controlstart', startCallback);
88
- controls.removeEventListener('controlend', endCallback);
89
- controls.removeEventListener('control', callback);
90
- controls.removeEventListener('transitionstart', callback);
91
- controls.removeEventListener('wake', callback);
92
- });
93
- });
94
- effect((onCleanup) => {
95
- const makeDefault = this.makeDefault();
96
- if (!makeDefault)
97
- return;
98
- const controls = this.controls();
99
- const oldControls = this.store.snapshot.controls;
100
- this.store.update({ controls: controls });
101
- onCleanup(() => void this.store.update({ controls: oldControls }));
102
- });
103
- }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsCameraControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NgtsCameraControls, isStandalone: true, selector: "ngts-camera-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", started: "started", ended: "ended" }, ngImport: i0, template: `
106
- <ngt-primitive *args="[controls()]" [parameters]="parameters()">
107
- <ng-content />
108
- </ngt-primitive>
109
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
110
- }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsCameraControls, decorators: [{
112
- type: Component,
113
- args: [{
114
- selector: 'ngts-camera-controls',
115
- standalone: true,
116
- template: `
117
- <ngt-primitive *args="[controls()]" [parameters]="parameters()">
118
- <ng-content />
119
- </ngt-primitive>
120
- `,
121
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
122
- imports: [NgtArgs],
123
- changeDetection: ChangeDetectionStrategy.OnPush,
124
- }]
125
- }], ctorParameters: () => [] });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWNvbnRyb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2NvbnRyb2xzL3NyYy9saWIvY2FtZXJhLWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFhLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxjQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTixJQUFJLEVBRUosU0FBUyxFQUNULE9BQU8sRUFDUCxVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxPQUFPLEdBQ1AsTUFBTSxPQUFPLENBQUM7O0FBVWYsTUFBTSxjQUFjLEdBQXdEO0lBQzNFLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsT0FBTyxFQUFFLEtBQUs7Q0FDZCxDQUFDO0FBY0YsTUFBTSxPQUFPLGtCQUFrQjtJQXlCOUI7UUF4QkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRXBGLFlBQU8sR0FBRyxNQUFNLEVBQU8s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LHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdGlucHV0LFxuXHRvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlLCBOZ3RBcmdzLCBOZ3RDYW1lcmEsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCBDYW1lcmFDb250cm9scyBmcm9tICdjYW1lcmEtY29udHJvbHMnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHtcblx0Qm94Myxcblx0RXZlbnREaXNwYXRjaGVyLFxuXHRNYXRoVXRpbHMsXG5cdE1hdHJpeDQsXG5cdFF1YXRlcm5pb24sXG5cdFJheWNhc3Rlcixcblx0U3BoZXJlLFxuXHRTcGhlcmljYWwsXG5cdFZlY3RvcjIsXG5cdFZlY3RvcjMsXG5cdFZlY3RvcjQsXG59IGZyb20gJ3RocmVlJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzQ2FtZXJhQ29udHJvbHNPcHRpb25zIHtcblx0Y2FtZXJhPzogTmd0Q2FtZXJhO1xuXHRkb21FbGVtZW50PzogSFRNTEVsZW1lbnQ7XG5cdG1ha2VEZWZhdWx0OiBib29sZWFuO1xuXHRldmVudHM6IGJvb2xlYW47XG5cdHJlZ3Jlc3M6IGJvb2xlYW47XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBQYXJ0aWFsPENhbWVyYUNvbnRyb2xzPiAmIE5ndHNDYW1lcmFDb250cm9sc09wdGlvbnMgPSB7XG5cdG1ha2VEZWZhdWx0OiBmYWxzZSxcblx0ZXZlbnRzOiBmYWxzZSxcblx0cmVncmVzczogZmFsc2UsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWNhbWVyYS1jb250cm9scycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbY29udHJvbHMoKV1cIiBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNDYW1lcmFDb250cm9scyB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ21ha2VEZWZhdWx0JywgJ2NhbWVyYScsICdyZWdyZXNzJywgJ2RvbUVsZW1lbnQnXSk7XG5cblx0Y2hhbmdlZCA9IG91dHB1dDxhbnk+KCk7XG5cdHN0YXJ0ZWQgPSBvdXRwdXQ8YW55PigpO1xuXHRlbmRlZCA9IG91dHB1dDxhbnk+KCk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cdHByaXZhdGUgcGVyZm9ybWFuY2VSZWdyZXNzID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3BlcmZvcm1hbmNlJywgJ3JlZ3Jlc3MnKTtcblx0cHJpdmF0ZSBkZWZhdWx0Q2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIGdsRG9tRWxlbWVudCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcsICdkb21FbGVtZW50Jyk7XG5cdHByaXZhdGUgZXZlbnRzRWxlbWVudCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdldmVudHMnLCAnY29ubmVjdGVkJyk7XG5cblx0cHJpdmF0ZSBjYW1lcmEgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NhbWVyYScpO1xuXHRwcml2YXRlIHJlZ3Jlc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3JlZ3Jlc3MnKTtcblx0cHJpdmF0ZSBkb21FbGVtZW50ID0gcGljayh0aGlzLm9wdGlvbnMsICdkb21FbGVtZW50Jyk7XG5cdHByaXZhdGUgbWFrZURlZmF1bHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21ha2VEZWZhdWx0Jyk7XG5cblx0Y29udHJvbHMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW2NhbWVyYSwgZGVmYXVsdENhbWVyYV0gPSBbdGhpcy5jYW1lcmEoKSwgdGhpcy5kZWZhdWx0Q2FtZXJhKCldO1xuXHRcdHJldHVybiBuZXcgQ2FtZXJhQ29udHJvbHMoY2FtZXJhIHx8IGRlZmF1bHRDYW1lcmEpO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHQvLyB0byBhbGxvdyBmb3IgdHJlZSBzaGFraW5nLCB3ZSBvbmx5IGltcG9ydCB0aGUgc3Vic2V0IG9mIFRIUkVFIHRoYXQgaXMgdXNlZCBieSBjYW1lcmEtY29udHJvbHNcblx0XHQvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3lvbW90c3UvY2FtZXJhLWNvbnRyb2xzI2ltcG9ydGFudFxuXHRcdENhbWVyYUNvbnRyb2xzLmluc3RhbGwoe1xuXHRcdFx0VEhSRUU6IHtcblx0XHRcdFx0Qm94Myxcblx0XHRcdFx0TWF0aFV0aWxzOiB7IGNsYW1wOiBNYXRoVXRpbHMuY2xhbXAgfSxcblx0XHRcdFx0TWF0cml4NCxcblx0XHRcdFx0UXVhdGVybmlvbixcblx0XHRcdFx0UmF5Y2FzdGVyLFxuXHRcdFx0XHRTcGhlcmUsXG5cdFx0XHRcdFNwaGVyaWNhbCxcblx0XHRcdFx0VmVjdG9yMixcblx0XHRcdFx0VmVjdG9yMyxcblx0XHRcdFx0VmVjdG9yNCxcblx0XHRcdH0sXG5cdFx0fSk7XG5cdFx0ZXh0ZW5kKHsgQ2FtZXJhQ29udHJvbHMgfSk7XG5cblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHQoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jb250cm9scygpO1xuXHRcdFx0XHRpZiAoY29udHJvbHM/LmVuYWJsZWQpIHtcblx0XHRcdFx0XHRjb250cm9scy51cGRhdGUoZGVsdGEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBwcmlvcml0eTogLTEgfSxcblx0XHQpO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtkb21FbGVtZW50LCBldmVudHNFbGVtZW50LCBnbERvbUVsZW1lbnQsIGNvbnRyb2xzXSA9IFtcblx0XHRcdFx0dGhpcy5kb21FbGVtZW50KCksXG5cdFx0XHRcdHRoaXMuZXZlbnRzRWxlbWVudCgpLFxuXHRcdFx0XHR0aGlzLmdsRG9tRWxlbWVudCgpLFxuXHRcdFx0XHR0aGlzLmNvbnRyb2xzKCksXG5cdFx0XHRdO1xuXHRcdFx0Y29udHJvbHMuY29ubmVjdChkb21FbGVtZW50IHx8IGV2ZW50c0VsZW1lbnQgfHwgZ2xEb21FbGVtZW50KTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBjb250cm9scy5kaXNjb25uZWN0KCkpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jb250cm9scygpO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbcmVncmVzcywgcGVyZm9ybWFuY2VSZWdyZXNzLCBpbnZhbGlkYXRlXSA9IFt0aGlzLnJlZ3Jlc3MoKSwgdGhpcy5wZXJmb3JtYW5jZVJlZ3Jlc3MoKSwgdGhpcy5pbnZhbGlkYXRlKCldO1xuXG5cdFx0XHRjb25zdCBjYWxsYmFjayA9IChlOiBhbnkpID0+IHtcblx0XHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdFx0XHRpZiAocmVncmVzcykgcGVyZm9ybWFuY2VSZWdyZXNzKCk7XG5cdFx0XHRcdHRoaXMuY2hhbmdlZC5lbWl0KGUpO1xuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3Qgc3RhcnRDYWxsYmFjayA9IHRoaXMuc3RhcnRlZC5lbWl0LmJpbmQodGhpcy5zdGFydGVkKTtcblx0XHRcdGNvbnN0IGVuZENhbGxiYWNrID0gdGhpcy5lbmRlZC5lbWl0LmJpbmQodGhpcy5lbmRlZCk7XG5cblx0XHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZScsIGNhbGxiYWNrKTtcblx0XHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRyb2xzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuXHRcdFx0Y29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignY29udHJvbGVuZCcsIGVuZENhbGxiYWNrKTtcblx0XHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRyb2wnLCBjYWxsYmFjayk7XG5cdFx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uc3RhcnQnLCBjYWxsYmFjayk7XG5cdFx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCd3YWtlJywgY2FsbGJhY2spO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCd1cGRhdGUnLCBjYWxsYmFjayk7XG5cdFx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbnRyb2xzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuXHRcdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250cm9sZW5kJywgZW5kQ2FsbGJhY2spO1xuXHRcdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250cm9sJywgY2FsbGJhY2spO1xuXHRcdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uc3RhcnQnLCBjYWxsYmFjayk7XG5cdFx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dha2UnLCBjYWxsYmFjayk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBtYWtlRGVmYXVsdCA9IHRoaXMubWFrZURlZmF1bHQoKTtcblx0XHRcdGlmICghbWFrZURlZmF1bHQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzKCk7XG5cdFx0XHRjb25zdCBvbGRDb250cm9scyA9IHRoaXMuc3RvcmUuc25hcHNob3QuY29udHJvbHM7XG5cdFx0XHR0aGlzLnN0b3JlLnVwZGF0ZSh7IGNvbnRyb2xzOiBjb250cm9scyBhcyB1bmtub3duIGFzIEV2ZW50RGlzcGF0Y2hlciB9KTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB2b2lkIHRoaXMuc3RvcmUudXBkYXRlKHsgY29udHJvbHM6IG9sZENvbnRyb2xzIH0pKTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -1,114 +0,0 @@
1
- import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, output } from '@angular/core';
2
- import { injectBeforeRender, injectStore, NgtArgs, omit, pick } from 'angular-three';
3
- import { mergeInputs } from 'ngxtension/inject-inputs';
4
- import { OrbitControls } from 'three-stdlib';
5
- import * as i0 from "@angular/core";
6
- const defaultOptions = {
7
- enableDamping: true,
8
- regress: false,
9
- makeDefault: false,
10
- keyEvents: false,
11
- };
12
- export class NgtsOrbitControls {
13
- constructor() {
14
- this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
15
- this.parameters = omit(this.options, ['makeDefault', 'camera', 'regress', 'domElement', 'keyEvents', 'enableDamping']);
16
- this.changed = output();
17
- this.started = output();
18
- this.ended = output();
19
- this.store = injectStore();
20
- this.invalidate = this.store.select('invalidate');
21
- this.performanceRegress = this.store.select('performance', 'regress');
22
- this.defaultCamera = this.store.select('camera');
23
- this.glDomElement = this.store.select('gl', 'domElement');
24
- this.camera = pick(this.options, 'camera');
25
- this.regress = pick(this.options, 'regress');
26
- this.keyEvents = pick(this.options, 'keyEvents');
27
- this.domElement = pick(this.options, 'domElement');
28
- this.makeDefault = pick(this.options, 'makeDefault');
29
- this.controls = computed(() => {
30
- const [camera, defaultCamera] = [this.camera(), this.defaultCamera()];
31
- const controlsCamera = camera || defaultCamera;
32
- return new OrbitControls(controlsCamera);
33
- });
34
- this.enableDamping = pick(this.options, 'enableDamping');
35
- injectBeforeRender(() => {
36
- const controls = this.controls();
37
- if (controls?.enabled) {
38
- controls.update();
39
- }
40
- }, { priority: -1 });
41
- effect((onCleanup) => {
42
- const [keyEvents, domElement, controls] = [
43
- this.keyEvents(),
44
- this.domElement() || this.store.get('events', 'connected') || this.glDomElement(),
45
- this.controls(),
46
- this.invalidate(),
47
- this.regress(),
48
- ];
49
- if (!controls)
50
- return;
51
- if (keyEvents) {
52
- controls.connect(keyEvents === true ? domElement : keyEvents);
53
- }
54
- else {
55
- controls.connect(domElement);
56
- }
57
- onCleanup(() => void controls.dispose());
58
- });
59
- effect((onCleanup) => {
60
- const makeDefault = this.makeDefault();
61
- if (!makeDefault)
62
- return;
63
- const controls = this.controls();
64
- if (!controls)
65
- return;
66
- const oldControls = this.store.get('controls');
67
- this.store.update({ controls });
68
- onCleanup(() => void this.store.update({ controls: oldControls }));
69
- });
70
- effect((onCleanup) => {
71
- const controls = this.controls();
72
- if (!controls)
73
- return;
74
- const [invalidate, performanceRegress, regress] = [this.invalidate(), this.performanceRegress(), this.regress()];
75
- const changeCallback = (e) => {
76
- invalidate();
77
- if (regress)
78
- performanceRegress();
79
- this.changed.emit(e);
80
- };
81
- const startCallback = this.started.emit.bind(this.started);
82
- const endCallback = this.ended.emit.bind(this.ended);
83
- controls.addEventListener('change', changeCallback);
84
- controls.addEventListener('start', startCallback);
85
- controls.addEventListener('end', endCallback);
86
- onCleanup(() => {
87
- controls.removeEventListener('change', changeCallback);
88
- controls.removeEventListener('start', startCallback);
89
- controls.removeEventListener('end', endCallback);
90
- });
91
- });
92
- }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", started: "started", ended: "ended" }, ngImport: i0, template: `
95
- <ngt-primitive *args="[controls()]" [parameters]="parameters()" [enableDamping]="enableDamping()">
96
- <ng-content />
97
- </ngt-primitive>
98
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
99
- }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsOrbitControls, decorators: [{
101
- type: Component,
102
- args: [{
103
- selector: 'ngts-orbit-controls',
104
- standalone: true,
105
- template: `
106
- <ngt-primitive *args="[controls()]" [parameters]="parameters()" [enableDamping]="enableDamping()">
107
- <ng-content />
108
- </ngt-primitive>
109
- `,
110
- imports: [NgtArgs],
111
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
112
- }]
113
- }], ctorParameters: () => [] });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL2xpYi9vcmJpdC1jb250cm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBeUIsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFZN0MsTUFBTSxjQUFjLEdBQXNEO0lBQ3pFLGFBQWEsRUFBRSxJQUFJO0lBQ25CLE9BQU8sRUFBRSxLQUFLO0lBQ2QsV0FBVyxFQUFFLEtBQUs7SUFDbEIsU0FBUyxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQWFGLE1BQU0sT0FBTyxpQkFBaUI7SUE0QjdCO1FBM0JBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBRWxILFlBQU8sR0FBRyxNQUFNLEVBQVMsQ0FBQztRQUMxQixZQUFPLEdBQUcsTUFBTSxFQUFTLENBQUM7UUFDMUIsVUFBSyxHQUFHLE1BQU0sRUFBUyxDQUFDO1FBRWhCLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUN0Qixl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LElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNwRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ2xELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFFOUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxRQUFRLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN2RCxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUNyRCxRQUFRLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQTdGVyxpQkFBaUI7bUdBQWpCLGlCQUFpQiw4UkFSbkI7Ozs7RUFJVCw0REFDUyxPQUFPOzs0RkFHTCxpQkFBaUI7a0JBWDdCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZWZmZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlLCBOZ3RBcmdzLCBOZ3RDYW1lcmEsIE5ndFZlY3RvcjMsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IENhbWVyYSwgRXZlbnQgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBPcmJpdENvbnRyb2xzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzT3JiaXRDb250cm9sc09wdGlvbnMge1xuXHRjYW1lcmE/OiBDYW1lcmE7XG5cdGRvbUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblx0dGFyZ2V0PzogTmd0VmVjdG9yMztcblx0bWFrZURlZmF1bHQ6IGJvb2xlYW47XG5cdHJlZ3Jlc3M6IGJvb2xlYW47XG5cdGVuYWJsZURhbXBpbmc6IGJvb2xlYW47XG5cdGtleUV2ZW50czogYm9vbGVhbiB8IEhUTUxFbGVtZW50O1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogUGFydGlhbDxPcmJpdENvbnRyb2xzPiAmIE5ndHNPcmJpdENvbnRyb2xzT3B0aW9ucyA9IHtcblx0ZW5hYmxlRGFtcGluZzogdHJ1ZSxcblx0cmVncmVzczogZmFsc2UsXG5cdG1ha2VEZWZhdWx0OiBmYWxzZSxcblx0a2V5RXZlbnRzOiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtb3JiaXQtY29udHJvbHMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2NvbnRyb2xzKCldXCIgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCIgW2VuYWJsZURhbXBpbmddPVwiZW5hYmxlRGFtcGluZygpXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNPcmJpdENvbnRyb2xzIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnbWFrZURlZmF1bHQnLCAnY2FtZXJhJywgJ3JlZ3Jlc3MnLCAnZG9tRWxlbWVudCcsICdrZXlFdmVudHMnLCAnZW5hYmxlRGFtcGluZyddKTtcblxuXHRjaGFuZ2VkID0gb3V0cHV0PEV2ZW50PigpO1xuXHRzdGFydGVkID0gb3V0cHV0PEV2ZW50PigpO1xuXHRlbmRlZCA9IG91dHB1dDxFdmVudD4oKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblx0cHJpdmF0ZSBwZXJmb3JtYW5jZVJlZ3Jlc3MgPSB0aGlzLnN0b3JlLnNlbGVjdCgncGVyZm9ybWFuY2UnLCAncmVncmVzcycpO1xuXHRwcml2YXRlIGRlZmF1bHRDYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cdHByaXZhdGUgZ2xEb21FbGVtZW50ID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJywgJ2RvbUVsZW1lbnQnKTtcblxuXHRwcml2YXRlIGNhbWVyYSA9IHBpY2sodGhpcy5vcHRpb25zLCAnY2FtZXJhJyk7XG5cdHByaXZhdGUgcmVncmVzcyA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVncmVzcycpO1xuXHRwcml2YXRlIGtleUV2ZW50cyA9IHBpY2sodGhpcy5vcHRpb25zLCAna2V5RXZlbnRzJyk7XG5cdHByaXZhdGUgZG9tRWxlbWVudCA9IHBpY2sodGhpcy5vcHRpb25zLCAnZG9tRWxlbWVudCcpO1xuXHRwcml2YXRlIG1ha2VEZWZhdWx0ID0gcGljayh0aGlzLm9wdGlvbnMsICdtYWtlRGVmYXVsdCcpO1xuXG5cdGNvbnRyb2xzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtjYW1lcmEsIGRlZmF1bHRDYW1lcmFdID0gW3RoaXMuY2FtZXJhKCksIHRoaXMuZGVmYXVsdENhbWVyYSgpXTtcblx0XHRjb25zdCBjb250cm9sc0NhbWVyYSA9IGNhbWVyYSB8fCBkZWZhdWx0Q2FtZXJhO1xuXHRcdHJldHVybiBuZXcgT3JiaXRDb250cm9scyhjb250cm9sc0NhbWVyYSBhcyBOZ3RDYW1lcmEpO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgZW5hYmxlRGFtcGluZyA9IHBpY2sodGhpcy5vcHRpb25zLCAnZW5hYmxlRGFtcGluZycpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcihcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzKCk7XG5cdFx0XHRcdGlmIChjb250cm9scz8uZW5hYmxlZCkge1xuXHRcdFx0XHRcdGNvbnRyb2xzLnVwZGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBwcmlvcml0eTogLTEgfSxcblx0XHQpO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtrZXlFdmVudHMsIGRvbUVsZW1lbnQsIGNvbnRyb2xzXSA9IFtcblx0XHRcdFx0dGhpcy5rZXlFdmVudHMoKSxcblx0XHRcdFx0dGhpcy5kb21FbGVtZW50KCkgfHwgdGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycsICdjb25uZWN0ZWQnKSB8fCB0aGlzLmdsRG9tRWxlbWVudCgpLFxuXHRcdFx0XHR0aGlzLmNvbnRyb2xzKCksXG5cdFx0XHRcdHRoaXMuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLnJlZ3Jlc3MoKSxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cdFx0XHRpZiAoa2V5RXZlbnRzKSB7XG5cdFx0XHRcdGNvbnRyb2xzLmNvbm5lY3Qoa2V5RXZlbnRzID09PSB0cnVlID8gZG9tRWxlbWVudCA6IGtleUV2ZW50cyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb250cm9scy5jb25uZWN0KGRvbUVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHZvaWQgY29udHJvbHMuZGlzcG9zZSgpKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBtYWtlRGVmYXVsdCA9IHRoaXMubWFrZURlZmF1bHQoKTtcblx0XHRcdGlmICghbWFrZURlZmF1bHQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzKCk7XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy5zdG9yZS5nZXQoJ2NvbnRyb2xzJyk7XG5cdFx0XHR0aGlzLnN0b3JlLnVwZGF0ZSh7IGNvbnRyb2xzIH0pO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHZvaWQgdGhpcy5zdG9yZS51cGRhdGUoeyBjb250cm9sczogb2xkQ29udHJvbHMgfSkpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jb250cm9scygpO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbaW52YWxpZGF0ZSwgcGVyZm9ybWFuY2VSZWdyZXNzLCByZWdyZXNzXSA9IFt0aGlzLmludmFsaWRhdGUoKSwgdGhpcy5wZXJmb3JtYW5jZVJlZ3Jlc3MoKSwgdGhpcy5yZWdyZXNzKCldO1xuXG5cdFx0XHRjb25zdCBjaGFuZ2VDYWxsYmFjazogKGU6IEV2ZW50KSA9PiB2b2lkID0gKGUpID0+IHtcblx0XHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdFx0XHRpZiAocmVncmVzcykgcGVyZm9ybWFuY2VSZWdyZXNzKCk7XG5cdFx0XHRcdHRoaXMuY2hhbmdlZC5lbWl0KGUpO1xuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3Qgc3RhcnRDYWxsYmFjayA9IHRoaXMuc3RhcnRlZC5lbWl0LmJpbmQodGhpcy5zdGFydGVkKTtcblx0XHRcdGNvbnN0IGVuZENhbGxiYWNrID0gdGhpcy5lbmRlZC5lbWl0LmJpbmQodGhpcy5lbmRlZCk7XG5cblx0XHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcblx0XHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG5cdFx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdlbmQnLCBlbmRDYWxsYmFjayk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcblx0XHRcdFx0Y29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcblx0XHRcdFx0Y29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==