@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,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 { useMeshCellsCommonStyle } from "./common";
|
|
8
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
9
|
+
|
|
10
|
+
// Local constants
|
|
11
|
+
const meshCellsVertexAttributeSchemas =
|
|
12
|
+
viewer_schemas.opengeodeweb_viewer.mesh.cells.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 isMeshCellsVertexAttributeValid({
|
|
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 UseMeshCellsVertexAttributeStyleReturn {
|
|
53
|
+
meshCellsVertexAttributeName: (id: string) => string | undefined;
|
|
54
|
+
meshCellsVertexAttributeItem: (id: string) => number;
|
|
55
|
+
meshCellsVertexAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
56
|
+
meshCellsVertexAttributeColorMap: (id: string) => string | undefined;
|
|
57
|
+
meshCellsVertexAttributeStoredConfig: (
|
|
58
|
+
id: string,
|
|
59
|
+
name: string | undefined,
|
|
60
|
+
item: number | undefined,
|
|
61
|
+
) => AttributeStoredConfig;
|
|
62
|
+
setMeshCellsVertexAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
63
|
+
setMeshCellsVertexAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
64
|
+
setMeshCellsVertexAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
65
|
+
setMeshCellsVertexAttributeRange: (
|
|
66
|
+
id: string,
|
|
67
|
+
minimum: number,
|
|
68
|
+
maximum: number,
|
|
69
|
+
) => Promise<unknown>;
|
|
70
|
+
setMeshCellsVertexAttributeColorMap: (
|
|
71
|
+
id: string,
|
|
72
|
+
colorMap: string | undefined,
|
|
73
|
+
) => Promise<unknown>;
|
|
74
|
+
meshCellsVertexAttributeNoDataColor: (id: string) => unknown;
|
|
75
|
+
setMeshCellsVertexAttributeNoDataColor: (id: string, no_data_color: unknown) => Promise<unknown>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
79
|
+
function useMeshCellsVertexAttributeStyle(): UseMeshCellsVertexAttributeStyleReturn {
|
|
80
|
+
const viewerStore = useViewerStore();
|
|
81
|
+
const meshCellsCommonStyle = useMeshCellsCommonStyle();
|
|
82
|
+
function meshCellsVertexAttribute(id: string): AttributeState {
|
|
83
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.vertex shape is defined by the data style schema.
|
|
84
|
+
return meshCellsCommonStyle.meshCellsColoring(id).vertex as AttributeState;
|
|
85
|
+
}
|
|
86
|
+
function meshCellsVertexAttributeStoredConfig(
|
|
87
|
+
id: string,
|
|
88
|
+
name: string | undefined,
|
|
89
|
+
item: number | undefined,
|
|
90
|
+
): AttributeStoredConfig {
|
|
91
|
+
const { storedConfigs } = meshCellsVertexAttribute(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 mutateMeshCellsVertexStyle(
|
|
105
|
+
id: string,
|
|
106
|
+
values: Record<string, unknown>,
|
|
107
|
+
): Promise<string> {
|
|
108
|
+
const result = await meshCellsCommonStyle.mutateMeshCellsStyle(id, {
|
|
109
|
+
coloring: {
|
|
110
|
+
vertex: values,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
async function setMeshCellsVertexAttributeStoredConfig(
|
|
116
|
+
id: string,
|
|
117
|
+
name: string | undefined,
|
|
118
|
+
item: number | undefined,
|
|
119
|
+
config: Partial<AttributeStoredConfig>,
|
|
120
|
+
): Promise<string> {
|
|
121
|
+
const result = await mutateMeshCellsVertexStyle(id, {
|
|
122
|
+
storedConfigs: {
|
|
123
|
+
[name ?? ""]: {
|
|
124
|
+
lastItem: item,
|
|
125
|
+
[item ?? 0]: config,
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
function meshCellsVertexAttributeName(id: string): string | undefined {
|
|
132
|
+
return meshCellsVertexAttribute(id).name;
|
|
133
|
+
}
|
|
134
|
+
function meshCellsVertexAttributeLastItem(id: string, name: string | undefined): number {
|
|
135
|
+
const { storedConfigs } = meshCellsVertexAttribute(id);
|
|
136
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
137
|
+
if (nameConfig !== undefined) {
|
|
138
|
+
return nameConfig.lastItem;
|
|
139
|
+
}
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
function meshCellsVertexAttributeItem(id: string): number {
|
|
143
|
+
const { item, name } = meshCellsVertexAttribute(id);
|
|
144
|
+
return item ?? meshCellsVertexAttributeLastItem(id, name);
|
|
145
|
+
}
|
|
146
|
+
async function setMeshCellsVertexAttribute(
|
|
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 mutateMeshCellsVertexStyle(id, {
|
|
158
|
+
name,
|
|
159
|
+
item,
|
|
160
|
+
});
|
|
161
|
+
await setMeshCellsVertexAttributeStoredConfig(id, name, item, {
|
|
162
|
+
minimum,
|
|
163
|
+
maximum,
|
|
164
|
+
colorMap,
|
|
165
|
+
no_data_color,
|
|
166
|
+
});
|
|
167
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
168
|
+
const schema = meshCellsVertexAttributeSchemas.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 = meshCellsVertexAttributeName(id);
|
|
185
|
+
const item = meshCellsVertexAttributeItem(id);
|
|
186
|
+
const storedConfig = meshCellsVertexAttributeStoredConfig(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 (isMeshCellsVertexAttributeValid(attribute)) {
|
|
196
|
+
const result = await setMeshCellsVertexAttribute(id, attribute);
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
async function setMeshCellsVertexAttributeName(id: string, name: string): Promise<unknown> {
|
|
202
|
+
const item = meshCellsVertexAttributeLastItem(id, name);
|
|
203
|
+
await mutateMeshCellsVertexStyle(id, {
|
|
204
|
+
name,
|
|
205
|
+
item,
|
|
206
|
+
});
|
|
207
|
+
return applyVertexAttribute(id);
|
|
208
|
+
}
|
|
209
|
+
async function setMeshCellsVertexAttributeItem(id: string, item: number): Promise<unknown> {
|
|
210
|
+
await mutateMeshCellsVertexStyle(id, {
|
|
211
|
+
item,
|
|
212
|
+
});
|
|
213
|
+
return applyVertexAttribute(id);
|
|
214
|
+
}
|
|
215
|
+
function meshCellsVertexAttributeRange(id: string): [number | undefined, number | undefined] {
|
|
216
|
+
const name = meshCellsVertexAttributeName(id);
|
|
217
|
+
const item = meshCellsVertexAttributeItem(id);
|
|
218
|
+
const storedConfig = meshCellsVertexAttributeStoredConfig(id, name, item);
|
|
219
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
220
|
+
}
|
|
221
|
+
async function setMeshCellsVertexAttributeRange(
|
|
222
|
+
id: string,
|
|
223
|
+
minimum: number,
|
|
224
|
+
maximum: number,
|
|
225
|
+
): Promise<unknown> {
|
|
226
|
+
const name = meshCellsVertexAttributeName(id);
|
|
227
|
+
const item = meshCellsVertexAttributeItem(id);
|
|
228
|
+
await setMeshCellsVertexAttributeStoredConfig(id, name, item, {
|
|
229
|
+
minimum,
|
|
230
|
+
maximum,
|
|
231
|
+
});
|
|
232
|
+
return applyVertexAttribute(id);
|
|
233
|
+
}
|
|
234
|
+
function meshCellsVertexAttributeColorMap(id: string): string | undefined {
|
|
235
|
+
const name = meshCellsVertexAttributeName(id);
|
|
236
|
+
const item = meshCellsVertexAttributeItem(id);
|
|
237
|
+
const storedConfig = meshCellsVertexAttributeStoredConfig(id, name, item);
|
|
238
|
+
return storedConfig.colorMap;
|
|
239
|
+
}
|
|
240
|
+
async function setMeshCellsVertexAttributeColorMap(
|
|
241
|
+
id: string,
|
|
242
|
+
colorMap: string | undefined,
|
|
243
|
+
): Promise<unknown> {
|
|
244
|
+
const name = meshCellsVertexAttributeName(id);
|
|
245
|
+
const item = meshCellsVertexAttributeItem(id);
|
|
246
|
+
await setMeshCellsVertexAttributeStoredConfig(id, name, item, {
|
|
247
|
+
colorMap,
|
|
248
|
+
});
|
|
249
|
+
return applyVertexAttribute(id);
|
|
250
|
+
}
|
|
251
|
+
function meshCellsVertexAttributeNoDataColor(id: string): unknown {
|
|
252
|
+
const name = meshCellsVertexAttributeName(id);
|
|
253
|
+
const item = meshCellsVertexAttributeItem(id);
|
|
254
|
+
const storedConfig = meshCellsVertexAttributeStoredConfig(id, name, item);
|
|
255
|
+
return storedConfig.no_data_color;
|
|
256
|
+
}
|
|
257
|
+
async function setMeshCellsVertexAttributeNoDataColor(
|
|
258
|
+
id: string,
|
|
259
|
+
no_data_color: unknown,
|
|
260
|
+
): Promise<unknown> {
|
|
261
|
+
const name = meshCellsVertexAttributeName(id);
|
|
262
|
+
const item = meshCellsVertexAttributeItem(id);
|
|
263
|
+
const storedConfig = meshCellsVertexAttributeStoredConfig(id, name, item);
|
|
264
|
+
await setMeshCellsVertexAttributeStoredConfig(id, name, item, {
|
|
265
|
+
...storedConfig,
|
|
266
|
+
no_data_color,
|
|
267
|
+
});
|
|
268
|
+
return applyVertexAttribute(id);
|
|
269
|
+
}
|
|
270
|
+
return {
|
|
271
|
+
meshCellsVertexAttributeName,
|
|
272
|
+
meshCellsVertexAttributeItem,
|
|
273
|
+
meshCellsVertexAttributeRange,
|
|
274
|
+
meshCellsVertexAttributeColorMap,
|
|
275
|
+
meshCellsVertexAttributeStoredConfig,
|
|
276
|
+
setMeshCellsVertexAttribute,
|
|
277
|
+
setMeshCellsVertexAttributeName,
|
|
278
|
+
setMeshCellsVertexAttributeItem,
|
|
279
|
+
setMeshCellsVertexAttributeRange,
|
|
280
|
+
setMeshCellsVertexAttributeColorMap,
|
|
281
|
+
meshCellsVertexAttributeNoDataColor,
|
|
282
|
+
setMeshCellsVertexAttributeNoDataColor,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
export { isMeshCellsVertexAttributeValid, useMeshCellsVertexAttributeStyle };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
3
|
+
|
|
4
|
+
// Local imports
|
|
5
|
+
import { useMeshCellsCommonStyle } from "./common";
|
|
6
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
7
|
+
|
|
8
|
+
// Local constants
|
|
9
|
+
const schema = viewer_schemas.opengeodeweb_viewer.mesh.cells.visibility;
|
|
10
|
+
|
|
11
|
+
export function useMeshCellsVisibilityStyle(): {
|
|
12
|
+
meshCellsVisibility: (id: string) => boolean | undefined;
|
|
13
|
+
setMeshCellsVisibility: (id: string, visibility: boolean | undefined) => Promise<unknown>;
|
|
14
|
+
} {
|
|
15
|
+
const viewerStore = useViewerStore();
|
|
16
|
+
const meshCellsCommonStyle = useMeshCellsCommonStyle();
|
|
17
|
+
|
|
18
|
+
function meshCellsVisibility(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 meshCellsCommonStyle.meshCellsStyle(id).visibility as boolean | undefined;
|
|
21
|
+
}
|
|
22
|
+
async function setMeshCellsVisibility(
|
|
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 () => {
|
|
34
|
+
const mutateResult = await meshCellsCommonStyle.mutateMeshCellsStyle(id, { visibility });
|
|
35
|
+
return mutateResult;
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
);
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
meshCellsVisibility,
|
|
44
|
+
setMeshCellsVisibility,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
@@ -8,27 +8,33 @@ import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
|
8
8
|
// Local constants
|
|
9
9
|
const schema = viewer_schemas.opengeodeweb_viewer.mesh.edges.color;
|
|
10
10
|
|
|
11
|
-
export function useMeshEdgesColorStyle() {
|
|
11
|
+
export function useMeshEdgesColorStyle(): {
|
|
12
|
+
meshEdgesColor: (id: string) => unknown;
|
|
13
|
+
setMeshEdgesColor: (id: string, color: unknown) => Promise<unknown>;
|
|
14
|
+
} {
|
|
12
15
|
const viewerStore = useViewerStore();
|
|
13
16
|
const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
|
|
14
17
|
|
|
15
|
-
function meshEdgesColor(id) {
|
|
18
|
+
function meshEdgesColor(id: string): unknown {
|
|
16
19
|
return meshEdgesCommonStyle.meshEdgesColoring(id).constant;
|
|
17
20
|
}
|
|
18
|
-
function setMeshEdgesColor(id, color) {
|
|
21
|
+
async function setMeshEdgesColor(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
|
-
meshEdgesCommonStyle.mutateMeshEdgesColoring(id, {
|
|
29
|
+
response_function: async () => {
|
|
30
|
+
const mutateResult = await meshEdgesCommonStyle.mutateMeshEdgesColoring(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,41 @@
|
|
|
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 useMeshEdgesCommonStyle(): {
|
|
5
|
+
meshEdgesStyle: (id: string) => StyleValues;
|
|
6
|
+
meshEdgesColoring: (id: string) => StyleValues;
|
|
7
|
+
mutateMeshEdgesStyle: (id: string, values: StyleValues) => Promise<string>;
|
|
8
|
+
mutateMeshEdgesColoring: (id: string, values: StyleValues) => Promise<string>;
|
|
9
|
+
} {
|
|
10
|
+
const dataStyleState = useDataStyleState();
|
|
11
|
+
|
|
12
|
+
async function mutateMeshEdgesStyle(id: string, values: StyleValues): Promise<string> {
|
|
13
|
+
const result = await dataStyleState.mutateStyle(id, {
|
|
14
|
+
edges: values,
|
|
15
|
+
});
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function meshEdgesStyle(id: string): StyleValues {
|
|
20
|
+
return dataStyleState.getStyle(id).edges ?? {};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function meshEdgesColoring(id: string): StyleValues {
|
|
24
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
|
|
25
|
+
return meshEdgesStyle(id).coloring as StyleValues;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async function mutateMeshEdgesColoring(id: string, values: StyleValues): Promise<string> {
|
|
29
|
+
const result = await mutateMeshEdgesStyle(id, {
|
|
30
|
+
coloring: values,
|
|
31
|
+
});
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
meshEdgesStyle,
|
|
37
|
+
meshEdgesColoring,
|
|
38
|
+
mutateMeshEdgesStyle,
|
|
39
|
+
mutateMeshEdgesColoring,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -0,0 +1,279 @@
|
|
|
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 meshEdgesEdgeAttributeSchemas = viewer_schemas.opengeodeweb_viewer.mesh.edges.attribute.edge;
|
|
12
|
+
|
|
13
|
+
interface AttributeStoredConfig {
|
|
14
|
+
minimum: number | undefined;
|
|
15
|
+
maximum: number | undefined;
|
|
16
|
+
colorMap: string | undefined;
|
|
17
|
+
no_data_color: unknown;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface AttributeState {
|
|
21
|
+
name?: string;
|
|
22
|
+
item?: number;
|
|
23
|
+
storedConfigs?: Record<string, { lastItem: number } & Record<string, AttributeStoredConfig>>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface AttributeInput {
|
|
27
|
+
name: string | undefined;
|
|
28
|
+
item: number | undefined;
|
|
29
|
+
minimum: number | undefined;
|
|
30
|
+
maximum: number | undefined;
|
|
31
|
+
colorMap: string | undefined;
|
|
32
|
+
no_data_color?: unknown;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function isMeshEdgesEdgeAttributeValid({
|
|
36
|
+
name,
|
|
37
|
+
item,
|
|
38
|
+
minimum,
|
|
39
|
+
maximum,
|
|
40
|
+
colorMap,
|
|
41
|
+
}: AttributeInput): boolean {
|
|
42
|
+
return (
|
|
43
|
+
name !== undefined &&
|
|
44
|
+
item !== undefined &&
|
|
45
|
+
minimum !== undefined &&
|
|
46
|
+
maximum !== undefined &&
|
|
47
|
+
colorMap !== undefined
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
52
|
+
function useMeshEdgesEdgeAttributeStyle(): {
|
|
53
|
+
meshEdgesEdgeAttributeName: (id: string) => string | undefined;
|
|
54
|
+
meshEdgesEdgeAttributeItem: (id: string) => number;
|
|
55
|
+
meshEdgesEdgeAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
56
|
+
meshEdgesEdgeAttributeColorMap: (id: string) => string | undefined;
|
|
57
|
+
meshEdgesEdgeAttributeStoredConfig: (
|
|
58
|
+
id: string,
|
|
59
|
+
name: string | undefined,
|
|
60
|
+
item: number | undefined,
|
|
61
|
+
) => AttributeStoredConfig;
|
|
62
|
+
setMeshEdgesEdgeAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
63
|
+
setMeshEdgesEdgeAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
64
|
+
setMeshEdgesEdgeAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
65
|
+
setMeshEdgesEdgeAttributeRange: (
|
|
66
|
+
id: string,
|
|
67
|
+
minimum: number,
|
|
68
|
+
maximum: number,
|
|
69
|
+
) => Promise<unknown>;
|
|
70
|
+
setMeshEdgesEdgeAttributeColorMap: (id: string, colorMap: string | undefined) => Promise<unknown>;
|
|
71
|
+
meshEdgesEdgeAttributeNoDataColor: (id: string) => unknown;
|
|
72
|
+
setMeshEdgesEdgeAttributeNoDataColor: (id: string, no_data_color: unknown) => Promise<unknown>;
|
|
73
|
+
} {
|
|
74
|
+
const viewerStore = useViewerStore();
|
|
75
|
+
const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
|
|
76
|
+
function meshEdgesEdgeAttribute(id: string): AttributeState {
|
|
77
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.edge shape is defined by the data style schema.
|
|
78
|
+
return meshEdgesCommonStyle.meshEdgesColoring(id).edge as AttributeState;
|
|
79
|
+
}
|
|
80
|
+
function meshEdgesEdgeAttributeStoredConfig(
|
|
81
|
+
id: string,
|
|
82
|
+
name: string | undefined,
|
|
83
|
+
item: number | undefined,
|
|
84
|
+
): AttributeStoredConfig {
|
|
85
|
+
const { storedConfigs } = meshEdgesEdgeAttribute(id);
|
|
86
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
87
|
+
const itemConfig = item === undefined ? undefined : nameConfig?.[item];
|
|
88
|
+
if (itemConfig !== undefined) {
|
|
89
|
+
return itemConfig;
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
minimum: undefined,
|
|
93
|
+
maximum: undefined,
|
|
94
|
+
colorMap: undefined,
|
|
95
|
+
no_data_color: DEFAULT_NO_DATA_COLOR,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
async function mutateMeshEdgesEdgeStyle(
|
|
99
|
+
id: string,
|
|
100
|
+
values: Record<string, unknown>,
|
|
101
|
+
): Promise<string> {
|
|
102
|
+
const result = await meshEdgesCommonStyle.mutateMeshEdgesStyle(id, {
|
|
103
|
+
coloring: {
|
|
104
|
+
edge: values,
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
async function setMeshEdgesEdgeAttributeStoredConfig(
|
|
110
|
+
id: string,
|
|
111
|
+
name: string | undefined,
|
|
112
|
+
item: number | undefined,
|
|
113
|
+
config: Partial<AttributeStoredConfig>,
|
|
114
|
+
): Promise<string> {
|
|
115
|
+
const result = await mutateMeshEdgesEdgeStyle(id, {
|
|
116
|
+
storedConfigs: {
|
|
117
|
+
[name ?? ""]: {
|
|
118
|
+
lastItem: item,
|
|
119
|
+
[item ?? 0]: config,
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
function meshEdgesEdgeAttributeName(id: string): string | undefined {
|
|
126
|
+
return meshEdgesEdgeAttribute(id).name;
|
|
127
|
+
}
|
|
128
|
+
function meshEdgesEdgeAttributeLastItem(id: string, name: string | undefined): number {
|
|
129
|
+
const { storedConfigs } = meshEdgesEdgeAttribute(id);
|
|
130
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
131
|
+
if (nameConfig !== undefined) {
|
|
132
|
+
return nameConfig.lastItem;
|
|
133
|
+
}
|
|
134
|
+
return 0;
|
|
135
|
+
}
|
|
136
|
+
function meshEdgesEdgeAttributeItem(id: string): number {
|
|
137
|
+
const { item, name } = meshEdgesEdgeAttribute(id);
|
|
138
|
+
return item ?? meshEdgesEdgeAttributeLastItem(id, name);
|
|
139
|
+
}
|
|
140
|
+
async function setMeshEdgesEdgeAttribute(
|
|
141
|
+
id: string,
|
|
142
|
+
{
|
|
143
|
+
name,
|
|
144
|
+
item,
|
|
145
|
+
minimum,
|
|
146
|
+
maximum,
|
|
147
|
+
colorMap,
|
|
148
|
+
no_data_color = DEFAULT_NO_DATA_COLOR,
|
|
149
|
+
}: AttributeInput,
|
|
150
|
+
): Promise<unknown> {
|
|
151
|
+
await mutateMeshEdgesEdgeStyle(id, {
|
|
152
|
+
name,
|
|
153
|
+
item,
|
|
154
|
+
});
|
|
155
|
+
await setMeshEdgesEdgeAttributeStoredConfig(id, name, item, {
|
|
156
|
+
minimum,
|
|
157
|
+
maximum,
|
|
158
|
+
colorMap,
|
|
159
|
+
no_data_color,
|
|
160
|
+
});
|
|
161
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
162
|
+
const schema = meshEdgesEdgeAttributeSchemas.attribute;
|
|
163
|
+
const params = {
|
|
164
|
+
id,
|
|
165
|
+
name,
|
|
166
|
+
item,
|
|
167
|
+
points,
|
|
168
|
+
minimum,
|
|
169
|
+
maximum,
|
|
170
|
+
no_data_color,
|
|
171
|
+
};
|
|
172
|
+
return viewerStore.request({
|
|
173
|
+
schema,
|
|
174
|
+
params,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
async function applyEdgeAttribute(id: string): Promise<unknown> {
|
|
178
|
+
const name = meshEdgesEdgeAttributeName(id);
|
|
179
|
+
const item = meshEdgesEdgeAttributeItem(id);
|
|
180
|
+
const storedConfig = meshEdgesEdgeAttributeStoredConfig(id, name, item);
|
|
181
|
+
const attribute = {
|
|
182
|
+
name,
|
|
183
|
+
item,
|
|
184
|
+
minimum: storedConfig.minimum,
|
|
185
|
+
maximum: storedConfig.maximum,
|
|
186
|
+
colorMap: storedConfig.colorMap,
|
|
187
|
+
no_data_color: storedConfig.no_data_color,
|
|
188
|
+
};
|
|
189
|
+
if (isMeshEdgesEdgeAttributeValid(attribute)) {
|
|
190
|
+
const result = await setMeshEdgesEdgeAttribute(id, attribute);
|
|
191
|
+
return result;
|
|
192
|
+
}
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
async function setMeshEdgesEdgeAttributeName(id: string, name: string): Promise<unknown> {
|
|
196
|
+
const item = meshEdgesEdgeAttributeLastItem(id, name);
|
|
197
|
+
await mutateMeshEdgesEdgeStyle(id, {
|
|
198
|
+
name,
|
|
199
|
+
item,
|
|
200
|
+
});
|
|
201
|
+
return applyEdgeAttribute(id);
|
|
202
|
+
}
|
|
203
|
+
async function setMeshEdgesEdgeAttributeItem(id: string, item: number): Promise<unknown> {
|
|
204
|
+
await mutateMeshEdgesEdgeStyle(id, {
|
|
205
|
+
item,
|
|
206
|
+
});
|
|
207
|
+
return applyEdgeAttribute(id);
|
|
208
|
+
}
|
|
209
|
+
function meshEdgesEdgeAttributeRange(id: string): [number | undefined, number | undefined] {
|
|
210
|
+
const name = meshEdgesEdgeAttributeName(id);
|
|
211
|
+
const item = meshEdgesEdgeAttributeItem(id);
|
|
212
|
+
const storedConfig = meshEdgesEdgeAttributeStoredConfig(id, name, item);
|
|
213
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
214
|
+
}
|
|
215
|
+
async function setMeshEdgesEdgeAttributeRange(
|
|
216
|
+
id: string,
|
|
217
|
+
minimum: number,
|
|
218
|
+
maximum: number,
|
|
219
|
+
): Promise<unknown> {
|
|
220
|
+
const name = meshEdgesEdgeAttributeName(id);
|
|
221
|
+
const item = meshEdgesEdgeAttributeItem(id);
|
|
222
|
+
await setMeshEdgesEdgeAttributeStoredConfig(id, name, item, {
|
|
223
|
+
minimum,
|
|
224
|
+
maximum,
|
|
225
|
+
});
|
|
226
|
+
return applyEdgeAttribute(id);
|
|
227
|
+
}
|
|
228
|
+
function meshEdgesEdgeAttributeColorMap(id: string): string | undefined {
|
|
229
|
+
const name = meshEdgesEdgeAttributeName(id);
|
|
230
|
+
const item = meshEdgesEdgeAttributeItem(id);
|
|
231
|
+
const storedConfig = meshEdgesEdgeAttributeStoredConfig(id, name, item);
|
|
232
|
+
return storedConfig.colorMap;
|
|
233
|
+
}
|
|
234
|
+
async function setMeshEdgesEdgeAttributeColorMap(
|
|
235
|
+
id: string,
|
|
236
|
+
colorMap: string | undefined,
|
|
237
|
+
): Promise<unknown> {
|
|
238
|
+
const name = meshEdgesEdgeAttributeName(id);
|
|
239
|
+
const item = meshEdgesEdgeAttributeItem(id);
|
|
240
|
+
await setMeshEdgesEdgeAttributeStoredConfig(id, name, item, {
|
|
241
|
+
colorMap,
|
|
242
|
+
});
|
|
243
|
+
return applyEdgeAttribute(id);
|
|
244
|
+
}
|
|
245
|
+
function meshEdgesEdgeAttributeNoDataColor(id: string): unknown {
|
|
246
|
+
const name = meshEdgesEdgeAttributeName(id);
|
|
247
|
+
const item = meshEdgesEdgeAttributeItem(id);
|
|
248
|
+
const storedConfig = meshEdgesEdgeAttributeStoredConfig(id, name, item);
|
|
249
|
+
return storedConfig.no_data_color;
|
|
250
|
+
}
|
|
251
|
+
async function setMeshEdgesEdgeAttributeNoDataColor(
|
|
252
|
+
id: string,
|
|
253
|
+
no_data_color: unknown,
|
|
254
|
+
): Promise<unknown> {
|
|
255
|
+
const name = meshEdgesEdgeAttributeName(id);
|
|
256
|
+
const item = meshEdgesEdgeAttributeItem(id);
|
|
257
|
+
const storedConfig = meshEdgesEdgeAttributeStoredConfig(id, name, item);
|
|
258
|
+
await setMeshEdgesEdgeAttributeStoredConfig(id, name, item, {
|
|
259
|
+
...storedConfig,
|
|
260
|
+
no_data_color,
|
|
261
|
+
});
|
|
262
|
+
return applyEdgeAttribute(id);
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
meshEdgesEdgeAttributeName,
|
|
266
|
+
meshEdgesEdgeAttributeItem,
|
|
267
|
+
meshEdgesEdgeAttributeRange,
|
|
268
|
+
meshEdgesEdgeAttributeColorMap,
|
|
269
|
+
meshEdgesEdgeAttributeStoredConfig,
|
|
270
|
+
setMeshEdgesEdgeAttribute,
|
|
271
|
+
setMeshEdgesEdgeAttributeName,
|
|
272
|
+
setMeshEdgesEdgeAttributeItem,
|
|
273
|
+
setMeshEdgesEdgeAttributeRange,
|
|
274
|
+
setMeshEdgesEdgeAttributeColorMap,
|
|
275
|
+
meshEdgesEdgeAttributeNoDataColor,
|
|
276
|
+
setMeshEdgesEdgeAttributeNoDataColor,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
export { isMeshEdgesEdgeAttributeValid, useMeshEdgesEdgeAttributeStyle };
|