angular-three-soba 2.0.0-beta.2 → 2.0.0-beta.21
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 +24 -12
- package/abstractions/grid/grid.d.ts +50 -0
- package/abstractions/index.d.ts +2 -7
- package/abstractions/text/text.d.ts +10 -5
- package/abstractions/text-3d/text-3d.d.ts +51 -41
- 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 +31 -12
- 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 +180 -0
- package/esm2022/abstractions/index.mjs +3 -8
- package/esm2022/abstractions/text/text.mjs +123 -124
- package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
- package/esm2022/cameras/camera/camera-content.mjs +6 -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 +105 -85
- package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +197 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +150 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
- package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
- package/esm2022/gizmos/index.mjs +4 -0
- package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
- package/esm2022/loaders/loader/loader.mjs +92 -87
- package/esm2022/loaders/progress/progress.mjs +29 -29
- 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 +102 -99
- 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 +50 -0
- package/esm2022/misc/animations/animations.mjs +36 -32
- 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 +8 -0
- package/esm2022/performances/instances/instances.mjs +220 -0
- package/esm2022/performances/instances/position-mesh.mjs +52 -0
- package/esm2022/performances/points/points-input.mjs +64 -0
- package/esm2022/performances/points/points.mjs +326 -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 +2 -2
- 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 +77 -0
- package/esm2022/shaders/index.mjs +6 -3
- package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
- package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
- 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 +69 -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 +129 -112
- 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 +17 -19
- package/esm2022/staging/environment/environment-input.mjs +98 -85
- 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 +37 -15
- 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 +67 -70
- package/esm2022/staging/stage/stage.mjs +305 -290
- package/esm2022/staging/stars/stars.mjs +101 -102
- package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
- package/esm2022/staging/wireframe/wireframe.mjs +228 -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 +514 -1947
- 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 +104 -83
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-gizmos.mjs +1043 -0
- package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
- package/fesm2022/angular-three-soba-loaders.mjs +121 -117
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +662 -592
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +2214 -105
- 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 +956 -0
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
- package/fesm2022/angular-three-soba-shaders.mjs +549 -252
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +2899 -2563
- 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/gizmos/README.md +3 -0
- package/gizmos/gizmo-helper/gizmo-helper.d.ts +69 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
- package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
- package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
- package/gizmos/index.d.ts +3 -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 +31 -16
- 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 +7 -0
- package/performances/instances/instances.d.ts +79 -0
- package/{performance → performances}/instances/position-mesh.d.ts +1 -1
- package/performances/points/points-input.d.ts +32 -0
- package/performances/points/points.d.ts +92 -0
- package/performances/points/position-point.d.ts +11 -0
- 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 +37 -0
- package/shaders/index.d.ts +5 -2
- package/shaders/mesh-distort-material/mesh-distort-material.d.ts +147 -2
- 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 +37 -37
- 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 +36 -22
- 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 +89 -65
- package/staging/stars/stars.d.ts +28 -17
- 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/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 -256
- 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 -4
- package/plugin/src/generators/init/init.js +0 -22
- 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/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-three-soba-gizmos.mjs","sources":["../../../../libs/soba/gizmos/src/gizmo-helper/gizmo-helper.ts","../../../../libs/soba/gizmos/src/gizmo-helper/gizmo-viewcube/constants.ts","../../../../libs/soba/gizmos/src/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.ts","../../../../libs/soba/gizmos/src/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.ts","../../../../libs/soba/gizmos/src/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.ts","../../../../libs/soba/gizmos/src/gizmo-helper/gizmo-viewcube/gizmo-viewcube.ts","../../../../libs/soba/gizmos/src/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.ts","../../../../libs/soba/gizmos/src/gizmo-helper/gizmo-viewport/gizmo-viewport.ts","../../../../libs/soba/gizmos/src/angular-three-soba-gizmos.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tComponent,\n\tContentChild,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\tTemplateRef,\n\tcomputed,\n\teffect,\n\tforwardRef,\n\ttype Signal,\n} from '@angular/core';\nimport {\n\tNgtPortal,\n\tNgtPortalContent,\n\tcreateInjectionToken,\n\textend,\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tsignalStore,\n\ttype NgtGroup,\n} from 'angular-three';\nimport { NgtsOrthographicCamera } from 'angular-three-soba/cameras';\nimport { NgtsSobaContent } from 'angular-three-soba/utils';\nimport { Group, Matrix4, Object3D, OrthographicCamera, Quaternion, Vector3 } from 'three';\nimport { OrbitControls } from 'three-stdlib';\n\nexport type NgtsGizmoHelperState = {\n\talignment:\n\t\t| 'top-left'\n\t\t| 'top-right'\n\t\t| 'bottom-right'\n\t\t| 'bottom-left'\n\t\t| 'bottom-center'\n\t\t| 'center-right'\n\t\t| 'center-left'\n\t\t| 'center-center'\n\t\t| 'top-center';\n\tmargin: [number, number];\n\trenderPriority: number;\n\tautoClear?: boolean;\n};\n\ntype ControlsProto = { update(): void; target: THREE.Vector3 };\n\nconst isOrbitControls = (controls: ControlsProto): controls is OrbitControls => {\n\treturn 'minPolarAngle' in (controls as OrbitControls);\n};\n\nextend({ Group });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngts-gizmo-helper': NgtsGizmoHelperState & NgtGroup;\n\t}\n}\n\nexport const [injectNgtsGizmoHelperApi, provideNgtsGizmoHelperApi] = createInjectionToken(\n\t(gizmoHelper: NgtsGizmoHelper) => gizmoHelper.api,\n\t{ isRoot: false, deps: [forwardRef(() => NgtsGizmoHelper)] },\n);\n\n@Component({\n\tselector: 'ngts-gizmo-helper',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-portal [renderPriority]=\"renderPriority()\">\n\t\t\t<ng-template ngtPortalContent>\n\t\t\t\t<ngts-orthographic-camera [makeDefault]=\"true\" [position]=\"[0, 0, 200]\" [cameraRef]=\"virtualCamRef\" />\n\t\t\t\t<ngt-group [ref]=\"gizmoRef\" [position]=\"gizmoPosition()\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"content\" />\n\t\t\t\t</ngt-group>\n\t\t\t</ng-template>\n\t\t</ngt-portal>\n\t`,\n\timports: [NgtPortal, NgtPortalContent, NgtsOrthographicCamera, NgTemplateOutlet],\n\tproviders: [provideNgtsGizmoHelperApi()],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoHelper {\n\tprivate inputs = signalStore<NgtsGizmoHelperState>({\n\t\talignment: 'bottom-right',\n\t\tmargin: [80, 80],\n\t\trenderPriority: 1,\n\t});\n\n\t@Input() gizmoRef = injectNgtRef<Group>();\n\n\t@Input({ alias: 'alignment' }) set _alignment(\n\t\talignment:\n\t\t\t| 'top-left'\n\t\t\t| 'top-right'\n\t\t\t| 'bottom-right'\n\t\t\t| 'bottom-left'\n\t\t\t| 'bottom-center'\n\t\t\t| 'center-right'\n\t\t\t| 'center-left'\n\t\t\t| 'center-center'\n\t\t\t| 'top-center',\n\t) {\n\t\tthis.inputs.set({ alignment });\n\t}\n\n\t@Input({ alias: 'margin' }) set _margin(margin: [number, number]) {\n\t\tthis.inputs.set({ margin });\n\t}\n\n\t@Input({ alias: 'renderPriority' }) set _renderPriority(renderPriority: number) {\n\t\tthis.inputs.set({ renderPriority });\n\t}\n\n\t@Input({ alias: 'autoClear' }) set _autoClear(autoClear: boolean) {\n\t\tthis.inputs.set({ autoClear });\n\t}\n\n\t@Output() update = new EventEmitter();\n\n\t@ContentChild(NgtsSobaContent, { static: true, read: TemplateRef }) content!: TemplateRef<unknown>;\n\n\tprivate store = injectNgtStore();\n\tprivate mainCamera = this.store.select('camera');\n\t// @ts-expect-error\n\tprivate defaultControls = this.store.select('controls') as Signal<ControlsProto>;\n\tprivate invalidate = this.store.select('invalidate');\n\tprivate size = this.store.select('size');\n\n\tprivate animating = false;\n\tprivate q1 = new Quaternion();\n\tprivate q2 = new Quaternion();\n\tprivate turnRate = 2 * Math.PI; // turn rate in angles per second\n\tprivate matrix = new Matrix4();\n\n\tprivate radius = 0;\n\tprivate focusPoint = new Vector3(0, 0, 0);\n\tprivate defaultUp = new Vector3(0, 0, 0);\n\tprivate target = new Vector3();\n\tprivate targetPosition = new Vector3();\n\tprivate dummy = new Object3D();\n\n\tprivate margin = this.inputs.select('margin');\n\tprivate alignment = this.inputs.select('alignment');\n\n\tvirtualCamRef = injectNgtRef<OrthographicCamera>();\n\trenderPriority = this.inputs.select('renderPriority');\n\n\tgizmoPosition = computed(() => {\n\t\tconst [{ width, height }, [marginX, marginY], alignment] = [this.size(), this.margin(), this.alignment()];\n\t\tconst x = alignment.endsWith('-center')\n\t\t\t? 0\n\t\t\t: alignment.endsWith('-left')\n\t\t\t? -width / 2 + marginX\n\t\t\t: width / 2 - marginX;\n\t\tconst y = alignment.startsWith('center-')\n\t\t\t? 0\n\t\t\t: alignment.startsWith('top-')\n\t\t\t? height / 2 - marginY\n\t\t\t: -height / 2 + marginY;\n\t\treturn [x, y, 0];\n\t});\n\n\tapi = {\n\t\ttweenCamera: (direction: Vector3) => {\n\t\t\tconst [defaultControls, mainCamera, invalidate] = [\n\t\t\t\tthis.defaultControls(),\n\t\t\t\tthis.mainCamera(),\n\t\t\t\tthis.invalidate(),\n\t\t\t];\n\t\t\tthis.animating = true;\n\t\t\tif (defaultControls) this.focusPoint = defaultControls?.target;\n\t\t\tthis.radius = mainCamera.position.distanceTo(this.target);\n\n\t\t\t// Rotate from current camera orientation\n\t\t\tthis.q1.copy(mainCamera.quaternion);\n\n\t\t\t// To new current camera orientation\n\t\t\tthis.targetPosition.copy(direction).multiplyScalar(this.radius).add(this.target);\n\n\t\t\tthis.dummy.lookAt(this.targetPosition);\n\t\t\tthis.dummy.up.copy(mainCamera.up);\n\n\t\t\tthis.q2.copy(this.dummy.quaternion);\n\n\t\t\tinvalidate();\n\t\t},\n\t};\n\n\tconstructor() {\n\t\tthis.trackMainCameraUp();\n\t\tthis.beforeRender();\n\t}\n\n\tprivate trackMainCameraUp() {\n\t\teffect(() => {\n\t\t\tconst mainCamera = this.mainCamera();\n\t\t\tthis.defaultUp.copy(mainCamera.up);\n\t\t});\n\t}\n\n\tprivate beforeRender() {\n\t\tinjectBeforeRender(({ delta }) => {\n\t\t\tconst [gizmo, virtualCam, defaultControls, mainCamera, invalidate] = [\n\t\t\t\tthis.gizmoRef.nativeElement,\n\t\t\t\tthis.virtualCamRef.nativeElement,\n\t\t\t\tthis.defaultControls(),\n\t\t\t\tthis.mainCamera(),\n\t\t\t\tthis.invalidate(),\n\t\t\t];\n\n\t\t\tif (gizmo && virtualCam) {\n\t\t\t\t// Animate step\n\t\t\t\tif (this.animating) {\n\t\t\t\t\tif (this.q1.angleTo(this.q2) < 0.01) {\n\t\t\t\t\t\tthis.animating = false;\n\t\t\t\t\t\t// Orbit controls uses UP vector as the orbit axes,\n\t\t\t\t\t\t// so we need to reset it after the animation is done\n\t\t\t\t\t\t// moving it around for the controls to work correctly\n\t\t\t\t\t\tif (isOrbitControls(defaultControls)) {\n\t\t\t\t\t\t\tmainCamera.up.copy(this.defaultUp);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst step = delta * this.turnRate;\n\t\t\t\t\t\t// animate position by doing a slerp and then scaling the position on the unit sphere\n\t\t\t\t\t\tthis.q1.rotateTowards(this.q2, step);\n\t\t\t\t\t\t// animate orientation\n\t\t\t\t\t\tmainCamera.position\n\t\t\t\t\t\t\t.set(0, 0, 1)\n\t\t\t\t\t\t\t.applyQuaternion(this.q1)\n\t\t\t\t\t\t\t.multiplyScalar(this.radius)\n\t\t\t\t\t\t\t.add(this.focusPoint);\n\t\t\t\t\t\tmainCamera.up.set(0, 1, 0).applyQuaternion(this.q1).normalize();\n\t\t\t\t\t\tmainCamera.quaternion.copy(this.q1);\n\t\t\t\t\t\tif (this.update.observed) this.update.emit();\n\t\t\t\t\t\telse if (defaultControls) defaultControls.update();\n\t\t\t\t\t\tinvalidate();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Sync Gizmo with main camera orientation\n\t\t\t\tthis.matrix.copy(mainCamera.matrix).invert();\n\t\t\t\tgizmo.quaternion.setFromRotationMatrix(this.matrix);\n\t\t\t}\n\t\t});\n\t}\n}\n","import * as THREE from 'three';\n\nexport const colors = { bg: '#f0f0f0', hover: '#999', text: 'black', stroke: 'black' };\nexport const defaultFaces = ['Right', 'Left', 'Top', 'Bottom', 'Front', 'Back'];\nconst makePositionVector = (xyz: number[]) => new THREE.Vector3(...xyz).multiplyScalar(0.38);\n\nexport const corners: THREE.Vector3[] = [\n\t[1, 1, 1],\n\t[1, 1, -1],\n\t[1, -1, 1],\n\t[1, -1, -1],\n\t[-1, 1, 1],\n\t[-1, 1, -1],\n\t[-1, -1, 1],\n\t[-1, -1, -1],\n].map(makePositionVector);\n\nexport const cornerDimensions = [0.25, 0.25, 0.25] as [number, number, number];\n\nexport const edges: THREE.Vector3[] = [\n\t[1, 1, 0],\n\t[1, 0, 1],\n\t[1, 0, -1],\n\t[1, -1, 0],\n\t[0, 1, 1],\n\t[0, 1, -1],\n\t[0, -1, 1],\n\t[0, -1, -1],\n\t[-1, 1, 0],\n\t[-1, 0, 1],\n\t[-1, 0, -1],\n\t[-1, -1, 0],\n].map(makePositionVector);\n\nexport const edgeDimensions = edges.map(\n\t(edge) => edge.toArray().map((axis: number): number => (axis == 0 ? 0.5 : 0.25)) as [number, number, number],\n);\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { signalStore, type NgtThreeEvent } from 'angular-three';\n\nexport type NgtsGizmoViewCubeInputState = {\n\topacity: number;\n\thoverColor: string;\n\ttextColor: string;\n\tstrokeColor: string;\n\tfaces: string[];\n\tfont?: string;\n\tcolor?: string;\n\tclickEmitter: EventEmitter<NgtThreeEvent<MouseEvent>>;\n};\n\n@Directive()\nexport abstract class NgtsGizmoViewcubeInput {\n\tinputs = signalStore<NgtsGizmoViewCubeInputState>({});\n\n\t@Input({ alias: 'opacity' }) set _opacity(opacity: number) {\n\t\tthis.inputs.set({ opacity });\n\t}\n\n\t@Input({ alias: 'hoverColor' }) set _hoverColor(hoverColor: string) {\n\t\tthis.inputs.set({ hoverColor });\n\t}\n\n\t@Input({ alias: 'textColor' }) set _textColor(textColor: string) {\n\t\tthis.inputs.set({ textColor });\n\t}\n\n\t@Input({ alias: 'strokeColor' }) set _strokeColor(strokeColor: string) {\n\t\tthis.inputs.set({ strokeColor });\n\t}\n\n\t@Input({ alias: 'faces' }) set _faces(faces: string[]) {\n\t\tthis.inputs.set({ faces });\n\t}\n\n\t@Input({ alias: 'font' }) set _font(font: string) {\n\t\tthis.inputs.set({ font });\n\t}\n\n\t@Input({ alias: 'color' }) set _color(color: string) {\n\t\tthis.inputs.set({ color });\n\t}\n\n\t@Output() viewcubeClick = new EventEmitter<NgtThreeEvent<MouseEvent>>();\n\n\thoverColor = this.inputs.select('hoverColor');\n\topacity = this.inputs.select('opacity');\n\ttextColor = this.inputs.select('textColor');\n\tstrokeColor = this.inputs.select('strokeColor');\n\tfaces = this.inputs.select('faces');\n\tfont = this.inputs.select('font');\n\tcolor = this.inputs.select('color');\n}\n","import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input, signal } from '@angular/core';\nimport { extend, NgtArgs, signalStore, type NgtThreeEvent } from 'angular-three';\nimport { BoxGeometry, Mesh, MeshBasicMaterial, Vector3 } from 'three';\nimport { injectNgtsGizmoHelperApi } from '../gizmo-helper';\nimport { colors } from './constants';\nimport { NgtsGizmoViewcubeInput } from './gizmo-viewcube-input';\n\nextend({ Mesh, BoxGeometry, MeshBasicMaterial });\n\n@Component({\n\tselector: 'ngts-gizmo-viewcube-edge-cube',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-mesh\n\t\t\t[scale]=\"1.01\"\n\t\t\t[position]=\"position()\"\n\t\t\t(pointermove)=\"onPointerMove($event)\"\n\t\t\t(pointerout)=\"onPointerOut($event)\"\n\t\t\t(click)=\"onClick($event)\"\n\t\t>\n\t\t\t<ngt-box-geometry *args=\"dimensions()\" />\n\t\t\t<ngt-mesh-basic-material\n\t\t\t\t[color]=\"hover() ? viewcubeInput.hoverColor() : 'white'\"\n\t\t\t\t[transparent]=\"true\"\n\t\t\t\t[opacity]=\"0.6\"\n\t\t\t\t[visible]=\"hover()\"\n\t\t\t/>\n\t\t</ngt-mesh>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewcubeEdgeCube {\n\tprivate inputs = signalStore<{\n\t\tposition: THREE.Vector3;\n\t\tdimensions: [number, number, number];\n\t}>();\n\n\tgizmoApi = injectNgtsGizmoHelperApi();\n\tviewcubeInput = inject(NgtsGizmoViewcubeInput);\n\n\thover = signal(false);\n\n\t@Input({ required: true, alias: 'dimensions' }) set _dimensions(dimensions: [number, number, number]) {\n\t\tthis.inputs.set({ dimensions });\n\t}\n\n\t@Input({ required: true, alias: 'position' }) set _position(position: Vector3) {\n\t\tthis.inputs.set({ position });\n\t}\n\n\tposition = this.inputs.select('position');\n\tdimensions = this.inputs.select('dimensions');\n\n\tconstructor() {\n\t\tthis.viewcubeInput.inputs.patch({ hoverColor: colors.hover });\n\t}\n\n\tonPointerMove(event: NgtThreeEvent<PointerEvent>) {\n\t\tevent.stopPropagation();\n\t\tthis.hover.set(true);\n\t}\n\n\tonPointerOut(event: NgtThreeEvent<PointerEvent>) {\n\t\tevent.stopPropagation();\n\t\tthis.hover.set(false);\n\t}\n\n\tonClick(event: NgtThreeEvent<MouseEvent>) {\n\t\tif (this.viewcubeInput.viewcubeClick.observed) {\n\t\t\tthis.viewcubeInput.viewcubeClick.emit(event);\n\t\t} else {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.gizmoApi.tweenCamera(this.position());\n\t\t}\n\t}\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, computed, CUSTOM_ELEMENTS_SCHEMA, inject, Input, signal } from '@angular/core';\nimport { extend, injectNgtStore, NgtRepeat, signalStore, type NgtThreeEvent } from 'angular-three';\nimport { BoxGeometry, CanvasTexture, Mesh, MeshLambertMaterial } from 'three';\nimport { injectNgtsGizmoHelperApi } from '../gizmo-helper';\nimport { colors, defaultFaces } from './constants';\nimport { NgtsGizmoViewcubeInput } from './gizmo-viewcube-input';\n\nextend({ MeshLambertMaterial, Mesh, BoxGeometry });\n\n@Component({\n\tselector: 'ngts-gizmo-viewcube-face-material',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-mesh-lambert-material\n\t\t\t[attach]=\"['material', index()]\"\n\t\t\t[map]=\"texture()\"\n\t\t\t[color]=\"hover() ? viewcubeInput.hoverColor() : viewcubeInput.color()\"\n\t\t\t[opacity]=\"viewcubeInput.opacity()\"\n\t\t\t[transparent]=\"true\"\n\t\t>\n\t\t\t<ngt-value [rawValue]=\"gl().capabilities.getMaxAnisotropy() || 1\" attach=\"map.anisotrophy\" />\n\t\t</ngt-mesh-lambert-material>\n\t`,\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewcubeFaceMaterial {\n\tprivate inputs = signalStore<{ index: number; hover: boolean }>();\n\tprivate document = inject(DOCUMENT);\n\tprivate store = injectNgtStore();\n\tgl = this.store.select('gl');\n\n\tviewcubeInput = inject(NgtsGizmoViewcubeInput);\n\n\t@Input({ required: true, alias: 'index' }) set _index(index: number) {\n\t\tthis.inputs.set({ index });\n\t}\n\n\t@Input({ required: true, alias: 'hover' }) set _hover(hover: boolean) {\n\t\tthis.inputs.set({ hover });\n\t}\n\n\tindex = this.inputs.select('index');\n\thover = this.inputs.select('hover');\n\n\ttexture = computed(() => {\n\t\tconst [index, color, font, faces, textColor, strokeColor] = [\n\t\t\tthis.index(),\n\t\t\tthis.viewcubeInput.color(),\n\t\t\tthis.viewcubeInput.font(),\n\t\t\tthis.viewcubeInput.faces(),\n\t\t\tthis.viewcubeInput.textColor(),\n\t\t\tthis.viewcubeInput.strokeColor(),\n\t\t];\n\n\t\tconst canvas = this.document.createElement('canvas');\n\t\tcanvas.width = 128;\n\t\tcanvas.height = 128;\n\t\tconst context = canvas.getContext('2d')!;\n\t\tcontext.fillStyle = color!;\n\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\t\tcontext.strokeStyle = strokeColor;\n\t\tcontext.strokeRect(0, 0, canvas.width, canvas.height);\n\t\tcontext.font = font!;\n\t\tcontext.textAlign = 'center';\n\t\tcontext.fillStyle = textColor;\n\t\tcontext.fillText(faces[index].toUpperCase(), 64, 76);\n\n\t\treturn new CanvasTexture(canvas);\n\t});\n\n\tconstructor() {\n\t\tthis.viewcubeInput.inputs.patch({\n\t\t\tcolor: colors.bg,\n\t\t\tfont: '20px Inter var, Arial, sans-serif',\n\t\t\tfaces: defaultFaces,\n\t\t\thoverColor: colors.hover,\n\t\t\ttextColor: colors.text,\n\t\t\tstrokeColor: colors.stroke,\n\t\t\topacity: 1,\n\t\t});\n\t}\n}\n\n@Component({\n\tselector: 'ngts-gizmo-viewcube-face-cube',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-mesh\n\t\t\t(pointermove)=\"onPointerMove($any($event))\"\n\t\t\t(pointerout)=\"onPointerOut($any($event))\"\n\t\t\t(click)=\"onClick($any($event))\"\n\t\t>\n\t\t\t<ngt-box-geometry />\n\t\t\t<ngts-gizmo-viewcube-face-material *ngFor=\"let i; repeat: 6\" [hover]=\"hover() === i\" [index]=\"i\" />\n\t\t</ngt-mesh>\n\t`,\n\timports: [NgtsGizmoViewcubeFaceMaterial, NgtRepeat],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewcubeFaceCube {\n\tprivate gizmoApi = injectNgtsGizmoHelperApi();\n\tprivate viewcubeInput = inject(NgtsGizmoViewcubeInput);\n\n\thover = signal(-1);\n\n\tonPointerMove(event: NgtThreeEvent<PointerEvent>) {\n\t\tevent.stopPropagation();\n\t\tthis.hover.set(Math.floor(event.faceIndex! / 2));\n\t}\n\n\tonPointerOut(event: NgtThreeEvent<PointerEvent>) {\n\t\tevent.stopPropagation();\n\t\tthis.hover.set(-1);\n\t}\n\n\tonClick(event: NgtThreeEvent<MouseEvent>) {\n\t\tif (this.viewcubeInput.viewcubeClick.observed) {\n\t\t\tthis.viewcubeInput.viewcubeClick.emit(event);\n\t\t} else {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.gizmoApi.tweenCamera(event.face!.normal);\n\t\t}\n\t}\n}\n","import { NgFor } from '@angular/common';\nimport { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { extend } from 'angular-three';\nimport { AmbientLight, Group, PointLight } from 'three';\nimport { cornerDimensions, corners, edgeDimensions, edges } from './constants';\nimport { NgtsGizmoViewcubeEdgeCube } from './gizmo-viewcube-edge';\nimport { NgtsGizmoViewcubeFaceCube } from './gizmo-viewcube-face';\nimport { NgtsGizmoViewcubeInput } from './gizmo-viewcube-input';\n\nextend({ Group, AmbientLight, PointLight });\n\n@Component({\n\tselector: 'ngts-gizmo-viewcube',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group [scale]=\"60\">\n\t\t\t<ngts-gizmo-viewcube-face-cube />\n\n\t\t\t<ngts-gizmo-viewcube-edge-cube\n\t\t\t\t*ngFor=\"let edge of edges; let i = index\"\n\t\t\t\t[position]=\"edge\"\n\t\t\t\t[dimensions]=\"edgeDimensions[i]\"\n\t\t\t/>\n\n\t\t\t<ngts-gizmo-viewcube-edge-cube\n\t\t\t\t*ngFor=\"let corner of corners\"\n\t\t\t\t[position]=\"corner\"\n\t\t\t\t[dimensions]=\"cornerDimensions\"\n\t\t\t/>\n\n\t\t\t<ngt-ambient-light [intensity]=\"0.5\" />\n\t\t\t<ngt-point-light [position]=\"10\" [intensity]=\"0.5\" />\n\t\t</ngt-group>\n\t`,\n\timports: [NgtsGizmoViewcubeEdgeCube, NgtsGizmoViewcubeFaceCube, NgFor],\n\tproviders: [{ provide: NgtsGizmoViewcubeInput, useExisting: NgtsGizmoViewcube }],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewcube extends NgtsGizmoViewcubeInput {\n\tedges = edges;\n\tedgeDimensions = edgeDimensions;\n\n\tcorners = corners;\n\tcornerDimensions = cornerDimensions;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, computed, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, signal } from '@angular/core';\nimport { extend, injectNgtStore, NgtArgs, signalStore, type NgtThreeEvent } from 'angular-three';\nimport { BoxGeometry, CanvasTexture, Group, Mesh, MeshBasicMaterial, Sprite, SpriteMaterial } from 'three';\n\nextend({ Group, Mesh, BoxGeometry, MeshBasicMaterial, Sprite, SpriteMaterial });\n\n@Component({\n\tselector: 'ngts-gizmo-viewport-axis',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group [rotation]=\"rotation()\">\n\t\t\t<ngt-mesh [position]=\"[0.4, 0, 0]\">\n\t\t\t\t<ngt-box-geometry *args=\"scale()\" />\n\t\t\t\t<ngt-mesh-basic-material [color]=\"color()\" [toneMapped]=\"false\" />\n\t\t\t</ngt-mesh>\n\t\t</ngt-group>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewportAxis {\n\tprivate inputs = signalStore<{\n\t\tcolor: string;\n\t\trotation: [number, number, number];\n\t\tscale: [number, number, number];\n\t}>({ scale: [0.8, 0.05, 0.05] });\n\n\t@Input({ required: true, alias: 'color' }) set _color(color: string) {\n\t\tthis.inputs.set({ color });\n\t}\n\n\t@Input({ required: true, alias: 'rotation' }) set _rotation(rotation: [number, number, number]) {\n\t\tthis.inputs.set({ rotation });\n\t}\n\n\t@Input({ alias: 'scale' }) set _scale(scale: [number, number, number]) {\n\t\tthis.inputs.set({ scale });\n\t}\n\n\trotation = this.inputs.select('rotation');\n\tcolor = this.inputs.select('color');\n\tscale = this.inputs.select('scale');\n}\n\n@Component({\n\tselector: 'ngts-gizmo-viewport-axis-head',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-sprite\n\t\t\tngtCompound\n\t\t\t[scale]=\"scale()\"\n\t\t\t(pointerover)=\"onPointerOver($event)\"\n\t\t\t(pointerout)=\"onPointerOut($event)\"\n\t\t>\n\t\t\t<ngt-sprite-material\n\t\t\t\t[map]=\"texture()\"\n\t\t\t\t[opacity]=\"label() ? 1 : 0.75\"\n\t\t\t\t[alphaTest]=\"0.3\"\n\t\t\t\t[toneMapped]=\"false\"\n\t\t\t>\n\t\t\t\t<ngt-value [rawValue]=\"capabilities().getMaxAnisotropy() || 1\" attach=\"map.anisotropy\" />\n\t\t\t</ngt-sprite-material>\n\t\t</ngt-sprite>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewportAxisHead {\n\tprivate inputs = signalStore<{\n\t\tarcStyle: string;\n\t\tlabel: string;\n\t\tlabelColor: string;\n\t\taxisHeadScale: number;\n\t\tdisabled: boolean;\n\t\tfont: string;\n\t}>({ axisHeadScale: 1 });\n\n\tprivate document = inject(DOCUMENT);\n\tprivate store = injectNgtStore();\n\tcapabilities = this.store.select('gl', 'capabilities');\n\n\t@Input({ alias: 'arcStyle' }) set _arcStyle(arcStyle: string) {\n\t\tthis.inputs.set({ arcStyle });\n\t}\n\n\t@Input({ alias: 'label' }) set _label(label: string) {\n\t\tthis.inputs.set({ label });\n\t}\n\n\t@Input({ alias: 'labelColor' }) set _labelColor(labelColor: string) {\n\t\tthis.inputs.set({ labelColor });\n\t}\n\n\t@Input({ alias: 'axisHeadScale' }) set _axisHeadScale(axisHeadScale: number) {\n\t\tthis.inputs.set({ axisHeadScale });\n\t}\n\n\t@Input({ alias: 'disabled' }) set _disabled(disabled: boolean) {\n\t\tthis.inputs.set({ disabled });\n\t}\n\n\t@Input({ alias: 'font' }) set _font(font: string) {\n\t\tthis.inputs.set({ font });\n\t}\n\n\t@Input() viewportClickEmitter?: EventEmitter<NgtThreeEvent<MouseEvent>>;\n\n\tactive = signal(false);\n\n\tprivate arcStyle = this.inputs.select('arcStyle');\n\tprivate labelColor = this.inputs.select('labelColor');\n\tprivate font = this.inputs.select('font');\n\tprivate axisHeadScale = this.inputs.select('axisHeadScale');\n\n\tlabel = this.inputs.select('label');\n\n\ttexture = computed(() => {\n\t\tconst [arcStyle, labelColor, font, label] = [this.arcStyle(), this.labelColor(), this.font(), this.label()];\n\n\t\tconst canvas = this.document.createElement('canvas');\n\t\tcanvas.width = 64;\n\t\tcanvas.height = 64;\n\n\t\tconst context = canvas.getContext('2d')!;\n\t\tcontext.beginPath();\n\t\tcontext.arc(32, 32, 16, 0, 2 * Math.PI);\n\t\tcontext.closePath();\n\t\tcontext.fillStyle = arcStyle;\n\t\tcontext.fill();\n\n\t\tif (label) {\n\t\t\tcontext.font = font;\n\t\t\tcontext.textAlign = 'center';\n\t\t\tcontext.fillStyle = labelColor;\n\t\t\tcontext.fillText(label, 32, 41);\n\t\t}\n\t\treturn new CanvasTexture(canvas);\n\t});\n\n\tscale = computed(() => {\n\t\tconst [active, axisHeadScale, label] = [this.active(), this.axisHeadScale(), this.label()];\n\t\treturn (label ? 1 : 0.75) * (active ? 1.2 : 1) * axisHeadScale;\n\t});\n\n\tonPointerOver(event: NgtThreeEvent<PointerEvent>) {\n\t\tif (!this.inputs.get('disabled')) {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.active.set(true);\n\t\t}\n\t}\n\n\tonPointerOut(event: NgtThreeEvent<PointerEvent>) {\n\t\tif (!this.inputs.get('disabled')) {\n\t\t\tif (this.viewportClickEmitter?.observed) {\n\t\t\t\tthis.viewportClickEmitter.emit(event);\n\t\t\t} else {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tthis.active.set(false);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { NgIf } from '@angular/common';\nimport { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';\nimport { extend, signalStore, type NgtThreeEvent } from 'angular-three';\nimport { AmbientLight, Group, PointLight } from 'three';\nimport { injectNgtsGizmoHelperApi } from '../gizmo-helper';\nimport { NgtsGizmoViewportAxis, NgtsGizmoViewportAxisHead } from './gizmo-viewport-axis';\n\nextend({ Group, AmbientLight, PointLight });\n\n@Component({\n\tselector: 'ngts-gizmo-viewport',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group ngtCompound [scale]=\"40\">\n\t\t\t<ngts-gizmo-viewport-axis [color]=\"axisColors()[0]\" [rotation]=\"[0, 0, 0]\" [scale]=\"axisScale()\" />\n\t\t\t<ngts-gizmo-viewport-axis\n\t\t\t\t[color]=\"axisColors()[1]\"\n\t\t\t\t[rotation]=\"[0, 0, Math.PI / 2]\"\n\t\t\t\t[scale]=\"axisScale()\"\n\t\t\t/>\n\t\t\t<ngts-gizmo-viewport-axis\n\t\t\t\t[color]=\"axisColors()[2]\"\n\t\t\t\t[rotation]=\"[0, -Math.PI / 2, 0]\"\n\t\t\t\t[scale]=\"axisScale()\"\n\t\t\t/>\n\t\t\t<ng-container *ngIf=\"!hideAxisHeads()\">\n\t\t\t\t<ngts-gizmo-viewport-axis-head\n\t\t\t\t\t[arcStyle]=\"axisColors()[0]\"\n\t\t\t\t\t[position]=\"[1, 0, 0]\"\n\t\t\t\t\t[label]=\"labels()[0]\"\n\t\t\t\t\t[font]=\"font()\"\n\t\t\t\t\t[disabled]=\"disabled()\"\n\t\t\t\t\t[labelColor]=\"labelColor()\"\n\t\t\t\t\t[viewportClickEmitter]=\"viewportClick\"\n\t\t\t\t\t[axisHeadScale]=\"axisHeadScale()\"\n\t\t\t\t\t(pointerdown)=\"onPointerDown($any($event))\"\n\t\t\t\t/>\n\t\t\t\t<ngts-gizmo-viewport-axis-head\n\t\t\t\t\t[arcStyle]=\"axisColors()[1]\"\n\t\t\t\t\t[position]=\"[0, 1, 0]\"\n\t\t\t\t\t[label]=\"labels()[1]\"\n\t\t\t\t\t[font]=\"font()\"\n\t\t\t\t\t[disabled]=\"disabled()\"\n\t\t\t\t\t[labelColor]=\"labelColor()\"\n\t\t\t\t\t[viewportClickEmitter]=\"viewportClick\"\n\t\t\t\t\t[axisHeadScale]=\"axisHeadScale()\"\n\t\t\t\t\t(pointerdown)=\"onPointerDown($any($event))\"\n\t\t\t\t/>\n\t\t\t\t<ngts-gizmo-viewport-axis-head\n\t\t\t\t\t[arcStyle]=\"axisColors()[2]\"\n\t\t\t\t\t[position]=\"[0, 0, 1]\"\n\t\t\t\t\t[label]=\"labels()[2]\"\n\t\t\t\t\t[font]=\"font()\"\n\t\t\t\t\t[disabled]=\"disabled()\"\n\t\t\t\t\t[labelColor]=\"labelColor()\"\n\t\t\t\t\t[viewportClickEmitter]=\"viewportClick\"\n\t\t\t\t\t[axisHeadScale]=\"axisHeadScale()\"\n\t\t\t\t\t(pointerdown)=\"onPointerDown($any($event))\"\n\t\t\t\t/>\n\t\t\t\t<ng-container *ngIf=\"!hideNegativeAxes()\">\n\t\t\t\t\t<ngts-gizmo-viewport-axis-head\n\t\t\t\t\t\t[arcStyle]=\"axisColors()[0]\"\n\t\t\t\t\t\t[position]=\"[-1, 0, 0]\"\n\t\t\t\t\t\t[font]=\"font()\"\n\t\t\t\t\t\t[disabled]=\"disabled()\"\n\t\t\t\t\t\t[labelColor]=\"labelColor()\"\n\t\t\t\t\t\t[viewportClickEmitter]=\"viewportClick\"\n\t\t\t\t\t\t[axisHeadScale]=\"axisHeadScale()\"\n\t\t\t\t\t\t(pointerdown)=\"onPointerDown($any($event))\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ngts-gizmo-viewport-axis-head\n\t\t\t\t\t\t[arcStyle]=\"axisColors()[1]\"\n\t\t\t\t\t\t[position]=\"[0, -1, 0]\"\n\t\t\t\t\t\t[font]=\"font()\"\n\t\t\t\t\t\t[disabled]=\"disabled()\"\n\t\t\t\t\t\t[labelColor]=\"labelColor()\"\n\t\t\t\t\t\t[viewportClickEmitter]=\"viewportClick\"\n\t\t\t\t\t\t[axisHeadScale]=\"axisHeadScale()\"\n\t\t\t\t\t\t(pointerdown)=\"onPointerDown($any($event))\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ngts-gizmo-viewport-axis-head\n\t\t\t\t\t\t[arcStyle]=\"axisColors()[2]\"\n\t\t\t\t\t\t[position]=\"[0, 0, -1]\"\n\t\t\t\t\t\t[font]=\"font()\"\n\t\t\t\t\t\t[disabled]=\"disabled()\"\n\t\t\t\t\t\t[labelColor]=\"labelColor()\"\n\t\t\t\t\t\t[viewportClickEmitter]=\"viewportClick\"\n\t\t\t\t\t\t[axisHeadScale]=\"axisHeadScale()\"\n\t\t\t\t\t\t(pointerdown)=\"onPointerDown($any($event))\"\n\t\t\t\t\t/>\n\t\t\t\t</ng-container>\n\t\t\t</ng-container>\n\t\t\t<ngt-ambient-light [intensity]=\"0.5\"></ngt-ambient-light>\n\t\t\t<ngt-point-light [position]=\"10\" [intensity]=\"0.5\"></ngt-point-light>\n\t\t</ngt-group>\n\t`,\n\timports: [NgtsGizmoViewportAxis, NgtsGizmoViewportAxisHead, NgIf],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsGizmoViewport {\n\tprivate inputs = signalStore<{\n\t\taxisColors: [string, string, string];\n\t\taxisScale: [number, number, number];\n\t\tlabels: [string, string, string];\n\t\taxisHeadScale: number;\n\t\tlabelColor: string;\n\t\thideNegativeAxes: boolean;\n\t\thideAxisHeads: boolean;\n\t\tdisabled: boolean;\n\t\tfont: string;\n\t}>({\n\t\tfont: '18px Inter var, Arial, sans-serif',\n\t\taxisColors: ['#ff2060', '#20df80', '#2080ff'],\n\t\taxisHeadScale: 1,\n\t\tlabels: ['X', 'Y', 'Z'],\n\t\tlabelColor: '#000',\n\t});\n\tprivate gizmoApi = injectNgtsGizmoHelperApi();\n\n\tMath = Math;\n\n\t@Input({ alias: 'axisColors' }) set _axisColors(axisColors: [string, string, string]) {\n\t\tthis.inputs.set({ axisColors });\n\t}\n\n\t@Input({ alias: 'axisScale' }) set _axisScale(axisScale: [number, number, number]) {\n\t\tthis.inputs.set({ axisScale });\n\t}\n\n\t@Input({ alias: 'labels' }) set _labels(labels: [string, string, string]) {\n\t\tthis.inputs.set({ labels });\n\t}\n\n\t@Input({ alias: 'axisHeadScale' }) set _axisHeadScale(axisHeadScale: number) {\n\t\tthis.inputs.set({ axisHeadScale });\n\t}\n\n\t@Input({ alias: 'labelColor' }) set _labelColor(labelColor: string) {\n\t\tthis.inputs.set({ labelColor });\n\t}\n\n\t@Input({ alias: 'hideNegativeAxes' }) set _hideNegativeAxes(hideNegativeAxes: boolean) {\n\t\tthis.inputs.set({ hideNegativeAxes });\n\t}\n\n\t@Input({ alias: 'hideAxisHeads' }) set _hideAxisHeads(hideAxisHeads: boolean) {\n\t\tthis.inputs.set({ hideAxisHeads });\n\t}\n\n\t@Input({ alias: 'disabled' }) set _disabled(disabled: boolean) {\n\t\tthis.inputs.set({ disabled });\n\t}\n\n\t@Input({ alias: 'font' }) set _font(font: string) {\n\t\tthis.inputs.set({ font });\n\t}\n\n\t@Output() viewportClick = new EventEmitter<NgtThreeEvent<MouseEvent>>();\n\n\taxisColors = this.inputs.select('axisColors');\n\taxisScale = this.inputs.select('axisScale');\n\tlabels = this.inputs.select('labels');\n\taxisHeadScale = this.inputs.select('axisHeadScale');\n\tlabelColor = this.inputs.select('labelColor');\n\thideNegativeAxes = this.inputs.select('hideNegativeAxes');\n\thideAxisHeads = this.inputs.select('hideAxisHeads');\n\tdisabled = this.inputs.select('disabled');\n\tfont = this.inputs.select('font');\n\n\tonPointerDown(event: NgtThreeEvent<PointerEvent>) {\n\t\tif (!this.inputs.get('disabled')) {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.gizmoApi.tweenCamera(event.object.position);\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { injectNgtLoader, assertInjectionContext,
|
|
2
|
-
import { MeshoptDecoder } from 'three-stdlib';
|
|
3
|
-
import { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';
|
|
4
|
-
import { GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
|
|
1
|
+
import { injectNgtLoader, assertInjectionContext, safeDetectChanges, signalStore, injectNgtStore } from 'angular-three';
|
|
2
|
+
import { DRACOLoader, MeshoptDecoder, GLTFLoader } from 'three-stdlib';
|
|
5
3
|
import { NgIf } from '@angular/common';
|
|
6
4
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { runInInjectionContext, inject, ChangeDetectorRef,
|
|
5
|
+
import { runInInjectionContext, inject, ChangeDetectorRef, signal, untracked, computed, effect, Component, ChangeDetectionStrategy, Input, ViewChild } from '@angular/core';
|
|
8
6
|
import * as THREE from 'three';
|
|
9
7
|
|
|
10
8
|
let dracoLoader = null;
|
|
@@ -17,7 +15,7 @@ function _extensions(useDraco, useMeshOpt, extensions) {
|
|
|
17
15
|
if (!dracoLoader) {
|
|
18
16
|
dracoLoader = new DRACOLoader();
|
|
19
17
|
}
|
|
20
|
-
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.
|
|
18
|
+
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/');
|
|
21
19
|
loader.setDRACOLoader(dracoLoader);
|
|
22
20
|
}
|
|
23
21
|
if (useMeshOpt) {
|
|
@@ -39,45 +37,45 @@ function injectNgtsProgress(injector) {
|
|
|
39
37
|
injector = assertInjectionContext(injectNgtsProgress, injector);
|
|
40
38
|
return runInInjectionContext(injector, () => {
|
|
41
39
|
const cdr = inject(ChangeDetectorRef);
|
|
42
|
-
const progress =
|
|
43
|
-
errors: [],
|
|
44
|
-
active: false,
|
|
45
|
-
progress: 0,
|
|
46
|
-
item: '',
|
|
47
|
-
loaded: 0,
|
|
48
|
-
total: 0,
|
|
49
|
-
});
|
|
40
|
+
const progress = signal({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });
|
|
50
41
|
let saveLastTotalLoaded = 0;
|
|
51
42
|
THREE.DefaultLoadingManager.onStart = (item, loaded, total) => {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
untracked(() => {
|
|
44
|
+
progress.update((prev) => ({
|
|
45
|
+
...prev,
|
|
46
|
+
active: true,
|
|
47
|
+
item,
|
|
48
|
+
loaded,
|
|
49
|
+
total,
|
|
50
|
+
progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,
|
|
51
|
+
}));
|
|
52
|
+
});
|
|
60
53
|
safeDetectChanges(cdr);
|
|
61
54
|
};
|
|
62
55
|
THREE.DefaultLoadingManager.onLoad = () => {
|
|
63
|
-
|
|
56
|
+
untracked(() => {
|
|
57
|
+
progress.update((prev) => ({ ...prev, active: false }));
|
|
58
|
+
});
|
|
64
59
|
safeDetectChanges(cdr);
|
|
65
|
-
cdr.detectChanges();
|
|
66
60
|
};
|
|
67
61
|
THREE.DefaultLoadingManager.onError = (url) => {
|
|
68
|
-
|
|
62
|
+
untracked(() => {
|
|
63
|
+
progress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));
|
|
64
|
+
});
|
|
69
65
|
safeDetectChanges(cdr);
|
|
70
66
|
};
|
|
71
67
|
THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {
|
|
72
68
|
if (loaded === total)
|
|
73
69
|
saveLastTotalLoaded = total;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
70
|
+
untracked(() => {
|
|
71
|
+
progress.update((prev) => ({
|
|
72
|
+
...prev,
|
|
73
|
+
item,
|
|
74
|
+
loaded,
|
|
75
|
+
total,
|
|
76
|
+
progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,
|
|
77
|
+
}));
|
|
78
|
+
});
|
|
81
79
|
safeDetectChanges(cdr);
|
|
82
80
|
};
|
|
83
81
|
return progress.asReadonly();
|
|
@@ -85,58 +83,58 @@ function injectNgtsProgress(injector) {
|
|
|
85
83
|
}
|
|
86
84
|
|
|
87
85
|
const defaultDataInterpolation = (p) => `Loading ${p.toFixed(2)}%`;
|
|
88
|
-
class NgtsLoader
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
this.set({ containerClass });
|
|
86
|
+
class NgtsLoader {
|
|
87
|
+
set _containerClass(containerClass) {
|
|
88
|
+
this.inputs.set({ containerClass });
|
|
92
89
|
}
|
|
93
|
-
set
|
|
94
|
-
this.set({ innerClass });
|
|
90
|
+
set _innerClass(innerClass) {
|
|
91
|
+
this.inputs.set({ innerClass });
|
|
95
92
|
}
|
|
96
|
-
set
|
|
97
|
-
this.set({ barClass });
|
|
93
|
+
set _barClass(barClass) {
|
|
94
|
+
this.inputs.set({ barClass });
|
|
98
95
|
}
|
|
99
|
-
set
|
|
100
|
-
this.set({ dataClass });
|
|
96
|
+
set _dataClass(dataClass) {
|
|
97
|
+
this.inputs.set({ dataClass });
|
|
101
98
|
}
|
|
102
|
-
set
|
|
103
|
-
this.set({ dataInterpolation });
|
|
99
|
+
set _dataInterpolation(dataInterpolation) {
|
|
100
|
+
this.inputs.set({ dataInterpolation });
|
|
104
101
|
}
|
|
105
|
-
set
|
|
106
|
-
this.set({ initialState });
|
|
102
|
+
set _initialState(initialState) {
|
|
103
|
+
this.inputs.set({ initialState });
|
|
107
104
|
}
|
|
108
105
|
constructor() {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
this.
|
|
114
|
-
this.
|
|
115
|
-
this.
|
|
116
|
-
this.
|
|
117
|
-
this.
|
|
118
|
-
this
|
|
119
|
-
this
|
|
106
|
+
this.inputs = signalStore({
|
|
107
|
+
dataInterpolation: defaultDataInterpolation,
|
|
108
|
+
initialState: (active) => active,
|
|
109
|
+
});
|
|
110
|
+
this.progressState = injectNgtsProgress();
|
|
111
|
+
this.active = computed(() => this.progressState().active);
|
|
112
|
+
this.progress = computed(() => this.progressState().progress);
|
|
113
|
+
this.container = this.inputs.select('containerClass');
|
|
114
|
+
this.inner = this.inputs.select('innerClass');
|
|
115
|
+
this.bar = this.inputs.select('barClass');
|
|
116
|
+
this.data = this.inputs.select('dataClass');
|
|
117
|
+
this.shown = signal(this.inputs.get('initialState')(this.active()));
|
|
118
|
+
this.setShown();
|
|
119
|
+
this.updateProgress();
|
|
120
120
|
}
|
|
121
|
-
|
|
121
|
+
setShown() {
|
|
122
122
|
effect((onCleanup) => {
|
|
123
|
-
const active = this.active();
|
|
124
|
-
const lastShown = untracked(this.shown);
|
|
123
|
+
const [active, lastShown] = [this.active(), untracked(this.shown)];
|
|
125
124
|
if (lastShown !== active) {
|
|
126
125
|
const timeoutId = setTimeout(() => {
|
|
127
126
|
this.shown.set(active);
|
|
128
127
|
}, 300);
|
|
129
128
|
onCleanup(() => clearTimeout(timeoutId));
|
|
130
129
|
}
|
|
131
|
-
}
|
|
130
|
+
});
|
|
132
131
|
}
|
|
133
|
-
|
|
132
|
+
updateProgress() {
|
|
134
133
|
let progressRef = 0;
|
|
135
134
|
let rafId;
|
|
136
|
-
const
|
|
137
|
-
const trigger = computed(() => ({ dataInterpolation: dataInterpolation(), progress: this.progress() }));
|
|
135
|
+
const _dataInterpolation = this.inputs.select('dataInterpolation');
|
|
138
136
|
effect((onCleanup) => {
|
|
139
|
-
const
|
|
137
|
+
const [dataInterpolation, progress] = [_dataInterpolation(), this.progress()];
|
|
140
138
|
const updateProgress = () => {
|
|
141
139
|
if (!this.progressSpanRef?.nativeElement)
|
|
142
140
|
return;
|
|
@@ -152,60 +150,66 @@ class NgtsLoader extends NgtSignalStore {
|
|
|
152
150
|
onCleanup(() => cancelAnimationFrame(rafId));
|
|
153
151
|
});
|
|
154
152
|
}
|
|
155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
156
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
153
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
154
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsLoader, isStandalone: true, selector: "ngts-loader", inputs: { _containerClass: ["containerClass", "_containerClass"], _innerClass: ["innerClass", "_innerClass"], _barClass: ["barClass", "_barClass"], _dataClass: ["dataClass", "_dataClass"], _dataInterpolation: ["dataInterpolation", "_dataInterpolation"], _initialState: ["initialState", "_initialState"] }, viewQueries: [{ propertyName: "progressSpanRef", first: true, predicate: ["progressSpanRef"], descendants: true }], ngImport: i0, template: `
|
|
155
|
+
<div
|
|
156
|
+
*ngIf="shown()"
|
|
157
|
+
class="ngts-loader-container"
|
|
158
|
+
[class]="container() || ''"
|
|
159
|
+
[style.--ngts-loader-container-opacity]="active() ? 1 : 0"
|
|
160
|
+
>
|
|
161
|
+
<div>
|
|
162
|
+
<div class="ngts-loader-inner" [class]="inner() || ''">
|
|
163
|
+
<div
|
|
164
|
+
class="ngts-loader-bar"
|
|
165
|
+
[class]="bar() || ''"
|
|
166
|
+
[style.--ngts-loader-bar-scale]="progress() / 100"
|
|
167
|
+
></div>
|
|
168
|
+
<span #progressSpanRef class="ngts-loader-data" [class]="data() || ''"></span>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
`, isInline: true, styles: [".ngts-loader-container{--ngts-loader-container-opacity: 0;position:absolute;top:0;left:0;width:100%;height:100%;background:#171717;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease;z-index:1000;opacity:var(--ngts-loader-container-opacity)}.ngts-loader-inner{width:100px;height:3px;background:#272727;text-align:center}.ngts-loader-bar{--ngts-loader-bar-scale: 0;height:3px;width:100px;background:white;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;margin-top:.8em;color:#f0f0f0;font-size:.6em;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Helvetica Neue,Helvetica,Arial,Roboto,Ubuntu,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
175
173
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsLoader, decorators: [{
|
|
177
175
|
type: Component,
|
|
178
176
|
args: [{ selector: 'ngts-loader', standalone: true, template: `
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}], ctorParameters: function () { return []; }, propDecorators: {
|
|
198
|
-
type: Input
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
}],
|
|
204
|
-
type: Input
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
177
|
+
<div
|
|
178
|
+
*ngIf="shown()"
|
|
179
|
+
class="ngts-loader-container"
|
|
180
|
+
[class]="container() || ''"
|
|
181
|
+
[style.--ngts-loader-container-opacity]="active() ? 1 : 0"
|
|
182
|
+
>
|
|
183
|
+
<div>
|
|
184
|
+
<div class="ngts-loader-inner" [class]="inner() || ''">
|
|
185
|
+
<div
|
|
186
|
+
class="ngts-loader-bar"
|
|
187
|
+
[class]="bar() || ''"
|
|
188
|
+
[style.--ngts-loader-bar-scale]="progress() / 100"
|
|
189
|
+
></div>
|
|
190
|
+
<span #progressSpanRef class="ngts-loader-data" [class]="data() || ''"></span>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
`, imports: [NgIf], 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:white;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;margin-top:.8em;color:#f0f0f0;font-size:.6em;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Helvetica Neue,Helvetica,Arial,Roboto,Ubuntu,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;white-space:nowrap}\n"] }]
|
|
195
|
+
}], ctorParameters: function () { return []; }, propDecorators: { _containerClass: [{
|
|
196
|
+
type: Input,
|
|
197
|
+
args: [{ alias: 'containerClass' }]
|
|
198
|
+
}], _innerClass: [{
|
|
199
|
+
type: Input,
|
|
200
|
+
args: [{ alias: 'innerClass' }]
|
|
201
|
+
}], _barClass: [{
|
|
202
|
+
type: Input,
|
|
203
|
+
args: [{ alias: 'barClass' }]
|
|
204
|
+
}], _dataClass: [{
|
|
205
|
+
type: Input,
|
|
206
|
+
args: [{ alias: 'dataClass' }]
|
|
207
|
+
}], _dataInterpolation: [{
|
|
208
|
+
type: Input,
|
|
209
|
+
args: [{ alias: 'dataInterpolation' }]
|
|
210
|
+
}], _initialState: [{
|
|
211
|
+
type: Input,
|
|
212
|
+
args: [{ alias: 'initialState' }]
|
|
209
213
|
}], progressSpanRef: [{
|
|
210
214
|
type: ViewChild,
|
|
211
215
|
args: ['progressSpanRef']
|
|
@@ -214,7 +218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
214
218
|
function injectNgtsTextureLoader(input, { onLoad, injector, } = {}) {
|
|
215
219
|
injector = assertInjectionContext(injectNgtsTextureLoader, injector);
|
|
216
220
|
return runInInjectionContext(injector, () => {
|
|
217
|
-
const store =
|
|
221
|
+
const store = injectNgtStore();
|
|
218
222
|
const result = injectNgtLoader(() => THREE.TextureLoader, input, { injector });
|
|
219
223
|
effect(() => {
|
|
220
224
|
const textures = result();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-soba-loaders.mjs","sources":["../../../../libs/soba/loaders/src/gltf-loader/gltf-loader.ts","../../../../libs/soba/loaders/src/progress/progress.ts","../../../../libs/soba/loaders/src/loader/loader.ts","../../../../libs/soba/loaders/src/texture-loader/texture-loader.ts","../../../../libs/soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import { Injector, Signal } from '@angular/core';\nimport { injectNgtLoader, type NgtLoaderResults, type NgtObjectMap } from 'angular-three';\n// @ts-ignore\nimport { MeshoptDecoder } from 'three-stdlib';\nimport { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';\nimport { GLTF, GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';\n\nlet dracoLoader: DRACOLoader | null = null;\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n return (loader: THREE.Loader) => {\n if (extensions) {\n extensions(loader as GLTFLoader);\n }\n\n if (useDraco) {\n if (!dracoLoader) {\n dracoLoader = new DRACOLoader();\n }\n\n dracoLoader.setDecoderPath(\n typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/'\n );\n (loader as GLTFLoader).setDRACOLoader(dracoLoader);\n }\n\n if (useMeshOpt) {\n (loader as GLTFLoader).setMeshoptDecoder(\n typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder\n );\n }\n };\n}\n\nexport function injectNgtsGLTFLoader<TUrl extends string | string[] | Record<string, string>>(\n path: () => TUrl,\n {\n useDraco = true,\n useMeshOpt = true,\n injector,\n extensions,\n }: {\n useDraco?: boolean | string;\n useMeshOpt?: boolean;\n injector?: Injector;\n extensions?: (loader: GLTFLoader) => void;\n } = {}\n): Signal<NgtLoaderResults<TUrl, GLTF & NgtObjectMap>> {\n return injectNgtLoader(() => GLTFLoader, path, {\n extensions: _extensions(useDraco, useMeshOpt, extensions),\n injector,\n });\n}\n\ninjectNgtsGLTFLoader['preload'] = <TUrl extends string | string[] | Record<string, string>>(\n path: () => TUrl,\n {\n useDraco = true,\n useMeshOpt = true,\n extensions,\n }: {\n useDraco?: boolean | string;\n useMeshOpt?: boolean;\n extensions?: (loader: GLTFLoader) => void;\n } = {}\n) => {\n (injectNgtLoader as any)['preload'](() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));\n};\n","import { ChangeDetectorRef, Injector, inject, runInInjectionContext } from '@angular/core';\nimport { assertInjectionContext, createSignal, safeDetectChanges } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsProgress(injector?: Injector) {\n injector = assertInjectionContext(injectNgtsProgress, injector);\n return runInInjectionContext(injector, () => {\n const cdr = inject(ChangeDetectorRef);\n\n const progress = createSignal<{\n errors: string[];\n active: boolean;\n progress: number;\n item: string;\n loaded: number;\n total: number;\n }>({\n errors: [],\n active: false,\n progress: 0,\n item: '',\n loaded: 0,\n total: 0,\n });\n\n let saveLastTotalLoaded = 0;\n\n THREE.DefaultLoadingManager.onStart = (item, loaded, total) => {\n progress.update((prev) => ({\n ...prev,\n active: true,\n item,\n loaded,\n total,\n progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,\n }));\n safeDetectChanges(cdr);\n };\n\n THREE.DefaultLoadingManager.onLoad = () => {\n progress.update((prev) => ({ ...prev, active: false }));\n safeDetectChanges(cdr);\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onError = (url) => {\n progress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));\n safeDetectChanges(cdr);\n };\n\n THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {\n if (loaded === total) saveLastTotalLoaded = total;\n progress.update((prev) => ({\n ...prev,\n item,\n loaded,\n total,\n progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,\n }));\n safeDetectChanges(cdr);\n };\n\n return progress.asReadonly();\n });\n}\n","import { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n ViewChild,\n computed,\n effect,\n signal,\n untracked,\n} from '@angular/core';\nimport { NgtSignalStore } from 'angular-three';\nimport { injectNgtsProgress } from '../progress/progress';\n\nconst defaultDataInterpolation = (p: number) => `Loading ${p.toFixed(2)}%`;\n\nexport interface NgtsLoaderState {\n containerClass?: string;\n innerClass?: string;\n barClass?: string;\n dataClass?: string;\n dataInterpolation: (value: number) => string;\n initialState: (value: boolean) => boolean;\n}\n\n@Component({\n selector: 'ngts-loader',\n standalone: true,\n template: `\n <div\n *ngIf=\"shown()\"\n class=\"ngts-loader-container\"\n [class]=\"container() || ''\"\n [style.--ngts-loader-container-opacity]=\"active() ? 1 : 0\"\n >\n <div>\n <div class=\"ngts-loader-inner\" [class]=\"inner() || ''\">\n <div\n class=\"ngts-loader-bar\"\n [class]=\"bar() || ''\"\n [style.--ngts-loader-bar-scale]=\"progress() / 100\"\n ></div>\n <span #progressSpanRef class=\"ngts-loader-data\" [class]=\"data() || ''\"></span>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./loader.css'],\n imports: [NgIf],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader extends NgtSignalStore<NgtsLoaderState> {\n readonly #progress = injectNgtsProgress();\n\n readonly active = computed(() => this.#progress().active);\n readonly progress = computed(() => this.#progress().progress);\n\n readonly container = this.select('containerClass');\n readonly inner = this.select('innerClass');\n readonly bar = this.select('barClass');\n readonly data = this.select('dataClass');\n\n @Input() set containerClass(containerClass: string) {\n this.set({ containerClass });\n }\n\n @Input() set innerClass(innerClass: string) {\n this.set({ innerClass });\n }\n\n @Input() set barClass(barClass: string) {\n this.set({ barClass });\n }\n\n @Input() set dataClass(dataClass: string) {\n this.set({ dataClass });\n }\n\n @Input() set dataInterpolation(dataInterpolation: (value: number) => string) {\n this.set({ dataInterpolation });\n }\n\n @Input() set initialState(initialState: (value: boolean) => boolean) {\n this.set({ initialState });\n }\n\n @ViewChild('progressSpanRef') progressSpanRef?: ElementRef<HTMLSpanElement>;\n\n readonly shown = signal(this.get('initialState')(this.active()));\n\n constructor() {\n super({ dataInterpolation: defaultDataInterpolation, initialState: (active: boolean) => active });\n this.#setShown();\n this.#updateProgress();\n }\n\n #setShown() {\n effect(\n (onCleanup) => {\n const active = this.active();\n const lastShown = untracked(this.shown);\n if (lastShown !== active) {\n const timeoutId = setTimeout(() => {\n this.shown.set(active);\n }, 300);\n onCleanup(() => clearTimeout(timeoutId));\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n #updateProgress() {\n let progressRef = 0;\n let rafId: ReturnType<typeof requestAnimationFrame>;\n\n const dataInterpolation = this.select('dataInterpolation');\n const trigger = computed(() => ({ dataInterpolation: dataInterpolation(), progress: this.progress() }));\n\n effect((onCleanup) => {\n const { dataInterpolation, progress } = trigger();\n\n const updateProgress = () => {\n if (!this.progressSpanRef?.nativeElement) return;\n progressRef += (progress - progressRef) / 2;\n if (progressRef > 0.95 * progress || progress === 100) progressRef = progress;\n this.progressSpanRef.nativeElement.innerText = dataInterpolation(progressRef);\n if (progressRef < progress) {\n rafId = requestAnimationFrame(updateProgress);\n }\n };\n updateProgress();\n onCleanup(() => cancelAnimationFrame(rafId));\n });\n }\n}\n","import { effect, inject, Injector, runInInjectionContext, type Signal } from '@angular/core';\nimport { assertInjectionContext, injectNgtLoader, NgtStore, type NgtLoaderResults } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(\n input: () => TInput,\n {\n onLoad,\n injector,\n }: {\n onLoad?: (texture: THREE.Texture | THREE.Texture[]) => void;\n injector?: Injector;\n } = {}\n): Signal<NgtLoaderResults<TInput, THREE.Texture>> {\n injector = assertInjectionContext(injectNgtsTextureLoader, injector);\n return runInInjectionContext(injector, () => {\n const store = inject(NgtStore);\n const result = injectNgtLoader(() => THREE.TextureLoader, input, { injector });\n\n effect(() => {\n const textures = result();\n if (!textures) return;\n const array = Array.isArray(textures)\n ? textures\n : textures instanceof THREE.Texture\n ? [textures]\n : Object.values(textures);\n if (onLoad) onLoad(array);\n array.forEach(store.get('gl').initTexture);\n });\n\n return result;\n });\n}\n\ninjectNgtsTextureLoader['preload'] = <TInput extends string[] | string | Record<string, string>>(\n input: () => TInput\n) => {\n (injectNgtLoader as any).preload(() => THREE.TextureLoader, input);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAOA,IAAI,WAAW,GAAuB,IAAI,CAAC;AAE3C,SAAS,WAAW,CAAC,QAA0B,EAAE,UAAmB,EAAE,UAAyC,EAAA;IAC3G,OAAO,CAAC,MAAoB,KAAI;AAC5B,QAAA,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,MAAoB,CAAC,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,WAAW,EAAE;AACd,gBAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACnC,aAAA;AAED,YAAA,WAAW,CAAC,cAAc,CACtB,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,yDAAyD,CACtG,CAAC;AACD,YAAA,MAAqB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACtD,SAAA;AAED,QAAA,IAAI,UAAU,EAAE;AACX,YAAA,MAAqB,CAAC,iBAAiB,CACpC,OAAO,cAAc,KAAK,UAAU,GAAG,cAAc,EAAE,GAAG,cAAc,CAC3E,CAAC;AACL,SAAA;AACL,KAAC,CAAC;AACN,CAAC;SAEe,oBAAoB,CAChC,IAAgB,EAChB,EACI,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,IAAI,EACjB,QAAQ,EACR,UAAU,MAMV,EAAE,EAAA;IAEN,OAAO,eAAe,CAAC,MAAM,UAAU,EAAE,IAAI,EAAE;QAC3C,UAAU,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;QACzD,QAAQ;AACX,KAAA,CAAC,CAAC;AACP,CAAC;AAED,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAC9B,IAAgB,EAChB,EACI,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,IAAI,EACjB,UAAU,GAKV,GAAA,EAAE,KACN;IACC,eAAuB,CAAC,SAAS,CAAC,CAAC,MAAM,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAC/G,CAAC;;AC/DK,SAAU,kBAAkB,CAAC,QAAmB,EAAA;AAClD,IAAA,QAAQ,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAChE,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AACxC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEtC,MAAM,QAAQ,GAAG,YAAY,CAO1B;AACC,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,CAAC;AACX,SAAA,CAAC,CAAC;QAEH,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAE5B,QAAA,KAAK,CAAC,qBAAqB,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,KAAI;YAC1D,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM;AACvB,gBAAA,GAAG,IAAI;AACP,gBAAA,MAAM,EAAE,IAAI;gBACZ,IAAI;gBACJ,MAAM;gBACN,KAAK;AACL,gBAAA,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,mBAAmB,KAAK,KAAK,GAAG,mBAAmB,CAAC,IAAI,GAAG;AACnF,aAAA,CAAC,CAAC,CAAC;YACJ,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAC,CAAC;AAEF,QAAA,KAAK,CAAC,qBAAqB,CAAC,MAAM,GAAG,MAAK;AACtC,YAAA,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACxD,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACvB,GAAG,CAAC,aAAa,EAAE,CAAC;AACxB,SAAC,CAAC;QAEF,KAAK,CAAC,qBAAqB,CAAC,OAAO,GAAG,CAAC,GAAG,KAAI;YAC1C,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAC,CAAC;AAEF,QAAA,KAAK,CAAC,qBAAqB,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,KAAI;YAC7D,IAAI,MAAM,KAAK,KAAK;gBAAE,mBAAmB,GAAG,KAAK,CAAC;YAClD,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM;AACvB,gBAAA,GAAG,IAAI;gBACP,IAAI;gBACJ,MAAM;gBACN,KAAK;AACL,gBAAA,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,mBAAmB,KAAK,KAAK,GAAG,mBAAmB,CAAC,IAAI,GAAG,IAAI,GAAG;AAC1F,aAAA,CAAC,CAAC,CAAC;YACJ,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAC,CAAC;AAEF,QAAA,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC;AACjC,KAAC,CAAC,CAAC;AACP;;ACjDA,MAAM,wBAAwB,GAAG,CAAC,CAAS,KAAK,CAAW,QAAA,EAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAW3E,MA0Ba,UAAW,SAAQ,cAA+B,CAAA;AAClD,IAAA,SAAS,CAAwB;IAU1C,IAAa,cAAc,CAAC,cAAsB,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KAChC;IAED,IAAa,UAAU,CAAC,UAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KAC5B;IAED,IAAa,QAAQ,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1B;IAED,IAAa,SAAS,CAAC,SAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3B;IAED,IAAa,iBAAiB,CAAC,iBAA4C,EAAA;AACvE,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;KACnC;IAED,IAAa,YAAY,CAAC,YAAyC,EAAA;AAC/D,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAC9B;AAMD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,CAAC,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC,MAAe,KAAK,MAAM,EAAE,CAAC,CAAC;QAvC7F,IAAS,CAAA,SAAA,GAAG,kBAAkB,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;AAErD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AA4BhC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAI7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAED,SAAS,GAAA;AACL,QAAA,MAAM,CACF,CAAC,SAAS,KAAI;AACV,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,SAAS,KAAK,MAAM,EAAE;AACtB,gBAAA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAK;AAC9B,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBAC1B,EAAE,GAAG,CAAC,CAAC;gBACR,SAAS,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5C,aAAA;AACL,SAAC,EACD,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC9B,CAAC;KACL;IAED,eAAe,GAAA;QACX,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,KAA+C,CAAC;QAEpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAExG,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;YACjB,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;YAElD,MAAM,cAAc,GAAG,MAAK;AACxB,gBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa;oBAAE,OAAO;gBACjD,WAAW,IAAI,CAAC,QAAQ,GAAG,WAAW,IAAI,CAAC,CAAC;gBAC5C,IAAI,WAAW,GAAG,IAAI,GAAG,QAAQ,IAAI,QAAQ,KAAK,GAAG;oBAAE,WAAW,GAAG,QAAQ,CAAC;gBAC9E,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAC9E,IAAI,WAAW,GAAG,QAAQ,EAAE;AACxB,oBAAA,KAAK,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;AACjD,iBAAA;AACL,aAAC,CAAC;AACF,YAAA,cAAc,EAAE,CAAC;YACjB,SAAS,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;KACN;8GAnFQ,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAvBT,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;AAkBT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAES,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,UAAU,EAAA,UAAA,EAAA,CAAA;kBA1BtB,SAAS;+BACI,aAAa,EAAA,UAAA,EACX,IAAI,EACN,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;AAkBT,IAAA,CAAA,EAAA,OAAA,EAEQ,CAAC,IAAI,CAAC,EACE,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,m4BAAA,CAAA,EAAA,CAAA;0EAalC,cAAc,EAAA,CAAA;sBAA1B,KAAK;gBAIO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAIO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAIO,iBAAiB,EAAA,CAAA;sBAA7B,KAAK;gBAIO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAIwB,eAAe,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB,CAAA;;;ACnF1B,SAAU,uBAAuB,CACnC,KAAmB,EACnB,EACI,MAAM,EACN,QAAQ,GAAA,GAIR,EAAE,EAAA;AAEN,IAAA,QAAQ,GAAG,sBAAsB,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;AACrE,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AACxC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/B,QAAA,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE/E,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ;gBAAE,OAAO;AACtB,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AACjC,kBAAE,QAAQ;AACV,kBAAE,QAAQ,YAAY,KAAK,CAAC,OAAO;sBACjC,CAAC,QAAQ,CAAC;AACZ,sBAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B,YAAA,IAAI,MAAM;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;AAClB,KAAC,CAAC,CAAC;AACP,CAAC;AAED,uBAAuB,CAAC,SAAS,CAAC,GAAG,CACjC,KAAmB,KACnB;AACC,IAAA,eAAuB,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACvE,CAAC;;ACvCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"angular-three-soba-loaders.mjs","sources":["../../../../libs/soba/loaders/src/gltf-loader/gltf-loader.ts","../../../../libs/soba/loaders/src/progress/progress.ts","../../../../libs/soba/loaders/src/loader/loader.ts","../../../../libs/soba/loaders/src/texture-loader/texture-loader.ts","../../../../libs/soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import type { Injector, Signal } from '@angular/core';\nimport { injectNgtLoader, type NgtLoaderResults, type NgtObjectMap } from 'angular-three';\nimport { DRACOLoader, GLTFLoader, MeshoptDecoder, type GLTF } from 'three-stdlib';\n\nlet dracoLoader: DRACOLoader | null = null;\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n\treturn (loader: THREE.Loader) => {\n\t\tif (extensions) {\n\t\t\textensions(loader as GLTFLoader);\n\t\t}\n\n\t\tif (useDraco) {\n\t\t\tif (!dracoLoader) {\n\t\t\t\tdracoLoader = new DRACOLoader();\n\t\t\t}\n\n\t\t\tdracoLoader.setDecoderPath(\n\t\t\t\ttypeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/',\n\t\t\t);\n\t\t\t(loader as GLTFLoader).setDRACOLoader(dracoLoader);\n\t\t}\n\n\t\tif (useMeshOpt) {\n\t\t\t(loader as GLTFLoader).setMeshoptDecoder(\n\t\t\t\ttypeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder,\n\t\t\t);\n\t\t}\n\t};\n}\n\nexport type NgtsGLTF<T extends Partial<NgtObjectMap>> = GLTF & NgtObjectMap & T;\n\nexport function injectNgtsGLTFLoader<TUrl extends string | string[] | Record<string, string>>(\n\tpath: () => TUrl,\n\t{\n\t\tuseDraco = true,\n\t\tuseMeshOpt = true,\n\t\tinjector,\n\t\textensions,\n\t}: {\n\t\tuseDraco?: boolean | string;\n\t\tuseMeshOpt?: boolean;\n\t\tinjector?: Injector;\n\t\textensions?: (loader: GLTFLoader) => void;\n\t} = {},\n): Signal<NgtLoaderResults<TUrl, GLTF & NgtObjectMap> | null> {\n\treturn injectNgtLoader(() => GLTFLoader, path, {\n\t\textensions: _extensions(useDraco, useMeshOpt, extensions),\n\t\tinjector,\n\t});\n}\n\ninjectNgtsGLTFLoader['preload'] = <TUrl extends string | string[] | Record<string, string>>(\n\tpath: () => TUrl,\n\t{\n\t\tuseDraco = true,\n\t\tuseMeshOpt = true,\n\t\textensions,\n\t}: {\n\t\tuseDraco?: boolean | string;\n\t\tuseMeshOpt?: boolean;\n\t\textensions?: (loader: GLTFLoader) => void;\n\t} = {},\n) => {\n\t(injectNgtLoader as any)['preload'](() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));\n};\n","import { ChangeDetectorRef, inject, runInInjectionContext, signal, untracked, type Injector } from '@angular/core';\nimport { assertInjectionContext, safeDetectChanges } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsProgress(injector?: Injector) {\n\tinjector = assertInjectionContext(injectNgtsProgress, injector);\n\treturn runInInjectionContext(injector, () => {\n\t\tconst cdr = inject(ChangeDetectorRef);\n\n\t\tconst progress = signal<{\n\t\t\terrors: string[];\n\t\t\tactive: boolean;\n\t\t\tprogress: number;\n\t\t\titem: string;\n\t\t\tloaded: number;\n\t\t\ttotal: number;\n\t\t}>({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });\n\n\t\tlet saveLastTotalLoaded = 0;\n\n\t\tTHREE.DefaultLoadingManager.onStart = (item, loaded, total) => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tactive: true,\n\t\t\t\t\titem,\n\t\t\t\t\tloaded,\n\t\t\t\t\ttotal,\n\t\t\t\t\tprogress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,\n\t\t\t\t}));\n\t\t\t});\n\n\t\t\tsafeDetectChanges(cdr);\n\t\t};\n\n\t\tTHREE.DefaultLoadingManager.onLoad = () => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({ ...prev, active: false }));\n\t\t\t});\n\t\t\tsafeDetectChanges(cdr);\n\t\t};\n\n\t\tTHREE.DefaultLoadingManager.onError = (url) => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));\n\t\t\t});\n\t\t\tsafeDetectChanges(cdr);\n\t\t};\n\n\t\tTHREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {\n\t\t\tif (loaded === total) saveLastTotalLoaded = total;\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\titem,\n\t\t\t\t\tloaded,\n\t\t\t\t\ttotal,\n\t\t\t\t\tprogress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,\n\t\t\t\t}));\n\t\t\t});\n\n\t\t\tsafeDetectChanges(cdr);\n\t\t};\n\n\t\treturn progress.asReadonly();\n\t});\n}\n","import { NgIf } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInput,\n\tViewChild,\n\tcomputed,\n\teffect,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { signalStore } from 'angular-three';\nimport { injectNgtsProgress } from '../progress/progress';\n\nconst defaultDataInterpolation = (p: number) => `Loading ${p.toFixed(2)}%`;\n\nexport interface NgtsLoaderState {\n\tcontainerClass?: string;\n\tinnerClass?: string;\n\tbarClass?: string;\n\tdataClass?: string;\n\tdataInterpolation: (value: number) => string;\n\tinitialState: (value: boolean) => boolean;\n}\n\n@Component({\n\tselector: 'ngts-loader',\n\tstandalone: true,\n\ttemplate: `\n\t\t<div\n\t\t\t*ngIf=\"shown()\"\n\t\t\tclass=\"ngts-loader-container\"\n\t\t\t[class]=\"container() || ''\"\n\t\t\t[style.--ngts-loader-container-opacity]=\"active() ? 1 : 0\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<div class=\"ngts-loader-inner\" [class]=\"inner() || ''\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"ngts-loader-bar\"\n\t\t\t\t\t\t[class]=\"bar() || ''\"\n\t\t\t\t\t\t[style.--ngts-loader-bar-scale]=\"progress() / 100\"\n\t\t\t\t\t></div>\n\t\t\t\t\t<span #progressSpanRef class=\"ngts-loader-data\" [class]=\"data() || ''\"></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyleUrls: ['./loader.css'],\n\timports: [NgIf],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader {\n\tprivate inputs = signalStore<NgtsLoaderState>({\n\t\tdataInterpolation: defaultDataInterpolation,\n\t\tinitialState: (active) => active,\n\t});\n\n\tprivate progressState = injectNgtsProgress();\n\n\tactive = computed(() => this.progressState().active);\n\tprogress = computed(() => this.progressState().progress);\n\n\tcontainer = this.inputs.select('containerClass');\n\tinner = this.inputs.select('innerClass');\n\tbar = this.inputs.select('barClass');\n\tdata = this.inputs.select('dataClass');\n\n\t@Input({ alias: 'containerClass' }) set _containerClass(containerClass: string) {\n\t\tthis.inputs.set({ containerClass });\n\t}\n\n\t@Input({ alias: 'innerClass' }) set _innerClass(innerClass: string) {\n\t\tthis.inputs.set({ innerClass });\n\t}\n\n\t@Input({ alias: 'barClass' }) set _barClass(barClass: string) {\n\t\tthis.inputs.set({ barClass });\n\t}\n\n\t@Input({ alias: 'dataClass' }) set _dataClass(dataClass: string) {\n\t\tthis.inputs.set({ dataClass });\n\t}\n\n\t@Input({ alias: 'dataInterpolation' }) set _dataInterpolation(dataInterpolation: (value: number) => string) {\n\t\tthis.inputs.set({ dataInterpolation });\n\t}\n\n\t@Input({ alias: 'initialState' }) set _initialState(initialState: (value: boolean) => boolean) {\n\t\tthis.inputs.set({ initialState });\n\t}\n\n\t@ViewChild('progressSpanRef') progressSpanRef?: ElementRef<HTMLSpanElement>;\n\n\tshown = signal(this.inputs.get('initialState')(this.active()));\n\n\tconstructor() {\n\t\tthis.setShown();\n\t\tthis.updateProgress();\n\t}\n\n\tprivate setShown() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [active, lastShown] = [this.active(), untracked(this.shown)];\n\t\t\tif (lastShown !== active) {\n\t\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\t\tthis.shown.set(active);\n\t\t\t\t}, 300);\n\t\t\t\tonCleanup(() => clearTimeout(timeoutId));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate updateProgress() {\n\t\tlet progressRef = 0;\n\t\tlet rafId: ReturnType<typeof requestAnimationFrame>;\n\n\t\tconst _dataInterpolation = this.inputs.select('dataInterpolation');\n\n\t\teffect((onCleanup) => {\n\t\t\tconst [dataInterpolation, progress] = [_dataInterpolation(), this.progress()];\n\t\t\tconst updateProgress = () => {\n\t\t\t\tif (!this.progressSpanRef?.nativeElement) return;\n\t\t\t\tprogressRef += (progress - progressRef) / 2;\n\t\t\t\tif (progressRef > 0.95 * progress || progress === 100) progressRef = progress;\n\t\t\t\tthis.progressSpanRef.nativeElement.innerText = dataInterpolation(progressRef);\n\t\t\t\tif (progressRef < progress) {\n\t\t\t\t\trafId = requestAnimationFrame(updateProgress);\n\t\t\t\t}\n\t\t\t};\n\t\t\tupdateProgress();\n\t\t\tonCleanup(() => cancelAnimationFrame(rafId));\n\t\t});\n\t}\n}\n","import { effect, runInInjectionContext, type Injector, type Signal } from '@angular/core';\nimport { assertInjectionContext, injectNgtLoader, injectNgtStore, type NgtLoaderResults } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(\n\tinput: () => TInput,\n\t{\n\t\tonLoad,\n\t\tinjector,\n\t}: {\n\t\tonLoad?: (texture: THREE.Texture | THREE.Texture[]) => void;\n\t\tinjector?: Injector;\n\t} = {},\n): Signal<NgtLoaderResults<TInput, THREE.Texture> | null> {\n\tinjector = assertInjectionContext(injectNgtsTextureLoader, injector);\n\treturn runInInjectionContext(injector, () => {\n\t\tconst store = injectNgtStore();\n\t\tconst result = injectNgtLoader(() => THREE.TextureLoader, input, { injector });\n\n\t\teffect(() => {\n\t\t\tconst textures = result();\n\t\t\tif (!textures) return;\n\t\t\tconst array = Array.isArray(textures)\n\t\t\t\t? textures\n\t\t\t\t: textures instanceof THREE.Texture\n\t\t\t\t? [textures]\n\t\t\t\t: Object.values(textures);\n\t\t\tif (onLoad) onLoad(array);\n\t\t\tarray.forEach(store.get('gl').initTexture);\n\t\t});\n\n\t\treturn result;\n\t});\n}\n\ninjectNgtsTextureLoader['preload'] = <TInput extends string[] | string | Record<string, string>>(\n\tinput: () => TInput,\n) => {\n\t(injectNgtLoader as any).preload(() => THREE.TextureLoader, input);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|