@geode/opengeodeweb-front 10.34.0-rc.8 → 10.34.0
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/{server → .build/server}/utils/app_config.js +10 -9
- package/{server → .build/server}/utils/cleanup.js +31 -17
- package/{server → .build/server}/utils/cloud.js +1 -4
- package/{server → .build/server}/utils/microservices.js +21 -9
- package/{server → .build/server}/utils/path.js +4 -4
- package/{server → .build/server}/utils/scripts.js +9 -9
- package/.build/server/utils/server_config.js +51 -0
- package/.build/server/utils/stream.js +6 -0
- package/{server → .build/server}/utils/ws_client.js +18 -3
- package/{shared → .build/shared}/scripts.js +10 -10
- package/.build/shared/utils/call_raw.js +31 -0
- package/{shared → .build/shared}/utils/call_schema.js +2 -2
- package/.build/shared/utils/fetch_raw.js +52 -0
- package/{shared → .build/shared}/utils/fetch_schema.js +2 -2
- package/{shared → .build/shared}/utils/file.js +3 -1
- package/{shared → .build/shared}/utils/response_handlers/load.js +10 -7
- package/{shared → .build/shared}/utils/validate_schema.js +1 -1
- package/app/components/ActionButton.vue +6 -6
- package/app/components/CameraManager/List.vue +5 -5
- package/app/components/CameraManager/Saver.vue +3 -5
- package/app/components/CameraManager.vue +6 -4
- package/app/components/CameraOrientation.vue +12 -12
- package/app/components/ClippingPlaneCard.vue +4 -2
- package/app/components/ClippingPlanes.vue +8 -8
- package/app/components/CrsSelector.vue +9 -10
- package/app/components/DeleteDialog.vue +4 -2
- package/app/components/DragAndDrop.vue +10 -12
- package/app/components/DragAndDropInternal/DragAndDropInline.vue +4 -2
- package/app/components/ExtensionSelector.vue +4 -4
- package/app/components/FeedBack/ErrorBanner.vue +3 -1
- package/app/components/FeedBack/Snackers.vue +4 -3
- package/app/components/FileSelector.vue +10 -8
- package/app/components/FileUploader.vue +11 -11
- package/app/components/GlassCard.vue +1 -1
- package/app/components/HybridRenderingView.vue +7 -5
- package/app/components/HybridViewerTooltip.vue +7 -7
- package/app/components/Launcher.vue +1 -1
- package/app/components/Loading/EcoMessages.vue +9 -3
- package/app/components/Loading.vue +2 -2
- package/app/components/MissingFilesSelector.vue +12 -10
- package/app/components/ObjectSelector.vue +10 -9
- package/app/components/PackagesVersions.vue +6 -5
- package/app/components/Recaptcha.vue +3 -3
- package/app/components/RemoteRenderingView.vue +6 -7
- package/app/components/Ruler.vue +3 -3
- package/app/components/Screenshot.vue +6 -6
- package/app/components/SearchBar.vue +4 -2
- package/app/components/ShrinkFilter.vue +7 -7
- package/app/components/Step.vue +6 -5
- package/app/components/Stepper.vue +4 -3
- package/app/components/ToolPanel.vue +6 -3
- package/app/components/ViewToolbar.vue +25 -28
- package/app/components/Viewer/ContextMenu/CenterButton.vue +7 -5
- package/app/components/Viewer/ContextMenu/CircularItems.vue +3 -3
- package/app/components/Viewer/ContextMenu/ContextMenu.vue +22 -19
- package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +10 -8
- package/app/components/Viewer/ContextMenu/InfoCard.vue +11 -12
- package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +13 -17
- package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +11 -15
- package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +12 -16
- package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +8 -12
- package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +11 -15
- package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +11 -15
- package/app/components/Viewer/Generic/Model/BlocksOptions.vue +67 -38
- package/app/components/Viewer/Generic/Model/CornersOptions.vue +53 -23
- package/app/components/Viewer/Generic/Model/EdgesOptions.vue +1 -3
- package/app/components/Viewer/Generic/Model/LinesOptions.vue +67 -38
- package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +31 -15
- package/app/components/Viewer/Generic/Model/ModelStyleOptions.vue +2 -3
- package/app/components/Viewer/Generic/Model/PointsOptions.vue +6 -6
- package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +69 -38
- package/app/components/Viewer/ObjectTree/Base/CommonTreeView.vue +64 -46
- package/app/components/Viewer/ObjectTree/Base/Controls.vue +5 -5
- package/app/components/Viewer/ObjectTree/Base/ItemLabel.vue +13 -9
- package/app/components/Viewer/ObjectTree/Base/StickyHeader.vue +5 -5
- package/app/components/Viewer/ObjectTree/Base/TreeRow.vue +10 -10
- package/app/components/Viewer/ObjectTree/Box.vue +6 -4
- package/app/components/Viewer/ObjectTree/Layout.vue +23 -21
- package/app/components/Viewer/ObjectTree/Views/GlobalObjects.vue +14 -14
- package/app/components/Viewer/ObjectTree/Views/{ModelCollections.vue → ModelTree.vue} +59 -24
- package/app/components/Viewer/Options/AttributeColorBar.vue +4 -2
- package/app/components/Viewer/Options/AttributeRangeSelector.vue +4 -2
- package/app/components/Viewer/Options/AttributeSelector.vue +7 -9
- package/app/components/Viewer/Options/ColorMapList.vue +15 -13
- package/app/components/Viewer/Options/ColorMapPicker.vue +4 -4
- package/app/components/Viewer/Options/ColorPicker.vue +223 -41
- package/app/components/Viewer/Options/ColoringTypeSelector.vue +16 -16
- package/app/components/Viewer/Options/ColormapQuickPicker.vue +7 -5
- package/app/components/Viewer/Options/OptionsSection.vue +1 -1
- package/app/components/Viewer/Options/TextureItem.vue +8 -6
- package/app/components/Viewer/Options/TexturesSelector.vue +1 -1
- package/app/components/Viewer/OverlappingObjectsPicker.vue +8 -9
- package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +2 -6
- package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +12 -16
- package/app/components/Viewer/Surface/PolygonsOptions.vue +12 -16
- package/app/components/Viewer/Ui.vue +2 -2
- package/app/components/Wrapper.vue +1 -4
- package/app/components/ZScaling.vue +5 -3
- package/app/components/csv-preview/CsvPreviewer.vue +38 -37
- package/app/components/csv-preview/CsvSettings.vue +6 -4
- package/app/components/csv-preview/CsvTable.vue +1 -1
- package/app/composables/batch_style.ts +5 -6
- package/app/composables/clipping_planes_widget.ts +73 -181
- 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 +163 -83
- package/app/composables/hover_highlight.ts +46 -14
- package/app/composables/model_collections.ts +26 -13
- package/app/composables/model_components.ts +26 -13
- package/app/composables/project_manager.ts +76 -19
- package/app/composables/responsive_middle_truncate.ts +13 -13
- package/app/composables/stepper_tree.ts +34 -11
- package/app/composables/tree_filter.ts +66 -44
- package/app/composables/tree_keyboard_nav.ts +25 -11
- package/app/composables/tree_scroll.ts +44 -14
- package/app/composables/use_adaptive_styles.ts +66 -23
- package/app/composables/use_overlapping_picker.ts +66 -16
- package/app/composables/use_quick_colormap.ts +16 -5
- package/app/composables/virtual_tree.ts +75 -43
- package/app/composables/vtk_implicit_plane_widget.d.ts +2 -0
- package/app/plugins/auto_store_register.ts +2 -7
- package/app/plugins/click_outside_ignore_snackbars.client.ts +39 -0
- package/app/stores/app.ts +57 -192
- package/app/stores/app_helpers/extension.ts +179 -0
- package/app/stores/back.ts +37 -21
- package/app/stores/camera_manager.ts +22 -20
- package/app/stores/cloud.ts +17 -13
- package/app/stores/data.ts +88 -47
- package/app/stores/data_helpers/collections.ts +36 -38
- package/app/stores/data_helpers/mesh.ts +45 -36
- package/app/stores/data_style.ts +50 -28
- package/app/stores/feedback.ts +6 -6
- package/app/stores/hybrid_viewer.ts +41 -52
- package/app/stores/infra.ts +39 -37
- package/app/stores/menu.ts +23 -14
- package/app/stores/treeview.ts +72 -42
- package/app/stores/viewer.ts +39 -27
- package/app/utils/attributes.ts +3 -3
- package/app/utils/clipping_planes.ts +111 -14
- package/app/utils/color_picker.ts +57 -0
- package/app/utils/colormap.ts +58 -35
- package/app/utils/default_styles/index.ts +2 -2
- package/app/utils/default_styles/meshes.ts +107 -13
- package/app/utils/default_styles/models.ts +83 -14
- package/app/utils/extension.ts +47 -20
- package/app/utils/import_workflow.ts +21 -13
- package/app/utils/name_cleaner.ts +1 -1
- package/app/utils/string.ts +1 -1
- package/app/utils/treeview.ts +2 -2
- package/internal/database/base_database.ts +7 -3
- package/internal/database/database.ts +36 -26
- package/internal/database/extended_database.ts +1 -1
- package/internal/stores/data_style/mesh/cells/cell.ts +70 -34
- package/internal/stores/data_style/mesh/cells/color.ts +12 -6
- package/internal/stores/data_style/mesh/cells/common.ts +18 -8
- package/internal/stores/data_style/mesh/cells/index.ts +122 -42
- package/internal/stores/data_style/mesh/cells/textures.ts +12 -6
- package/internal/stores/data_style/mesh/cells/vertex.ts +75 -34
- package/internal/stores/data_style/mesh/cells/visibility.ts +15 -4
- package/internal/stores/data_style/mesh/edges/color.ts +12 -6
- package/internal/stores/data_style/mesh/edges/common.ts +14 -6
- package/internal/stores/data_style/mesh/edges/edge.ts +71 -39
- package/internal/stores/data_style/mesh/edges/index.ts +117 -42
- package/internal/stores/data_style/mesh/edges/vertex.ts +76 -39
- package/internal/stores/data_style/mesh/edges/visibility.ts +15 -4
- package/internal/stores/data_style/mesh/edges/width.ts +12 -4
- package/internal/stores/data_style/mesh/index.ts +30 -11
- package/internal/stores/data_style/mesh/points/color.ts +12 -6
- package/internal/stores/data_style/mesh/points/common.ts +21 -8
- package/internal/stores/data_style/mesh/points/index.ts +101 -50
- package/internal/stores/data_style/mesh/points/size.ts +12 -4
- package/internal/stores/data_style/mesh/points/vertex.ts +75 -34
- package/internal/stores/data_style/mesh/points/visibility.ts +17 -7
- package/internal/stores/data_style/mesh/polygons/color.ts +12 -6
- package/internal/stores/data_style/mesh/polygons/common.ts +23 -6
- package/internal/stores/data_style/mesh/polygons/index.ts +130 -70
- package/internal/stores/data_style/mesh/polygons/polygon.ts +77 -43
- package/internal/stores/data_style/mesh/polygons/textures.ts +12 -6
- package/internal/stores/data_style/mesh/polygons/vertex.ts +79 -39
- package/internal/stores/data_style/mesh/polygons/visibility.ts +16 -6
- package/internal/stores/data_style/mesh/polyhedra/color.ts +12 -6
- package/internal/stores/data_style/mesh/polyhedra/common.ts +14 -6
- package/internal/stores/data_style/mesh/polyhedra/index.ts +115 -56
- package/internal/stores/data_style/mesh/polyhedra/polyhedron.ts +80 -39
- package/internal/stores/data_style/mesh/polyhedra/vertex.ts +79 -39
- package/internal/stores/data_style/mesh/polyhedra/visibility.ts +16 -6
- package/internal/stores/data_style/model/blocks/color.ts +43 -13
- package/internal/stores/data_style/model/blocks/common.ts +21 -6
- package/internal/stores/data_style/model/blocks/index.ts +89 -59
- package/internal/stores/data_style/model/blocks/polyhedron.ts +101 -44
- package/internal/stores/data_style/model/blocks/vertex.ts +107 -42
- package/internal/stores/data_style/model/blocks/visibility.ts +17 -4
- package/internal/stores/data_style/model/color.ts +171 -83
- package/internal/stores/data_style/model/common.ts +70 -21
- package/internal/stores/data_style/model/corners/color.ts +43 -11
- package/internal/stores/data_style/model/corners/common.ts +25 -6
- package/internal/stores/data_style/model/corners/index.ts +66 -41
- package/internal/stores/data_style/model/corners/vertex.ts +105 -74
- package/internal/stores/data_style/model/corners/visibility.ts +19 -4
- package/internal/stores/data_style/model/edges/common.ts +12 -4
- package/internal/stores/data_style/model/edges/index.ts +2 -1
- package/internal/stores/data_style/model/edges/visibility.ts +24 -7
- package/internal/stores/data_style/model/index.ts +24 -11
- package/internal/stores/data_style/model/lines/color.ts +41 -11
- package/internal/stores/data_style/model/lines/common.ts +17 -6
- package/internal/stores/data_style/model/lines/edge.ts +105 -42
- package/internal/stores/data_style/model/lines/index.ts +86 -59
- package/internal/stores/data_style/model/lines/vertex.ts +105 -42
- package/internal/stores/data_style/model/lines/visibility.ts +17 -4
- package/internal/stores/data_style/model/points/common.ts +8 -4
- package/internal/stores/data_style/model/points/index.ts +10 -3
- package/internal/stores/data_style/model/points/size.ts +12 -4
- package/internal/stores/data_style/model/points/visibility.ts +16 -6
- package/internal/stores/data_style/model/selection.ts +80 -58
- package/internal/stores/data_style/model/surfaces/color.ts +41 -11
- package/internal/stores/data_style/model/surfaces/common.ts +23 -6
- package/internal/stores/data_style/model/surfaces/index.ts +89 -59
- package/internal/stores/data_style/model/surfaces/polygon.ts +107 -67
- package/internal/stores/data_style/model/surfaces/vertex.ts +111 -67
- package/internal/stores/data_style/model/surfaces/visibility.ts +18 -5
- package/internal/stores/data_style/model/visibility.ts +82 -20
- package/internal/stores/data_style/state.ts +77 -65
- package/internal/stores/hybrid_viewer/brightness.ts +49 -31
- package/internal/stores/hybrid_viewer/camera.ts +191 -177
- package/internal/stores/hybrid_viewer/camera_animation.ts +11 -10
- package/internal/stores/hybrid_viewer/core.ts +64 -0
- package/internal/stores/hybrid_viewer/filters.ts +10 -16
- package/internal/stores/hybrid_viewer/highlight.ts +91 -130
- package/internal/stores/hybrid_viewer/ruler.ts +24 -15
- package/internal/stores/hybrid_viewer/scene.ts +96 -117
- package/internal/stores/hybrid_viewer/viewport.ts +74 -65
- package/internal/stores/hybrid_viewer/vtk_types.ts +13 -29
- package/internal/utils/api_fetch.ts +54 -23
- package/internal/utils/upload_file.ts +74 -53
- package/internal/utils/viewer_call.ts +22 -13
- package/internal/utils/ws_client.ts +24 -13
- package/nuxt.config.ts +58 -1
- package/package.json +20 -8
- package/server/api/cloud/extensions/run.post.ts +6 -10
- package/server/api/local/app/project_folder_path.post.ts +4 -4
- package/server/api/local/app/run_back.post.ts +5 -7
- package/server/api/local/app/run_viewer.post.ts +5 -7
- package/server/api/local/extensions/kill.post.ts +4 -3
- package/server/api/local/extensions/run.post.ts +7 -10
- package/server/api/local/extensions/upload.put.ts +44 -54
- package/server/api/microservice/app/get_is_app_ready.get.ts +4 -5
- package/server/api/microservice/app/set_app_base_url.post.ts +5 -6
- package/server/api/microservice/app/set_back_base_url.post.ts +5 -6
- package/server/api/microservice/app/set_is_app_ready.post.ts +5 -6
- package/server/api/microservice/app/set_viewer_base_url.post.ts +5 -6
- package/server/api/microservice/extensions/download.post.ts +5 -4
- package/server/api/serverless/run_cloud.post.ts +53 -11
- package/server/utils/app_config.ts +29 -22
- package/server/utils/cleanup.ts +60 -30
- package/server/utils/cloud.ts +9 -8
- package/server/utils/extension.ts +23 -9
- package/server/utils/microservices.ts +33 -24
- package/server/utils/path.ts +4 -4
- package/server/utils/scripts.ts +26 -23
- package/server/utils/server.ts +2 -2
- package/server/utils/server_config.ts +41 -27
- package/server/utils/stream.ts +6 -0
- package/server/utils/ws_client.ts +42 -8
- package/shared/scripts.ts +15 -10
- package/shared/utils/call_raw.ts +23 -16
- package/shared/utils/call_schema.ts +5 -8
- package/shared/utils/fetch_raw.ts +87 -47
- package/shared/utils/fetch_schema.ts +6 -9
- package/shared/utils/file.ts +8 -2
- package/shared/utils/response_handlers/load.ts +26 -11
- package/shared/utils/types.ts +9 -9
- package/shared/utils/validate_schema.ts +1 -1
- package/app/components/Viewer/ObjectTree/Views/ModelComponents.vue +0 -276
- package/server/types/vendor.d.ts +0 -64
- package/server/utils/server_config.js +0 -43
- package/shared/utils/call_raw.js +0 -30
- package/shared/utils/fetch_raw.js +0 -40
- /package/{opengeodeweb_front_schemas.js → .build/opengeodeweb_front_schemas.js} +0 -0
- /package/{server → .build/server}/utils/server.js +0 -0
- /package/{shared → .build/shared}/app_mode.js +0 -0
- /package/{shared → .build/shared}/utils/parse_boolean.js +0 -0
- /package/{shared → .build/shared}/utils/types.js +0 -0
|
@@ -1,18 +1,14 @@
|
|
|
1
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
|
-
import PolygonalSurfacePolygons from "@ogw_front/assets/viewer_svgs/surface_triangles.svg";
|
|
5
|
-
// 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
|
|
6
2
|
import ViewerContextMenuItem, {
|
|
7
3
|
type ItemProps,
|
|
8
4
|
} from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
|
|
5
|
+
import PolygonalSurfacePolygons from "@ogw_front/assets/viewer_svgs/surface_triangles.svg";
|
|
6
|
+
import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
|
|
9
7
|
import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
|
|
10
8
|
import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
|
|
11
|
-
|
|
12
9
|
import { useBatchStyle } from "@ogw_front/composables/batch_style";
|
|
13
10
|
import { useDataStyleStore } from "@ogw_front/stores/data_style";
|
|
14
11
|
import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
|
|
15
|
-
import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
|
|
16
12
|
|
|
17
13
|
const dataStyleStore = useDataStyleStore();
|
|
18
14
|
const hybridViewerStore = useHybridViewerStore();
|
|
@@ -32,7 +28,7 @@ const { itemProps, tooltip = "Polygons options" } = defineProps<Props>();
|
|
|
32
28
|
|
|
33
29
|
const id = toRef(() => itemProps.id);
|
|
34
30
|
|
|
35
|
-
const visibility = computed({
|
|
31
|
+
const visibility = computed<boolean>({
|
|
36
32
|
get: () => dataStyleStore.meshPolygonsVisibility(id.value),
|
|
37
33
|
set: async (newValue) => {
|
|
38
34
|
await applyBatchStyle(id.value, (targetId: string) =>
|
|
@@ -41,7 +37,7 @@ const visibility = computed({
|
|
|
41
37
|
hybridViewerStore.remoteRender();
|
|
42
38
|
},
|
|
43
39
|
});
|
|
44
|
-
const coloring_style_key = computed({
|
|
40
|
+
const coloring_style_key = computed<string>({
|
|
45
41
|
get: () => dataStyleStore.meshPolygonsActiveColoring(id.value),
|
|
46
42
|
set: async (newValue) => {
|
|
47
43
|
await applyBatchStyle(id.value, (targetId: string) =>
|
|
@@ -68,7 +64,7 @@ const textures = computed<Texture[] | undefined>({
|
|
|
68
64
|
hybridViewerStore.remoteRender();
|
|
69
65
|
},
|
|
70
66
|
});
|
|
71
|
-
const vertex_attribute_name = computed({
|
|
67
|
+
const vertex_attribute_name = computed<string | undefined>({
|
|
72
68
|
get: () => dataStyleStore.meshPolygonsVertexAttributeName(id.value),
|
|
73
69
|
set: async (newValue) => {
|
|
74
70
|
if (newValue === undefined) {
|
|
@@ -80,7 +76,7 @@ const vertex_attribute_name = computed({
|
|
|
80
76
|
hybridViewerStore.remoteRender();
|
|
81
77
|
},
|
|
82
78
|
});
|
|
83
|
-
const vertex_attribute_item = computed({
|
|
79
|
+
const vertex_attribute_item = computed<string | undefined>({
|
|
84
80
|
get: () => dataStyleStore.meshPolygonsVertexAttributeItem(id.value),
|
|
85
81
|
set: async (newValue) => {
|
|
86
82
|
await applyBatchStyle(id.value, (targetId: string) =>
|
|
@@ -89,7 +85,7 @@ const vertex_attribute_item = computed({
|
|
|
89
85
|
hybridViewerStore.remoteRender();
|
|
90
86
|
},
|
|
91
87
|
});
|
|
92
|
-
const vertex_attribute_range = computed({
|
|
88
|
+
const vertex_attribute_range = computed<[number, number] | undefined>({
|
|
93
89
|
get: () => dataStyleStore.meshPolygonsVertexAttributeRange(id.value),
|
|
94
90
|
set: async (newValue) => {
|
|
95
91
|
const [minimum, maximum] = newValue;
|
|
@@ -104,7 +100,7 @@ const vertex_attribute_range = computed({
|
|
|
104
100
|
hybridViewerStore.remoteRender();
|
|
105
101
|
},
|
|
106
102
|
});
|
|
107
|
-
const vertex_attribute_color_map = computed({
|
|
103
|
+
const vertex_attribute_color_map = computed<Map<string, RGBAColor> | undefined>({
|
|
108
104
|
get: () => dataStyleStore.meshPolygonsVertexAttributeColorMap(id.value),
|
|
109
105
|
set: async (newValue) => {
|
|
110
106
|
await applyBatchStyle(id.value, (targetId: string) =>
|
|
@@ -123,7 +119,7 @@ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
|
|
|
123
119
|
hybridViewerStore.remoteRender();
|
|
124
120
|
},
|
|
125
121
|
});
|
|
126
|
-
const polygon_attribute_name = computed({
|
|
122
|
+
const polygon_attribute_name = computed<string | undefined>({
|
|
127
123
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeName(id.value),
|
|
128
124
|
set: async (newValue) => {
|
|
129
125
|
if (newValue === undefined) {
|
|
@@ -135,7 +131,7 @@ const polygon_attribute_name = computed({
|
|
|
135
131
|
hybridViewerStore.remoteRender();
|
|
136
132
|
},
|
|
137
133
|
});
|
|
138
|
-
const polygon_attribute_item = computed({
|
|
134
|
+
const polygon_attribute_item = computed<string | undefined>({
|
|
139
135
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeItem(id.value),
|
|
140
136
|
set: async (newValue) => {
|
|
141
137
|
await applyBatchStyle(id.value, (targetId: string) =>
|
|
@@ -144,7 +140,7 @@ const polygon_attribute_item = computed({
|
|
|
144
140
|
hybridViewerStore.remoteRender();
|
|
145
141
|
},
|
|
146
142
|
});
|
|
147
|
-
const polygon_attribute_range = computed({
|
|
143
|
+
const polygon_attribute_range = computed<[number, number] | undefined>({
|
|
148
144
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeRange(id.value),
|
|
149
145
|
set: async (newValue) => {
|
|
150
146
|
const [minimum, maximum] = newValue;
|
|
@@ -159,7 +155,7 @@ const polygon_attribute_range = computed({
|
|
|
159
155
|
hybridViewerStore.remoteRender();
|
|
160
156
|
},
|
|
161
157
|
});
|
|
162
|
-
const polygon_attribute_color_map = computed({
|
|
158
|
+
const polygon_attribute_color_map = computed<Map<string, RGBAColor> | undefined>({
|
|
163
159
|
get: () => dataStyleStore.meshPolygonsPolygonAttributeColorMap(id.value),
|
|
164
160
|
set: async (newValue) => {
|
|
165
161
|
await applyBatchStyle(id.value, (targetId: string) =>
|
|
@@ -23,7 +23,7 @@ const menuStore = useMenuStore();
|
|
|
23
23
|
const viewerStore = useViewerStore();
|
|
24
24
|
const hybridViewerStore = useHybridViewerStore();
|
|
25
25
|
|
|
26
|
-
function stopHoverHighlight() {
|
|
26
|
+
function stopHoverHighlight(): void {
|
|
27
27
|
hybridViewerStore.is_hover_highlight = false;
|
|
28
28
|
hybridViewerStore.clearHoverHighlight();
|
|
29
29
|
}
|
|
@@ -57,7 +57,7 @@ const {
|
|
|
57
57
|
get_viewer_id: trigger_picker,
|
|
58
58
|
} = useOverlappingPicker();
|
|
59
59
|
|
|
60
|
-
function get_viewer_id(x: number, y: number) {
|
|
60
|
+
function get_viewer_id(x: number, y: number): string {
|
|
61
61
|
const instance = getCurrentInstance();
|
|
62
62
|
const containerRect = instance?.proxy?.$el
|
|
63
63
|
?.closest?.('[data-testid="hybridViewer"]')
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
|
|
3
|
-
// oxlint-disable eslint/sort-imports
|
|
2
|
+
import type { JsonRpcSchema } from "@ogw_shared/utils/types.js";
|
|
4
3
|
import Launcher from "@ogw_front/components/Launcher.vue";
|
|
5
4
|
import PackagesVersions from "@ogw_front/components/PackagesVersions.vue";
|
|
6
5
|
import Stepper from "@ogw_front/components/Stepper.vue";
|
|
7
|
-
|
|
8
6
|
import { useInfraStore } from "@ogw_front/stores/infra";
|
|
9
7
|
import { useStepperTree } from "@ogw_front/composables/stepper_tree";
|
|
10
|
-
import type { JsonRpcSchema } from "@ogw_shared/utils/types.js";
|
|
11
8
|
|
|
12
9
|
const infraStore = useInfraStore();
|
|
13
10
|
|
|
@@ -13,11 +13,13 @@ interface Props {
|
|
|
13
13
|
|
|
14
14
|
const { width = DEFAULT_PANEL_WIDTH, escapeFunction = undefined } = defineProps<Props>();
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
interface Emits {
|
|
17
17
|
apply: [];
|
|
18
|
-
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const emit = defineEmits<Emits>();
|
|
19
21
|
|
|
20
|
-
function apply() {
|
|
22
|
+
function apply(): void {
|
|
21
23
|
emit("apply");
|
|
22
24
|
show.value = false;
|
|
23
25
|
}
|
|
@@ -33,26 +33,28 @@ const MIN_AVG_COUNT = 1.5;
|
|
|
33
33
|
const MAX_VARIANCE = 0.5;
|
|
34
34
|
const PREVIEW_ROWS_LIMIT = 101;
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
interface Emits {
|
|
37
37
|
"update:modelValue": [value: boolean];
|
|
38
38
|
confirm: [result: CsvParseResult];
|
|
39
|
-
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const emit = defineEmits<Emits>();
|
|
40
42
|
|
|
41
|
-
const separator = ref(",");
|
|
42
|
-
const headerRow = ref(0);
|
|
43
|
-
const firstRow = ref(1);
|
|
43
|
+
const separator = ref<string>(",");
|
|
44
|
+
const headerRow = ref<number>(0);
|
|
45
|
+
const firstRow = ref<number>(1);
|
|
44
46
|
|
|
45
47
|
const xColumn = ref<string | undefined>(undefined);
|
|
46
48
|
const yColumn = ref<string | undefined>(undefined);
|
|
47
49
|
const zColumn = ref<string | undefined>(undefined);
|
|
48
50
|
|
|
49
|
-
const rawContent = ref("");
|
|
51
|
+
const rawContent = ref<string>("");
|
|
50
52
|
const previewRows = ref<CsvRow[]>([]);
|
|
51
53
|
const previewHeaders = ref<CsvHeader[]>([]);
|
|
52
|
-
const loading = ref(false);
|
|
54
|
+
const loading = ref<boolean>(false);
|
|
53
55
|
const toggleLoading = useToggle(loading);
|
|
54
56
|
|
|
55
|
-
function autoDetectSeparator(content: string) {
|
|
57
|
+
function autoDetectSeparator(content: string): string {
|
|
56
58
|
const lines = content
|
|
57
59
|
.slice(0, MAX_CONTENT_SLICE)
|
|
58
60
|
.split(/\r?\n/u)
|
|
@@ -75,35 +77,33 @@ function autoDetectSeparator(content: string) {
|
|
|
75
77
|
return best;
|
|
76
78
|
}
|
|
77
79
|
|
|
78
|
-
function
|
|
79
|
-
if (!
|
|
80
|
-
return;
|
|
80
|
+
function splitLine(line: string): string[] {
|
|
81
|
+
if (!separator.value) {
|
|
82
|
+
return [line];
|
|
81
83
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (
|
|
87
|
-
|
|
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;
|
|
88
95
|
}
|
|
89
|
-
const result = [];
|
|
90
|
-
let current = "";
|
|
91
|
-
let inQuotes = false;
|
|
92
|
-
for (let index = 0; index < line.length; index += 1) {
|
|
93
|
-
const char = line[index];
|
|
94
|
-
if (char === '"') {
|
|
95
|
-
inQuotes = !inQuotes;
|
|
96
|
-
} else if (char === separator.value && !inQuotes) {
|
|
97
|
-
result.push(current.trim());
|
|
98
|
-
current = "";
|
|
99
|
-
} else {
|
|
100
|
-
current += char;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
result.push(current.trim());
|
|
104
|
-
return result;
|
|
105
96
|
}
|
|
97
|
+
result.push(current.trim());
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
106
100
|
|
|
101
|
+
function parseContent(): string[] {
|
|
102
|
+
if (!rawContent.value) {
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const allLines = rawContent.value.split(/\r?\n/u).filter((line) => line.trim() !== "");
|
|
107
107
|
const headerLine = allLines[headerRow.value];
|
|
108
108
|
const rawHeaders = headerLine ? splitLine(headerLine) : [];
|
|
109
109
|
|
|
@@ -125,7 +125,7 @@ function parseContent() {
|
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
function readAndParse() {
|
|
128
|
+
function readAndParse(): void {
|
|
129
129
|
if (!file) {
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
@@ -145,7 +145,8 @@ function readAndParse() {
|
|
|
145
145
|
});
|
|
146
146
|
reader.readAsText(file, "utf8");
|
|
147
147
|
}
|
|
148
|
-
|
|
148
|
+
|
|
149
|
+
const computedResult = computed<CsvParseResult>(() => {
|
|
149
150
|
const xIndex = previewHeaders.value.findIndex((header) => header.key === xColumn.value);
|
|
150
151
|
const yIndex = previewHeaders.value.findIndex((header) => header.key === yColumn.value);
|
|
151
152
|
const zIndex = previewHeaders.value.findIndex((header) => header.key === zColumn.value);
|
|
@@ -160,7 +161,7 @@ const computedResult = computed(() => {
|
|
|
160
161
|
};
|
|
161
162
|
});
|
|
162
163
|
|
|
163
|
-
const isFormValid = computed(
|
|
164
|
+
const isFormValid = computed<boolean>(
|
|
164
165
|
() =>
|
|
165
166
|
separator.value !== "" &&
|
|
166
167
|
separator.value !== undefined &&
|
|
@@ -197,7 +198,7 @@ watch(
|
|
|
197
198
|
},
|
|
198
199
|
);
|
|
199
200
|
|
|
200
|
-
function onConfirm() {
|
|
201
|
+
function onConfirm(): void {
|
|
201
202
|
emit("confirm", computedResult.value);
|
|
202
203
|
emit("update:modelValue", false);
|
|
203
204
|
}
|
|
@@ -17,9 +17,11 @@ const xColumn = defineModel<string>("xColumn");
|
|
|
17
17
|
const yColumn = defineModel<string>("yColumn");
|
|
18
18
|
const zColumn = defineModel<string>("zColumn");
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
interface Emits {
|
|
21
21
|
"update:separator": [value: string];
|
|
22
|
-
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const emit = defineEmits<Emits>();
|
|
23
25
|
|
|
24
26
|
const separators = [
|
|
25
27
|
{ title: "Comma (,)", value: "," },
|
|
@@ -30,8 +32,8 @@ const separators = [
|
|
|
30
32
|
{ title: "Custom", value: "custom" },
|
|
31
33
|
];
|
|
32
34
|
|
|
33
|
-
const selectedType = ref(",");
|
|
34
|
-
const customValue = ref("");
|
|
35
|
+
const selectedType = ref<string>(",");
|
|
36
|
+
const customValue = ref<string>("");
|
|
35
37
|
|
|
36
38
|
watch(
|
|
37
39
|
() => separator,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useDataStore } from "@ogw_front/stores/data";
|
|
2
2
|
import { useTreeviewStore } from "@ogw_front/stores/treeview";
|
|
3
3
|
|
|
4
|
-
export function useBatchStyle() {
|
|
4
|
+
export function useBatchStyle(): { applyBatchStyle: typeof applyBatchStyle } {
|
|
5
5
|
const treeviewStore = useTreeviewStore();
|
|
6
6
|
const dataStore = useDataStore();
|
|
7
7
|
|
|
@@ -22,17 +22,16 @@ export function useBatchStyle() {
|
|
|
22
22
|
const promises = treeviewStore.activeItems.map(async (selectedId) => {
|
|
23
23
|
try {
|
|
24
24
|
const item = await dataStore.item(selectedId);
|
|
25
|
-
if (item
|
|
25
|
+
if (item.geode_object_type === targetType) {
|
|
26
26
|
await action(selectedId);
|
|
27
27
|
}
|
|
28
|
-
} catch
|
|
29
|
-
|
|
28
|
+
} catch {
|
|
29
|
+
// Ignore items that fail to load; batch style continues for the rest.
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
await Promise.all(promises);
|
|
34
|
-
} catch
|
|
35
|
-
console.error("Failed to fetch current item for batch style", id, error);
|
|
34
|
+
} catch {
|
|
36
35
|
await action(id);
|
|
37
36
|
}
|
|
38
37
|
}
|