@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,294 @@
|
|
|
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 { useMeshPolyhedraCommonStyle } from "./common";
|
|
8
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
9
|
+
|
|
10
|
+
// Local constants
|
|
11
|
+
const meshPolyhedraPolyhedronAttributeSchemas =
|
|
12
|
+
viewer_schemas.opengeodeweb_viewer.mesh.polyhedra.attribute.polyhedron;
|
|
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 isMeshPolyhedraPolyhedronAttributeValid({
|
|
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
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
53
|
+
function useMeshPolyhedraPolyhedronAttributeStyle(): {
|
|
54
|
+
meshPolyhedraPolyhedronAttributeName: (id: string) => string | undefined;
|
|
55
|
+
meshPolyhedraPolyhedronAttributeItem: (id: string) => number;
|
|
56
|
+
meshPolyhedraPolyhedronAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
57
|
+
meshPolyhedraPolyhedronAttributeColorMap: (id: string) => string | undefined;
|
|
58
|
+
meshPolyhedraPolyhedronAttributeStoredConfig: (
|
|
59
|
+
id: string,
|
|
60
|
+
name: string | undefined,
|
|
61
|
+
item: number | undefined,
|
|
62
|
+
) => AttributeStoredConfig;
|
|
63
|
+
setMeshPolyhedraPolyhedronAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
64
|
+
setMeshPolyhedraPolyhedronAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
65
|
+
setMeshPolyhedraPolyhedronAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
66
|
+
setMeshPolyhedraPolyhedronAttributeRange: (
|
|
67
|
+
id: string,
|
|
68
|
+
minimum: number,
|
|
69
|
+
maximum: number,
|
|
70
|
+
) => Promise<unknown>;
|
|
71
|
+
setMeshPolyhedraPolyhedronAttributeColorMap: (
|
|
72
|
+
id: string,
|
|
73
|
+
colorMap: string | undefined,
|
|
74
|
+
) => Promise<unknown>;
|
|
75
|
+
meshPolyhedraPolyhedronAttributeNoDataColor: (id: string) => unknown;
|
|
76
|
+
setMeshPolyhedraPolyhedronAttributeNoDataColor: (
|
|
77
|
+
id: string,
|
|
78
|
+
no_data_color: unknown,
|
|
79
|
+
) => Promise<unknown>;
|
|
80
|
+
} {
|
|
81
|
+
const viewerStore = useViewerStore();
|
|
82
|
+
const meshPolyhedraCommonStyle = useMeshPolyhedraCommonStyle();
|
|
83
|
+
function meshPolyhedraPolyhedronAttribute(id: string): AttributeState {
|
|
84
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.polyhedron shape is defined by the data style schema.
|
|
85
|
+
return meshPolyhedraCommonStyle.meshPolyhedraColoring(id).polyhedron as AttributeState;
|
|
86
|
+
}
|
|
87
|
+
function meshPolyhedraPolyhedronAttributeStoredConfig(
|
|
88
|
+
id: string,
|
|
89
|
+
name: string | undefined,
|
|
90
|
+
item: number | undefined,
|
|
91
|
+
): AttributeStoredConfig {
|
|
92
|
+
const { storedConfigs } = meshPolyhedraPolyhedronAttribute(id);
|
|
93
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
94
|
+
const itemConfig = item === undefined ? undefined : nameConfig?.[item];
|
|
95
|
+
if (itemConfig !== undefined) {
|
|
96
|
+
return itemConfig;
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
minimum: undefined,
|
|
100
|
+
maximum: undefined,
|
|
101
|
+
colorMap: undefined,
|
|
102
|
+
no_data_color: DEFAULT_NO_DATA_COLOR,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
async function mutateMeshPolyhedraPolyhedronStyle(
|
|
106
|
+
id: string,
|
|
107
|
+
values: Record<string, unknown>,
|
|
108
|
+
): Promise<string> {
|
|
109
|
+
const result = await meshPolyhedraCommonStyle.mutateMeshPolyhedraStyle(id, {
|
|
110
|
+
coloring: {
|
|
111
|
+
polyhedron: values,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
async function setMeshPolyhedraPolyhedronAttributeStoredConfig(
|
|
117
|
+
id: string,
|
|
118
|
+
name: string | undefined,
|
|
119
|
+
item: number | undefined,
|
|
120
|
+
config: Partial<AttributeStoredConfig>,
|
|
121
|
+
): Promise<string> {
|
|
122
|
+
const result = await mutateMeshPolyhedraPolyhedronStyle(id, {
|
|
123
|
+
storedConfigs: {
|
|
124
|
+
[name ?? ""]: {
|
|
125
|
+
lastItem: item,
|
|
126
|
+
[item ?? 0]: config,
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
function meshPolyhedraPolyhedronAttributeName(id: string): string | undefined {
|
|
133
|
+
return meshPolyhedraPolyhedronAttribute(id).name;
|
|
134
|
+
}
|
|
135
|
+
function meshPolyhedraPolyhedronAttributeLastItem(id: string, name: string | undefined): number {
|
|
136
|
+
const { storedConfigs } = meshPolyhedraPolyhedronAttribute(id);
|
|
137
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
138
|
+
if (nameConfig !== undefined) {
|
|
139
|
+
return nameConfig.lastItem;
|
|
140
|
+
}
|
|
141
|
+
return 0;
|
|
142
|
+
}
|
|
143
|
+
function meshPolyhedraPolyhedronAttributeItem(id: string): number {
|
|
144
|
+
const { item, name } = meshPolyhedraPolyhedronAttribute(id);
|
|
145
|
+
return item ?? meshPolyhedraPolyhedronAttributeLastItem(id, name);
|
|
146
|
+
}
|
|
147
|
+
async function setMeshPolyhedraPolyhedronAttribute(
|
|
148
|
+
id: string,
|
|
149
|
+
{
|
|
150
|
+
name,
|
|
151
|
+
item,
|
|
152
|
+
minimum,
|
|
153
|
+
maximum,
|
|
154
|
+
colorMap,
|
|
155
|
+
no_data_color = DEFAULT_NO_DATA_COLOR,
|
|
156
|
+
}: AttributeInput,
|
|
157
|
+
): Promise<unknown> {
|
|
158
|
+
await mutateMeshPolyhedraPolyhedronStyle(id, {
|
|
159
|
+
name,
|
|
160
|
+
item,
|
|
161
|
+
});
|
|
162
|
+
await setMeshPolyhedraPolyhedronAttributeStoredConfig(id, name, item, {
|
|
163
|
+
minimum,
|
|
164
|
+
maximum,
|
|
165
|
+
colorMap,
|
|
166
|
+
no_data_color,
|
|
167
|
+
});
|
|
168
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
169
|
+
const schema = meshPolyhedraPolyhedronAttributeSchemas.attribute;
|
|
170
|
+
const params = {
|
|
171
|
+
id,
|
|
172
|
+
name,
|
|
173
|
+
item,
|
|
174
|
+
points,
|
|
175
|
+
minimum,
|
|
176
|
+
maximum,
|
|
177
|
+
no_data_color,
|
|
178
|
+
};
|
|
179
|
+
return viewerStore.request({
|
|
180
|
+
schema,
|
|
181
|
+
params,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
async function applyPolyhedronAttribute(id: string): Promise<unknown> {
|
|
185
|
+
const name = meshPolyhedraPolyhedronAttributeName(id);
|
|
186
|
+
const item = meshPolyhedraPolyhedronAttributeItem(id);
|
|
187
|
+
const storedConfig = meshPolyhedraPolyhedronAttributeStoredConfig(id, name, item);
|
|
188
|
+
const attribute = {
|
|
189
|
+
name,
|
|
190
|
+
item,
|
|
191
|
+
minimum: storedConfig.minimum,
|
|
192
|
+
maximum: storedConfig.maximum,
|
|
193
|
+
colorMap: storedConfig.colorMap,
|
|
194
|
+
no_data_color: storedConfig.no_data_color,
|
|
195
|
+
};
|
|
196
|
+
if (isMeshPolyhedraPolyhedronAttributeValid(attribute)) {
|
|
197
|
+
const result = await setMeshPolyhedraPolyhedronAttribute(id, attribute);
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
async function setMeshPolyhedraPolyhedronAttributeName(
|
|
203
|
+
id: string,
|
|
204
|
+
name: string,
|
|
205
|
+
): Promise<unknown> {
|
|
206
|
+
const item = meshPolyhedraPolyhedronAttributeLastItem(id, name);
|
|
207
|
+
await mutateMeshPolyhedraPolyhedronStyle(id, {
|
|
208
|
+
name,
|
|
209
|
+
item,
|
|
210
|
+
});
|
|
211
|
+
return applyPolyhedronAttribute(id);
|
|
212
|
+
}
|
|
213
|
+
async function setMeshPolyhedraPolyhedronAttributeItem(
|
|
214
|
+
id: string,
|
|
215
|
+
item: number,
|
|
216
|
+
): Promise<unknown> {
|
|
217
|
+
await mutateMeshPolyhedraPolyhedronStyle(id, {
|
|
218
|
+
item,
|
|
219
|
+
});
|
|
220
|
+
return applyPolyhedronAttribute(id);
|
|
221
|
+
}
|
|
222
|
+
function meshPolyhedraPolyhedronAttributeRange(
|
|
223
|
+
id: string,
|
|
224
|
+
): [number | undefined, number | undefined] {
|
|
225
|
+
const name = meshPolyhedraPolyhedronAttributeName(id);
|
|
226
|
+
const item = meshPolyhedraPolyhedronAttributeItem(id);
|
|
227
|
+
const storedConfig = meshPolyhedraPolyhedronAttributeStoredConfig(id, name, item);
|
|
228
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
229
|
+
}
|
|
230
|
+
async function setMeshPolyhedraPolyhedronAttributeRange(
|
|
231
|
+
id: string,
|
|
232
|
+
minimum: number,
|
|
233
|
+
maximum: number,
|
|
234
|
+
): Promise<unknown> {
|
|
235
|
+
const name = meshPolyhedraPolyhedronAttributeName(id);
|
|
236
|
+
const item = meshPolyhedraPolyhedronAttributeItem(id);
|
|
237
|
+
await setMeshPolyhedraPolyhedronAttributeStoredConfig(id, name, item, {
|
|
238
|
+
minimum,
|
|
239
|
+
maximum,
|
|
240
|
+
});
|
|
241
|
+
return applyPolyhedronAttribute(id);
|
|
242
|
+
}
|
|
243
|
+
function meshPolyhedraPolyhedronAttributeColorMap(id: string): string | undefined {
|
|
244
|
+
const name = meshPolyhedraPolyhedronAttributeName(id);
|
|
245
|
+
const item = meshPolyhedraPolyhedronAttributeItem(id);
|
|
246
|
+
const storedConfig = meshPolyhedraPolyhedronAttributeStoredConfig(id, name, item);
|
|
247
|
+
return storedConfig.colorMap;
|
|
248
|
+
}
|
|
249
|
+
async function setMeshPolyhedraPolyhedronAttributeColorMap(
|
|
250
|
+
id: string,
|
|
251
|
+
colorMap: string | undefined,
|
|
252
|
+
): Promise<unknown> {
|
|
253
|
+
const name = meshPolyhedraPolyhedronAttributeName(id);
|
|
254
|
+
const item = meshPolyhedraPolyhedronAttributeItem(id);
|
|
255
|
+
await setMeshPolyhedraPolyhedronAttributeStoredConfig(id, name, item, {
|
|
256
|
+
colorMap,
|
|
257
|
+
});
|
|
258
|
+
return applyPolyhedronAttribute(id);
|
|
259
|
+
}
|
|
260
|
+
function meshPolyhedraPolyhedronAttributeNoDataColor(id: string): unknown {
|
|
261
|
+
const name = meshPolyhedraPolyhedronAttributeName(id);
|
|
262
|
+
const item = meshPolyhedraPolyhedronAttributeItem(id);
|
|
263
|
+
const storedConfig = meshPolyhedraPolyhedronAttributeStoredConfig(id, name, item);
|
|
264
|
+
return storedConfig.no_data_color;
|
|
265
|
+
}
|
|
266
|
+
async function setMeshPolyhedraPolyhedronAttributeNoDataColor(
|
|
267
|
+
id: string,
|
|
268
|
+
no_data_color: unknown,
|
|
269
|
+
): Promise<unknown> {
|
|
270
|
+
const name = meshPolyhedraPolyhedronAttributeName(id);
|
|
271
|
+
const item = meshPolyhedraPolyhedronAttributeItem(id);
|
|
272
|
+
const storedConfig = meshPolyhedraPolyhedronAttributeStoredConfig(id, name, item);
|
|
273
|
+
await setMeshPolyhedraPolyhedronAttributeStoredConfig(id, name, item, {
|
|
274
|
+
...storedConfig,
|
|
275
|
+
no_data_color,
|
|
276
|
+
});
|
|
277
|
+
return applyPolyhedronAttribute(id);
|
|
278
|
+
}
|
|
279
|
+
return {
|
|
280
|
+
meshPolyhedraPolyhedronAttributeName,
|
|
281
|
+
meshPolyhedraPolyhedronAttributeItem,
|
|
282
|
+
meshPolyhedraPolyhedronAttributeRange,
|
|
283
|
+
meshPolyhedraPolyhedronAttributeColorMap,
|
|
284
|
+
meshPolyhedraPolyhedronAttributeStoredConfig,
|
|
285
|
+
setMeshPolyhedraPolyhedronAttribute,
|
|
286
|
+
setMeshPolyhedraPolyhedronAttributeName,
|
|
287
|
+
setMeshPolyhedraPolyhedronAttributeItem,
|
|
288
|
+
setMeshPolyhedraPolyhedronAttributeRange,
|
|
289
|
+
setMeshPolyhedraPolyhedronAttributeColorMap,
|
|
290
|
+
meshPolyhedraPolyhedronAttributeNoDataColor,
|
|
291
|
+
setMeshPolyhedraPolyhedronAttributeNoDataColor,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
export { isMeshPolyhedraPolyhedronAttributeValid, useMeshPolyhedraPolyhedronAttributeStyle };
|
|
@@ -0,0 +1,288 @@
|
|
|
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 { useMeshPolyhedraCommonStyle } from "./common";
|
|
8
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
9
|
+
|
|
10
|
+
// Local constants
|
|
11
|
+
const meshPolyhedraVertexAttributeSchemas =
|
|
12
|
+
viewer_schemas.opengeodeweb_viewer.mesh.polyhedra.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 isMeshPolyhedraVertexAttributeValid({
|
|
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 UseMeshPolyhedraVertexAttributeStyleReturn {
|
|
53
|
+
meshPolyhedraVertexAttributeName: (id: string) => string | undefined;
|
|
54
|
+
meshPolyhedraVertexAttributeItem: (id: string) => number;
|
|
55
|
+
meshPolyhedraVertexAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
56
|
+
meshPolyhedraVertexAttributeColorMap: (id: string) => string | undefined;
|
|
57
|
+
meshPolyhedraVertexAttributeStoredConfig: (
|
|
58
|
+
id: string,
|
|
59
|
+
name: string | undefined,
|
|
60
|
+
item: number | undefined,
|
|
61
|
+
) => AttributeStoredConfig;
|
|
62
|
+
setMeshPolyhedraVertexAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
63
|
+
setMeshPolyhedraVertexAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
64
|
+
setMeshPolyhedraVertexAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
65
|
+
setMeshPolyhedraVertexAttributeRange: (
|
|
66
|
+
id: string,
|
|
67
|
+
minimum: number,
|
|
68
|
+
maximum: number,
|
|
69
|
+
) => Promise<unknown>;
|
|
70
|
+
setMeshPolyhedraVertexAttributeColorMap: (
|
|
71
|
+
id: string,
|
|
72
|
+
colorMap: string | undefined,
|
|
73
|
+
) => Promise<unknown>;
|
|
74
|
+
meshPolyhedraVertexAttributeNoDataColor: (id: string) => unknown;
|
|
75
|
+
setMeshPolyhedraVertexAttributeNoDataColor: (
|
|
76
|
+
id: string,
|
|
77
|
+
no_data_color: unknown,
|
|
78
|
+
) => Promise<unknown>;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
82
|
+
function useMeshPolyhedraVertexAttributeStyle(): UseMeshPolyhedraVertexAttributeStyleReturn {
|
|
83
|
+
const viewerStore = useViewerStore();
|
|
84
|
+
const meshPolyhedraCommonStyle = useMeshPolyhedraCommonStyle();
|
|
85
|
+
function meshPolyhedraVertexAttribute(id: string): AttributeState {
|
|
86
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.vertex shape is defined by the data style schema.
|
|
87
|
+
return meshPolyhedraCommonStyle.meshPolyhedraColoring(id).vertex as AttributeState;
|
|
88
|
+
}
|
|
89
|
+
function meshPolyhedraVertexAttributeStoredConfig(
|
|
90
|
+
id: string,
|
|
91
|
+
name: string | undefined,
|
|
92
|
+
item: number | undefined,
|
|
93
|
+
): AttributeStoredConfig {
|
|
94
|
+
const { storedConfigs } = meshPolyhedraVertexAttribute(id);
|
|
95
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
96
|
+
const itemConfig = item === undefined ? undefined : nameConfig?.[item];
|
|
97
|
+
if (itemConfig !== undefined) {
|
|
98
|
+
return itemConfig;
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
minimum: undefined,
|
|
102
|
+
maximum: undefined,
|
|
103
|
+
colorMap: undefined,
|
|
104
|
+
no_data_color: DEFAULT_NO_DATA_COLOR,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
async function mutateMeshPolyhedraVertexStyle(
|
|
108
|
+
id: string,
|
|
109
|
+
values: Record<string, unknown>,
|
|
110
|
+
): Promise<string> {
|
|
111
|
+
const result = await meshPolyhedraCommonStyle.mutateMeshPolyhedraStyle(id, {
|
|
112
|
+
coloring: {
|
|
113
|
+
vertex: values,
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
async function setMeshPolyhedraVertexAttributeStoredConfig(
|
|
119
|
+
id: string,
|
|
120
|
+
name: string | undefined,
|
|
121
|
+
item: number | undefined,
|
|
122
|
+
config: Partial<AttributeStoredConfig>,
|
|
123
|
+
): Promise<string> {
|
|
124
|
+
const result = await mutateMeshPolyhedraVertexStyle(id, {
|
|
125
|
+
storedConfigs: {
|
|
126
|
+
[name ?? ""]: {
|
|
127
|
+
lastItem: item,
|
|
128
|
+
[item ?? 0]: config,
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
function meshPolyhedraVertexAttributeName(id: string): string | undefined {
|
|
135
|
+
return meshPolyhedraVertexAttribute(id).name;
|
|
136
|
+
}
|
|
137
|
+
function meshPolyhedraVertexAttributeLastItem(id: string, name: string | undefined): number {
|
|
138
|
+
const { storedConfigs } = meshPolyhedraVertexAttribute(id);
|
|
139
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
140
|
+
if (nameConfig !== undefined) {
|
|
141
|
+
return nameConfig.lastItem;
|
|
142
|
+
}
|
|
143
|
+
return 0;
|
|
144
|
+
}
|
|
145
|
+
function meshPolyhedraVertexAttributeItem(id: string): number {
|
|
146
|
+
const { item, name } = meshPolyhedraVertexAttribute(id);
|
|
147
|
+
return item ?? meshPolyhedraVertexAttributeLastItem(id, name);
|
|
148
|
+
}
|
|
149
|
+
async function setMeshPolyhedraVertexAttribute(
|
|
150
|
+
id: string,
|
|
151
|
+
{
|
|
152
|
+
name,
|
|
153
|
+
item,
|
|
154
|
+
minimum,
|
|
155
|
+
maximum,
|
|
156
|
+
colorMap,
|
|
157
|
+
no_data_color = DEFAULT_NO_DATA_COLOR,
|
|
158
|
+
}: AttributeInput,
|
|
159
|
+
): Promise<unknown> {
|
|
160
|
+
await mutateMeshPolyhedraVertexStyle(id, {
|
|
161
|
+
name,
|
|
162
|
+
item,
|
|
163
|
+
});
|
|
164
|
+
await setMeshPolyhedraVertexAttributeStoredConfig(id, name, item, {
|
|
165
|
+
minimum,
|
|
166
|
+
maximum,
|
|
167
|
+
colorMap,
|
|
168
|
+
no_data_color,
|
|
169
|
+
});
|
|
170
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
171
|
+
const schema = meshPolyhedraVertexAttributeSchemas.attribute;
|
|
172
|
+
const params = {
|
|
173
|
+
id,
|
|
174
|
+
name,
|
|
175
|
+
item,
|
|
176
|
+
points,
|
|
177
|
+
minimum,
|
|
178
|
+
maximum,
|
|
179
|
+
no_data_color,
|
|
180
|
+
};
|
|
181
|
+
return viewerStore.request({
|
|
182
|
+
schema,
|
|
183
|
+
params,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
async function applyVertexAttribute(id: string): Promise<unknown> {
|
|
187
|
+
const name = meshPolyhedraVertexAttributeName(id);
|
|
188
|
+
const item = meshPolyhedraVertexAttributeItem(id);
|
|
189
|
+
const storedConfig = meshPolyhedraVertexAttributeStoredConfig(id, name, item);
|
|
190
|
+
const attribute = {
|
|
191
|
+
name,
|
|
192
|
+
item,
|
|
193
|
+
minimum: storedConfig.minimum,
|
|
194
|
+
maximum: storedConfig.maximum,
|
|
195
|
+
colorMap: storedConfig.colorMap,
|
|
196
|
+
no_data_color: storedConfig.no_data_color,
|
|
197
|
+
};
|
|
198
|
+
if (isMeshPolyhedraVertexAttributeValid(attribute)) {
|
|
199
|
+
const result = await setMeshPolyhedraVertexAttribute(id, attribute);
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
async function setMeshPolyhedraVertexAttributeName(id: string, name: string): Promise<unknown> {
|
|
205
|
+
const item = meshPolyhedraVertexAttributeLastItem(id, name);
|
|
206
|
+
await mutateMeshPolyhedraVertexStyle(id, {
|
|
207
|
+
name,
|
|
208
|
+
item,
|
|
209
|
+
});
|
|
210
|
+
return applyVertexAttribute(id);
|
|
211
|
+
}
|
|
212
|
+
async function setMeshPolyhedraVertexAttributeItem(id: string, item: number): Promise<unknown> {
|
|
213
|
+
await mutateMeshPolyhedraVertexStyle(id, {
|
|
214
|
+
item,
|
|
215
|
+
});
|
|
216
|
+
return applyVertexAttribute(id);
|
|
217
|
+
}
|
|
218
|
+
function meshPolyhedraVertexAttributeRange(id: string): [number | undefined, number | undefined] {
|
|
219
|
+
const name = meshPolyhedraVertexAttributeName(id);
|
|
220
|
+
const item = meshPolyhedraVertexAttributeItem(id);
|
|
221
|
+
const storedConfig = meshPolyhedraVertexAttributeStoredConfig(id, name, item);
|
|
222
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
223
|
+
}
|
|
224
|
+
async function setMeshPolyhedraVertexAttributeRange(
|
|
225
|
+
id: string,
|
|
226
|
+
minimum: number,
|
|
227
|
+
maximum: number,
|
|
228
|
+
): Promise<unknown> {
|
|
229
|
+
const name = meshPolyhedraVertexAttributeName(id);
|
|
230
|
+
const item = meshPolyhedraVertexAttributeItem(id);
|
|
231
|
+
await setMeshPolyhedraVertexAttributeStoredConfig(id, name, item, {
|
|
232
|
+
minimum,
|
|
233
|
+
maximum,
|
|
234
|
+
});
|
|
235
|
+
return applyVertexAttribute(id);
|
|
236
|
+
}
|
|
237
|
+
function meshPolyhedraVertexAttributeColorMap(id: string): string | undefined {
|
|
238
|
+
const name = meshPolyhedraVertexAttributeName(id);
|
|
239
|
+
const item = meshPolyhedraVertexAttributeItem(id);
|
|
240
|
+
const storedConfig = meshPolyhedraVertexAttributeStoredConfig(id, name, item);
|
|
241
|
+
return storedConfig.colorMap;
|
|
242
|
+
}
|
|
243
|
+
async function setMeshPolyhedraVertexAttributeColorMap(
|
|
244
|
+
id: string,
|
|
245
|
+
colorMap: string | undefined,
|
|
246
|
+
): Promise<unknown> {
|
|
247
|
+
const name = meshPolyhedraVertexAttributeName(id);
|
|
248
|
+
const item = meshPolyhedraVertexAttributeItem(id);
|
|
249
|
+
await setMeshPolyhedraVertexAttributeStoredConfig(id, name, item, {
|
|
250
|
+
colorMap,
|
|
251
|
+
});
|
|
252
|
+
return applyVertexAttribute(id);
|
|
253
|
+
}
|
|
254
|
+
function meshPolyhedraVertexAttributeNoDataColor(id: string): unknown {
|
|
255
|
+
const name = meshPolyhedraVertexAttributeName(id);
|
|
256
|
+
const item = meshPolyhedraVertexAttributeItem(id);
|
|
257
|
+
const storedConfig = meshPolyhedraVertexAttributeStoredConfig(id, name, item);
|
|
258
|
+
return storedConfig.no_data_color;
|
|
259
|
+
}
|
|
260
|
+
async function setMeshPolyhedraVertexAttributeNoDataColor(
|
|
261
|
+
id: string,
|
|
262
|
+
no_data_color: unknown,
|
|
263
|
+
): Promise<unknown> {
|
|
264
|
+
const name = meshPolyhedraVertexAttributeName(id);
|
|
265
|
+
const item = meshPolyhedraVertexAttributeItem(id);
|
|
266
|
+
const storedConfig = meshPolyhedraVertexAttributeStoredConfig(id, name, item);
|
|
267
|
+
await setMeshPolyhedraVertexAttributeStoredConfig(id, name, item, {
|
|
268
|
+
...storedConfig,
|
|
269
|
+
no_data_color,
|
|
270
|
+
});
|
|
271
|
+
return applyVertexAttribute(id);
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
meshPolyhedraVertexAttributeName,
|
|
275
|
+
meshPolyhedraVertexAttributeItem,
|
|
276
|
+
meshPolyhedraVertexAttributeRange,
|
|
277
|
+
meshPolyhedraVertexAttributeColorMap,
|
|
278
|
+
meshPolyhedraVertexAttributeStoredConfig,
|
|
279
|
+
setMeshPolyhedraVertexAttribute,
|
|
280
|
+
setMeshPolyhedraVertexAttributeName,
|
|
281
|
+
setMeshPolyhedraVertexAttributeItem,
|
|
282
|
+
setMeshPolyhedraVertexAttributeRange,
|
|
283
|
+
setMeshPolyhedraVertexAttributeColorMap,
|
|
284
|
+
meshPolyhedraVertexAttributeNoDataColor,
|
|
285
|
+
setMeshPolyhedraVertexAttributeNoDataColor,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
export { isMeshPolyhedraVertexAttributeValid, useMeshPolyhedraVertexAttributeStyle };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
3
|
+
|
|
4
|
+
// Local imports
|
|
5
|
+
import { useMeshPolyhedraCommonStyle } from "./common";
|
|
6
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
7
|
+
|
|
8
|
+
// Local constants
|
|
9
|
+
const schema = viewer_schemas.opengeodeweb_viewer.mesh.polyhedra.visibility;
|
|
10
|
+
|
|
11
|
+
export function useMeshPolyhedraVisibilityStyle(): {
|
|
12
|
+
meshPolyhedraVisibility: (id: string) => boolean | undefined;
|
|
13
|
+
setMeshPolyhedraVisibility: (id: string, visibility: boolean | undefined) => Promise<unknown>;
|
|
14
|
+
} {
|
|
15
|
+
const viewerStore = useViewerStore();
|
|
16
|
+
const meshPolyhedraCommonStyle = useMeshPolyhedraCommonStyle();
|
|
17
|
+
|
|
18
|
+
function meshPolyhedraVisibility(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 meshPolyhedraCommonStyle.meshPolyhedraStyle(id).visibility as boolean | undefined;
|
|
21
|
+
}
|
|
22
|
+
async function setMeshPolyhedraVisibility(
|
|
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 mutation_result = await meshPolyhedraCommonStyle.mutateMeshPolyhedraStyle(id, {
|
|
35
|
+
visibility,
|
|
36
|
+
});
|
|
37
|
+
return mutation_result;
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
);
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
meshPolyhedraVisibility,
|
|
46
|
+
setMeshPolyhedraVisibility,
|
|
47
|
+
};
|
|
48
|
+
}
|