@geode/opengeodeweb-front 10.34.0-rc.2 → 10.34.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.build/opengeodeweb_front_schemas.js +175 -0
- package/.build/server/utils/app_config.js +57 -0
- package/.build/server/utils/cleanup.js +135 -0
- package/.build/server/utils/cloud.js +156 -0
- package/.build/server/utils/microservices.js +153 -0
- package/.build/server/utils/path.js +108 -0
- package/.build/server/utils/scripts.js +134 -0
- package/.build/server/utils/server.js +44 -0
- package/.build/server/utils/server_config.js +51 -0
- package/.build/server/utils/stream.js +6 -0
- package/.build/server/utils/ws_client.js +100 -0
- package/.build/shared/app_mode.js +8 -0
- package/.build/shared/scripts.js +49 -0
- package/.build/shared/utils/call_raw.js +31 -0
- package/.build/shared/utils/call_schema.js +28 -0
- package/.build/shared/utils/fetch_raw.js +52 -0
- package/.build/shared/utils/fetch_schema.js +32 -0
- package/.build/shared/utils/file.js +14 -0
- package/.build/shared/utils/parse_boolean.js +23 -0
- package/.build/shared/utils/response_handlers/load.js +50 -0
- package/.build/shared/utils/types.js +1 -0
- package/.build/shared/utils/validate_schema.js +17 -0
- package/README.md +8 -0
- package/app/assets/{geode_objects.js → geode_objects.ts} +8 -1
- package/app/components/ActionButton.vue +28 -12
- package/app/components/Basic/Slider.vue +2 -2
- package/app/components/Basic/Switch.vue +2 -2
- package/app/components/CameraManager/List.vue +11 -11
- package/app/components/CameraManager/Saver.vue +8 -4
- package/app/components/CameraManager.vue +24 -12
- package/app/components/CameraOrientation.vue +31 -17
- package/app/components/ClippingPlaneCard.vue +13 -12
- package/app/components/ClippingPlanes.vue +31 -21
- package/app/components/CrsSelector.vue +26 -18
- package/app/components/DeleteDialog.vue +18 -16
- package/app/components/DragAndDrop.vue +55 -37
- package/app/components/DragAndDropInternal/DragAndDropInline.vue +31 -16
- package/app/components/DragAndDropInternal/DragAndDropOverlay.vue +32 -19
- package/app/components/ExtensionSelector.vue +34 -18
- package/app/components/FeedBack/ErrorBanner.vue +4 -3
- package/app/components/FeedBack/Snackers.vue +6 -5
- package/app/components/FetchingData.vue +8 -12
- package/app/components/FileSelector.vue +27 -17
- package/app/components/FileUploader.vue +51 -30
- package/app/components/GlassCard.vue +17 -13
- package/app/components/HybridRenderingView.vue +25 -12
- package/app/components/HybridViewerTooltip.vue +28 -26
- package/app/components/InfraConnected.vue +1 -1
- package/app/components/Launcher.vue +12 -10
- package/app/components/Loading/EcoMessages.vue +24 -13
- package/app/components/Loading/Header.vue +6 -7
- package/app/components/Loading/Progress.vue +6 -7
- package/app/components/Loading.vue +10 -14
- package/app/components/MissingFilesSelector.vue +35 -19
- package/app/components/ObjectSelector.vue +37 -21
- package/app/components/PackagesVersions.vue +16 -8
- package/app/components/Recaptcha.vue +17 -23
- package/app/components/RemoteRenderingView.vue +21 -15
- package/app/components/Ruler.vue +11 -9
- package/app/components/Screenshot.vue +25 -19
- package/app/components/SearchBar.vue +12 -6
- package/app/components/ShrinkFilter.vue +19 -14
- package/app/components/Step.vue +32 -12
- package/app/components/Stepper.vue +19 -7
- package/app/components/ToolPanel.vue +29 -13
- package/app/components/ViewToolbar.vue +53 -44
- package/app/components/Viewer/ContextMenu/CenterButton.vue +16 -9
- package/app/components/Viewer/ContextMenu/CircularItems.vue +13 -10
- package/app/components/Viewer/ContextMenu/ContextMenu.vue +40 -32
- package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +31 -17
- package/app/components/Viewer/ContextMenu/InfoCard.vue +38 -22
- package/app/components/Viewer/EdgedCurve/PointsOptions.vue +8 -5
- package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +67 -48
- package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +74 -50
- package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +69 -50
- package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +47 -35
- package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +91 -51
- package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +74 -49
- package/app/components/Viewer/Generic/Model/BlocksOptions.vue +115 -53
- package/app/components/Viewer/Generic/Model/CornersOptions.vue +75 -37
- package/app/components/Viewer/Generic/Model/EdgesOptions.vue +13 -9
- package/app/components/Viewer/Generic/Model/LinesOptions.vue +110 -61
- package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +32 -21
- package/app/components/Viewer/Generic/Model/ModelStyleOptions.vue +9 -5
- package/app/components/Viewer/Generic/Model/PointsOptions.vue +19 -13
- package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +119 -49
- package/app/components/Viewer/Grid/2D/CellsOptions.vue +8 -5
- package/app/components/Viewer/Grid/2D/EdgesOptions.vue +8 -5
- package/app/components/Viewer/Grid/2D/PointsOptions.vue +8 -5
- package/app/components/Viewer/Grid/3D/CellsOptions.vue +8 -5
- package/app/components/Viewer/Grid/3D/EdgesOptions.vue +8 -5
- package/app/components/Viewer/Grid/3D/FacetsOptions.vue +8 -5
- package/app/components/Viewer/Grid/3D/PointsOptions.vue +8 -5
- package/app/components/Viewer/ObjectTree/Base/CommonTreeView.vue +120 -76
- package/app/components/Viewer/ObjectTree/Base/Controls.vue +25 -10
- package/app/components/Viewer/ObjectTree/Base/ItemLabel.vue +42 -17
- package/app/components/Viewer/ObjectTree/Base/StickyHeader.vue +22 -9
- package/app/components/Viewer/ObjectTree/Base/TreeRow.vue +29 -14
- package/app/components/Viewer/ObjectTree/Box.vue +32 -15
- package/app/components/Viewer/ObjectTree/Layout.vue +55 -35
- package/app/components/Viewer/ObjectTree/Views/GlobalObjects.vue +63 -34
- package/app/components/Viewer/ObjectTree/Views/{ModelCollections.vue → ModelTree.vue} +101 -39
- package/app/components/Viewer/Options/AttributeColorBar.vue +14 -6
- package/app/components/Viewer/Options/AttributeRangeSelector.vue +8 -4
- package/app/components/Viewer/Options/AttributeSelector.vue +64 -33
- package/app/components/Viewer/Options/ColorMapList.vue +52 -24
- package/app/components/Viewer/Options/ColorMapPicker.vue +15 -11
- package/app/components/Viewer/Options/ColorPicker.vue +239 -50
- package/app/components/Viewer/Options/ColoringTypeSelector.vue +87 -67
- package/app/components/Viewer/Options/ColormapQuickPicker.vue +16 -12
- package/app/components/Viewer/Options/OptionsSection.vue +7 -5
- package/app/components/Viewer/Options/Sliders/Size.vue +3 -3
- package/app/components/Viewer/Options/Sliders/Slider.vue +9 -6
- package/app/components/Viewer/Options/Sliders/Width.vue +3 -3
- package/app/components/Viewer/Options/TextureItem.vue +29 -22
- package/app/components/Viewer/Options/TexturesSelector.vue +23 -12
- package/app/components/Viewer/Options/VisibilitySwitch.vue +3 -3
- package/app/components/Viewer/OverlappingObjectsPicker.vue +27 -12
- package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +38 -26
- package/app/components/Viewer/Solid/EdgesOptions.vue +8 -5
- package/app/components/Viewer/Solid/PointsOptions.vue +8 -5
- package/app/components/Viewer/Solid/PolygonsOptions.vue +8 -5
- package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +73 -48
- package/app/components/Viewer/Surface/EdgesOptions.vue +8 -5
- package/app/components/Viewer/Surface/PointsOptions.vue +8 -5
- package/app/components/Viewer/Surface/PolygonsOptions.vue +79 -49
- package/app/components/Viewer/Surface/Triangulated/TrianglesOptions.vue +8 -5
- package/app/components/Viewer/TetrahedralSolid/TetrahedraOptions.vue +8 -5
- package/app/components/Viewer/TetrahedralSolid/TrianglesOptions.vue +8 -5
- package/app/components/Viewer/Ui.vue +19 -14
- package/app/components/Wrapper.vue +16 -10
- package/app/components/ZScaling.vue +18 -10
- package/app/components/csv-preview/CsvPreviewer.vue +72 -50
- package/app/components/csv-preview/CsvSettings.vue +30 -50
- package/app/components/csv-preview/CsvTable.vue +34 -14
- package/app/composables/{batch_style.js → batch_style.ts} +9 -7
- package/app/composables/clipping_planes_widget.ts +204 -0
- package/app/composables/clipping_planes_widget_entries.ts +189 -0
- package/app/composables/copy_to_clipboard.ts +7 -0
- package/app/composables/global_attribute_style.ts +303 -0
- package/app/composables/hover_highlight.ts +127 -0
- package/app/composables/{model_collections.js → model_collections.ts} +28 -9
- package/app/composables/{model_components.js → model_components.ts} +28 -9
- package/app/composables/{project_manager.js → project_manager.ts} +77 -20
- package/app/composables/responsive_middle_truncate.ts +48 -0
- package/app/composables/{run_function_when_microservices_connected.js → run_function_when_microservices_connected.ts} +1 -1
- package/app/composables/stepper_tree.ts +79 -0
- package/app/composables/tree_filter.ts +194 -0
- package/app/composables/{tree_keyboard_nav.js → tree_keyboard_nav.ts} +62 -20
- package/app/composables/{tree_scroll.js → tree_scroll.ts} +61 -12
- package/app/composables/use_adaptive_styles.ts +186 -0
- package/app/composables/use_overlapping_picker.ts +263 -0
- package/app/composables/use_quick_colormap.ts +55 -0
- package/app/composables/virtual_tree.ts +271 -0
- package/app/composables/vtk_implicit_plane_widget.d.ts +2 -0
- package/app/plugins/{auto_store_register.js → auto_store_register.ts} +3 -5
- package/app/plugins/click_outside_ignore_snackbars.client.ts +36 -0
- package/app/stores/app.ts +252 -0
- package/app/stores/app_helpers/extension.ts +179 -0
- package/app/stores/{back.js → back.ts} +54 -28
- package/app/stores/camera_manager.ts +80 -0
- package/app/stores/{cloud.js → cloud.ts} +18 -13
- package/app/stores/data.ts +392 -0
- package/app/stores/data_helpers/collections.ts +138 -0
- package/app/stores/data_helpers/mesh.ts +169 -0
- package/app/stores/data_style.ts +167 -0
- package/app/stores/{feedback.js → feedback.ts} +19 -8
- package/app/stores/{hybrid_viewer.js → hybrid_viewer.ts} +49 -45
- package/app/stores/infra.ts +106 -0
- package/app/stores/{menu.js → menu.ts} +67 -36
- package/app/stores/treeview.ts +383 -0
- package/app/stores/{viewer.js → viewer.ts} +75 -42
- package/app/utils/attributes.ts +40 -0
- package/app/utils/clipping_planes.ts +222 -0
- package/app/utils/color_picker.js +54 -0
- package/app/utils/colormap.ts +102 -0
- package/app/utils/default_styles/{constants.js → constants.ts} +25 -12
- package/app/utils/default_styles/{index.js → index.ts} +4 -3
- package/app/utils/default_styles/meshes.ts +264 -0
- package/app/utils/default_styles/{models.js → models.ts} +106 -52
- package/app/utils/{extension.js → extension.ts} +63 -19
- package/app/utils/{import_workflow.js → import_workflow.ts} +39 -22
- package/app/utils/{log.js → log.ts} +12 -2
- package/app/utils/{name_cleaner.js → name_cleaner.ts} +6 -6
- package/app/utils/status.ts +19 -0
- package/app/utils/{stores.js → stores.ts} +5 -5
- package/app/utils/{string.js → string.ts} +6 -6
- package/app/utils/{treeview.js → treeview.ts} +4 -1
- package/internal/database/{base_database.js → base_database.ts} +7 -3
- package/internal/database/database.ts +102 -0
- package/internal/database/{extended_database.js → extended_database.ts} +5 -1
- package/internal/database/tables/camera_positions.ts +6 -0
- package/internal/database/tables/{data.js → data.ts} +3 -1
- package/internal/database/tables/data_style.ts +6 -0
- package/internal/database/tables/model_component_datastyle.ts +6 -0
- package/internal/database/tables/model_component_type_datastyle.ts +6 -0
- package/internal/database/tables/model_components.ts +6 -0
- package/internal/database/tables/model_components_relation.ts +6 -0
- package/internal/database/tables/table_definition.ts +5 -0
- package/internal/stores/data_style/mesh/cells/cell.ts +279 -0
- package/internal/stores/data_style/mesh/cells/{color.js → color.ts} +13 -7
- package/internal/stores/data_style/mesh/cells/common.ts +50 -0
- package/internal/stores/data_style/mesh/cells/index.ts +161 -0
- package/internal/stores/data_style/mesh/cells/{textures.js → textures.ts} +14 -8
- package/internal/stores/data_style/mesh/cells/vertex.ts +285 -0
- package/internal/stores/data_style/mesh/cells/visibility.ts +46 -0
- package/internal/stores/data_style/mesh/edges/{color.js → color.ts} +13 -7
- package/internal/stores/data_style/mesh/edges/common.ts +41 -0
- package/internal/stores/data_style/mesh/edges/edge.ts +279 -0
- package/internal/stores/data_style/mesh/edges/index.ts +155 -0
- package/internal/stores/data_style/mesh/edges/vertex.ts +285 -0
- package/internal/stores/data_style/mesh/edges/visibility.ts +45 -0
- package/internal/stores/data_style/mesh/edges/width.ts +42 -0
- package/internal/stores/data_style/mesh/{index.js → index.ts} +34 -14
- package/internal/stores/data_style/mesh/points/{color.js → color.ts} +13 -7
- package/internal/stores/data_style/mesh/points/common.ts +51 -0
- package/internal/stores/data_style/mesh/points/index.ts +133 -0
- package/internal/stores/data_style/mesh/points/size.ts +43 -0
- package/internal/stores/data_style/mesh/points/vertex.ts +285 -0
- package/internal/stores/data_style/mesh/points/visibility.ts +49 -0
- package/internal/stores/data_style/mesh/polygons/{color.js → color.ts} +13 -7
- package/internal/stores/data_style/mesh/polygons/common.ts +50 -0
- package/internal/stores/data_style/mesh/polygons/index.ts +167 -0
- package/internal/stores/data_style/mesh/polygons/polygon.ts +282 -0
- package/internal/stores/data_style/mesh/polygons/{textures.js → textures.ts} +14 -8
- package/internal/stores/data_style/mesh/polygons/vertex.ts +288 -0
- package/internal/stores/data_style/mesh/polygons/visibility.ts +48 -0
- package/internal/stores/data_style/mesh/polyhedra/{color.js → color.ts} +13 -7
- package/internal/stores/data_style/mesh/polyhedra/common.ts +41 -0
- package/internal/stores/data_style/mesh/polyhedra/index.ts +157 -0
- package/internal/stores/data_style/mesh/polyhedra/polyhedron.ts +294 -0
- package/internal/stores/data_style/mesh/polyhedra/vertex.ts +288 -0
- package/internal/stores/data_style/mesh/polyhedra/visibility.ts +48 -0
- package/internal/stores/data_style/model/blocks/{color.js → color.ts} +50 -13
- package/internal/stores/data_style/model/blocks/common.ts +67 -0
- package/internal/stores/data_style/model/blocks/{index.js → index.ts} +111 -66
- package/internal/stores/data_style/model/blocks/polyhedron.ts +363 -0
- package/internal/stores/data_style/model/blocks/vertex.ts +349 -0
- package/internal/stores/data_style/model/blocks/visibility.ts +37 -0
- package/internal/stores/data_style/model/color.ts +348 -0
- package/internal/stores/data_style/model/common.ts +262 -0
- package/internal/stores/data_style/model/corners/{color.js → color.ts} +49 -10
- package/internal/stores/data_style/model/corners/common.ts +71 -0
- package/internal/stores/data_style/model/corners/{index.js → index.ts} +86 -47
- package/internal/stores/data_style/model/corners/vertex.ts +315 -0
- package/internal/stores/data_style/model/corners/visibility.ts +39 -0
- package/internal/stores/data_style/model/edges/common.ts +29 -0
- package/internal/stores/data_style/model/edges/{index.js → index.ts} +2 -7
- package/internal/stores/data_style/model/edges/visibility.ts +55 -0
- package/internal/stores/data_style/model/{index.js → index.ts} +24 -11
- package/internal/stores/data_style/model/lines/{color.js → color.ts} +47 -10
- package/internal/stores/data_style/model/lines/common.ts +63 -0
- package/internal/stores/data_style/model/lines/edge.ts +343 -0
- package/internal/stores/data_style/model/lines/{index.js → index.ts} +108 -66
- package/internal/stores/data_style/model/lines/vertex.ts +344 -0
- package/internal/stores/data_style/model/lines/visibility.ts +37 -0
- package/internal/stores/data_style/model/points/common.ts +25 -0
- package/internal/stores/data_style/model/points/index.ts +35 -0
- package/internal/stores/data_style/model/points/size.ts +44 -0
- package/internal/stores/data_style/model/points/visibility.ts +46 -0
- package/internal/stores/data_style/model/selection.ts +138 -0
- package/internal/stores/data_style/model/surfaces/{color.js → color.ts} +47 -10
- package/internal/stores/data_style/model/surfaces/common.ts +69 -0
- package/internal/stores/data_style/model/surfaces/{index.js → index.ts} +113 -66
- package/internal/stores/data_style/model/surfaces/polygon.ts +347 -0
- package/internal/stores/data_style/model/surfaces/vertex.ts +351 -0
- package/internal/stores/data_style/model/surfaces/visibility.ts +37 -0
- package/internal/stores/data_style/model/{visibility.js → visibility.ts} +112 -32
- package/internal/stores/data_style/state.ts +281 -0
- package/internal/stores/data_style/types.ts +30 -0
- package/internal/stores/hybrid_viewer/brightness.ts +124 -0
- package/internal/stores/hybrid_viewer/camera.ts +326 -0
- package/internal/stores/hybrid_viewer/{camera_animation.js → camera_animation.ts} +30 -12
- package/internal/stores/hybrid_viewer/{constants.js → constants.ts} +2 -2
- package/internal/stores/hybrid_viewer/core.ts +64 -0
- package/internal/stores/hybrid_viewer/{filters.js → filters.ts} +10 -13
- package/internal/stores/hybrid_viewer/highlight.ts +183 -0
- package/internal/stores/hybrid_viewer/{ruler.js → ruler.ts} +50 -22
- package/internal/stores/hybrid_viewer/scene.ts +125 -0
- package/internal/stores/hybrid_viewer/viewport.ts +177 -0
- package/internal/stores/hybrid_viewer/vtk_types.ts +58 -0
- package/internal/utils/api_fetch.ts +133 -0
- package/internal/utils/upload_file.ts +115 -0
- package/internal/utils/viewer_call.ts +99 -0
- package/internal/utils/ws_client.ts +54 -0
- package/nuxt.config.ts +168 -0
- package/opengeodeweb_front_schemas.json +2 -2
- package/package.json +49 -13
- package/server/api/cloud/extensions/{run.post.js → run.post.ts} +16 -12
- package/server/api/local/app/project_folder_path.post.ts +33 -0
- package/server/api/local/app/run_back.post.ts +39 -0
- package/server/api/local/app/run_viewer.post.ts +39 -0
- package/server/api/local/extensions/{kill.post.js → kill.post.ts} +15 -8
- package/server/api/local/extensions/{run.post.js → run.post.ts} +17 -12
- package/server/api/local/extensions/upload.put.ts +71 -0
- package/server/api/microservice/app/{get_is_app_ready.get.js → get_is_app_ready.get.ts} +5 -5
- package/server/api/microservice/app/schemas/get_is_app_ready.json +1 -1
- package/server/api/microservice/app/set_app_base_url.post.ts +29 -0
- package/server/api/microservice/app/set_back_base_url.post.ts +26 -0
- package/server/api/microservice/app/set_is_app_ready.post.ts +29 -0
- package/server/api/microservice/app/set_viewer_base_url.post.ts +26 -0
- package/server/api/microservice/extensions/{download.post.js → download.post.ts} +13 -6
- package/server/api/serverless/run_cloud.post.ts +92 -0
- package/server/utils/{app_config.js → app_config.ts} +40 -18
- package/server/utils/{cleanup.js → cleanup.ts} +76 -29
- package/server/utils/{cloud.js → cloud.ts} +33 -17
- package/server/utils/{extension.js → extension.ts} +31 -4
- package/server/utils/{microservices.js → microservices.ts} +68 -27
- package/server/utils/{path.js → path.ts} +36 -17
- package/server/utils/{scripts.js → scripts.ts} +49 -33
- package/server/utils/{server.js → server.ts} +13 -6
- package/server/utils/server_config.ts +74 -0
- package/server/utils/stream.ts +6 -0
- package/server/utils/ws_client.ts +165 -0
- package/shared/{scripts.js → scripts.ts} +15 -10
- package/shared/utils/call_raw.ts +73 -0
- package/shared/utils/{call_schema.js → call_schema.ts} +15 -6
- package/shared/utils/fetch_raw.ts +125 -0
- package/shared/utils/{fetch_schema.js → fetch_schema.ts} +16 -7
- package/shared/utils/file.ts +22 -0
- package/shared/utils/{parse_boolean.js → parse_boolean.ts} +1 -1
- package/shared/utils/response_handlers/load.ts +109 -0
- package/shared/utils/types.ts +27 -0
- package/shared/utils/{validate_schema.js → validate_schema.ts} +3 -1
- package/.github/workflows/config.json +0 -5
- package/.github/workflows/deploy.yml +0 -15
- package/.github/workflows/manual_release.yml +0 -11
- package/.github/workflows/merge_request.yml +0 -9
- package/.github/workflows/pr_update.yml +0 -11
- package/.github/workflows/prepare_deploy.yml +0 -9
- package/.github/workflows/schedule.yml +0 -18
- package/.github/workflows/test.yml +0 -14
- package/.github/workflows/test_pr.yml +0 -12
- package/.oxlintrc.json +0 -150
- package/.releaserc +0 -11
- package/app/components/Viewer/ObjectTree/Views/ModelComponents.vue +0 -224
- package/app/composables/clipping_planes_widget.js +0 -249
- package/app/composables/global_attribute_style.js +0 -181
- package/app/composables/hover_highlight.js +0 -91
- package/app/composables/responsive_middle_truncate.js +0 -34
- package/app/composables/stepper_tree.js +0 -56
- package/app/composables/tree_filter.js +0 -138
- package/app/composables/use_adaptive_styles.js +0 -120
- package/app/composables/use_overlapping_picker.js +0 -169
- package/app/composables/use_quick_colormap.js +0 -32
- package/app/composables/virtual_tree.js +0 -191
- package/app/stores/app.js +0 -326
- package/app/stores/camera_manager.js +0 -57
- package/app/stores/data.js +0 -278
- package/app/stores/data_helpers/collections.js +0 -96
- package/app/stores/data_helpers/mesh.js +0 -122
- package/app/stores/data_style.js +0 -116
- package/app/stores/infra.js +0 -95
- package/app/stores/treeview.js +0 -290
- package/app/utils/attributes.js +0 -23
- package/app/utils/clipping_planes.js +0 -110
- package/app/utils/colormap.js +0 -64
- package/app/utils/default_styles/meshes.js +0 -191
- package/app/utils/status.js +0 -10
- package/commitlint.config.js +0 -20
- package/internal/database/database.js +0 -80
- package/internal/database/tables/camera_positions.js +0 -4
- package/internal/database/tables/data_style.js +0 -4
- package/internal/database/tables/model_component_datastyle.js +0 -4
- package/internal/database/tables/model_component_type_datastyle.js +0 -4
- package/internal/database/tables/model_components.js +0 -4
- package/internal/database/tables/model_components_relation.js +0 -4
- package/internal/stores/data_style/mesh/cells/cell.js +0 -196
- package/internal/stores/data_style/mesh/cells/common.js +0 -39
- package/internal/stores/data_style/mesh/cells/index.js +0 -81
- package/internal/stores/data_style/mesh/cells/vertex.js +0 -193
- package/internal/stores/data_style/mesh/cells/visibility.js +0 -35
- package/internal/stores/data_style/mesh/edges/common.js +0 -32
- package/internal/stores/data_style/mesh/edges/edge.js +0 -195
- package/internal/stores/data_style/mesh/edges/index.js +0 -81
- package/internal/stores/data_style/mesh/edges/vertex.js +0 -196
- package/internal/stores/data_style/mesh/edges/visibility.js +0 -34
- package/internal/stores/data_style/mesh/edges/width.js +0 -34
- package/internal/stores/data_style/mesh/points/common.js +0 -37
- package/internal/stores/data_style/mesh/points/index.js +0 -82
- package/internal/stores/data_style/mesh/points/size.js +0 -35
- package/internal/stores/data_style/mesh/points/vertex.js +0 -193
- package/internal/stores/data_style/mesh/points/visibility.js +0 -37
- package/internal/stores/data_style/mesh/polygons/common.js +0 -32
- package/internal/stores/data_style/mesh/polygons/index.js +0 -107
- package/internal/stores/data_style/mesh/polygons/polygon.js +0 -196
- package/internal/stores/data_style/mesh/polygons/vertex.js +0 -196
- package/internal/stores/data_style/mesh/polygons/visibility.js +0 -38
- package/internal/stores/data_style/mesh/polyhedra/common.js +0 -32
- package/internal/stores/data_style/mesh/polyhedra/index.js +0 -98
- package/internal/stores/data_style/mesh/polyhedra/polyhedron.js +0 -196
- package/internal/stores/data_style/mesh/polyhedra/vertex.js +0 -196
- package/internal/stores/data_style/mesh/polyhedra/visibility.js +0 -38
- package/internal/stores/data_style/model/blocks/common.js +0 -51
- package/internal/stores/data_style/model/blocks/polyhedron.js +0 -215
- package/internal/stores/data_style/model/blocks/vertex.js +0 -204
- package/internal/stores/data_style/model/blocks/visibility.js +0 -20
- package/internal/stores/data_style/model/color.js +0 -218
- package/internal/stores/data_style/model/common.js +0 -141
- package/internal/stores/data_style/model/corners/common.js +0 -51
- package/internal/stores/data_style/model/corners/vertex.js +0 -204
- package/internal/stores/data_style/model/corners/visibility.js +0 -20
- package/internal/stores/data_style/model/edges/common.js +0 -20
- package/internal/stores/data_style/model/edges/visibility.js +0 -38
- package/internal/stores/data_style/model/lines/common.js +0 -51
- package/internal/stores/data_style/model/lines/edge.js +0 -203
- package/internal/stores/data_style/model/lines/vertex.js +0 -204
- package/internal/stores/data_style/model/lines/visibility.js +0 -20
- package/internal/stores/data_style/model/points/common.js +0 -20
- package/internal/stores/data_style/model/points/index.js +0 -25
- package/internal/stores/data_style/model/points/size.js +0 -36
- package/internal/stores/data_style/model/points/visibility.js +0 -36
- package/internal/stores/data_style/model/selection.js +0 -89
- package/internal/stores/data_style/model/surfaces/common.js +0 -51
- package/internal/stores/data_style/model/surfaces/polygon.js +0 -215
- package/internal/stores/data_style/model/surfaces/vertex.js +0 -215
- package/internal/stores/data_style/model/surfaces/visibility.js +0 -20
- package/internal/stores/data_style/state.js +0 -197
- package/internal/stores/hybrid_viewer/brightness.js +0 -82
- package/internal/stores/hybrid_viewer/camera.js +0 -274
- package/internal/stores/hybrid_viewer/highlight.js +0 -170
- package/internal/stores/hybrid_viewer/scene.js +0 -136
- package/internal/stores/hybrid_viewer/viewport.js +0 -140
- package/internal/utils/api_fetch.js +0 -52
- package/internal/utils/upload_file.js +0 -57
- package/internal/utils/viewer_call.js +0 -49
- package/internal/utils/ws_client.js +0 -29
- package/nuxt.config.js +0 -106
- package/scripts/generate_geode_objects.js +0 -24
- package/server/api/local/app/project_folder_path.post.js +0 -29
- package/server/api/local/app/run_back.post.js +0 -33
- package/server/api/local/app/run_viewer.post.js +0 -33
- package/server/api/local/extensions/upload.put.js +0 -72
- package/server/api/microservice/app/set_app_base_url.post.js +0 -25
- package/server/api/microservice/app/set_back_base_url.post.js +0 -22
- package/server/api/microservice/app/set_is_app_ready.post.js +0 -25
- package/server/api/microservice/app/set_viewer_base_url.post.js +0 -22
- package/server/api/serverless/run_cloud.post.js +0 -44
- package/server/utils/server_config.js +0 -58
- package/server/utils/ws_client.js +0 -112
- package/shared/utils/call_raw.js +0 -46
- package/shared/utils/fetch_raw.js +0 -61
- package/shared/utils/file.js +0 -16
- package/shared/utils/response_handlers/load.js +0 -74
- package/tests/integration/data/uploads/test.og_brep +0 -0
- package/tests/integration/data/uploads/test.og_edc2d +0 -0
- package/tests/integration/data/uploads/test.og_edc3d +0 -0
- package/tests/integration/data/uploads/test.og_psf3d +0 -0
- package/tests/integration/data/uploads/test.og_rgd2d +0 -0
- package/tests/integration/data/uploads/test.og_rgd3d +0 -0
- package/tests/integration/data/uploads/test.vtu +0 -22
- package/tests/integration/setup.js +0 -92
- package/tests/integration/stores/data_style/mesh/cells.nuxt.test.js +0 -343
- package/tests/integration/stores/data_style/mesh/edges.nuxt.test.js +0 -254
- package/tests/integration/stores/data_style/mesh/index.nuxt.test.js +0 -62
- package/tests/integration/stores/data_style/mesh/points.nuxt.test.js +0 -201
- package/tests/integration/stores/data_style/mesh/polygons.nuxt.test.js +0 -260
- package/tests/integration/stores/data_style/mesh/polyhedra.nuxt.test.js +0 -267
- package/tests/integration/stores/data_style/model/blocks.nuxt.test.js +0 -397
- package/tests/integration/stores/data_style/model/corners.nuxt.test.js +0 -264
- package/tests/integration/stores/data_style/model/edges.nuxt.test.js +0 -71
- package/tests/integration/stores/data_style/model/index.nuxt.test.js +0 -92
- package/tests/integration/stores/data_style/model/lines.nuxt.test.js +0 -379
- package/tests/integration/stores/data_style/model/points.nuxt.test.js +0 -95
- package/tests/integration/stores/data_style/model/surfaces.nuxt.test.js +0 -574
- package/tests/integration/stores/viewer.nuxt.test.js +0 -69
- package/tests/setup_indexeddb.js +0 -4
- package/tests/unit/components/CrsSelector.nuxt.test.js +0 -55
- package/tests/unit/components/DragAndDrop.nuxt.test.js +0 -89
- package/tests/unit/components/ExtensionSelector.nuxt.test.js +0 -65
- package/tests/unit/components/FeedBack/ErrorsBanner.nuxt.test.js +0 -41
- package/tests/unit/components/FeedBack/Snackers.nuxt.test.js +0 -49
- package/tests/unit/components/FileSelector.nuxt.test.js +0 -124
- package/tests/unit/components/FileUploader.nuxt.test.js +0 -69
- package/tests/unit/components/MissingFilesSelector.nuxt.test.js +0 -77
- package/tests/unit/components/ObjectSelector.nuxt.test.js +0 -118
- package/tests/unit/components/PackagesVersions.nuxt.test.js +0 -42
- package/tests/unit/components/Step.nuxt.test.js +0 -51
- package/tests/unit/components/Stepper.nuxt.test.js +0 -41
- package/tests/unit/components/ToolPanel.nuxt.test.js +0 -66
- package/tests/unit/composables/api_fetch.nuxt.test.js +0 -75
- package/tests/unit/composables/project_manager.nuxt.test.js +0 -299
- package/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js +0 -57
- package/tests/unit/composables/upload_file.nuxt.test.js +0 -45
- package/tests/unit/composables/virtual_tree.nuxt.test.js +0 -63
- package/tests/unit/plugins/project_load.nuxt.test.js +0 -98
- package/tests/unit/stores/app.nuxt.test.js +0 -189
- package/tests/unit/stores/back.nuxt.test.js +0 -147
- package/tests/unit/stores/cloud.nuxt.test.js +0 -90
- package/tests/unit/stores/data.nuxt.test.js +0 -162
- package/tests/unit/stores/feedback.nuxt.test.js +0 -90
- package/tests/unit/stores/infra.nuxt.test.js +0 -313
- package/tests/unit/stores/treeview.nuxt.test.js +0 -63
- package/tests/unit/stores/viewer.nuxt.test.js +0 -161
- package/tests/unit/utils/validate_schema.nuxt.test.js +0 -38
- package/tests/utils.js +0 -20
- package/tests/vitest.config.js +0 -67
- /package/server/api/local/app/{kill.post.js → kill.post.ts} +0 -0
- /package/shared/{app_mode.js → app_mode.ts} +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
|
|
2
|
+
import { useDataStyleState } from "@ogw_internal/stores/data_style/state";
|
|
3
|
+
|
|
4
|
+
export function useMeshPointsCommonStyle(): {
|
|
5
|
+
meshPointsStyle: (id: string) => StyleValues;
|
|
6
|
+
meshPointsColoring: (id: string) => StyleValues;
|
|
7
|
+
mutateMeshPointsColoring: (id: string, values: StyleValues) => Promise<string>;
|
|
8
|
+
mutateMeshPointsStyle: (id: string, values: StyleValues) => Promise<string>;
|
|
9
|
+
mutateMeshPointsVisibility: (response: { id: string; visibility: boolean }) => Promise<string>;
|
|
10
|
+
} {
|
|
11
|
+
const dataStyleState = useDataStyleState();
|
|
12
|
+
|
|
13
|
+
async function mutateMeshPointsStyle(id: string, values: StyleValues): Promise<string> {
|
|
14
|
+
const result = await dataStyleState.mutateStyle(id, {
|
|
15
|
+
points: values,
|
|
16
|
+
});
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async function mutateMeshPointsVisibility(response: {
|
|
21
|
+
id: string;
|
|
22
|
+
visibility: boolean;
|
|
23
|
+
}): Promise<string> {
|
|
24
|
+
const result = await mutateMeshPointsStyle(response.id, { visibility: response.visibility });
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function meshPointsStyle(id: string): StyleValues {
|
|
29
|
+
return dataStyleState.getStyle(id).points ?? {};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function meshPointsColoring(id: string): StyleValues {
|
|
33
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
|
|
34
|
+
return meshPointsStyle(id).coloring as StyleValues;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async function mutateMeshPointsColoring(id: string, values: StyleValues): Promise<string> {
|
|
38
|
+
const result = await mutateMeshPointsStyle(id, {
|
|
39
|
+
coloring: values,
|
|
40
|
+
});
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
meshPointsStyle,
|
|
46
|
+
meshPointsColoring,
|
|
47
|
+
mutateMeshPointsColoring,
|
|
48
|
+
mutateMeshPointsStyle,
|
|
49
|
+
mutateMeshPointsVisibility,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
|
|
3
|
+
// Local imports
|
|
4
|
+
import { isMeshPointsVertexAttributeValid, useMeshPointsVertexAttributeStyle } from "./vertex";
|
|
5
|
+
import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
|
|
6
|
+
import { useMeshPointsColorStyle } from "./color";
|
|
7
|
+
import { useMeshPointsCommonStyle } from "./common";
|
|
8
|
+
import { useMeshPointsSizeStyle } from "./size";
|
|
9
|
+
import { useMeshPointsVisibilityStyle } from "./visibility";
|
|
10
|
+
|
|
11
|
+
// Local constants
|
|
12
|
+
|
|
13
|
+
interface MeshPointsActiveColoringDeps {
|
|
14
|
+
readonly commonStyle: ReturnType<typeof useMeshPointsCommonStyle>;
|
|
15
|
+
readonly colorStyle: ReturnType<typeof useMeshPointsColorStyle>;
|
|
16
|
+
readonly vertexAttributeStyle: ReturnType<typeof useMeshPointsVertexAttributeStyle>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function handleMeshPointsVertexColoring(
|
|
20
|
+
id: string,
|
|
21
|
+
vertexAttributeStyle: ReturnType<typeof useMeshPointsVertexAttributeStyle>,
|
|
22
|
+
): Promise<unknown> | undefined {
|
|
23
|
+
const name = vertexAttributeStyle.meshPointsVertexAttributeName(id);
|
|
24
|
+
const item = vertexAttributeStyle.meshPointsVertexAttributeItem(id);
|
|
25
|
+
const [minimum, maximum] = vertexAttributeStyle.meshPointsVertexAttributeRange(id);
|
|
26
|
+
const colorMap = vertexAttributeStyle.meshPointsVertexAttributeColorMap(id);
|
|
27
|
+
const vertex_attribute = { name, item, minimum, maximum, colorMap };
|
|
28
|
+
if (!isMeshPointsVertexAttributeValid(vertex_attribute)) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return vertexAttributeStyle.setMeshPointsVertexAttribute(id, vertex_attribute);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async function setMeshPointsActiveColoring(
|
|
35
|
+
id: string,
|
|
36
|
+
type: string | undefined,
|
|
37
|
+
deps: MeshPointsActiveColoringDeps,
|
|
38
|
+
): Promise<unknown> {
|
|
39
|
+
await deps.commonStyle.mutateMeshPointsStyle(id, {
|
|
40
|
+
coloring: { active: type },
|
|
41
|
+
});
|
|
42
|
+
if (type === "constant") {
|
|
43
|
+
const result = await deps.colorStyle.setMeshPointsColor(
|
|
44
|
+
id,
|
|
45
|
+
deps.colorStyle.meshPointsColor(id),
|
|
46
|
+
);
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
if (type === "vertex") {
|
|
50
|
+
const result = await handleMeshPointsVertexColoring(id, deps.vertexAttributeStyle);
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
throw new Error(`Unknown mesh points coloring type: ${type}`);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async function applyMeshPointsStyle(
|
|
57
|
+
id: string,
|
|
58
|
+
visibilityStyle: ReturnType<typeof useMeshPointsVisibilityStyle>,
|
|
59
|
+
sizeStyle: ReturnType<typeof useMeshPointsSizeStyle>,
|
|
60
|
+
activeColoringType: string | undefined,
|
|
61
|
+
deps: MeshPointsActiveColoringDeps,
|
|
62
|
+
): Promise<unknown[]> {
|
|
63
|
+
const result = await Promise.all([
|
|
64
|
+
visibilityStyle.setMeshPointsVisibility(id, visibilityStyle.meshPointsVisibility(id)),
|
|
65
|
+
sizeStyle.setMeshPointsSize(id, sizeStyle.meshPointsSize(id)),
|
|
66
|
+
setMeshPointsActiveColoring(id, activeColoringType, deps),
|
|
67
|
+
]);
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
type UseMeshPointsStyleReturn = ReturnType<typeof useMeshPointsCommonStyle> & {
|
|
72
|
+
meshPointsColoring: (id: string) => StyleValues;
|
|
73
|
+
meshPointsActiveColoring: (id: string) => string | undefined;
|
|
74
|
+
setMeshPointsActiveColoring: (id: string, type: string | undefined) => Promise<unknown>;
|
|
75
|
+
applyMeshPointsStyle: (id: string) => Promise<unknown[]>;
|
|
76
|
+
} & ReturnType<typeof useMeshPointsVisibilityStyle> &
|
|
77
|
+
ReturnType<typeof useMeshPointsColorStyle> &
|
|
78
|
+
ReturnType<typeof useMeshPointsSizeStyle> &
|
|
79
|
+
ReturnType<typeof useMeshPointsVertexAttributeStyle>;
|
|
80
|
+
|
|
81
|
+
export function useMeshPointsStyle(): UseMeshPointsStyleReturn {
|
|
82
|
+
const meshPointsCommonStyle = useMeshPointsCommonStyle();
|
|
83
|
+
const meshPointsVisibility = useMeshPointsVisibilityStyle();
|
|
84
|
+
const meshPointsColorStyle = useMeshPointsColorStyle();
|
|
85
|
+
const meshPointsSizeStyle = useMeshPointsSizeStyle();
|
|
86
|
+
const meshPointsVertexAttributeStyle = useMeshPointsVertexAttributeStyle();
|
|
87
|
+
|
|
88
|
+
const activeColoringDeps: MeshPointsActiveColoringDeps = {
|
|
89
|
+
commonStyle: meshPointsCommonStyle,
|
|
90
|
+
colorStyle: meshPointsColorStyle,
|
|
91
|
+
vertexAttributeStyle: meshPointsVertexAttributeStyle,
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
function meshPointsColoring(id: string): StyleValues {
|
|
95
|
+
return meshPointsCommonStyle.meshPointsColoring(id);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function meshPointsActiveColoring(id: string): string | undefined {
|
|
99
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.active is defined as string in the data style schema.
|
|
100
|
+
return meshPointsColoring(id).active as string | undefined;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function boundSetMeshPointsActiveColoring(
|
|
104
|
+
id: string,
|
|
105
|
+
type: string | undefined,
|
|
106
|
+
): Promise<unknown> {
|
|
107
|
+
const result = await setMeshPointsActiveColoring(id, type, activeColoringDeps);
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
async function boundApplyMeshPointsStyle(id: string): Promise<unknown[]> {
|
|
112
|
+
const result = await applyMeshPointsStyle(
|
|
113
|
+
id,
|
|
114
|
+
meshPointsVisibility,
|
|
115
|
+
meshPointsSizeStyle,
|
|
116
|
+
meshPointsActiveColoring(id),
|
|
117
|
+
activeColoringDeps,
|
|
118
|
+
);
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
...meshPointsCommonStyle,
|
|
124
|
+
meshPointsColoring,
|
|
125
|
+
meshPointsActiveColoring,
|
|
126
|
+
setMeshPointsActiveColoring: boundSetMeshPointsActiveColoring,
|
|
127
|
+
applyMeshPointsStyle: boundApplyMeshPointsStyle,
|
|
128
|
+
...meshPointsVisibility,
|
|
129
|
+
...meshPointsColorStyle,
|
|
130
|
+
...meshPointsSizeStyle,
|
|
131
|
+
...meshPointsVertexAttributeStyle,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
3
|
+
|
|
4
|
+
// Local imports
|
|
5
|
+
import { useMeshPointsCommonStyle } from "./common";
|
|
6
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
7
|
+
|
|
8
|
+
// Local constants
|
|
9
|
+
const schema = viewer_schemas.opengeodeweb_viewer.mesh.points.size;
|
|
10
|
+
|
|
11
|
+
export function useMeshPointsSizeStyle(): {
|
|
12
|
+
meshPointsSize: (id: string) => number | undefined;
|
|
13
|
+
setMeshPointsSize: (id: string, size: number | undefined) => Promise<unknown>;
|
|
14
|
+
} {
|
|
15
|
+
const viewerStore = useViewerStore();
|
|
16
|
+
const meshPointsCommonStyle = useMeshPointsCommonStyle();
|
|
17
|
+
|
|
18
|
+
function meshPointsSize(id: string): number | undefined {
|
|
19
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- size is defined as number in the data style schema.
|
|
20
|
+
return meshPointsCommonStyle.meshPointsStyle(id).size as number | undefined;
|
|
21
|
+
}
|
|
22
|
+
async function setMeshPointsSize(id: string, size: number | undefined): Promise<unknown> {
|
|
23
|
+
const params = { id, size };
|
|
24
|
+
const result = await viewerStore.request(
|
|
25
|
+
{
|
|
26
|
+
schema,
|
|
27
|
+
params,
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
response_function: async () => {
|
|
31
|
+
const mutateResult = await meshPointsCommonStyle.mutateMeshPointsStyle(id, { size });
|
|
32
|
+
return mutateResult;
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
meshPointsSize,
|
|
41
|
+
setMeshPointsSize,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { DEFAULT_NO_DATA_COLOR } from "@ogw_front/utils/default_styles/constants";
|
|
2
|
+
// Third party imports
|
|
3
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
4
|
+
|
|
5
|
+
// Local imports
|
|
6
|
+
import { getRGBPointsFromPreset } from "@ogw_front/utils/colormap";
|
|
7
|
+
import { useMeshPointsCommonStyle } from "./common";
|
|
8
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
9
|
+
|
|
10
|
+
// Local constants
|
|
11
|
+
const meshPointsVertexAttributeSchemas =
|
|
12
|
+
viewer_schemas.opengeodeweb_viewer.mesh.points.attribute.vertex;
|
|
13
|
+
|
|
14
|
+
interface AttributeStoredConfig {
|
|
15
|
+
minimum: number | undefined;
|
|
16
|
+
maximum: number | undefined;
|
|
17
|
+
colorMap: string | undefined;
|
|
18
|
+
no_data_color: unknown;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface AttributeState {
|
|
22
|
+
name?: string;
|
|
23
|
+
item?: number;
|
|
24
|
+
storedConfigs?: Record<string, { lastItem: number } & Record<string, AttributeStoredConfig>>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface AttributeInput {
|
|
28
|
+
name: string | undefined;
|
|
29
|
+
item: number | undefined;
|
|
30
|
+
minimum: number | undefined;
|
|
31
|
+
maximum: number | undefined;
|
|
32
|
+
colorMap: string | undefined;
|
|
33
|
+
no_data_color?: unknown;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function isMeshPointsVertexAttributeValid({
|
|
37
|
+
name,
|
|
38
|
+
item,
|
|
39
|
+
minimum,
|
|
40
|
+
maximum,
|
|
41
|
+
colorMap,
|
|
42
|
+
}: AttributeInput): boolean {
|
|
43
|
+
return (
|
|
44
|
+
name !== undefined &&
|
|
45
|
+
item !== undefined &&
|
|
46
|
+
minimum !== undefined &&
|
|
47
|
+
maximum !== undefined &&
|
|
48
|
+
colorMap !== undefined
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
interface UseMeshPointsVertexAttributeStyleReturn {
|
|
53
|
+
meshPointsVertexAttributeName: (id: string) => string | undefined;
|
|
54
|
+
meshPointsVertexAttributeItem: (id: string) => number;
|
|
55
|
+
meshPointsVertexAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
56
|
+
meshPointsVertexAttributeColorMap: (id: string) => string | undefined;
|
|
57
|
+
meshPointsVertexAttributeStoredConfig: (
|
|
58
|
+
id: string,
|
|
59
|
+
name: string | undefined,
|
|
60
|
+
item: number | undefined,
|
|
61
|
+
) => AttributeStoredConfig;
|
|
62
|
+
setMeshPointsVertexAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
63
|
+
setMeshPointsVertexAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
64
|
+
setMeshPointsVertexAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
65
|
+
setMeshPointsVertexAttributeRange: (
|
|
66
|
+
id: string,
|
|
67
|
+
minimum: number,
|
|
68
|
+
maximum: number,
|
|
69
|
+
) => Promise<unknown>;
|
|
70
|
+
setMeshPointsVertexAttributeColorMap: (
|
|
71
|
+
id: string,
|
|
72
|
+
colorMap: string | undefined,
|
|
73
|
+
) => Promise<unknown>;
|
|
74
|
+
meshPointsVertexAttributeNoDataColor: (id: string) => unknown;
|
|
75
|
+
setMeshPointsVertexAttributeNoDataColor: (id: string, no_data_color: unknown) => Promise<unknown>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
79
|
+
function useMeshPointsVertexAttributeStyle(): UseMeshPointsVertexAttributeStyleReturn {
|
|
80
|
+
const viewerStore = useViewerStore();
|
|
81
|
+
const meshPointsCommonStyle = useMeshPointsCommonStyle();
|
|
82
|
+
function meshPointsVertexAttribute(id: string): AttributeState {
|
|
83
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.vertex shape is defined by the data style schema.
|
|
84
|
+
return meshPointsCommonStyle.meshPointsColoring(id).vertex as AttributeState;
|
|
85
|
+
}
|
|
86
|
+
function meshPointsVertexAttributeStoredConfig(
|
|
87
|
+
id: string,
|
|
88
|
+
name: string | undefined,
|
|
89
|
+
item: number | undefined,
|
|
90
|
+
): AttributeStoredConfig {
|
|
91
|
+
const { storedConfigs } = meshPointsVertexAttribute(id);
|
|
92
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
93
|
+
const itemConfig = item === undefined ? undefined : nameConfig?.[item];
|
|
94
|
+
if (itemConfig !== undefined) {
|
|
95
|
+
return itemConfig;
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
minimum: undefined,
|
|
99
|
+
maximum: undefined,
|
|
100
|
+
colorMap: undefined,
|
|
101
|
+
no_data_color: DEFAULT_NO_DATA_COLOR,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
async function mutateMeshPointsVertexStyle(
|
|
105
|
+
id: string,
|
|
106
|
+
values: Record<string, unknown>,
|
|
107
|
+
): Promise<string> {
|
|
108
|
+
const result = await meshPointsCommonStyle.mutateMeshPointsStyle(id, {
|
|
109
|
+
coloring: {
|
|
110
|
+
vertex: values,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
async function setMeshPointsVertexAttributeStoredConfig(
|
|
116
|
+
id: string,
|
|
117
|
+
name: string | undefined,
|
|
118
|
+
item: number | undefined,
|
|
119
|
+
config: Partial<AttributeStoredConfig>,
|
|
120
|
+
): Promise<string> {
|
|
121
|
+
const result = await mutateMeshPointsVertexStyle(id, {
|
|
122
|
+
storedConfigs: {
|
|
123
|
+
[name ?? ""]: {
|
|
124
|
+
lastItem: item,
|
|
125
|
+
[item ?? 0]: config,
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
function meshPointsVertexAttributeName(id: string): string | undefined {
|
|
132
|
+
return meshPointsVertexAttribute(id).name;
|
|
133
|
+
}
|
|
134
|
+
function meshPointsVertexAttributeLastItem(id: string, name: string | undefined): number {
|
|
135
|
+
const { storedConfigs } = meshPointsVertexAttribute(id);
|
|
136
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
137
|
+
if (nameConfig !== undefined) {
|
|
138
|
+
return nameConfig.lastItem;
|
|
139
|
+
}
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
function meshPointsVertexAttributeItem(id: string): number {
|
|
143
|
+
const { item, name } = meshPointsVertexAttribute(id);
|
|
144
|
+
return item ?? meshPointsVertexAttributeLastItem(id, name);
|
|
145
|
+
}
|
|
146
|
+
async function setMeshPointsVertexAttribute(
|
|
147
|
+
id: string,
|
|
148
|
+
{
|
|
149
|
+
name,
|
|
150
|
+
item,
|
|
151
|
+
minimum,
|
|
152
|
+
maximum,
|
|
153
|
+
colorMap,
|
|
154
|
+
no_data_color = DEFAULT_NO_DATA_COLOR,
|
|
155
|
+
}: AttributeInput,
|
|
156
|
+
): Promise<unknown> {
|
|
157
|
+
await mutateMeshPointsVertexStyle(id, {
|
|
158
|
+
name,
|
|
159
|
+
item,
|
|
160
|
+
});
|
|
161
|
+
await setMeshPointsVertexAttributeStoredConfig(id, name, item, {
|
|
162
|
+
minimum,
|
|
163
|
+
maximum,
|
|
164
|
+
colorMap,
|
|
165
|
+
no_data_color,
|
|
166
|
+
});
|
|
167
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
168
|
+
const schema = meshPointsVertexAttributeSchemas.attribute;
|
|
169
|
+
const params = {
|
|
170
|
+
id,
|
|
171
|
+
name,
|
|
172
|
+
item,
|
|
173
|
+
points,
|
|
174
|
+
minimum,
|
|
175
|
+
maximum,
|
|
176
|
+
no_data_color,
|
|
177
|
+
};
|
|
178
|
+
return viewerStore.request({
|
|
179
|
+
schema,
|
|
180
|
+
params,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
async function applyVertexAttribute(id: string): Promise<unknown> {
|
|
184
|
+
const name = meshPointsVertexAttributeName(id);
|
|
185
|
+
const item = meshPointsVertexAttributeItem(id);
|
|
186
|
+
const storedConfig = meshPointsVertexAttributeStoredConfig(id, name, item);
|
|
187
|
+
const attribute = {
|
|
188
|
+
name,
|
|
189
|
+
item,
|
|
190
|
+
minimum: storedConfig.minimum,
|
|
191
|
+
maximum: storedConfig.maximum,
|
|
192
|
+
colorMap: storedConfig.colorMap,
|
|
193
|
+
no_data_color: storedConfig.no_data_color,
|
|
194
|
+
};
|
|
195
|
+
if (isMeshPointsVertexAttributeValid(attribute)) {
|
|
196
|
+
const result = await setMeshPointsVertexAttribute(id, attribute);
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
async function setMeshPointsVertexAttributeName(id: string, name: string): Promise<unknown> {
|
|
202
|
+
const item = meshPointsVertexAttributeLastItem(id, name);
|
|
203
|
+
await mutateMeshPointsVertexStyle(id, {
|
|
204
|
+
name,
|
|
205
|
+
item,
|
|
206
|
+
});
|
|
207
|
+
return applyVertexAttribute(id);
|
|
208
|
+
}
|
|
209
|
+
async function setMeshPointsVertexAttributeItem(id: string, item: number): Promise<unknown> {
|
|
210
|
+
await mutateMeshPointsVertexStyle(id, {
|
|
211
|
+
item,
|
|
212
|
+
});
|
|
213
|
+
return applyVertexAttribute(id);
|
|
214
|
+
}
|
|
215
|
+
function meshPointsVertexAttributeRange(id: string): [number | undefined, number | undefined] {
|
|
216
|
+
const name = meshPointsVertexAttributeName(id);
|
|
217
|
+
const item = meshPointsVertexAttributeItem(id);
|
|
218
|
+
const storedConfig = meshPointsVertexAttributeStoredConfig(id, name, item);
|
|
219
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
220
|
+
}
|
|
221
|
+
async function setMeshPointsVertexAttributeRange(
|
|
222
|
+
id: string,
|
|
223
|
+
minimum: number,
|
|
224
|
+
maximum: number,
|
|
225
|
+
): Promise<unknown> {
|
|
226
|
+
const name = meshPointsVertexAttributeName(id);
|
|
227
|
+
const item = meshPointsVertexAttributeItem(id);
|
|
228
|
+
await setMeshPointsVertexAttributeStoredConfig(id, name, item, {
|
|
229
|
+
minimum,
|
|
230
|
+
maximum,
|
|
231
|
+
});
|
|
232
|
+
return applyVertexAttribute(id);
|
|
233
|
+
}
|
|
234
|
+
function meshPointsVertexAttributeColorMap(id: string): string | undefined {
|
|
235
|
+
const name = meshPointsVertexAttributeName(id);
|
|
236
|
+
const item = meshPointsVertexAttributeItem(id);
|
|
237
|
+
const storedConfig = meshPointsVertexAttributeStoredConfig(id, name, item);
|
|
238
|
+
return storedConfig.colorMap;
|
|
239
|
+
}
|
|
240
|
+
async function setMeshPointsVertexAttributeColorMap(
|
|
241
|
+
id: string,
|
|
242
|
+
colorMap: string | undefined,
|
|
243
|
+
): Promise<unknown> {
|
|
244
|
+
const name = meshPointsVertexAttributeName(id);
|
|
245
|
+
const item = meshPointsVertexAttributeItem(id);
|
|
246
|
+
await setMeshPointsVertexAttributeStoredConfig(id, name, item, {
|
|
247
|
+
colorMap,
|
|
248
|
+
});
|
|
249
|
+
return applyVertexAttribute(id);
|
|
250
|
+
}
|
|
251
|
+
function meshPointsVertexAttributeNoDataColor(id: string): unknown {
|
|
252
|
+
const name = meshPointsVertexAttributeName(id);
|
|
253
|
+
const item = meshPointsVertexAttributeItem(id);
|
|
254
|
+
const storedConfig = meshPointsVertexAttributeStoredConfig(id, name, item);
|
|
255
|
+
return storedConfig.no_data_color;
|
|
256
|
+
}
|
|
257
|
+
async function setMeshPointsVertexAttributeNoDataColor(
|
|
258
|
+
id: string,
|
|
259
|
+
no_data_color: unknown,
|
|
260
|
+
): Promise<unknown> {
|
|
261
|
+
const name = meshPointsVertexAttributeName(id);
|
|
262
|
+
const item = meshPointsVertexAttributeItem(id);
|
|
263
|
+
const storedConfig = meshPointsVertexAttributeStoredConfig(id, name, item);
|
|
264
|
+
await setMeshPointsVertexAttributeStoredConfig(id, name, item, {
|
|
265
|
+
...storedConfig,
|
|
266
|
+
no_data_color,
|
|
267
|
+
});
|
|
268
|
+
return applyVertexAttribute(id);
|
|
269
|
+
}
|
|
270
|
+
return {
|
|
271
|
+
meshPointsVertexAttributeName,
|
|
272
|
+
meshPointsVertexAttributeItem,
|
|
273
|
+
meshPointsVertexAttributeRange,
|
|
274
|
+
meshPointsVertexAttributeColorMap,
|
|
275
|
+
meshPointsVertexAttributeStoredConfig,
|
|
276
|
+
setMeshPointsVertexAttribute,
|
|
277
|
+
setMeshPointsVertexAttributeName,
|
|
278
|
+
setMeshPointsVertexAttributeItem,
|
|
279
|
+
setMeshPointsVertexAttributeRange,
|
|
280
|
+
setMeshPointsVertexAttributeColorMap,
|
|
281
|
+
meshPointsVertexAttributeNoDataColor,
|
|
282
|
+
setMeshPointsVertexAttributeNoDataColor,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
export { isMeshPointsVertexAttributeValid, useMeshPointsVertexAttributeStyle };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
3
|
+
|
|
4
|
+
// Local imports
|
|
5
|
+
import { useMeshPointsCommonStyle } from "./common";
|
|
6
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
7
|
+
|
|
8
|
+
// Local constants
|
|
9
|
+
const schema = viewer_schemas.opengeodeweb_viewer.mesh.points.visibility;
|
|
10
|
+
|
|
11
|
+
export function useMeshPointsVisibilityStyle(): {
|
|
12
|
+
meshPointsVisibility: (id: string) => boolean | undefined;
|
|
13
|
+
setMeshPointsVisibility: (id: string, visibility: boolean | undefined) => Promise<unknown>;
|
|
14
|
+
} {
|
|
15
|
+
const viewerStore = useViewerStore();
|
|
16
|
+
const meshPointsCommonStyle = useMeshPointsCommonStyle();
|
|
17
|
+
|
|
18
|
+
function meshPointsVisibility(id: string): boolean | undefined {
|
|
19
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- visibility is defined as boolean in the data style schema.
|
|
20
|
+
return meshPointsCommonStyle.meshPointsStyle(id).visibility as boolean | undefined;
|
|
21
|
+
}
|
|
22
|
+
async function setMeshPointsVisibility(
|
|
23
|
+
id: string,
|
|
24
|
+
visibility: boolean | undefined,
|
|
25
|
+
): Promise<unknown> {
|
|
26
|
+
const params = { id, visibility };
|
|
27
|
+
const result = await viewerStore.request(
|
|
28
|
+
{
|
|
29
|
+
schema,
|
|
30
|
+
params,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
response_function: async (response: unknown) => {
|
|
34
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- response shape is defined by the viewer schema.
|
|
35
|
+
const typedResponse = response as { id: string; visibility: boolean };
|
|
36
|
+
const mutateResult =
|
|
37
|
+
await meshPointsCommonStyle.mutateMeshPointsVisibility(typedResponse);
|
|
38
|
+
return mutateResult;
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
);
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
meshPointsVisibility,
|
|
47
|
+
setMeshPointsVisibility,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
@@ -8,27 +8,33 @@ import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
|
8
8
|
// Local constants
|
|
9
9
|
const schema = viewer_schemas.opengeodeweb_viewer.mesh.polygons.color;
|
|
10
10
|
|
|
11
|
-
export function useMeshPolygonsColorStyle() {
|
|
11
|
+
export function useMeshPolygonsColorStyle(): {
|
|
12
|
+
meshPolygonsColor: (id: string) => unknown;
|
|
13
|
+
setMeshPolygonsColor: (id: string, color: unknown) => Promise<unknown>;
|
|
14
|
+
} {
|
|
12
15
|
const viewerStore = useViewerStore();
|
|
13
16
|
const meshPolygonsCommonStyle = useMeshPolygonsCommonStyle();
|
|
14
17
|
|
|
15
|
-
function meshPolygonsColor(id) {
|
|
18
|
+
function meshPolygonsColor(id: string): unknown {
|
|
16
19
|
return meshPolygonsCommonStyle.meshPolygonsColoring(id).constant;
|
|
17
20
|
}
|
|
18
|
-
function setMeshPolygonsColor(id, color) {
|
|
21
|
+
async function setMeshPolygonsColor(id: string, color: unknown): Promise<unknown> {
|
|
19
22
|
const params = { id, color };
|
|
20
|
-
|
|
23
|
+
const result = await viewerStore.request(
|
|
21
24
|
{
|
|
22
25
|
schema,
|
|
23
26
|
params,
|
|
24
27
|
},
|
|
25
28
|
{
|
|
26
|
-
response_function: () =>
|
|
27
|
-
meshPolygonsCommonStyle.mutateMeshPolygonsColoring(id, {
|
|
29
|
+
response_function: async () => {
|
|
30
|
+
const mutateResult = await meshPolygonsCommonStyle.mutateMeshPolygonsColoring(id, {
|
|
28
31
|
constant: color,
|
|
29
|
-
})
|
|
32
|
+
});
|
|
33
|
+
return mutateResult;
|
|
34
|
+
},
|
|
30
35
|
},
|
|
31
36
|
);
|
|
37
|
+
return result;
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
return {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
|
|
2
|
+
import { useDataStyleState } from "@ogw_internal/stores/data_style/state";
|
|
3
|
+
|
|
4
|
+
export function useMeshPolygonsCommonStyle(): {
|
|
5
|
+
meshPolygonsStyle: (id: string) => StyleValues;
|
|
6
|
+
meshPolygonsColoring: (id: string) => StyleValues;
|
|
7
|
+
mutateMeshPolygonsStyle: (id: string, values: StyleValues) => Promise<string>;
|
|
8
|
+
mutateMeshPolygonsColoring: (id: string, values: StyleValues) => Promise<string>;
|
|
9
|
+
mutateMeshPolygonsPolygonStyle: (id: string, values: StyleValues) => Promise<string>;
|
|
10
|
+
} {
|
|
11
|
+
const dataStyleState = useDataStyleState();
|
|
12
|
+
|
|
13
|
+
async function mutateMeshPolygonsStyle(id: string, values: StyleValues): Promise<string> {
|
|
14
|
+
const result = await dataStyleState.mutateStyle(id, {
|
|
15
|
+
polygons: values,
|
|
16
|
+
});
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function meshPolygonsStyle(id: string): StyleValues {
|
|
21
|
+
return dataStyleState.getStyle(id).polygons ?? {};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function meshPolygonsColoring(id: string): StyleValues {
|
|
25
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
|
|
26
|
+
return meshPolygonsStyle(id).coloring as StyleValues;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async function mutateMeshPolygonsColoring(id: string, values: StyleValues): Promise<string> {
|
|
30
|
+
const result = await mutateMeshPolygonsStyle(id, {
|
|
31
|
+
coloring: values,
|
|
32
|
+
});
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function mutateMeshPolygonsPolygonStyle(id: string, values: StyleValues): Promise<string> {
|
|
37
|
+
const result = await mutateMeshPolygonsColoring(id, {
|
|
38
|
+
polygon: values,
|
|
39
|
+
});
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
meshPolygonsStyle,
|
|
45
|
+
meshPolygonsColoring,
|
|
46
|
+
mutateMeshPolygonsStyle,
|
|
47
|
+
mutateMeshPolygonsColoring,
|
|
48
|
+
mutateMeshPolygonsPolygonStyle,
|
|
49
|
+
};
|
|
50
|
+
}
|