@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,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 { useMeshPolygonsCommonStyle } from "./common";
|
|
8
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
9
|
+
|
|
10
|
+
// Local constants
|
|
11
|
+
const meshPolygonsVertexAttributeSchemas =
|
|
12
|
+
viewer_schemas.opengeodeweb_viewer.mesh.polygons.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 isMeshPolygonsVertexAttributeValid({
|
|
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 UseMeshPolygonsVertexAttributeStyleReturn {
|
|
53
|
+
meshPolygonsVertexAttributeName: (id: string) => string | undefined;
|
|
54
|
+
meshPolygonsVertexAttributeItem: (id: string) => number;
|
|
55
|
+
meshPolygonsVertexAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
56
|
+
meshPolygonsVertexAttributeColorMap: (id: string) => string | undefined;
|
|
57
|
+
meshPolygonsVertexAttributeStoredConfig: (
|
|
58
|
+
id: string,
|
|
59
|
+
name: string | undefined,
|
|
60
|
+
item: number | undefined,
|
|
61
|
+
) => AttributeStoredConfig;
|
|
62
|
+
setMeshPolygonsVertexAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
63
|
+
setMeshPolygonsVertexAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
64
|
+
setMeshPolygonsVertexAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
65
|
+
setMeshPolygonsVertexAttributeRange: (
|
|
66
|
+
id: string,
|
|
67
|
+
minimum: number,
|
|
68
|
+
maximum: number,
|
|
69
|
+
) => Promise<unknown>;
|
|
70
|
+
setMeshPolygonsVertexAttributeColorMap: (
|
|
71
|
+
id: string,
|
|
72
|
+
colorMap: string | undefined,
|
|
73
|
+
) => Promise<unknown>;
|
|
74
|
+
meshPolygonsVertexAttributeNoDataColor: (id: string) => unknown;
|
|
75
|
+
setMeshPolygonsVertexAttributeNoDataColor: (
|
|
76
|
+
id: string,
|
|
77
|
+
no_data_color: unknown,
|
|
78
|
+
) => Promise<unknown>;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
82
|
+
function useMeshPolygonsVertexAttributeStyle(): UseMeshPolygonsVertexAttributeStyleReturn {
|
|
83
|
+
const viewerStore = useViewerStore();
|
|
84
|
+
const meshPolygonsCommonStyle = useMeshPolygonsCommonStyle();
|
|
85
|
+
function meshPolygonsVertexAttribute(id: string): AttributeState {
|
|
86
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.vertex shape is defined by the data style schema.
|
|
87
|
+
return meshPolygonsCommonStyle.meshPolygonsColoring(id).vertex as AttributeState;
|
|
88
|
+
}
|
|
89
|
+
function meshPolygonsVertexAttributeStoredConfig(
|
|
90
|
+
id: string,
|
|
91
|
+
name: string | undefined,
|
|
92
|
+
item: number | undefined,
|
|
93
|
+
): AttributeStoredConfig {
|
|
94
|
+
const { storedConfigs } = meshPolygonsVertexAttribute(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 mutateMeshPolygonsVertexStyle(
|
|
108
|
+
id: string,
|
|
109
|
+
values: Record<string, unknown>,
|
|
110
|
+
): Promise<string> {
|
|
111
|
+
const result = await meshPolygonsCommonStyle.mutateMeshPolygonsStyle(id, {
|
|
112
|
+
coloring: {
|
|
113
|
+
vertex: values,
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
async function setMeshPolygonsVertexAttributeStoredConfig(
|
|
119
|
+
id: string,
|
|
120
|
+
name: string | undefined,
|
|
121
|
+
item: number | undefined,
|
|
122
|
+
config: Partial<AttributeStoredConfig>,
|
|
123
|
+
): Promise<string> {
|
|
124
|
+
const result = await mutateMeshPolygonsVertexStyle(id, {
|
|
125
|
+
storedConfigs: {
|
|
126
|
+
[name ?? ""]: {
|
|
127
|
+
lastItem: item,
|
|
128
|
+
[item ?? 0]: config,
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
function meshPolygonsVertexAttributeName(id: string): string | undefined {
|
|
135
|
+
return meshPolygonsVertexAttribute(id).name;
|
|
136
|
+
}
|
|
137
|
+
function meshPolygonsVertexAttributeLastItem(id: string, name: string | undefined): number {
|
|
138
|
+
const { storedConfigs } = meshPolygonsVertexAttribute(id);
|
|
139
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
140
|
+
if (nameConfig !== undefined) {
|
|
141
|
+
return nameConfig.lastItem;
|
|
142
|
+
}
|
|
143
|
+
return 0;
|
|
144
|
+
}
|
|
145
|
+
function meshPolygonsVertexAttributeItem(id: string): number {
|
|
146
|
+
const { item, name } = meshPolygonsVertexAttribute(id);
|
|
147
|
+
return item ?? meshPolygonsVertexAttributeLastItem(id, name);
|
|
148
|
+
}
|
|
149
|
+
async function setMeshPolygonsVertexAttribute(
|
|
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 mutateMeshPolygonsVertexStyle(id, {
|
|
161
|
+
name,
|
|
162
|
+
item,
|
|
163
|
+
});
|
|
164
|
+
await setMeshPolygonsVertexAttributeStoredConfig(id, name, item, {
|
|
165
|
+
minimum,
|
|
166
|
+
maximum,
|
|
167
|
+
colorMap,
|
|
168
|
+
no_data_color,
|
|
169
|
+
});
|
|
170
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
171
|
+
const schema = meshPolygonsVertexAttributeSchemas.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 = meshPolygonsVertexAttributeName(id);
|
|
188
|
+
const item = meshPolygonsVertexAttributeItem(id);
|
|
189
|
+
const storedConfig = meshPolygonsVertexAttributeStoredConfig(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 (isMeshPolygonsVertexAttributeValid(attribute)) {
|
|
199
|
+
const result = await setMeshPolygonsVertexAttribute(id, attribute);
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
async function setMeshPolygonsVertexAttributeName(id: string, name: string): Promise<unknown> {
|
|
205
|
+
const item = meshPolygonsVertexAttributeLastItem(id, name);
|
|
206
|
+
await mutateMeshPolygonsVertexStyle(id, {
|
|
207
|
+
name,
|
|
208
|
+
item,
|
|
209
|
+
});
|
|
210
|
+
return applyVertexAttribute(id);
|
|
211
|
+
}
|
|
212
|
+
async function setMeshPolygonsVertexAttributeItem(id: string, item: number): Promise<unknown> {
|
|
213
|
+
await mutateMeshPolygonsVertexStyle(id, {
|
|
214
|
+
item,
|
|
215
|
+
});
|
|
216
|
+
return applyVertexAttribute(id);
|
|
217
|
+
}
|
|
218
|
+
function meshPolygonsVertexAttributeRange(id: string): [number | undefined, number | undefined] {
|
|
219
|
+
const name = meshPolygonsVertexAttributeName(id);
|
|
220
|
+
const item = meshPolygonsVertexAttributeItem(id);
|
|
221
|
+
const storedConfig = meshPolygonsVertexAttributeStoredConfig(id, name, item);
|
|
222
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
223
|
+
}
|
|
224
|
+
async function setMeshPolygonsVertexAttributeRange(
|
|
225
|
+
id: string,
|
|
226
|
+
minimum: number,
|
|
227
|
+
maximum: number,
|
|
228
|
+
): Promise<unknown> {
|
|
229
|
+
const name = meshPolygonsVertexAttributeName(id);
|
|
230
|
+
const item = meshPolygonsVertexAttributeItem(id);
|
|
231
|
+
await setMeshPolygonsVertexAttributeStoredConfig(id, name, item, {
|
|
232
|
+
minimum,
|
|
233
|
+
maximum,
|
|
234
|
+
});
|
|
235
|
+
return applyVertexAttribute(id);
|
|
236
|
+
}
|
|
237
|
+
function meshPolygonsVertexAttributeColorMap(id: string): string | undefined {
|
|
238
|
+
const name = meshPolygonsVertexAttributeName(id);
|
|
239
|
+
const item = meshPolygonsVertexAttributeItem(id);
|
|
240
|
+
const storedConfig = meshPolygonsVertexAttributeStoredConfig(id, name, item);
|
|
241
|
+
return storedConfig.colorMap;
|
|
242
|
+
}
|
|
243
|
+
async function setMeshPolygonsVertexAttributeColorMap(
|
|
244
|
+
id: string,
|
|
245
|
+
colorMap: string | undefined,
|
|
246
|
+
): Promise<unknown> {
|
|
247
|
+
const name = meshPolygonsVertexAttributeName(id);
|
|
248
|
+
const item = meshPolygonsVertexAttributeItem(id);
|
|
249
|
+
await setMeshPolygonsVertexAttributeStoredConfig(id, name, item, {
|
|
250
|
+
colorMap,
|
|
251
|
+
});
|
|
252
|
+
return applyVertexAttribute(id);
|
|
253
|
+
}
|
|
254
|
+
function meshPolygonsVertexAttributeNoDataColor(id: string): unknown {
|
|
255
|
+
const name = meshPolygonsVertexAttributeName(id);
|
|
256
|
+
const item = meshPolygonsVertexAttributeItem(id);
|
|
257
|
+
const storedConfig = meshPolygonsVertexAttributeStoredConfig(id, name, item);
|
|
258
|
+
return storedConfig.no_data_color;
|
|
259
|
+
}
|
|
260
|
+
async function setMeshPolygonsVertexAttributeNoDataColor(
|
|
261
|
+
id: string,
|
|
262
|
+
no_data_color: unknown,
|
|
263
|
+
): Promise<unknown> {
|
|
264
|
+
const name = meshPolygonsVertexAttributeName(id);
|
|
265
|
+
const item = meshPolygonsVertexAttributeItem(id);
|
|
266
|
+
const storedConfig = meshPolygonsVertexAttributeStoredConfig(id, name, item);
|
|
267
|
+
await setMeshPolygonsVertexAttributeStoredConfig(id, name, item, {
|
|
268
|
+
...storedConfig,
|
|
269
|
+
no_data_color,
|
|
270
|
+
});
|
|
271
|
+
return applyVertexAttribute(id);
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
meshPolygonsVertexAttributeName,
|
|
275
|
+
meshPolygonsVertexAttributeItem,
|
|
276
|
+
meshPolygonsVertexAttributeRange,
|
|
277
|
+
meshPolygonsVertexAttributeColorMap,
|
|
278
|
+
meshPolygonsVertexAttributeStoredConfig,
|
|
279
|
+
setMeshPolygonsVertexAttribute,
|
|
280
|
+
setMeshPolygonsVertexAttributeName,
|
|
281
|
+
setMeshPolygonsVertexAttributeItem,
|
|
282
|
+
setMeshPolygonsVertexAttributeRange,
|
|
283
|
+
setMeshPolygonsVertexAttributeColorMap,
|
|
284
|
+
meshPolygonsVertexAttributeNoDataColor,
|
|
285
|
+
setMeshPolygonsVertexAttributeNoDataColor,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
export { isMeshPolygonsVertexAttributeValid, useMeshPolygonsVertexAttributeStyle };
|
|
@@ -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 { useMeshPolygonsCommonStyle } from "./common";
|
|
6
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
7
|
+
|
|
8
|
+
// Local constants
|
|
9
|
+
const schema = viewer_schemas.opengeodeweb_viewer.mesh.polygons.visibility;
|
|
10
|
+
|
|
11
|
+
export function useMeshPolygonsVisibilityStyle(): {
|
|
12
|
+
meshPolygonsVisibility: (id: string) => boolean | undefined;
|
|
13
|
+
setMeshPolygonsVisibility: (id: string, visibility: boolean | undefined) => Promise<unknown>;
|
|
14
|
+
} {
|
|
15
|
+
const viewerStore = useViewerStore();
|
|
16
|
+
const meshPolygonsCommonStyle = useMeshPolygonsCommonStyle();
|
|
17
|
+
|
|
18
|
+
function meshPolygonsVisibility(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 meshPolygonsCommonStyle.meshPolygonsStyle(id).visibility as boolean | undefined;
|
|
21
|
+
}
|
|
22
|
+
async function setMeshPolygonsVisibility(
|
|
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 meshPolygonsCommonStyle.mutateMeshPolygonsStyle(id, {
|
|
35
|
+
visibility,
|
|
36
|
+
});
|
|
37
|
+
return mutateResult;
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
);
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
meshPolygonsVisibility,
|
|
46
|
+
setMeshPolygonsVisibility,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
@@ -8,27 +8,33 @@ import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
|
8
8
|
// Local constants
|
|
9
9
|
const schema = viewer_schemas.opengeodeweb_viewer.mesh.polyhedra.color;
|
|
10
10
|
|
|
11
|
-
export function useMeshPolyhedraColorStyle() {
|
|
11
|
+
export function useMeshPolyhedraColorStyle(): {
|
|
12
|
+
meshPolyhedraColor: (id: string) => unknown;
|
|
13
|
+
setMeshPolyhedraColor: (id: string, color: unknown) => Promise<unknown>;
|
|
14
|
+
} {
|
|
12
15
|
const viewerStore = useViewerStore();
|
|
13
16
|
const meshPolyhedraCommonStyle = useMeshPolyhedraCommonStyle();
|
|
14
17
|
|
|
15
|
-
function meshPolyhedraColor(id) {
|
|
18
|
+
function meshPolyhedraColor(id: string): unknown {
|
|
16
19
|
return meshPolyhedraCommonStyle.meshPolyhedraColoring(id).constant;
|
|
17
20
|
}
|
|
18
|
-
function setMeshPolyhedraColor(id, color) {
|
|
21
|
+
async function setMeshPolyhedraColor(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
|
-
meshPolyhedraCommonStyle.mutateMeshPolyhedraColoring(id, {
|
|
29
|
+
response_function: async () => {
|
|
30
|
+
const mutation_result = await meshPolyhedraCommonStyle.mutateMeshPolyhedraColoring(id, {
|
|
28
31
|
constant: color,
|
|
29
|
-
})
|
|
32
|
+
});
|
|
33
|
+
return mutation_result;
|
|
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 useMeshPolyhedraCommonStyle(): {
|
|
5
|
+
meshPolyhedraStyle: (id: string) => StyleValues;
|
|
6
|
+
meshPolyhedraColoring: (id: string) => StyleValues;
|
|
7
|
+
mutateMeshPolyhedraStyle: (id: string, values: StyleValues) => Promise<string>;
|
|
8
|
+
mutateMeshPolyhedraColoring: (id: string, values: StyleValues) => Promise<string>;
|
|
9
|
+
} {
|
|
10
|
+
const dataStyleState = useDataStyleState();
|
|
11
|
+
|
|
12
|
+
async function mutateMeshPolyhedraStyle(id: string, values: StyleValues): Promise<string> {
|
|
13
|
+
const result = await dataStyleState.mutateStyle(id, {
|
|
14
|
+
polyhedra: values,
|
|
15
|
+
});
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function meshPolyhedraStyle(id: string): StyleValues {
|
|
20
|
+
return dataStyleState.getStyle(id).polyhedra ?? {};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function meshPolyhedraColoring(id: string): StyleValues {
|
|
24
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
|
|
25
|
+
return meshPolyhedraStyle(id).coloring as StyleValues;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async function mutateMeshPolyhedraColoring(id: string, values: StyleValues): Promise<string> {
|
|
29
|
+
const result = await mutateMeshPolyhedraStyle(id, {
|
|
30
|
+
coloring: values,
|
|
31
|
+
});
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
meshPolyhedraStyle,
|
|
37
|
+
meshPolyhedraColoring,
|
|
38
|
+
mutateMeshPolyhedraStyle,
|
|
39
|
+
mutateMeshPolyhedraColoring,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
|
|
3
|
+
// Local imports
|
|
4
|
+
import {
|
|
5
|
+
isMeshPolyhedraPolyhedronAttributeValid,
|
|
6
|
+
useMeshPolyhedraPolyhedronAttributeStyle,
|
|
7
|
+
} from "./polyhedron";
|
|
8
|
+
import {
|
|
9
|
+
isMeshPolyhedraVertexAttributeValid,
|
|
10
|
+
useMeshPolyhedraVertexAttributeStyle,
|
|
11
|
+
} from "./vertex";
|
|
12
|
+
import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
|
|
13
|
+
import { useMeshPolyhedraColorStyle } from "./color";
|
|
14
|
+
import { useMeshPolyhedraCommonStyle } from "./common";
|
|
15
|
+
import { useMeshPolyhedraVisibilityStyle } from "./visibility";
|
|
16
|
+
|
|
17
|
+
// Local constants
|
|
18
|
+
|
|
19
|
+
interface MeshPolyhedraActiveColoringDeps {
|
|
20
|
+
readonly commonStyle: ReturnType<typeof useMeshPolyhedraCommonStyle>;
|
|
21
|
+
readonly colorStyle: ReturnType<typeof useMeshPolyhedraColorStyle>;
|
|
22
|
+
readonly vertexAttributeStyle: ReturnType<typeof useMeshPolyhedraVertexAttributeStyle>;
|
|
23
|
+
readonly polyhedronAttributeStyle: ReturnType<typeof useMeshPolyhedraPolyhedronAttributeStyle>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function handleMeshPolyhedraVertexColoring(
|
|
27
|
+
id: string,
|
|
28
|
+
vertexAttributeStyle: ReturnType<typeof useMeshPolyhedraVertexAttributeStyle>,
|
|
29
|
+
): Promise<unknown> | undefined {
|
|
30
|
+
const name = vertexAttributeStyle.meshPolyhedraVertexAttributeName(id);
|
|
31
|
+
const item = vertexAttributeStyle.meshPolyhedraVertexAttributeItem(id);
|
|
32
|
+
const [minimum, maximum] = vertexAttributeStyle.meshPolyhedraVertexAttributeRange(id);
|
|
33
|
+
const colorMap = vertexAttributeStyle.meshPolyhedraVertexAttributeColorMap(id);
|
|
34
|
+
const vertex_attribute = { name, item, minimum, maximum, colorMap };
|
|
35
|
+
if (!isMeshPolyhedraVertexAttributeValid(vertex_attribute)) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return vertexAttributeStyle.setMeshPolyhedraVertexAttribute(id, vertex_attribute);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function handleMeshPolyhedraPolyhedronColoring(
|
|
42
|
+
id: string,
|
|
43
|
+
polyhedronAttributeStyle: ReturnType<typeof useMeshPolyhedraPolyhedronAttributeStyle>,
|
|
44
|
+
): Promise<unknown> | undefined {
|
|
45
|
+
const name = polyhedronAttributeStyle.meshPolyhedraPolyhedronAttributeName(id);
|
|
46
|
+
const item = polyhedronAttributeStyle.meshPolyhedraPolyhedronAttributeItem(id);
|
|
47
|
+
const [minimum, maximum] = polyhedronAttributeStyle.meshPolyhedraPolyhedronAttributeRange(id);
|
|
48
|
+
const colorMap = polyhedronAttributeStyle.meshPolyhedraPolyhedronAttributeColorMap(id);
|
|
49
|
+
const polyhedron_attribute = { name, item, minimum, maximum, colorMap };
|
|
50
|
+
if (!isMeshPolyhedraPolyhedronAttributeValid(polyhedron_attribute)) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
return polyhedronAttributeStyle.setMeshPolyhedraPolyhedronAttribute(id, polyhedron_attribute);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async function setMeshPolyhedraActiveColoring(
|
|
57
|
+
id: string,
|
|
58
|
+
type: string | undefined,
|
|
59
|
+
deps: MeshPolyhedraActiveColoringDeps,
|
|
60
|
+
): Promise<unknown> {
|
|
61
|
+
await deps.commonStyle.mutateMeshPolyhedraStyle(id, {
|
|
62
|
+
coloring: { active: type },
|
|
63
|
+
});
|
|
64
|
+
if (type === "constant") {
|
|
65
|
+
const result = await deps.colorStyle.setMeshPolyhedraColor(
|
|
66
|
+
id,
|
|
67
|
+
deps.colorStyle.meshPolyhedraColor(id),
|
|
68
|
+
);
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
if (type === "vertex") {
|
|
72
|
+
const result = await handleMeshPolyhedraVertexColoring(id, deps.vertexAttributeStyle);
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
if (type === "polyhedron") {
|
|
76
|
+
const result = await handleMeshPolyhedraPolyhedronColoring(id, deps.polyhedronAttributeStyle);
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
throw new Error(`Unknown mesh polyhedra coloring type: ${type}`);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async function applyMeshPolyhedraStyle(
|
|
83
|
+
id: string,
|
|
84
|
+
visibilityStyle: ReturnType<typeof useMeshPolyhedraVisibilityStyle>,
|
|
85
|
+
activeColoringType: string | undefined,
|
|
86
|
+
deps: MeshPolyhedraActiveColoringDeps,
|
|
87
|
+
): Promise<unknown[]> {
|
|
88
|
+
const result = await Promise.all([
|
|
89
|
+
visibilityStyle.setMeshPolyhedraVisibility(id, visibilityStyle.meshPolyhedraVisibility(id)),
|
|
90
|
+
setMeshPolyhedraActiveColoring(id, activeColoringType, deps),
|
|
91
|
+
]);
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
type UseMeshPolyhedraStyleReturn = ReturnType<typeof useMeshPolyhedraCommonStyle> & {
|
|
96
|
+
meshPolyhedraColoring: (id: string) => StyleValues;
|
|
97
|
+
meshPolyhedraActiveColoring: (id: string) => string | undefined;
|
|
98
|
+
setMeshPolyhedraActiveColoring: (id: string, type: string | undefined) => Promise<unknown>;
|
|
99
|
+
applyMeshPolyhedraStyle: (id: string) => Promise<unknown[]>;
|
|
100
|
+
} & ReturnType<typeof useMeshPolyhedraVisibilityStyle> &
|
|
101
|
+
ReturnType<typeof useMeshPolyhedraColorStyle> &
|
|
102
|
+
ReturnType<typeof useMeshPolyhedraVertexAttributeStyle> &
|
|
103
|
+
ReturnType<typeof useMeshPolyhedraPolyhedronAttributeStyle>;
|
|
104
|
+
|
|
105
|
+
export function useMeshPolyhedraStyle(): UseMeshPolyhedraStyleReturn {
|
|
106
|
+
const meshPolyhedraCommonStyle = useMeshPolyhedraCommonStyle();
|
|
107
|
+
const meshPolyhedraVisibility = useMeshPolyhedraVisibilityStyle();
|
|
108
|
+
const meshPolyhedraColorStyle = useMeshPolyhedraColorStyle();
|
|
109
|
+
const meshPolyhedraVertexAttributeStyle = useMeshPolyhedraVertexAttributeStyle();
|
|
110
|
+
const meshPolyhedraPolyhedronAttributeStyle = useMeshPolyhedraPolyhedronAttributeStyle();
|
|
111
|
+
|
|
112
|
+
const activeColoringDeps: MeshPolyhedraActiveColoringDeps = {
|
|
113
|
+
commonStyle: meshPolyhedraCommonStyle,
|
|
114
|
+
colorStyle: meshPolyhedraColorStyle,
|
|
115
|
+
vertexAttributeStyle: meshPolyhedraVertexAttributeStyle,
|
|
116
|
+
polyhedronAttributeStyle: meshPolyhedraPolyhedronAttributeStyle,
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
function meshPolyhedraColoring(id: string): StyleValues {
|
|
120
|
+
return meshPolyhedraCommonStyle.meshPolyhedraColoring(id);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function meshPolyhedraActiveColoring(id: string): string | undefined {
|
|
124
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.active is defined as string in the data style schema.
|
|
125
|
+
return meshPolyhedraColoring(id).active as string | undefined;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
async function boundSetMeshPolyhedraActiveColoring(
|
|
129
|
+
id: string,
|
|
130
|
+
type: string | undefined,
|
|
131
|
+
): Promise<unknown> {
|
|
132
|
+
const result = await setMeshPolyhedraActiveColoring(id, type, activeColoringDeps);
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
async function boundApplyMeshPolyhedraStyle(id: string): Promise<unknown[]> {
|
|
137
|
+
const result = await applyMeshPolyhedraStyle(
|
|
138
|
+
id,
|
|
139
|
+
meshPolyhedraVisibility,
|
|
140
|
+
meshPolyhedraActiveColoring(id),
|
|
141
|
+
activeColoringDeps,
|
|
142
|
+
);
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return {
|
|
147
|
+
...meshPolyhedraCommonStyle,
|
|
148
|
+
meshPolyhedraColoring,
|
|
149
|
+
meshPolyhedraActiveColoring,
|
|
150
|
+
setMeshPolyhedraActiveColoring: boundSetMeshPolyhedraActiveColoring,
|
|
151
|
+
applyMeshPolyhedraStyle: boundApplyMeshPolyhedraStyle,
|
|
152
|
+
...meshPolyhedraVisibility,
|
|
153
|
+
...meshPolyhedraColorStyle,
|
|
154
|
+
...meshPolyhedraVertexAttributeStyle,
|
|
155
|
+
...meshPolyhedraPolyhedronAttributeStyle,
|
|
156
|
+
};
|
|
157
|
+
}
|