@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
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
<script setup>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
|
|
2
3
|
import TriangulatedSurfaceEdgesPoints from "@ogw_front/assets/viewer_svgs/surface_points.svg";
|
|
3
|
-
import ViewerGenericMeshPointsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PointsOptions";
|
|
4
|
+
import ViewerGenericMeshPointsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PointsOptions.vue";
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
itemProps:
|
|
7
|
-
}
|
|
6
|
+
interface Props {
|
|
7
|
+
itemProps: ItemProps & { index?: number };
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { itemProps } = defineProps<Props>();
|
|
8
11
|
</script>
|
|
9
12
|
|
|
10
13
|
<template>
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
<script setup>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import ViewerContextMenuItem, {
|
|
3
|
+
type ItemProps,
|
|
4
|
+
} from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
|
|
2
5
|
import PolygonalSurfacePolygons from "@ogw_front/assets/viewer_svgs/surface_triangles.svg";
|
|
3
|
-
import
|
|
4
|
-
import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector";
|
|
5
|
-
import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch";
|
|
6
|
-
|
|
6
|
+
import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
|
|
7
|
+
import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
|
|
8
|
+
import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
|
|
7
9
|
import { useBatchStyle } from "@ogw_front/composables/batch_style";
|
|
8
10
|
import { useDataStyleStore } from "@ogw_front/stores/data_style";
|
|
9
11
|
import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
|
|
@@ -12,134 +14,161 @@ const dataStyleStore = useDataStyleStore();
|
|
|
12
14
|
const hybridViewerStore = useHybridViewerStore();
|
|
13
15
|
const { applyBatchStyle } = useBatchStyle();
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
17
|
+
interface Texture {
|
|
18
|
+
id: string;
|
|
19
|
+
texture_name: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface Props {
|
|
23
|
+
itemProps: ItemProps & { index: number };
|
|
24
|
+
tooltip?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const { itemProps, tooltip = "Polygons options" } = defineProps<Props>();
|
|
19
28
|
|
|
20
29
|
const id = toRef(() => itemProps.id);
|
|
21
30
|
|
|
22
|
-
const visibility = computed({
|
|
31
|
+
const visibility = computed<boolean>({
|
|
23
32
|
get: () => dataStyleStore.meshPolygonsVisibility(id.value),
|
|
24
33
|
set: async (newValue) => {
|
|
25
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
34
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
26
35
|
dataStyleStore.setMeshPolygonsVisibility(targetId, newValue),
|
|
27
36
|
);
|
|
28
37
|
hybridViewerStore.remoteRender();
|
|
29
38
|
},
|
|
30
39
|
});
|
|
31
|
-
const coloring_style_key = computed({
|
|
40
|
+
const coloring_style_key = computed<string>({
|
|
32
41
|
get: () => dataStyleStore.meshPolygonsActiveColoring(id.value),
|
|
33
42
|
set: async (newValue) => {
|
|
34
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
43
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
35
44
|
dataStyleStore.setMeshPolygonsActiveColoring(targetId, newValue),
|
|
36
45
|
);
|
|
37
46
|
hybridViewerStore.remoteRender();
|
|
38
47
|
},
|
|
39
48
|
});
|
|
40
|
-
const color = computed({
|
|
41
|
-
get: () => dataStyleStore.meshPolygonsColor(id.value),
|
|
49
|
+
const color = computed<RGBAColor | undefined>({
|
|
50
|
+
get: () => dataStyleStore.meshPolygonsColor(id.value) as RGBAColor | undefined,
|
|
42
51
|
set: async (newValue) => {
|
|
43
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
52
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
44
53
|
dataStyleStore.setMeshPolygonsColor(targetId, newValue),
|
|
45
54
|
);
|
|
46
55
|
hybridViewerStore.remoteRender();
|
|
47
56
|
},
|
|
48
57
|
});
|
|
49
|
-
const textures = computed({
|
|
50
|
-
get: () => dataStyleStore.meshPolygonsTextures(id.value),
|
|
58
|
+
const textures = computed<Texture[] | undefined>({
|
|
59
|
+
get: () => dataStyleStore.meshPolygonsTextures(id.value) as Texture[] | undefined,
|
|
51
60
|
set: async (newValue) => {
|
|
52
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
61
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
53
62
|
dataStyleStore.setMeshPolygonsTextures(targetId, newValue),
|
|
54
63
|
);
|
|
55
64
|
hybridViewerStore.remoteRender();
|
|
56
65
|
},
|
|
57
66
|
});
|
|
58
|
-
const vertex_attribute_name = computed({
|
|
67
|
+
const vertex_attribute_name = computed<string | undefined>({
|
|
59
68
|
get: () => dataStyleStore.meshPolygonsVertexAttributeName(id.value),
|
|
60
69
|
set: async (newValue) => {
|
|
61
|
-
|
|
62
|
-
|
|
70
|
+
if (newValue === undefined) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
74
|
+
Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeName(targetId, newValue)),
|
|
63
75
|
);
|
|
64
76
|
hybridViewerStore.remoteRender();
|
|
65
77
|
},
|
|
66
78
|
});
|
|
67
|
-
const vertex_attribute_item = computed({
|
|
79
|
+
const vertex_attribute_item = computed<string | undefined>({
|
|
68
80
|
get: () => dataStyleStore.meshPolygonsVertexAttributeItem(id.value),
|
|
69
81
|
set: async (newValue) => {
|
|
70
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
71
|
-
dataStyleStore.setMeshPolygonsVertexAttributeItem(targetId, newValue),
|
|
82
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
83
|
+
Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeItem(targetId, newValue)),
|
|
72
84
|
);
|
|
73
85
|
hybridViewerStore.remoteRender();
|
|
74
86
|
},
|
|
75
87
|
});
|
|
76
|
-
const vertex_attribute_range = computed({
|
|
88
|
+
const vertex_attribute_range = computed<[number, number] | undefined>({
|
|
77
89
|
get: () => dataStyleStore.meshPolygonsVertexAttributeRange(id.value),
|
|
78
90
|
set: async (newValue) => {
|
|
79
|
-
|
|
80
|
-
|
|
91
|
+
const [minimum, maximum] = newValue;
|
|
92
|
+
if (minimum === undefined || maximum === undefined) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
96
|
+
Promise.resolve(
|
|
97
|
+
dataStyleStore.setMeshPolygonsVertexAttributeRange(targetId, minimum, maximum),
|
|
98
|
+
),
|
|
81
99
|
);
|
|
82
100
|
hybridViewerStore.remoteRender();
|
|
83
101
|
},
|
|
84
102
|
});
|
|
85
|
-
const vertex_attribute_color_map = computed({
|
|
103
|
+
const vertex_attribute_color_map = computed<Map<string, RGBAColor> | undefined>({
|
|
86
104
|
get: () => dataStyleStore.meshPolygonsVertexAttributeColorMap(id.value),
|
|
87
105
|
set: async (newValue) => {
|
|
88
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
89
|
-
dataStyleStore.setMeshPolygonsVertexAttributeColorMap(targetId, newValue),
|
|
106
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
107
|
+
Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeColorMap(targetId, newValue)),
|
|
90
108
|
);
|
|
91
109
|
hybridViewerStore.remoteRender();
|
|
92
110
|
},
|
|
93
111
|
});
|
|
94
|
-
const vertex_attribute_no_data_color = computed({
|
|
95
|
-
get: () =>
|
|
112
|
+
const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
|
|
113
|
+
get: () =>
|
|
114
|
+
dataStyleStore.meshPolygonsVertexAttributeNoDataColor(id.value) as RGBAColor | undefined,
|
|
96
115
|
set: async (newValue) => {
|
|
97
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
116
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
98
117
|
dataStyleStore.setMeshPolygonsVertexAttributeNoDataColor(targetId, newValue),
|
|
99
118
|
);
|
|
100
119
|
hybridViewerStore.remoteRender();
|
|
101
120
|
},
|
|
102
121
|
});
|
|
103
|
-
const polygon_attribute_name = computed({
|
|
122
|
+
const polygon_attribute_name = computed<string | undefined>({
|
|
104
123
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeName(id.value),
|
|
105
124
|
set: async (newValue) => {
|
|
106
|
-
|
|
107
|
-
|
|
125
|
+
if (newValue === undefined) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
129
|
+
Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeName(targetId, newValue)),
|
|
108
130
|
);
|
|
109
131
|
hybridViewerStore.remoteRender();
|
|
110
132
|
},
|
|
111
133
|
});
|
|
112
|
-
const polygon_attribute_item = computed({
|
|
134
|
+
const polygon_attribute_item = computed<string | undefined>({
|
|
113
135
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeItem(id.value),
|
|
114
136
|
set: async (newValue) => {
|
|
115
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
116
|
-
dataStyleStore.setMeshPolygonsPolygonAttributeItem(targetId, newValue),
|
|
137
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
138
|
+
Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeItem(targetId, newValue)),
|
|
117
139
|
);
|
|
118
140
|
hybridViewerStore.remoteRender();
|
|
119
141
|
},
|
|
120
142
|
});
|
|
121
|
-
const polygon_attribute_range = computed({
|
|
143
|
+
const polygon_attribute_range = computed<[number, number] | undefined>({
|
|
122
144
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeRange(id.value),
|
|
123
145
|
set: async (newValue) => {
|
|
124
|
-
|
|
125
|
-
|
|
146
|
+
const [minimum, maximum] = newValue;
|
|
147
|
+
if (minimum === undefined || maximum === undefined) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
151
|
+
Promise.resolve(
|
|
152
|
+
dataStyleStore.setMeshPolygonsPolygonAttributeRange(targetId, minimum, maximum),
|
|
153
|
+
),
|
|
126
154
|
);
|
|
127
155
|
hybridViewerStore.remoteRender();
|
|
128
156
|
},
|
|
129
157
|
});
|
|
130
|
-
const polygon_attribute_color_map = computed({
|
|
158
|
+
const polygon_attribute_color_map = computed<Map<string, RGBAColor> | undefined>({
|
|
131
159
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeColorMap(id.value),
|
|
132
160
|
set: async (newValue) => {
|
|
133
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
134
|
-
dataStyleStore.setMeshPolygonsPolygonAttributeColorMap(targetId, newValue),
|
|
161
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
162
|
+
Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeColorMap(targetId, newValue)),
|
|
135
163
|
);
|
|
136
164
|
hybridViewerStore.remoteRender();
|
|
137
165
|
},
|
|
138
166
|
});
|
|
139
|
-
const polygon_attribute_no_data_color = computed({
|
|
140
|
-
get: () =>
|
|
167
|
+
const polygon_attribute_no_data_color = computed<RGBAColor | undefined>({
|
|
168
|
+
get: () =>
|
|
169
|
+
dataStyleStore.meshPolygonsPolygonAttributeNoDataColor(id.value) as RGBAColor | undefined,
|
|
141
170
|
set: async (newValue) => {
|
|
142
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
171
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
143
172
|
dataStyleStore.setMeshPolygonsPolygonAttributeNoDataColor(targetId, newValue),
|
|
144
173
|
);
|
|
145
174
|
hybridViewerStore.remoteRender();
|
|
@@ -150,6 +179,7 @@ const polygon_attribute_no_data_color = computed({
|
|
|
150
179
|
<template>
|
|
151
180
|
<ViewerContextMenuItem
|
|
152
181
|
data-testid="meshPolygonsMenu"
|
|
182
|
+
:index="itemProps.index"
|
|
153
183
|
:itemProps="itemProps"
|
|
154
184
|
:tooltip="tooltip"
|
|
155
185
|
:btnImage="PolygonalSurfacePolygons"
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
import
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
|
|
3
|
+
import ViewerSpecificPolygonsOptions from "@ogw_front/components/Viewer/Surface/PolygonsOptions.vue";
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
itemProps:
|
|
6
|
-
}
|
|
5
|
+
interface Props {
|
|
6
|
+
itemProps: ItemProps & { index: number };
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { itemProps } = defineProps<Props>();
|
|
7
10
|
</script>
|
|
8
11
|
|
|
9
12
|
<template>
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
<script setup>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
|
|
2
3
|
import TetrahedralSolidTetrahedra from "@ogw_front/assets/viewer_svgs/solid_polyhedra.svg";
|
|
3
|
-
import ViewerGenericMeshPolyhedraOptions from "@ogw_front/components/Viewer/Generic/Mesh/PolyhedraOptions";
|
|
4
|
+
import ViewerGenericMeshPolyhedraOptions from "@ogw_front/components/Viewer/Generic/Mesh/PolyhedraOptions.vue";
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
itemProps:
|
|
7
|
-
}
|
|
6
|
+
interface Props {
|
|
7
|
+
itemProps: ItemProps & { index?: number };
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { itemProps } = defineProps<Props>();
|
|
8
11
|
</script>
|
|
9
12
|
|
|
10
13
|
<template>
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
<script setup>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
|
|
2
3
|
import TetrahedralSolidTriangles from "@ogw_front/assets/viewer_svgs/solid_facets.svg";
|
|
3
|
-
import ViewerGenericMeshPolygonsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PolygonsOptions";
|
|
4
|
+
import ViewerGenericMeshPolygonsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PolygonsOptions.vue";
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
itemProps:
|
|
7
|
-
}
|
|
6
|
+
interface Props {
|
|
7
|
+
itemProps: ItemProps & { index?: number };
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { itemProps } = defineProps<Props>();
|
|
8
11
|
</script>
|
|
9
12
|
|
|
10
13
|
<template>
|
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
import OverlappingObjectsPicker from "@ogw_front/components/Viewer/OverlappingObjectsPicker";
|
|
3
|
-
import ViewerContextMenu from "@ogw_front/components/Viewer/ContextMenu/ContextMenu";
|
|
4
|
-
import ViewerObjectTreeLayout from "@ogw_front/components/Viewer/ObjectTree/Layout";
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import OverlappingObjectsPicker from "@ogw_front/components/Viewer/OverlappingObjectsPicker.vue";
|
|
3
|
+
import ViewerContextMenu from "@ogw_front/components/Viewer/ContextMenu/ContextMenu.vue";
|
|
4
|
+
import ViewerObjectTreeLayout from "@ogw_front/components/Viewer/ObjectTree/Layout.vue";
|
|
5
5
|
import { getCurrentInstance } from "vue";
|
|
6
6
|
import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
|
|
7
7
|
import { useMenuStore } from "@ogw_front/stores/menu";
|
|
8
8
|
import { useOverlappingPicker } from "@ogw_front/composables/use_overlapping_picker";
|
|
9
9
|
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
displayMenu:
|
|
13
|
-
containerWidth:
|
|
14
|
-
containerHeight:
|
|
15
|
-
}
|
|
11
|
+
interface Props {
|
|
12
|
+
displayMenu: boolean;
|
|
13
|
+
containerWidth: number;
|
|
14
|
+
containerHeight: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const { displayMenu, containerWidth, containerHeight } = defineProps<Props>();
|
|
16
18
|
|
|
17
|
-
const emit = defineEmits
|
|
19
|
+
const emit = defineEmits<{
|
|
20
|
+
"show-menu": [args: unknown];
|
|
21
|
+
}>();
|
|
18
22
|
const menuStore = useMenuStore();
|
|
19
23
|
const viewerStore = useViewerStore();
|
|
20
24
|
const hybridViewerStore = useHybridViewerStore();
|
|
21
25
|
|
|
22
|
-
function stopHoverHighlight() {
|
|
26
|
+
function stopHoverHighlight(): void {
|
|
23
27
|
hybridViewerStore.is_hover_highlight = false;
|
|
24
28
|
hybridViewerStore.clearHoverHighlight();
|
|
25
29
|
}
|
|
@@ -53,7 +57,7 @@ const {
|
|
|
53
57
|
get_viewer_id: trigger_picker,
|
|
54
58
|
} = useOverlappingPicker();
|
|
55
59
|
|
|
56
|
-
function get_viewer_id(x, y) {
|
|
60
|
+
function get_viewer_id(x: number, y: number): string {
|
|
57
61
|
const instance = getCurrentInstance();
|
|
58
62
|
const containerRect = instance?.proxy?.$el
|
|
59
63
|
?.closest?.('[data-testid="hybridViewer"]')
|
|
@@ -82,7 +86,7 @@ defineExpose({ get_viewer_id });
|
|
|
82
86
|
/>
|
|
83
87
|
<ViewerContextMenu
|
|
84
88
|
v-if="displayMenu"
|
|
85
|
-
:id="menuStore.current_id"
|
|
89
|
+
:id="menuStore.current_id ?? ''"
|
|
86
90
|
:x="menuStore.menuX"
|
|
87
91
|
:y="menuStore.menuY"
|
|
88
92
|
:container-width="containerWidth"
|
|
@@ -160,7 +164,8 @@ defineExpose({ get_viewer_id });
|
|
|
160
164
|
prepend-icon="mdi-ruler"
|
|
161
165
|
@click="hybridViewerStore.clearRuler()"
|
|
162
166
|
>
|
|
163
|
-
Ruler — click to set point
|
|
167
|
+
Ruler — click to set point
|
|
168
|
+
{{ hybridViewerStore.ruler_awaiting_point }}
|
|
164
169
|
· Esc to stop
|
|
165
170
|
<v-divider vertical class="mx-2 my-1" opacity="0.3" />
|
|
166
171
|
<v-icon icon="mdi-close" size="small" />
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { JsonRpcSchema } from "@ogw_shared/utils/types.js";
|
|
3
|
+
import Launcher from "@ogw_front/components/Launcher.vue";
|
|
4
|
+
import PackagesVersions from "@ogw_front/components/PackagesVersions.vue";
|
|
5
|
+
import Stepper from "@ogw_front/components/Stepper.vue";
|
|
6
6
|
import { useInfraStore } from "@ogw_front/stores/infra";
|
|
7
|
+
import { useStepperTree } from "@ogw_front/composables/stepper_tree";
|
|
7
8
|
|
|
8
9
|
const infraStore = useInfraStore();
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
versionsSchema:
|
|
12
|
-
appName:
|
|
13
|
-
}
|
|
11
|
+
interface Props {
|
|
12
|
+
versionsSchema: JsonRpcSchema;
|
|
13
|
+
appName: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const { versionsSchema, appName } = defineProps<Props>();
|
|
17
|
+
|
|
18
|
+
// Pre-existing gap (not introduced by this typing pass): this component never received an actual list of import steps, so `<Stepper>` was being rendered without its required `stepperTree` prop and would have thrown at runtime. Instantiating an (empty) stepper tree here keeps the component from crashing without inventing step content it isn't given.
|
|
19
|
+
const stepperTree = useStepperTree([]);
|
|
14
20
|
</script>
|
|
15
21
|
|
|
16
22
|
<template>
|
|
@@ -23,7 +29,7 @@ const { versionsSchema, appName } = defineProps({
|
|
|
23
29
|
</template>
|
|
24
30
|
<template v-else>
|
|
25
31
|
<v-col>
|
|
26
|
-
<Stepper />
|
|
32
|
+
<Stepper :stepper-tree="stepperTree" />
|
|
27
33
|
</v-col>
|
|
28
34
|
<v-col>
|
|
29
35
|
<PackagesVersions :schema="versionsSchema" />
|
|
@@ -1,17 +1,25 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
import ToolPanel from "@ogw_front/components/ToolPanel";
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import ToolPanel from "@ogw_front/components/ToolPanel.vue";
|
|
3
3
|
|
|
4
|
-
const zScale = defineModel({
|
|
5
|
-
const show = defineModel("show", {
|
|
4
|
+
const zScale = defineModel<number>({ default: 1 });
|
|
5
|
+
const show = defineModel<boolean>("show", { default: false });
|
|
6
6
|
|
|
7
|
-
const
|
|
8
|
-
width: { type: Number, default: 260 },
|
|
9
|
-
escapeFunction: { type: Function, default: undefined },
|
|
10
|
-
});
|
|
7
|
+
const DEFAULT_PANEL_WIDTH = 260;
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
interface Props {
|
|
10
|
+
width?: number;
|
|
11
|
+
escapeFunction?: () => void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const { width = DEFAULT_PANEL_WIDTH, escapeFunction = undefined } = defineProps<Props>();
|
|
15
|
+
|
|
16
|
+
interface Emits {
|
|
17
|
+
apply: [];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const emit = defineEmits<Emits>();
|
|
13
21
|
|
|
14
|
-
function apply() {
|
|
22
|
+
function apply(): void {
|
|
15
23
|
emit("apply");
|
|
16
24
|
show.value = false;
|
|
17
25
|
}
|
|
@@ -1,13 +1,31 @@
|
|
|
1
|
-
<script setup>
|
|
1
|
+
<script setup lang="ts">
|
|
2
2
|
import { useToggle } from "@vueuse/core";
|
|
3
3
|
|
|
4
4
|
import CsvSettings from "./CsvSettings.vue";
|
|
5
5
|
import CsvTable from "./CsvTable.vue";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
interface CsvHeader {
|
|
8
|
+
title: string;
|
|
9
|
+
key: string;
|
|
10
|
+
align: "start" | "end" | "center";
|
|
11
|
+
sortable: boolean;
|
|
12
|
+
}
|
|
13
|
+
type CsvRow = Record<string, string>;
|
|
14
|
+
interface CsvParseResult {
|
|
15
|
+
firstRow: number;
|
|
16
|
+
headerRow: number;
|
|
17
|
+
separator: string;
|
|
18
|
+
xColumn: number;
|
|
19
|
+
yColumn: number;
|
|
20
|
+
zColumn: number;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface Props {
|
|
24
|
+
file: File;
|
|
25
|
+
modelValue?: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const { file, modelValue = false } = defineProps<Props>();
|
|
11
29
|
|
|
12
30
|
const MAX_CONTENT_SLICE = 1000;
|
|
13
31
|
const MAX_LINES_FOR_DETECTION = 5;
|
|
@@ -15,23 +33,28 @@ const MIN_AVG_COUNT = 1.5;
|
|
|
15
33
|
const MAX_VARIANCE = 0.5;
|
|
16
34
|
const PREVIEW_ROWS_LIMIT = 101;
|
|
17
35
|
|
|
18
|
-
|
|
36
|
+
interface Emits {
|
|
37
|
+
"update:modelValue": [value: boolean];
|
|
38
|
+
confirm: [result: CsvParseResult];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const emit = defineEmits<Emits>();
|
|
19
42
|
|
|
20
|
-
const separator = ref(",");
|
|
21
|
-
const headerRow = ref(0);
|
|
22
|
-
const firstRow = ref(1);
|
|
43
|
+
const separator = ref<string>(",");
|
|
44
|
+
const headerRow = ref<number>(0);
|
|
45
|
+
const firstRow = ref<number>(1);
|
|
23
46
|
|
|
24
|
-
const xColumn = ref(undefined);
|
|
25
|
-
const yColumn = ref(undefined);
|
|
26
|
-
const zColumn = ref(undefined);
|
|
47
|
+
const xColumn = ref<string | undefined>(undefined);
|
|
48
|
+
const yColumn = ref<string | undefined>(undefined);
|
|
49
|
+
const zColumn = ref<string | undefined>(undefined);
|
|
27
50
|
|
|
28
|
-
const rawContent = ref("");
|
|
29
|
-
const previewRows = ref([]);
|
|
30
|
-
const previewHeaders = ref([]);
|
|
31
|
-
const loading = ref(false);
|
|
51
|
+
const rawContent = ref<string>("");
|
|
52
|
+
const previewRows = ref<CsvRow[]>([]);
|
|
53
|
+
const previewHeaders = ref<CsvHeader[]>([]);
|
|
54
|
+
const loading = ref<boolean>(false);
|
|
32
55
|
const toggleLoading = useToggle(loading);
|
|
33
56
|
|
|
34
|
-
function autoDetectSeparator(content) {
|
|
57
|
+
function autoDetectSeparator(content: string): string {
|
|
35
58
|
const lines = content
|
|
36
59
|
.slice(0, MAX_CONTENT_SLICE)
|
|
37
60
|
.split(/\r?\n/u)
|
|
@@ -54,57 +77,55 @@ function autoDetectSeparator(content) {
|
|
|
54
77
|
return best;
|
|
55
78
|
}
|
|
56
79
|
|
|
57
|
-
function
|
|
58
|
-
if (!
|
|
59
|
-
return;
|
|
80
|
+
function splitLine(line: string): string[] {
|
|
81
|
+
if (!separator.value) {
|
|
82
|
+
return [line];
|
|
60
83
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (
|
|
66
|
-
|
|
84
|
+
const result = [];
|
|
85
|
+
let current = "";
|
|
86
|
+
let inQuotes = false;
|
|
87
|
+
for (const char of line) {
|
|
88
|
+
if (char === '"') {
|
|
89
|
+
inQuotes = !inQuotes;
|
|
90
|
+
} else if (char === separator.value && !inQuotes) {
|
|
91
|
+
result.push(current.trim());
|
|
92
|
+
current = "";
|
|
93
|
+
} else {
|
|
94
|
+
current += char;
|
|
67
95
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
result.push(current.trim());
|
|
77
|
-
current = "";
|
|
78
|
-
} else {
|
|
79
|
-
current += char;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
result.push(current.trim());
|
|
83
|
-
return result;
|
|
96
|
+
}
|
|
97
|
+
result.push(current.trim());
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function parseContent(): string[] {
|
|
102
|
+
if (!rawContent.value) {
|
|
103
|
+
return [];
|
|
84
104
|
}
|
|
85
105
|
|
|
106
|
+
const allLines = rawContent.value.split(/\r?\n/u).filter((line) => line.trim() !== "");
|
|
86
107
|
const headerLine = allLines[headerRow.value];
|
|
87
108
|
const rawHeaders = headerLine ? splitLine(headerLine) : [];
|
|
88
109
|
|
|
89
110
|
previewHeaders.value = rawHeaders.map((header, index) => ({
|
|
90
111
|
title: header || `Column ${index + 1}`,
|
|
91
112
|
key: `col${index}`,
|
|
92
|
-
align: "start",
|
|
113
|
+
align: "start" as const,
|
|
93
114
|
sortable: true,
|
|
94
115
|
}));
|
|
95
116
|
|
|
96
117
|
const dataLines = allLines.slice(firstRow.value, firstRow.value + PREVIEW_ROWS_LIMIT);
|
|
97
118
|
previewRows.value = dataLines.map((line) => {
|
|
98
119
|
const row = splitLine(line);
|
|
99
|
-
const obj = {};
|
|
120
|
+
const obj: CsvRow = {};
|
|
100
121
|
for (let index = 0; index < row.length; index += 1) {
|
|
101
|
-
obj[`col${index}`] = row[index];
|
|
122
|
+
obj[`col${index}`] = row[index] ?? "";
|
|
102
123
|
}
|
|
103
124
|
return obj;
|
|
104
125
|
});
|
|
105
126
|
}
|
|
106
127
|
|
|
107
|
-
function readAndParse() {
|
|
128
|
+
function readAndParse(): void {
|
|
108
129
|
if (!file) {
|
|
109
130
|
return;
|
|
110
131
|
}
|
|
@@ -112,7 +133,7 @@ function readAndParse() {
|
|
|
112
133
|
|
|
113
134
|
const reader = new FileReader();
|
|
114
135
|
reader.addEventListener("load", (event) => {
|
|
115
|
-
rawContent.value = event.target
|
|
136
|
+
rawContent.value = String((event.target as FileReader | null)?.result ?? "");
|
|
116
137
|
if (!separator.value || separator.value === ",") {
|
|
117
138
|
separator.value = autoDetectSeparator(rawContent.value);
|
|
118
139
|
}
|
|
@@ -124,7 +145,8 @@ function readAndParse() {
|
|
|
124
145
|
});
|
|
125
146
|
reader.readAsText(file, "utf8");
|
|
126
147
|
}
|
|
127
|
-
|
|
148
|
+
|
|
149
|
+
const computedResult = computed<CsvParseResult>(() => {
|
|
128
150
|
const xIndex = previewHeaders.value.findIndex((header) => header.key === xColumn.value);
|
|
129
151
|
const yIndex = previewHeaders.value.findIndex((header) => header.key === yColumn.value);
|
|
130
152
|
const zIndex = previewHeaders.value.findIndex((header) => header.key === zColumn.value);
|
|
@@ -139,7 +161,7 @@ const computedResult = computed(() => {
|
|
|
139
161
|
};
|
|
140
162
|
});
|
|
141
163
|
|
|
142
|
-
const isFormValid = computed(
|
|
164
|
+
const isFormValid = computed<boolean>(
|
|
143
165
|
() =>
|
|
144
166
|
separator.value !== "" &&
|
|
145
167
|
separator.value !== undefined &&
|
|
@@ -176,7 +198,7 @@ watch(
|
|
|
176
198
|
},
|
|
177
199
|
);
|
|
178
200
|
|
|
179
|
-
function onConfirm() {
|
|
201
|
+
function onConfirm(): void {
|
|
180
202
|
emit("confirm", computedResult.value);
|
|
181
203
|
emit("update:modelValue", false);
|
|
182
204
|
}
|