@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,279 @@
|
|
|
1
|
+
import { DEFAULT_NO_DATA_COLOR } from "@ogw_front/utils/default_styles/constants";
|
|
2
|
+
// Third party imports
|
|
3
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
|
|
4
|
+
|
|
5
|
+
// Local imports
|
|
6
|
+
import { getRGBPointsFromPreset } from "@ogw_front/utils/colormap";
|
|
7
|
+
import { useMeshCellsCommonStyle } from "./common";
|
|
8
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
9
|
+
|
|
10
|
+
// Local constants
|
|
11
|
+
const meshCellsCellAttributeSchemas = viewer_schemas.opengeodeweb_viewer.mesh.cells.attribute.cell;
|
|
12
|
+
|
|
13
|
+
interface AttributeStoredConfig {
|
|
14
|
+
minimum: number | undefined;
|
|
15
|
+
maximum: number | undefined;
|
|
16
|
+
colorMap: string | undefined;
|
|
17
|
+
no_data_color: unknown;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface AttributeState {
|
|
21
|
+
name?: string;
|
|
22
|
+
item?: number;
|
|
23
|
+
storedConfigs?: Record<string, { lastItem: number } & Record<string, AttributeStoredConfig>>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface AttributeInput {
|
|
27
|
+
name: string | undefined;
|
|
28
|
+
item: number | undefined;
|
|
29
|
+
minimum: number | undefined;
|
|
30
|
+
maximum: number | undefined;
|
|
31
|
+
colorMap: string | undefined;
|
|
32
|
+
no_data_color?: unknown;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function isMeshCellsCellAttributeValid({
|
|
36
|
+
name,
|
|
37
|
+
item,
|
|
38
|
+
minimum,
|
|
39
|
+
maximum,
|
|
40
|
+
colorMap,
|
|
41
|
+
}: AttributeInput): boolean {
|
|
42
|
+
return (
|
|
43
|
+
name !== undefined &&
|
|
44
|
+
item !== undefined &&
|
|
45
|
+
minimum !== undefined &&
|
|
46
|
+
maximum !== undefined &&
|
|
47
|
+
colorMap !== undefined
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
52
|
+
function useMeshCellsCellAttributeStyle(): {
|
|
53
|
+
meshCellsCellAttributeName: (id: string) => string | undefined;
|
|
54
|
+
meshCellsCellAttributeItem: (id: string) => number;
|
|
55
|
+
meshCellsCellAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
56
|
+
meshCellsCellAttributeColorMap: (id: string) => string | undefined;
|
|
57
|
+
meshCellsCellAttributeStoredConfig: (
|
|
58
|
+
id: string,
|
|
59
|
+
name: string | undefined,
|
|
60
|
+
item: number | undefined,
|
|
61
|
+
) => AttributeStoredConfig;
|
|
62
|
+
setMeshCellsCellAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
63
|
+
setMeshCellsCellAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
64
|
+
setMeshCellsCellAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
65
|
+
setMeshCellsCellAttributeRange: (
|
|
66
|
+
id: string,
|
|
67
|
+
minimum: number,
|
|
68
|
+
maximum: number,
|
|
69
|
+
) => Promise<unknown>;
|
|
70
|
+
setMeshCellsCellAttributeColorMap: (id: string, colorMap: string | undefined) => Promise<unknown>;
|
|
71
|
+
meshCellsCellAttributeNoDataColor: (id: string) => unknown;
|
|
72
|
+
setMeshCellsCellAttributeNoDataColor: (id: string, no_data_color: unknown) => Promise<unknown>;
|
|
73
|
+
} {
|
|
74
|
+
const viewerStore = useViewerStore();
|
|
75
|
+
const meshCellsCommonStyle = useMeshCellsCommonStyle();
|
|
76
|
+
function meshCellsCellAttribute(id: string): AttributeState {
|
|
77
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.cell shape is defined by the data style schema.
|
|
78
|
+
return meshCellsCommonStyle.meshCellsColoring(id).cell as AttributeState;
|
|
79
|
+
}
|
|
80
|
+
function meshCellsCellAttributeStoredConfig(
|
|
81
|
+
id: string,
|
|
82
|
+
name: string | undefined,
|
|
83
|
+
item: number | undefined,
|
|
84
|
+
): AttributeStoredConfig {
|
|
85
|
+
const { storedConfigs } = meshCellsCellAttribute(id);
|
|
86
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
87
|
+
const itemConfig = item === undefined ? undefined : nameConfig?.[item];
|
|
88
|
+
if (itemConfig !== undefined) {
|
|
89
|
+
return itemConfig;
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
minimum: undefined,
|
|
93
|
+
maximum: undefined,
|
|
94
|
+
colorMap: undefined,
|
|
95
|
+
no_data_color: DEFAULT_NO_DATA_COLOR,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
async function mutateMeshCellsCellStyle(
|
|
99
|
+
id: string,
|
|
100
|
+
values: Record<string, unknown>,
|
|
101
|
+
): Promise<string> {
|
|
102
|
+
const result = await meshCellsCommonStyle.mutateMeshCellsStyle(id, {
|
|
103
|
+
coloring: {
|
|
104
|
+
cell: values,
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
async function setMeshCellsCellAttributeStoredConfig(
|
|
110
|
+
id: string,
|
|
111
|
+
name: string | undefined,
|
|
112
|
+
item: number | undefined,
|
|
113
|
+
config: Partial<AttributeStoredConfig>,
|
|
114
|
+
): Promise<string> {
|
|
115
|
+
const result = await mutateMeshCellsCellStyle(id, {
|
|
116
|
+
storedConfigs: {
|
|
117
|
+
[name ?? ""]: {
|
|
118
|
+
lastItem: item,
|
|
119
|
+
[item ?? 0]: config,
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
function meshCellsCellAttributeName(id: string): string | undefined {
|
|
126
|
+
return meshCellsCellAttribute(id).name;
|
|
127
|
+
}
|
|
128
|
+
function meshCellsCellAttributeLastItem(id: string, name: string | undefined): number {
|
|
129
|
+
const { storedConfigs } = meshCellsCellAttribute(id);
|
|
130
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
131
|
+
if (nameConfig !== undefined) {
|
|
132
|
+
return nameConfig.lastItem;
|
|
133
|
+
}
|
|
134
|
+
return 0;
|
|
135
|
+
}
|
|
136
|
+
function meshCellsCellAttributeItem(id: string): number {
|
|
137
|
+
const { item, name } = meshCellsCellAttribute(id);
|
|
138
|
+
return item ?? meshCellsCellAttributeLastItem(id, name);
|
|
139
|
+
}
|
|
140
|
+
async function setMeshCellsCellAttribute(
|
|
141
|
+
id: string,
|
|
142
|
+
{
|
|
143
|
+
name,
|
|
144
|
+
item,
|
|
145
|
+
minimum,
|
|
146
|
+
maximum,
|
|
147
|
+
colorMap,
|
|
148
|
+
no_data_color = DEFAULT_NO_DATA_COLOR,
|
|
149
|
+
}: AttributeInput,
|
|
150
|
+
): Promise<unknown> {
|
|
151
|
+
await mutateMeshCellsCellStyle(id, {
|
|
152
|
+
name,
|
|
153
|
+
item,
|
|
154
|
+
});
|
|
155
|
+
await setMeshCellsCellAttributeStoredConfig(id, name, item, {
|
|
156
|
+
minimum,
|
|
157
|
+
maximum,
|
|
158
|
+
colorMap,
|
|
159
|
+
no_data_color,
|
|
160
|
+
});
|
|
161
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
162
|
+
const schema = meshCellsCellAttributeSchemas.attribute;
|
|
163
|
+
const params = {
|
|
164
|
+
id,
|
|
165
|
+
name,
|
|
166
|
+
item,
|
|
167
|
+
points,
|
|
168
|
+
minimum,
|
|
169
|
+
maximum,
|
|
170
|
+
no_data_color,
|
|
171
|
+
};
|
|
172
|
+
return viewerStore.request({
|
|
173
|
+
schema,
|
|
174
|
+
params,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
async function applyCellAttribute(id: string): Promise<unknown> {
|
|
178
|
+
const name = meshCellsCellAttributeName(id);
|
|
179
|
+
const item = meshCellsCellAttributeItem(id);
|
|
180
|
+
const storedConfig = meshCellsCellAttributeStoredConfig(id, name, item);
|
|
181
|
+
const attribute = {
|
|
182
|
+
name,
|
|
183
|
+
item,
|
|
184
|
+
minimum: storedConfig.minimum,
|
|
185
|
+
maximum: storedConfig.maximum,
|
|
186
|
+
colorMap: storedConfig.colorMap,
|
|
187
|
+
no_data_color: storedConfig.no_data_color,
|
|
188
|
+
};
|
|
189
|
+
if (isMeshCellsCellAttributeValid(attribute)) {
|
|
190
|
+
const result = await setMeshCellsCellAttribute(id, attribute);
|
|
191
|
+
return result;
|
|
192
|
+
}
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
async function setMeshCellsCellAttributeName(id: string, name: string): Promise<unknown> {
|
|
196
|
+
const item = meshCellsCellAttributeLastItem(id, name);
|
|
197
|
+
await mutateMeshCellsCellStyle(id, {
|
|
198
|
+
name,
|
|
199
|
+
item,
|
|
200
|
+
});
|
|
201
|
+
return applyCellAttribute(id);
|
|
202
|
+
}
|
|
203
|
+
async function setMeshCellsCellAttributeItem(id: string, item: number): Promise<unknown> {
|
|
204
|
+
await mutateMeshCellsCellStyle(id, {
|
|
205
|
+
item,
|
|
206
|
+
});
|
|
207
|
+
return applyCellAttribute(id);
|
|
208
|
+
}
|
|
209
|
+
function meshCellsCellAttributeRange(id: string): [number | undefined, number | undefined] {
|
|
210
|
+
const name = meshCellsCellAttributeName(id);
|
|
211
|
+
const item = meshCellsCellAttributeItem(id);
|
|
212
|
+
const storedConfig = meshCellsCellAttributeStoredConfig(id, name, item);
|
|
213
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
214
|
+
}
|
|
215
|
+
async function setMeshCellsCellAttributeRange(
|
|
216
|
+
id: string,
|
|
217
|
+
minimum: number,
|
|
218
|
+
maximum: number,
|
|
219
|
+
): Promise<unknown> {
|
|
220
|
+
const name = meshCellsCellAttributeName(id);
|
|
221
|
+
const item = meshCellsCellAttributeItem(id);
|
|
222
|
+
await setMeshCellsCellAttributeStoredConfig(id, name, item, {
|
|
223
|
+
minimum,
|
|
224
|
+
maximum,
|
|
225
|
+
});
|
|
226
|
+
return applyCellAttribute(id);
|
|
227
|
+
}
|
|
228
|
+
function meshCellsCellAttributeColorMap(id: string): string | undefined {
|
|
229
|
+
const name = meshCellsCellAttributeName(id);
|
|
230
|
+
const item = meshCellsCellAttributeItem(id);
|
|
231
|
+
const storedConfig = meshCellsCellAttributeStoredConfig(id, name, item);
|
|
232
|
+
return storedConfig.colorMap;
|
|
233
|
+
}
|
|
234
|
+
async function setMeshCellsCellAttributeColorMap(
|
|
235
|
+
id: string,
|
|
236
|
+
colorMap: string | undefined,
|
|
237
|
+
): Promise<unknown> {
|
|
238
|
+
const name = meshCellsCellAttributeName(id);
|
|
239
|
+
const item = meshCellsCellAttributeItem(id);
|
|
240
|
+
await setMeshCellsCellAttributeStoredConfig(id, name, item, {
|
|
241
|
+
colorMap,
|
|
242
|
+
});
|
|
243
|
+
return applyCellAttribute(id);
|
|
244
|
+
}
|
|
245
|
+
function meshCellsCellAttributeNoDataColor(id: string): unknown {
|
|
246
|
+
const name = meshCellsCellAttributeName(id);
|
|
247
|
+
const item = meshCellsCellAttributeItem(id);
|
|
248
|
+
const storedConfig = meshCellsCellAttributeStoredConfig(id, name, item);
|
|
249
|
+
return storedConfig.no_data_color;
|
|
250
|
+
}
|
|
251
|
+
async function setMeshCellsCellAttributeNoDataColor(
|
|
252
|
+
id: string,
|
|
253
|
+
no_data_color: unknown,
|
|
254
|
+
): Promise<unknown> {
|
|
255
|
+
const name = meshCellsCellAttributeName(id);
|
|
256
|
+
const item = meshCellsCellAttributeItem(id);
|
|
257
|
+
const storedConfig = meshCellsCellAttributeStoredConfig(id, name, item);
|
|
258
|
+
await setMeshCellsCellAttributeStoredConfig(id, name, item, {
|
|
259
|
+
...storedConfig,
|
|
260
|
+
no_data_color,
|
|
261
|
+
});
|
|
262
|
+
return applyCellAttribute(id);
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
meshCellsCellAttributeName,
|
|
266
|
+
meshCellsCellAttributeItem,
|
|
267
|
+
meshCellsCellAttributeRange,
|
|
268
|
+
meshCellsCellAttributeColorMap,
|
|
269
|
+
meshCellsCellAttributeStoredConfig,
|
|
270
|
+
setMeshCellsCellAttribute,
|
|
271
|
+
setMeshCellsCellAttributeName,
|
|
272
|
+
setMeshCellsCellAttributeItem,
|
|
273
|
+
setMeshCellsCellAttributeRange,
|
|
274
|
+
setMeshCellsCellAttributeColorMap,
|
|
275
|
+
meshCellsCellAttributeNoDataColor,
|
|
276
|
+
setMeshCellsCellAttributeNoDataColor,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
export { isMeshCellsCellAttributeValid, useMeshCellsCellAttributeStyle };
|
|
@@ -8,27 +8,33 @@ import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
|
8
8
|
// Local constants
|
|
9
9
|
const schema = viewer_schemas.opengeodeweb_viewer.mesh.cells.color;
|
|
10
10
|
|
|
11
|
-
export function useMeshCellsColorStyle() {
|
|
11
|
+
export function useMeshCellsColorStyle(): {
|
|
12
|
+
meshCellsColor: (id: string) => unknown;
|
|
13
|
+
setMeshCellsColor: (id: string, color: unknown) => Promise<unknown>;
|
|
14
|
+
} {
|
|
12
15
|
const viewerStore = useViewerStore();
|
|
13
16
|
const meshCellsCommonStyle = useMeshCellsCommonStyle();
|
|
14
17
|
|
|
15
|
-
function meshCellsColor(id) {
|
|
18
|
+
function meshCellsColor(id: string): unknown {
|
|
16
19
|
return meshCellsCommonStyle.meshCellsColoring(id).constant;
|
|
17
20
|
}
|
|
18
|
-
function setMeshCellsColor(id, color) {
|
|
21
|
+
async function setMeshCellsColor(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
|
-
meshCellsCommonStyle.mutateMeshCellsColoring(id, {
|
|
29
|
+
response_function: async () => {
|
|
30
|
+
const mutateResult = await meshCellsCommonStyle.mutateMeshCellsColoring(id, {
|
|
28
31
|
constant: color,
|
|
29
|
-
})
|
|
32
|
+
});
|
|
33
|
+
return mutateResult;
|
|
34
|
+
},
|
|
30
35
|
},
|
|
31
36
|
);
|
|
37
|
+
return result;
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
return {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
|
|
2
|
+
import { useDataStyleState } from "@ogw_internal/stores/data_style/state";
|
|
3
|
+
|
|
4
|
+
export function useMeshCellsCommonStyle(): {
|
|
5
|
+
meshCellsStyle: (id: string) => StyleValues;
|
|
6
|
+
meshCellsColoring: (id: string) => StyleValues;
|
|
7
|
+
mutateMeshCellsStyle: (id: string, values: StyleValues) => Promise<string>;
|
|
8
|
+
mutateMeshCellsColoring: (id: string, values: StyleValues) => Promise<string>;
|
|
9
|
+
mutateMeshCellsCellStyle: (id: string, values: StyleValues) => Promise<string>;
|
|
10
|
+
} {
|
|
11
|
+
const dataStyleState = useDataStyleState();
|
|
12
|
+
|
|
13
|
+
async function mutateMeshCellsStyle(id: string, values: StyleValues): Promise<string> {
|
|
14
|
+
const result = await dataStyleState.mutateStyle(id, {
|
|
15
|
+
cells: values,
|
|
16
|
+
});
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function meshCellsStyle(id: string): StyleValues {
|
|
21
|
+
return dataStyleState.getStyle(id).cells ?? {};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function meshCellsColoring(id: string): StyleValues {
|
|
25
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
|
|
26
|
+
return meshCellsStyle(id).coloring as StyleValues;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async function mutateMeshCellsColoring(id: string, values: StyleValues): Promise<string> {
|
|
30
|
+
const result = await mutateMeshCellsStyle(id, {
|
|
31
|
+
coloring: values,
|
|
32
|
+
});
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function mutateMeshCellsCellStyle(id: string, values: StyleValues): Promise<string> {
|
|
37
|
+
const result = await mutateMeshCellsColoring(id, {
|
|
38
|
+
cell: values,
|
|
39
|
+
});
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
meshCellsStyle,
|
|
45
|
+
meshCellsColoring,
|
|
46
|
+
mutateMeshCellsStyle,
|
|
47
|
+
mutateMeshCellsColoring,
|
|
48
|
+
mutateMeshCellsCellStyle,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
|
|
3
|
+
// Local imports
|
|
4
|
+
import { isMeshCellsCellAttributeValid, useMeshCellsCellAttributeStyle } from "./cell";
|
|
5
|
+
import { isMeshCellsVertexAttributeValid, useMeshCellsVertexAttributeStyle } from "./vertex";
|
|
6
|
+
import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
|
|
7
|
+
import { useMeshCellsColorStyle } from "./color";
|
|
8
|
+
import { useMeshCellsCommonStyle } from "./common";
|
|
9
|
+
import { useMeshCellsTexturesStyle } from "./textures";
|
|
10
|
+
import { useMeshCellsVisibilityStyle } from "./visibility";
|
|
11
|
+
|
|
12
|
+
// Local constants
|
|
13
|
+
|
|
14
|
+
interface MeshCellsActiveColoringDeps {
|
|
15
|
+
readonly commonStyle: ReturnType<typeof useMeshCellsCommonStyle>;
|
|
16
|
+
readonly colorStyle: ReturnType<typeof useMeshCellsColorStyle>;
|
|
17
|
+
readonly texturesStyle: ReturnType<typeof useMeshCellsTexturesStyle>;
|
|
18
|
+
readonly vertexAttributeStyle: ReturnType<typeof useMeshCellsVertexAttributeStyle>;
|
|
19
|
+
readonly cellAttributeStyle: ReturnType<typeof useMeshCellsCellAttributeStyle>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function handleMeshCellsVertexColoring(
|
|
23
|
+
id: string,
|
|
24
|
+
vertexAttributeStyle: ReturnType<typeof useMeshCellsVertexAttributeStyle>,
|
|
25
|
+
): Promise<unknown> | undefined {
|
|
26
|
+
const name = vertexAttributeStyle.meshCellsVertexAttributeName(id);
|
|
27
|
+
const item = vertexAttributeStyle.meshCellsVertexAttributeItem(id);
|
|
28
|
+
const [minimum, maximum] = vertexAttributeStyle.meshCellsVertexAttributeRange(id);
|
|
29
|
+
const colorMap = vertexAttributeStyle.meshCellsVertexAttributeColorMap(id);
|
|
30
|
+
const vertex_attribute = { name, item, minimum, maximum, colorMap };
|
|
31
|
+
if (!isMeshCellsVertexAttributeValid(vertex_attribute)) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return vertexAttributeStyle.setMeshCellsVertexAttribute(id, vertex_attribute);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function handleMeshCellsCellColoring(
|
|
38
|
+
id: string,
|
|
39
|
+
cellAttributeStyle: ReturnType<typeof useMeshCellsCellAttributeStyle>,
|
|
40
|
+
): Promise<unknown> | undefined {
|
|
41
|
+
const name = cellAttributeStyle.meshCellsCellAttributeName(id);
|
|
42
|
+
const item = cellAttributeStyle.meshCellsCellAttributeItem(id);
|
|
43
|
+
const [minimum, maximum] = cellAttributeStyle.meshCellsCellAttributeRange(id);
|
|
44
|
+
const colorMap = cellAttributeStyle.meshCellsCellAttributeColorMap(id);
|
|
45
|
+
const cell_attribute = { name, item, minimum, maximum, colorMap };
|
|
46
|
+
if (!isMeshCellsCellAttributeValid(cell_attribute)) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return cellAttributeStyle.setMeshCellsCellAttribute(id, cell_attribute);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async function setMeshCellsActiveColoring(
|
|
53
|
+
id: string,
|
|
54
|
+
type: string | undefined,
|
|
55
|
+
deps: MeshCellsActiveColoringDeps,
|
|
56
|
+
): Promise<unknown> {
|
|
57
|
+
await deps.commonStyle.mutateMeshCellsStyle(id, {
|
|
58
|
+
coloring: { active: type },
|
|
59
|
+
});
|
|
60
|
+
if (type === "constant") {
|
|
61
|
+
const result = await deps.colorStyle.setMeshCellsColor(id, deps.colorStyle.meshCellsColor(id));
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
if (type === "textures") {
|
|
65
|
+
const result = await deps.texturesStyle.setMeshCellsTextures(
|
|
66
|
+
id,
|
|
67
|
+
deps.texturesStyle.meshCellsTextures(id),
|
|
68
|
+
);
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
if (type === "vertex") {
|
|
72
|
+
const result = await handleMeshCellsVertexColoring(id, deps.vertexAttributeStyle);
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
if (type === "cell") {
|
|
76
|
+
const result = await handleMeshCellsCellColoring(id, deps.cellAttributeStyle);
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
throw new Error(`Unknown mesh cells coloring type: ${type}`);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async function applyMeshCellsStyle(
|
|
83
|
+
id: string,
|
|
84
|
+
visibilityStyle: ReturnType<typeof useMeshCellsVisibilityStyle>,
|
|
85
|
+
activeColoringType: string | undefined,
|
|
86
|
+
deps: MeshCellsActiveColoringDeps,
|
|
87
|
+
): Promise<unknown[]> {
|
|
88
|
+
const result = await Promise.all([
|
|
89
|
+
visibilityStyle.setMeshCellsVisibility(id, visibilityStyle.meshCellsVisibility(id)),
|
|
90
|
+
setMeshCellsActiveColoring(id, activeColoringType, deps),
|
|
91
|
+
]);
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
type UseMeshCellsStyleReturn = ReturnType<typeof useMeshCellsCommonStyle> & {
|
|
96
|
+
meshCellsColoring: (id: string) => StyleValues;
|
|
97
|
+
meshCellsActiveColoring: (id: string) => string | undefined;
|
|
98
|
+
setMeshCellsActiveColoring: (id: string, type: string | undefined) => Promise<unknown>;
|
|
99
|
+
applyMeshCellsStyle: (id: string) => Promise<unknown[]>;
|
|
100
|
+
} & ReturnType<typeof useMeshCellsVisibilityStyle> &
|
|
101
|
+
ReturnType<typeof useMeshCellsColorStyle> &
|
|
102
|
+
ReturnType<typeof useMeshCellsTexturesStyle> &
|
|
103
|
+
ReturnType<typeof useMeshCellsVertexAttributeStyle> &
|
|
104
|
+
ReturnType<typeof useMeshCellsCellAttributeStyle>;
|
|
105
|
+
|
|
106
|
+
export function useMeshCellsStyle(): UseMeshCellsStyleReturn {
|
|
107
|
+
const meshCellsCommonStyle = useMeshCellsCommonStyle();
|
|
108
|
+
const meshCellsVisibility = useMeshCellsVisibilityStyle();
|
|
109
|
+
const meshCellsColorStyle = useMeshCellsColorStyle();
|
|
110
|
+
const meshCellsTexturesStore = useMeshCellsTexturesStyle();
|
|
111
|
+
const meshCellsVertexAttributeStyle = useMeshCellsVertexAttributeStyle();
|
|
112
|
+
const meshCellsCellAttributeStyle = useMeshCellsCellAttributeStyle();
|
|
113
|
+
|
|
114
|
+
const activeColoringDeps: MeshCellsActiveColoringDeps = {
|
|
115
|
+
commonStyle: meshCellsCommonStyle,
|
|
116
|
+
colorStyle: meshCellsColorStyle,
|
|
117
|
+
texturesStyle: meshCellsTexturesStore,
|
|
118
|
+
vertexAttributeStyle: meshCellsVertexAttributeStyle,
|
|
119
|
+
cellAttributeStyle: meshCellsCellAttributeStyle,
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
function meshCellsColoring(id: string): StyleValues {
|
|
123
|
+
return meshCellsCommonStyle.meshCellsColoring(id);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function meshCellsActiveColoring(id: string): string | undefined {
|
|
127
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.active is defined as string in the data style schema.
|
|
128
|
+
return meshCellsColoring(id).active as string | undefined;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
async function boundSetMeshCellsActiveColoring(
|
|
132
|
+
id: string,
|
|
133
|
+
type: string | undefined,
|
|
134
|
+
): Promise<unknown> {
|
|
135
|
+
const result = await setMeshCellsActiveColoring(id, type, activeColoringDeps);
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
async function boundApplyMeshCellsStyle(id: string): Promise<unknown[]> {
|
|
140
|
+
const result = await applyMeshCellsStyle(
|
|
141
|
+
id,
|
|
142
|
+
meshCellsVisibility,
|
|
143
|
+
meshCellsActiveColoring(id),
|
|
144
|
+
activeColoringDeps,
|
|
145
|
+
);
|
|
146
|
+
return result;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return {
|
|
150
|
+
...meshCellsCommonStyle,
|
|
151
|
+
meshCellsColoring,
|
|
152
|
+
meshCellsActiveColoring,
|
|
153
|
+
setMeshCellsActiveColoring: boundSetMeshCellsActiveColoring,
|
|
154
|
+
applyMeshCellsStyle: boundApplyMeshCellsStyle,
|
|
155
|
+
...meshCellsVisibility,
|
|
156
|
+
...meshCellsColorStyle,
|
|
157
|
+
...meshCellsTexturesStore,
|
|
158
|
+
...meshCellsVertexAttributeStyle,
|
|
159
|
+
...meshCellsCellAttributeStyle,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
@@ -6,29 +6,35 @@ import { useMeshCellsCommonStyle } from "./common";
|
|
|
6
6
|
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
7
7
|
|
|
8
8
|
// Local constants
|
|
9
|
-
const schema = viewer_schemas.opengeodeweb_viewer.mesh.
|
|
9
|
+
const schema = viewer_schemas.opengeodeweb_viewer.mesh.apply_textures;
|
|
10
10
|
|
|
11
|
-
export function useMeshCellsTexturesStyle() {
|
|
11
|
+
export function useMeshCellsTexturesStyle(): {
|
|
12
|
+
meshCellsTextures: (id: string) => unknown;
|
|
13
|
+
setMeshCellsTextures: (id: string, textures: unknown) => Promise<unknown>;
|
|
14
|
+
} {
|
|
12
15
|
const viewerStore = useViewerStore();
|
|
13
16
|
const meshCellsCommonStyle = useMeshCellsCommonStyle();
|
|
14
17
|
|
|
15
|
-
function meshCellsTextures(id) {
|
|
18
|
+
function meshCellsTextures(id: string): unknown {
|
|
16
19
|
return meshCellsCommonStyle.meshCellsColoring(id).textures;
|
|
17
20
|
}
|
|
18
|
-
function setMeshCellsTextures(id, textures) {
|
|
21
|
+
async function setMeshCellsTextures(id: string, textures: unknown): Promise<unknown> {
|
|
19
22
|
const params = { id, textures };
|
|
20
|
-
|
|
23
|
+
const result = await viewerStore.request(
|
|
21
24
|
{
|
|
22
25
|
schema,
|
|
23
26
|
params,
|
|
24
27
|
},
|
|
25
28
|
{
|
|
26
|
-
response_function: () =>
|
|
27
|
-
meshCellsCommonStyle.mutateMeshCellsStyle(id, {
|
|
29
|
+
response_function: async () => {
|
|
30
|
+
const mutateResult = await meshCellsCommonStyle.mutateMeshCellsStyle(id, {
|
|
28
31
|
coloring: { textures },
|
|
29
|
-
})
|
|
32
|
+
});
|
|
33
|
+
return mutateResult;
|
|
34
|
+
},
|
|
30
35
|
},
|
|
31
36
|
);
|
|
37
|
+
return result;
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
return {
|