@iwsdk/core 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -7
- package/dist/asset/asset-manager.d.ts +137 -9
- package/dist/asset/asset-manager.d.ts.map +1 -1
- package/dist/asset/asset-manager.js +491 -47
- package/dist/asset/asset-manager.js.map +1 -1
- package/dist/asset/cache-manager.d.ts +4 -2
- package/dist/asset/cache-manager.d.ts.map +1 -1
- package/dist/asset/cache-manager.js +10 -3
- package/dist/asset/cache-manager.js.map +1 -1
- package/dist/asset/loaders/audio-loader.d.ts +1 -1
- package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
- package/dist/asset/loaders/audio-loader.js +8 -26
- package/dist/asset/loaders/audio-loader.js.map +1 -1
- package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
- package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
- package/dist/asset/loaders/cached-asset-load.js +100 -0
- package/dist/asset/loaders/cached-asset-load.js.map +1 -0
- package/dist/asset/loaders/gltf-loader.d.ts +28 -1
- package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
- package/dist/asset/loaders/gltf-loader.js +254 -33
- package/dist/asset/loaders/gltf-loader.js.map +1 -1
- package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
- package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
- package/dist/asset/loaders/hdr-texture-loader.js +19 -29
- package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
- package/dist/asset/loaders/texture-loader.d.ts +1 -1
- package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
- package/dist/asset/loaders/texture-loader.js +9 -26
- package/dist/asset/loaders/texture-loader.js.map +1 -1
- package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
- package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
- package/dist/asset/loaders/uikitml-loader.js +44 -0
- package/dist/asset/loaders/uikitml-loader.js.map +1 -0
- package/dist/audio/audio-pool.d.ts +7 -0
- package/dist/audio/audio-pool.d.ts.map +1 -1
- package/dist/audio/audio-pool.js.map +1 -1
- package/dist/audio/audio-system.d.ts +3 -2
- package/dist/audio/audio-system.d.ts.map +1 -1
- package/dist/audio/audio-system.js +17 -6
- package/dist/audio/audio-system.js.map +1 -1
- package/dist/audio/audio-utils.d.ts +2 -2
- package/dist/audio/audio-utils.d.ts.map +1 -1
- package/dist/audio/audio.d.ts +1 -1
- package/dist/audio/audio.d.ts.map +1 -1
- package/dist/audio/audio.js +2 -4
- package/dist/audio/audio.js.map +1 -1
- package/dist/camera/camera-source.d.ts +1 -1
- package/dist/camera/camera-source.d.ts.map +1 -1
- package/dist/camera/camera-source.js +0 -4
- package/dist/camera/camera-source.js.map +1 -1
- package/dist/camera/camera-system.d.ts +18 -18
- package/dist/camera/camera-system.d.ts.map +1 -1
- package/dist/camera/camera-system.js +5 -6
- package/dist/camera/camera-system.js.map +1 -1
- package/dist/camera/camera-utils.d.ts +1 -1
- package/dist/camera/camera-utils.d.ts.map +1 -1
- package/dist/depth/depth-occludable.d.ts +1 -1
- package/dist/depth/depth-occludable.d.ts.map +1 -1
- package/dist/depth/depth-occludable.js +0 -4
- package/dist/depth/depth-occludable.js.map +1 -1
- package/dist/depth/depth-sensing-system.d.ts +2 -2
- package/dist/depth/depth-sensing-system.d.ts.map +1 -1
- package/dist/depth/depth-sensing-system.js +31 -13
- package/dist/depth/depth-sensing-system.js.map +1 -1
- package/dist/ecs/builtin-components.d.ts +1239 -0
- package/dist/ecs/builtin-components.d.ts.map +1 -0
- package/dist/ecs/builtin-components.js +87 -0
- package/dist/ecs/builtin-components.js.map +1 -0
- package/dist/ecs/component-editor-metadata.d.ts +19 -0
- package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
- package/dist/ecs/component-editor-metadata.js +19 -0
- package/dist/ecs/component-editor-metadata.js.map +1 -0
- package/dist/ecs/component-manifest.d.ts +24 -0
- package/dist/ecs/component-manifest.d.ts.map +1 -0
- package/dist/ecs/component-manifest.js +121 -0
- package/dist/ecs/component-manifest.js.map +1 -0
- package/dist/ecs/component.d.ts +1 -0
- package/dist/ecs/component.d.ts.map +1 -1
- package/dist/ecs/entity.d.ts +20 -2
- package/dist/ecs/entity.d.ts.map +1 -1
- package/dist/ecs/entity.js +59 -3
- package/dist/ecs/entity.js.map +1 -1
- package/dist/ecs/index.d.ts +3 -1
- package/dist/ecs/index.d.ts.map +1 -1
- package/dist/ecs/system.d.ts +9 -0
- package/dist/ecs/system.d.ts.map +1 -1
- package/dist/ecs/system.js.map +1 -1
- package/dist/ecs/world.d.ts +160 -5
- package/dist/ecs/world.d.ts.map +1 -1
- package/dist/ecs/world.js +306 -19
- package/dist/ecs/world.js.map +1 -1
- package/dist/environment/dome-gradient.d.ts +3 -2
- package/dist/environment/dome-gradient.d.ts.map +1 -1
- package/dist/environment/dome-gradient.js +2 -5
- package/dist/environment/dome-gradient.js.map +1 -1
- package/dist/environment/dome-texture.d.ts +1 -1
- package/dist/environment/dome-texture.d.ts.map +1 -1
- package/dist/environment/dome-texture.js +0 -4
- package/dist/environment/dome-texture.js.map +1 -1
- package/dist/environment/environment-system.d.ts +20 -4
- package/dist/environment/environment-system.d.ts.map +1 -1
- package/dist/environment/environment-system.js +79 -61
- package/dist/environment/environment-system.js.map +1 -1
- package/dist/environment/gradient-environment.d.ts.map +1 -1
- package/dist/environment/gradient-environment.js +13 -7
- package/dist/environment/gradient-environment.js.map +1 -1
- package/dist/environment/ibl-gradient.d.ts +1 -1
- package/dist/environment/ibl-gradient.d.ts.map +1 -1
- package/dist/environment/ibl-gradient.js +0 -4
- package/dist/environment/ibl-gradient.js.map +1 -1
- package/dist/environment/ibl-texture.d.ts +1 -1
- package/dist/environment/ibl-texture.d.ts.map +1 -1
- package/dist/environment/ibl-texture.js +0 -4
- package/dist/environment/ibl-texture.js.map +1 -1
- package/dist/environment/scene-ar-environment.d.ts +39 -0
- package/dist/environment/scene-ar-environment.d.ts.map +1 -0
- package/dist/environment/scene-ar-environment.js +93 -0
- package/dist/environment/scene-ar-environment.js.map +1 -0
- package/dist/environment-raycast/environment-raycast.d.ts +21 -21
- package/dist/environment-raycast/environment-raycast.d.ts.map +1 -1
- package/dist/environment-raycast/environment-raycast.js +0 -4
- package/dist/environment-raycast/environment-raycast.js.map +1 -1
- package/dist/environment-raycast/raycast-target.d.ts +1 -1
- package/dist/environment-raycast/raycast-target.d.ts.map +1 -1
- package/dist/environment-raycast/raycast-target.js +0 -4
- package/dist/environment-raycast/raycast-target.js.map +1 -1
- package/dist/grab/distance-grabbable.d.ts +1 -1
- package/dist/grab/distance-grabbable.d.ts.map +1 -1
- package/dist/grab/distance-grabbable.js +0 -4
- package/dist/grab/distance-grabbable.js.map +1 -1
- package/dist/grab/grab-helpers.d.ts +39 -0
- package/dist/grab/grab-helpers.d.ts.map +1 -0
- package/dist/grab/grab-helpers.js +59 -0
- package/dist/grab/grab-helpers.js.map +1 -0
- package/dist/grab/grab-system.d.ts +47 -2
- package/dist/grab/grab-system.d.ts.map +1 -1
- package/dist/grab/grab-system.js +67 -8
- package/dist/grab/grab-system.js.map +1 -1
- package/dist/grab/grab-warnings.d.ts +14 -0
- package/dist/grab/grab-warnings.d.ts.map +1 -0
- package/dist/grab/grab-warnings.js +53 -0
- package/dist/grab/grab-warnings.js.map +1 -0
- package/dist/grab/grabbed.d.ts.map +1 -1
- package/dist/grab/grabbed.js +0 -4
- package/dist/grab/grabbed.js.map +1 -1
- package/dist/grab/handles.d.ts +1 -1
- package/dist/grab/handles.d.ts.map +1 -1
- package/dist/grab/handles.js +8 -7
- package/dist/grab/handles.js.map +1 -1
- package/dist/grab/one-hand-grabbable.d.ts +1 -1
- package/dist/grab/one-hand-grabbable.d.ts.map +1 -1
- package/dist/grab/one-hand-grabbable.js +0 -4
- package/dist/grab/one-hand-grabbable.js.map +1 -1
- package/dist/grab/two-hands-grabbable.d.ts +1 -1
- package/dist/grab/two-hands-grabbable.d.ts.map +1 -1
- package/dist/grab/two-hands-grabbable.js +0 -4
- package/dist/grab/two-hands-grabbable.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -16
- package/dist/index.js.map +1 -1
- package/dist/init/world-initializer.d.ts +12 -8
- package/dist/init/world-initializer.d.ts.map +1 -1
- package/dist/init/world-initializer.js +127 -67
- package/dist/init/world-initializer.js.map +1 -1
- package/dist/init/xr.d.ts +1 -2
- package/dist/init/xr.d.ts.map +1 -1
- package/dist/init/xr.js +12 -3
- package/dist/init/xr.js.map +1 -1
- package/dist/input/input-system.d.ts +59 -59
- package/dist/input/input-system.d.ts.map +1 -1
- package/dist/input/input-system.js +26 -13
- package/dist/input/input-system.js.map +1 -1
- package/dist/input/state-tags.d.ts.map +1 -1
- package/dist/input/state-tags.js +0 -4
- package/dist/input/state-tags.js.map +1 -1
- package/dist/layers/xr-cylinder-layer.d.ts +1 -1
- package/dist/layers/xr-cylinder-layer.d.ts.map +1 -1
- package/dist/layers/xr-cylinder-layer.js +0 -4
- package/dist/layers/xr-cylinder-layer.js.map +1 -1
- package/dist/layers/xr-layer-state.d.ts +47 -0
- package/dist/layers/xr-layer-state.d.ts.map +1 -0
- package/dist/layers/xr-layer-state.js +23 -0
- package/dist/layers/xr-layer-state.js.map +1 -0
- package/dist/layers/xr-layer-system.d.ts +46 -94
- package/dist/layers/xr-layer-system.d.ts.map +1 -1
- package/dist/layers/xr-layer-system.js +4 -28
- package/dist/layers/xr-layer-system.js.map +1 -1
- package/dist/layers/xr-quad-layer.d.ts +1 -1
- package/dist/layers/xr-quad-layer.d.ts.map +1 -1
- package/dist/layers/xr-quad-layer.js +0 -4
- package/dist/layers/xr-quad-layer.js.map +1 -1
- package/dist/level/index.d.ts +6 -2
- package/dist/level/index.d.ts.map +1 -1
- package/dist/level/level-component-applier.d.ts +24 -0
- package/dist/level/level-component-applier.d.ts.map +1 -0
- package/dist/level/level-component-applier.js +199 -0
- package/dist/level/level-component-applier.js.map +1 -0
- package/dist/level/level-player-rig.d.ts +17 -0
- package/dist/level/level-player-rig.d.ts.map +1 -0
- package/dist/level/level-player-rig.js +113 -0
- package/dist/level/level-player-rig.js.map +1 -0
- package/dist/level/level-root.d.ts.map +1 -1
- package/dist/level/level-root.js +0 -4
- package/dist/level/level-root.js.map +1 -1
- package/dist/level/level-scene-environment.d.ts +28 -0
- package/dist/level/level-scene-environment.d.ts.map +1 -0
- package/dist/level/level-scene-environment.js +121 -0
- package/dist/level/level-scene-environment.js.map +1 -0
- package/dist/level/level-scene-json-importer.d.ts +53 -0
- package/dist/level/level-scene-json-importer.d.ts.map +1 -0
- package/dist/level/level-scene-json-importer.js +256 -0
- package/dist/level/level-scene-json-importer.js.map +1 -0
- package/dist/level/level-scene-material.d.ts +22 -0
- package/dist/level/level-scene-material.d.ts.map +1 -0
- package/dist/level/level-scene-material.js +231 -0
- package/dist/level/level-scene-material.js.map +1 -0
- package/dist/level/level-scene-object.d.ts +49 -0
- package/dist/level/level-scene-object.d.ts.map +1 -0
- package/dist/level/level-scene-object.js +396 -0
- package/dist/level/level-scene-object.js.map +1 -0
- package/dist/level/level-scene-primitive.d.ts +21 -0
- package/dist/level/level-scene-primitive.d.ts.map +1 -0
- package/dist/level/level-scene-primitive.js +159 -0
- package/dist/level/level-scene-primitive.js.map +1 -0
- package/dist/level/level-system.d.ts +14 -20
- package/dist/level/level-system.d.ts.map +1 -1
- package/dist/level/level-system.js +114 -52
- package/dist/level/level-system.js.map +1 -1
- package/dist/level/level-tag.d.ts +1 -1
- package/dist/level/level-tag.d.ts.map +1 -1
- package/dist/level/level-tag.js +0 -4
- package/dist/level/level-tag.js.map +1 -1
- package/dist/lighting/index.d.ts +10 -0
- package/dist/lighting/index.d.ts.map +1 -0
- package/dist/lighting/index.js +4 -0
- package/dist/lighting/index.js.map +1 -0
- package/dist/lighting/light-binding.d.ts +76 -0
- package/dist/lighting/light-binding.d.ts.map +1 -0
- package/dist/lighting/light-binding.js +229 -0
- package/dist/lighting/light-binding.js.map +1 -0
- package/dist/lighting/light-components.d.ts +885 -0
- package/dist/lighting/light-components.d.ts.map +1 -0
- package/dist/lighting/light-components.js +146 -0
- package/dist/lighting/light-components.js.map +1 -0
- package/dist/lighting/light-system.d.ts +919 -0
- package/dist/lighting/light-system.d.ts.map +1 -0
- package/dist/lighting/light-system.js +244 -0
- package/dist/lighting/light-system.js.map +1 -0
- package/dist/locomotion/locomotion-environment.d.ts +27 -0
- package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
- package/dist/locomotion/locomotion-environment.js +22 -0
- package/dist/locomotion/locomotion-environment.js.map +1 -0
- package/dist/locomotion/locomotion-input-provider.d.ts +1 -1
- package/dist/locomotion/locomotion.d.ts +5 -34
- package/dist/locomotion/locomotion.d.ts.map +1 -1
- package/dist/locomotion/locomotion.js +33 -31
- package/dist/locomotion/locomotion.js.map +1 -1
- package/dist/locomotion/materials/line.js +1 -1
- package/dist/locomotion/slide.d.ts +2 -2
- package/dist/locomotion/slide.d.ts.map +1 -1
- package/dist/locomotion/slide.js +3 -6
- package/dist/locomotion/slide.js.map +1 -1
- package/dist/locomotion/teleport.d.ts +2 -2
- package/dist/locomotion/teleport.d.ts.map +1 -1
- package/dist/locomotion/teleport.js +1 -4
- package/dist/locomotion/teleport.js.map +1 -1
- package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
- package/dist/mcp/ecs-debug-tools.js +10 -2
- package/dist/mcp/ecs-debug-tools.js.map +1 -1
- package/dist/mcp/mcp-runtime.d.ts.map +1 -1
- package/dist/mcp/mcp-runtime.js +4 -1
- package/dist/mcp/mcp-runtime.js.map +1 -1
- package/dist/mcp/scene-tools.d.ts +152 -1
- package/dist/mcp/scene-tools.d.ts.map +1 -1
- package/dist/mcp/scene-tools.js +538 -8
- package/dist/mcp/scene-tools.js.map +1 -1
- package/dist/physics/index.js +12 -0
- package/dist/physics/index.js.map +1 -0
- package/dist/physics/physics-system.d.ts +704 -11
- package/dist/physics/physics-system.d.ts.map +1 -1
- package/dist/physics/physics-system.js +310 -29
- package/dist/physics/physics-system.js.map +1 -1
- package/dist/physics/physicsBody.d.ts +40 -1
- package/dist/physics/physicsBody.d.ts.map +1 -1
- package/dist/physics/physicsBody.js +39 -1
- package/dist/physics/physicsBody.js.map +1 -1
- package/dist/physics/physicsManipulation.d.ts +1 -1
- package/dist/physics/physicsManipulation.d.ts.map +1 -1
- package/dist/physics/physicsManipulation.js +0 -1
- package/dist/physics/physicsManipulation.js.map +1 -1
- package/dist/physics/physicsShape.d.ts +5 -3
- package/dist/physics/physicsShape.d.ts.map +1 -1
- package/dist/physics/physicsShape.js +2 -2
- package/dist/physics/physicsShape.js.map +1 -1
- package/dist/physics/utils.d.ts +10 -0
- package/dist/physics/utils.d.ts.map +1 -1
- package/dist/physics/utils.js +82 -48
- package/dist/physics/utils.js.map +1 -1
- package/dist/project/index.d.ts +11 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +5 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/normalize.d.ts +19 -0
- package/dist/project/normalize.d.ts.map +1 -0
- package/dist/project/normalize.js +206 -0
- package/dist/project/normalize.js.map +1 -0
- package/dist/project/paths.d.ts +21 -0
- package/dist/project/paths.d.ts.map +1 -0
- package/dist/project/paths.js +75 -0
- package/dist/project/paths.js.map +1 -0
- package/dist/project/types.d.ts +159 -0
- package/dist/project/types.d.ts.map +1 -0
- package/dist/project/types.js +11 -0
- package/dist/project/types.js.map +1 -0
- package/dist/project/validation.d.ts +17 -0
- package/dist/project/validation.d.ts.map +1 -0
- package/dist/project/validation.js +501 -0
- package/dist/project/validation.js.map +1 -0
- package/dist/scene-understanding/anchor.d.ts +1 -1
- package/dist/scene-understanding/anchor.d.ts.map +1 -1
- package/dist/scene-understanding/anchor.js +0 -4
- package/dist/scene-understanding/anchor.js.map +1 -1
- package/dist/scene-understanding/mesh.d.ts +1 -1
- package/dist/scene-understanding/mesh.d.ts.map +1 -1
- package/dist/scene-understanding/mesh.js +0 -4
- package/dist/scene-understanding/mesh.js.map +1 -1
- package/dist/scene-understanding/plane.d.ts +1 -1
- package/dist/scene-understanding/plane.d.ts.map +1 -1
- package/dist/scene-understanding/plane.js +0 -4
- package/dist/scene-understanding/plane.js.map +1 -1
- package/dist/scene-understanding/scene-understanding-system.d.ts +25 -4
- package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
- package/dist/scene-understanding/scene-understanding-system.js +76 -57
- package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
- package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
- package/dist/transform/transform-component.d.ts +32 -0
- package/dist/transform/transform-component.d.ts.map +1 -0
- package/dist/transform/transform-component.js +24 -0
- package/dist/transform/transform-component.js.map +1 -0
- package/dist/transform/transform.d.ts +10 -43
- package/dist/transform/transform.d.ts.map +1 -1
- package/dist/transform/transform.js +9 -28
- package/dist/transform/transform.js.map +1 -1
- package/dist/ui/document.d.ts +9 -2
- package/dist/ui/document.d.ts.map +1 -1
- package/dist/ui/document.js +30 -5
- package/dist/ui/document.js.map +1 -1
- package/dist/ui/follow-component.d.ts +57 -0
- package/dist/ui/follow-component.d.ts.map +1 -0
- package/dist/ui/follow-component.js +38 -0
- package/dist/ui/follow-component.js.map +1 -0
- package/dist/ui/follow.d.ts +29 -103
- package/dist/ui/follow.d.ts.map +1 -1
- package/dist/ui/follow.js +10 -51
- package/dist/ui/follow.js.map +1 -1
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/panel-components.d.ts +29 -0
- package/dist/ui/panel-components.d.ts.map +1 -0
- package/dist/ui/panel-components.js +22 -0
- package/dist/ui/panel-components.js.map +1 -0
- package/dist/ui/screenspace-component.d.ts +39 -0
- package/dist/ui/screenspace-component.d.ts.map +1 -0
- package/dist/ui/screenspace-component.js +21 -0
- package/dist/ui/screenspace-component.js.map +1 -0
- package/dist/ui/screenspace.d.ts +47 -135
- package/dist/ui/screenspace.d.ts.map +1 -1
- package/dist/ui/screenspace.js +127 -65
- package/dist/ui/screenspace.js.map +1 -1
- package/dist/ui/ui.d.ts +20 -122
- package/dist/ui/ui.d.ts.map +1 -1
- package/dist/ui/ui.js +44 -107
- package/dist/ui/ui.js.map +1 -1
- package/dist/ui/uikitml-asset.d.ts +25 -0
- package/dist/ui/uikitml-asset.d.ts.map +1 -0
- package/dist/ui/uikitml-asset.js +56 -0
- package/dist/ui/uikitml-asset.js.map +1 -0
- package/dist/ui/uikitml.d.ts +41 -0
- package/dist/ui/uikitml.d.ts.map +1 -0
- package/dist/ui/uikitml.js +119 -0
- package/dist/ui/uikitml.js.map +1 -0
- package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/visibility/visibility-component.d.ts +14 -0
- package/dist/visibility/visibility-component.d.ts.map +1 -0
- package/dist/visibility/visibility-component.js +15 -0
- package/dist/visibility/visibility-component.js.map +1 -0
- package/dist/visibility/visibility.d.ts +4 -11
- package/dist/visibility/visibility.d.ts.map +1 -1
- package/dist/visibility/visibility.js +9 -15
- package/dist/visibility/visibility.js.map +1 -1
- package/package.json +71 -19
- package/LICENSE +0 -21
- package/dist/ecs/component-registry.d.ts +0 -54
- package/dist/ecs/component-registry.d.ts.map +0 -1
- package/dist/ecs/component-registry.js +0 -86
- package/dist/ecs/component-registry.js.map +0 -1
- package/dist/level/level-entity-creator.d.ts +0 -27
- package/dist/level/level-entity-creator.d.ts.map +0 -1
- package/dist/level/level-entity-creator.js +0 -111
- package/dist/level/level-entity-creator.js.map +0 -1
- package/dist/level/level-glxf-importer.d.ts +0 -22
- package/dist/level/level-glxf-importer.d.ts.map +0 -1
- package/dist/level/level-glxf-importer.js +0 -40
- package/dist/level/level-glxf-importer.js.map +0 -1
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import { clone } from 'three/examples/jsm/utils/SkeletonUtils.js';
|
|
1
2
|
import '../runtime/three.js';
|
|
2
3
|
import { CacheManager } from './cache-manager.js';
|
|
3
4
|
import { AudioAssetLoader } from './loaders/audio-loader.js';
|
|
4
|
-
import {
|
|
5
|
+
import { DEFAULT_ASSET_LOAD_TIMEOUT_MS, assertAssetLoadTimeout } from './loaders/cached-asset-load.js';
|
|
6
|
+
export { AssetLoadTimeoutError } from './loaders/cached-asset-load.js';
|
|
7
|
+
import { GLTFAssetLoader, DEFAULT_MAX_MODEL_PAYLOAD_BYTES, DEFAULT_MAX_TOTAL_MODEL_PAYLOAD_BYTES, disposeGLTFResources } from './loaders/gltf-loader.js';
|
|
8
|
+
export { GLTFPayloadLimitError } from './loaders/gltf-loader.js';
|
|
5
9
|
import { HDRTextureAssetLoader } from './loaders/hdr-texture-loader.js';
|
|
6
10
|
import { TextureAssetLoader } from './loaders/texture-loader.js';
|
|
7
|
-
import {
|
|
11
|
+
import { UIKitMLAssetLoader } from './loaders/uikitml-loader.js';
|
|
12
|
+
import { SphereGeometry, CylinderGeometry, CapsuleGeometry, BoxGeometry, Mesh, MeshStandardMaterial, LoadingManager, Box3 } from 'three';
|
|
8
13
|
|
|
9
14
|
/**
|
|
10
15
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
@@ -22,7 +27,178 @@ var AssetType;
|
|
|
22
27
|
AssetType["Audio"] = "audio";
|
|
23
28
|
AssetType["Texture"] = "texture";
|
|
24
29
|
AssetType["HDRTexture"] = "hdr-texture";
|
|
30
|
+
AssetType["UIKitML"] = "uikitml";
|
|
25
31
|
})(AssetType || (AssetType = {}));
|
|
32
|
+
/** Non-enumerable marker carried by manifests created with defineAssets. */
|
|
33
|
+
const ASSET_MANIFEST_BRAND = Symbol('@iwsdk/core/asset-manifest/v1');
|
|
34
|
+
/**
|
|
35
|
+
* Declare the complete application asset catalog shared by runtime/editor.
|
|
36
|
+
* The returned container is frozen; entry objects and Three.js prototypes are
|
|
37
|
+
* intentionally left mutable and retain their original identities.
|
|
38
|
+
*/
|
|
39
|
+
function defineAssets(assets) {
|
|
40
|
+
if (assets == null || typeof assets !== 'object' || Array.isArray(assets)) {
|
|
41
|
+
throw new Error('Asset manifest must be an object');
|
|
42
|
+
}
|
|
43
|
+
for (const [id, entry] of Object.entries(assets)) {
|
|
44
|
+
if (id.trim().length === 0) {
|
|
45
|
+
throw new Error('Asset IDs must not be blank');
|
|
46
|
+
}
|
|
47
|
+
assertAssetManifestEntry(id, entry);
|
|
48
|
+
}
|
|
49
|
+
const manifest = { ...assets };
|
|
50
|
+
Object.defineProperty(manifest, ASSET_MANIFEST_BRAND, {
|
|
51
|
+
configurable: false,
|
|
52
|
+
enumerable: false,
|
|
53
|
+
value: 1,
|
|
54
|
+
writable: false,
|
|
55
|
+
});
|
|
56
|
+
return Object.freeze(manifest);
|
|
57
|
+
}
|
|
58
|
+
/** Structured identity for critical, background, and on-demand failures. */
|
|
59
|
+
class AssetLoadError extends Error {
|
|
60
|
+
constructor(assetId, url, cause) {
|
|
61
|
+
super(`Failed to load asset "${assetId}" from "${url}": ${errorMessage(cause)}`);
|
|
62
|
+
this.assetId = assetId;
|
|
63
|
+
this.url = url;
|
|
64
|
+
this.cause = cause;
|
|
65
|
+
this.name = 'AssetLoadError';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const BUILTIN_PRIMITIVE_ASSETS = Object.freeze({
|
|
69
|
+
'primitive-box': createPrimitivePrototype('Box', new BoxGeometry(0.5, 0.5, 0.5)),
|
|
70
|
+
'primitive-capsule': createPrimitivePrototype('Capsule', new CapsuleGeometry(0.2, 0.5, 4, 12)),
|
|
71
|
+
'primitive-cylinder': createPrimitivePrototype('Cylinder', new CylinderGeometry(0.25, 0.25, 0.6, 24)),
|
|
72
|
+
'primitive-sphere': createPrimitivePrototype('Sphere', new SphereGeometry(0.3, 24, 16)),
|
|
73
|
+
});
|
|
74
|
+
/**
|
|
75
|
+
* World-owned view of the application's renderable asset manifest.
|
|
76
|
+
*
|
|
77
|
+
* The registry never places registered prototypes into a scene. Each request
|
|
78
|
+
* returns a hierarchy clone while retaining shared geometry and material
|
|
79
|
+
* references, matching the existing glTF cache behavior.
|
|
80
|
+
*/
|
|
81
|
+
class RenderableAssetRegistry {
|
|
82
|
+
constructor(manifest = {}, options = {}) {
|
|
83
|
+
this.options = options;
|
|
84
|
+
this.manifest = { ...BUILTIN_PRIMITIVE_ASSETS, ...manifest };
|
|
85
|
+
for (const [id, entry] of Object.entries(this.manifest)) {
|
|
86
|
+
if (isObject3DManifestEntry(entry) && entry.parent != null) {
|
|
87
|
+
throw new Error(`Renderable asset prototype "${id}" must not have a parent`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
AssetManager.registerManifest(this.manifest);
|
|
91
|
+
}
|
|
92
|
+
async preload() {
|
|
93
|
+
await AssetManager.preloadAssets(this.manifest);
|
|
94
|
+
}
|
|
95
|
+
has(id) {
|
|
96
|
+
return this.kind(id) != null;
|
|
97
|
+
}
|
|
98
|
+
/** Return whether an id instantiates as a conventional model hierarchy. */
|
|
99
|
+
hasRenderable(id) {
|
|
100
|
+
return isRenderableManifestEntry(this.manifest[id]);
|
|
101
|
+
}
|
|
102
|
+
/** Return whether an id is available to authoring, including UIKitML. */
|
|
103
|
+
hasAuthoringAsset(id) {
|
|
104
|
+
return this.kind(id) != null;
|
|
105
|
+
}
|
|
106
|
+
/** Resolve the authoring kind for a manifest id. */
|
|
107
|
+
kind(id) {
|
|
108
|
+
const entry = this.manifest[id];
|
|
109
|
+
if (entry == null) {
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
if (isObject3DManifestEntry(entry)) {
|
|
113
|
+
return isPrimitivePrototype(entry) ? 'primitive' : 'procedural';
|
|
114
|
+
}
|
|
115
|
+
if (entry.type === AssetType.GLTF) {
|
|
116
|
+
return 'gltf';
|
|
117
|
+
}
|
|
118
|
+
if (entry.type === AssetType.UIKitML) {
|
|
119
|
+
return 'uikitml';
|
|
120
|
+
}
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
list() {
|
|
124
|
+
const result = [];
|
|
125
|
+
for (const [id, entry] of Object.entries(this.manifest)) {
|
|
126
|
+
if (isObject3DManifestEntry(entry)) {
|
|
127
|
+
result.push({
|
|
128
|
+
bounds: boundsForPrototype(entry),
|
|
129
|
+
id,
|
|
130
|
+
kind: isPrimitivePrototype(entry) ? 'primitive' : 'procedural',
|
|
131
|
+
name: entry.name || id,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
else if (entry.type === AssetType.GLTF) {
|
|
135
|
+
result.push({
|
|
136
|
+
bounds: this.bounds(id),
|
|
137
|
+
id,
|
|
138
|
+
kind: 'gltf',
|
|
139
|
+
name: entry.name || id,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
/** List placeable model and UIKitML assets for authoring tools. */
|
|
146
|
+
catalog() {
|
|
147
|
+
const result = this.list();
|
|
148
|
+
for (const [id, entry] of Object.entries(this.manifest)) {
|
|
149
|
+
if (!isObject3DManifestEntry(entry) && entry.type === AssetType.UIKitML) {
|
|
150
|
+
result.push({
|
|
151
|
+
id,
|
|
152
|
+
kind: 'uikitml',
|
|
153
|
+
name: entry.name || id,
|
|
154
|
+
url: entry.url,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
bounds(id) {
|
|
161
|
+
const entry = this.manifest[id];
|
|
162
|
+
if (entry == null) {
|
|
163
|
+
return undefined;
|
|
164
|
+
}
|
|
165
|
+
if (isObject3DManifestEntry(entry)) {
|
|
166
|
+
return boundsForPrototype(entry);
|
|
167
|
+
}
|
|
168
|
+
if (entry.type !== AssetType.GLTF) {
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
const gltf = AssetManager.getGLTF(id, { shared: true });
|
|
172
|
+
return gltf == null ? undefined : boundsForPrototype(gltf.scene);
|
|
173
|
+
}
|
|
174
|
+
async instantiate(id) {
|
|
175
|
+
const entry = this.manifest[id];
|
|
176
|
+
if (entry == null) {
|
|
177
|
+
throw new Error(`Unknown renderable asset "${id}"`);
|
|
178
|
+
}
|
|
179
|
+
if (isObject3DManifestEntry(entry)) {
|
|
180
|
+
return clone(entry);
|
|
181
|
+
}
|
|
182
|
+
if (entry.type === AssetType.UIKitML) {
|
|
183
|
+
if (this.options.instantiateUIKitML == null) {
|
|
184
|
+
throw new Error(`UIKitML asset "${id}" requires the spatialUI feature`);
|
|
185
|
+
}
|
|
186
|
+
if (entry.priority === 'lazy') {
|
|
187
|
+
await AssetManager.loadUIKitMLById(id);
|
|
188
|
+
}
|
|
189
|
+
return this.options.instantiateUIKitML(id);
|
|
190
|
+
}
|
|
191
|
+
if (entry.type !== AssetType.GLTF) {
|
|
192
|
+
throw new Error(`Manifest entry "${id}" is not a renderable asset`);
|
|
193
|
+
}
|
|
194
|
+
await AssetManager.loadGLTFById(id);
|
|
195
|
+
const gltf = AssetManager.getGLTF(id);
|
|
196
|
+
if (gltf == null) {
|
|
197
|
+
throw new Error(`Renderable glTF asset "${id}" failed to load`);
|
|
198
|
+
}
|
|
199
|
+
return gltf.scene;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
26
202
|
/**
|
|
27
203
|
* Centralized asset loader with caching and priority‑based preloading.
|
|
28
204
|
*
|
|
@@ -37,48 +213,110 @@ class AssetManager {
|
|
|
37
213
|
* Initialize loaders and bind to the current world/renderer.
|
|
38
214
|
*/
|
|
39
215
|
static init(renderer, world, options = {}) {
|
|
216
|
+
var _a;
|
|
40
217
|
this.world = world;
|
|
41
218
|
this.loadingManager = new LoadingManager();
|
|
219
|
+
this.manifestEntries.clear();
|
|
220
|
+
this.loadTimeoutMs = (_a = options.loadTimeoutMs) !== null && _a !== void 0 ? _a : DEFAULT_ASSET_LOAD_TIMEOUT_MS;
|
|
221
|
+
assertAssetLoadTimeout(this.loadTimeoutMs);
|
|
42
222
|
// Initialize all specialized loaders
|
|
43
223
|
AudioAssetLoader.init(this.loadingManager);
|
|
44
224
|
GLTFAssetLoader.init(this.loadingManager, renderer, options);
|
|
45
225
|
TextureAssetLoader.init(this.loadingManager);
|
|
46
226
|
HDRTextureAssetLoader.init(this.loadingManager);
|
|
47
227
|
}
|
|
228
|
+
/** Configure the finite timeout used by subsequent asset loads. */
|
|
229
|
+
static setLoadTimeout(timeoutMs) {
|
|
230
|
+
assertAssetLoadTimeout(timeoutMs);
|
|
231
|
+
this.loadTimeoutMs = timeoutMs;
|
|
232
|
+
}
|
|
233
|
+
/** Register catalog identity without starting network requests. */
|
|
234
|
+
static registerManifest(manifest) {
|
|
235
|
+
this.manifestEntries.clear();
|
|
236
|
+
for (const [id, entry] of Object.entries(manifest)) {
|
|
237
|
+
if (isObject3DManifestEntry(entry)) {
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
this.manifestEntries.set(id, entry);
|
|
241
|
+
CacheManager.setKeyToUrl(id, entry.url);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
48
244
|
/** Preload assets with critical/background prioritization. */
|
|
49
245
|
static async preloadAssets(manifest) {
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
|
|
246
|
+
this.registerManifest(manifest);
|
|
247
|
+
const loadableAssets = Object.entries(manifest).filter((entry) => !isObject3DManifestEntry(entry[1]));
|
|
248
|
+
const criticalAssets = loadableAssets.filter(([_, config]) => {
|
|
249
|
+
return config.priority !== 'background' && config.priority !== 'lazy';
|
|
53
250
|
});
|
|
54
|
-
const backgroundAssets =
|
|
251
|
+
const backgroundAssets = loadableAssets.filter(([_, config]) => {
|
|
55
252
|
return config.priority === 'background';
|
|
56
253
|
});
|
|
57
|
-
// Phase 1: Load critical assets (blocking)
|
|
58
254
|
const criticalPromises = criticalAssets.map(([key, config]) => {
|
|
59
|
-
CacheManager.setKeyToUrl(key, config.url);
|
|
60
255
|
return this.loadAssetByType(config.url, config.type, key);
|
|
61
256
|
});
|
|
62
257
|
await Promise.all(criticalPromises);
|
|
63
|
-
// Phase 2: Start background loading (non-blocking)
|
|
64
258
|
backgroundAssets.forEach(([key, config]) => {
|
|
65
|
-
CacheManager.setKeyToUrl(key, config.url);
|
|
66
259
|
this.loadAssetByType(config.url, config.type, key).catch((err) => console.warn(`Background asset failed: ${key}`, err));
|
|
67
260
|
});
|
|
68
261
|
}
|
|
69
|
-
static async loadAssetByType(url, type,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
262
|
+
static async loadAssetByType(url, type, assetId = url) {
|
|
263
|
+
CacheManager.setKeyToUrl(assetId, url);
|
|
264
|
+
try {
|
|
265
|
+
switch (type) {
|
|
266
|
+
case AssetType.GLTF:
|
|
267
|
+
return await GLTFAssetLoader.loadGLTF(url, assetId, this.loadTimeoutMs);
|
|
268
|
+
case AssetType.Audio:
|
|
269
|
+
return await AudioAssetLoader.loadAudio(url, this.loadTimeoutMs);
|
|
270
|
+
case AssetType.Texture:
|
|
271
|
+
return await TextureAssetLoader.loadTexture(url, this.loadTimeoutMs);
|
|
272
|
+
case AssetType.HDRTexture:
|
|
273
|
+
return await HDRTextureAssetLoader.loadHDRTexture(url, this.loadTimeoutMs);
|
|
274
|
+
case AssetType.UIKitML:
|
|
275
|
+
return await UIKitMLAssetLoader.loadUIKitML(url, assetId, false, this.loadTimeoutMs);
|
|
276
|
+
default:
|
|
277
|
+
throw new Error(`Unsupported asset type: ${type}`);
|
|
278
|
+
}
|
|
81
279
|
}
|
|
280
|
+
catch (cause) {
|
|
281
|
+
if (cause instanceof AssetLoadError) {
|
|
282
|
+
throw cause;
|
|
283
|
+
}
|
|
284
|
+
throw new AssetLoadError(assetId, url, cause);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/** Load one registered manifest entry by asset ID. */
|
|
288
|
+
static async loadAsset(assetId) {
|
|
289
|
+
const entry = this.requireManifestEntry(assetId);
|
|
290
|
+
return this.loadAssetByType(entry.url, entry.type, assetId);
|
|
291
|
+
}
|
|
292
|
+
static async loadGLTFById(assetId) {
|
|
293
|
+
return this.loadTypedManifestAsset(assetId, AssetType.GLTF);
|
|
294
|
+
}
|
|
295
|
+
static async loadAudioById(assetId) {
|
|
296
|
+
return this.loadTypedManifestAsset(assetId, AssetType.Audio);
|
|
297
|
+
}
|
|
298
|
+
static async loadTextureById(assetId) {
|
|
299
|
+
return this.loadTypedManifestAsset(assetId, AssetType.Texture);
|
|
300
|
+
}
|
|
301
|
+
static async loadHDRTextureById(assetId) {
|
|
302
|
+
return this.loadTypedManifestAsset(assetId, AssetType.HDRTexture);
|
|
303
|
+
}
|
|
304
|
+
static async loadUIKitMLById(assetId) {
|
|
305
|
+
return this.loadTypedManifestAsset(assetId, AssetType.UIKitML);
|
|
306
|
+
}
|
|
307
|
+
static loadTypedManifestAsset(assetId, expectedType) {
|
|
308
|
+
const entry = this.requireManifestEntry(assetId);
|
|
309
|
+
if (entry.type !== expectedType) {
|
|
310
|
+
throw new Error(`Asset "${assetId}" has type "${entry.type}", expected "${expectedType}"`);
|
|
311
|
+
}
|
|
312
|
+
return this.loadAssetByType(entry.url, entry.type, assetId);
|
|
313
|
+
}
|
|
314
|
+
static requireManifestEntry(assetId) {
|
|
315
|
+
const entry = this.manifestEntries.get(assetId);
|
|
316
|
+
if (entry == null) {
|
|
317
|
+
throw new Error(`Unknown loadable asset "${assetId}"`);
|
|
318
|
+
}
|
|
319
|
+
return entry;
|
|
82
320
|
}
|
|
83
321
|
/**
|
|
84
322
|
* Load a GLTF by URL; optionally register a logical key.
|
|
@@ -88,10 +326,15 @@ class AssetManager {
|
|
|
88
326
|
* after the load resolves to retrieve a clone suitable for placing into
|
|
89
327
|
* multiple entities.
|
|
90
328
|
*/
|
|
91
|
-
static loadGLTF(
|
|
92
|
-
|
|
329
|
+
static loadGLTF(urlOrKey, key) {
|
|
330
|
+
const url = key == null ? CacheManager.resolveUrl(urlOrKey) : urlOrKey;
|
|
331
|
+
return this.loadAssetByType(url, AssetType.GLTF, key !== null && key !== void 0 ? key : urlOrKey);
|
|
332
|
+
}
|
|
333
|
+
/** Create an isolated glTF load transaction for scene resource preflight. */
|
|
334
|
+
static createGLTFLoadTransaction(limits = {}) {
|
|
335
|
+
return new GLTFLoadTransaction(limits);
|
|
93
336
|
}
|
|
94
|
-
//
|
|
337
|
+
// Scene documents are loaded through World.loadLevel(url).
|
|
95
338
|
/** Fetch any cached asset by logical key. */
|
|
96
339
|
static getAsset(key) {
|
|
97
340
|
return CacheManager.getAssetByKey(key);
|
|
@@ -99,13 +342,8 @@ class AssetManager {
|
|
|
99
342
|
// Public API Methods - delegate to specialized loaders
|
|
100
343
|
/** Load an AudioBuffer by URL; optionally register a logical key. */
|
|
101
344
|
static async loadAudio(url, key) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
CacheManager.setKeyToUrl(url, url);
|
|
107
|
-
}
|
|
108
|
-
return AudioAssetLoader.loadAudio(url);
|
|
345
|
+
const resolvedUrl = key == null ? CacheManager.resolveUrl(url) : url;
|
|
346
|
+
return this.loadAssetByType(resolvedUrl, AssetType.Audio, key !== null && key !== void 0 ? key : url);
|
|
109
347
|
}
|
|
110
348
|
/** Get a cached AudioBuffer by logical key. */
|
|
111
349
|
static getAudio(key) {
|
|
@@ -113,27 +351,32 @@ class AssetManager {
|
|
|
113
351
|
}
|
|
114
352
|
/** Load a Texture by URL; optionally register a logical key. */
|
|
115
353
|
static async loadTexture(url, key) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
CacheManager.setKeyToUrl(url, url);
|
|
121
|
-
}
|
|
122
|
-
return TextureAssetLoader.loadTexture(url);
|
|
354
|
+
const resolvedUrl = key == null ? CacheManager.resolveUrl(url) : url;
|
|
355
|
+
return this.loadAssetByType(resolvedUrl, AssetType.Texture, key !== null && key !== void 0 ? key : url);
|
|
123
356
|
}
|
|
124
357
|
/** Get a cached Texture by logical key. */
|
|
125
358
|
static getTexture(key) {
|
|
126
359
|
return TextureAssetLoader.getTexture(key);
|
|
127
360
|
}
|
|
361
|
+
/** Load and cache UIKitML source by URL or manifest key. */
|
|
362
|
+
static loadUIKitML(urlOrKey, key, forceReload = false) {
|
|
363
|
+
const url = key == null ? CacheManager.resolveUrl(urlOrKey) : urlOrKey;
|
|
364
|
+
const assetId = key !== null && key !== void 0 ? key : urlOrKey;
|
|
365
|
+
CacheManager.setKeyToUrl(assetId, url);
|
|
366
|
+
return UIKitMLAssetLoader.loadUIKitML(url, assetId, forceReload, this.loadTimeoutMs).catch((cause) => {
|
|
367
|
+
throw cause instanceof AssetLoadError
|
|
368
|
+
? cause
|
|
369
|
+
: new AssetLoadError(assetId, url, cause);
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
/** Get cached UIKitML source by URL or manifest key. */
|
|
373
|
+
static getUIKitML(keyOrUrl) {
|
|
374
|
+
return UIKitMLAssetLoader.getUIKitML(keyOrUrl);
|
|
375
|
+
}
|
|
128
376
|
/** Load an HDR equirectangular texture; optionally register a logical key. */
|
|
129
377
|
static async loadHDRTexture(url, key) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
CacheManager.setKeyToUrl(url, url);
|
|
135
|
-
}
|
|
136
|
-
return HDRTextureAssetLoader.loadHDRTexture(url);
|
|
378
|
+
const resolvedUrl = key == null ? CacheManager.resolveUrl(url) : url;
|
|
379
|
+
return this.loadAssetByType(resolvedUrl, AssetType.HDRTexture, key !== null && key !== void 0 ? key : url);
|
|
137
380
|
}
|
|
138
381
|
/**
|
|
139
382
|
* Get a cached GLTF by logical key.
|
|
@@ -148,6 +391,207 @@ class AssetManager {
|
|
|
148
391
|
return GLTFAssetLoader.getGLTF(key, options);
|
|
149
392
|
}
|
|
150
393
|
}
|
|
394
|
+
AssetManager.loadTimeoutMs = DEFAULT_ASSET_LOAD_TIMEOUT_MS;
|
|
395
|
+
AssetManager.manifestEntries = new Map();
|
|
396
|
+
function isObject3DManifestEntry(entry) {
|
|
397
|
+
return (entry === null || entry === void 0 ? void 0 : entry.isObject3D) === true;
|
|
398
|
+
}
|
|
399
|
+
const SUPPORTED_ASSET_TYPES = new Set(Object.values(AssetType));
|
|
400
|
+
const SUPPORTED_ASSET_PRIORITIES = new Set([
|
|
401
|
+
'critical',
|
|
402
|
+
'background',
|
|
403
|
+
'lazy',
|
|
404
|
+
]);
|
|
405
|
+
function assertAssetManifestEntry(id, entry) {
|
|
406
|
+
if (isObject3DManifestEntry(entry)) {
|
|
407
|
+
if (entry.parent != null) {
|
|
408
|
+
throw new Error(`Renderable asset prototype "${id}" must not have a parent`);
|
|
409
|
+
}
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
if (entry == null || typeof entry !== 'object' || Array.isArray(entry)) {
|
|
413
|
+
throw new Error(`Asset manifest entry "${id}" must be a URL entry or Object3D prototype`);
|
|
414
|
+
}
|
|
415
|
+
const candidate = entry;
|
|
416
|
+
if (typeof candidate.url !== 'string' || candidate.url.trim().length === 0) {
|
|
417
|
+
throw new Error(`Asset manifest entry "${id}" must have a nonblank URL`);
|
|
418
|
+
}
|
|
419
|
+
if (typeof candidate.type !== 'string' ||
|
|
420
|
+
!SUPPORTED_ASSET_TYPES.has(candidate.type)) {
|
|
421
|
+
throw new Error(`Asset manifest entry "${id}" has unsupported type "${String(candidate.type)}"`);
|
|
422
|
+
}
|
|
423
|
+
if (candidate.priority !== undefined &&
|
|
424
|
+
!SUPPORTED_ASSET_PRIORITIES.has(candidate.priority)) {
|
|
425
|
+
throw new Error(`Asset manifest entry "${id}" has unsupported priority "${String(candidate.priority)}"`);
|
|
426
|
+
}
|
|
427
|
+
if (candidate.name !== undefined && typeof candidate.name !== 'string') {
|
|
428
|
+
throw new Error(`Asset manifest entry "${id}" name must be a string`);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
function errorMessage(error) {
|
|
432
|
+
return error instanceof Error ? error.message : String(error);
|
|
433
|
+
}
|
|
434
|
+
function createPrimitivePrototype(name, geometry) {
|
|
435
|
+
const prototype = new Mesh(geometry, new MeshStandardMaterial({
|
|
436
|
+
color: 0x91a4ba,
|
|
437
|
+
metalness: 0.05,
|
|
438
|
+
roughness: 0.72,
|
|
439
|
+
}));
|
|
440
|
+
prototype.name = name;
|
|
441
|
+
prototype.userData.iwsdkAssetKind = 'primitive';
|
|
442
|
+
return prototype;
|
|
443
|
+
}
|
|
444
|
+
function isPrimitivePrototype(entry) {
|
|
445
|
+
return entry.userData.iwsdkAssetKind === 'primitive';
|
|
446
|
+
}
|
|
447
|
+
function isRenderableManifestEntry(entry) {
|
|
448
|
+
return (entry != null &&
|
|
449
|
+
(isObject3DManifestEntry(entry) || entry.type === AssetType.GLTF));
|
|
450
|
+
}
|
|
451
|
+
function boundsForPrototype(prototype) {
|
|
452
|
+
const instance = clone(prototype);
|
|
453
|
+
instance.updateMatrixWorld(true);
|
|
454
|
+
const bounds = new Box3().setFromObject(instance);
|
|
455
|
+
if (bounds.isEmpty()) {
|
|
456
|
+
return undefined;
|
|
457
|
+
}
|
|
458
|
+
return {
|
|
459
|
+
min: bounds.min.toArray(),
|
|
460
|
+
max: bounds.max.toArray(),
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Stages model resources without mutating shared AssetManager caches. A
|
|
465
|
+
* successful scene commit adopts owned resources; rollback disposes them.
|
|
466
|
+
*/
|
|
467
|
+
class GLTFLoadTransaction {
|
|
468
|
+
constructor(limits = {}) {
|
|
469
|
+
var _a, _b;
|
|
470
|
+
this.stagedByUrl = new Map();
|
|
471
|
+
this.urlByKey = new Map();
|
|
472
|
+
this.state = 'open';
|
|
473
|
+
this.totalPayloadBytes = 0;
|
|
474
|
+
this.maxModelPayloadBytes =
|
|
475
|
+
(_a = limits.maxModelPayloadBytes) !== null && _a !== void 0 ? _a : DEFAULT_MAX_MODEL_PAYLOAD_BYTES;
|
|
476
|
+
this.maxTotalModelPayloadBytes =
|
|
477
|
+
(_b = limits.maxTotalModelPayloadBytes) !== null && _b !== void 0 ? _b : DEFAULT_MAX_TOTAL_MODEL_PAYLOAD_BYTES;
|
|
478
|
+
assertPositiveByteLimit('maxModelPayloadBytes', this.maxModelPayloadBytes);
|
|
479
|
+
assertPositiveByteLimit('maxTotalModelPayloadBytes', this.maxTotalModelPayloadBytes);
|
|
480
|
+
}
|
|
481
|
+
/** Stage one logical key. Repeated URLs share one detached response. */
|
|
482
|
+
async stage(url, key) {
|
|
483
|
+
this.assertOpen();
|
|
484
|
+
const priorUrl = this.urlByKey.get(key);
|
|
485
|
+
if (priorUrl != null && priorUrl !== url) {
|
|
486
|
+
throw new Error(`Staged model key "${key}" already refers to "${priorUrl}"`);
|
|
487
|
+
}
|
|
488
|
+
let staged = this.stagedByUrl.get(url);
|
|
489
|
+
if (staged == null) {
|
|
490
|
+
const cached = await getSettledCachedGLTF(url);
|
|
491
|
+
if (cached != null) {
|
|
492
|
+
staged = { gltf: cached, payloadBytes: 0, source: 'cache', url };
|
|
493
|
+
}
|
|
494
|
+
else {
|
|
495
|
+
const loaded = await GLTFAssetLoader.loadGLTFDetached(url, this.maxModelPayloadBytes);
|
|
496
|
+
if (this.totalPayloadBytes + loaded.payloadBytes >
|
|
497
|
+
this.maxTotalModelPayloadBytes) {
|
|
498
|
+
disposeGLTFResources(loaded.gltf);
|
|
499
|
+
throw new Error(`Staged model payloads total ${this.totalPayloadBytes + loaded.payloadBytes} bytes; the configured scene limit is ${this.maxTotalModelPayloadBytes} bytes`);
|
|
500
|
+
}
|
|
501
|
+
staged = {
|
|
502
|
+
gltf: loaded.gltf,
|
|
503
|
+
payloadBytes: loaded.payloadBytes,
|
|
504
|
+
source: 'detached',
|
|
505
|
+
url,
|
|
506
|
+
};
|
|
507
|
+
this.totalPayloadBytes += loaded.payloadBytes;
|
|
508
|
+
}
|
|
509
|
+
this.stagedByUrl.set(url, staged);
|
|
510
|
+
}
|
|
511
|
+
this.urlByKey.set(key, url);
|
|
512
|
+
return staged;
|
|
513
|
+
}
|
|
514
|
+
/** Retrieve a clone for materialization without transferring ownership. */
|
|
515
|
+
getGLTF(key, options = {}) {
|
|
516
|
+
const url = this.urlByKey.get(key);
|
|
517
|
+
const staged = url == null ? null : this.stagedByUrl.get(url);
|
|
518
|
+
if (staged == null) {
|
|
519
|
+
return null;
|
|
520
|
+
}
|
|
521
|
+
return options.shared
|
|
522
|
+
? staged.gltf
|
|
523
|
+
: GLTFAssetLoader.cloneGLTF(staged.gltf);
|
|
524
|
+
}
|
|
525
|
+
/** Exact newly fetched primary-response bytes in this transaction. */
|
|
526
|
+
get payloadBytes() {
|
|
527
|
+
return this.totalPayloadBytes;
|
|
528
|
+
}
|
|
529
|
+
/** Verify cache ownership can transfer synchronously after scene install. */
|
|
530
|
+
assertCanCommit() {
|
|
531
|
+
this.assertOpen();
|
|
532
|
+
for (const staged of this.stagedByUrl.values()) {
|
|
533
|
+
const cached = CacheManager.getAsset(staged.url);
|
|
534
|
+
if (staged.source === 'cache') {
|
|
535
|
+
if (cached !== staged.gltf) {
|
|
536
|
+
throw new Error(`Cached model "${staged.url}" changed during resource preflight`);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
else if (cached != null || CacheManager.hasPromise(staged.url)) {
|
|
540
|
+
throw new Error(`Model "${staged.url}" entered the shared cache during resource preflight`);
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
/** Atomically transfer staged resources and logical keys to the shared cache. */
|
|
545
|
+
commit() {
|
|
546
|
+
this.assertCanCommit();
|
|
547
|
+
for (const staged of this.stagedByUrl.values()) {
|
|
548
|
+
if (staged.source === 'detached') {
|
|
549
|
+
CacheManager.setAsset(staged.url, staged.gltf);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
for (const [key, url] of this.urlByKey) {
|
|
553
|
+
CacheManager.setKeyToUrl(key, url);
|
|
554
|
+
}
|
|
555
|
+
this.state = 'committed';
|
|
556
|
+
}
|
|
557
|
+
/** Dispose all transaction-owned model resources; cached resources are borrowed. */
|
|
558
|
+
rollback() {
|
|
559
|
+
if (this.state !== 'open') {
|
|
560
|
+
return;
|
|
561
|
+
}
|
|
562
|
+
for (const staged of this.stagedByUrl.values()) {
|
|
563
|
+
if (staged.source === 'detached') {
|
|
564
|
+
disposeGLTFResources(staged.gltf);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
this.state = 'rolled-back';
|
|
568
|
+
this.stagedByUrl.clear();
|
|
569
|
+
this.urlByKey.clear();
|
|
570
|
+
}
|
|
571
|
+
assertOpen() {
|
|
572
|
+
if (this.state !== 'open') {
|
|
573
|
+
throw new Error(`GLTF load transaction is already ${this.state}`);
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
async function getSettledCachedGLTF(url) {
|
|
578
|
+
var _a;
|
|
579
|
+
const cached = CacheManager.getAsset(url);
|
|
580
|
+
if (cached != null) {
|
|
581
|
+
return cached;
|
|
582
|
+
}
|
|
583
|
+
const inFlight = CacheManager.getPromise(url);
|
|
584
|
+
if (inFlight == null) {
|
|
585
|
+
return null;
|
|
586
|
+
}
|
|
587
|
+
await inFlight;
|
|
588
|
+
return (_a = CacheManager.getAsset(url)) !== null && _a !== void 0 ? _a : null;
|
|
589
|
+
}
|
|
590
|
+
function assertPositiveByteLimit(name, value) {
|
|
591
|
+
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
592
|
+
throw new Error(`${name} must be a positive safe integer`);
|
|
593
|
+
}
|
|
594
|
+
}
|
|
151
595
|
|
|
152
|
-
export { AssetManager, AssetType };
|
|
596
|
+
export { ASSET_MANIFEST_BRAND, AssetLoadError, AssetManager, AssetType, DEFAULT_ASSET_LOAD_TIMEOUT_MS, DEFAULT_MAX_MODEL_PAYLOAD_BYTES, DEFAULT_MAX_TOTAL_MODEL_PAYLOAD_BYTES, GLTFLoadTransaction, RenderableAssetRegistry, defineAssets };
|
|
153
597
|
//# sourceMappingURL=asset-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-manager.js","sources":["../../src/asset/asset-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"asset-manager.js","sources":["../../src/asset/asset-manager.ts"],"sourcesContent":[null],"names":["cloneObject3D"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;AA4DH;;;AAGG;IACS;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,aAA0B;AAC1B,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EANW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AA2BrB;MACa,oBAAoB,GAAkB,MAAM,CACvD,+BAA+B;AAQjC;;;;AAIG;AACG,SAAU,YAAY,CAC1B,MAAS,EAAA;AAET,IAAA,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzE,QAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;IACrD;AACA,IAAA,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAChD,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,wBAAwB,CAAC,EAAE,EAAE,KAAK,CAAC;IACrC;AACA,IAAA,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,EAA6B;AACzD,IAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,EAAE;AACpD,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA,CAAC;AACF,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAChC;AAEA;AACM,MAAO,cAAe,SAAQ,KAAK,CAAA;AACvC,IAAA,WAAA,CACW,OAAe,EACf,GAAW,EACX,KAAc,EAAA;AAEvB,QAAA,KAAK,CACH,CAAA,sBAAA,EAAyB,OAAO,CAAA,QAAA,EAAW,GAAG,CAAA,GAAA,EAAM,YAAY,CAAC,KAAK,CAAC,CAAA,CAAE,CAC1E;QANQ,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,KAAK,GAAL,KAAK;AAKd,QAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB;IAC9B;AACD;AAkBD,MAAM,wBAAwB,GAAkB,MAAM,CAAC,MAAM,CAAC;AAC5D,IAAA,eAAe,EAAE,wBAAwB,CACvC,KAAK,EACL,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC/B;AACD,IAAA,mBAAmB,EAAE,wBAAwB,CAC3C,SAAS,EACT,IAAI,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACrC;AACD,IAAA,oBAAoB,EAAE,wBAAwB,CAC5C,UAAU,EACV,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAC1C;AACD,IAAA,kBAAkB,EAAE,wBAAwB,CAC1C,QAAQ,EACR,IAAI,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAChC;AACF,CAAA,CAAC;AAMF;;;;;;AAMG;MACU,uBAAuB,CAAA;AAGlC,IAAA,WAAA,CACE,QAAA,GAA0B,EAAE,EACX,OAAA,GAAgC,EAAE,EAAA;QAAlC,IAAA,CAAA,OAAO,GAAP,OAAO;QAExB,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,wBAAwB,EAAE,GAAG,QAAQ,EAAE;AAC5D,QAAA,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvD,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AAC1D,gBAAA,MAAM,IAAI,KAAK,CACb,+BAA+B,EAAE,CAAA,wBAAA,CAA0B,CAC5D;YACH;QACF;AACA,QAAA,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9C;AAEA,IAAA,MAAM,OAAO,GAAA;QACX,MAAM,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjD;AAEA,IAAA,GAAG,CAAC,EAAU,EAAA;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI;IAC9B;;AAGA,IAAA,aAAa,CAAC,EAAU,EAAA;QACtB,OAAO,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD;;AAGA,IAAA,iBAAiB,CAAC,EAAU,EAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI;IAC9B;;AAGA,IAAA,IAAI,CAAC,EAAU,EAAA;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/B,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,OAAO,oBAAoB,CAAC,KAAK,CAAC,GAAG,WAAW,GAAG,YAAY;QACjE;QACA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AACjC,YAAA,OAAO,MAAM;QACf;QACA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE;AACpC,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,OAAO,SAAS;IAClB;IAEA,IAAI,GAAA;QACF,MAAM,MAAM,GAA0B,EAAE;AACxC,QAAA,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACvD,YAAA,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC;AACV,oBAAA,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC;oBACjC,EAAE;AACF,oBAAA,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,WAAW,GAAG,YAAY;AAC9D,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;AACvB,iBAAA,CAAC;YACJ;iBAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC;AACV,oBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvB,EAAE;AACF,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;AACvB,iBAAA,CAAC;YACJ;QACF;AACA,QAAA,OAAO,MAAM;IACf;;IAGA,OAAO,GAAA;AACL,QAAA,MAAM,MAAM,GAAyB,IAAI,CAAC,IAAI,EAAE;AAChD,QAAA,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACvD,YAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE;gBACvE,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE;AACF,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;oBACtB,GAAG,EAAE,KAAK,CAAC,GAAG;AACf,iBAAA,CAAC;YACJ;QACF;AACA,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/B,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC;QAClC;QACA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AACjC,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACvD,QAAA,OAAO,IAAI,IAAI,IAAI,GAAG,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;IAClE;IAEA,MAAM,WAAW,CAAgC,EAAU,EAAA;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/B,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,CAAA,CAAA,CAAG,CAAC;QACrD;AACA,QAAA,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,OAAOA,KAAa,CAAC,KAAK,CAAiB;QAC7C;QACA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE;YACpC,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE;AAC3C,gBAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAA,gCAAA,CAAkC,CAAC;YACzE;AACA,YAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC7B,gBAAA,MAAM,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC;YACA,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAe;QAC1D;QACA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AACjC,YAAA,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAA,2BAAA,CAA6B,CAAC;QACrE;AACA,QAAA,MAAM,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;AACrC,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,CAAA,gBAAA,CAAkB,CAAC;QACjE;QACA,OAAO,IAAI,CAAC,KAAqB;IACnC;AACD;AAUD;;;;;;;;AAQG;MACU,YAAY,CAAA;AASvB;;AAEG;IACH,OAAO,IAAI,CACT,QAAuB,EACvB,KAAY,EACZ,UAAwC,EAAE,EAAA;;AAE1C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE;AAC1C,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;QAC5B,IAAI,CAAC,aAAa,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,6BAA6B;AAC3E,QAAA,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC;;AAG1C,QAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAC1C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC5D,QAAA,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5C,QAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IACjD;;IAGA,OAAO,cAAc,CAAC,SAAiB,EAAA;QACrC,sBAAsB,CAAC,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS;IAChC;;IAGA,OAAO,gBAAgB,CAAC,QAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5B,QAAA,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAClD,YAAA,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE;gBAClC;YACF;YACA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;YACnC,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC;QACzC;IACF;;AAGA,IAAA,aAAa,aAAa,CAAC,QAAuB,EAAA;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CACpD,CAAC,KAAK,KACJ,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACrC;AACD,QAAA,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAI;YAC3D,OAAO,MAAM,CAAC,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM;AACvE,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAI;AAC7D,YAAA,OAAO,MAAM,CAAC,QAAQ,KAAK,YAAY;AACzC,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAI;AAC5D,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3D,QAAA,CAAC,CAAC;AACF,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAEnC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAI;AACzC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAC3D,OAAO,CAAC,IAAI,CAAC,CAAA,yBAAA,EAA4B,GAAG,CAAA,CAAE,EAAE,GAAG,CAAC,CACrD;AACH,QAAA,CAAC,CAAC;IACJ;IAEQ,aAAa,eAAe,CAClC,GAAW,EACX,IAAe,EACf,OAAA,GAAkB,GAAG,EAAA;AAErB,QAAA,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC;AACtC,QAAA,IAAI;YACF,QAAQ,IAAI;gBACV,KAAK,SAAS,CAAC,IAAI;AACjB,oBAAA,OAAO,MAAM,eAAe,CAAC,QAAQ,CACnC,GAAG,EACH,OAAO,EACP,IAAI,CAAC,aAAa,CACnB;gBACH,KAAK,SAAS,CAAC,KAAK;oBAClB,OAAO,MAAM,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC;gBAClE,KAAK,SAAS,CAAC,OAAO;oBACpB,OAAO,MAAM,kBAAkB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC;gBACtE,KAAK,SAAS,CAAC,UAAU;oBACvB,OAAO,MAAM,qBAAqB,CAAC,cAAc,CAC/C,GAAG,EACH,IAAI,CAAC,aAAa,CACnB;gBACH,KAAK,SAAS,CAAC,OAAO;AACpB,oBAAA,OAAO,MAAM,kBAAkB,CAAC,WAAW,CACzC,GAAG,EACH,OAAO,EACP,KAAK,EACL,IAAI,CAAC,aAAa,CACnB;AACH,gBAAA;AACE,oBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAA,CAAE,CAAC;;QAExD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,YAAY,cAAc,EAAE;AACnC,gBAAA,MAAM,KAAK;YACb;YACA,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;QAC/C;IACF;;AAGA,IAAA,aAAa,SAAS,CACpB,OAAe,EAAA;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;AAChD,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;IAC7D;AAEA,IAAA,aAAa,YAAY,CAAC,OAAe,EAAA;QACvC,OAAO,IAAI,CAAC,sBAAsB,CAChC,OAAO,EACP,SAAS,CAAC,IAAI,CACE;IACpB;AAEA,IAAA,aAAa,aAAa,CAAC,OAAe,EAAA;QACxC,OAAO,IAAI,CAAC,sBAAsB,CAChC,OAAO,EACP,SAAS,CAAC,KAAK,CACQ;IAC3B;AAEA,IAAA,aAAa,eAAe,CAAC,OAAe,EAAA;QAC1C,OAAO,IAAI,CAAC,sBAAsB,CAChC,OAAO,EACP,SAAS,CAAC,OAAO,CACE;IACvB;AAEA,IAAA,aAAa,kBAAkB,CAAC,OAAe,EAAA;QAC7C,OAAO,IAAI,CAAC,sBAAsB,CAChC,OAAO,EACP,SAAS,CAAC,UAAU,CACD;IACvB;AAEA,IAAA,aAAa,eAAe,CAAC,OAAe,EAAA;QAC1C,OAAO,IAAI,CAAC,sBAAsB,CAChC,OAAO,EACP,SAAS,CAAC,OAAO,CACC;IACtB;AAEQ,IAAA,OAAO,sBAAsB,CACnC,OAAe,EACf,YAAuB,EAAA;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;AAChD,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,OAAA,EAAU,OAAO,CAAA,YAAA,EAAe,KAAK,CAAC,IAAI,CAAA,aAAA,EAAgB,YAAY,CAAA,CAAA,CAAG,CAC1E;QACH;AACA,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;IAC7D;IAEQ,OAAO,oBAAoB,CACjC,OAAe,EAAA;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAA,CAAA,CAAG,CAAC;QACxD;AACA,QAAA,OAAO,KAAK;IACd;AAEA;;;;;;;AAOG;AACH,IAAA,OAAO,QAAQ,CAAC,QAAgB,EAAE,GAAY,EAAA;AAC5C,QAAA,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACtE,QAAA,OAAO,IAAI,CAAC,eAAe,CACzB,GAAG,EACH,SAAS,CAAC,IAAI,EACd,GAAG,aAAH,GAAG,KAAA,MAAA,GAAH,GAAG,GAAI,QAAQ,CACC;IACpB;;AAGA,IAAA,OAAO,yBAAyB,CAC9B,MAAA,GAAoC,EAAE,EAAA;AAEtC,QAAA,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC;IACxC;;;IAKA,OAAO,QAAQ,CAAC,GAAW,EAAA;AACzB,QAAA,OAAO,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC;IACxC;;;AAIA,IAAA,aAAa,SAAS,CAAC,GAAW,EAAE,GAAY,EAAA;AAC9C,QAAA,MAAM,WAAW,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACpE,QAAA,OAAO,IAAI,CAAC,eAAe,CACzB,WAAW,EACX,SAAS,CAAC,KAAK,EACf,GAAG,aAAH,GAAG,KAAA,MAAA,GAAH,GAAG,GAAI,GAAG,CACa;IAC3B;;IAGA,OAAO,QAAQ,CAAC,GAAW,EAAA;AACzB,QAAA,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;IACvC;;AAGA,IAAA,aAAa,WAAW,CAAC,GAAW,EAAE,GAAY,EAAA;AAChD,QAAA,MAAM,WAAW,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACpE,QAAA,OAAO,IAAI,CAAC,eAAe,CACzB,WAAW,EACX,SAAS,CAAC,OAAO,EACjB,GAAG,aAAH,GAAG,KAAA,MAAA,GAAH,GAAG,GAAI,GAAG,CACS;IACvB;;IAGA,OAAO,UAAU,CAAC,GAAW,EAAA;AAC3B,QAAA,OAAO,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC;IAC3C;;IAGA,OAAO,WAAW,CAChB,QAAgB,EAChB,GAAY,EACZ,WAAW,GAAG,KAAK,EAAA;AAEnB,QAAA,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ;QACtE,MAAM,OAAO,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,MAAA,GAAH,GAAG,GAAI,QAAQ;AAC/B,QAAA,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC;QACtC,OAAO,kBAAkB,CAAC,WAAW,CACnC,GAAG,EACH,OAAO,EACP,WAAW,EACX,IAAI,CAAC,aAAa,CACnB,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;YAChB,MAAM,KAAK,YAAY;AACrB,kBAAE;kBACA,IAAI,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;AAC7C,QAAA,CAAC,CAAC;IACJ;;IAGA,OAAO,UAAU,CAAC,QAAgB,EAAA;AAChC,QAAA,OAAO,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC;IAChD;;AAGA,IAAA,aAAa,cAAc,CAAC,GAAW,EAAE,GAAY,EAAA;AACnD,QAAA,MAAM,WAAW,GAAG,GAAG,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACpE,QAAA,OAAO,IAAI,CAAC,eAAe,CACzB,WAAW,EACX,SAAS,CAAC,UAAU,EACpB,GAAG,aAAH,GAAG,KAAA,MAAA,GAAH,GAAG,GAAI,GAAG,CACS;IACvB;AAEA;;;;;;;;AAQG;AACH,IAAA,OAAO,OAAO,CAAC,GAAW,EAAE,OAAwB,EAAA;QAClD,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;IAC9C;;AAhSe,YAAA,CAAA,aAAa,GAAG,6BAA6B;AACpC,YAAA,CAAA,eAAe,GAAG,IAAI,GAAG,EAG9C;AA+RL,SAAS,uBAAuB,CAAC,KAAyB,EAAA;IACxD,OAAO,CAAC,KAA8B,KAAA,IAAA,IAA9B,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAA2B,UAAU,MAAK,IAAI;AAC7D;AAEA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACvE,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAS;IACjD,UAAU;IACV,YAAY;IACZ,MAAM;AACP,CAAA,CAAC;AAEF,SAAS,wBAAwB,CAAC,EAAU,EAAE,KAAc,EAAA;AAC1D,IAAA,IAAI,uBAAuB,CAAC,KAA2B,CAAC,EAAE;AACxD,QAAA,IAAK,KAAkB,CAAC,MAAM,IAAI,IAAI,EAAE;AACtC,YAAA,MAAM,IAAI,KAAK,CACb,+BAA+B,EAAE,CAAA,wBAAA,CAA0B,CAC5D;QACH;QACA;IACF;AACA,IAAA,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtE,QAAA,MAAM,IAAI,KAAK,CACb,yBAAyB,EAAE,CAAA,2CAAA,CAA6C,CACzE;IACH;IACA,MAAM,SAAS,GAAG,KAA4C;AAC9D,IAAA,IAAI,OAAO,SAAS,CAAC,GAAG,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1E,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAA,0BAAA,CAA4B,CAAC;IAC1E;AACA,IAAA,IACE,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;QAClC,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAC1C;AACA,QAAA,MAAM,IAAI,KAAK,CACb,CAAA,sBAAA,EAAyB,EAAE,CAAA,wBAAA,EAA2B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAChF;IACH;AACA,IAAA,IACE,SAAS,CAAC,QAAQ,KAAK,SAAS;QAChC,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EACnD;AACA,QAAA,MAAM,IAAI,KAAK,CACb,CAAA,sBAAA,EAAyB,EAAE,CAAA,4BAAA,EAA+B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAG,CACxF;IACH;AACA,IAAA,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;AACtE,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAA,uBAAA,CAAyB,CAAC;IACvE;AACF;AAEA,SAAS,YAAY,CAAC,KAAc,EAAA;AAClC,IAAA,OAAO,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAC/D;AAEA,SAAS,wBAAwB,CAC/B,IAAY,EACZ,QAAwB,EAAA;IAExB,MAAM,SAAS,GAAG,IAAI,IAAI,CACxB,QAAQ,EACR,IAAI,oBAAoB,CAAC;AACvB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,SAAS,EAAE,IAAI;AAChB,KAAA,CAAC,CACH;AACD,IAAA,SAAS,CAAC,IAAI,GAAG,IAAI;AACrB,IAAA,SAAS,CAAC,QAAQ,CAAC,cAAc,GAAG,WAAW;AAC/C,IAAA,OAAO,SAAS;AAClB;AAEA,SAAS,oBAAoB,CAAC,KAAe,EAAA;AAC3C,IAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAc,KAAK,WAAW;AACtD;AAEA,SAAS,yBAAyB,CAChC,KAAqC,EAAA;IAErC,QACE,KAAK,IAAI,IAAI;AACb,SAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC;AAErE;AAEA,SAAS,kBAAkB,CACzB,SAAmB,EAAA;AAEnB,IAAA,MAAM,QAAQ,GAAGA,KAAa,CAAC,SAAS,CAAC;AACzC,IAAA,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;AACjD,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;AACpB,QAAA,OAAO,SAAS;IAClB;IACA,OAAO;AACL,QAAA,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAA8B;AACrD,QAAA,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAA8B;KACtD;AACH;AAEA;;;AAGG;MACU,mBAAmB,CAAA;AAQ9B,IAAA,WAAA,CAAY,SAAoC,EAAE,EAAA;;AALjC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,GAAG,EAA0B;AAC/C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAAkB;QAC7C,IAAA,CAAA,KAAK,GAAyC,MAAM;QACpD,IAAA,CAAA,iBAAiB,GAAG,CAAC;AAG3B,QAAA,IAAI,CAAC,oBAAoB;AACvB,YAAA,CAAA,EAAA,GAAA,MAAM,CAAC,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,+BAA+B;AAChE,QAAA,IAAI,CAAC,yBAAyB;AAC5B,YAAA,CAAA,EAAA,GAAA,MAAM,CAAC,yBAAyB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,qCAAqC;AAC3E,QAAA,uBAAuB,CAAC,sBAAsB,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAC1E,QAAA,uBAAuB,CACrB,2BAA2B,EAC3B,IAAI,CAAC,yBAAyB,CAC/B;IACH;;AAGA,IAAA,MAAM,KAAK,CAAC,GAAW,EAAE,GAAW,EAAA;QAClC,IAAI,CAAC,UAAU,EAAE;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,GAAG,EAAE;YACxC,MAAM,IAAI,KAAK,CACb,CAAA,kBAAA,EAAqB,GAAG,CAAA,qBAAA,EAAwB,QAAQ,CAAA,CAAA,CAAG,CAC5D;QACH;QACA,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC;AAC9C,YAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,gBAAA,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;YAClE;iBAAO;AACL,gBAAA,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,gBAAgB,CACnD,GAAG,EACH,IAAI,CAAC,oBAAoB,CAC1B;AACD,gBAAA,IACE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY;oBAC5C,IAAI,CAAC,yBAAyB,EAC9B;AACA,oBAAA,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACjC,oBAAA,MAAM,IAAI,KAAK,CACb,CAAA,4BAAA,EACE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAClC,CAAA,sCAAA,EACE,IAAI,CAAC,yBACP,CAAA,MAAA,CAAQ,CACT;gBACH;AACA,gBAAA,MAAM,GAAG;oBACP,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,YAAY,EAAE,MAAM,CAAC,YAAY;AACjC,oBAAA,MAAM,EAAE,UAAU;oBAClB,GAAG;iBACJ;AACD,gBAAA,IAAI,CAAC,iBAAiB,IAAI,MAAM,CAAC,YAAY;YAC/C;YACA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;QACnC;QACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAC3B,QAAA,OAAO,MAAM;IACf;;AAGA,IAAA,OAAO,CAAC,GAAW,EAAE,OAAA,GAA0B,EAAE,EAAA;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI;QACb;QACA,OAAO,OAAO,CAAC;cACX,MAAM,CAAC;cACP,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5C;;AAGA,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,iBAAiB;IAC/B;;IAGA,eAAe,GAAA;QACb,IAAI,CAAC,UAAU,EAAE;QACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAO,MAAM,CAAC,GAAG,CAAC;AACtD,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;AAC7B,gBAAA,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE;oBAC1B,MAAM,IAAI,KAAK,CACb,CAAA,cAAA,EAAiB,MAAM,CAAC,GAAG,CAAA,mCAAA,CAAqC,CACjE;gBACH;YACF;AAAO,iBAAA,IAAI,MAAM,IAAI,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBAChE,MAAM,IAAI,KAAK,CACb,CAAA,OAAA,EAAU,MAAM,CAAC,GAAG,CAAA,oDAAA,CAAsD,CAC3E;YACH;QACF;IACF;;IAGA,MAAM,GAAA;QACJ,IAAI,CAAC,eAAe,EAAE;QACtB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;AAC9C,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;gBAChC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;YAChD;QACF;QACA,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACtC,YAAA,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;QACpC;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,WAAW;IAC1B;;IAGA,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;YACzB;QACF;QACA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;AAC9C,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;AAChC,gBAAA,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;YACnC;QACF;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,aAAa;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;IACvB;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,CAAA,iCAAA,EAAoC,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;QACnE;IACF;AACD;AAED,eAAe,oBAAoB,CAAC,GAAW,EAAA;;IAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAO,GAAG,CAAC;AAC/C,IAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,QAAA,OAAO,MAAM;IACf;IACA,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAO,GAAG,CAAC;AACnD,IAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpB,QAAA,OAAO,IAAI;IACb;AACA,IAAA,MAAM,QAAQ;IACd,OAAO,CAAA,EAAA,GAAA,YAAY,CAAC,QAAQ,CAAO,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;AACjD;AAEA,SAAS,uBAAuB,CAAC,IAAY,EAAE,KAAa,EAAA;AAC1D,IAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AAC9C,QAAA,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAA,gCAAA,CAAkC,CAAC;IAC5D;AACF;;;;"}
|