angular-three-soba 2.0.0-beta.7 → 2.0.0-beta.8
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.
- package/abstractions/billboard/billboard.d.ts +11 -7
- package/abstractions/detailed/detailed.d.ts +26 -0
- package/abstractions/edges/edges.d.ts +23 -11
- package/abstractions/grid/grid.d.ts +41 -50
- package/abstractions/index.d.ts +1 -7
- package/abstractions/text/text.d.ts +10 -4
- package/abstractions/text-3d/text-3d.d.ts +47 -40
- package/cameras/camera/camera-content.d.ts +1 -1
- package/cameras/camera/camera.d.ts +16 -13
- package/cameras/cube-camera/cube-camera.d.ts +50 -23
- package/cameras/index.d.ts +0 -1
- package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
- package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
- package/controls/orbit-controls/orbit-controls.d.ts +30 -13
- package/esm2022/abstractions/billboard/billboard.mjs +36 -33
- package/esm2022/abstractions/detailed/detailed.mjs +64 -0
- package/esm2022/abstractions/edges/edges.mjs +58 -63
- package/esm2022/abstractions/grid/grid.mjs +140 -110
- package/esm2022/abstractions/index.mjs +2 -8
- package/esm2022/abstractions/text/text.mjs +123 -122
- package/esm2022/abstractions/text-3d/text-3d.mjs +119 -121
- package/esm2022/cameras/camera/camera-content.mjs +5 -6
- package/esm2022/cameras/camera/camera.mjs +48 -42
- package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
- package/esm2022/cameras/index.mjs +1 -2
- package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
- package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
- package/esm2022/controls/orbit-controls/orbit-controls.mjs +94 -90
- package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
- package/esm2022/loaders/loader/loader.mjs +92 -87
- package/esm2022/loaders/progress/progress.mjs +1 -1
- package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
- package/esm2022/materials/index.mjs +2 -1
- package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
- package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
- package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
- package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
- package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
- package/esm2022/materials/point-material/point-material.mjs +46 -0
- package/esm2022/misc/animations/animations.mjs +20 -16
- package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
- package/esm2022/misc/caustics/caustics.mjs +387 -0
- package/esm2022/misc/decal/decal.mjs +187 -0
- package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
- package/esm2022/misc/example/example.mjs +160 -0
- package/esm2022/misc/fbo/fbo.mjs +35 -35
- package/esm2022/misc/html/html-wrapper.mjs +478 -0
- package/esm2022/misc/html/html.mjs +304 -0
- package/esm2022/misc/index.mjs +10 -1
- package/esm2022/misc/sampler/sampler.mjs +142 -0
- package/esm2022/misc/shadow/shadow.mjs +111 -0
- package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
- package/esm2022/misc/trail/trail.mjs +209 -0
- package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
- package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
- package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
- package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
- package/esm2022/modifiers/index.mjs +2 -0
- package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
- package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
- package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
- package/esm2022/performances/index.mjs +6 -0
- package/esm2022/performances/points/points-input.mjs +64 -0
- package/esm2022/performances/points/points.mjs +329 -0
- package/esm2022/performances/points/position-point.mjs +54 -0
- package/esm2022/performances/segments/segment-object.mjs +9 -0
- package/esm2022/performances/segments/segments.mjs +182 -0
- package/esm2022/shaders/blur-pass/blur-pass.mjs +1 -1
- package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
- package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
- package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
- package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
- package/esm2022/shaders/grid-material/grid-material.mjs +29 -14
- package/esm2022/shaders/index.mjs +5 -3
- package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
- package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +1 -1
- package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
- package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
- package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
- package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
- package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
- package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
- package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
- package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
- package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
- package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
- package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
- package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
- package/esm2022/staging/backdrop/backdrop.mjs +77 -0
- package/esm2022/staging/bb-anchor/bb-anchor.mjs +70 -0
- package/esm2022/staging/bounds/bounds.mjs +144 -143
- package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
- package/esm2022/staging/center/center.mjs +106 -91
- package/esm2022/staging/cloud/cloud.mjs +118 -124
- package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
- package/esm2022/staging/environment/assets.mjs +12 -12
- package/esm2022/staging/environment/environment-cube.mjs +28 -30
- package/esm2022/staging/environment/environment-ground.mjs +18 -20
- package/esm2022/staging/environment/environment-input.mjs +97 -84
- package/esm2022/staging/environment/environment-map.mjs +33 -33
- package/esm2022/staging/environment/environment-portal.mjs +75 -97
- package/esm2022/staging/environment/environment.mjs +34 -51
- package/esm2022/staging/environment/utils.mjs +35 -14
- package/esm2022/staging/float/float.mjs +70 -58
- package/esm2022/staging/index.mjs +7 -3
- package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
- package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
- package/esm2022/staging/sky/sky.mjs +85 -80
- package/esm2022/staging/sparkles/sparkles.mjs +108 -105
- package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
- package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
- package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
- package/esm2022/staging/spot-light/spot-light.mjs +51 -64
- package/esm2022/staging/spot-light/volumetric-mesh.mjs +61 -78
- package/esm2022/staging/stage/stage.mjs +304 -290
- package/esm2022/staging/stars/stars.mjs +101 -102
- package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
- package/esm2022/staging/wireframe/wireframe.mjs +224 -0
- package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
- package/esm2022/utils/content/content.mjs +15 -0
- package/esm2022/utils/index.mjs +2 -0
- package/fesm2022/angular-three-soba-abstractions.mjs +505 -2087
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +302 -259
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +93 -88
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-loaders.mjs +94 -90
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +655 -590
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +2198 -89
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
- package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
- package/fesm2022/angular-three-soba-performances.mjs +697 -0
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
- package/fesm2022/angular-three-soba-shaders.mjs +501 -264
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +2870 -2555
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-utils.mjs +22 -0
- package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
- package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
- package/loaders/loader/loader.d.ts +19 -17
- package/loaders/progress/progress.d.ts +1 -1
- package/loaders/texture-loader/texture-loader.d.ts +2 -2
- package/materials/index.d.ts +1 -0
- package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
- package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
- package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
- package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
- package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
- package/materials/point-material/point-material.d.ts +24 -0
- package/metadata.json +1 -0
- package/misc/animations/animations.d.ts +6 -4
- package/misc/caustics/caustics.d.ts +87 -0
- package/misc/decal/decal.d.ts +49 -0
- package/misc/depth-buffer/depth-buffer.d.ts +2 -2
- package/misc/example/example.d.ts +81 -0
- package/misc/fbo/fbo.d.ts +2 -2
- package/misc/html/html-wrapper.d.ts +559 -0
- package/misc/html/html.d.ts +214 -0
- package/misc/index.d.ts +9 -0
- package/misc/sampler/sampler.d.ts +67 -0
- package/misc/shadow/shadow.d.ts +37 -0
- package/misc/stats-gl/stats-gl.d.ts +24 -0
- package/misc/trail/trail.d.ts +57 -0
- package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
- package/misc/trail-texture/trail-texture.d.ts +50 -0
- package/modifiers/README.md +3 -0
- package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
- package/modifiers/index.d.ts +1 -0
- package/package.json +30 -22
- package/performances/README.md +3 -0
- package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
- package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
- package/performances/index.d.ts +5 -0
- package/performances/points/points-input.d.ts +32 -0
- package/performances/points/points.d.ts +92 -0
- package/{performance/instances/position-mesh.d.ts → performances/points/position-point.d.ts} +4 -3
- package/performances/segments/segment-object.d.ts +7 -0
- package/performances/segments/segments.d.ts +124 -0
- package/shaders/grid-material/grid-material.d.ts +33 -0
- package/shaders/index.d.ts +4 -2
- package/shaders/mesh-distort-material/mesh-distort-material.d.ts +146 -1
- package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
- package/shaders/shader-material/shader-material.d.ts +2 -2
- package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
- package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
- package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
- package/shaders/star-field-material/star-field-material.d.ts +11 -1
- package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
- package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
- package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
- package/staging/backdrop/backdrop.d.ts +30 -0
- package/staging/bb-anchor/bb-anchor.d.ts +27 -0
- package/staging/bounds/bounds.d.ts +100 -24
- package/staging/camera-shake/camera-shake.d.ts +30 -19
- package/staging/center/center.d.ts +43 -35
- package/staging/cloud/cloud.d.ts +26 -23
- package/staging/contact-shadows/contact-shadows.d.ts +41 -28
- package/staging/environment/assets.d.ts +9 -9
- package/staging/environment/environment-cube.d.ts +9 -5
- package/staging/environment/environment-ground.d.ts +7 -7
- package/staging/environment/environment-input.d.ts +36 -36
- package/staging/environment/environment-map.d.ts +10 -5
- package/staging/environment/environment-portal.d.ts +10 -5
- package/staging/environment/environment.d.ts +0 -4
- package/staging/environment/utils.d.ts +2 -2
- package/staging/float/float.d.ts +14 -10
- package/staging/index.d.ts +6 -2
- package/staging/matcap-texture/matcap-texture.d.ts +13 -0
- package/staging/normal-texture/normal-texture.d.ts +16 -0
- package/staging/sky/sky.d.ts +28 -21
- package/staging/sparkles/sparkles.d.ts +35 -21
- package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
- package/staging/spot-light/shadow-mesh.d.ts +37 -0
- package/staging/spot-light/spot-light-input.d.ts +25 -25
- package/staging/spot-light/spot-light.d.ts +31 -15
- package/staging/spot-light/volumetric-mesh.d.ts +15 -9
- package/staging/stage/stage.d.ts +88 -63
- package/staging/stars/stars.d.ts +27 -16
- package/staging/wireframe/wireframe-input.d.ts +65 -0
- package/staging/wireframe/wireframe.d.ts +28 -0
- package/utils/README.md +3 -0
- package/utils/content/content.d.ts +8 -0
- package/utils/index.d.ts +1 -0
- package/web-types.json +1 -0
- package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
- package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
- package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
- package/abstractions/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
- package/abstractions/line/line-input.d.ts +0 -42
- package/abstractions/line/line.d.ts +0 -35
- package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
- package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
- package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
- package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
- package/esm2022/abstractions/line/line-input.mjs +0 -113
- package/esm2022/abstractions/line/line.mjs +0 -165
- package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
- package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
- package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
- package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
- package/esm2022/performance/detailed/detailed.mjs +0 -61
- package/esm2022/performance/index.mjs +0 -7
- package/esm2022/performance/instances/instance.mjs +0 -48
- package/esm2022/performance/instances/instances.mjs +0 -189
- package/esm2022/performance/instances/position-mesh.mjs +0 -52
- package/esm2022/performance/stats/stats.mjs +0 -79
- package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
- package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
- package/esm2022/staging/caustics/caustisc.mjs +0 -384
- package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
- package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -258
- package/fesm2022/angular-three-soba-performance.mjs +0 -487
- package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
- package/performance/README.md +0 -3
- package/performance/adaptive/adaptive-dpr.d.ts +0 -8
- package/performance/detailed/detailed.d.ts +0 -20
- package/performance/index.d.ts +0 -6
- package/performance/instances/instance.d.ts +0 -9
- package/performance/instances/instances.d.ts +0 -35
- package/performance/stats/stats.d.ts +0 -18
- package/plugin/generators.json +0 -19
- package/plugin/libs/plugin/README.md +0 -11
- package/plugin/package.json +0 -9
- package/plugin/src/generators/init/compat.d.ts +0 -2
- package/plugin/src/generators/init/compat.js +0 -6
- package/plugin/src/generators/init/compat.js.map +0 -1
- package/plugin/src/generators/init/init.d.ts +0 -7
- package/plugin/src/generators/init/init.js +0 -28
- package/plugin/src/generators/init/init.js.map +0 -1
- package/plugin/src/generators/init/schema.json +0 -6
- package/plugin/src/index.d.ts +0 -1
- package/plugin/src/index.js +0 -6
- package/plugin/src/index.js.map +0 -1
- package/staging/caustics/caustisc.d.ts +0 -70
- package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
- package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
- /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
|
@@ -1,81 +1,85 @@
|
|
|
1
|
-
import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter,
|
|
2
|
-
import { injectBeforeRender, injectNgtRef,
|
|
1
|
+
import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { injectBeforeRender, injectNgtRef, injectNgtStore, NgtArgs, signalStore, } from 'angular-three';
|
|
3
3
|
import { OrbitControls } from 'three-stdlib';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
class NgtsOrbitControls
|
|
6
|
-
set
|
|
7
|
-
this.set({ camera });
|
|
5
|
+
export class NgtsOrbitControls {
|
|
6
|
+
set _camera(camera) {
|
|
7
|
+
this.inputs.set({ camera });
|
|
8
8
|
}
|
|
9
|
-
set
|
|
10
|
-
this.set({ domElement });
|
|
9
|
+
set _domElement(domElement) {
|
|
10
|
+
this.inputs.set({ domElement });
|
|
11
11
|
}
|
|
12
|
-
set
|
|
13
|
-
this.set({ makeDefault });
|
|
12
|
+
set _makeDefault(makeDefault) {
|
|
13
|
+
this.inputs.set({ makeDefault });
|
|
14
14
|
}
|
|
15
|
-
set
|
|
16
|
-
this.set({ regress });
|
|
15
|
+
set _regress(regress) {
|
|
16
|
+
this.inputs.set({ regress });
|
|
17
17
|
}
|
|
18
|
-
set
|
|
19
|
-
this.set({ target });
|
|
18
|
+
set _target(target) {
|
|
19
|
+
this.inputs.set({ target });
|
|
20
20
|
}
|
|
21
|
-
set
|
|
22
|
-
this.set({ enableDamping });
|
|
21
|
+
set _enableDamping(enableDamping) {
|
|
22
|
+
this.inputs.set({ enableDamping });
|
|
23
23
|
}
|
|
24
|
-
set
|
|
25
|
-
this.set({ keyEvents });
|
|
24
|
+
set _keyEvents(keyEvents) {
|
|
25
|
+
this.inputs.set({ keyEvents });
|
|
26
26
|
}
|
|
27
|
-
#store;
|
|
28
27
|
constructor() {
|
|
29
|
-
|
|
28
|
+
this.inputs = signalStore({
|
|
29
|
+
enableDamping: true,
|
|
30
|
+
regress: false,
|
|
31
|
+
makeDefault: false,
|
|
32
|
+
keyEvents: false,
|
|
33
|
+
});
|
|
30
34
|
this.controlsRef = injectNgtRef();
|
|
31
35
|
this.change = new EventEmitter();
|
|
32
36
|
this.start = new EventEmitter();
|
|
33
37
|
this.end = new EventEmitter();
|
|
34
|
-
this
|
|
38
|
+
this.store = injectNgtStore();
|
|
39
|
+
this.invalidate = this.store.select('invalidate');
|
|
40
|
+
this.performanceRegress = this.store.select('performance', 'regress');
|
|
41
|
+
this.defaultCamera = this.store.select('camera');
|
|
42
|
+
this.glDomElement = this.store.select('gl', 'domElement');
|
|
43
|
+
this.regress = this.inputs.select('regress');
|
|
44
|
+
this.camera = this.inputs.select('camera');
|
|
45
|
+
this.domElement = this.inputs.select('domElement');
|
|
46
|
+
this.keyEvents = this.inputs.select('keyEvents');
|
|
47
|
+
this.makeDefault = this.inputs.select('makeDefault');
|
|
35
48
|
this.args = computed(() => [this.controlsRef.nativeElement]);
|
|
36
|
-
this.
|
|
49
|
+
this.enableDamping = this.inputs.select('enableDamping');
|
|
37
50
|
injectBeforeRender(() => {
|
|
38
|
-
const controls = this.controlsRef.
|
|
51
|
+
const controls = this.controlsRef.nativeElement;
|
|
39
52
|
if (controls && controls.enabled) {
|
|
40
53
|
controls.update();
|
|
41
54
|
}
|
|
42
55
|
}, { priority: -1 });
|
|
43
|
-
this
|
|
44
|
-
this
|
|
45
|
-
this
|
|
46
|
-
this
|
|
56
|
+
this.setControls();
|
|
57
|
+
this.connectElement();
|
|
58
|
+
this.makeControlsDefault();
|
|
59
|
+
this.setEvents();
|
|
47
60
|
}
|
|
48
|
-
|
|
49
|
-
const camera = this.select('camera');
|
|
50
|
-
const defaultCamera = this.#store.select('camera');
|
|
51
|
-
const trigger = computed(() => ({ camera: camera(), defaultCamera: defaultCamera() }));
|
|
61
|
+
setControls() {
|
|
52
62
|
effect(() => {
|
|
53
|
-
const
|
|
63
|
+
const [camera, defaultCamera, controls] = [
|
|
64
|
+
this.camera(),
|
|
65
|
+
this.defaultCamera(),
|
|
66
|
+
this.controlsRef.nativeElement,
|
|
67
|
+
];
|
|
54
68
|
const controlsCamera = camera || defaultCamera;
|
|
55
|
-
const controls = this.controlsRef.nativeElement;
|
|
56
69
|
if (!controls || controls.object !== controlsCamera) {
|
|
57
70
|
this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
|
|
58
71
|
}
|
|
59
|
-
}, { allowSignalWrites: true });
|
|
60
|
-
}
|
|
61
|
-
#connectElement() {
|
|
62
|
-
const glDomElement = this.#store.select('gl', 'domElement');
|
|
63
|
-
const domElement = this.select('domElement');
|
|
64
|
-
const regress = this.select('regress');
|
|
65
|
-
const invalidate = this.#store.select('invalidate');
|
|
66
|
-
const keyEvents = this.select('keyEvents');
|
|
67
|
-
const trigger = computed(() => {
|
|
68
|
-
const eventsSource = this.#store.get('events', 'connected');
|
|
69
|
-
return {
|
|
70
|
-
keyEvents: keyEvents(),
|
|
71
|
-
controls: this.controlsRef.nativeElement,
|
|
72
|
-
domElement: domElement() || eventsSource || glDomElement(),
|
|
73
|
-
regress: regress(),
|
|
74
|
-
invalidate: invalidate(),
|
|
75
|
-
};
|
|
76
72
|
});
|
|
73
|
+
}
|
|
74
|
+
connectElement() {
|
|
77
75
|
effect((onCleanup) => {
|
|
78
|
-
const
|
|
76
|
+
const [keyEvents, domElement, controls] = [
|
|
77
|
+
this.keyEvents(),
|
|
78
|
+
this.domElement() || this.store.get('events', 'connected') || this.glDomElement(),
|
|
79
|
+
this.controlsRef.nativeElement,
|
|
80
|
+
this.invalidate(),
|
|
81
|
+
this.regress(),
|
|
82
|
+
];
|
|
79
83
|
if (!controls)
|
|
80
84
|
return;
|
|
81
85
|
if (keyEvents) {
|
|
@@ -87,38 +91,32 @@ class NgtsOrbitControls extends NgtSignalStore {
|
|
|
87
91
|
onCleanup(() => void controls.dispose());
|
|
88
92
|
});
|
|
89
93
|
}
|
|
90
|
-
|
|
91
|
-
const makeDefault = this.select('makeDefault');
|
|
92
|
-
const trigger = computed(() => ({ controls: this.controlsRef.nativeElement, makeDefault: makeDefault() }));
|
|
94
|
+
makeControlsDefault() {
|
|
93
95
|
effect((onCleanup) => {
|
|
94
|
-
const
|
|
96
|
+
const [controls, makeDefault] = [this.controlsRef.nativeElement, this.makeDefault()];
|
|
95
97
|
if (!controls)
|
|
96
98
|
return;
|
|
97
99
|
if (makeDefault) {
|
|
98
|
-
const oldControls = this
|
|
99
|
-
this
|
|
100
|
-
onCleanup(() => void this
|
|
100
|
+
const oldControls = this.store.get('controls');
|
|
101
|
+
this.store.set({ controls });
|
|
102
|
+
onCleanup(() => void this.store.set({ controls: oldControls }));
|
|
101
103
|
}
|
|
102
|
-
}
|
|
104
|
+
});
|
|
103
105
|
}
|
|
104
|
-
|
|
105
|
-
const invalidate = this.#store.select('invalidate');
|
|
106
|
-
const performance = this.#store.select('performance');
|
|
107
|
-
const regress = this.select('regress');
|
|
108
|
-
const trigger = computed(() => ({
|
|
109
|
-
invalidate: invalidate(),
|
|
110
|
-
performance: performance(),
|
|
111
|
-
regress: regress(),
|
|
112
|
-
controls: this.controlsRef.nativeElement,
|
|
113
|
-
}));
|
|
106
|
+
setEvents() {
|
|
114
107
|
effect((onCleanup) => {
|
|
115
|
-
const
|
|
108
|
+
const [controls, invalidate, performanceRegress, regress] = [
|
|
109
|
+
this.controlsRef.nativeElement,
|
|
110
|
+
this.invalidate(),
|
|
111
|
+
this.performanceRegress(),
|
|
112
|
+
this.regress(),
|
|
113
|
+
];
|
|
116
114
|
if (!controls)
|
|
117
115
|
return;
|
|
118
116
|
const changeCallback = (e) => {
|
|
119
117
|
invalidate();
|
|
120
118
|
if (regress)
|
|
121
|
-
|
|
119
|
+
performanceRegress();
|
|
122
120
|
if (this.change.observed)
|
|
123
121
|
this.change.emit(e);
|
|
124
122
|
};
|
|
@@ -138,35 +136,41 @@ class NgtsOrbitControls extends NgtSignalStore {
|
|
|
138
136
|
});
|
|
139
137
|
});
|
|
140
138
|
}
|
|
141
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
142
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
139
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
140
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", _camera: ["camera", "_camera"], _domElement: ["domElement", "_domElement"], _makeDefault: ["makeDefault", "_makeDefault"], _regress: ["regress", "_regress"], _target: ["target", "_target"], _enableDamping: ["enableDamping", "_enableDamping"], _keyEvents: ["keyEvents", "_keyEvents"] }, outputs: { change: "change", start: "start", end: "end" }, ngImport: i0, template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()" /> `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
|
|
143
141
|
}
|
|
144
|
-
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsOrbitControls, decorators: [{
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsOrbitControls, decorators: [{
|
|
146
143
|
type: Component,
|
|
147
144
|
args: [{
|
|
148
145
|
selector: 'ngts-orbit-controls',
|
|
149
146
|
standalone: true,
|
|
150
|
-
template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="
|
|
147
|
+
template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()" /> `,
|
|
151
148
|
imports: [NgtArgs],
|
|
152
149
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
153
150
|
}]
|
|
154
151
|
}], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
|
|
155
152
|
type: Input
|
|
156
|
-
}],
|
|
157
|
-
type: Input
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}],
|
|
163
|
-
type: Input
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}],
|
|
169
|
-
type: Input
|
|
153
|
+
}], _camera: [{
|
|
154
|
+
type: Input,
|
|
155
|
+
args: [{ alias: 'camera' }]
|
|
156
|
+
}], _domElement: [{
|
|
157
|
+
type: Input,
|
|
158
|
+
args: [{ alias: 'domElement' }]
|
|
159
|
+
}], _makeDefault: [{
|
|
160
|
+
type: Input,
|
|
161
|
+
args: [{ alias: 'makeDefault' }]
|
|
162
|
+
}], _regress: [{
|
|
163
|
+
type: Input,
|
|
164
|
+
args: [{ alias: 'regress' }]
|
|
165
|
+
}], _target: [{
|
|
166
|
+
type: Input,
|
|
167
|
+
args: [{ alias: 'target' }]
|
|
168
|
+
}], _enableDamping: [{
|
|
169
|
+
type: Input,
|
|
170
|
+
args: [{ alias: 'enableDamping' }]
|
|
171
|
+
}], _keyEvents: [{
|
|
172
|
+
type: Input,
|
|
173
|
+
args: [{ alias: 'keyEvents' }]
|
|
170
174
|
}], change: [{
|
|
171
175
|
type: Output
|
|
172
176
|
}], start: [{
|
|
@@ -174,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
|
|
|
174
178
|
}], end: [{
|
|
175
179
|
type: Output
|
|
176
180
|
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLE9BQU8sRUFDUCxjQUFjLEVBQ2QsUUFBUSxHQUdYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBa0I3QyxNQU9hLGlCQUFrQixTQUFRLGNBQXNDO0lBR3pFLElBQWEsTUFBTSxDQUFDLE1BQW9CO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUF1QjtRQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxXQUFXLENBQUMsV0FBb0I7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLE9BQWdCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUF3RDtRQUN4RSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxhQUFhLENBQUMsYUFB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Q0FBQztZQUUvRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNYLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksYUFBYTtvQkFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLFdBQVc7b0JBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E3SlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsK1dBSmhCLDRFQUE0RSw0REFDNUUsT0FBTzs7U0FHUixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFQN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDRFQUE0RTtvQkFDdEYsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7MEVBRVksV0FBVztzQkFBbkIsS0FBSztnQkFFTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sYUFBYTtzQkFBekIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBlZmZlY3QsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBpbmplY3RCZWZvcmVSZW5kZXIsXG4gICAgaW5qZWN0Tmd0UmVmLFxuICAgIE5ndEFyZ3MsXG4gICAgTmd0U2lnbmFsU3RvcmUsXG4gICAgTmd0U3RvcmUsXG4gICAgdHlwZSBOZ3RDYW1lcmEsXG4gICAgdHlwZSBOZ3RWZWN0b3IzLFxufSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE9yYml0Q29udHJvbHMgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgdHlwZSBOZ3RzT3JiaXRDb250cm9sc1N0YXRlID0ge1xuICAgIGNhbWVyYT86IFRIUkVFLkNhbWVyYTtcbiAgICBkb21FbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICAgdGFyZ2V0PzogTmd0VmVjdG9yMztcbiAgICBtYWtlRGVmYXVsdDogYm9vbGVhbjtcbiAgICByZWdyZXNzOiBib29sZWFuO1xuICAgIGVuYWJsZURhbXBpbmc6IGJvb2xlYW47XG4gICAga2V5RXZlbnRzOiBib29sZWFuIHwgSFRNTEVsZW1lbnQ7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgICAgICduZ3RzLW9yYml0LWNvbnRyb2xzJzogT3JiaXRDb250cm9scyAmIE5ndHNPcmJpdENvbnRyb2xzU3RhdGU7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtb3JiaXQtY29udHJvbHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJhcmdzKClcIiBuZ3RDb21wb3VuZCBbZW5hYmxlRGFtcGluZ109XCJkYW1waW5nKClcIiAvPiBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNPcmJpdENvbnRyb2xzIGV4dGVuZHMgTmd0U2lnbmFsU3RvcmU8Tmd0c09yYml0Q29udHJvbHNTdGF0ZT4ge1xuICAgIEBJbnB1dCgpIGNvbnRyb2xzUmVmID0gaW5qZWN0Tmd0UmVmPE9yYml0Q29udHJvbHM+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgY2FtZXJhKGNhbWVyYTogVEhSRUUuQ2FtZXJhKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkb21FbGVtZW50KGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZG9tRWxlbWVudCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWFrZURlZmF1bHQobWFrZURlZmF1bHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtYWtlRGVmYXVsdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcmVncmVzcyhyZWdyZXNzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVncmVzcyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdGFyZ2V0KHRhcmdldDogVEhSRUUuVmVjdG9yMyB8IFBhcmFtZXRlcnM8VEhSRUUuVmVjdG9yM1snc2V0J10+KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdGFyZ2V0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBlbmFibGVEYW1waW5nKGVuYWJsZURhbXBpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbmFibGVEYW1waW5nIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBrZXlFdmVudHMoa2V5RXZlbnRzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsga2V5RXZlbnRzIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBzdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG5cbiAgICByZWFkb25seSAjc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgcmVhZG9ubHkgYXJncyA9IGNvbXB1dGVkKCgpID0+IFt0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnRdKTtcbiAgICByZWFkb25seSBkYW1waW5nID0gdGhpcy5zZWxlY3QoJ2VuYWJsZURhbXBpbmcnKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7IGVuYWJsZURhbXBpbmc6IHRydWUsIHJlZ3Jlc3M6IGZhbHNlLCBtYWtlRGVmYXVsdDogZmFsc2UsIGtleUV2ZW50czogZmFsc2UgfSk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcihcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHNSZWYudW50cmFja2VkO1xuICAgICAgICAgICAgICAgIGlmIChjb250cm9scyAmJiBjb250cm9scy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IHByaW9yaXR5OiAtMSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy4jc2V0Q29udHJvbHMoKTtcbiAgICAgICAgdGhpcy4jY29ubmVjdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy4jbWFrZUNvbnRyb2xzRGVmYXVsdCgpO1xuICAgICAgICB0aGlzLiNzZXRFdmVudHMoKTtcbiAgICB9XG5cbiAgICAjc2V0Q29udHJvbHMoKSB7XG4gICAgICAgIGNvbnN0IGNhbWVyYSA9IHRoaXMuc2VsZWN0KCdjYW1lcmEnKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdENhbWVyYSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBjb21wdXRlZCgoKSA9PiAoeyBjYW1lcmE6IGNhbWVyYSgpLCBkZWZhdWx0Q2FtZXJhOiBkZWZhdWx0Q2FtZXJhKCkgfSkpO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNhbWVyYSwgZGVmYXVsdENhbWVyYSB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xzQ2FtZXJhID0gY2FtZXJhIHx8IGRlZmF1bHRDYW1lcmE7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKCFjb250cm9scyB8fCBjb250cm9scy5vYmplY3QgIT09IGNvbnRyb2xzQ2FtZXJhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCA9IG5ldyBPcmJpdENvbnRyb2xzKGNvbnRyb2xzQ2FtZXJhIGFzIE5ndENhbWVyYSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgICNjb25uZWN0RWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZ2xEb21FbGVtZW50ID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdnbCcsICdkb21FbGVtZW50Jyk7XG4gICAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLnNlbGVjdCgnZG9tRWxlbWVudCcpO1xuICAgICAgICBjb25zdCByZWdyZXNzID0gdGhpcy5zZWxlY3QoJ3JlZ3Jlc3MnKTtcbiAgICAgICAgY29uc3QgaW52YWxpZGF0ZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuICAgICAgICBjb25zdCBrZXlFdmVudHMgPSB0aGlzLnNlbGVjdCgna2V5RXZlbnRzJyk7XG5cbiAgICAgICAgY29uc3QgdHJpZ2dlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50c1NvdXJjZSA9IHRoaXMuI3N0b3JlLmdldCgnZXZlbnRzJywgJ2Nvbm5lY3RlZCcpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBrZXlFdmVudHM6IGtleUV2ZW50cygpLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xzOiB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgZG9tRWxlbWVudDogZG9tRWxlbWVudCgpIHx8IGV2ZW50c1NvdXJjZSB8fCBnbERvbUVsZW1lbnQoKSxcbiAgICAgICAgICAgICAgICByZWdyZXNzOiByZWdyZXNzKCksXG4gICAgICAgICAgICAgICAgaW52YWxpZGF0ZTogaW52YWxpZGF0ZSgpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZG9tRWxlbWVudCwgY29udHJvbHMsIGtleUV2ZW50cyB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgaWYgKCFjb250cm9scykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGtleUV2ZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xzLmNvbm5lY3Qoa2V5RXZlbnRzID09PSB0cnVlID8gZG9tRWxlbWVudCA6IGtleUV2ZW50cyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xzLmNvbm5lY3QoZG9tRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4gdm9pZCBjb250cm9scy5kaXNwb3NlKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAjbWFrZUNvbnRyb2xzRGVmYXVsdCgpIHtcbiAgICAgICAgY29uc3QgbWFrZURlZmF1bHQgPSB0aGlzLnNlbGVjdCgnbWFrZURlZmF1bHQnKTtcbiAgICAgICAgY29uc3QgdHJpZ2dlciA9IGNvbXB1dGVkKCgpID0+ICh7IGNvbnRyb2xzOiB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsIG1ha2VEZWZhdWx0OiBtYWtlRGVmYXVsdCgpIH0pKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAob25DbGVhbnVwKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjb250cm9scywgbWFrZURlZmF1bHQgfSA9IHRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2xzKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKG1ha2VEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy4jc3RvcmUuZ2V0KCdjb250cm9scycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNzdG9yZS5zZXQoeyBjb250cm9scyB9KTtcbiAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCgpID0+IHZvaWQgdGhpcy4jc3RvcmUuc2V0KHsgY29udHJvbHM6IG9sZENvbnRyb2xzIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgI3NldEV2ZW50cygpIHtcbiAgICAgICAgY29uc3QgaW52YWxpZGF0ZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuICAgICAgICBjb25zdCBwZXJmb3JtYW5jZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgncGVyZm9ybWFuY2UnKTtcbiAgICAgICAgY29uc3QgcmVncmVzcyA9IHRoaXMuc2VsZWN0KCdyZWdyZXNzJyk7XG5cbiAgICAgICAgY29uc3QgdHJpZ2dlciA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAgICAgICBpbnZhbGlkYXRlOiBpbnZhbGlkYXRlKCksXG4gICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UoKSxcbiAgICAgICAgICAgIHJlZ3Jlc3M6IHJlZ3Jlc3MoKSxcbiAgICAgICAgICAgIGNvbnRyb2xzOiB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIH0pKTtcbiAgICAgICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29udHJvbHMsIGludmFsaWRhdGUsIHBlcmZvcm1hbmNlLCByZWdyZXNzIH0gPSB0cmlnZ2VyKCk7XG4gICAgICAgICAgICBpZiAoIWNvbnRyb2xzKSByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VDYWxsYmFjazogKGU6IFRIUkVFLkV2ZW50KSA9PiB2b2lkID0gKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlZ3Jlc3MpIHBlcmZvcm1hbmNlLnJlZ3Jlc3MoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGFuZ2Uub2JzZXJ2ZWQpIHRoaXMuY2hhbmdlLmVtaXQoZSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBzdGFydENhbGxiYWNrID0gdGhpcy5zdGFydC5vYnNlcnZlZCA/IHRoaXMuc3RhcnQuZW1pdC5iaW5kKHRoaXMuc3RhcnQpIDogbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGVuZENhbGxiYWNrID0gdGhpcy5lbmQub2JzZXJ2ZWQgPyB0aGlzLmVuZC5lbWl0LmJpbmQodGhpcy5lbmQpIDogbnVsbDtcblxuICAgICAgICAgICAgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2hhbmdlQ2FsbGJhY2spO1xuICAgICAgICAgICAgaWYgKHN0YXJ0Q2FsbGJhY2spIGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG4gICAgICAgICAgICBpZiAoZW5kQ2FsbGJhY2spIGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcblxuICAgICAgICAgICAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0Q2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgaWYgKGVuZENhbGxiYWNrKSBjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBlbmRDYWxsYmFjayk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixjQUFjLEVBQ2QsT0FBTyxFQUNQLFdBQVcsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQTRCN0MsTUFBTSxPQUFPLGlCQUFpQjtJQVU3QixJQUFnQyxPQUFPLENBQUMsTUFBb0I7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFvQyxXQUFXLENBQUMsVUFBdUI7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFxQyxZQUFZLENBQUMsV0FBb0I7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFpQyxRQUFRLENBQUMsT0FBZ0I7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFnQyxPQUFPLENBQUMsTUFBd0Q7UUFDL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxD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QUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakM7MEVBU1MsV0FBVztzQkFBbkIsS0FBSztnQkFFMEIsT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSVUsV0FBVztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBSU8sWUFBWTtzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBSUUsUUFBUTtzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBSUssT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSWEsY0FBYztzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBSUUsVUFBVTtzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBSW5CLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdGluamVjdEJlZm9yZVJlbmRlcixcblx0aW5qZWN0Tmd0UmVmLFxuXHRpbmplY3ROZ3RTdG9yZSxcblx0Tmd0QXJncyxcblx0c2lnbmFsU3RvcmUsXG5cdHR5cGUgTmd0Q2FtZXJhLFxuXHR0eXBlIE5ndFZlY3RvcjMsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCB0eXBlIE5ndHNPcmJpdENvbnRyb2xzU3RhdGUgPSB7XG5cdGNhbWVyYT86IFRIUkVFLkNhbWVyYTtcblx0ZG9tRWxlbWVudD86IEhUTUxFbGVtZW50O1xuXHR0YXJnZXQ/OiBOZ3RWZWN0b3IzO1xuXHRtYWtlRGVmYXVsdDogYm9vbGVhbjtcblx0cmVncmVzczogYm9vbGVhbjtcblx0ZW5hYmxlRGFtcGluZzogYm9vbGVhbjtcblx0a2V5RXZlbnRzOiBib29sZWFuIHwgSFRNTEVsZW1lbnQ7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIHRocmVlLXN0ZGxpYnxPcmJpdENvbnRyb2xzXG5cdFx0ICovXG5cdFx0J25ndHMtb3JiaXQtY29udHJvbHMnOiBPcmJpdENvbnRyb2xzICYgTmd0c09yYml0Q29udHJvbHNTdGF0ZTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLW9yYml0LWNvbnRyb2xzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJhcmdzKClcIiBuZ3RDb21wb3VuZCBbZW5hYmxlRGFtcGluZ109XCJlbmFibGVEYW1waW5nKClcIiAvPiBgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c09yYml0Q29udHJvbHMge1xuXHRwcml2YXRlIGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHNPcmJpdENvbnRyb2xzU3RhdGU+KHtcblx0XHRlbmFibGVEYW1waW5nOiB0cnVlLFxuXHRcdHJlZ3Jlc3M6IGZhbHNlLFxuXHRcdG1ha2VEZWZhdWx0OiBmYWxzZSxcblx0XHRrZXlFdmVudHM6IGZhbHNlLFxuXHR9KTtcblxuXHRASW5wdXQoKSBjb250cm9sc1JlZiA9IGluamVjdE5ndFJlZjxPcmJpdENvbnRyb2xzPigpO1xuXG5cdEBJbnB1dCh7IGFsaWFzOiAnY2FtZXJhJyB9KSBzZXQgX2NhbWVyYShjYW1lcmE6IFRIUkVFLkNhbWVyYSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGNhbWVyYSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZG9tRWxlbWVudCcgfSkgc2V0IF9kb21FbGVtZW50KGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZG9tRWxlbWVudCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnbWFrZURlZmF1bHQnIH0pIHNldCBfbWFrZURlZmF1bHQobWFrZURlZmF1bHQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBtYWtlRGVmYXVsdCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAncmVncmVzcycgfSkgc2V0IF9yZWdyZXNzKHJlZ3Jlc3M6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyByZWdyZXNzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICd0YXJnZXQnIH0pIHNldCBfdGFyZ2V0KHRhcmdldDogVEhSRUUuVmVjdG9yMyB8IFBhcmFtZXRlcnM8VEhSRUUuVmVjdG9yM1snc2V0J10+KSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgdGFyZ2V0IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdlbmFibGVEYW1waW5nJyB9KSBzZXQgX2VuYWJsZURhbXBpbmcoZW5hYmxlRGFtcGluZzogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGVuYWJsZURhbXBpbmcgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2tleUV2ZW50cycgfSkgc2V0IF9rZXlFdmVudHMoa2V5RXZlbnRzOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsga2V5RXZlbnRzIH0pO1xuXHR9XG5cblx0QE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG5cdEBPdXRwdXQoKSBzdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG5cdEBPdXRwdXQoKSBlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRwcml2YXRlIGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuXHRwcml2YXRlIHBlcmZvcm1hbmNlUmVncmVzcyA9IHRoaXMuc3RvcmUuc2VsZWN0KCdwZXJmb3JtYW5jZScsICdyZWdyZXNzJyk7XG5cdHByaXZhdGUgZGVmYXVsdENhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBnbERvbUVsZW1lbnQgPSB0aGlzLnN0b3JlLnNlbGVjdCgnZ2wnLCAnZG9tRWxlbWVudCcpO1xuXHRwcml2YXRlIHJlZ3Jlc3MgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3JlZ3Jlc3MnKTtcblx0cHJpdmF0ZSBjYW1lcmEgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIGRvbUVsZW1lbnQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2RvbUVsZW1lbnQnKTtcblx0cHJpdmF0ZSBrZXlFdmVudHMgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2tleUV2ZW50cycpO1xuXHRwcml2YXRlIG1ha2VEZWZhdWx0ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdtYWtlRGVmYXVsdCcpO1xuXG5cdGFyZ3MgPSBjb21wdXRlZCgoKSA9PiBbdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50XSk7XG5cdGVuYWJsZURhbXBpbmcgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2VuYWJsZURhbXBpbmcnKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoY29udHJvbHMgJiYgY29udHJvbHMuZW5hYmxlZCkge1xuXHRcdFx0XHRcdGNvbnRyb2xzLnVwZGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBwcmlvcml0eTogLTEgfSxcblx0XHQpO1xuXG5cdFx0dGhpcy5zZXRDb250cm9scygpO1xuXHRcdHRoaXMuY29ubmVjdEVsZW1lbnQoKTtcblx0XHR0aGlzLm1ha2VDb250cm9sc0RlZmF1bHQoKTtcblx0XHR0aGlzLnNldEV2ZW50cygpO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRDb250cm9scygpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NhbWVyYSwgZGVmYXVsdENhbWVyYSwgY29udHJvbHNdID0gW1xuXHRcdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XHR0aGlzLmRlZmF1bHRDYW1lcmEoKSxcblx0XHRcdFx0dGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XTtcblx0XHRcdGNvbnN0IGNvbnRyb2xzQ2FtZXJhID0gY2FtZXJhIHx8IGRlZmF1bHRDYW1lcmE7XG5cdFx0XHRpZiAoIWNvbnRyb2xzIHx8IGNvbnRyb2xzLm9iamVjdCAhPT0gY29udHJvbHNDYW1lcmEpIHtcblx0XHRcdFx0dGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50ID0gbmV3IE9yYml0Q29udHJvbHMoY29udHJvbHNDYW1lcmEgYXMgTmd0Q2FtZXJhKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgY29ubmVjdEVsZW1lbnQoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtrZXlFdmVudHMsIGRvbUVsZW1lbnQsIGNvbnRyb2xzXSA9IFtcblx0XHRcdFx0dGhpcy5rZXlFdmVudHMoKSxcblx0XHRcdFx0dGhpcy5kb21FbGVtZW50KCkgfHwgdGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycsICdjb25uZWN0ZWQnKSB8fCB0aGlzLmdsRG9tRWxlbWVudCgpLFxuXHRcdFx0XHR0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLnJlZ3Jlc3MoKSxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cdFx0XHRpZiAoa2V5RXZlbnRzKSB7XG5cdFx0XHRcdGNvbnRyb2xzLmNvbm5lY3Qoa2V5RXZlbnRzID09PSB0cnVlID8gZG9tRWxlbWVudCA6IGtleUV2ZW50cyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb250cm9scy5jb25uZWN0KGRvbUVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHZvaWQgY29udHJvbHMuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbWFrZUNvbnRyb2xzRGVmYXVsdCgpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NvbnRyb2xzLCBtYWtlRGVmYXVsdF0gPSBbdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50LCB0aGlzLm1ha2VEZWZhdWx0KCldO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXHRcdFx0aWYgKG1ha2VEZWZhdWx0KSB7XG5cdFx0XHRcdGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy5zdG9yZS5nZXQoJ2NvbnRyb2xzJyk7XG5cdFx0XHRcdHRoaXMuc3RvcmUuc2V0KHsgY29udHJvbHMgfSk7XG5cdFx0XHRcdG9uQ2xlYW51cCgoKSA9PiB2b2lkIHRoaXMuc3RvcmUuc2V0KHsgY29udHJvbHM6IG9sZENvbnRyb2xzIH0pKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0RXZlbnRzKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBbY29udHJvbHMsIGludmFsaWRhdGUsIHBlcmZvcm1hbmNlUmVncmVzcywgcmVncmVzc10gPSBbXG5cdFx0XHRcdHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0dGhpcy5pbnZhbGlkYXRlKCksXG5cdFx0XHRcdHRoaXMucGVyZm9ybWFuY2VSZWdyZXNzKCksXG5cdFx0XHRcdHRoaXMucmVncmVzcygpLFxuXHRcdFx0XTtcblx0XHRcdGlmICghY29udHJvbHMpIHJldHVybjtcblx0XHRcdGNvbnN0IGNoYW5nZUNhbGxiYWNrOiAoZTogVEhSRUUuRXZlbnQpID0+IHZvaWQgPSAoZSkgPT4ge1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHRcdGlmIChyZWdyZXNzKSBwZXJmb3JtYW5jZVJlZ3Jlc3MoKTtcblx0XHRcdFx0aWYgKHRoaXMuY2hhbmdlLm9ic2VydmVkKSB0aGlzLmNoYW5nZS5lbWl0KGUpO1xuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3Qgc3RhcnRDYWxsYmFjayA9IHRoaXMuc3RhcnQub2JzZXJ2ZWQgPyB0aGlzLnN0YXJ0LmVtaXQuYmluZCh0aGlzLnN0YXJ0KSA6IG51bGw7XG5cdFx0XHRjb25zdCBlbmRDYWxsYmFjayA9IHRoaXMuZW5kLm9ic2VydmVkID8gdGhpcy5lbmQuZW1pdC5iaW5kKHRoaXMuZW5kKSA6IG51bGw7XG5cblx0XHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcblx0XHRcdGlmIChzdGFydENhbGxiYWNrKSBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuXHRcdFx0aWYgKGVuZENhbGxiYWNrKSBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdlbmQnLCBlbmRDYWxsYmFjayk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcblx0XHRcdFx0aWYgKHN0YXJ0Q2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG5cdFx0XHRcdGlmIChlbmRDYWxsYmFjaykgY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { injectNgtLoader } from 'angular-three';
|
|
2
|
-
|
|
3
|
-
import { MeshoptDecoder } from 'three-stdlib';
|
|
4
|
-
import { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';
|
|
5
|
-
import { GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
|
|
2
|
+
import { DRACOLoader, GLTFLoader, MeshoptDecoder } from 'three-stdlib';
|
|
6
3
|
let dracoLoader = null;
|
|
7
4
|
function _extensions(useDraco, useMeshOpt, extensions) {
|
|
8
5
|
return (loader) => {
|
|
@@ -13,7 +10,7 @@ function _extensions(useDraco, useMeshOpt, extensions) {
|
|
|
13
10
|
if (!dracoLoader) {
|
|
14
11
|
dracoLoader = new DRACOLoader();
|
|
15
12
|
}
|
|
16
|
-
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.
|
|
13
|
+
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/');
|
|
17
14
|
loader.setDRACOLoader(dracoLoader);
|
|
18
15
|
}
|
|
19
16
|
if (useMeshOpt) {
|
|
@@ -30,4 +27,4 @@ export function injectNgtsGLTFLoader(path, { useDraco = true, useMeshOpt = true,
|
|
|
30
27
|
injectNgtsGLTFLoader['preload'] = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
|
|
31
28
|
injectNgtLoader['preload'](() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
|
|
32
29
|
};
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBNEMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBUSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdFLElBQUksV0FBVyxHQUF1QixJQUFJLENBQUM7QUFFM0MsU0FBUyxXQUFXLENBQUMsUUFBMEIsRUFBRSxVQUFtQixFQUFFLFVBQXlDO0lBQzlHLE9BQU8sQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDL0IsSUFBSSxVQUFVLEVBQUU7WUFDZixVQUFVLENBQUMsTUFBb0IsQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNqQixXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQzthQUNoQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQ3pCLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyx5REFBeUQsQ0FDbkcsQ0FBQztZQUNELE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDZCxNQUFxQixDQUFDLGlCQUFpQixDQUN2QyxPQUFPLGNBQWMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQ3hFLENBQUM7U0FDRjtJQUNGLENBQUMsQ0FBQztBQUNILENBQUM7QUFJRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLElBQWdCLEVBQ2hCLEVBQ0MsUUFBUSxHQUFHLElBQUksRUFDZixVQUFVLEdBQUcsSUFBSSxFQUNqQixRQUFRLEVBQ1IsVUFBVSxNQU1QLEVBQUU7SUFFTixPQUFPLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFO1FBQzlDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7UUFDekQsUUFBUTtLQUNSLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNqQyxJQUFnQixFQUNoQixFQUNDLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLElBQUksRUFDakIsVUFBVSxNQUtQLEVBQUUsRUFDTCxFQUFFO0lBQ0YsZUFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDNUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbmplY3RvciwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RMb2FkZXIsIHR5cGUgTmd0TG9hZGVyUmVzdWx0cywgdHlwZSBOZ3RPYmplY3RNYXAgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IERSQUNPTG9hZGVyLCBHTFRGLCBHTFRGTG9hZGVyLCBNZXNob3B0RGVjb2RlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmxldCBkcmFjb0xvYWRlcjogRFJBQ09Mb2FkZXIgfCBudWxsID0gbnVsbDtcblxuZnVuY3Rpb24gX2V4dGVuc2lvbnModXNlRHJhY286IGJvb2xlYW4gfCBzdHJpbmcsIHVzZU1lc2hPcHQ6IGJvb2xlYW4sIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkKSB7XG5cdHJldHVybiAobG9hZGVyOiBUSFJFRS5Mb2FkZXIpID0+IHtcblx0XHRpZiAoZXh0ZW5zaW9ucykge1xuXHRcdFx0ZXh0ZW5zaW9ucyhsb2FkZXIgYXMgR0xURkxvYWRlcik7XG5cdFx0fVxuXG5cdFx0aWYgKHVzZURyYWNvKSB7XG5cdFx0XHRpZiAoIWRyYWNvTG9hZGVyKSB7XG5cdFx0XHRcdGRyYWNvTG9hZGVyID0gbmV3IERSQUNPTG9hZGVyKCk7XG5cdFx0XHR9XG5cblx0XHRcdGRyYWNvTG9hZGVyLnNldERlY29kZXJQYXRoKFxuXHRcdFx0XHR0eXBlb2YgdXNlRHJhY28gPT09ICdzdHJpbmcnID8gdXNlRHJhY28gOiAnaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vZHJhY28vdmVyc2lvbmVkL2RlY29kZXJzLzEuNS41LycsXG5cdFx0XHQpO1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXREUkFDT0xvYWRlcihkcmFjb0xvYWRlcik7XG5cdFx0fVxuXG5cdFx0aWYgKHVzZU1lc2hPcHQpIHtcblx0XHRcdChsb2FkZXIgYXMgR0xURkxvYWRlcikuc2V0TWVzaG9wdERlY29kZXIoXG5cdFx0XHRcdHR5cGVvZiBNZXNob3B0RGVjb2RlciA9PT0gJ2Z1bmN0aW9uJyA/IE1lc2hvcHREZWNvZGVyKCkgOiBNZXNob3B0RGVjb2Rlcixcblx0XHRcdCk7XG5cdFx0fVxuXHR9O1xufVxuXG5leHBvcnQgdHlwZSBOZ3RzR0xURjxUIGV4dGVuZHMgUGFydGlhbDxOZ3RPYmplY3RNYXA+PiA9IEdMVEYgJiBOZ3RPYmplY3RNYXAgJiBUO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tmd0c0dMVEZMb2FkZXI8VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdHBhdGg6ICgpID0+IFRVcmwsXG5cdHtcblx0XHR1c2VEcmFjbyA9IHRydWUsXG5cdFx0dXNlTWVzaE9wdCA9IHRydWUsXG5cdFx0aW5qZWN0b3IsXG5cdFx0ZXh0ZW5zaW9ucyxcblx0fToge1xuXHRcdHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZztcblx0XHR1c2VNZXNoT3B0PzogYm9vbGVhbjtcblx0XHRpbmplY3Rvcj86IEluamVjdG9yO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pOiBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB8IG51bGw+IHtcblx0cmV0dXJuIGluamVjdE5ndExvYWRlcigoKSA9PiBHTFRGTG9hZGVyLCBwYXRoLCB7XG5cdFx0ZXh0ZW5zaW9uczogX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpLFxuXHRcdGluamVjdG9yLFxuXHR9KTtcbn1cblxuaW5qZWN0Tmd0c0dMVEZMb2FkZXJbJ3ByZWxvYWQnXSA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRleHRlbnNpb25zLFxuXHR9OiB7XG5cdFx0dXNlRHJhY28/OiBib29sZWFuIHwgc3RyaW5nO1xuXHRcdHVzZU1lc2hPcHQ/OiBib29sZWFuO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pID0+IHtcblx0KGluamVjdE5ndExvYWRlciBhcyBhbnkpWydwcmVsb2FkJ10oKCkgPT4gR0xURkxvYWRlciwgcGF0aCwgX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpKTtcbn07XG4iXX0=
|