angular-three-soba 2.14.0 → 3.0.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,177 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, output, viewChild, } from '@angular/core';
2
- import { extend, getLocalState, injectStore, NgtArgs, omit, pick, resolveRef, } from 'angular-three';
3
- import { Group } from 'three';
4
- import { TransformControls } from 'three-stdlib';
5
- import * as i0 from "@angular/core";
6
- export class NgtsTransformControls {
7
- constructor() {
8
- this.object = input(null);
9
- this.options = input({});
10
- this.parameters = omit(this.options, [
11
- 'enabled',
12
- 'axis',
13
- 'mode',
14
- 'translationSnap',
15
- 'rotationSnap',
16
- 'scaleSnap',
17
- 'space',
18
- 'size',
19
- 'showX',
20
- 'showY',
21
- 'showZ',
22
- 'domElement',
23
- 'makeDefault',
24
- 'camera',
25
- ]);
26
- this.controlsOptions = pick(this.options, [
27
- 'enabled',
28
- 'axis',
29
- 'mode',
30
- 'translationSnap',
31
- 'rotationSnap',
32
- 'scaleSnap',
33
- 'space',
34
- 'size',
35
- 'showX',
36
- 'showY',
37
- 'showZ',
38
- ]);
39
- this.camera = pick(this.options, 'camera');
40
- this.domElement = pick(this.options, 'domElement');
41
- this.makeDefault = pick(this.options, 'makeDefault');
42
- this.change = output();
43
- this.mouseDown = output();
44
- this.mouseUp = output();
45
- this.objectChange = output();
46
- this.groupRef = viewChild.required('group');
47
- this.store = injectStore();
48
- this.glDomElement = this.store.select('gl', 'domElement');
49
- this.defaultCamera = this.store.select('camera');
50
- this.events = this.store.select('events');
51
- this.defaultControls = this.store.select('controls');
52
- this.invalidate = this.store.select('invalidate');
53
- this.controls = computed(() => {
54
- let camera = this.camera();
55
- if (!camera) {
56
- camera = this.defaultCamera();
57
- }
58
- let domElement = this.domElement();
59
- if (!domElement) {
60
- domElement = this.events().connected || this.glDomElement();
61
- }
62
- return new TransformControls(camera, domElement);
63
- });
64
- extend({ Group });
65
- effect((onCleanup) => {
66
- const cleanup = this.attachControlsEffect();
67
- onCleanup(() => cleanup?.());
68
- });
69
- effect((onCleanup) => {
70
- const cleanup = this.disableDefaultControlsEffect();
71
- onCleanup(() => cleanup?.());
72
- });
73
- effect((onCleanup) => {
74
- const cleanup = this.setupControlsEventsEffect();
75
- onCleanup(() => cleanup?.());
76
- });
77
- effect((onCleanup) => {
78
- const cleanup = this.updateDefaultControlsEffect();
79
- onCleanup(() => cleanup?.());
80
- });
81
- }
82
- attachControlsEffect() {
83
- const group = this.groupRef().nativeElement;
84
- if (!group)
85
- return;
86
- const localState = getLocalState(group);
87
- if (!localState)
88
- return;
89
- const [object, controls] = [resolveRef(this.object()), this.controls(), localState.objects()];
90
- if (object) {
91
- controls.attach(object);
92
- }
93
- else {
94
- controls.attach(group);
95
- }
96
- return () => controls.detach();
97
- }
98
- disableDefaultControlsEffect() {
99
- const defaultControls = this.defaultControls();
100
- if (!defaultControls)
101
- return;
102
- const controls = this.controls();
103
- const callback = (event) => {
104
- defaultControls.enabled = !event.value;
105
- };
106
- // @ts-expect-error - three-stdlib types are not up-to-date
107
- controls.addEventListener('dragging-changed', callback);
108
- return () => {
109
- // @ts-expect-error - three-stdlib types are not up-to-date
110
- controls.removeEventListener('dragging-changed', callback);
111
- };
112
- }
113
- setupControlsEventsEffect() {
114
- const [controls, invalidate] = [this.controls(), this.invalidate()];
115
- const onChange = (event) => {
116
- invalidate();
117
- if (!this.change['destroyed']) {
118
- this.change.emit(event);
119
- }
120
- };
121
- const onMouseDown = this.mouseDown.emit.bind(this.mouseDown);
122
- const onMouseUp = this.mouseUp.emit.bind(this.mouseUp);
123
- const onObjectChange = this.objectChange.emit.bind(this.objectChange);
124
- // @ts-expect-error - three-stdlib types are not up-to-date
125
- controls.addEventListener('change', onChange);
126
- // @ts-expect-error - three-stdlib types are not up-to-date
127
- controls.addEventListener('mouseDown', onMouseDown);
128
- // @ts-expect-error - three-stdlib types are not up-to-date
129
- controls.addEventListener('mouseUp', onMouseUp);
130
- // @ts-expect-error - three-stdlib types are not up-to-date
131
- controls.addEventListener('objectChange', onObjectChange);
132
- return () => {
133
- // @ts-expect-error - three-stdlib types are not up-to-date
134
- controls.removeEventListener('change', onChange);
135
- // @ts-expect-error - three-stdlib types are not up-to-date
136
- controls.removeEventListener('mouseDown', onMouseDown);
137
- // @ts-expect-error - three-stdlib types are not up-to-date
138
- controls.removeEventListener('mouseUp', onMouseUp);
139
- // @ts-expect-error - three-stdlib types are not up-to-date
140
- controls.removeEventListener('objectChange', onObjectChange);
141
- };
142
- }
143
- updateDefaultControlsEffect() {
144
- const [controls, makeDefault] = [this.controls(), this.makeDefault()];
145
- if (!makeDefault)
146
- return;
147
- const oldControls = this.store.snapshot.controls;
148
- this.store.update({ controls });
149
- return () => this.store.update(() => ({ controls: oldControls }));
150
- }
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsTransformControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsTransformControls, isStandalone: true, selector: "ngts-transform-controls", inputs: { object: { classPropertyName: "object", publicName: "object", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", mouseDown: "mouseDown", mouseUp: "mouseUp", objectChange: "objectChange" }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
153
- <ngt-primitive *args="[controls()]" [parameters]="controlsOptions()" />
154
-
155
- <ngt-group #group [parameters]="parameters()">
156
- <ng-content />
157
- </ngt-group>
158
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
159
- }
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsTransformControls, decorators: [{
161
- type: Component,
162
- args: [{
163
- selector: 'ngts-transform-controls',
164
- standalone: true,
165
- template: `
166
- <ngt-primitive *args="[controls()]" [parameters]="controlsOptions()" />
167
-
168
- <ngt-group #group [parameters]="parameters()">
169
- <ng-content />
170
- </ngt-group>
171
- `,
172
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
173
- changeDetection: ChangeDetectionStrategy.OnPush,
174
- imports: [NgtArgs],
175
- }]
176
- }], ctorParameters: () => [] });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLWNvbnRyb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2dpem1vcy9zcmMvbGliL3RyYW5zZm9ybS1jb250cm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFFTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ04sTUFBTSxFQUNOLGFBQWEsRUFDYixXQUFXLEVBQ1gsT0FBTyxFQUdQLElBQUksRUFDSixJQUFJLEVBQ0osVUFBVSxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBVSxLQUFLLEVBQWlDLE1BQU0sT0FBTyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUF3Q2pELE1BQU0sT0FBTyxxQkFBcUI7SUFrRWpDO1FBakVBLFdBQU0sR0FBRyxLQUFLLENBQXFELElBQUksQ0FBQyxDQUFDO1FBQ3pFLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBMkMsQ0FBQyxDQUFDO1FBQzdELGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMvQixTQUFTO1lBQ1QsTUFBTTtZQUNOLE1BQU07WUFDTixpQkFBaUI7WUFDakIsY0FBYztZQUNkLFdBQVc7WUFDWCxPQUFPO1lBQ1AsTUFBTTtZQUNOLE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLFlBQVk7WUFDWixhQUFhO1lBQ2IsUUFBUTtTQUNSLENBQUMsQ0FBQztRQUVPLG9CQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDOUMsU0FBUztZQUNULE1BQU07WUFDTixNQUFNO1lBQ04saUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxXQUFXO1lBQ1gs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Q0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0U2lnbmFsLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0ZXh0ZW5kLFxuXHRnZXRMb2NhbFN0YXRlLFxuXHRpbmplY3RTdG9yZSxcblx0Tmd0QXJncyxcblx0Tmd0R3JvdXAsXG5cdE5ndE9iamVjdDNETm9kZSxcblx0b21pdCxcblx0cGljayxcblx0cmVzb2x2ZVJlZixcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBDYW1lcmEsIEdyb3VwLCBPYmplY3QzRCwgRXZlbnQgYXMgVGhyZWVFdmVudCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IFRyYW5zZm9ybUNvbnRyb2xzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuaW50ZXJmYWNlIENvbnRyb2xzUHJvdG8ge1xuXHRlbmFibGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBOZ3RzVHJhbnNmb3JtQ29udHJvbHNPYmplY3QgPSBOZ3RPYmplY3QzRE5vZGU8VHJhbnNmb3JtQ29udHJvbHMsIHR5cGVvZiBUcmFuc2Zvcm1Db250cm9scz47XG5cbmV4cG9ydCB0eXBlIE5ndHNUcmFuc2Zvcm1Db250cm9sc09wdGlvbnMgPSBQYXJ0aWFsPE5ndHNUcmFuc2Zvcm1Db250cm9sc09iamVjdD4gJlxuXHRQYXJ0aWFsPE5ndEdyb3VwPiAmIHtcblx0XHRlbmFibGVkPzogYm9vbGVhbjtcblx0XHRheGlzPzogc3RyaW5nIHwgbnVsbDtcblx0XHRkb21FbGVtZW50PzogSFRNTEVsZW1lbnQ7XG5cdFx0bW9kZT86ICd0cmFuc2xhdGUnIHwgJ3JvdGF0ZScgfCAnc2NhbGUnO1xuXHRcdHRyYW5zbGF0aW9uU25hcD86IG51bWJlciB8IG51bGw7XG5cdFx0cm90YXRpb25TbmFwPzogbnVtYmVyIHwgbnVsbDtcblx0XHRzY2FsZVNuYXA/OiBudW1iZXIgfCBudWxsO1xuXHRcdHNwYWNlPzogJ3dvcmxkJyB8ICdsb2NhbCc7XG5cdFx0c2l6ZT86IG51bWJlcjtcblx0XHRzaG93WD86IGJvb2xlYW47XG5cdFx0c2hvd1k/OiBib29sZWFuO1xuXHRcdHNob3daPzogYm9vbGVhbjtcblx0XHRjYW1lcmE/OiBDYW1lcmE7XG5cdFx0bWFrZURlZmF1bHQ/OiBib29sZWFuO1xuXHR9O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXRyYW5zZm9ybS1jb250cm9scycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbY29udHJvbHMoKV1cIiBbcGFyYW1ldGVyc109XCJjb250cm9sc09wdGlvbnMoKVwiIC8+XG5cblx0XHQ8bmd0LWdyb3VwICNncm91cCBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1RyYW5zZm9ybUNvbnRyb2xzIHtcblx0b2JqZWN0ID0gaW5wdXQ8T2JqZWN0M0QgfCBFbGVtZW50UmVmPE9iamVjdDNEPiB8IHVuZGVmaW5lZCB8IG51bGw+KG51bGwpO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgUGFydGlhbDxOZ3RzVHJhbnNmb3JtQ29udHJvbHNPcHRpb25zPik7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCdlbmFibGVkJyxcblx0XHQnYXhpcycsXG5cdFx0J21vZGUnLFxuXHRcdCd0cmFuc2xhdGlvblNuYXAnLFxuXHRcdCdyb3RhdGlvblNuYXAnLFxuXHRcdCdzY2FsZVNuYXAnLFxuXHRcdCdzcGFjZScsXG5cdFx0J3NpemUnLFxuXHRcdCdzaG93WCcsXG5cdFx0J3Nob3dZJyxcblx0XHQnc2hvd1onLFxuXHRcdCdkb21FbGVtZW50Jyxcblx0XHQnbWFrZURlZmF1bHQnLFxuXHRcdCdjYW1lcmEnLFxuXHRdKTtcblxuXHRwcm90ZWN0ZWQgY29udHJvbHNPcHRpb25zID0gcGljayh0aGlzLm9wdGlvbnMsIFtcblx0XHQnZW5hYmxlZCcsXG5cdFx0J2F4aXMnLFxuXHRcdCdtb2RlJyxcblx0XHQndHJhbnNsYXRpb25TbmFwJyxcblx0XHQncm90YXRpb25TbmFwJyxcblx0XHQnc2NhbGVTbmFwJyxcblx0XHQnc3BhY2UnLFxuXHRcdCdzaXplJyxcblx0XHQnc2hvd1gnLFxuXHRcdCdzaG93WScsXG5cdFx0J3Nob3daJyxcblx0XSk7XG5cblx0cHJpdmF0ZSBjYW1lcmEgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NhbWVyYScpO1xuXHRwcml2YXRlIGRvbUVsZW1lbnQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RvbUVsZW1lbnQnKTtcblx0cHJpdmF0ZSBtYWtlRGVmYXVsdCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWFrZURlZmF1bHQnKTtcblxuXHRjaGFuZ2UgPSBvdXRwdXQ8VGhyZWVFdmVudD4oKTtcblx0bW91c2VEb3duID0gb3V0cHV0PFRocmVlRXZlbnQ+KCk7XG5cdG1vdXNlVXAgPSBvdXRwdXQ8VGhyZWVFdmVudD4oKTtcblx0b2JqZWN0Q2hhbmdlID0gb3V0cHV0PFRocmVlRXZlbnQ+KCk7XG5cblx0cHJpdmF0ZSBncm91cFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2dyb3VwJyk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgZ2xEb21FbGVtZW50ID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJywgJ2RvbUVsZW1lbnQnKTtcblx0cHJpdmF0ZSBkZWZhdWx0Q2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIGV2ZW50cyA9IHRoaXMuc3RvcmUuc2VsZWN0KCdldmVudHMnKTtcblx0cHJpdmF0ZSBkZWZhdWx0Q29udHJvbHMgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY29udHJvbHMnKSBhcyB1bmtub3duIGFzIFNpZ25hbDxDb250cm9sc1Byb3RvPjtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblxuXHRjb250cm9scyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRsZXQgY2FtZXJhID0gdGhpcy5jYW1lcmEoKTtcblx0XHRpZiAoIWNhbWVyYSkge1xuXHRcdFx0Y2FtZXJhID0gdGhpcy5kZWZhdWx0Q2FtZXJhKCk7XG5cdFx0fVxuXG5cdFx0bGV0IGRvbUVsZW1lbnQgPSB0aGlzLmRvbUVsZW1lbnQoKTtcblx0XHRpZiAoIWRvbUVsZW1lbnQpIHtcblx0XHRcdGRvbUVsZW1lbnQgPSB0aGlzLmV2ZW50cygpLmNvbm5lY3RlZCB8fCB0aGlzLmdsRG9tRWxlbWVudCgpO1xuXHRcdH1cblxuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtQ29udHJvbHMoY2FtZXJhLCBkb21FbGVtZW50KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgR3JvdXAgfSk7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGNsZWFudXAgPSB0aGlzLmF0dGFjaENvbnRyb2xzRWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYW51cD8uKCkpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBjbGVhbnVwID0gdGhpcy5kaXNhYmxlRGVmYXVsdENvbnRyb2xzRWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYW51cD8uKCkpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBjbGVhbnVwID0gdGhpcy5zZXR1cENvbnRyb2xzRXZlbnRzRWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYW51cD8uKCkpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBjbGVhbnVwID0gdGhpcy51cGRhdGVEZWZhdWx0Q29udHJvbHNFZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBjbGVhbnVwPy4oKSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGF0dGFjaENvbnRyb2xzRWZmZWN0KCkge1xuXHRcdGNvbnN0IGdyb3VwID0gdGhpcy5ncm91cFJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKCFncm91cCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoZ3JvdXApO1xuXHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgW29iamVjdCwgY29udHJvbHNdID0gW3Jlc29sdmVSZWYodGhpcy5vYmplY3QoKSksIHRoaXMuY29udHJvbHMoKSwgbG9jYWxTdGF0ZS5vYmplY3RzKCldO1xuXHRcdGlmIChvYmplY3QpIHtcblx0XHRcdGNvbnRyb2xzLmF0dGFjaChvYmplY3QpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250cm9scy5hdHRhY2goZ3JvdXApO1xuXHRcdH1cblxuXHRcdHJldHVybiAoKSA9PiBjb250cm9scy5kZXRhY2goKTtcblx0fVxuXG5cdHByaXZhdGUgZGlzYWJsZURlZmF1bHRDb250cm9sc0VmZmVjdCgpIHtcblx0XHRjb25zdCBkZWZhdWx0Q29udHJvbHMgPSB0aGlzLmRlZmF1bHRDb250cm9scygpO1xuXHRcdGlmICghZGVmYXVsdENvbnRyb2xzKSByZXR1cm47XG5cblx0XHRjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHMoKTtcblx0XHRjb25zdCBjYWxsYmFjayA9IChldmVudDogYW55KSA9PiB7XG5cdFx0XHRkZWZhdWx0Q29udHJvbHMuZW5hYmxlZCA9ICFldmVudC52YWx1ZTtcblx0XHR9O1xuXG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHRocmVlLXN0ZGxpYiB0eXBlcyBhcmUgbm90IHVwLXRvLWRhdGVcblx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdkcmFnZ2luZy1jaGFuZ2VkJywgY2FsbGJhY2spO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdFx0Y29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ2dpbmctY2hhbmdlZCcsIGNhbGxiYWNrKTtcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSBzZXR1cENvbnRyb2xzRXZlbnRzRWZmZWN0KCkge1xuXHRcdGNvbnN0IFtjb250cm9scywgaW52YWxpZGF0ZV0gPSBbdGhpcy5jb250cm9scygpLCB0aGlzLmludmFsaWRhdGUoKV07XG5cdFx0Y29uc3Qgb25DaGFuZ2UgPSAoZXZlbnQ6IFRocmVlRXZlbnQpID0+IHtcblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdGlmICghdGhpcy5jaGFuZ2VbJ2Rlc3Ryb3llZCddKSB7XG5cdFx0XHRcdHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0Y29uc3Qgb25Nb3VzZURvd24gPSB0aGlzLm1vdXNlRG93bi5lbWl0LmJpbmQodGhpcy5tb3VzZURvd24pO1xuXHRcdGNvbnN0IG9uTW91c2VVcCA9IHRoaXMubW91c2VVcC5lbWl0LmJpbmQodGhpcy5tb3VzZVVwKTtcblx0XHRjb25zdCBvbk9iamVjdENoYW5nZSA9IHRoaXMub2JqZWN0Q2hhbmdlLmVtaXQuYmluZCh0aGlzLm9iamVjdENoYW5nZSk7XG5cblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKTtcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlRG93bicsIG9uTW91c2VEb3duKTtcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlVXAnLCBvbk1vdXNlVXApO1xuXHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aHJlZS1zdGRsaWIgdHlwZXMgYXJlIG5vdCB1cC10by1kYXRlXG5cdFx0Y29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignb2JqZWN0Q2hhbmdlJywgb25PYmplY3RDaGFuZ2UpO1xuXG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aHJlZS1zdGRsaWIgdHlwZXMgYXJlIG5vdCB1cC10by1kYXRlXG5cdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdFx0Y29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VEb3duJywgb25Nb3VzZURvd24pO1xuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHRocmVlLXN0ZGxpYiB0eXBlcyBhcmUgbm90IHVwLXRvLWRhdGVcblx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlVXAnLCBvbk1vdXNlVXApO1xuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHRocmVlLXN0ZGxpYiB0eXBlcyBhcmUgbm90IHVwLXRvLWRhdGVcblx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29iamVjdENoYW5nZScsIG9uT2JqZWN0Q2hhbmdlKTtcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVEZWZhdWx0Q29udHJvbHNFZmZlY3QoKSB7XG5cdFx0Y29uc3QgW2NvbnRyb2xzLCBtYWtlRGVmYXVsdF0gPSBbdGhpcy5jb250cm9scygpLCB0aGlzLm1ha2VEZWZhdWx0KCldO1xuXHRcdGlmICghbWFrZURlZmF1bHQpIHJldHVybjtcblxuXHRcdGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy5zdG9yZS5zbmFwc2hvdC5jb250cm9scztcblx0XHR0aGlzLnN0b3JlLnVwZGF0ZSh7IGNvbnRyb2xzIH0pO1xuXHRcdHJldHVybiAoKSA9PiB0aGlzLnN0b3JlLnVwZGF0ZSgoKSA9PiAoeyBjb250cm9sczogb2xkQ29udHJvbHMgfSkpO1xuXHR9XG59XG4iXX0=
package/esm2022/index.mjs DELETED
@@ -1,2 +0,0 @@
1
- export default void 0;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3NvYmEvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB2b2lkIDA7XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLWxvYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvYW5ndWxhci10aHJlZS1zb2JhLWxvYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -1,7 +0,0 @@
1
- export * from './lib/fbx-loader';
2
- export * from './lib/font-loader';
3
- export * from './lib/gltf-loader';
4
- export * from './lib/loader';
5
- export * from './lib/progress';
6
- export * from './lib/texture-loader';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZmJ4LWxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb250LWxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHRmLWxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ3Jlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGV4dHVyZS1sb2FkZXInO1xuIl19
@@ -1,13 +0,0 @@
1
- import { injectLoader } from 'angular-three';
2
- import { assertInjector } from 'ngxtension/assert-injector';
3
- import { FBXLoader } from 'three-stdlib';
4
- function _injectFBX(input, { injector } = {}) {
5
- return assertInjector(_injectFBX, injector, () => {
6
- return injectLoader(() => FBXLoader, input);
7
- });
8
- }
9
- _injectFBX.preload = (input) => {
10
- injectLoader.preload(() => FBXLoader, input);
11
- };
12
- export const injectFBX = _injectFBX;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmJ4LWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9sb2FkZXJzL3NyYy9saWIvZmJ4LWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLFNBQVMsVUFBVSxDQUNsQixLQUFpQixFQUNqQixFQUFFLFFBQVEsS0FBOEIsRUFBRTtJQUUxQyxPQUFPLGNBQWMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNoRCxPQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUEwRCxLQUFpQixFQUFFLEVBQUU7SUFDbkcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFrQixVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0TG9hZGVyIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IEZCWExvYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmZ1bmN0aW9uIF9pbmplY3RGQlg8VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdGlucHV0OiAoKSA9PiBUVXJsLFxuXHR7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKF9pbmplY3RGQlgsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0cmV0dXJuIGluamVjdExvYWRlcigoKSA9PiBGQlhMb2FkZXIsIGlucHV0KTtcblx0fSk7XG59XG5cbl9pbmplY3RGQlgucHJlbG9hZCA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihpbnB1dDogKCkgPT4gVFVybCkgPT4ge1xuXHRpbmplY3RMb2FkZXIucHJlbG9hZCgoKSA9PiBGQlhMb2FkZXIsIGlucHV0KTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndHNGQlhMb2FkZXIgPSB0eXBlb2YgX2luamVjdEZCWDtcbmV4cG9ydCBjb25zdCBpbmplY3RGQlg6IE5ndHNGQlhMb2FkZXIgPSBfaW5qZWN0RkJYO1xuIl19
@@ -1,49 +0,0 @@
1
- import { effect, signal, untracked } from '@angular/core';
2
- import { assertInjector } from 'ngxtension/assert-injector';
3
- import { FontLoader } from 'three-stdlib';
4
- let fontLoader = null;
5
- async function loadFontData(font) {
6
- return typeof font === 'string' ? await (await fetch(font)).json() : font;
7
- }
8
- function parseFontData(fontData) {
9
- if (!fontLoader) {
10
- fontLoader = new FontLoader();
11
- }
12
- return fontLoader.parse(fontData);
13
- }
14
- const cache = new Map();
15
- export function injectFont(input, { injector } = {}) {
16
- return assertInjector(injectFont, injector, () => {
17
- const font = signal(null);
18
- effect(() => {
19
- const fontInput = input();
20
- if (cache.has(fontInput)) {
21
- untracked(() => {
22
- font.set(cache.get(fontInput));
23
- });
24
- return;
25
- }
26
- loadFontData(input()).then((data) => {
27
- const parsed = parseFontData(data);
28
- cache.set(fontInput, parsed);
29
- font.set(parsed);
30
- });
31
- });
32
- return font.asReadonly();
33
- });
34
- }
35
- injectFont.preload = (input) => {
36
- loadFontData(input()).then((data) => {
37
- const parsed = parseFontData(data);
38
- cache.set(input(), parsed);
39
- });
40
- };
41
- injectFont.clear = (input) => {
42
- if (input) {
43
- cache.delete(input());
44
- }
45
- else {
46
- cache.clear();
47
- }
48
- };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL2ZvbnQtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQVksTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFRLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQXVCaEQsSUFBSSxVQUFVLEdBQXNCLElBQUksQ0FBQztBQUV6QyxLQUFLLFVBQVUsWUFBWSxDQUFDLElBQW1CO0lBQzlDLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzNFLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxRQUFrQjtJQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakIsVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7QUFFN0MsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUEwQixFQUFFLEVBQUUsUUFBUSxLQUE4QixFQUFFO0lBQ2hHLE9BQU8sY0FBYyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBYyxJQUFJLENBQUMsQ0FBQztRQUV2QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFFMUIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBUyxDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU87WUFDUixDQUFDO1lBRUQsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ25DLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUU7SUFDbkQsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFDRixVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBMkIsRUFBRSxFQUFFO0lBQ2xELElBQUksS0FBSyxFQUFFLENBQUM7UUFDWCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztTQUFNLENBQUM7UUFDUCxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0FBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZWZmZWN0LCBJbmplY3Rvciwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgRm9udCwgRm9udExvYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCB0eXBlIEdseXBoID0ge1xuXHRfY2FjaGVkT3V0bGluZTogc3RyaW5nW107XG5cdGhhOiBudW1iZXI7XG5cdG86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEZvbnREYXRhID0ge1xuXHRib3VuZGluZ0JveDoge1xuXHRcdHlNYXg6IG51bWJlcjtcblx0XHR5TWluOiBudW1iZXI7XG5cdH07XG5cdGZhbWlseU5hbWU6IHN0cmluZztcblx0Z2x5cGhzOiB7XG5cdFx0W2s6IHN0cmluZ106IEdseXBoO1xuXHR9O1xuXHRyZXNvbHV0aW9uOiBudW1iZXI7XG5cdHVuZGVybGluZVRoaWNrbmVzczogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0c0ZvbnRJbnB1dCA9IHN0cmluZyB8IEZvbnREYXRhO1xuXG5sZXQgZm9udExvYWRlcjogRm9udExvYWRlciB8IG51bGwgPSBudWxsO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkRm9udERhdGEoZm9udDogTmd0c0ZvbnRJbnB1dCk6IFByb21pc2U8Rm9udERhdGE+IHtcblx0cmV0dXJuIHR5cGVvZiBmb250ID09PSAnc3RyaW5nJyA/IGF3YWl0IChhd2FpdCBmZXRjaChmb250KSkuanNvbigpIDogZm9udDtcbn1cblxuZnVuY3Rpb24gcGFyc2VGb250RGF0YShmb250RGF0YTogRm9udERhdGEpIHtcblx0aWYgKCFmb250TG9hZGVyKSB7XG5cdFx0Zm9udExvYWRlciA9IG5ldyBGb250TG9hZGVyKCk7XG5cdH1cblx0cmV0dXJuIGZvbnRMb2FkZXIucGFyc2UoZm9udERhdGEpO1xufVxuXG5jb25zdCBjYWNoZSA9IG5ldyBNYXA8Tmd0c0ZvbnRJbnB1dCwgRm9udD4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEZvbnQoaW5wdXQ6ICgpID0+IE5ndHNGb250SW5wdXQsIHsgaW5qZWN0b3IgfTogeyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSkge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0Rm9udCwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBmb250ID0gc2lnbmFsPEZvbnQgfCBudWxsPihudWxsKTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBmb250SW5wdXQgPSBpbnB1dCgpO1xuXG5cdFx0XHRpZiAoY2FjaGUuaGFzKGZvbnRJbnB1dCkpIHtcblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0XHRmb250LnNldChjYWNoZS5nZXQoZm9udElucHV0KSBhcyBGb250KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0bG9hZEZvbnREYXRhKGlucHV0KCkpLnRoZW4oKGRhdGEpID0+IHtcblx0XHRcdFx0Y29uc3QgcGFyc2VkID0gcGFyc2VGb250RGF0YShkYXRhKTtcblx0XHRcdFx0Y2FjaGUuc2V0KGZvbnRJbnB1dCwgcGFyc2VkKTtcblx0XHRcdFx0Zm9udC5zZXQocGFyc2VkKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIGZvbnQuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuaW5qZWN0Rm9udC5wcmVsb2FkID0gKGlucHV0OiAoKSA9PiBOZ3RzRm9udElucHV0KSA9PiB7XG5cdGxvYWRGb250RGF0YShpbnB1dCgpKS50aGVuKChkYXRhKSA9PiB7XG5cdFx0Y29uc3QgcGFyc2VkID0gcGFyc2VGb250RGF0YShkYXRhKTtcblx0XHRjYWNoZS5zZXQoaW5wdXQoKSwgcGFyc2VkKTtcblx0fSk7XG59O1xuaW5qZWN0Rm9udC5jbGVhciA9IChpbnB1dD86ICgpID0+IE5ndHNGb250SW5wdXQpID0+IHtcblx0aWYgKGlucHV0KSB7XG5cdFx0Y2FjaGUuZGVsZXRlKGlucHV0KCkpO1xuXHR9IGVsc2Uge1xuXHRcdGNhY2hlLmNsZWFyKCk7XG5cdH1cbn07XG4iXX0=
@@ -1,51 +0,0 @@
1
- import { computed } from '@angular/core';
2
- import { injectLoader } from 'angular-three';
3
- import { assertInjector } from 'ngxtension/assert-injector';
4
- import { DRACOLoader, GLTFLoader, MeshoptDecoder } from 'three-stdlib';
5
- let dracoLoader = null;
6
- let decoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/';
7
- function _extensions(useDraco, useMeshOpt, extensions) {
8
- return (loader) => {
9
- if (extensions) {
10
- extensions(loader);
11
- }
12
- if (useDraco) {
13
- if (!dracoLoader) {
14
- dracoLoader = new DRACOLoader();
15
- }
16
- dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : decoderPath);
17
- loader.setDRACOLoader(dracoLoader);
18
- }
19
- if (useMeshOpt) {
20
- loader.setMeshoptDecoder(typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder);
21
- }
22
- };
23
- }
24
- function _injectGLTF(path, { useDraco = true, useMeshOpt = true, injector, extensions, onLoad, } = {}) {
25
- return assertInjector(_injectGLTF, injector, () => {
26
- const result = injectLoader(() => GLTFLoader, path, {
27
- extensions: _extensions(useDraco, useMeshOpt, extensions),
28
- // @ts-expect-error - we know the type of the data
29
- onLoad,
30
- });
31
- Object.defineProperty(result, 'scene', {
32
- value: computed(() => {
33
- const gltf = result();
34
- if (!gltf)
35
- return null;
36
- return gltf.scene;
37
- }),
38
- });
39
- return result;
40
- });
41
- }
42
- _injectGLTF.preload = (path, { useDraco = true, useMeshOpt = true, extensions, onLoad, } = {}) => {
43
- injectLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions),
44
- // @ts-expect-error - we know the type of the data
45
- onLoad);
46
- };
47
- _injectGLTF.setDecoderPath = (path) => {
48
- decoderPath = path;
49
- };
50
- export const injectGLTF = _injectGLTF;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL2dsdGYtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFRLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0UsSUFBSSxXQUFXLEdBQXVCLElBQUksQ0FBQztBQUMzQyxJQUFJLFdBQVcsR0FBRyx5REFBeUQsQ0FBQztBQUU1RSxTQUFTLFdBQVcsQ0FBQyxRQUEwQixFQUFFLFVBQW1CLEVBQUUsVUFBeUM7SUFDOUcsT0FBTyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ3pCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEIsVUFBVSxDQUFDLE1BQW9CLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsQ0FBQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pGLE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBcUIsQ0FBQyxpQkFBaUIsQ0FDdkMsT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUMsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FDbkIsSUFBZ0IsRUFDaEIsRUFDQyxRQUFRLEdBQUcsSUFBSSxFQUNmLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxNQU9ILEVBQUU7SUFFTixPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUNuRCxVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3pELGtEQUFrRDtZQUNsRCxNQUFNO1NBQ04sQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFO1lBQ3RDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUNwQixNQUFNLElBQUksR0FBRyxNQUFNLEVBQXFCLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbkIsQ0FBQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQXlHLENBQUM7QUFDNUcsQ0FBQztBQUVELFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FDckIsSUFBZ0IsRUFDaEIsRUFDQyxRQUFRLEdBQUcsSUFBSSxFQUNmLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFVBQVUsRUFDVixNQUFNLE1BTUgsRUFBRSxFQUNMLEVBQUU7SUFDSCxZQUFZLENBQUMsT0FBTyxDQUNuQixHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQ2hCLElBQUksRUFDSixXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQVE7SUFDcEQsa0RBQWtEO0lBQ2xELE1BQU0sQ0FDTixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsV0FBVyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQzdDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFtQixXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0TG9hZGVyLCBOZ3RMb2FkZXJSZXN1bHRzLCBOZ3RPYmplY3RNYXAgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRFJBQ09Mb2FkZXIsIEdMVEYsIEdMVEZMb2FkZXIsIE1lc2hvcHREZWNvZGVyIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxubGV0IGRyYWNvTG9hZGVyOiBEUkFDT0xvYWRlciB8IG51bGwgPSBudWxsO1xubGV0IGRlY29kZXJQYXRoID0gJ2h0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2RyYWNvL3ZlcnNpb25lZC9kZWNvZGVycy8xLjUuNS8nO1xuXG5mdW5jdGlvbiBfZXh0ZW5zaW9ucyh1c2VEcmFjbzogYm9vbGVhbiB8IHN0cmluZywgdXNlTWVzaE9wdDogYm9vbGVhbiwgZXh0ZW5zaW9ucz86IChsb2FkZXI6IEdMVEZMb2FkZXIpID0+IHZvaWQpIHtcblx0cmV0dXJuIChsb2FkZXI6IExvYWRlcikgPT4ge1xuXHRcdGlmIChleHRlbnNpb25zKSB7XG5cdFx0XHRleHRlbnNpb25zKGxvYWRlciBhcyBHTFRGTG9hZGVyKTtcblx0XHR9XG5cblx0XHRpZiAodXNlRHJhY28pIHtcblx0XHRcdGlmICghZHJhY29Mb2FkZXIpIHtcblx0XHRcdFx0ZHJhY29Mb2FkZXIgPSBuZXcgRFJBQ09Mb2FkZXIoKTtcblx0XHRcdH1cblxuXHRcdFx0ZHJhY29Mb2FkZXIuc2V0RGVjb2RlclBhdGgodHlwZW9mIHVzZURyYWNvID09PSAnc3RyaW5nJyA/IHVzZURyYWNvIDogZGVjb2RlclBhdGgpO1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXREUkFDT0xvYWRlcihkcmFjb0xvYWRlcik7XG5cdFx0fVxuXHRcdGlmICh1c2VNZXNoT3B0KSB7XG5cdFx0XHQobG9hZGVyIGFzIEdMVEZMb2FkZXIpLnNldE1lc2hvcHREZWNvZGVyKFxuXHRcdFx0XHR0eXBlb2YgTWVzaG9wdERlY29kZXIgPT09ICdmdW5jdGlvbicgPyBNZXNob3B0RGVjb2RlcigpIDogTWVzaG9wdERlY29kZXIsXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcbn1cblxuZnVuY3Rpb24gX2luamVjdEdMVEY8VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdHBhdGg6ICgpID0+IFRVcmwsXG5cdHtcblx0XHR1c2VEcmFjbyA9IHRydWUsXG5cdFx0dXNlTWVzaE9wdCA9IHRydWUsXG5cdFx0aW5qZWN0b3IsXG5cdFx0ZXh0ZW5zaW9ucyxcblx0XHRvbkxvYWQsXG5cdH06IHtcblx0XHR1c2VEcmFjbz86IGJvb2xlYW4gfCBzdHJpbmc7XG5cdFx0dXNlTWVzaE9wdD86IGJvb2xlYW47XG5cdFx0aW5qZWN0b3I/OiBJbmplY3Rvcjtcblx0XHRleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZDtcblx0XHRvbkxvYWQ/OiAoZGF0YTogTmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPikgPT4gdm9pZDtcblx0fSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgR0xURiAmIE5ndE9iamVjdE1hcD4gfCBudWxsPiAmIHsgc2NlbmU6IFNpZ25hbDxHTFRGWydzY2VuZSddIHwgbnVsbD4gfSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihfaW5qZWN0R0xURiwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCByZXN1bHQgPSBpbmplY3RMb2FkZXIoKCkgPT4gR0xURkxvYWRlciwgcGF0aCwge1xuXHRcdFx0ZXh0ZW5zaW9uczogX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpLFxuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHdlIGtub3cgdGhlIHR5cGUgb2YgdGhlIGRhdGFcblx0XHRcdG9uTG9hZCxcblx0XHR9KTtcblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXN1bHQsICdzY2VuZScsIHtcblx0XHRcdHZhbHVlOiBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGdsdGYgPSByZXN1bHQoKSBhcyB1bmtub3duIGFzIEdMVEY7XG5cdFx0XHRcdGlmICghZ2x0ZikgcmV0dXJuIG51bGw7XG5cdFx0XHRcdHJldHVybiBnbHRmLnNjZW5lO1xuXHRcdFx0fSksXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9KSBhcyBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB8IG51bGw+ICYgeyBzY2VuZTogU2lnbmFsPEdMVEZbJ3NjZW5lJ10gfCBudWxsPiB9O1xufVxuXG5faW5qZWN0R0xURi5wcmVsb2FkID0gPFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRwYXRoOiAoKSA9PiBUVXJsLFxuXHR7XG5cdFx0dXNlRHJhY28gPSB0cnVlLFxuXHRcdHVzZU1lc2hPcHQgPSB0cnVlLFxuXHRcdGV4dGVuc2lvbnMsXG5cdFx0b25Mb2FkLFxuXHR9OiB7XG5cdFx0dXNlRHJhY28/OiBib29sZWFuIHwgc3RyaW5nO1xuXHRcdHVzZU1lc2hPcHQ/OiBib29sZWFuO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHRcdG9uTG9hZD86IChkYXRhOiBOZ3RMb2FkZXJSZXN1bHRzPFRVcmwsIEdMVEYgJiBOZ3RPYmplY3RNYXA+KSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pID0+IHtcblx0aW5qZWN0TG9hZGVyLnByZWxvYWQoXG5cdFx0KCkgPT4gR0xURkxvYWRlcixcblx0XHRwYXRoLFxuXHRcdF9leHRlbnNpb25zKHVzZURyYWNvLCB1c2VNZXNoT3B0LCBleHRlbnNpb25zKSBhcyBhbnksXG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHdlIGtub3cgdGhlIHR5cGUgb2YgdGhlIGRhdGFcblx0XHRvbkxvYWQsXG5cdCk7XG59O1xuXG5faW5qZWN0R0xURi5zZXREZWNvZGVyUGF0aCA9IChwYXRoOiBzdHJpbmcpID0+IHtcblx0ZGVjb2RlclBhdGggPSBwYXRoO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0c0dMVEZMb2FkZXIgPSB0eXBlb2YgX2luamVjdEdMVEY7XG5leHBvcnQgY29uc3QgaW5qZWN0R0xURjogTmd0c0dMVEZMb2FkZXIgPSBfaW5qZWN0R0xURjtcbiJdfQ==
@@ -1,103 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, effect, input, signal, untracked, viewChild, } from '@angular/core';
2
- import { pick } from 'angular-three';
3
- import { mergeInputs } from 'ngxtension/inject-inputs';
4
- import { injectProgress } from './progress';
5
- import * as i0 from "@angular/core";
6
- const defaultDataInterpolation = (p) => `Loading ${p.toFixed(2)}%`;
7
- const defaultOptions = {
8
- containerClass: '',
9
- innerClass: '',
10
- barClass: '',
11
- dataClass: '',
12
- dataInterpolation: defaultDataInterpolation,
13
- initialState: (value) => value,
14
- };
15
- export class NgtsLoader {
16
- constructor() {
17
- this.progressState = injectProgress();
18
- this.active = computed(() => this.progressState().active);
19
- this.progress = computed(() => this.progressState().progress);
20
- this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
21
- this.containerClass = pick(this.options, 'containerClass');
22
- this.innerClass = pick(this.options, 'innerClass');
23
- this.barClass = pick(this.options, 'barClass');
24
- this.dataClass = pick(this.options, 'dataClass');
25
- this.initialState = pick(this.options, 'initialState');
26
- this.dataInterpolation = pick(this.options, 'dataInterpolation');
27
- this.progressSpanRef = viewChild('progressSpanRef');
28
- this.shown = signal(this.initialState()(this.active()));
29
- effect((onCleanup) => {
30
- const [active, lastShown] = [this.active(), untracked(this.shown)];
31
- if (lastShown !== active) {
32
- const timeoutId = setTimeout(() => {
33
- this.shown.set(active);
34
- }, 300);
35
- onCleanup(() => clearTimeout(timeoutId));
36
- }
37
- });
38
- let progressRef = 0;
39
- let rafId;
40
- effect((onCleanup) => {
41
- const [dataInterpolation, progress] = [this.dataInterpolation(), this.progress()];
42
- const updateProgress = () => {
43
- const progressSpan = this.progressSpanRef()?.nativeElement;
44
- if (!progressSpan)
45
- return;
46
- progressRef += (progress - progressRef) / 2;
47
- if (progressRef > 0.95 * progress || progress === 100)
48
- progressRef = progress;
49
- progressSpan.innerText = dataInterpolation(progressRef);
50
- if (progressRef < progress) {
51
- rafId = requestAnimationFrame(updateProgress);
52
- }
53
- };
54
- updateProgress();
55
- onCleanup(() => cancelAnimationFrame(rafId));
56
- });
57
- }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: NgtsLoader, isStandalone: true, selector: "ngts-loader", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "progressSpanRef", first: true, predicate: ["progressSpanRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
60
- @if (shown()) {
61
- <div
62
- class="ngts-loader-container"
63
- [class]="containerClass() || ''"
64
- [style.--ngts-loader-container-opacity]="active() ? 1 : 0"
65
- >
66
- <div>
67
- <div class="ngts-loader-inner" [class]="innerClass() || ''">
68
- <div
69
- class="ngts-loader-bar"
70
- [class]="barClass() || ''"
71
- [style.--ngts-loader-bar-scale]="progress() / 100"
72
- ></div>
73
- <span #progressSpanRef class="ngts-loader-data" [class]="dataClass() || ''"></span>
74
- </div>
75
- </div>
76
- </div>
77
- }
78
- `, 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:#fff;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;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"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
79
- }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsLoader, decorators: [{
81
- type: Component,
82
- args: [{ selector: 'ngts-loader', standalone: true, template: `
83
- @if (shown()) {
84
- <div
85
- class="ngts-loader-container"
86
- [class]="containerClass() || ''"
87
- [style.--ngts-loader-container-opacity]="active() ? 1 : 0"
88
- >
89
- <div>
90
- <div class="ngts-loader-inner" [class]="innerClass() || ''">
91
- <div
92
- class="ngts-loader-bar"
93
- [class]="barClass() || ''"
94
- [style.--ngts-loader-bar-scale]="progress() / 100"
95
- ></div>
96
- <span #progressSpanRef class="ngts-loader-data" [class]="dataClass() || ''"></span>
97
- </div>
98
- </div>
99
- </div>
100
- }
101
- `, changeDetection: ChangeDetectionStrategy.OnPush, 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:#fff;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;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"] }]
102
- }], ctorParameters: () => [] });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2xvYWRlcnMvc3JjL2xpYi9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFNUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFXM0UsTUFBTSxjQUFjLEdBQXNCO0lBQ3pDLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFVBQVUsRUFBRSxFQUFFO0lBQ2QsUUFBUSxFQUFFLEVBQUU7SUFDWixTQUFTLEVBQUUsRUFBRTtJQUNiLGlCQUFpQixFQUFFLHdCQUF3QjtJQUMzQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7Q0FDOUIsQ0FBQztBQTRCRixNQUFNLE9BQU8sVUFBVTtJQW1CdEI7UUFsQlEsa0JBQWEsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxZQUFPLEdBQUcsS0FBSyxD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WUFDTjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGlucHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IGluamVjdFByb2dyZXNzIH0gZnJvbSAnLi9wcm9ncmVzcyc7XG5cbmNvbnN0IGRlZmF1bHREYXRhSW50ZXJwb2xhdGlvbiA9IChwOiBudW1iZXIpID0+IGBMb2FkaW5nICR7cC50b0ZpeGVkKDIpfSVgO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNMb2FkZXJPcHRpb25zIHtcblx0Y29udGFpbmVyQ2xhc3M/OiBzdHJpbmc7XG5cdGlubmVyQ2xhc3M/OiBzdHJpbmc7XG5cdGJhckNsYXNzPzogc3RyaW5nO1xuXHRkYXRhQ2xhc3M/OiBzdHJpbmc7XG5cdGRhdGFJbnRlcnBvbGF0aW9uOiAodmFsdWU6IG51bWJlcikgPT4gc3RyaW5nO1xuXHRpbml0aWFsU3RhdGU6ICh2YWx1ZTogYm9vbGVhbikgPT4gYm9vbGVhbjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNMb2FkZXJPcHRpb25zID0ge1xuXHRjb250YWluZXJDbGFzczogJycsXG5cdGlubmVyQ2xhc3M6ICcnLFxuXHRiYXJDbGFzczogJycsXG5cdGRhdGFDbGFzczogJycsXG5cdGRhdGFJbnRlcnBvbGF0aW9uOiBkZWZhdWx0RGF0YUludGVycG9sYXRpb24sXG5cdGluaXRpYWxTdGF0ZTogKHZhbHVlKSA9PiB2YWx1ZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtbG9hZGVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKHNob3duKCkpIHtcblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3M9XCJuZ3RzLWxvYWRlci1jb250YWluZXJcIlxuXHRcdFx0XHRbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3MoKSB8fCAnJ1wiXG5cdFx0XHRcdFtzdHlsZS4tLW5ndHMtbG9hZGVyLWNvbnRhaW5lci1vcGFjaXR5XT1cImFjdGl2ZSgpID8gMSA6IDBcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJuZ3RzLWxvYWRlci1pbm5lclwiIFtjbGFzc109XCJpbm5lckNsYXNzKCkgfHwgJydcIj5cblx0XHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJuZ3RzLWxvYWRlci1iYXJcIlxuXHRcdFx0XHRcdFx0XHRbY2xhc3NdPVwiYmFyQ2xhc3MoKSB8fCAnJ1wiXG5cdFx0XHRcdFx0XHRcdFtzdHlsZS4tLW5ndHMtbG9hZGVyLWJhci1zY2FsZV09XCJwcm9ncmVzcygpIC8gMTAwXCJcblx0XHRcdFx0XHRcdD48L2Rpdj5cblx0XHRcdFx0XHRcdDxzcGFuICNwcm9ncmVzc1NwYW5SZWYgY2xhc3M9XCJuZ3RzLWxvYWRlci1kYXRhXCIgW2NsYXNzXT1cImRhdGFDbGFzcygpIHx8ICcnXCI+PC9zcGFuPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdH1cblx0YCxcblx0c3R5bGVVcmxzOiBbJy4vbG9hZGVyLmNzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0xvYWRlciB7XG5cdHByaXZhdGUgcHJvZ3Jlc3NTdGF0ZSA9IGluamVjdFByb2dyZXNzKCk7XG5cblx0YWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9ncmVzc1N0YXRlKCkuYWN0aXZlKTtcblx0cHJvZ3Jlc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb2dyZXNzU3RhdGUoKS5wcm9ncmVzcyk7XG5cblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdGNvbnRhaW5lckNsYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdjb250YWluZXJDbGFzcycpO1xuXHRpbm5lckNsYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdpbm5lckNsYXNzJyk7XG5cdGJhckNsYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdiYXJDbGFzcycpO1xuXHRkYXRhQ2xhc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RhdGFDbGFzcycpO1xuXHRpbml0aWFsU3RhdGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2luaXRpYWxTdGF0ZScpO1xuXHRkYXRhSW50ZXJwb2xhdGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGF0YUludGVycG9sYXRpb24nKTtcblxuXHRwcm9ncmVzc1NwYW5SZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+PigncHJvZ3Jlc3NTcGFuUmVmJyk7XG5cblx0c2hvd24gPSBzaWduYWwodGhpcy5pbml0aWFsU3RhdGUoKSh0aGlzLmFjdGl2ZSgpKSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFthY3RpdmUsIGxhc3RTaG93bl0gPSBbdGhpcy5hY3RpdmUoKSwgdW50cmFja2VkKHRoaXMuc2hvd24pXTtcblx0XHRcdGlmIChsYXN0U2hvd24gIT09IGFjdGl2ZSkge1xuXHRcdFx0XHRjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3duLnNldChhY3RpdmUpO1xuXHRcdFx0XHR9LCAzMDApO1xuXHRcdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0bGV0IHByb2dyZXNzUmVmID0gMDtcblx0XHRsZXQgcmFmSWQ6IFJldHVyblR5cGU8dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT47XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtkYXRhSW50ZXJwb2xhdGlvbiwgcHJvZ3Jlc3NdID0gW3RoaXMuZGF0YUludGVycG9sYXRpb24oKSwgdGhpcy5wcm9ncmVzcygpXTtcblx0XHRcdGNvbnN0IHVwZGF0ZVByb2dyZXNzID0gKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9ncmVzc1NwYW4gPSB0aGlzLnByb2dyZXNzU3BhblJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoIXByb2dyZXNzU3BhbikgcmV0dXJuO1xuXHRcdFx0XHRwcm9ncmVzc1JlZiArPSAocHJvZ3Jlc3MgLSBwcm9ncmVzc1JlZikgLyAyO1xuXHRcdFx0XHRpZiAocHJvZ3Jlc3NSZWYgPiAwLjk1ICogcHJvZ3Jlc3MgfHwgcHJvZ3Jlc3MgPT09IDEwMCkgcHJvZ3Jlc3NSZWYgPSBwcm9ncmVzcztcblx0XHRcdFx0cHJvZ3Jlc3NTcGFuLmlubmVyVGV4dCA9IGRhdGFJbnRlcnBvbGF0aW9uKHByb2dyZXNzUmVmKTtcblx0XHRcdFx0aWYgKHByb2dyZXNzUmVmIDwgcHJvZ3Jlc3MpIHtcblx0XHRcdFx0XHRyYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGVQcm9ncmVzcyk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHR1cGRhdGVQcm9ncmVzcygpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,51 +0,0 @@
1
- import { ChangeDetectorRef, inject, signal, untracked } from '@angular/core';
2
- import { assertInjector } from 'ngxtension/assert-injector';
3
- import { DefaultLoadingManager } from 'three';
4
- export function injectProgress(injector) {
5
- return assertInjector(injectProgress, injector, () => {
6
- const cdr = inject(ChangeDetectorRef);
7
- const progress = signal({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });
8
- let saveLastTotalLoaded = 0;
9
- DefaultLoadingManager.onStart = (item, loaded, total) => {
10
- untracked(() => {
11
- progress.update((prev) => ({
12
- ...prev,
13
- active: true,
14
- item,
15
- loaded,
16
- total,
17
- progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,
18
- }));
19
- });
20
- cdr.detectChanges();
21
- };
22
- DefaultLoadingManager.onLoad = () => {
23
- untracked(() => {
24
- progress.update((prev) => ({ ...prev, active: false }));
25
- });
26
- cdr.detectChanges();
27
- };
28
- DefaultLoadingManager.onError = (url) => {
29
- untracked(() => {
30
- progress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));
31
- });
32
- cdr.detectChanges();
33
- };
34
- DefaultLoadingManager.onProgress = (item, loaded, total) => {
35
- if (loaded === total)
36
- saveLastTotalLoaded = total;
37
- untracked(() => {
38
- progress.update((prev) => ({
39
- ...prev,
40
- item,
41
- loaded,
42
- total,
43
- progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,
44
- }));
45
- });
46
- cdr.detectChanges();
47
- };
48
- return progress.asReadonly();
49
- });
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL3Byb2dyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTlDLE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBbUI7SUFDakQsT0FBTyxjQUFjLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQU9wQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5RSxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUU1QixxQkFBcUIsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3ZELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDMUIsR0FBRyxJQUFJO29CQUNQLE1BQU0sRUFBRSxJQUFJO29CQUNaLElBQUk7b0JBQ0osTUFBTTtvQkFDTixLQUFLO29CQUNMLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUc7aUJBQ2hGLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBRUYscUJBQXFCLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNuQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLHFCQUFxQixDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUMsQ0FBQztZQUNILEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixxQkFBcUIsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFELElBQUksTUFBTSxLQUFLLEtBQUs7Z0JBQUUsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ2xELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDMUIsR0FBRyxJQUFJO29CQUNQLElBQUk7b0JBQ0osTUFBTTtvQkFDTixLQUFLO29CQUNMLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHO2lCQUN2RixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RvciwgaW5qZWN0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBEZWZhdWx0TG9hZGluZ01hbmFnZXIgfSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQcm9ncmVzcyhpbmplY3Rvcj86IEluamVjdG9yKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RQcm9ncmVzcywgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG5cdFx0Y29uc3QgcHJvZ3Jlc3MgPSBzaWduYWw8e1xuXHRcdFx0ZXJyb3JzOiBzdHJpbmdbXTtcblx0XHRcdGFjdGl2ZTogYm9vbGVhbjtcblx0XHRcdHByb2dyZXNzOiBudW1iZXI7XG5cdFx0XHRpdGVtOiBzdHJpbmc7XG5cdFx0XHRsb2FkZWQ6IG51bWJlcjtcblx0XHRcdHRvdGFsOiBudW1iZXI7XG5cdFx0fT4oeyBlcnJvcnM6IFtdLCBhY3RpdmU6IGZhbHNlLCBwcm9ncmVzczogMCwgaXRlbTogJycsIGxvYWRlZDogMCwgdG90YWw6IDAgfSk7XG5cblx0XHRsZXQgc2F2ZUxhc3RUb3RhbExvYWRlZCA9IDA7XG5cblx0XHREZWZhdWx0TG9hZGluZ01hbmFnZXIub25TdGFydCA9IChpdGVtLCBsb2FkZWQsIHRvdGFsKSA9PiB7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRwcm9ncmVzcy51cGRhdGUoKHByZXYpID0+ICh7XG5cdFx0XHRcdFx0Li4ucHJldixcblx0XHRcdFx0XHRhY3RpdmU6IHRydWUsXG5cdFx0XHRcdFx0aXRlbSxcblx0XHRcdFx0XHRsb2FkZWQsXG5cdFx0XHRcdFx0dG90YWwsXG5cdFx0XHRcdFx0cHJvZ3Jlc3M6ICgobG9hZGVkIC0gc2F2ZUxhc3RUb3RhbExvYWRlZCkgLyAodG90YWwgLSBzYXZlTGFzdFRvdGFsTG9hZGVkKSkgKiAxMDAsXG5cdFx0XHRcdH0pKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRjZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH07XG5cblx0XHREZWZhdWx0TG9hZGluZ01hbmFnZXIub25Mb2FkID0gKCkgPT4ge1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0cHJvZ3Jlc3MudXBkYXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBhY3RpdmU6IGZhbHNlIH0pKTtcblx0XHRcdH0pO1xuXHRcdFx0Y2RyLmRldGVjdENoYW5nZXMoKTtcblx0XHR9O1xuXG5cdFx0RGVmYXVsdExvYWRpbmdNYW5hZ2VyLm9uRXJyb3IgPSAodXJsKSA9PiB7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRwcm9ncmVzcy51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYsIGVycm9yczogWy4uLnByZXYuZXJyb3JzLCB1cmxdIH0pKTtcblx0XHRcdH0pO1xuXHRcdFx0Y2RyLmRldGVjdENoYW5nZXMoKTtcblx0XHR9O1xuXG5cdFx0RGVmYXVsdExvYWRpbmdNYW5hZ2VyLm9uUHJvZ3Jlc3MgPSAoaXRlbSwgbG9hZGVkLCB0b3RhbCkgPT4ge1xuXHRcdFx0aWYgKGxvYWRlZCA9PT0gdG90YWwpIHNhdmVMYXN0VG90YWxMb2FkZWQgPSB0b3RhbDtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdHByb2dyZXNzLnVwZGF0ZSgocHJldikgPT4gKHtcblx0XHRcdFx0XHQuLi5wcmV2LFxuXHRcdFx0XHRcdGl0ZW0sXG5cdFx0XHRcdFx0bG9hZGVkLFxuXHRcdFx0XHRcdHRvdGFsLFxuXHRcdFx0XHRcdHByb2dyZXNzOiAoKGxvYWRlZCAtIHNhdmVMYXN0VG90YWxMb2FkZWQpIC8gKHRvdGFsIC0gc2F2ZUxhc3RUb3RhbExvYWRlZCkpICogMTAwIHx8IDEwMCxcblx0XHRcdFx0fSkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0fTtcblxuXHRcdHJldHVybiBwcm9ncmVzcy5hc1JlYWRvbmx5KCk7XG5cdH0pO1xufVxuIl19
@@ -1,32 +0,0 @@
1
- import { effect } from '@angular/core';
2
- import { injectLoader, injectStore } from 'angular-three';
3
- import { assertInjector } from 'ngxtension/assert-injector';
4
- import { Texture, TextureLoader } from 'three';
5
- function _injectTexture(input, { onLoad, injector } = {}) {
6
- return assertInjector(_injectTexture, injector, () => {
7
- const store = injectStore();
8
- const result = injectLoader(() => TextureLoader, input);
9
- effect(() => {
10
- const textures = result();
11
- if (!textures)
12
- return;
13
- const gl = store.get('gl');
14
- if ('initTexture' in gl) {
15
- const array = Array.isArray(textures)
16
- ? textures
17
- : textures instanceof Texture
18
- ? [textures]
19
- : Object.values(textures);
20
- if (onLoad)
21
- onLoad(array);
22
- array.forEach(gl.initTexture.bind(gl));
23
- }
24
- });
25
- return result;
26
- });
27
- }
28
- _injectTexture.preload = (input) => {
29
- injectLoader.preload(() => TextureLoader, input);
30
- };
31
- export const injectTexture = _injectTexture;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL3RleHR1cmUtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFL0MsU0FBUyxjQUFjLENBQ3RCLEtBQW1CLEVBQ25CLEVBQUUsTUFBTSxFQUFFLFFBQVEsS0FBcUUsRUFBRTtJQUV6RixPQUFPLGNBQWMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNwRCxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxhQUFhLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUNwQyxDQUFDLENBQUMsUUFBUTtvQkFDVixDQUFDLENBQUMsUUFBUSxZQUFZLE9BQU87d0JBQzVCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzt3QkFDWixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxNQUFNO29CQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsY0FBYyxDQUFDLE9BQU8sR0FBRyxDQUE0RCxLQUFtQixFQUFFLEVBQUU7SUFDM0csWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFzQixjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlZmZlY3QsIEluamVjdG9yLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdExvYWRlciwgaW5qZWN0U3RvcmUsIE5ndExvYWRlclJlc3VsdHMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgVGV4dHVyZSwgVGV4dHVyZUxvYWRlciB9IGZyb20gJ3RocmVlJztcblxuZnVuY3Rpb24gX2luamVjdFRleHR1cmU8VElucHV0IGV4dGVuZHMgc3RyaW5nW10gfCBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0aW5wdXQ6ICgpID0+IFRJbnB1dCxcblx0eyBvbkxvYWQsIGluamVjdG9yIH06IHsgb25Mb2FkPzogKHRleHR1cmU6IFRleHR1cmVbXSkgPT4gdm9pZDsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pOiBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUSW5wdXQsIFRleHR1cmU+IHwgbnVsbD4ge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoX2luamVjdFRleHR1cmUsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3Qgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IGluamVjdExvYWRlcigoKSA9PiBUZXh0dXJlTG9hZGVyLCBpbnB1dCk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgdGV4dHVyZXMgPSByZXN1bHQoKTtcblx0XHRcdGlmICghdGV4dHVyZXMpIHJldHVybjtcblx0XHRcdGNvbnN0IGdsID0gc3RvcmUuZ2V0KCdnbCcpO1xuXHRcdFx0aWYgKCdpbml0VGV4dHVyZScgaW4gZ2wpIHtcblx0XHRcdFx0Y29uc3QgYXJyYXkgPSBBcnJheS5pc0FycmF5KHRleHR1cmVzKVxuXHRcdFx0XHRcdD8gdGV4dHVyZXNcblx0XHRcdFx0XHQ6IHRleHR1cmVzIGluc3RhbmNlb2YgVGV4dHVyZVxuXHRcdFx0XHRcdFx0PyBbdGV4dHVyZXNdXG5cdFx0XHRcdFx0XHQ6IE9iamVjdC52YWx1ZXModGV4dHVyZXMpO1xuXHRcdFx0XHRpZiAob25Mb2FkKSBvbkxvYWQoYXJyYXkpO1xuXHRcdFx0XHRhcnJheS5mb3JFYWNoKGdsLmluaXRUZXh0dXJlLmJpbmQoZ2wpKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0pO1xufVxuXG5faW5qZWN0VGV4dHVyZS5wcmVsb2FkID0gPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oaW5wdXQ6ICgpID0+IFRJbnB1dCkgPT4ge1xuXHRpbmplY3RMb2FkZXIucHJlbG9hZCgoKSA9PiBUZXh0dXJlTG9hZGVyLCBpbnB1dCk7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzVGV4dHVyZUxvYWRlciA9IHR5cGVvZiBfaW5qZWN0VGV4dHVyZTtcbmV4cG9ydCBjb25zdCBpbmplY3RUZXh0dXJlOiBOZ3RzVGV4dHVyZUxvYWRlciA9IF9pbmplY3RUZXh0dXJlO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLW1hdGVyaWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9tYXRlcmlhbHMvc3JjL2FuZ3VsYXItdGhyZWUtc29iYS1tYXRlcmlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -1,9 +0,0 @@
1
- export * from './lib/custom-shader-material';
2
- export * from './lib/mesh-distort-material';
3
- export * from './lib/mesh-portal-material';
4
- export * from './lib/mesh-reflector-material';
5
- export * from './lib/mesh-refraction-material';
6
- export * from './lib/mesh-transmission-material';
7
- export * from './lib/mesh-wobble-material';
8
- export * from './lib/point-material';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jdXN0b20tc2hhZGVyLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc2gtZGlzdG9ydC1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXBvcnRhbC1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXJlZmxlY3Rvci1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC13b2JibGUtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcG9pbnQtbWF0ZXJpYWwnO1xuIl19