@viamrobotics/test-widgets 0.0.1
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/LICENSE +201 -0
- package/README.md +65 -0
- package/dist/add-image-to-dataset.d.ts +18 -0
- package/dist/add-image-to-dataset.js +18 -0
- package/dist/assert.d.ts +14 -0
- package/dist/assert.js +21 -0
- package/dist/builtin.js +59 -0
- package/dist/components/angle-unit-toggle.svelte +27 -0
- package/dist/components/angle-unit-toggle.svelte.d.ts +7 -0
- package/dist/components/api-section.svelte +69 -0
- package/dist/components/api-section.svelte.d.ts +13 -0
- package/dist/components/board/pin-section.svelte +28 -0
- package/dist/components/board/pin-section.svelte.d.ts +9 -0
- package/dist/components/connection-status.svelte +87 -0
- package/dist/components/connection-status.svelte.d.ts +14 -0
- package/dist/components/content-rect.svelte +21 -0
- package/dist/components/content-rect.svelte.d.ts +9 -0
- package/dist/components/copy-button.svelte +37 -0
- package/dist/components/copy-button.svelte.d.ts +9 -0
- package/dist/components/error.svelte +25 -0
- package/dist/components/error.svelte.d.ts +8 -0
- package/dist/components/image-annotations/annotation-edit-utils.d.ts +21 -0
- package/dist/components/image-annotations/annotation-edit-utils.js +183 -0
- package/dist/components/image-annotations/bounding-box-labeler.svelte +521 -0
- package/dist/components/image-annotations/bounding-box-labeler.svelte.d.ts +51 -0
- package/dist/components/image-annotations/bounding-box-types.d.ts +29 -0
- package/dist/components/image-annotations/bounding-box-types.js +17 -0
- package/dist/components/image-annotations/bounding-box.svelte +230 -0
- package/dist/components/image-annotations/bounding-box.svelte.d.ts +44 -0
- package/dist/components/image-annotations/get-image-size.d.ts +7 -0
- package/dist/components/image-annotations/get-image-size.js +29 -0
- package/dist/components/image-annotations/labeler-constants.d.ts +4 -0
- package/dist/components/image-annotations/labeler-constants.js +4 -0
- package/dist/components/image-annotations/resize-corner.svelte +47 -0
- package/dist/components/image-annotations/resize-corner.svelte.d.ts +9 -0
- package/dist/components/image-annotations/resize-edge.svelte +51 -0
- package/dist/components/image-annotations/resize-edge.svelte.d.ts +9 -0
- package/dist/components/image-annotations/resize-handle-props.d.ts +60 -0
- package/dist/components/image-annotations/resize-handle-props.js +66 -0
- package/dist/components/image-annotations/resize-handles.svelte +53 -0
- package/dist/components/image-annotations/resize-handles.svelte.d.ts +8 -0
- package/dist/components/index.d.ts +57 -0
- package/dist/components/index.js +56 -0
- package/dist/components/is-moving.svelte +66 -0
- package/dist/components/is-moving.svelte.d.ts +12 -0
- package/dist/components/maplibre/controls/center.svelte +41 -0
- package/dist/components/maplibre/controls/center.svelte.d.ts +19 -0
- package/dist/components/maplibre/controls/follow.svelte +65 -0
- package/dist/components/maplibre/controls/follow.svelte.d.ts +11 -0
- package/dist/components/maplibre/controls/navigation.svelte +57 -0
- package/dist/components/maplibre/controls/navigation.svelte.d.ts +23 -0
- package/dist/components/maplibre/controls/satellite.svelte +31 -0
- package/dist/components/maplibre/controls/satellite.svelte.d.ts +19 -0
- package/dist/components/maplibre/directional-marker.svelte +34 -0
- package/dist/components/maplibre/directional-marker.svelte.d.ts +13 -0
- package/dist/components/maplibre/hooks.d.ts +38 -0
- package/dist/components/maplibre/hooks.js +45 -0
- package/dist/components/maplibre/index.d.ts +13 -0
- package/dist/components/maplibre/index.js +13 -0
- package/dist/components/maplibre/index.svelte +232 -0
- package/dist/components/maplibre/index.svelte.d.ts +75 -0
- package/dist/components/maplibre/lnglat-input.svelte +54 -0
- package/dist/components/maplibre/lnglat-input.svelte.d.ts +17 -0
- package/dist/components/maplibre/marker.svelte +60 -0
- package/dist/components/maplibre/marker.svelte.d.ts +29 -0
- package/dist/components/maplibre/math.d.ts +12 -0
- package/dist/components/maplibre/math.js +18 -0
- package/dist/components/maplibre/plugins/google-maps.d.ts +1 -0
- package/dist/components/maplibre/plugins/google-maps.js +74 -0
- package/dist/components/maplibre/plugins/raycast.d.ts +10 -0
- package/dist/components/maplibre/plugins/raycast.js +29 -0
- package/dist/components/maplibre/plugins/three.svelte.d.ts +21 -0
- package/dist/components/maplibre/plugins/three.svelte.js +73 -0
- package/dist/components/maplibre/style.d.ts +4 -0
- package/dist/components/maplibre/style.js +88 -0
- package/dist/components/maplibre/types.d.ts +14 -0
- package/dist/components/maplibre/types.js +19 -0
- package/dist/components/maplibre/zoom.d.ts +1 -0
- package/dist/components/maplibre/zoom.js +1 -0
- package/dist/components/mutation-section.svelte +76 -0
- package/dist/components/mutation-section.svelte.d.ts +14 -0
- package/dist/components/mutation-view.svelte +29 -0
- package/dist/components/mutation-view.svelte.d.ts +10 -0
- package/dist/components/navigation-map/components/draw-tool.svelte +139 -0
- package/dist/components/navigation-map/components/draw-tool.svelte.d.ts +13 -0
- package/dist/components/navigation-map/components/input/geometry.svelte +123 -0
- package/dist/components/navigation-map/components/input/geometry.svelte.d.ts +9 -0
- package/dist/components/navigation-map/components/input/orientation.svelte +46 -0
- package/dist/components/navigation-map/components/input/orientation.svelte.d.ts +10 -0
- package/dist/components/navigation-map/components/map.svelte +145 -0
- package/dist/components/navigation-map/components/map.svelte.d.ts +20 -0
- package/dist/components/navigation-map/components/nav/index.svelte +64 -0
- package/dist/components/navigation-map/components/nav/index.svelte.d.ts +12 -0
- package/dist/components/navigation-map/components/nav/key.svelte +16 -0
- package/dist/components/navigation-map/components/nav/key.svelte.d.ts +8 -0
- package/dist/components/navigation-map/components/nav/obstacles-legend.svelte +18 -0
- package/dist/components/navigation-map/components/nav/obstacles-legend.svelte.d.ts +26 -0
- package/dist/components/navigation-map/components/nav/obstacles.svelte +206 -0
- package/dist/components/navigation-map/components/nav/obstacles.svelte.d.ts +7 -0
- package/dist/components/navigation-map/components/nav/waypoints.svelte +62 -0
- package/dist/components/navigation-map/components/nav/waypoints.svelte.d.ts +8 -0
- package/dist/components/navigation-map/components/obstacle.svelte +265 -0
- package/dist/components/navigation-map/components/obstacle.svelte.d.ts +10 -0
- package/dist/components/navigation-map/components/path.svelte +30 -0
- package/dist/components/navigation-map/components/path.svelte.d.ts +9 -0
- package/dist/components/navigation-map/components/robot-marker.svelte +18 -0
- package/dist/components/navigation-map/components/robot-marker.svelte.d.ts +8 -0
- package/dist/components/navigation-map/components/scene-layer.svelte +22 -0
- package/dist/components/navigation-map/components/scene-layer.svelte.d.ts +7 -0
- package/dist/components/navigation-map/components/scene.svelte +98 -0
- package/dist/components/navigation-map/components/scene.svelte.d.ts +7 -0
- package/dist/components/navigation-map/components/waypoints.svelte +14 -0
- package/dist/components/navigation-map/components/waypoints.svelte.d.ts +18 -0
- package/dist/components/navigation-map/index.d.ts +2 -0
- package/dist/components/navigation-map/index.js +2 -0
- package/dist/components/navigation-map/index.svelte +99 -0
- package/dist/components/navigation-map/index.svelte.d.ts +51 -0
- package/dist/components/navigation-map/lib/create-geometry.d.ts +2 -0
- package/dist/components/navigation-map/lib/create-geometry.js +31 -0
- package/dist/components/navigation-map/lib/create-name.d.ts +1 -0
- package/dist/components/navigation-map/lib/create-name.js +9 -0
- package/dist/components/navigation-map/lib/create-obstacle.d.ts +3 -0
- package/dist/components/navigation-map/lib/create-obstacle.js +12 -0
- package/dist/components/navigation-map/plugins/compute-bounding.svelte.d.ts +1 -0
- package/dist/components/navigation-map/plugins/compute-bounding.svelte.js +33 -0
- package/dist/components/navigation-map/plugins/interactivity.d.ts +6 -0
- package/dist/components/navigation-map/plugins/interactivity.js +27 -0
- package/dist/components/navigation-map/types.d.ts +37 -0
- package/dist/components/navigation-map/types.js +5 -0
- package/dist/components/navigation-map/use-navigation-map.svelte.d.ts +17 -0
- package/dist/components/navigation-map/use-navigation-map.svelte.js +69 -0
- package/dist/components/progress.svelte +4 -0
- package/dist/components/progress.svelte.d.ts +26 -0
- package/dist/components/queries.svelte +73 -0
- package/dist/components/queries.svelte.d.ts +12 -0
- package/dist/components/query.svelte +21 -0
- package/dist/components/query.svelte.d.ts +10 -0
- package/dist/components/readings-list.svelte +73 -0
- package/dist/components/readings-list.svelte.d.ts +6 -0
- package/dist/components/refetch-controller.svelte +122 -0
- package/dist/components/refetch-controller.svelte.d.ts +12 -0
- package/dist/components/refetch-interval-store.svelte.d.ts +18 -0
- package/dist/components/refetch-interval-store.svelte.js +37 -0
- package/dist/components/resource-icon.svelte +31 -0
- package/dist/components/resource-icon.svelte.d.ts +6 -0
- package/dist/components/section-group.svelte +64 -0
- package/dist/components/section-group.svelte.d.ts +14 -0
- package/dist/components/slam/map2d/base-marker.txt +1 -0
- package/dist/components/slam/map2d/color-map.d.ts +2 -0
- package/dist/components/slam/map2d/color-map.js +55 -0
- package/dist/components/slam/map2d/destination-marker.txt +1 -0
- package/dist/components/slam/map2d/helpers.svelte +29 -0
- package/dist/components/slam/map2d/helpers.svelte.d.ts +22 -0
- package/dist/components/slam/map2d/hooks/use-raycast-click/index.d.ts +9 -0
- package/dist/components/slam/map2d/hooks/use-raycast-click/index.js +36 -0
- package/dist/components/slam/map2d/hooks/use-raycast-click/normalize-device-coordinates.d.ts +2 -0
- package/dist/components/slam/map2d/hooks/use-raycast-click/normalize-device-coordinates.js +9 -0
- package/dist/components/slam/map2d/index.svelte +60 -0
- package/dist/components/slam/map2d/index.svelte.d.ts +37 -0
- package/dist/components/slam/map2d/legend.svelte +67 -0
- package/dist/components/slam/map2d/legend.svelte.d.ts +27 -0
- package/dist/components/slam/map2d/marker.svelte +41 -0
- package/dist/components/slam/map2d/marker.svelte.d.ts +13 -0
- package/dist/components/slam/map2d/motion-path.svelte +65 -0
- package/dist/components/slam/map2d/motion-path.svelte.d.ts +15 -0
- package/dist/components/slam/map2d/points.svelte +60 -0
- package/dist/components/slam/map2d/points.svelte.d.ts +23 -0
- package/dist/components/slam/map2d/render-order.d.ts +7 -0
- package/dist/components/slam/map2d/render-order.js +7 -0
- package/dist/components/slam/map2d/scene.svelte +130 -0
- package/dist/components/slam/map2d/scene.svelte.d.ts +16 -0
- package/dist/components/status-pill.svelte +25 -0
- package/dist/components/status-pill.svelte.d.ts +8 -0
- package/dist/components/stop-button.svelte +21 -0
- package/dist/components/stop-button.svelte.d.ts +7 -0
- package/dist/components/stop.svelte +51 -0
- package/dist/components/stop.svelte.d.ts +9 -0
- package/dist/components/table.svelte +46 -0
- package/dist/components/table.svelte.d.ts +7 -0
- package/dist/components/three/axes-helper.svelte +79 -0
- package/dist/components/three/axes-helper.svelte.d.ts +10 -0
- package/dist/components/three/index.d.ts +1 -0
- package/dist/components/three/index.js +1 -0
- package/dist/components/widgets/arm/arm.svelte +132 -0
- package/dist/components/widgets/arm/arm.svelte.d.ts +7 -0
- package/dist/components/widgets/arm/get-joint-positions.svelte +53 -0
- package/dist/components/widgets/arm/get-joint-positions.svelte.d.ts +6 -0
- package/dist/components/widgets/arm/move-to-joint-positions-widget.svelte +45 -0
- package/dist/components/widgets/arm/move-to-joint-positions-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/arm/move-to-joint-positions.svelte +113 -0
- package/dist/components/widgets/arm/move-to-joint-positions.svelte.d.ts +8 -0
- package/dist/components/widgets/arm/move-to-position-widget.svelte +43 -0
- package/dist/components/widgets/arm/move-to-position-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/arm/move-to-position.svelte +143 -0
- package/dist/components/widgets/arm/move-to-position.svelte.d.ts +9 -0
- package/dist/components/widgets/arm/quick-move-widget.svelte +45 -0
- package/dist/components/widgets/arm/quick-move-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/arm/quick-move.svelte +62 -0
- package/dist/components/widgets/arm/quick-move.svelte.d.ts +8 -0
- package/dist/components/widgets/base/base.svelte +130 -0
- package/dist/components/widgets/base/base.svelte.d.ts +7 -0
- package/dist/components/widgets/base/move-straight-widget.svelte +31 -0
- package/dist/components/widgets/base/move-straight-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/base/move-straight.svelte +78 -0
- package/dist/components/widgets/base/move-straight.svelte.d.ts +6 -0
- package/dist/components/widgets/base/quick-move-widget.svelte +49 -0
- package/dist/components/widgets/base/quick-move-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/base/quick-move.svelte +230 -0
- package/dist/components/widgets/base/quick-move.svelte.d.ts +8 -0
- package/dist/components/widgets/base/set-power-widget.svelte +31 -0
- package/dist/components/widgets/base/set-power-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/base/set-power.svelte +43 -0
- package/dist/components/widgets/base/set-power.svelte.d.ts +7 -0
- package/dist/components/widgets/base/set-velocity-widget.svelte +31 -0
- package/dist/components/widgets/base/set-velocity-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/base/set-velocity.svelte +41 -0
- package/dist/components/widgets/base/set-velocity.svelte.d.ts +7 -0
- package/dist/components/widgets/base/spin-widget.svelte +31 -0
- package/dist/components/widgets/base/spin-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/base/spin.svelte +77 -0
- package/dist/components/widgets/base/spin.svelte.d.ts +6 -0
- package/dist/components/widgets/base/vec3-builder.svelte +144 -0
- package/dist/components/widgets/base/vec3-builder.svelte.d.ts +13 -0
- package/dist/components/widgets/board/analog-read-wrapper.svelte +42 -0
- package/dist/components/widgets/board/analog-read-wrapper.svelte.d.ts +9 -0
- package/dist/components/widgets/board/analog-read.svelte +55 -0
- package/dist/components/widgets/board/analog-read.svelte.d.ts +7 -0
- package/dist/components/widgets/board/analog-write-wrapper.svelte +33 -0
- package/dist/components/widgets/board/analog-write-wrapper.svelte.d.ts +9 -0
- package/dist/components/widgets/board/analog-write.svelte +44 -0
- package/dist/components/widgets/board/analog-write.svelte.d.ts +6 -0
- package/dist/components/widgets/board/board.d.ts +16 -0
- package/dist/components/widgets/board/board.js +8 -0
- package/dist/components/widgets/board/board.svelte +23 -0
- package/dist/components/widgets/board/board.svelte.d.ts +7 -0
- package/dist/components/widgets/board/confirming-button.svelte +42 -0
- package/dist/components/widgets/board/confirming-button.svelte.d.ts +8 -0
- package/dist/components/widgets/board/gpio-read-wrapper.svelte +68 -0
- package/dist/components/widgets/board/gpio-read-wrapper.svelte.d.ts +9 -0
- package/dist/components/widgets/board/gpio-read.svelte +134 -0
- package/dist/components/widgets/board/gpio-read.svelte.d.ts +11 -0
- package/dist/components/widgets/board/gpio-write-wrapper.svelte +55 -0
- package/dist/components/widgets/board/gpio-write-wrapper.svelte.d.ts +9 -0
- package/dist/components/widgets/board/gpio-write.svelte +106 -0
- package/dist/components/widgets/board/gpio-write.svelte.d.ts +8 -0
- package/dist/components/widgets/board/pin-section.svelte +28 -0
- package/dist/components/widgets/board/pin-section.svelte.d.ts +9 -0
- package/dist/components/widgets/board/pin-selector.svelte +69 -0
- package/dist/components/widgets/board/pin-selector.svelte.d.ts +8 -0
- package/dist/components/widgets/board/read-write-pins-widget.svelte +15 -0
- package/dist/components/widgets/board/read-write-pins-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/board/read-write-pins.svelte +72 -0
- package/dist/components/widgets/board/read-write-pins.svelte.d.ts +7 -0
- package/dist/components/widgets/button/button.svelte +23 -0
- package/dist/components/widgets/button/button.svelte.d.ts +7 -0
- package/dist/components/widgets/button/push.svelte +32 -0
- package/dist/components/widgets/button/push.svelte.d.ts +7 -0
- package/dist/components/widgets/camera/camera.svelte +202 -0
- package/dist/components/widgets/camera/camera.svelte.d.ts +7 -0
- package/dist/components/widgets/camera/export-screenshot.svelte +68 -0
- package/dist/components/widgets/camera/export-screenshot.svelte.d.ts +9 -0
- package/dist/components/widgets/camera/live-or-polling-video.svelte +419 -0
- package/dist/components/widgets/camera/live-or-polling-video.svelte.d.ts +18 -0
- package/dist/components/widgets/camera/picture-in-picture-button.svelte +81 -0
- package/dist/components/widgets/camera/picture-in-picture-button.svelte.d.ts +9 -0
- package/dist/components/widgets/discovery/component-preview.d.ts +9 -0
- package/dist/components/widgets/discovery/component-preview.js +1 -0
- package/dist/components/widgets/discovery/discovery.svelte +155 -0
- package/dist/components/widgets/discovery/discovery.svelte.d.ts +13 -0
- package/dist/components/widgets/discovery/resources-list.svelte +109 -0
- package/dist/components/widgets/discovery/resources-list.svelte.d.ts +13 -0
- package/dist/components/widgets/discovery/transform-component-config.d.ts +17 -0
- package/dist/components/widgets/discovery/transform-component-config.js +32 -0
- package/dist/components/widgets/do-command/do-command.svelte +101 -0
- package/dist/components/widgets/do-command/do-command.svelte.d.ts +8 -0
- package/dist/components/widgets/encoder/encoder.svelte +117 -0
- package/dist/components/widgets/encoder/encoder.svelte.d.ts +7 -0
- package/dist/components/widgets/encoder/position.svelte +26 -0
- package/dist/components/widgets/encoder/position.svelte.d.ts +8 -0
- package/dist/components/widgets/gantry/gantry.svelte +135 -0
- package/dist/components/widgets/gantry/gantry.svelte.d.ts +7 -0
- package/dist/components/widgets/gantry/home.svelte +33 -0
- package/dist/components/widgets/gantry/home.svelte.d.ts +7 -0
- package/dist/components/widgets/gantry/match-array-length.d.ts +1 -0
- package/dist/components/widgets/gantry/match-array-length.js +13 -0
- package/dist/components/widgets/gantry/move-to-position-widget.svelte +43 -0
- package/dist/components/widgets/gantry/move-to-position-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/gantry/move-to-position.svelte +121 -0
- package/dist/components/widgets/gantry/move-to-position.svelte.d.ts +8 -0
- package/dist/components/widgets/gantry/position-and-lengths.svelte +32 -0
- package/dist/components/widgets/gantry/position-and-lengths.svelte.d.ts +7 -0
- package/dist/components/widgets/gantry/quick-move-widget.svelte +47 -0
- package/dist/components/widgets/gantry/quick-move-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/gantry/quick-move.svelte +69 -0
- package/dist/components/widgets/gantry/quick-move.svelte.d.ts +8 -0
- package/dist/components/widgets/generic/generic.svelte +31 -0
- package/dist/components/widgets/generic/generic.svelte.d.ts +8 -0
- package/dist/components/widgets/gripper/closed-gripper-svg.svelte +13 -0
- package/dist/components/widgets/gripper/closed-gripper-svg.svelte.d.ts +26 -0
- package/dist/components/widgets/gripper/grab.svelte +37 -0
- package/dist/components/widgets/gripper/grab.svelte.d.ts +7 -0
- package/dist/components/widgets/gripper/gripper.svelte +69 -0
- package/dist/components/widgets/gripper/gripper.svelte.d.ts +7 -0
- package/dist/components/widgets/gripper/open-gripper-svg.svelte +13 -0
- package/dist/components/widgets/gripper/open-gripper-svg.svelte.d.ts +26 -0
- package/dist/components/widgets/gripper/open.svelte +37 -0
- package/dist/components/widgets/gripper/open.svelte.d.ts +7 -0
- package/dist/components/widgets/input-controller/input-controller.svelte +74 -0
- package/dist/components/widgets/input-controller/input-controller.svelte.d.ts +7 -0
- package/dist/components/widgets/input-controller/standard-gamepad-event.d.ts +8 -0
- package/dist/components/widgets/input-controller/standard-gamepad-event.js +1 -0
- package/dist/components/widgets/input-controller/webgamepad-scene.svelte +22 -0
- package/dist/components/widgets/input-controller/webgamepad-scene.svelte.d.ts +8 -0
- package/dist/components/widgets/input-controller/webgamepad.svelte +142 -0
- package/dist/components/widgets/input-controller/webgamepad.svelte.d.ts +8 -0
- package/dist/components/widgets/ml-model-service/ml-model-service.svelte +65 -0
- package/dist/components/widgets/ml-model-service/ml-model-service.svelte.d.ts +7 -0
- package/dist/components/widgets/ml-model-service/results-table.svelte +49 -0
- package/dist/components/widgets/ml-model-service/results-table.svelte.d.ts +7 -0
- package/dist/components/widgets/ml-model-service/tensor-row.svelte +33 -0
- package/dist/components/widgets/ml-model-service/tensor-row.svelte.d.ts +9 -0
- package/dist/components/widgets/motor/go-for-view.svelte +31 -0
- package/dist/components/widgets/motor/go-for-view.svelte.d.ts +7 -0
- package/dist/components/widgets/motor/go-for.svelte +79 -0
- package/dist/components/widgets/motor/go-for.svelte.d.ts +6 -0
- package/dist/components/widgets/motor/go-to-view.svelte +31 -0
- package/dist/components/widgets/motor/go-to-view.svelte.d.ts +7 -0
- package/dist/components/widgets/motor/go-to.svelte +78 -0
- package/dist/components/widgets/motor/go-to.svelte.d.ts +6 -0
- package/dist/components/widgets/motor/motor.svelte +179 -0
- package/dist/components/widgets/motor/motor.svelte.d.ts +7 -0
- package/dist/components/widgets/motor/quick-move-widget.svelte +31 -0
- package/dist/components/widgets/motor/quick-move-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/motor/quick-move.svelte +81 -0
- package/dist/components/widgets/motor/quick-move.svelte.d.ts +6 -0
- package/dist/components/widgets/motor/set-power-widget.svelte +29 -0
- package/dist/components/widgets/motor/set-power-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/motor/set-power.svelte +54 -0
- package/dist/components/widgets/motor/set-power.svelte.d.ts +6 -0
- package/dist/components/widgets/motor/set-rpm-widget.svelte +29 -0
- package/dist/components/widgets/motor/set-rpm-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/motor/set-rpm.svelte +52 -0
- package/dist/components/widgets/motor/set-rpm.svelte.d.ts +6 -0
- package/dist/components/widgets/movement-sensor/accuracy.svelte +71 -0
- package/dist/components/widgets/movement-sensor/accuracy.svelte.d.ts +7 -0
- package/dist/components/widgets/movement-sensor/compass-heading.svelte +44 -0
- package/dist/components/widgets/movement-sensor/compass-heading.svelte.d.ts +6 -0
- package/dist/components/widgets/movement-sensor/map.svelte +61 -0
- package/dist/components/widgets/movement-sensor/map.svelte.d.ts +8 -0
- package/dist/components/widgets/movement-sensor/movement-sensor.svelte +255 -0
- package/dist/components/widgets/movement-sensor/movement-sensor.svelte.d.ts +7 -0
- package/dist/components/widgets/movement-sensor/orientation.svelte +43 -0
- package/dist/components/widgets/movement-sensor/orientation.svelte.d.ts +7 -0
- package/dist/components/widgets/movement-sensor/position.svelte +32 -0
- package/dist/components/widgets/movement-sensor/position.svelte.d.ts +7 -0
- package/dist/components/widgets/movement-sensor/safe-read-coordinate.d.ts +1 -0
- package/dist/components/widgets/movement-sensor/safe-read-coordinate.js +6 -0
- package/dist/components/widgets/movement-sensor/vector3.svelte +36 -0
- package/dist/components/widgets/movement-sensor/vector3.svelte.d.ts +7 -0
- package/dist/components/widgets/navigation/directional-marker.svelte +26 -0
- package/dist/components/widgets/navigation/directional-marker.svelte.d.ts +8 -0
- package/dist/components/widgets/navigation/navigation.svelte +236 -0
- package/dist/components/widgets/navigation/navigation.svelte.d.ts +7 -0
- package/dist/components/widgets/navigation/obstacles/__tests__/__fixtures__/obstacles.d.ts +2 -0
- package/dist/components/widgets/navigation/obstacles/__tests__/__fixtures__/obstacles.js +56 -0
- package/dist/components/widgets/navigation/obstacles/color.d.ts +1 -0
- package/dist/components/widgets/navigation/obstacles/color.js +10 -0
- package/dist/components/widgets/navigation/obstacles/legend.svelte +117 -0
- package/dist/components/widgets/navigation/obstacles/legend.svelte.d.ts +12 -0
- package/dist/components/widgets/navigation/obstacles/meshes.svelte +104 -0
- package/dist/components/widgets/navigation/obstacles/meshes.svelte.d.ts +10 -0
- package/dist/components/widgets/navigation/obstacles/obstacles.svelte +30 -0
- package/dist/components/widgets/navigation/obstacles/obstacles.svelte.d.ts +10 -0
- package/dist/components/widgets/navigation/obstacles/scene.svelte +59 -0
- package/dist/components/widgets/navigation/obstacles/scene.svelte.d.ts +7 -0
- package/dist/components/widgets/navigation/waypoints/__tests__/__fixtures__/waypoints.d.ts +7 -0
- package/dist/components/widgets/navigation/waypoints/__tests__/__fixtures__/waypoints.js +23 -0
- package/dist/components/widgets/navigation/waypoints/legend.svelte +67 -0
- package/dist/components/widgets/navigation/waypoints/legend.svelte.d.ts +13 -0
- package/dist/components/widgets/navigation/waypoints/waypoints.svelte +34 -0
- package/dist/components/widgets/navigation/waypoints/waypoints.svelte.d.ts +11 -0
- package/dist/components/widgets/operations-and-sessions/operations-and-sessions.svelte +115 -0
- package/dist/components/widgets/operations-and-sessions/operations-and-sessions.svelte.d.ts +6 -0
- package/dist/components/widgets/operations-and-sessions/operations-table.svelte +82 -0
- package/dist/components/widgets/operations-and-sessions/operations-table.svelte.d.ts +8 -0
- package/dist/components/widgets/operations-and-sessions/rtt-pill.svelte +26 -0
- package/dist/components/widgets/operations-and-sessions/rtt-pill.svelte.d.ts +6 -0
- package/dist/components/widgets/operations-and-sessions/sessions-table.svelte +78 -0
- package/dist/components/widgets/operations-and-sessions/sessions-table.svelte.d.ts +8 -0
- package/dist/components/widgets/pcd/__tests__/__fixtures__/pcd.d.ts +1 -0
- package/dist/components/widgets/pcd/__tests__/__fixtures__/pcd.js +12 -0
- package/dist/components/widgets/pcd/download.svelte +25 -0
- package/dist/components/widgets/pcd/download.svelte.d.ts +6 -0
- package/dist/components/widgets/pcd/inputs.svelte +70 -0
- package/dist/components/widgets/pcd/inputs.svelte.d.ts +11 -0
- package/dist/components/widgets/pcd/pcd-widget.svelte +45 -0
- package/dist/components/widgets/pcd/pcd-widget.svelte.d.ts +6 -0
- package/dist/components/widgets/pcd/point-label.svelte +76 -0
- package/dist/components/widgets/pcd/point-label.svelte.d.ts +7 -0
- package/dist/components/widgets/pcd/points.svelte +35 -0
- package/dist/components/widgets/pcd/points.svelte.d.ts +7 -0
- package/dist/components/widgets/pcd/scene.svelte +62 -0
- package/dist/components/widgets/pcd/scene.svelte.d.ts +9 -0
- package/dist/components/widgets/power-sensor/current-reading.svelte +18 -0
- package/dist/components/widgets/power-sensor/current-reading.svelte.d.ts +6 -0
- package/dist/components/widgets/power-sensor/power-reading.svelte +14 -0
- package/dist/components/widgets/power-sensor/power-reading.svelte.d.ts +6 -0
- package/dist/components/widgets/power-sensor/power-sensor.svelte +134 -0
- package/dist/components/widgets/power-sensor/power-sensor.svelte.d.ts +7 -0
- package/dist/components/widgets/power-sensor/voltage-reading.svelte +18 -0
- package/dist/components/widgets/power-sensor/voltage-reading.svelte.d.ts +6 -0
- package/dist/components/widgets/sensor/sensor.svelte +59 -0
- package/dist/components/widgets/sensor/sensor.svelte.d.ts +7 -0
- package/dist/components/widgets/servo/move-widget.svelte +44 -0
- package/dist/components/widgets/servo/move-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/servo/move.svelte +102 -0
- package/dist/components/widgets/servo/move.svelte.d.ts +8 -0
- package/dist/components/widgets/servo/quick-move-widget.svelte +44 -0
- package/dist/components/widgets/servo/quick-move-widget.svelte.d.ts +7 -0
- package/dist/components/widgets/servo/quick-move.svelte +34 -0
- package/dist/components/widgets/servo/quick-move.svelte.d.ts +8 -0
- package/dist/components/widgets/servo/servo.svelte +111 -0
- package/dist/components/widgets/servo/servo.svelte.d.ts +7 -0
- package/dist/components/widgets/slam/__fixtures__/position.d.ts +3 -0
- package/dist/components/widgets/slam/__fixtures__/position.js +13 -0
- package/dist/components/widgets/slam/move-on-map.svelte +101 -0
- package/dist/components/widgets/slam/move-on-map.svelte.d.ts +11 -0
- package/dist/components/widgets/slam/pose.d.ts +2 -0
- package/dist/components/widgets/slam/pose.js +1 -0
- package/dist/components/widgets/slam/position.svelte +77 -0
- package/dist/components/widgets/slam/position.svelte.d.ts +7 -0
- package/dist/components/widgets/slam/slam.svelte +267 -0
- package/dist/components/widgets/slam/slam.svelte.d.ts +7 -0
- package/dist/components/widgets/switch/position-view.svelte +59 -0
- package/dist/components/widgets/switch/position-view.svelte.d.ts +7 -0
- package/dist/components/widgets/switch/position.svelte +43 -0
- package/dist/components/widgets/switch/position.svelte.d.ts +10 -0
- package/dist/components/widgets/switch/switch.svelte +62 -0
- package/dist/components/widgets/switch/switch.svelte.d.ts +7 -0
- package/dist/components/widgets/vision-service/__tests__/__fixtures__/classifications.d.ts +10 -0
- package/dist/components/widgets/vision-service/__tests__/__fixtures__/classifications.js +5 -0
- package/dist/components/widgets/vision-service/__tests__/__fixtures__/detections.d.ts +2 -0
- package/dist/components/widgets/vision-service/__tests__/__fixtures__/detections.js +9 -0
- package/dist/components/widgets/vision-service/color.d.ts +7 -0
- package/dist/components/widgets/vision-service/color.js +53 -0
- package/dist/components/widgets/vision-service/context.svelte.d.ts +24 -0
- package/dist/components/widgets/vision-service/context.svelte.js +50 -0
- package/dist/components/widgets/vision-service/detection.svelte +101 -0
- package/dist/components/widgets/vision-service/detection.svelte.d.ts +8 -0
- package/dist/components/widgets/vision-service/geometry-details.svelte +116 -0
- package/dist/components/widgets/vision-service/geometry-details.svelte.d.ts +7 -0
- package/dist/components/widgets/vision-service/get-image-size.d.ts +14 -0
- package/dist/components/widgets/vision-service/get-image-size.js +28 -0
- package/dist/components/widgets/vision-service/image.svelte +133 -0
- package/dist/components/widgets/vision-service/image.svelte.d.ts +15 -0
- package/dist/components/widgets/vision-service/legend.svelte +135 -0
- package/dist/components/widgets/vision-service/legend.svelte.d.ts +9 -0
- package/dist/components/widgets/vision-service/object-point-cloud-scene.svelte +74 -0
- package/dist/components/widgets/vision-service/object-point-cloud-scene.svelte.d.ts +7 -0
- package/dist/components/widgets/vision-service/object-point-clouds.svelte +91 -0
- package/dist/components/widgets/vision-service/object-point-clouds.svelte.d.ts +7 -0
- package/dist/components/widgets/vision-service/scene.svelte +50 -0
- package/dist/components/widgets/vision-service/scene.svelte.d.ts +7 -0
- package/dist/components/widgets/vision-service/vision-service.svelte +225 -0
- package/dist/components/widgets/vision-service/vision-service.svelte.d.ts +7 -0
- package/dist/event-handlers.d.ts +1 -0
- package/dist/event-handlers.js +5 -0
- package/dist/format.d.ts +13 -0
- package/dist/format.js +31 -0
- package/dist/fps.svelte.d.ts +4 -0
- package/dist/fps.svelte.js +22 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/resource.js +26 -0
- package/dist/scroll-into-view.d.ts +2 -0
- package/dist/scroll-into-view.js +17 -0
- package/dist/sort.d.ts +21 -0
- package/dist/sort.js +31 -0
- package/package.json +117 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
|
|
4
|
+
Creates a maplibre-gl map that will fill its parent.
|
|
5
|
+
|
|
6
|
+
Children will mount once the map is fully loaded.
|
|
7
|
+
|
|
8
|
+
```svelte
|
|
9
|
+
<MapLibre mapProvider="open-street">
|
|
10
|
+
<MapLibreMarker lngLat={{ lng: 0, lat: 0 }} />
|
|
11
|
+
</MapLibre>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
```svelte
|
|
15
|
+
<MapLibre mapProvider="google-maps" mapProviderKey="mycoolkey">
|
|
16
|
+
<MapLibreMarker lngLat={{ lng: 0, lat: 0 }} />
|
|
17
|
+
</MapLibre>
|
|
18
|
+
```
|
|
19
|
+
-->
|
|
20
|
+
|
|
21
|
+
<script lang="ts">
|
|
22
|
+
import 'maplibre-gl/dist/maplibre-gl.css'
|
|
23
|
+
|
|
24
|
+
import type { ClassValue, HTMLAttributes } from 'svelte/elements'
|
|
25
|
+
|
|
26
|
+
import { LngLat, Map, type MapOptions } from 'maplibre-gl'
|
|
27
|
+
import { onMount, type Snippet, tick } from 'svelte'
|
|
28
|
+
|
|
29
|
+
import { provideMapContext } from './hooks'
|
|
30
|
+
import { getStyleSpecification } from './style'
|
|
31
|
+
import { type MapProvider, MapProviders } from './types'
|
|
32
|
+
import { DEFAULT_MAX_ZOOM } from './zoom'
|
|
33
|
+
|
|
34
|
+
interface Props extends HTMLAttributes<HTMLDivElement> {
|
|
35
|
+
/** The minimum camera pitch. */
|
|
36
|
+
minPitch?: number
|
|
37
|
+
/** The maximum camera pitch. */
|
|
38
|
+
maxPitch?: number
|
|
39
|
+
/** The map zoom. */
|
|
40
|
+
zoom?: number
|
|
41
|
+
/** The maximum zoom level of the map (0-24). */
|
|
42
|
+
minZoom?: number
|
|
43
|
+
/** The maximum zoom level of the map (0-24). */
|
|
44
|
+
maxZoom?: number
|
|
45
|
+
/** The class name to apply to the map container. */
|
|
46
|
+
class?: ClassValue
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The map center.
|
|
50
|
+
*
|
|
51
|
+
* @default { lng: -73.984421, lat: 40.7718116 }
|
|
52
|
+
* The Viam Robotics office.
|
|
53
|
+
*/
|
|
54
|
+
center?: LngLat
|
|
55
|
+
|
|
56
|
+
/** A binding to the MapLibre Map instance */
|
|
57
|
+
map?: Map
|
|
58
|
+
options?: Partial<MapOptions>
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* The map provider to use.
|
|
62
|
+
*
|
|
63
|
+
* @default 'open-street'
|
|
64
|
+
*/
|
|
65
|
+
mapProvider?: MapProvider
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The API key for the map provider.
|
|
69
|
+
*
|
|
70
|
+
* @default undefined
|
|
71
|
+
*/
|
|
72
|
+
mapProviderKey?: string
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Whether to show the satellite view.
|
|
76
|
+
*
|
|
77
|
+
* @default false
|
|
78
|
+
*/
|
|
79
|
+
satellite?: boolean
|
|
80
|
+
|
|
81
|
+
children?: Snippet
|
|
82
|
+
layer?: Snippet
|
|
83
|
+
|
|
84
|
+
/** Fired after the map has been created. */
|
|
85
|
+
onCreate?: (map: Map) => void
|
|
86
|
+
/** Fired when the map camera moves. */
|
|
87
|
+
onMove?: (map: Map) => void
|
|
88
|
+
/** Fired when the map resizes. */
|
|
89
|
+
onResize?: (map: Map) => void
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
let {
|
|
93
|
+
minPitch = 0,
|
|
94
|
+
maxPitch = 60,
|
|
95
|
+
zoom = 9,
|
|
96
|
+
minZoom = 0,
|
|
97
|
+
maxZoom = DEFAULT_MAX_ZOOM,
|
|
98
|
+
class: className,
|
|
99
|
+
center = new LngLat(-73.984_421, 40.771_811_6),
|
|
100
|
+
map = $bindable(),
|
|
101
|
+
options,
|
|
102
|
+
mapProvider = MapProviders.openStreet,
|
|
103
|
+
mapProviderKey,
|
|
104
|
+
satellite = false,
|
|
105
|
+
onCreate,
|
|
106
|
+
onMove,
|
|
107
|
+
onResize,
|
|
108
|
+
children,
|
|
109
|
+
layer,
|
|
110
|
+
...rest
|
|
111
|
+
}: Props = $props()
|
|
112
|
+
|
|
113
|
+
const context = provideMapContext(center, zoom, maxZoom, mapProvider, mapProviderKey, satellite)
|
|
114
|
+
|
|
115
|
+
let container = $state.raw<HTMLDivElement>()
|
|
116
|
+
let created = $state(false)
|
|
117
|
+
|
|
118
|
+
const setMapSize = () => {
|
|
119
|
+
const canvas = map?.getCanvas()
|
|
120
|
+
context.size.set({
|
|
121
|
+
width: canvas?.clientWidth ?? 0,
|
|
122
|
+
height: canvas?.clientHeight ?? 0,
|
|
123
|
+
})
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const handleCreate = () => {
|
|
127
|
+
if (map === undefined) {
|
|
128
|
+
return
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
created = true
|
|
132
|
+
onCreate?.(map)
|
|
133
|
+
|
|
134
|
+
// Resize the map after any slots have been rendered.
|
|
135
|
+
void tick().then(() => map?.resize())
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const handleMove = () => {
|
|
139
|
+
if (map === undefined) {
|
|
140
|
+
return
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
context.center.set(map.getCenter())
|
|
144
|
+
context.zoom.set(map.getZoom())
|
|
145
|
+
onMove?.(map)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const handleResize = () => {
|
|
149
|
+
if (map === undefined) {
|
|
150
|
+
return
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
setMapSize()
|
|
154
|
+
context.center.set(map.getCenter())
|
|
155
|
+
context.zoom.set(map.getZoom())
|
|
156
|
+
onResize?.(map)
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const updateStyle = async (provider: MapProvider, apiKey?: string) => {
|
|
160
|
+
const style = await getStyleSpecification(provider, apiKey)
|
|
161
|
+
map?.setStyle(style)
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
$effect(() => {
|
|
165
|
+
map?.setMinPitch(minPitch)
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
$effect(() => {
|
|
169
|
+
map?.setMaxPitch(maxPitch)
|
|
170
|
+
})
|
|
171
|
+
|
|
172
|
+
$effect(() => {
|
|
173
|
+
map?.setZoom(zoom)
|
|
174
|
+
})
|
|
175
|
+
|
|
176
|
+
$effect(() => {
|
|
177
|
+
map?.setCenter(center)
|
|
178
|
+
})
|
|
179
|
+
|
|
180
|
+
$effect(() => {
|
|
181
|
+
void updateStyle(mapProvider, mapProviderKey)
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
onMount(() => {
|
|
185
|
+
if (container === undefined) {
|
|
186
|
+
return
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
map = new Map({
|
|
190
|
+
container,
|
|
191
|
+
center,
|
|
192
|
+
zoom,
|
|
193
|
+
minPitch,
|
|
194
|
+
maxPitch,
|
|
195
|
+
minZoom,
|
|
196
|
+
maxZoom,
|
|
197
|
+
...options,
|
|
198
|
+
})
|
|
199
|
+
|
|
200
|
+
context.map.set(map)
|
|
201
|
+
|
|
202
|
+
map.on('move', handleMove)
|
|
203
|
+
map.on('resize', handleResize)
|
|
204
|
+
map.on('style.load', handleCreate)
|
|
205
|
+
|
|
206
|
+
void updateStyle(mapProvider, mapProviderKey)
|
|
207
|
+
|
|
208
|
+
return () => {
|
|
209
|
+
map?.off('move', handleMove)
|
|
210
|
+
map?.off('resize', handleResize)
|
|
211
|
+
map?.off('style.load', handleCreate)
|
|
212
|
+
}
|
|
213
|
+
})
|
|
214
|
+
</script>
|
|
215
|
+
|
|
216
|
+
{#if created}
|
|
217
|
+
{@render children?.()}
|
|
218
|
+
{/if}
|
|
219
|
+
|
|
220
|
+
<div
|
|
221
|
+
class={['h-full', className]}
|
|
222
|
+
{...rest}
|
|
223
|
+
>
|
|
224
|
+
<div
|
|
225
|
+
class="h-full"
|
|
226
|
+
bind:this={container}
|
|
227
|
+
></div>
|
|
228
|
+
|
|
229
|
+
{#if created}
|
|
230
|
+
{@render layer?.()}
|
|
231
|
+
{/if}
|
|
232
|
+
</div>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import 'maplibre-gl/dist/maplibre-gl.css';
|
|
2
|
+
import type { ClassValue, HTMLAttributes } from 'svelte/elements';
|
|
3
|
+
import { LngLat, Map, type MapOptions } from 'maplibre-gl';
|
|
4
|
+
import { type Snippet } from 'svelte';
|
|
5
|
+
import { type MapProvider } from './types';
|
|
6
|
+
interface Props extends HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
/** The minimum camera pitch. */
|
|
8
|
+
minPitch?: number;
|
|
9
|
+
/** The maximum camera pitch. */
|
|
10
|
+
maxPitch?: number;
|
|
11
|
+
/** The map zoom. */
|
|
12
|
+
zoom?: number;
|
|
13
|
+
/** The maximum zoom level of the map (0-24). */
|
|
14
|
+
minZoom?: number;
|
|
15
|
+
/** The maximum zoom level of the map (0-24). */
|
|
16
|
+
maxZoom?: number;
|
|
17
|
+
/** The class name to apply to the map container. */
|
|
18
|
+
class?: ClassValue;
|
|
19
|
+
/**
|
|
20
|
+
* The map center.
|
|
21
|
+
*
|
|
22
|
+
* @default { lng: -73.984421, lat: 40.7718116 }
|
|
23
|
+
* The Viam Robotics office.
|
|
24
|
+
*/
|
|
25
|
+
center?: LngLat;
|
|
26
|
+
/** A binding to the MapLibre Map instance */
|
|
27
|
+
map?: Map;
|
|
28
|
+
options?: Partial<MapOptions>;
|
|
29
|
+
/**
|
|
30
|
+
* The map provider to use.
|
|
31
|
+
*
|
|
32
|
+
* @default 'open-street'
|
|
33
|
+
*/
|
|
34
|
+
mapProvider?: MapProvider;
|
|
35
|
+
/**
|
|
36
|
+
* The API key for the map provider.
|
|
37
|
+
*
|
|
38
|
+
* @default undefined
|
|
39
|
+
*/
|
|
40
|
+
mapProviderKey?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Whether to show the satellite view.
|
|
43
|
+
*
|
|
44
|
+
* @default false
|
|
45
|
+
*/
|
|
46
|
+
satellite?: boolean;
|
|
47
|
+
children?: Snippet;
|
|
48
|
+
layer?: Snippet;
|
|
49
|
+
/** Fired after the map has been created. */
|
|
50
|
+
onCreate?: (map: Map) => void;
|
|
51
|
+
/** Fired when the map camera moves. */
|
|
52
|
+
onMove?: (map: Map) => void;
|
|
53
|
+
/** Fired when the map resizes. */
|
|
54
|
+
onResize?: (map: Map) => void;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a maplibre-gl map that will fill its parent.
|
|
58
|
+
*
|
|
59
|
+
* Children will mount once the map is fully loaded.
|
|
60
|
+
*
|
|
61
|
+
* ```svelte
|
|
62
|
+
* <MapLibre mapProvider="open-street">
|
|
63
|
+
* <MapLibreMarker lngLat={{ lng: 0, lat: 0 }} />
|
|
64
|
+
* </MapLibre>
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* ```svelte
|
|
68
|
+
* <MapLibre mapProvider="google-maps" mapProviderKey="mycoolkey">
|
|
69
|
+
* <MapLibreMarker lngLat={{ lng: 0, lat: 0 }} />
|
|
70
|
+
* </MapLibre>
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
declare const Index: import("svelte").Component<Props, {}, "map">;
|
|
74
|
+
type Index = ReturnType<typeof Index>;
|
|
75
|
+
export default Index;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte'
|
|
3
|
+
|
|
4
|
+
import { SliderInput } from '@viamrobotics/prime-core'
|
|
5
|
+
import { LngLat } from 'maplibre-gl'
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
/** The label for the Lat,Lng, pair. Defaults to Latitude, Longitude. */
|
|
9
|
+
label?: string
|
|
10
|
+
/** Whether the inputs are readonly. */
|
|
11
|
+
readonly?: boolean
|
|
12
|
+
/** The longitude value. */
|
|
13
|
+
lng?: number
|
|
14
|
+
/** The latitude value. */
|
|
15
|
+
lat?: number
|
|
16
|
+
children?: Snippet
|
|
17
|
+
oninput: (lngLat: LngLat) => void
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const { label, readonly = false, lng, lat, oninput, children }: Props = $props()
|
|
21
|
+
|
|
22
|
+
let latInput = $state.raw<HTMLInputElement>()
|
|
23
|
+
let lngInput = $state.raw<HTMLInputElement>()
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<div class="flex items-end gap-1.5">
|
|
27
|
+
<SliderInput
|
|
28
|
+
bind:input={latInput}
|
|
29
|
+
type="number"
|
|
30
|
+
label={label ?? 'Latitude'}
|
|
31
|
+
placeholder="0"
|
|
32
|
+
incrementor={readonly ? undefined : 'slider'}
|
|
33
|
+
value={lat}
|
|
34
|
+
step={1}
|
|
35
|
+
class="grow"
|
|
36
|
+
on:change={() => oninput(new LngLat(lng ?? 0, latInput?.valueAsNumber ?? 0))}
|
|
37
|
+
on:input={() => oninput(new LngLat(lng ?? 0, latInput?.valueAsNumber ?? 0))}
|
|
38
|
+
{readonly}
|
|
39
|
+
/>
|
|
40
|
+
<SliderInput
|
|
41
|
+
bind:input={lngInput}
|
|
42
|
+
type="number"
|
|
43
|
+
label={label ? '' : 'Longitude'}
|
|
44
|
+
placeholder="0"
|
|
45
|
+
incrementor={readonly ? undefined : 'slider'}
|
|
46
|
+
value={lng}
|
|
47
|
+
step={1}
|
|
48
|
+
class="grow"
|
|
49
|
+
on:change={() => oninput(new LngLat(lngInput?.valueAsNumber ?? 0, lat ?? 0))}
|
|
50
|
+
on:input={() => oninput(new LngLat(lngInput?.valueAsNumber ?? 0, lat ?? 0))}
|
|
51
|
+
{readonly}
|
|
52
|
+
/>
|
|
53
|
+
{@render children?.()}
|
|
54
|
+
</div>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import { LngLat } from 'maplibre-gl';
|
|
3
|
+
interface Props {
|
|
4
|
+
/** The label for the Lat,Lng, pair. Defaults to Latitude, Longitude. */
|
|
5
|
+
label?: string;
|
|
6
|
+
/** Whether the inputs are readonly. */
|
|
7
|
+
readonly?: boolean;
|
|
8
|
+
/** The longitude value. */
|
|
9
|
+
lng?: number;
|
|
10
|
+
/** The latitude value. */
|
|
11
|
+
lat?: number;
|
|
12
|
+
children?: Snippet;
|
|
13
|
+
oninput: (lngLat: LngLat) => void;
|
|
14
|
+
}
|
|
15
|
+
declare const LnglatInput: import("svelte").Component<Props, {}, "">;
|
|
16
|
+
type LnglatInput = ReturnType<typeof LnglatInput>;
|
|
17
|
+
export default LnglatInput;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
|
|
4
|
+
Creates a marker on a maplibre map. Must be a child of `<MapLibre>`.
|
|
5
|
+
|
|
6
|
+
```svelte
|
|
7
|
+
<MapLibreMarker
|
|
8
|
+
lngLat={{ lng: 0, lat: 0 }}
|
|
9
|
+
scale={1}
|
|
10
|
+
color={'blue'}
|
|
11
|
+
/>
|
|
12
|
+
```
|
|
13
|
+
-->
|
|
14
|
+
<script lang="ts">
|
|
15
|
+
import { LngLat, Marker } from 'maplibre-gl'
|
|
16
|
+
|
|
17
|
+
import { useMapLibre } from './hooks'
|
|
18
|
+
|
|
19
|
+
interface Props {
|
|
20
|
+
/** The longitude of the marker. */
|
|
21
|
+
lng?: number
|
|
22
|
+
/** The latitude of the marker. */
|
|
23
|
+
lat?: number
|
|
24
|
+
/** The rotation angle of the marker (clockwise, in degrees) */
|
|
25
|
+
rotation?: number
|
|
26
|
+
/** The relative size of the marker. */
|
|
27
|
+
scale?: number
|
|
28
|
+
/** The marker color. */
|
|
29
|
+
color?: string
|
|
30
|
+
/** The marker icon */
|
|
31
|
+
element?: HTMLElement
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const { lng = 0, lat = 0, rotation = 0, scale = 1, color = '', element }: Props = $props()
|
|
35
|
+
|
|
36
|
+
const { map } = useMapLibre()
|
|
37
|
+
|
|
38
|
+
const marker = $derived.by(() => {
|
|
39
|
+
const value = new Marker(element ? { element, scale, color } : { scale, color })
|
|
40
|
+
value.setLngLat(new LngLat(0, 0))
|
|
41
|
+
value.getElement().style.zIndex = '1'
|
|
42
|
+
return value
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
$effect.pre(() => {
|
|
46
|
+
const currentMarker = marker
|
|
47
|
+
currentMarker.addTo(map)
|
|
48
|
+
return () => {
|
|
49
|
+
currentMarker.remove()
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
$effect.pre(() => {
|
|
54
|
+
marker?.setLngLat(new LngLat(lng, lat))
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
$effect.pre(() => {
|
|
58
|
+
marker?.setRotation(rotation)
|
|
59
|
+
})
|
|
60
|
+
</script>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Marker } from 'maplibre-gl';
|
|
2
|
+
interface Props {
|
|
3
|
+
/** The longitude of the marker. */
|
|
4
|
+
lng?: number;
|
|
5
|
+
/** The latitude of the marker. */
|
|
6
|
+
lat?: number;
|
|
7
|
+
/** The rotation angle of the marker (clockwise, in degrees) */
|
|
8
|
+
rotation?: number;
|
|
9
|
+
/** The relative size of the marker. */
|
|
10
|
+
scale?: number;
|
|
11
|
+
/** The marker color. */
|
|
12
|
+
color?: string;
|
|
13
|
+
/** The marker icon */
|
|
14
|
+
element?: HTMLElement;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a marker on a maplibre map. Must be a child of `<MapLibre>`.
|
|
18
|
+
*
|
|
19
|
+
* ```svelte
|
|
20
|
+
* <MapLibreMarker
|
|
21
|
+
* lngLat={{ lng: 0, lat: 0 }}
|
|
22
|
+
* scale={1}
|
|
23
|
+
* color={'blue'}
|
|
24
|
+
* />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
declare const Marker: import("svelte").Component<Props, {}, "">;
|
|
28
|
+
type Marker = ReturnType<typeof Marker>;
|
|
29
|
+
export default Marker;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LngLat, MercatorCoordinate } from 'maplibre-gl';
|
|
2
|
+
export declare const lngLatToMercator: (lngLat: LngLat) => MercatorCoordinate;
|
|
3
|
+
export declare const mercatorToCartesian: (mercator: MercatorCoordinate, scale?: number) => {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const lngLatToCartesian: (lngLat: LngLat, scale?: number) => {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
};
|
|
11
|
+
export declare const cartesianToMercator: (x: number, y: number, scale: number) => MercatorCoordinate;
|
|
12
|
+
export declare const cartesianToLngLat: (x: number, y: number, scale: number) => LngLat;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LngLat, MercatorCoordinate } from 'maplibre-gl';
|
|
2
|
+
export const lngLatToMercator = (lngLat) => {
|
|
3
|
+
return MercatorCoordinate.fromLngLat(lngLat, 0);
|
|
4
|
+
};
|
|
5
|
+
export const mercatorToCartesian = (mercator, scale = mercator.meterInMercatorCoordinateUnits()) => {
|
|
6
|
+
return { x: mercator.x / scale, y: mercator.y / scale };
|
|
7
|
+
};
|
|
8
|
+
export const lngLatToCartesian = (lngLat, scale) => {
|
|
9
|
+
const mercator = lngLatToMercator(lngLat);
|
|
10
|
+
return mercatorToCartesian(mercator, scale);
|
|
11
|
+
};
|
|
12
|
+
export const cartesianToMercator = (x, y, scale) => {
|
|
13
|
+
return new MercatorCoordinate(x * scale, y * scale, 0);
|
|
14
|
+
};
|
|
15
|
+
export const cartesianToLngLat = (x, y, scale) => {
|
|
16
|
+
const mercator = cartesianToMercator(x, y, scale);
|
|
17
|
+
return mercator.toLngLat();
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const registerGoogleMapsProtocol: (apiKey: string) => Promise<boolean>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { addProtocol } from 'maplibre-gl';
|
|
2
|
+
const sessions = {};
|
|
3
|
+
let protocolRegistered = false;
|
|
4
|
+
let registerProtocol = undefined;
|
|
5
|
+
const testGoogleMapsAPI = async (apiKey) => {
|
|
6
|
+
try {
|
|
7
|
+
await getSession('roadmap', apiKey);
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
export const registerGoogleMapsProtocol = async (apiKey) => {
|
|
15
|
+
if (protocolRegistered) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
registerProtocol = (async () => {
|
|
19
|
+
const passed = await testGoogleMapsAPI(apiKey);
|
|
20
|
+
if (!passed) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
addProtocol('google', googleProtocol);
|
|
24
|
+
protocolRegistered = true;
|
|
25
|
+
return true;
|
|
26
|
+
})();
|
|
27
|
+
return registerProtocol;
|
|
28
|
+
};
|
|
29
|
+
const googleProtocol = async (params) => {
|
|
30
|
+
const url = new URL(params.url.replace('google://', 'https://'));
|
|
31
|
+
const key = url.searchParams.get('key') ?? '';
|
|
32
|
+
const sessionKey = `${url.hostname}?${url.searchParams}`;
|
|
33
|
+
let session;
|
|
34
|
+
if (!sessions[sessionKey]) {
|
|
35
|
+
sessions[sessionKey] = {
|
|
36
|
+
value: undefined,
|
|
37
|
+
promise: getSession(url.hostname, key),
|
|
38
|
+
};
|
|
39
|
+
session = await sessions[sessionKey].promise;
|
|
40
|
+
}
|
|
41
|
+
else if (sessions[sessionKey].value === undefined) {
|
|
42
|
+
session = await sessions[sessionKey].promise;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
session = sessions[sessionKey].value;
|
|
46
|
+
}
|
|
47
|
+
return getTile(url, session, key);
|
|
48
|
+
};
|
|
49
|
+
const getSession = async (mapType, key) => {
|
|
50
|
+
const sessionRequest = {
|
|
51
|
+
mapType,
|
|
52
|
+
language: 'en-US',
|
|
53
|
+
region: 'US',
|
|
54
|
+
overlay: true,
|
|
55
|
+
};
|
|
56
|
+
const response = await fetch(`https://tile.googleapis.com/v1/createSession?key=${key}`, {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
headers: { 'Content-Type': 'application/json' },
|
|
59
|
+
body: JSON.stringify(sessionRequest),
|
|
60
|
+
});
|
|
61
|
+
if (!response.ok) {
|
|
62
|
+
throw new Error('Failed to create Google Maps session');
|
|
63
|
+
}
|
|
64
|
+
const result = (await response.json());
|
|
65
|
+
return result.session;
|
|
66
|
+
};
|
|
67
|
+
const getTile = async (url, session, key) => {
|
|
68
|
+
const tile = await fetch(`https://tile.googleapis.com/v1/2dtiles${url.pathname}?session=${session}&key=${key}`);
|
|
69
|
+
if (!tile.ok) {
|
|
70
|
+
throw new Error('Failed to get Google Maps tile');
|
|
71
|
+
}
|
|
72
|
+
const data = await tile.arrayBuffer();
|
|
73
|
+
return { data };
|
|
74
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Camera, type Raycaster, Vector2 } from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* Provides raycasting against THREE objects projected on to a maplibre map.
|
|
4
|
+
*/
|
|
5
|
+
export declare const useMapLibreThreeRaycast: (cameraSignal: {
|
|
6
|
+
current: Camera;
|
|
7
|
+
}) => {
|
|
8
|
+
compute: (raycaster: Raycaster) => void;
|
|
9
|
+
pointer: Vector2;
|
|
10
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { onMount } from 'svelte';
|
|
2
|
+
import { Matrix4, Vector2, Vector3 } from 'three';
|
|
3
|
+
import { useMapLibre } from '../hooks';
|
|
4
|
+
/**
|
|
5
|
+
* Provides raycasting against THREE objects projected on to a maplibre map.
|
|
6
|
+
*/
|
|
7
|
+
export const useMapLibreThreeRaycast = (cameraSignal) => {
|
|
8
|
+
const { map } = useMapLibre();
|
|
9
|
+
const pointer = new Vector2();
|
|
10
|
+
const handleMouseMove = (event) => {
|
|
11
|
+
pointer.set((event.point.x / map.transform.width) * 2 - 1, -(event.point.y / map.transform.height) * 2 + 1);
|
|
12
|
+
};
|
|
13
|
+
onMount(() => {
|
|
14
|
+
map.on('mousemove', handleMouseMove);
|
|
15
|
+
return () => map.off('mousemove', handleMouseMove);
|
|
16
|
+
});
|
|
17
|
+
const cameraPosition = new Vector3();
|
|
18
|
+
const mousePosition = new Vector3();
|
|
19
|
+
const viewDirection = new Vector3();
|
|
20
|
+
const camInverseProjection = new Matrix4();
|
|
21
|
+
const compute = (raycaster) => {
|
|
22
|
+
camInverseProjection.copy(cameraSignal.current.projectionMatrix).invert();
|
|
23
|
+
cameraPosition.set(0, 0, 0).applyMatrix4(camInverseProjection);
|
|
24
|
+
mousePosition.set(pointer.x, pointer.y, 1).applyMatrix4(camInverseProjection);
|
|
25
|
+
viewDirection.copy(mousePosition).sub(cameraPosition).normalize();
|
|
26
|
+
raycaster.set(cameraPosition, viewDirection);
|
|
27
|
+
};
|
|
28
|
+
return { compute, pointer };
|
|
29
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Camera, type Scene } from 'three';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* A plugin to integrate Three.js scenes into a Maplibre map.
|
|
5
|
+
*
|
|
6
|
+
* It syncs the projection matrix of a mapbibre-gl camera to a THREE.Camera in order to render objects
|
|
7
|
+
* from the perspective of the map viewer. The camera is set to look at the current center of the visible map.
|
|
8
|
+
*
|
|
9
|
+
* It also manages the position of any THREE.Object3D that has a `userData.lngLat` property. The position
|
|
10
|
+
* is determined by calculating the difference of the map's center lng,lat and the object's lng,lat and then
|
|
11
|
+
* making an approximate transform to an x,z plane offset in meters.
|
|
12
|
+
*
|
|
13
|
+
* The userData.lngLat property must be a maplibre LngLat object, or in the case of a THREE.Line, a LngLat[].
|
|
14
|
+
*
|
|
15
|
+
* @param scene A THREE.Scene instance.
|
|
16
|
+
* @param cameraSignal This should only be a THREE.Camera instance. Perspective and Orthographic cameras make projection defaults that will not work with Maplibre.
|
|
17
|
+
* @param renderFn A callback that runs on each map draw. Use it to render your scene.
|
|
18
|
+
*/
|
|
19
|
+
export declare const useMapLibreThreeRenderer: (scene: Scene, cameraSignal: {
|
|
20
|
+
current: Camera;
|
|
21
|
+
}, renderFn: (scene: Scene, camera: Camera) => void) => void;
|