@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,167 @@
|
|
|
1
|
+
// Third party imports
|
|
2
|
+
|
|
3
|
+
// Local imports
|
|
4
|
+
import {
|
|
5
|
+
isMeshPolygonsPolygonAttributeValid,
|
|
6
|
+
useMeshPolygonsPolygonAttributeStyle,
|
|
7
|
+
} from "./polygon";
|
|
8
|
+
import { isMeshPolygonsVertexAttributeValid, useMeshPolygonsVertexAttributeStyle } from "./vertex";
|
|
9
|
+
import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
|
|
10
|
+
import { useMeshPolygonsColorStyle } from "./color";
|
|
11
|
+
import { useMeshPolygonsCommonStyle } from "./common";
|
|
12
|
+
import { useMeshPolygonsTexturesStyle } from "./textures";
|
|
13
|
+
import { useMeshPolygonsVisibilityStyle } from "./visibility";
|
|
14
|
+
|
|
15
|
+
// Local constants
|
|
16
|
+
|
|
17
|
+
interface MeshPolygonsActiveColoringDeps {
|
|
18
|
+
readonly commonStyle: ReturnType<typeof useMeshPolygonsCommonStyle>;
|
|
19
|
+
readonly colorStyle: ReturnType<typeof useMeshPolygonsColorStyle>;
|
|
20
|
+
readonly texturesStyle: ReturnType<typeof useMeshPolygonsTexturesStyle>;
|
|
21
|
+
readonly vertexAttributeStyle: ReturnType<typeof useMeshPolygonsVertexAttributeStyle>;
|
|
22
|
+
readonly polygonAttributeStyle: ReturnType<typeof useMeshPolygonsPolygonAttributeStyle>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function handleMeshPolygonsVertexColoring(
|
|
26
|
+
id: string,
|
|
27
|
+
vertexAttributeStyle: ReturnType<typeof useMeshPolygonsVertexAttributeStyle>,
|
|
28
|
+
): Promise<unknown> | undefined {
|
|
29
|
+
const name = vertexAttributeStyle.meshPolygonsVertexAttributeName(id);
|
|
30
|
+
const item = vertexAttributeStyle.meshPolygonsVertexAttributeItem(id);
|
|
31
|
+
const [minimum, maximum] = vertexAttributeStyle.meshPolygonsVertexAttributeRange(id);
|
|
32
|
+
const colorMap = vertexAttributeStyle.meshPolygonsVertexAttributeColorMap(id);
|
|
33
|
+
const vertex_attribute = { name, item, minimum, maximum, colorMap };
|
|
34
|
+
if (!isMeshPolygonsVertexAttributeValid(vertex_attribute)) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return vertexAttributeStyle.setMeshPolygonsVertexAttribute(id, vertex_attribute);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function handleMeshPolygonsPolygonColoring(
|
|
41
|
+
id: string,
|
|
42
|
+
polygonAttributeStyle: ReturnType<typeof useMeshPolygonsPolygonAttributeStyle>,
|
|
43
|
+
): Promise<unknown> | undefined {
|
|
44
|
+
const name = polygonAttributeStyle.meshPolygonsPolygonAttributeName(id);
|
|
45
|
+
const item = polygonAttributeStyle.meshPolygonsPolygonAttributeItem(id);
|
|
46
|
+
const [minimum, maximum] = polygonAttributeStyle.meshPolygonsPolygonAttributeRange(id);
|
|
47
|
+
const colorMap = polygonAttributeStyle.meshPolygonsPolygonAttributeColorMap(id);
|
|
48
|
+
const polygon_attribute = { name, item, minimum, maximum, colorMap };
|
|
49
|
+
if (!isMeshPolygonsPolygonAttributeValid(polygon_attribute)) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
return polygonAttributeStyle.setMeshPolygonsPolygonAttribute(id, polygon_attribute);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async function setMeshPolygonsActiveColoring(
|
|
56
|
+
id: string,
|
|
57
|
+
type: string | undefined,
|
|
58
|
+
deps: MeshPolygonsActiveColoringDeps,
|
|
59
|
+
): Promise<unknown> {
|
|
60
|
+
await deps.commonStyle.mutateMeshPolygonsStyle(id, {
|
|
61
|
+
coloring: { active: type },
|
|
62
|
+
});
|
|
63
|
+
if (type === "constant") {
|
|
64
|
+
const result = await deps.colorStyle.setMeshPolygonsColor(
|
|
65
|
+
id,
|
|
66
|
+
deps.colorStyle.meshPolygonsColor(id),
|
|
67
|
+
);
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
if (type === "textures") {
|
|
71
|
+
const result = await deps.texturesStyle.setMeshPolygonsTextures(
|
|
72
|
+
id,
|
|
73
|
+
deps.texturesStyle.meshPolygonsTextures(id),
|
|
74
|
+
);
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
if (type === "vertex") {
|
|
78
|
+
const result = await handleMeshPolygonsVertexColoring(id, deps.vertexAttributeStyle);
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
if (type === "polygon") {
|
|
82
|
+
const result = await handleMeshPolygonsPolygonColoring(id, deps.polygonAttributeStyle);
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
throw new Error(`Unknown mesh polygons coloring type: ${type}`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
async function applyMeshPolygonsStyle(
|
|
89
|
+
id: string,
|
|
90
|
+
visibilityStyle: ReturnType<typeof useMeshPolygonsVisibilityStyle>,
|
|
91
|
+
activeColoringType: string | undefined,
|
|
92
|
+
deps: MeshPolygonsActiveColoringDeps,
|
|
93
|
+
): Promise<unknown[]> {
|
|
94
|
+
const result = await Promise.all([
|
|
95
|
+
visibilityStyle.setMeshPolygonsVisibility(id, visibilityStyle.meshPolygonsVisibility(id)),
|
|
96
|
+
setMeshPolygonsActiveColoring(id, activeColoringType, deps),
|
|
97
|
+
]);
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
type UseMeshPolygonsStyleReturn = ReturnType<typeof useMeshPolygonsCommonStyle> & {
|
|
102
|
+
meshPolygonsColoring: (id: string) => StyleValues;
|
|
103
|
+
meshPolygonsActiveColoring: (id: string) => string | undefined;
|
|
104
|
+
setMeshPolygonsActiveColoring: (id: string, type: string | undefined) => Promise<unknown>;
|
|
105
|
+
applyMeshPolygonsStyle: (id: string) => Promise<unknown[]>;
|
|
106
|
+
} & ReturnType<typeof useMeshPolygonsVisibilityStyle> &
|
|
107
|
+
ReturnType<typeof useMeshPolygonsColorStyle> &
|
|
108
|
+
ReturnType<typeof useMeshPolygonsTexturesStyle> &
|
|
109
|
+
ReturnType<typeof useMeshPolygonsVertexAttributeStyle> &
|
|
110
|
+
ReturnType<typeof useMeshPolygonsPolygonAttributeStyle>;
|
|
111
|
+
|
|
112
|
+
export function useMeshPolygonsStyle(): UseMeshPolygonsStyleReturn {
|
|
113
|
+
const meshPolygonsCommonStyle = useMeshPolygonsCommonStyle();
|
|
114
|
+
const meshPolygonsVisibility = useMeshPolygonsVisibilityStyle();
|
|
115
|
+
const meshPolygonsColorStyle = useMeshPolygonsColorStyle();
|
|
116
|
+
const meshPolygonsTexturesStore = useMeshPolygonsTexturesStyle();
|
|
117
|
+
const meshPolygonsVertexAttributeStyle = useMeshPolygonsVertexAttributeStyle();
|
|
118
|
+
const meshPolygonsPolygonAttributeStyle = useMeshPolygonsPolygonAttributeStyle();
|
|
119
|
+
|
|
120
|
+
const activeColoringDeps: MeshPolygonsActiveColoringDeps = {
|
|
121
|
+
commonStyle: meshPolygonsCommonStyle,
|
|
122
|
+
colorStyle: meshPolygonsColorStyle,
|
|
123
|
+
texturesStyle: meshPolygonsTexturesStore,
|
|
124
|
+
vertexAttributeStyle: meshPolygonsVertexAttributeStyle,
|
|
125
|
+
polygonAttributeStyle: meshPolygonsPolygonAttributeStyle,
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
function meshPolygonsColoring(id: string): StyleValues {
|
|
129
|
+
return meshPolygonsCommonStyle.meshPolygonsColoring(id);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function meshPolygonsActiveColoring(id: string): string | undefined {
|
|
133
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.active is defined as string in the data style schema.
|
|
134
|
+
return meshPolygonsColoring(id).active as string | undefined;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async function boundSetMeshPolygonsActiveColoring(
|
|
138
|
+
id: string,
|
|
139
|
+
type: string | undefined,
|
|
140
|
+
): Promise<unknown> {
|
|
141
|
+
const result = await setMeshPolygonsActiveColoring(id, type, activeColoringDeps);
|
|
142
|
+
return result;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
async function boundApplyMeshPolygonsStyle(id: string): Promise<unknown[]> {
|
|
146
|
+
const result = await applyMeshPolygonsStyle(
|
|
147
|
+
id,
|
|
148
|
+
meshPolygonsVisibility,
|
|
149
|
+
meshPolygonsActiveColoring(id),
|
|
150
|
+
activeColoringDeps,
|
|
151
|
+
);
|
|
152
|
+
return result;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return {
|
|
156
|
+
...meshPolygonsCommonStyle,
|
|
157
|
+
meshPolygonsColoring,
|
|
158
|
+
meshPolygonsActiveColoring,
|
|
159
|
+
setMeshPolygonsActiveColoring: boundSetMeshPolygonsActiveColoring,
|
|
160
|
+
applyMeshPolygonsStyle: boundApplyMeshPolygonsStyle,
|
|
161
|
+
...meshPolygonsVisibility,
|
|
162
|
+
...meshPolygonsColorStyle,
|
|
163
|
+
...meshPolygonsTexturesStore,
|
|
164
|
+
...meshPolygonsVertexAttributeStyle,
|
|
165
|
+
...meshPolygonsPolygonAttributeStyle,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
@@ -0,0 +1,282 @@
|
|
|
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 meshPolygonsPolygonAttributeSchemas =
|
|
12
|
+
viewer_schemas.opengeodeweb_viewer.mesh.polygons.attribute.polygon;
|
|
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 isMeshPolygonsPolygonAttributeValid({
|
|
37
|
+
name,
|
|
38
|
+
item,
|
|
39
|
+
minimum,
|
|
40
|
+
maximum,
|
|
41
|
+
colorMap,
|
|
42
|
+
}: AttributeInput): boolean {
|
|
43
|
+
return (
|
|
44
|
+
name !== undefined &&
|
|
45
|
+
item !== undefined &&
|
|
46
|
+
minimum !== undefined &&
|
|
47
|
+
maximum !== undefined &&
|
|
48
|
+
colorMap !== undefined
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// oxlint-disable-next-line max-lines-per-function
|
|
53
|
+
function useMeshPolygonsPolygonAttributeStyle(): {
|
|
54
|
+
meshPolygonsPolygonAttributeName: (id: string) => string | undefined;
|
|
55
|
+
meshPolygonsPolygonAttributeItem: (id: string) => number;
|
|
56
|
+
meshPolygonsPolygonAttributeRange: (id: string) => [number | undefined, number | undefined];
|
|
57
|
+
meshPolygonsPolygonAttributeColorMap: (id: string) => string | undefined;
|
|
58
|
+
meshPolygonsPolygonAttributeStoredConfig: (
|
|
59
|
+
id: string,
|
|
60
|
+
name: string | undefined,
|
|
61
|
+
item: number | undefined,
|
|
62
|
+
) => AttributeStoredConfig;
|
|
63
|
+
setMeshPolygonsPolygonAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
|
|
64
|
+
setMeshPolygonsPolygonAttributeName: (id: string, name: string) => Promise<unknown>;
|
|
65
|
+
setMeshPolygonsPolygonAttributeItem: (id: string, item: number) => Promise<unknown>;
|
|
66
|
+
setMeshPolygonsPolygonAttributeRange: (
|
|
67
|
+
id: string,
|
|
68
|
+
minimum: number,
|
|
69
|
+
maximum: number,
|
|
70
|
+
) => Promise<unknown>;
|
|
71
|
+
setMeshPolygonsPolygonAttributeColorMap: (
|
|
72
|
+
id: string,
|
|
73
|
+
colorMap: string | undefined,
|
|
74
|
+
) => Promise<unknown>;
|
|
75
|
+
meshPolygonsPolygonAttributeNoDataColor: (id: string) => unknown;
|
|
76
|
+
setMeshPolygonsPolygonAttributeNoDataColor: (
|
|
77
|
+
id: string,
|
|
78
|
+
no_data_color: unknown,
|
|
79
|
+
) => Promise<unknown>;
|
|
80
|
+
} {
|
|
81
|
+
const viewerStore = useViewerStore();
|
|
82
|
+
const meshPolygonsCommonStyle = useMeshPolygonsCommonStyle();
|
|
83
|
+
function meshPolygonsPolygonAttribute(id: string): AttributeState {
|
|
84
|
+
// oxlint-disable-next-line no-unsafe-type-assertion -- coloring.polygon shape is defined by the data style schema.
|
|
85
|
+
return meshPolygonsCommonStyle.meshPolygonsColoring(id).polygon as AttributeState;
|
|
86
|
+
}
|
|
87
|
+
function meshPolygonsPolygonAttributeStoredConfig(
|
|
88
|
+
id: string,
|
|
89
|
+
name: string | undefined,
|
|
90
|
+
item: number | undefined,
|
|
91
|
+
): AttributeStoredConfig {
|
|
92
|
+
const { storedConfigs } = meshPolygonsPolygonAttribute(id);
|
|
93
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
94
|
+
const itemConfig = item === undefined ? undefined : nameConfig?.[item];
|
|
95
|
+
if (itemConfig !== undefined) {
|
|
96
|
+
return itemConfig;
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
minimum: undefined,
|
|
100
|
+
maximum: undefined,
|
|
101
|
+
colorMap: undefined,
|
|
102
|
+
no_data_color: DEFAULT_NO_DATA_COLOR,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
async function mutateMeshPolygonsPolygonStyle(
|
|
106
|
+
id: string,
|
|
107
|
+
values: Record<string, unknown>,
|
|
108
|
+
): Promise<string> {
|
|
109
|
+
const result = await meshPolygonsCommonStyle.mutateMeshPolygonsPolygonStyle(id, values);
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
async function setMeshPolygonsPolygonAttributeStoredConfig(
|
|
113
|
+
id: string,
|
|
114
|
+
name: string | undefined,
|
|
115
|
+
item: number | undefined,
|
|
116
|
+
config: Partial<AttributeStoredConfig>,
|
|
117
|
+
): Promise<string> {
|
|
118
|
+
const result = await mutateMeshPolygonsPolygonStyle(id, {
|
|
119
|
+
storedConfigs: {
|
|
120
|
+
[name ?? ""]: {
|
|
121
|
+
lastItem: item,
|
|
122
|
+
[item ?? 0]: config,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
function meshPolygonsPolygonAttributeName(id: string): string | undefined {
|
|
129
|
+
return meshPolygonsPolygonAttribute(id).name;
|
|
130
|
+
}
|
|
131
|
+
function meshPolygonsPolygonAttributeLastItem(id: string, name: string | undefined): number {
|
|
132
|
+
const { storedConfigs } = meshPolygonsPolygonAttribute(id);
|
|
133
|
+
const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
|
|
134
|
+
if (nameConfig !== undefined) {
|
|
135
|
+
return nameConfig.lastItem;
|
|
136
|
+
}
|
|
137
|
+
return 0;
|
|
138
|
+
}
|
|
139
|
+
function meshPolygonsPolygonAttributeItem(id: string): number {
|
|
140
|
+
const { item, name } = meshPolygonsPolygonAttribute(id);
|
|
141
|
+
return item ?? meshPolygonsPolygonAttributeLastItem(id, name);
|
|
142
|
+
}
|
|
143
|
+
async function setMeshPolygonsPolygonAttribute(
|
|
144
|
+
id: string,
|
|
145
|
+
{
|
|
146
|
+
name,
|
|
147
|
+
item,
|
|
148
|
+
minimum,
|
|
149
|
+
maximum,
|
|
150
|
+
colorMap,
|
|
151
|
+
no_data_color = DEFAULT_NO_DATA_COLOR,
|
|
152
|
+
}: AttributeInput,
|
|
153
|
+
): Promise<unknown> {
|
|
154
|
+
await mutateMeshPolygonsPolygonStyle(id, {
|
|
155
|
+
name,
|
|
156
|
+
item,
|
|
157
|
+
});
|
|
158
|
+
await setMeshPolygonsPolygonAttributeStoredConfig(id, name, item, {
|
|
159
|
+
minimum,
|
|
160
|
+
maximum,
|
|
161
|
+
colorMap,
|
|
162
|
+
no_data_color,
|
|
163
|
+
});
|
|
164
|
+
const points = getRGBPointsFromPreset(colorMap ?? "");
|
|
165
|
+
const schema = meshPolygonsPolygonAttributeSchemas.attribute;
|
|
166
|
+
const params = {
|
|
167
|
+
id,
|
|
168
|
+
name,
|
|
169
|
+
item,
|
|
170
|
+
points,
|
|
171
|
+
minimum,
|
|
172
|
+
maximum,
|
|
173
|
+
no_data_color,
|
|
174
|
+
};
|
|
175
|
+
return viewerStore.request({
|
|
176
|
+
schema,
|
|
177
|
+
params,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
async function applyPolygonAttribute(id: string): Promise<unknown> {
|
|
181
|
+
const name = meshPolygonsPolygonAttributeName(id);
|
|
182
|
+
const item = meshPolygonsPolygonAttributeItem(id);
|
|
183
|
+
const storedConfig = meshPolygonsPolygonAttributeStoredConfig(id, name, item);
|
|
184
|
+
const attribute = {
|
|
185
|
+
name,
|
|
186
|
+
item,
|
|
187
|
+
minimum: storedConfig.minimum,
|
|
188
|
+
maximum: storedConfig.maximum,
|
|
189
|
+
colorMap: storedConfig.colorMap,
|
|
190
|
+
no_data_color: storedConfig.no_data_color,
|
|
191
|
+
};
|
|
192
|
+
if (isMeshPolygonsPolygonAttributeValid(attribute)) {
|
|
193
|
+
const result = await setMeshPolygonsPolygonAttribute(id, attribute);
|
|
194
|
+
return result;
|
|
195
|
+
}
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
async function setMeshPolygonsPolygonAttributeName(id: string, name: string): Promise<unknown> {
|
|
199
|
+
const item = meshPolygonsPolygonAttributeLastItem(id, name);
|
|
200
|
+
await mutateMeshPolygonsPolygonStyle(id, {
|
|
201
|
+
name,
|
|
202
|
+
item,
|
|
203
|
+
});
|
|
204
|
+
return applyPolygonAttribute(id);
|
|
205
|
+
}
|
|
206
|
+
async function setMeshPolygonsPolygonAttributeItem(id: string, item: number): Promise<unknown> {
|
|
207
|
+
await mutateMeshPolygonsPolygonStyle(id, {
|
|
208
|
+
item,
|
|
209
|
+
});
|
|
210
|
+
return applyPolygonAttribute(id);
|
|
211
|
+
}
|
|
212
|
+
function meshPolygonsPolygonAttributeRange(id: string): [number | undefined, number | undefined] {
|
|
213
|
+
const name = meshPolygonsPolygonAttributeName(id);
|
|
214
|
+
const item = meshPolygonsPolygonAttributeItem(id);
|
|
215
|
+
const storedConfig = meshPolygonsPolygonAttributeStoredConfig(id, name, item);
|
|
216
|
+
return [storedConfig.minimum, storedConfig.maximum];
|
|
217
|
+
}
|
|
218
|
+
async function setMeshPolygonsPolygonAttributeRange(
|
|
219
|
+
id: string,
|
|
220
|
+
minimum: number,
|
|
221
|
+
maximum: number,
|
|
222
|
+
): Promise<unknown> {
|
|
223
|
+
const name = meshPolygonsPolygonAttributeName(id);
|
|
224
|
+
const item = meshPolygonsPolygonAttributeItem(id);
|
|
225
|
+
await setMeshPolygonsPolygonAttributeStoredConfig(id, name, item, {
|
|
226
|
+
minimum,
|
|
227
|
+
maximum,
|
|
228
|
+
});
|
|
229
|
+
return applyPolygonAttribute(id);
|
|
230
|
+
}
|
|
231
|
+
function meshPolygonsPolygonAttributeColorMap(id: string): string | undefined {
|
|
232
|
+
const name = meshPolygonsPolygonAttributeName(id);
|
|
233
|
+
const item = meshPolygonsPolygonAttributeItem(id);
|
|
234
|
+
const storedConfig = meshPolygonsPolygonAttributeStoredConfig(id, name, item);
|
|
235
|
+
return storedConfig.colorMap;
|
|
236
|
+
}
|
|
237
|
+
async function setMeshPolygonsPolygonAttributeColorMap(
|
|
238
|
+
id: string,
|
|
239
|
+
colorMap: string | undefined,
|
|
240
|
+
): Promise<unknown> {
|
|
241
|
+
const name = meshPolygonsPolygonAttributeName(id);
|
|
242
|
+
const item = meshPolygonsPolygonAttributeItem(id);
|
|
243
|
+
await setMeshPolygonsPolygonAttributeStoredConfig(id, name, item, {
|
|
244
|
+
colorMap,
|
|
245
|
+
});
|
|
246
|
+
return applyPolygonAttribute(id);
|
|
247
|
+
}
|
|
248
|
+
function meshPolygonsPolygonAttributeNoDataColor(id: string): unknown {
|
|
249
|
+
const name = meshPolygonsPolygonAttributeName(id);
|
|
250
|
+
const item = meshPolygonsPolygonAttributeItem(id);
|
|
251
|
+
const storedConfig = meshPolygonsPolygonAttributeStoredConfig(id, name, item);
|
|
252
|
+
return storedConfig.no_data_color;
|
|
253
|
+
}
|
|
254
|
+
async function setMeshPolygonsPolygonAttributeNoDataColor(
|
|
255
|
+
id: string,
|
|
256
|
+
no_data_color: unknown,
|
|
257
|
+
): Promise<unknown> {
|
|
258
|
+
const name = meshPolygonsPolygonAttributeName(id);
|
|
259
|
+
const item = meshPolygonsPolygonAttributeItem(id);
|
|
260
|
+
const storedConfig = meshPolygonsPolygonAttributeStoredConfig(id, name, item);
|
|
261
|
+
await setMeshPolygonsPolygonAttributeStoredConfig(id, name, item, {
|
|
262
|
+
...storedConfig,
|
|
263
|
+
no_data_color,
|
|
264
|
+
});
|
|
265
|
+
return applyPolygonAttribute(id);
|
|
266
|
+
}
|
|
267
|
+
return {
|
|
268
|
+
meshPolygonsPolygonAttributeName,
|
|
269
|
+
meshPolygonsPolygonAttributeItem,
|
|
270
|
+
meshPolygonsPolygonAttributeRange,
|
|
271
|
+
meshPolygonsPolygonAttributeColorMap,
|
|
272
|
+
meshPolygonsPolygonAttributeStoredConfig,
|
|
273
|
+
setMeshPolygonsPolygonAttribute,
|
|
274
|
+
setMeshPolygonsPolygonAttributeName,
|
|
275
|
+
setMeshPolygonsPolygonAttributeItem,
|
|
276
|
+
setMeshPolygonsPolygonAttributeRange,
|
|
277
|
+
setMeshPolygonsPolygonAttributeColorMap,
|
|
278
|
+
meshPolygonsPolygonAttributeNoDataColor,
|
|
279
|
+
setMeshPolygonsPolygonAttributeNoDataColor,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
export { isMeshPolygonsPolygonAttributeValid, useMeshPolygonsPolygonAttributeStyle };
|
|
@@ -6,29 +6,35 @@ import { useMeshPolygonsCommonStyle } 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 useMeshPolygonsTexturesStyle() {
|
|
11
|
+
export function useMeshPolygonsTexturesStyle(): {
|
|
12
|
+
meshPolygonsTextures: (id: string) => unknown;
|
|
13
|
+
setMeshPolygonsTextures: (id: string, textures: unknown) => Promise<unknown>;
|
|
14
|
+
} {
|
|
12
15
|
const viewerStore = useViewerStore();
|
|
13
16
|
const meshPolygonsCommonStyle = useMeshPolygonsCommonStyle();
|
|
14
17
|
|
|
15
|
-
function meshPolygonsTextures(id) {
|
|
18
|
+
function meshPolygonsTextures(id: string): unknown {
|
|
16
19
|
return meshPolygonsCommonStyle.meshPolygonsColoring(id).textures;
|
|
17
20
|
}
|
|
18
|
-
function setMeshPolygonsTextures(id, textures) {
|
|
21
|
+
async function setMeshPolygonsTextures(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
|
-
meshPolygonsCommonStyle.mutateMeshPolygonsStyle(id, {
|
|
29
|
+
response_function: async () => {
|
|
30
|
+
const mutateResult = await meshPolygonsCommonStyle.mutateMeshPolygonsStyle(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 {
|