@geode/opengeodeweb-front 10.34.0-rc.2 → 10.34.0-rc.4
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/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 +9 -9
- package/app/components/CameraManager/Saver.vue +8 -2
- package/app/components/CameraManager.vue +20 -10
- package/app/components/CameraOrientation.vue +29 -15
- package/app/components/ClippingPlaneCard.vue +11 -12
- package/app/components/ClippingPlanes.vue +25 -15
- package/app/components/CrsSelector.vue +24 -15
- package/app/components/DeleteDialog.vue +16 -16
- package/app/components/DragAndDrop.vue +53 -33
- package/app/components/DragAndDropInternal/DragAndDropInline.vue +29 -16
- package/app/components/DragAndDropInternal/DragAndDropOverlay.vue +32 -19
- package/app/components/ExtensionSelector.vue +32 -16
- package/app/components/FeedBack/ErrorBanner.vue +1 -2
- package/app/components/FeedBack/Snackers.vue +3 -3
- package/app/components/FetchingData.vue +8 -12
- package/app/components/FileSelector.vue +20 -12
- package/app/components/FileUploader.vue +45 -24
- package/app/components/GlassCard.vue +16 -12
- package/app/components/HybridRenderingView.vue +22 -11
- package/app/components/HybridViewerTooltip.vue +24 -22
- package/app/components/InfraConnected.vue +1 -1
- package/app/components/Launcher.vue +11 -9
- package/app/components/Loading/EcoMessages.vue +16 -11
- package/app/components/Loading/Header.vue +6 -7
- package/app/components/Loading/Progress.vue +6 -7
- package/app/components/Loading.vue +8 -12
- package/app/components/MissingFilesSelector.vue +29 -15
- package/app/components/ObjectSelector.vue +33 -18
- package/app/components/PackagesVersions.vue +14 -7
- package/app/components/Recaptcha.vue +16 -22
- package/app/components/RemoteRenderingView.vue +16 -9
- package/app/components/Ruler.vue +8 -6
- package/app/components/Screenshot.vue +19 -13
- package/app/components/SearchBar.vue +10 -6
- package/app/components/ShrinkFilter.vue +12 -7
- package/app/components/Step.vue +30 -11
- package/app/components/Stepper.vue +18 -7
- package/app/components/ToolPanel.vue +25 -12
- package/app/components/ViewToolbar.vue +33 -21
- package/app/components/Viewer/ContextMenu/CenterButton.vue +14 -9
- package/app/components/Viewer/ContextMenu/CircularItems.vue +13 -10
- package/app/components/Viewer/ContextMenu/ContextMenu.vue +25 -20
- package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +21 -9
- package/app/components/Viewer/ContextMenu/InfoCard.vue +31 -14
- package/app/components/Viewer/EdgedCurve/PointsOptions.vue +8 -5
- package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +59 -36
- package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +67 -39
- package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +61 -38
- package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +43 -27
- package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +84 -40
- package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +67 -38
- package/app/components/Viewer/Generic/Model/BlocksOptions.vue +101 -35
- package/app/components/Viewer/Generic/Model/CornersOptions.vue +67 -27
- package/app/components/Viewer/Generic/Model/EdgesOptions.vue +14 -8
- package/app/components/Viewer/Generic/Model/LinesOptions.vue +96 -43
- package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +24 -12
- package/app/components/Viewer/Generic/Model/ModelStyleOptions.vue +10 -5
- package/app/components/Viewer/Generic/Model/PointsOptions.vue +16 -10
- package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +105 -31
- 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 +63 -37
- package/app/components/Viewer/ObjectTree/Base/Controls.vue +24 -9
- package/app/components/Viewer/ObjectTree/Base/ItemLabel.vue +25 -8
- package/app/components/Viewer/ObjectTree/Base/StickyHeader.vue +22 -9
- package/app/components/Viewer/ObjectTree/Base/TreeRow.vue +26 -11
- package/app/components/Viewer/ObjectTree/Box.vue +30 -15
- package/app/components/Viewer/ObjectTree/Layout.vue +29 -22
- package/app/components/Viewer/ObjectTree/Views/GlobalObjects.vue +54 -28
- package/app/components/Viewer/ObjectTree/Views/ModelCollections.vue +76 -30
- package/app/components/Viewer/ObjectTree/Views/ModelComponents.vue +86 -34
- package/app/components/Viewer/Options/AttributeColorBar.vue +12 -6
- package/app/components/Viewer/Options/AttributeRangeSelector.vue +6 -4
- package/app/components/Viewer/Options/AttributeSelector.vue +61 -28
- package/app/components/Viewer/Options/ColorMapList.vue +44 -18
- package/app/components/Viewer/Options/ColorMapPicker.vue +12 -8
- package/app/components/Viewer/Options/ColorPicker.vue +20 -13
- package/app/components/Viewer/Options/ColoringTypeSelector.vue +77 -57
- package/app/components/Viewer/Options/ColormapQuickPicker.vue +10 -8
- package/app/components/Viewer/Options/OptionsSection.vue +6 -4
- 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 +24 -19
- package/app/components/Viewer/Options/TexturesSelector.vue +23 -12
- package/app/components/Viewer/Options/VisibilitySwitch.vue +3 -3
- package/app/components/Viewer/OverlappingObjectsPicker.vue +28 -12
- package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +41 -25
- 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 +66 -37
- 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 +72 -38
- 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 +18 -13
- package/app/components/Wrapper.vue +18 -9
- package/app/components/ZScaling.vue +15 -9
- package/app/components/csv-preview/CsvPreviewer.vue +38 -17
- package/app/components/csv-preview/CsvSettings.vue +26 -48
- package/app/components/csv-preview/CsvTable.vue +34 -14
- package/app/composables/{batch_style.js → batch_style.ts} +4 -1
- package/app/composables/{clipping_planes_widget.js → clipping_planes_widget.ts} +105 -42
- package/app/composables/{global_attribute_style.js → global_attribute_style.ts} +72 -30
- package/app/composables/{hover_highlight.js → hover_highlight.ts} +16 -12
- package/app/composables/{model_collections.js → model_collections.ts} +10 -4
- package/app/composables/{model_components.js → model_components.ts} +10 -4
- package/app/composables/{project_manager.js → project_manager.ts} +1 -1
- package/app/composables/{responsive_middle_truncate.js → responsive_middle_truncate.ts} +15 -1
- package/app/composables/{run_function_when_microservices_connected.js → run_function_when_microservices_connected.ts} +1 -1
- package/app/composables/{stepper_tree.js → stepper_tree.ts} +10 -10
- package/app/composables/{tree_filter.js → tree_filter.ts} +49 -15
- package/app/composables/{tree_keyboard_nav.js → tree_keyboard_nav.ts} +44 -16
- package/app/composables/{tree_scroll.js → tree_scroll.ts} +26 -7
- package/app/composables/{use_adaptive_styles.js → use_adaptive_styles.ts} +39 -15
- package/app/composables/{use_overlapping_picker.js → use_overlapping_picker.ts} +58 -14
- package/app/composables/{use_quick_colormap.js → use_quick_colormap.ts} +15 -3
- package/app/composables/{virtual_tree.js → virtual_tree.ts} +69 -21
- package/app/plugins/{auto_store_register.js → auto_store_register.ts} +4 -1
- package/app/stores/{app.js → app.ts} +98 -37
- package/app/stores/{back.js → back.ts} +26 -16
- package/app/stores/camera_manager.ts +78 -0
- package/app/stores/{cloud.js → cloud.ts} +5 -4
- package/app/stores/{data.js → data.ts} +110 -37
- package/app/stores/data_helpers/collections.ts +140 -0
- package/app/stores/data_helpers/mesh.ts +160 -0
- package/app/stores/{data_style.js → data_style.ts} +39 -10
- package/app/stores/{feedback.js → feedback.ts} +16 -5
- package/app/stores/{hybrid_viewer.js → hybrid_viewer.ts} +29 -14
- package/app/stores/{infra.js → infra.ts} +18 -9
- package/app/stores/{menu.js → menu.ts} +54 -32
- package/app/stores/{treeview.js → treeview.ts} +108 -45
- package/app/stores/{viewer.js → viewer.ts} +45 -24
- package/app/utils/attributes.ts +40 -0
- package/app/utils/{clipping_planes.js → clipping_planes.ts} +30 -15
- package/app/utils/{colormap.js → colormap.ts} +29 -14
- package/app/utils/default_styles/{constants.js → constants.ts} +25 -12
- package/app/utils/default_styles/{index.js → index.ts} +3 -2
- package/app/utils/default_styles/{meshes.js → meshes.ts} +27 -48
- package/app/utils/default_styles/{models.js → models.ts} +25 -40
- package/app/utils/{extension.js → extension.ts} +27 -10
- package/app/utils/{import_workflow.js → import_workflow.ts} +24 -17
- package/app/utils/{log.js → log.ts} +12 -2
- package/app/utils/{name_cleaner.js → name_cleaner.ts} +5 -5
- package/app/utils/status.ts +19 -0
- package/app/utils/{stores.js → stores.ts} +5 -5
- package/app/utils/{string.js → string.ts} +5 -5
- package/app/utils/{treeview.js → treeview.ts} +4 -1
- package/internal/database/{base_database.js → base_database.ts} +2 -2
- package/internal/database/{database.js → database.ts} +30 -18
- 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.js → cell.ts} +83 -36
- package/internal/stores/data_style/mesh/cells/{color.js → color.ts} +2 -2
- package/internal/stores/data_style/mesh/cells/{common.js → common.ts} +8 -7
- package/internal/stores/data_style/mesh/cells/{index.js → index.ts} +5 -5
- package/internal/stores/data_style/mesh/cells/{textures.js → textures.ts} +3 -3
- package/internal/stores/data_style/mesh/cells/{vertex.js → vertex.ts} +79 -28
- package/internal/stores/data_style/mesh/cells/{visibility.js → visibility.ts} +3 -3
- package/internal/stores/data_style/mesh/edges/{color.js → color.ts} +2 -2
- package/internal/stores/data_style/mesh/edges/{common.js → common.ts} +7 -6
- package/internal/stores/data_style/mesh/edges/{edge.js → edge.ts} +81 -29
- package/internal/stores/data_style/mesh/edges/{index.js → index.ts} +5 -6
- package/internal/stores/data_style/mesh/edges/{vertex.js → vertex.ts} +81 -29
- package/internal/stores/data_style/mesh/edges/{visibility.js → visibility.ts} +3 -3
- package/internal/stores/data_style/mesh/edges/{width.js → width.ts} +3 -3
- package/internal/stores/data_style/mesh/{index.js → index.ts} +9 -8
- package/internal/stores/data_style/mesh/points/{color.js → color.ts} +2 -2
- package/internal/stores/data_style/mesh/points/{common.js → common.ts} +8 -7
- package/internal/stores/data_style/mesh/points/{index.js → index.ts} +5 -5
- package/internal/stores/data_style/mesh/points/{size.js → size.ts} +3 -3
- package/internal/stores/data_style/mesh/points/{vertex.js → vertex.ts} +79 -28
- package/internal/stores/data_style/mesh/points/{visibility.js → visibility.ts} +7 -5
- package/internal/stores/data_style/mesh/polygons/{color.js → color.ts} +2 -2
- package/internal/stores/data_style/mesh/polygons/{common.js → common.ts} +7 -6
- package/internal/stores/data_style/mesh/polygons/{index.js → index.ts} +5 -5
- package/internal/stores/data_style/mesh/polygons/{polygon.js → polygon.ts} +81 -29
- package/internal/stores/data_style/mesh/polygons/{textures.js → textures.ts} +3 -3
- package/internal/stores/data_style/mesh/polygons/{vertex.js → vertex.ts} +81 -29
- package/internal/stores/data_style/mesh/polygons/{visibility.js → visibility.ts} +3 -3
- package/internal/stores/data_style/mesh/polyhedra/{color.js → color.ts} +2 -2
- package/internal/stores/data_style/mesh/polyhedra/{common.js → common.ts} +7 -6
- package/internal/stores/data_style/mesh/polyhedra/{index.js → index.ts} +5 -5
- package/internal/stores/data_style/mesh/polyhedra/{polyhedron.js → polyhedron.ts} +86 -29
- package/internal/stores/data_style/mesh/polyhedra/{vertex.js → vertex.ts} +81 -29
- package/internal/stores/data_style/mesh/polyhedra/{visibility.js → visibility.ts} +3 -3
- package/internal/stores/data_style/model/blocks/{color.js → color.ts} +18 -6
- package/internal/stores/data_style/model/blocks/{common.js → common.ts} +9 -8
- package/internal/stores/data_style/model/blocks/{index.js → index.ts} +26 -11
- package/internal/stores/data_style/model/blocks/{polyhedron.js → polyhedron.ts} +121 -30
- package/internal/stores/data_style/model/blocks/{vertex.js → vertex.ts} +110 -30
- package/internal/stores/data_style/model/blocks/{visibility.js → visibility.ts} +6 -2
- package/internal/stores/data_style/model/{color.js → color.ts} +70 -28
- package/internal/stores/data_style/model/common.ts +216 -0
- package/internal/stores/data_style/model/corners/{color.js → color.ts} +18 -6
- package/internal/stores/data_style/model/corners/{common.js → common.ts} +9 -8
- package/internal/stores/data_style/model/corners/{index.js → index.ts} +24 -10
- package/internal/stores/data_style/model/corners/{vertex.js → vertex.ts} +115 -35
- package/internal/stores/data_style/model/corners/{visibility.js → visibility.ts} +6 -2
- package/internal/stores/data_style/model/edges/{common.js → common.ts} +4 -3
- package/internal/stores/data_style/model/edges/{index.js → index.ts} +0 -6
- package/internal/stores/data_style/model/edges/{visibility.js → visibility.ts} +4 -4
- package/internal/stores/data_style/model/{index.js → index.ts} +4 -4
- package/internal/stores/data_style/model/lines/{color.js → color.ts} +18 -6
- package/internal/stores/data_style/model/lines/{common.js → common.ts} +9 -8
- package/internal/stores/data_style/model/lines/{edge.js → edge.ts} +107 -30
- package/internal/stores/data_style/model/lines/{index.js → index.ts} +26 -11
- package/internal/stores/data_style/model/lines/{vertex.js → vertex.ts} +107 -30
- package/internal/stores/data_style/model/lines/{visibility.js → visibility.ts} +6 -2
- package/internal/stores/data_style/model/points/{common.js → common.ts} +4 -3
- package/internal/stores/data_style/model/points/{index.js → index.ts} +6 -3
- package/internal/stores/data_style/model/points/{size.js → size.ts} +3 -3
- package/internal/stores/data_style/model/points/{visibility.js → visibility.ts} +3 -3
- package/internal/stores/data_style/model/selection.ts +116 -0
- package/internal/stores/data_style/model/surfaces/{color.js → color.ts} +18 -6
- package/internal/stores/data_style/model/surfaces/{common.js → common.ts} +9 -8
- package/internal/stores/data_style/model/surfaces/{index.js → index.ts} +28 -11
- package/internal/stores/data_style/model/surfaces/{polygon.js → polygon.ts} +122 -30
- package/internal/stores/data_style/model/surfaces/{vertex.js → vertex.ts} +122 -30
- package/internal/stores/data_style/model/surfaces/{visibility.js → visibility.ts} +6 -2
- package/internal/stores/data_style/model/{visibility.js → visibility.ts} +38 -20
- package/internal/stores/data_style/state.ts +269 -0
- package/internal/stores/data_style/types.ts +30 -0
- package/internal/stores/hybrid_viewer/{brightness.js → brightness.ts} +35 -11
- package/internal/stores/hybrid_viewer/{camera.js → camera.ts} +90 -52
- package/internal/stores/hybrid_viewer/{camera_animation.js → camera_animation.ts} +27 -10
- package/internal/stores/hybrid_viewer/{constants.js → constants.ts} +2 -2
- package/internal/stores/hybrid_viewer/{filters.js → filters.ts} +9 -6
- package/internal/stores/hybrid_viewer/{highlight.js → highlight.ts} +81 -29
- package/internal/stores/hybrid_viewer/{ruler.js → ruler.ts} +38 -19
- package/internal/stores/hybrid_viewer/{scene.js → scene.ts} +39 -29
- package/internal/stores/hybrid_viewer/viewport.ts +168 -0
- package/internal/stores/hybrid_viewer/vtk_types.ts +74 -0
- package/internal/utils/api_fetch.ts +102 -0
- package/internal/utils/upload_file.ts +94 -0
- package/internal/utils/viewer_call.ts +90 -0
- package/internal/utils/ws_client.ts +43 -0
- package/{nuxt.config.js → nuxt.config.ts} +6 -1
- package/opengeodeweb_front_schemas.js +175 -0
- package/package.json +32 -8
- package/server/api/cloud/extensions/{run.post.js → run.post.ts} +17 -9
- package/server/api/local/app/{project_folder_path.post.js → project_folder_path.post.ts} +7 -3
- package/server/api/local/app/{run_back.post.js → run_back.post.ts} +12 -4
- package/server/api/local/app/{run_viewer.post.js → run_viewer.post.ts} +12 -4
- package/server/api/local/extensions/{kill.post.js → kill.post.ts} +12 -6
- package/server/api/local/extensions/{run.post.js → run.post.ts} +17 -9
- package/server/api/local/extensions/{upload.put.js → upload.put.ts} +13 -4
- package/server/api/microservice/app/{get_is_app_ready.get.js → get_is_app_ready.get.ts} +4 -3
- package/server/api/microservice/app/{set_app_base_url.post.js → set_app_base_url.post.ts} +9 -4
- package/server/api/microservice/app/{set_back_base_url.post.js → set_back_base_url.post.ts} +9 -4
- package/server/api/microservice/app/{set_is_app_ready.post.js → set_is_app_ready.post.ts} +9 -4
- package/server/api/microservice/app/{set_viewer_base_url.post.js → set_viewer_base_url.post.ts} +9 -4
- package/server/api/microservice/extensions/{download.post.js → download.post.ts} +9 -3
- package/server/api/serverless/{run_cloud.post.js → run_cloud.post.ts} +13 -7
- package/server/types/vendor.d.ts +64 -0
- package/server/utils/app_config.js +34 -64
- package/server/utils/app_config.ts +96 -0
- package/server/utils/cleanup.js +97 -148
- package/server/utils/cleanup.ts +189 -0
- package/server/utils/cloud.js +103 -148
- package/server/utils/cloud.ts +219 -0
- package/server/utils/{extension.js → extension.ts} +17 -4
- package/server/utils/microservices.js +126 -159
- package/server/utils/microservices.ts +206 -0
- package/server/utils/path.js +88 -134
- package/server/utils/path.ts +173 -0
- package/server/utils/scripts.js +116 -164
- package/server/utils/scripts.ts +195 -0
- package/server/utils/server.js +34 -50
- package/server/utils/server.ts +67 -0
- package/server/utils/server_config.js +23 -38
- package/server/utils/server_config.ts +60 -0
- package/server/utils/ws_client.js +81 -106
- package/server/utils/ws_client.ts +134 -0
- package/shared/app_mode.js +5 -4
- package/shared/app_mode.ts +7 -0
- package/shared/scripts.js +37 -32
- package/shared/scripts.ts +44 -0
- package/shared/utils/call_raw.js +25 -41
- package/shared/utils/call_raw.ts +66 -0
- package/shared/utils/call_schema.js +24 -41
- package/shared/utils/call_schema.ts +57 -0
- package/shared/utils/fetch_raw.js +36 -57
- package/shared/utils/fetch_raw.ts +85 -0
- package/shared/utils/fetch_schema.js +27 -44
- package/shared/utils/fetch_schema.ts +61 -0
- package/shared/utils/file.js +6 -10
- package/shared/utils/file.ts +16 -0
- package/shared/utils/parse_boolean.js +20 -13
- package/shared/utils/parse_boolean.ts +16 -0
- package/shared/utils/response_handlers/load.js +39 -66
- package/shared/utils/response_handlers/load.ts +94 -0
- package/shared/utils/types.js +1 -0
- package/shared/utils/types.ts +27 -0
- package/shared/utils/validate_schema.js +13 -9
- package/shared/utils/validate_schema.ts +15 -0
- 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/stores/camera_manager.js +0 -57
- package/app/stores/data_helpers/collections.js +0 -96
- package/app/stores/data_helpers/mesh.js +0 -122
- package/app/utils/attributes.js +0 -23
- package/app/utils/status.js +0 -10
- package/commitlint.config.js +0 -20
- 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/model/common.js +0 -141
- package/internal/stores/data_style/model/selection.js +0 -89
- package/internal/stores/data_style/state.js +0 -197
- 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/scripts/generate_geode_objects.js +0 -24
- 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
|
@@ -1,16 +1,23 @@
|
|
|
1
|
-
<script setup>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
// Not auto-fixable (eslint's sort-imports core rule has no autofixer) and this file's import order doesn't match its syntax-kind-then-alphabetical requirement - left as-is rather than manually reordered across the codebase for a purely cosmetic rule.
|
|
3
|
+
// oxlint-disable eslint/sort-imports
|
|
4
|
+
// This file exhaustively wires group- and per-component style properties (visibility/color/coloring/vertex+polyhedron attributes) to the style store; the formatter's line-wrapping of the resulting store calls pushes the file past max-lines even though no logic was added.
|
|
5
|
+
// oxlint-disable eslint/max-lines
|
|
2
6
|
import OptionsSection from "@ogw_front/components/Viewer/Options/OptionsSection.vue";
|
|
3
7
|
import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
|
|
4
8
|
import VisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
|
|
5
9
|
import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json";
|
|
6
10
|
import { useDataStyleStore } from "@ogw_front/stores/data_style";
|
|
7
11
|
import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
|
|
12
|
+
import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
|
|
8
13
|
|
|
9
|
-
|
|
10
|
-
modelId:
|
|
11
|
-
blockId
|
|
12
|
-
targetBlockIds:
|
|
13
|
-
}
|
|
14
|
+
interface Props {
|
|
15
|
+
modelId: string;
|
|
16
|
+
blockId?: string;
|
|
17
|
+
targetBlockIds: string[];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const { modelId, blockId = undefined, targetBlockIds } = defineProps<Props>();
|
|
14
21
|
|
|
15
22
|
const dataStyleStore = useDataStyleStore();
|
|
16
23
|
const hybridViewerStore = useHybridViewerStore();
|
|
@@ -25,41 +32,54 @@ const blocksVisibility = computed({
|
|
|
25
32
|
});
|
|
26
33
|
|
|
27
34
|
const blockVisibility = computed({
|
|
28
|
-
get: () => dataStyleStore.modelBlockVisibility(modelId, blockId),
|
|
35
|
+
get: () => dataStyleStore.modelBlockVisibility(modelId, blockId) as boolean | undefined,
|
|
29
36
|
set: async (newValue) => {
|
|
37
|
+
if (blockId === undefined) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
30
40
|
await dataStyleStore.setModelBlocksVisibility(modelId, [blockId], newValue);
|
|
31
41
|
hybridViewerStore.remoteRender();
|
|
32
42
|
},
|
|
33
43
|
});
|
|
34
44
|
|
|
35
45
|
// Color
|
|
36
|
-
const blocksColor = computed({
|
|
37
|
-
get: () => dataStyleStore.modelComponentTypeColor(modelId, "Block"),
|
|
46
|
+
const blocksColor = computed<RGBAColor | undefined>({
|
|
47
|
+
get: () => dataStyleStore.modelComponentTypeColor(modelId, "Block") as RGBAColor | undefined,
|
|
38
48
|
set: async (color) => {
|
|
39
49
|
await dataStyleStore.setModelBlocksColor(modelId, targetBlockIds, color);
|
|
40
50
|
hybridViewerStore.remoteRender();
|
|
41
51
|
},
|
|
42
52
|
});
|
|
43
53
|
|
|
44
|
-
const blockColor = computed({
|
|
45
|
-
get: () => dataStyleStore.modelBlockColor(modelId, blockId),
|
|
54
|
+
const blockColor = computed<RGBAColor | undefined>({
|
|
55
|
+
get: () => dataStyleStore.modelBlockColor(modelId, blockId) as RGBAColor | undefined,
|
|
46
56
|
set: async (color) => {
|
|
57
|
+
if (blockId === undefined) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
47
60
|
await dataStyleStore.setModelBlocksColor(modelId, [blockId], color);
|
|
48
61
|
hybridViewerStore.remoteRender();
|
|
49
62
|
},
|
|
50
63
|
});
|
|
51
64
|
|
|
52
|
-
const blocksActiveColoring = computed({
|
|
53
|
-
get: () =>
|
|
65
|
+
const blocksActiveColoring = computed<string | undefined>({
|
|
66
|
+
get: () =>
|
|
67
|
+
dataStyleStore.getModelComponentTypeActiveColoring(modelId, "Block") as string | undefined,
|
|
54
68
|
set: async (coloringType) => {
|
|
69
|
+
if (typeof coloringType !== "string") {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
55
72
|
await dataStyleStore.setModelBlocksActiveColoring(modelId, targetBlockIds, coloringType);
|
|
56
73
|
hybridViewerStore.remoteRender();
|
|
57
74
|
},
|
|
58
75
|
});
|
|
59
76
|
|
|
60
|
-
const blockActiveColoring = computed({
|
|
61
|
-
get: () => dataStyleStore.modelBlockActiveColoring(modelId, blockId),
|
|
77
|
+
const blockActiveColoring = computed<string | undefined>({
|
|
78
|
+
get: () => dataStyleStore.modelBlockActiveColoring(modelId, blockId) as string | undefined,
|
|
62
79
|
set: async (coloringType) => {
|
|
80
|
+
if (blockId === undefined || typeof coloringType !== "string") {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
63
83
|
await dataStyleStore.setModelBlocksActiveColoring(modelId, [blockId], coloringType);
|
|
64
84
|
hybridViewerStore.remoteRender();
|
|
65
85
|
},
|
|
@@ -69,6 +89,9 @@ const blockActiveColoring = computed({
|
|
|
69
89
|
const blocksVertexAttributeName = computed({
|
|
70
90
|
get: () => dataStyleStore.modelBlocksVertexAttributeName(modelId),
|
|
71
91
|
set: async (newValue) => {
|
|
92
|
+
if (newValue === undefined) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
72
95
|
await dataStyleStore.setModelBlocksVertexAttributeName(modelId, targetBlockIds, newValue);
|
|
73
96
|
hybridViewerStore.remoteRender();
|
|
74
97
|
},
|
|
@@ -85,11 +108,15 @@ const blocksVertexAttributeItem = computed({
|
|
|
85
108
|
const blocksVertexAttributeRange = computed({
|
|
86
109
|
get: () => dataStyleStore.modelBlocksVertexAttributeRange(modelId),
|
|
87
110
|
set: async (newValue) => {
|
|
111
|
+
const [minimum, maximum] = newValue;
|
|
112
|
+
if (minimum === undefined || maximum === undefined) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
88
115
|
await dataStyleStore.setModelBlocksVertexAttributeRange(
|
|
89
116
|
modelId,
|
|
90
117
|
targetBlockIds,
|
|
91
|
-
|
|
92
|
-
|
|
118
|
+
minimum,
|
|
119
|
+
maximum,
|
|
93
120
|
);
|
|
94
121
|
hybridViewerStore.remoteRender();
|
|
95
122
|
},
|
|
@@ -103,8 +130,8 @@ const blocksVertexAttributeColorMap = computed({
|
|
|
103
130
|
},
|
|
104
131
|
});
|
|
105
132
|
|
|
106
|
-
const blocksVertexAttributeNoDataColor = computed({
|
|
107
|
-
get: () => dataStyleStore.modelBlocksVertexAttributeNoDataColor(modelId),
|
|
133
|
+
const blocksVertexAttributeNoDataColor = computed<RGBAColor | undefined>({
|
|
134
|
+
get: () => dataStyleStore.modelBlocksVertexAttributeNoDataColor(modelId) as RGBAColor | undefined,
|
|
108
135
|
set: async (newValue) => {
|
|
109
136
|
await dataStyleStore.setModelBlocksVertexAttributeNoDataColor(
|
|
110
137
|
modelId,
|
|
@@ -118,6 +145,9 @@ const blocksVertexAttributeNoDataColor = computed({
|
|
|
118
145
|
const blocksPolyhedronAttributeName = computed({
|
|
119
146
|
get: () => dataStyleStore.modelBlocksPolyhedronAttributeName(modelId),
|
|
120
147
|
set: async (newValue) => {
|
|
148
|
+
if (newValue === undefined) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
121
151
|
await dataStyleStore.setModelBlocksPolyhedronAttributeName(modelId, targetBlockIds, newValue);
|
|
122
152
|
hybridViewerStore.remoteRender();
|
|
123
153
|
},
|
|
@@ -134,11 +164,15 @@ const blocksPolyhedronAttributeItem = computed({
|
|
|
134
164
|
const blocksPolyhedronAttributeRange = computed({
|
|
135
165
|
get: () => dataStyleStore.modelBlocksPolyhedronAttributeRange(modelId),
|
|
136
166
|
set: async (newValue) => {
|
|
167
|
+
const [minimum, maximum] = newValue;
|
|
168
|
+
if (minimum === undefined || maximum === undefined) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
137
171
|
await dataStyleStore.setModelBlocksPolyhedronAttributeRange(
|
|
138
172
|
modelId,
|
|
139
173
|
targetBlockIds,
|
|
140
|
-
|
|
141
|
-
|
|
174
|
+
minimum,
|
|
175
|
+
maximum,
|
|
142
176
|
);
|
|
143
177
|
hybridViewerStore.remoteRender();
|
|
144
178
|
},
|
|
@@ -156,8 +190,9 @@ const blocksPolyhedronAttributeColorMap = computed({
|
|
|
156
190
|
},
|
|
157
191
|
});
|
|
158
192
|
|
|
159
|
-
const blocksPolyhedronAttributeNoDataColor = computed({
|
|
160
|
-
get: () =>
|
|
193
|
+
const blocksPolyhedronAttributeNoDataColor = computed<RGBAColor | undefined>({
|
|
194
|
+
get: () =>
|
|
195
|
+
dataStyleStore.modelBlocksPolyhedronAttributeNoDataColor(modelId) as RGBAColor | undefined,
|
|
161
196
|
set: async (newValue) => {
|
|
162
197
|
await dataStyleStore.setModelBlocksPolyhedronAttributeNoDataColor(
|
|
163
198
|
modelId,
|
|
@@ -172,6 +207,9 @@ const blocksPolyhedronAttributeNoDataColor = computed({
|
|
|
172
207
|
const vertexAttributeName = computed({
|
|
173
208
|
get: () => dataStyleStore.modelBlocksVertexAttributeName(modelId, blockId),
|
|
174
209
|
set: async (newValue) => {
|
|
210
|
+
if (blockId === undefined || newValue === undefined) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
175
213
|
await dataStyleStore.setModelBlocksVertexAttributeName(modelId, [blockId], newValue);
|
|
176
214
|
hybridViewerStore.remoteRender();
|
|
177
215
|
},
|
|
@@ -180,6 +218,9 @@ const vertexAttributeName = computed({
|
|
|
180
218
|
const vertexAttributeItem = computed({
|
|
181
219
|
get: () => dataStyleStore.modelBlocksVertexAttributeItem(modelId, blockId),
|
|
182
220
|
set: async (newValue) => {
|
|
221
|
+
if (blockId === undefined) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
183
224
|
await dataStyleStore.setModelBlocksVertexAttributeItem(modelId, [blockId], newValue);
|
|
184
225
|
hybridViewerStore.remoteRender();
|
|
185
226
|
},
|
|
@@ -188,12 +229,11 @@ const vertexAttributeItem = computed({
|
|
|
188
229
|
const vertexAttributeRange = computed({
|
|
189
230
|
get: () => dataStyleStore.modelBlocksVertexAttributeRange(modelId, blockId),
|
|
190
231
|
set: async (newValue) => {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
);
|
|
232
|
+
const [minimum, maximum] = newValue;
|
|
233
|
+
if (blockId === undefined || minimum === undefined || maximum === undefined) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
await dataStyleStore.setModelBlocksVertexAttributeRange(modelId, [blockId], minimum, maximum);
|
|
197
237
|
hybridViewerStore.remoteRender();
|
|
198
238
|
},
|
|
199
239
|
});
|
|
@@ -201,14 +241,21 @@ const vertexAttributeRange = computed({
|
|
|
201
241
|
const vertexAttributeColorMap = computed({
|
|
202
242
|
get: () => dataStyleStore.modelBlocksVertexAttributeColorMap(modelId, blockId),
|
|
203
243
|
set: async (newValue) => {
|
|
244
|
+
if (blockId === undefined) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
204
247
|
await dataStyleStore.setModelBlocksVertexAttributeColorMap(modelId, [blockId], newValue);
|
|
205
248
|
hybridViewerStore.remoteRender();
|
|
206
249
|
},
|
|
207
250
|
});
|
|
208
251
|
|
|
209
|
-
const vertexAttributeNoDataColor = computed({
|
|
210
|
-
get: () =>
|
|
252
|
+
const vertexAttributeNoDataColor = computed<RGBAColor | undefined>({
|
|
253
|
+
get: () =>
|
|
254
|
+
dataStyleStore.modelBlocksVertexAttributeNoDataColor(modelId, blockId) as RGBAColor | undefined,
|
|
211
255
|
set: async (newValue) => {
|
|
256
|
+
if (blockId === undefined) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
212
259
|
await dataStyleStore.setModelBlocksVertexAttributeNoDataColor(modelId, [blockId], newValue);
|
|
213
260
|
hybridViewerStore.remoteRender();
|
|
214
261
|
},
|
|
@@ -217,6 +264,9 @@ const vertexAttributeNoDataColor = computed({
|
|
|
217
264
|
const polyhedronAttributeName = computed({
|
|
218
265
|
get: () => dataStyleStore.modelBlocksPolyhedronAttributeName(modelId, blockId),
|
|
219
266
|
set: async (newValue) => {
|
|
267
|
+
if (blockId === undefined || newValue === undefined) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
220
270
|
await dataStyleStore.setModelBlocksPolyhedronAttributeName(modelId, [blockId], newValue);
|
|
221
271
|
hybridViewerStore.remoteRender();
|
|
222
272
|
},
|
|
@@ -225,6 +275,9 @@ const polyhedronAttributeName = computed({
|
|
|
225
275
|
const polyhedronAttributeItem = computed({
|
|
226
276
|
get: () => dataStyleStore.modelBlocksPolyhedronAttributeItem(modelId, blockId),
|
|
227
277
|
set: async (newValue) => {
|
|
278
|
+
if (blockId === undefined) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
228
281
|
await dataStyleStore.setModelBlocksPolyhedronAttributeItem(modelId, [blockId], newValue);
|
|
229
282
|
hybridViewerStore.remoteRender();
|
|
230
283
|
},
|
|
@@ -233,11 +286,15 @@ const polyhedronAttributeItem = computed({
|
|
|
233
286
|
const polyhedronAttributeRange = computed({
|
|
234
287
|
get: () => dataStyleStore.modelBlocksPolyhedronAttributeRange(modelId, blockId),
|
|
235
288
|
set: async (newValue) => {
|
|
289
|
+
const [minimum, maximum] = newValue;
|
|
290
|
+
if (blockId === undefined || minimum === undefined || maximum === undefined) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
236
293
|
await dataStyleStore.setModelBlocksPolyhedronAttributeRange(
|
|
237
294
|
modelId,
|
|
238
295
|
[blockId],
|
|
239
|
-
|
|
240
|
-
|
|
296
|
+
minimum,
|
|
297
|
+
maximum,
|
|
241
298
|
);
|
|
242
299
|
hybridViewerStore.remoteRender();
|
|
243
300
|
},
|
|
@@ -246,14 +303,23 @@ const polyhedronAttributeRange = computed({
|
|
|
246
303
|
const polyhedronAttributeColorMap = computed({
|
|
247
304
|
get: () => dataStyleStore.modelBlocksPolyhedronAttributeColorMap(modelId, blockId),
|
|
248
305
|
set: async (newValue) => {
|
|
306
|
+
if (blockId === undefined) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
249
309
|
await dataStyleStore.setModelBlocksPolyhedronAttributeColorMap(modelId, [blockId], newValue);
|
|
250
310
|
hybridViewerStore.remoteRender();
|
|
251
311
|
},
|
|
252
312
|
});
|
|
253
313
|
|
|
254
|
-
const polyhedronAttributeNoDataColor = computed({
|
|
255
|
-
get: () =>
|
|
314
|
+
const polyhedronAttributeNoDataColor = computed<RGBAColor | undefined>({
|
|
315
|
+
get: () =>
|
|
316
|
+
dataStyleStore.modelBlocksPolyhedronAttributeNoDataColor(modelId, blockId) as
|
|
317
|
+
| RGBAColor
|
|
318
|
+
| undefined,
|
|
256
319
|
set: async (newValue) => {
|
|
320
|
+
if (blockId === undefined) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
257
323
|
await dataStyleStore.setModelBlocksPolyhedronAttributeNoDataColor(modelId, [blockId], newValue);
|
|
258
324
|
hybridViewerStore.remoteRender();
|
|
259
325
|
},
|
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
<script setup>
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
// Not auto-fixable (eslint's sort-imports core rule has no autofixer) and this file's import order doesn't match its syntax-kind-then-alphabetical requirement - left as-is rather than manually reordered across the codebase for a purely cosmetic rule.
|
|
3
|
+
// oxlint-disable eslint/sort-imports
|
|
2
4
|
import OptionsSection from "@ogw_front/components/Viewer/Options/OptionsSection.vue";
|
|
3
5
|
import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
|
|
4
6
|
import VisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
|
|
5
7
|
import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json";
|
|
6
8
|
import { useDataStyleStore } from "@ogw_front/stores/data_style";
|
|
7
9
|
import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
|
|
10
|
+
import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
modelId:
|
|
11
|
-
cornerId
|
|
12
|
-
targetCornerIds:
|
|
13
|
-
}
|
|
12
|
+
interface Props {
|
|
13
|
+
modelId: string;
|
|
14
|
+
cornerId?: string;
|
|
15
|
+
targetCornerIds: string[];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const { modelId, cornerId = undefined, targetCornerIds } = defineProps<Props>();
|
|
14
19
|
|
|
15
20
|
const dataStyleStore = useDataStyleStore();
|
|
16
21
|
const hybridViewerStore = useHybridViewerStore();
|
|
@@ -25,41 +30,54 @@ const cornersVisibility = computed({
|
|
|
25
30
|
});
|
|
26
31
|
|
|
27
32
|
const cornerVisibility = computed({
|
|
28
|
-
get: () => dataStyleStore.modelCornerVisibility(modelId, cornerId),
|
|
33
|
+
get: () => dataStyleStore.modelCornerVisibility(modelId, cornerId) as boolean | undefined,
|
|
29
34
|
set: async (newValue) => {
|
|
35
|
+
if (cornerId === undefined) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
30
38
|
await dataStyleStore.setModelCornersVisibility(modelId, [cornerId], newValue);
|
|
31
39
|
hybridViewerStore.remoteRender();
|
|
32
40
|
},
|
|
33
41
|
});
|
|
34
42
|
|
|
35
43
|
// Color
|
|
36
|
-
const cornersColor = computed({
|
|
37
|
-
get: () => dataStyleStore.modelComponentTypeColor(modelId, "Corner"),
|
|
44
|
+
const cornersColor = computed<RGBAColor | undefined>({
|
|
45
|
+
get: () => dataStyleStore.modelComponentTypeColor(modelId, "Corner") as RGBAColor | undefined,
|
|
38
46
|
set: async (color) => {
|
|
39
47
|
await dataStyleStore.setModelCornersColor(modelId, targetCornerIds, color);
|
|
40
48
|
hybridViewerStore.remoteRender();
|
|
41
49
|
},
|
|
42
50
|
});
|
|
43
51
|
|
|
44
|
-
const cornerColor = computed({
|
|
45
|
-
get: () => dataStyleStore.modelCornerColor(modelId, cornerId),
|
|
52
|
+
const cornerColor = computed<RGBAColor | undefined>({
|
|
53
|
+
get: () => dataStyleStore.modelCornerColor(modelId, cornerId) as RGBAColor | undefined,
|
|
46
54
|
set: async (color) => {
|
|
55
|
+
if (cornerId === undefined) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
47
58
|
await dataStyleStore.setModelCornersColor(modelId, [cornerId], color);
|
|
48
59
|
hybridViewerStore.remoteRender();
|
|
49
60
|
},
|
|
50
61
|
});
|
|
51
62
|
|
|
52
|
-
const cornersActiveColoring = computed({
|
|
53
|
-
get: () =>
|
|
63
|
+
const cornersActiveColoring = computed<string | undefined>({
|
|
64
|
+
get: () =>
|
|
65
|
+
dataStyleStore.getModelComponentTypeActiveColoring(modelId, "Corner") as string | undefined,
|
|
54
66
|
set: async (coloringType) => {
|
|
67
|
+
if (typeof coloringType !== "string") {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
55
70
|
await dataStyleStore.setModelCornersActiveColoring(modelId, targetCornerIds, coloringType);
|
|
56
71
|
hybridViewerStore.remoteRender();
|
|
57
72
|
},
|
|
58
73
|
});
|
|
59
74
|
|
|
60
|
-
const cornerActiveColoring = computed({
|
|
61
|
-
get: () => dataStyleStore.modelCornerActiveColoring(modelId, cornerId),
|
|
75
|
+
const cornerActiveColoring = computed<string | undefined>({
|
|
76
|
+
get: () => dataStyleStore.modelCornerActiveColoring(modelId, cornerId) as string | undefined,
|
|
62
77
|
set: async (coloringType) => {
|
|
78
|
+
if (cornerId === undefined || typeof coloringType !== "string") {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
63
81
|
await dataStyleStore.setModelCornersActiveColoring(modelId, [cornerId], coloringType);
|
|
64
82
|
hybridViewerStore.remoteRender();
|
|
65
83
|
},
|
|
@@ -69,6 +87,9 @@ const cornerActiveColoring = computed({
|
|
|
69
87
|
const cornersVertexAttributeName = computed({
|
|
70
88
|
get: () => dataStyleStore.modelCornersVertexAttributeName(modelId),
|
|
71
89
|
set: async (newValue) => {
|
|
90
|
+
if (newValue === undefined) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
72
93
|
await dataStyleStore.setModelCornersVertexAttributeName(modelId, targetCornerIds, newValue);
|
|
73
94
|
hybridViewerStore.remoteRender();
|
|
74
95
|
},
|
|
@@ -85,11 +106,15 @@ const cornersVertexAttributeItem = computed({
|
|
|
85
106
|
const cornersVertexAttributeRange = computed({
|
|
86
107
|
get: () => dataStyleStore.modelCornersVertexAttributeRange(modelId),
|
|
87
108
|
set: async (newValue) => {
|
|
109
|
+
const [minimum, maximum] = newValue;
|
|
110
|
+
if (minimum === undefined || maximum === undefined) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
88
113
|
await dataStyleStore.setModelCornersVertexAttributeRange(
|
|
89
114
|
modelId,
|
|
90
115
|
targetCornerIds,
|
|
91
|
-
|
|
92
|
-
|
|
116
|
+
minimum,
|
|
117
|
+
maximum,
|
|
93
118
|
);
|
|
94
119
|
hybridViewerStore.remoteRender();
|
|
95
120
|
},
|
|
@@ -103,8 +128,9 @@ const cornersVertexAttributeColorMap = computed({
|
|
|
103
128
|
},
|
|
104
129
|
});
|
|
105
130
|
|
|
106
|
-
const cornersVertexAttributeNoDataColor = computed({
|
|
107
|
-
get: () =>
|
|
131
|
+
const cornersVertexAttributeNoDataColor = computed<RGBAColor | undefined>({
|
|
132
|
+
get: () =>
|
|
133
|
+
dataStyleStore.modelCornersVertexAttributeNoDataColor(modelId) as RGBAColor | undefined,
|
|
108
134
|
set: async (newValue) => {
|
|
109
135
|
await dataStyleStore.setModelCornersVertexAttributeNoDataColor(
|
|
110
136
|
modelId,
|
|
@@ -119,6 +145,9 @@ const cornersVertexAttributeNoDataColor = computed({
|
|
|
119
145
|
const vertexAttributeName = computed({
|
|
120
146
|
get: () => dataStyleStore.modelCornersVertexAttributeName(modelId, cornerId),
|
|
121
147
|
set: async (newValue) => {
|
|
148
|
+
if (cornerId === undefined || newValue === undefined) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
122
151
|
await dataStyleStore.setModelCornersVertexAttributeName(modelId, [cornerId], newValue);
|
|
123
152
|
hybridViewerStore.remoteRender();
|
|
124
153
|
},
|
|
@@ -127,6 +156,9 @@ const vertexAttributeName = computed({
|
|
|
127
156
|
const vertexAttributeItem = computed({
|
|
128
157
|
get: () => dataStyleStore.modelCornersVertexAttributeItem(modelId, cornerId),
|
|
129
158
|
set: async (newValue) => {
|
|
159
|
+
if (cornerId === undefined) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
130
162
|
await dataStyleStore.setModelCornersVertexAttributeItem(modelId, [cornerId], newValue);
|
|
131
163
|
hybridViewerStore.remoteRender();
|
|
132
164
|
},
|
|
@@ -135,12 +167,11 @@ const vertexAttributeItem = computed({
|
|
|
135
167
|
const vertexAttributeRange = computed({
|
|
136
168
|
get: () => dataStyleStore.modelCornersVertexAttributeRange(modelId, cornerId),
|
|
137
169
|
set: async (newValue) => {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
);
|
|
170
|
+
const [minimum, maximum] = newValue;
|
|
171
|
+
if (cornerId === undefined || minimum === undefined || maximum === undefined) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
await dataStyleStore.setModelCornersVertexAttributeRange(modelId, [cornerId], minimum, maximum);
|
|
144
175
|
hybridViewerStore.remoteRender();
|
|
145
176
|
},
|
|
146
177
|
});
|
|
@@ -148,14 +179,23 @@ const vertexAttributeRange = computed({
|
|
|
148
179
|
const vertexAttributeColorMap = computed({
|
|
149
180
|
get: () => dataStyleStore.modelCornersVertexAttributeColorMap(modelId, cornerId),
|
|
150
181
|
set: async (newValue) => {
|
|
182
|
+
if (cornerId === undefined) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
151
185
|
await dataStyleStore.setModelCornersVertexAttributeColorMap(modelId, [cornerId], newValue);
|
|
152
186
|
hybridViewerStore.remoteRender();
|
|
153
187
|
},
|
|
154
188
|
});
|
|
155
189
|
|
|
156
|
-
const vertexAttributeNoDataColor = computed({
|
|
157
|
-
get: () =>
|
|
190
|
+
const vertexAttributeNoDataColor = computed<RGBAColor | undefined>({
|
|
191
|
+
get: () =>
|
|
192
|
+
dataStyleStore.modelCornersVertexAttributeNoDataColor(modelId, cornerId) as
|
|
193
|
+
| RGBAColor
|
|
194
|
+
| undefined,
|
|
158
195
|
set: async (newValue) => {
|
|
196
|
+
if (cornerId === undefined) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
159
199
|
await dataStyleStore.setModelCornersVertexAttributeNoDataColor(modelId, [cornerId], newValue);
|
|
160
200
|
hybridViewerStore.remoteRender();
|
|
161
201
|
},
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
<script setup>
|
|
1
|
+
<script setup lang="ts">
|
|
2
2
|
import SurfaceEdges from "@ogw_front/assets/viewer_svgs/surface_edges.svg";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
// oxlint-disable import/consistent-type-specifier-style -- combining the default import with the type import avoids a duplicate-imports violation on this same module; using disable-next-line here is fragile because a formatter can re-wrap the import onto multiple lines and shift the flagged line
|
|
4
|
+
import ViewerContextMenuItem, {
|
|
5
|
+
type ItemProps,
|
|
6
|
+
} from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
|
|
7
|
+
import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
|
|
5
8
|
|
|
6
9
|
import { useBatchStyle } from "@ogw_front/composables/batch_style";
|
|
7
10
|
import { useDataStyleStore } from "@ogw_front/stores/data_style";
|
|
@@ -11,16 +14,18 @@ const dataStyleStore = useDataStyleStore();
|
|
|
11
14
|
const hybridViewerStore = useHybridViewerStore();
|
|
12
15
|
const { applyBatchStyle } = useBatchStyle();
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
itemProps:
|
|
16
|
-
}
|
|
17
|
+
interface Props {
|
|
18
|
+
itemProps: ItemProps & { index: number };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const { itemProps } = defineProps<Props>();
|
|
17
22
|
|
|
18
|
-
const id = computed(() => itemProps.meta_data.modelId || itemProps.id);
|
|
23
|
+
const id = computed(() => (itemProps.meta_data.modelId as string | undefined) || itemProps.id);
|
|
19
24
|
|
|
20
25
|
const visibility = computed({
|
|
21
26
|
get: () => dataStyleStore.modelEdgesVisibility(id.value),
|
|
22
27
|
set: async (newValue) => {
|
|
23
|
-
await applyBatchStyle(id.value, (targetId) =>
|
|
28
|
+
await applyBatchStyle(id.value, (targetId: string) =>
|
|
24
29
|
dataStyleStore.setModelEdgesVisibility(targetId, newValue),
|
|
25
30
|
);
|
|
26
31
|
hybridViewerStore.remoteRender();
|
|
@@ -31,6 +36,7 @@ const visibility = computed({
|
|
|
31
36
|
<template>
|
|
32
37
|
<ViewerContextMenuItem
|
|
33
38
|
data-testid="modelEdgesMenu"
|
|
39
|
+
:index="itemProps.index"
|
|
34
40
|
:itemProps="itemProps"
|
|
35
41
|
tooltip="Edges options"
|
|
36
42
|
:btnImage="SurfaceEdges"
|