@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,155 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
|
|
3
|
+
// Local imports
|
|
4
|
+
import { isMeshEdgesEdgeAttributeValid, useMeshEdgesEdgeAttributeStyle } from "./edge";
|
|
5
|
+
import { isMeshEdgesVertexAttributeValid, useMeshEdgesVertexAttributeStyle } from "./vertex";
|
|
6
|
+
import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
|
|
7
|
+
import { useMeshEdgesColorStyle } from "./color";
|
|
8
|
+
import { useMeshEdgesCommonStyle } from "./common";
|
|
9
|
+
import { useMeshEdgesVisibilityStyle } from "./visibility";
|
|
10
|
+
import { useMeshEdgesWidthStyle } from "./width";
|
|
11
|
+
|
|
12
|
+
// Local constants
|
|
13
|
+
|
|
14
|
+
interface MeshEdgesActiveColoringDeps {
|
|
15
|
+
readonly commonStyle: ReturnType<typeof useMeshEdgesCommonStyle>;
|
|
16
|
+
readonly colorStyle: ReturnType<typeof useMeshEdgesColorStyle>;
|
|
17
|
+
readonly vertexAttributeStyle: ReturnType<typeof useMeshEdgesVertexAttributeStyle>;
|
|
18
|
+
readonly edgeAttributeStyle: ReturnType<typeof useMeshEdgesEdgeAttributeStyle>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function handleMeshEdgesVertexColoring(
|
|
22
|
+
id: string,
|
|
23
|
+
vertexAttributeStyle: ReturnType<typeof useMeshEdgesVertexAttributeStyle>,
|
|
24
|
+
): Promise<unknown> | undefined {
|
|
25
|
+
const name = vertexAttributeStyle.meshEdgesVertexAttributeName(id);
|
|
26
|
+
const item = vertexAttributeStyle.meshEdgesVertexAttributeItem(id);
|
|
27
|
+
const [minimum, maximum] = vertexAttributeStyle.meshEdgesVertexAttributeRange(id);
|
|
28
|
+
const colorMap = vertexAttributeStyle.meshEdgesVertexAttributeColorMap(id);
|
|
29
|
+
const vertex_attribute = { name, item, minimum, maximum, colorMap };
|
|
30
|
+
if (!isMeshEdgesVertexAttributeValid(vertex_attribute)) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
return vertexAttributeStyle.setMeshEdgesVertexAttribute(id, vertex_attribute);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function handleMeshEdgesEdgeColoring(
|
|
37
|
+
id: string,
|
|
38
|
+
edgeAttributeStyle: ReturnType<typeof useMeshEdgesEdgeAttributeStyle>,
|
|
39
|
+
): Promise<unknown> | undefined {
|
|
40
|
+
const name = edgeAttributeStyle.meshEdgesEdgeAttributeName(id);
|
|
41
|
+
const item = edgeAttributeStyle.meshEdgesEdgeAttributeItem(id);
|
|
42
|
+
const [minimum, maximum] = edgeAttributeStyle.meshEdgesEdgeAttributeRange(id);
|
|
43
|
+
const colorMap = edgeAttributeStyle.meshEdgesEdgeAttributeColorMap(id);
|
|
44
|
+
const edge_attribute = { name, item, minimum, maximum, colorMap };
|
|
45
|
+
if (!isMeshEdgesEdgeAttributeValid(edge_attribute)) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
return edgeAttributeStyle.setMeshEdgesEdgeAttribute(id, edge_attribute);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async function setMeshEdgesActiveColoring(
|
|
52
|
+
id: string,
|
|
53
|
+
type: string | undefined,
|
|
54
|
+
deps: MeshEdgesActiveColoringDeps,
|
|
55
|
+
): Promise<unknown> {
|
|
56
|
+
await deps.commonStyle.mutateMeshEdgesStyle(id, {
|
|
57
|
+
coloring: { active: type },
|
|
58
|
+
});
|
|
59
|
+
if (type === "constant") {
|
|
60
|
+
const result = await deps.colorStyle.setMeshEdgesColor(id, deps.colorStyle.meshEdgesColor(id));
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
if (type === "vertex") {
|
|
64
|
+
const result = await handleMeshEdgesVertexColoring(id, deps.vertexAttributeStyle);
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
if (type === "edge") {
|
|
68
|
+
const result = await handleMeshEdgesEdgeColoring(id, deps.edgeAttributeStyle);
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
throw new Error(`Unknown mesh edges coloring type: ${type}`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async function applyMeshEdgesStyle(
|
|
75
|
+
id: string,
|
|
76
|
+
visibilityStyle: ReturnType<typeof useMeshEdgesVisibilityStyle>,
|
|
77
|
+
widthStyle: ReturnType<typeof useMeshEdgesWidthStyle>,
|
|
78
|
+
activeColoringType: string | undefined,
|
|
79
|
+
deps: MeshEdgesActiveColoringDeps,
|
|
80
|
+
): Promise<unknown[]> {
|
|
81
|
+
const result = await Promise.all([
|
|
82
|
+
visibilityStyle.setMeshEdgesVisibility(id, visibilityStyle.meshEdgesVisibility(id)),
|
|
83
|
+
widthStyle.setMeshEdgesWidth(id, widthStyle.meshEdgesWidth(id)),
|
|
84
|
+
setMeshEdgesActiveColoring(id, activeColoringType, deps),
|
|
85
|
+
]);
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
type UseMeshEdgesStyleReturn = ReturnType<typeof useMeshEdgesCommonStyle> & {
|
|
90
|
+
meshEdgesColoring: (id: string) => StyleValues;
|
|
91
|
+
meshEdgesActiveColoring: (id: string) => string | undefined;
|
|
92
|
+
setMeshEdgesActiveColoring: (id: string, type: string | undefined) => Promise<unknown>;
|
|
93
|
+
applyMeshEdgesStyle: (id: string) => Promise<unknown[]>;
|
|
94
|
+
} & ReturnType<typeof useMeshEdgesVisibilityStyle> &
|
|
95
|
+
ReturnType<typeof useMeshEdgesColorStyle> &
|
|
96
|
+
ReturnType<typeof useMeshEdgesWidthStyle> &
|
|
97
|
+
ReturnType<typeof useMeshEdgesVertexAttributeStyle> &
|
|
98
|
+
ReturnType<typeof useMeshEdgesEdgeAttributeStyle>;
|
|
99
|
+
|
|
100
|
+
export function useMeshEdgesStyle(): UseMeshEdgesStyleReturn {
|
|
101
|
+
const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
|
|
102
|
+
const meshEdgesVisibility = useMeshEdgesVisibilityStyle();
|
|
103
|
+
const meshEdgesColorStyle = useMeshEdgesColorStyle();
|
|
104
|
+
const meshEdgesWidthStyle = useMeshEdgesWidthStyle();
|
|
105
|
+
const meshEdgesVertexAttributeStyle = useMeshEdgesVertexAttributeStyle();
|
|
106
|
+
const meshEdgesEdgeAttributeStyle = useMeshEdgesEdgeAttributeStyle();
|
|
107
|
+
|
|
108
|
+
const activeColoringDeps: MeshEdgesActiveColoringDeps = {
|
|
109
|
+
commonStyle: meshEdgesCommonStyle,
|
|
110
|
+
colorStyle: meshEdgesColorStyle,
|
|
111
|
+
vertexAttributeStyle: meshEdgesVertexAttributeStyle,
|
|
112
|
+
edgeAttributeStyle: meshEdgesEdgeAttributeStyle,
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
function meshEdgesColoring(id: string): StyleValues {
|
|
116
|
+
return meshEdgesCommonStyle.meshEdgesColoring(id);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function meshEdgesActiveColoring(id: string): string | undefined {
|
|
120
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.active is defined as string in the data style schema.
|
|
121
|
+
return meshEdgesColoring(id).active as string | undefined;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
async function boundSetMeshEdgesActiveColoring(
|
|
125
|
+
id: string,
|
|
126
|
+
type: string | undefined,
|
|
127
|
+
): Promise<unknown> {
|
|
128
|
+
const result = await setMeshEdgesActiveColoring(id, type, activeColoringDeps);
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
async function boundApplyMeshEdgesStyle(id: string): Promise<unknown[]> {
|
|
133
|
+
const result = await applyMeshEdgesStyle(
|
|
134
|
+
id,
|
|
135
|
+
meshEdgesVisibility,
|
|
136
|
+
meshEdgesWidthStyle,
|
|
137
|
+
meshEdgesActiveColoring(id),
|
|
138
|
+
activeColoringDeps,
|
|
139
|
+
);
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return {
|
|
144
|
+
...meshEdgesCommonStyle,
|
|
145
|
+
meshEdgesColoring,
|
|
146
|
+
meshEdgesActiveColoring,
|
|
147
|
+
setMeshEdgesActiveColoring: boundSetMeshEdgesActiveColoring,
|
|
148
|
+
applyMeshEdgesStyle: boundApplyMeshEdgesStyle,
|
|
149
|
+
...meshEdgesVisibility,
|
|
150
|
+
...meshEdgesColorStyle,
|
|
151
|
+
...meshEdgesWidthStyle,
|
|
152
|
+
...meshEdgesVertexAttributeStyle,
|
|
153
|
+
...meshEdgesEdgeAttributeStyle,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
@@ -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 { useMeshEdgesCommonStyle } from "./common";
|
|
8
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
9
|
+
|
|
10
|
+
// Local constants
|
|
11
|
+
const meshEdgesVertexAttributeSchemas =
|
|
12
|
+
viewer_schemas.opengeodeweb_viewer.mesh.edges.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 isMeshEdgesVertexAttributeValid({
|
|
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 UseMeshEdgesVertexAttributeStyleReturn {
|
|
53
|
+
meshEdgesVertexAttributeName: (id: string) => string | undefined;
|
|
54
|
+
meshEdgesVertexAttributeItem: (id: string) => number;
|
|
55
|
+
meshEdgesVertexAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
56
|
+
meshEdgesVertexAttributeColorMap: (id: string) => string | undefined;
|
|
57
|
+
meshEdgesVertexAttributeStoredConfig: (
|
|
58
|
+
id: string,
|
|
59
|
+
name: string | undefined,
|
|
60
|
+
item: number | undefined,
|
|
61
|
+
) => AttributeStoredConfig;
|
|
62
|
+
setMeshEdgesVertexAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
63
|
+
setMeshEdgesVertexAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
64
|
+
setMeshEdgesVertexAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
65
|
+
setMeshEdgesVertexAttributeRange: (
|
|
66
|
+
id: string,
|
|
67
|
+
minimum: number,
|
|
68
|
+
maximum: number,
|
|
69
|
+
) => Promise<unknown>;
|
|
70
|
+
setMeshEdgesVertexAttributeColorMap: (
|
|
71
|
+
id: string,
|
|
72
|
+
colorMap: string | undefined,
|
|
73
|
+
) => Promise<unknown>;
|
|
74
|
+
meshEdgesVertexAttributeNoDataColor: (id: string) => unknown;
|
|
75
|
+
setMeshEdgesVertexAttributeNoDataColor: (id: string, no_data_color: unknown) => Promise<unknown>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
79
|
+
function useMeshEdgesVertexAttributeStyle(): UseMeshEdgesVertexAttributeStyleReturn {
|
|
80
|
+
const viewerStore = useViewerStore();
|
|
81
|
+
const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
|
|
82
|
+
function meshEdgesVertexAttribute(id: string): AttributeState {
|
|
83
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.vertex shape is defined by the data style schema.
|
|
84
|
+
return meshEdgesCommonStyle.meshEdgesColoring(id).vertex as AttributeState;
|
|
85
|
+
}
|
|
86
|
+
function meshEdgesVertexAttributeStoredConfig(
|
|
87
|
+
id: string,
|
|
88
|
+
name: string | undefined,
|
|
89
|
+
item: number | undefined,
|
|
90
|
+
): AttributeStoredConfig {
|
|
91
|
+
const { storedConfigs } = meshEdgesVertexAttribute(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 mutateMeshEdgesVertexStyle(
|
|
105
|
+
id: string,
|
|
106
|
+
values: Record<string, unknown>,
|
|
107
|
+
): Promise<string> {
|
|
108
|
+
const result = await meshEdgesCommonStyle.mutateMeshEdgesStyle(id, {
|
|
109
|
+
coloring: {
|
|
110
|
+
vertex: values,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
async function setMeshEdgesVertexAttributeStoredConfig(
|
|
116
|
+
id: string,
|
|
117
|
+
name: string | undefined,
|
|
118
|
+
item: number | undefined,
|
|
119
|
+
config: Partial<AttributeStoredConfig>,
|
|
120
|
+
): Promise<string> {
|
|
121
|
+
const result = await mutateMeshEdgesVertexStyle(id, {
|
|
122
|
+
storedConfigs: {
|
|
123
|
+
[name ?? ""]: {
|
|
124
|
+
lastItem: item,
|
|
125
|
+
[item ?? 0]: config,
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
function meshEdgesVertexAttributeName(id: string): string | undefined {
|
|
132
|
+
return meshEdgesVertexAttribute(id).name;
|
|
133
|
+
}
|
|
134
|
+
function meshEdgesVertexAttributeLastItem(id: string, name: string | undefined): number {
|
|
135
|
+
const { storedConfigs } = meshEdgesVertexAttribute(id);
|
|
136
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
137
|
+
if (nameConfig !== undefined) {
|
|
138
|
+
return nameConfig.lastItem;
|
|
139
|
+
}
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
function meshEdgesVertexAttributeItem(id: string): number {
|
|
143
|
+
const { item, name } = meshEdgesVertexAttribute(id);
|
|
144
|
+
return item ?? meshEdgesVertexAttributeLastItem(id, name);
|
|
145
|
+
}
|
|
146
|
+
async function setMeshEdgesVertexAttribute(
|
|
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 mutateMeshEdgesVertexStyle(id, {
|
|
158
|
+
name,
|
|
159
|
+
item,
|
|
160
|
+
});
|
|
161
|
+
await setMeshEdgesVertexAttributeStoredConfig(id, name, item, {
|
|
162
|
+
minimum,
|
|
163
|
+
maximum,
|
|
164
|
+
colorMap,
|
|
165
|
+
no_data_color,
|
|
166
|
+
});
|
|
167
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
168
|
+
const schema = meshEdgesVertexAttributeSchemas.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 = meshEdgesVertexAttributeName(id);
|
|
185
|
+
const item = meshEdgesVertexAttributeItem(id);
|
|
186
|
+
const storedConfig = meshEdgesVertexAttributeStoredConfig(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 (isMeshEdgesVertexAttributeValid(attribute)) {
|
|
196
|
+
const result = await setMeshEdgesVertexAttribute(id, attribute);
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
async function setMeshEdgesVertexAttributeName(id: string, name: string): Promise<unknown> {
|
|
202
|
+
const item = meshEdgesVertexAttributeLastItem(id, name);
|
|
203
|
+
await mutateMeshEdgesVertexStyle(id, {
|
|
204
|
+
name,
|
|
205
|
+
item,
|
|
206
|
+
});
|
|
207
|
+
return applyVertexAttribute(id);
|
|
208
|
+
}
|
|
209
|
+
async function setMeshEdgesVertexAttributeItem(id: string, item: number): Promise<unknown> {
|
|
210
|
+
await mutateMeshEdgesVertexStyle(id, {
|
|
211
|
+
item,
|
|
212
|
+
});
|
|
213
|
+
return applyVertexAttribute(id);
|
|
214
|
+
}
|
|
215
|
+
function meshEdgesVertexAttributeRange(id: string): [number | undefined, number | undefined] {
|
|
216
|
+
const name = meshEdgesVertexAttributeName(id);
|
|
217
|
+
const item = meshEdgesVertexAttributeItem(id);
|
|
218
|
+
const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
|
|
219
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
220
|
+
}
|
|
221
|
+
async function setMeshEdgesVertexAttributeRange(
|
|
222
|
+
id: string,
|
|
223
|
+
minimum: number,
|
|
224
|
+
maximum: number,
|
|
225
|
+
): Promise<unknown> {
|
|
226
|
+
const name = meshEdgesVertexAttributeName(id);
|
|
227
|
+
const item = meshEdgesVertexAttributeItem(id);
|
|
228
|
+
await setMeshEdgesVertexAttributeStoredConfig(id, name, item, {
|
|
229
|
+
minimum,
|
|
230
|
+
maximum,
|
|
231
|
+
});
|
|
232
|
+
return applyVertexAttribute(id);
|
|
233
|
+
}
|
|
234
|
+
function meshEdgesVertexAttributeColorMap(id: string): string | undefined {
|
|
235
|
+
const name = meshEdgesVertexAttributeName(id);
|
|
236
|
+
const item = meshEdgesVertexAttributeItem(id);
|
|
237
|
+
const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
|
|
238
|
+
return storedConfig.colorMap;
|
|
239
|
+
}
|
|
240
|
+
async function setMeshEdgesVertexAttributeColorMap(
|
|
241
|
+
id: string,
|
|
242
|
+
colorMap: string | undefined,
|
|
243
|
+
): Promise<unknown> {
|
|
244
|
+
const name = meshEdgesVertexAttributeName(id);
|
|
245
|
+
const item = meshEdgesVertexAttributeItem(id);
|
|
246
|
+
await setMeshEdgesVertexAttributeStoredConfig(id, name, item, {
|
|
247
|
+
colorMap,
|
|
248
|
+
});
|
|
249
|
+
return applyVertexAttribute(id);
|
|
250
|
+
}
|
|
251
|
+
function meshEdgesVertexAttributeNoDataColor(id: string): unknown {
|
|
252
|
+
const name = meshEdgesVertexAttributeName(id);
|
|
253
|
+
const item = meshEdgesVertexAttributeItem(id);
|
|
254
|
+
const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
|
|
255
|
+
return storedConfig.no_data_color;
|
|
256
|
+
}
|
|
257
|
+
async function setMeshEdgesVertexAttributeNoDataColor(
|
|
258
|
+
id: string,
|
|
259
|
+
no_data_color: unknown,
|
|
260
|
+
): Promise<unknown> {
|
|
261
|
+
const name = meshEdgesVertexAttributeName(id);
|
|
262
|
+
const item = meshEdgesVertexAttributeItem(id);
|
|
263
|
+
const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
|
|
264
|
+
await setMeshEdgesVertexAttributeStoredConfig(id, name, item, {
|
|
265
|
+
...storedConfig,
|
|
266
|
+
no_data_color,
|
|
267
|
+
});
|
|
268
|
+
return applyVertexAttribute(id);
|
|
269
|
+
}
|
|
270
|
+
return {
|
|
271
|
+
meshEdgesVertexAttributeName,
|
|
272
|
+
meshEdgesVertexAttributeItem,
|
|
273
|
+
meshEdgesVertexAttributeRange,
|
|
274
|
+
meshEdgesVertexAttributeColorMap,
|
|
275
|
+
meshEdgesVertexAttributeStoredConfig,
|
|
276
|
+
setMeshEdgesVertexAttribute,
|
|
277
|
+
setMeshEdgesVertexAttributeName,
|
|
278
|
+
setMeshEdgesVertexAttributeItem,
|
|
279
|
+
setMeshEdgesVertexAttributeRange,
|
|
280
|
+
setMeshEdgesVertexAttributeColorMap,
|
|
281
|
+
meshEdgesVertexAttributeNoDataColor,
|
|
282
|
+
setMeshEdgesVertexAttributeNoDataColor,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
export { isMeshEdgesVertexAttributeValid, useMeshEdgesVertexAttributeStyle };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
3
|
+
|
|
4
|
+
import { useMeshEdgesCommonStyle } from "./common";
|
|
5
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
6
|
+
|
|
7
|
+
// Local constants
|
|
8
|
+
const schema = viewer_schemas.opengeodeweb_viewer.mesh.edges.visibility;
|
|
9
|
+
|
|
10
|
+
export function useMeshEdgesVisibilityStyle(): {
|
|
11
|
+
meshEdgesVisibility: (id: string) => boolean | undefined;
|
|
12
|
+
setMeshEdgesVisibility: (id: string, visibility: boolean | undefined) => Promise<unknown>;
|
|
13
|
+
} {
|
|
14
|
+
const viewerStore = useViewerStore();
|
|
15
|
+
const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
|
|
16
|
+
|
|
17
|
+
function meshEdgesVisibility(id: string): boolean | undefined {
|
|
18
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- visibility is defined as boolean in the data style schema.
|
|
19
|
+
return meshEdgesCommonStyle.meshEdgesStyle(id).visibility as boolean | undefined;
|
|
20
|
+
}
|
|
21
|
+
async function setMeshEdgesVisibility(
|
|
22
|
+
id: string,
|
|
23
|
+
visibility: boolean | undefined,
|
|
24
|
+
): Promise<unknown> {
|
|
25
|
+
const params = { id, visibility };
|
|
26
|
+
const result = await viewerStore.request(
|
|
27
|
+
{
|
|
28
|
+
schema,
|
|
29
|
+
params,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
response_function: async () => {
|
|
33
|
+
const mutateResult = await meshEdgesCommonStyle.mutateMeshEdgesStyle(id, { visibility });
|
|
34
|
+
return mutateResult;
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
);
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return {
|
|
42
|
+
meshEdgesVisibility,
|
|
43
|
+
setMeshEdgesVisibility,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
3
|
+
|
|
4
|
+
import { useMeshEdgesCommonStyle } from "./common";
|
|
5
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
6
|
+
|
|
7
|
+
// Local constants
|
|
8
|
+
const schema = viewer_schemas.opengeodeweb_viewer.mesh.edges.width;
|
|
9
|
+
|
|
10
|
+
export function useMeshEdgesWidthStyle(): {
|
|
11
|
+
meshEdgesWidth: (id: string) => number | undefined;
|
|
12
|
+
setMeshEdgesWidth: (id: string, width: number | undefined) => Promise<unknown>;
|
|
13
|
+
} {
|
|
14
|
+
const viewerStore = useViewerStore();
|
|
15
|
+
const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
|
|
16
|
+
|
|
17
|
+
function meshEdgesWidth(id: string): number | undefined {
|
|
18
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- width is defined as number in the data style schema.
|
|
19
|
+
return meshEdgesCommonStyle.meshEdgesStyle(id).width as number | undefined;
|
|
20
|
+
}
|
|
21
|
+
async function setMeshEdgesWidth(id: string, width: number | undefined): Promise<unknown> {
|
|
22
|
+
const params = { id, width };
|
|
23
|
+
const result = await viewerStore.request(
|
|
24
|
+
{
|
|
25
|
+
schema,
|
|
26
|
+
params,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
response_function: async () => {
|
|
30
|
+
const mutateResult = await meshEdgesCommonStyle.mutateMeshEdgesStyle(id, { width });
|
|
31
|
+
return mutateResult;
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
);
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
meshEdgesWidth,
|
|
40
|
+
setMeshEdgesWidth,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
@@ -15,7 +15,18 @@ import { useMeshPolyhedraStyle } from "./polyhedra";
|
|
|
15
15
|
// Local constants
|
|
16
16
|
const meshSchemas = viewer_schemas.opengeodeweb_viewer.mesh;
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
19
|
+
export function useMeshStyle(): {
|
|
20
|
+
meshVisibility: (id: string) => boolean | undefined;
|
|
21
|
+
setMeshVisibility: (id: string, visibility: boolean | undefined) => Promise<unknown>;
|
|
22
|
+
meshColor: (id: string) => unknown;
|
|
23
|
+
setMeshColor: (id: string, color: unknown) => Promise<unknown>;
|
|
24
|
+
applyMeshStyle: (id: string) => Promise<unknown[]>;
|
|
25
|
+
} & ReturnType<typeof useMeshPointsStyle> &
|
|
26
|
+
ReturnType<typeof useMeshEdgesStyle> &
|
|
27
|
+
ReturnType<typeof useMeshCellsStyle> &
|
|
28
|
+
ReturnType<typeof useMeshPolygonsStyle> &
|
|
29
|
+
ReturnType<typeof useMeshPolyhedraStyle> {
|
|
19
30
|
const hybridViewerStore = useHybridViewerStore();
|
|
20
31
|
const viewerStore = useViewerStore();
|
|
21
32
|
const dataStyleState = useDataStyleState();
|
|
@@ -25,50 +36,58 @@ export function useMeshStyle() {
|
|
|
25
36
|
const meshPolygonsStyle = useMeshPolygonsStyle();
|
|
26
37
|
const meshPolyhedraStyle = useMeshPolyhedraStyle();
|
|
27
38
|
|
|
28
|
-
function meshVisibility(id) {
|
|
39
|
+
function meshVisibility(id: string): boolean | undefined {
|
|
29
40
|
return dataStyleState.getStyle(id).visibility;
|
|
30
41
|
}
|
|
31
|
-
function setMeshVisibility(id, visibility) {
|
|
42
|
+
async function setMeshVisibility(id: string, visibility: boolean | undefined): Promise<unknown> {
|
|
32
43
|
const schema = meshSchemas.visibility;
|
|
33
44
|
const params = { id, visibility };
|
|
34
|
-
|
|
45
|
+
const result = await viewerStore.request(
|
|
35
46
|
{
|
|
36
47
|
schema,
|
|
37
48
|
params,
|
|
38
49
|
},
|
|
39
50
|
{
|
|
40
51
|
response_function: async () => {
|
|
41
|
-
|
|
42
|
-
|
|
52
|
+
if (visibility !== undefined) {
|
|
53
|
+
hybridViewerStore.setVisibility(id, visibility);
|
|
54
|
+
}
|
|
55
|
+
const mutatedId = await dataStyleState.mutateStyle(id, { visibility });
|
|
56
|
+
return mutatedId;
|
|
43
57
|
},
|
|
44
58
|
},
|
|
45
59
|
);
|
|
60
|
+
return result;
|
|
46
61
|
}
|
|
47
62
|
|
|
48
|
-
function meshColor(id) {
|
|
63
|
+
function meshColor(id: string): unknown {
|
|
49
64
|
return dataStyleState.getStyle(id).color;
|
|
50
65
|
}
|
|
51
66
|
|
|
52
|
-
function setMeshColor(id, color) {
|
|
67
|
+
async function setMeshColor(id: string, color: unknown): Promise<unknown> {
|
|
53
68
|
const schema = meshSchemas.color;
|
|
54
69
|
const params = { id, color };
|
|
55
|
-
|
|
70
|
+
const result = await viewerStore.request(
|
|
56
71
|
{
|
|
57
72
|
schema,
|
|
58
73
|
params,
|
|
59
74
|
},
|
|
60
75
|
{
|
|
61
|
-
response_function: () =>
|
|
76
|
+
response_function: async () => {
|
|
77
|
+
const mutatedId = await dataStyleState.mutateStyle(id, { color });
|
|
78
|
+
return mutatedId;
|
|
79
|
+
},
|
|
62
80
|
},
|
|
63
81
|
);
|
|
82
|
+
return result;
|
|
64
83
|
}
|
|
65
84
|
|
|
66
|
-
function applyMeshStyle(id) {
|
|
85
|
+
async function applyMeshStyle(id: string): Promise<unknown[]> {
|
|
67
86
|
const style = dataStyleState.getStyle(id);
|
|
68
|
-
const promise_array = [];
|
|
87
|
+
const promise_array: unknown[] = [];
|
|
69
88
|
for (const [key, value] of Object.entries(style)) {
|
|
70
89
|
if (key === "visibility") {
|
|
71
|
-
promise_array.push(setMeshVisibility(id,
|
|
90
|
+
promise_array.push(setMeshVisibility(id, style.visibility));
|
|
72
91
|
} else if (key === "color") {
|
|
73
92
|
promise_array.push(setMeshColor(id, value));
|
|
74
93
|
} else if (key === "points") {
|
|
@@ -95,7 +114,8 @@ export function useMeshStyle() {
|
|
|
95
114
|
throw new Error(`Unknown mesh key: ${key}`);
|
|
96
115
|
}
|
|
97
116
|
}
|
|
98
|
-
|
|
117
|
+
const results = await Promise.all(promise_array);
|
|
118
|
+
return results;
|
|
99
119
|
}
|
|
100
120
|
|
|
101
121
|
return {
|
|
@@ -8,27 +8,33 @@ import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
|
8
8
|
// Local constants
|
|
9
9
|
const schema = viewer_schemas.opengeodeweb_viewer.mesh.points.color;
|
|
10
10
|
|
|
11
|
-
export function useMeshPointsColorStyle() {
|
|
11
|
+
export function useMeshPointsColorStyle(): {
|
|
12
|
+
meshPointsColor: (id: string) => unknown;
|
|
13
|
+
setMeshPointsColor: (id: string, color: unknown) => Promise<unknown>;
|
|
14
|
+
} {
|
|
12
15
|
const viewerStore = useViewerStore();
|
|
13
16
|
const meshPointsCommonStyle = useMeshPointsCommonStyle();
|
|
14
17
|
|
|
15
|
-
function meshPointsColor(id) {
|
|
18
|
+
function meshPointsColor(id: string): unknown {
|
|
16
19
|
return meshPointsCommonStyle.meshPointsColoring(id).constant;
|
|
17
20
|
}
|
|
18
|
-
function setMeshPointsColor(id, color) {
|
|
21
|
+
async function setMeshPointsColor(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
|
-
meshPointsCommonStyle.mutateMeshPointsColoring(id, {
|
|
29
|
+
response_function: async () => {
|
|
30
|
+
const mutateResult = await meshPointsCommonStyle.mutateMeshPointsColoring(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 {
|