@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.
Files changed (282) hide show
  1. package/{server → .build/server}/utils/app_config.js +10 -9
  2. package/{server → .build/server}/utils/cleanup.js +31 -17
  3. package/{server → .build/server}/utils/cloud.js +1 -4
  4. package/{server → .build/server}/utils/microservices.js +21 -9
  5. package/{server → .build/server}/utils/path.js +4 -4
  6. package/{server → .build/server}/utils/scripts.js +9 -9
  7. package/.build/server/utils/server_config.js +51 -0
  8. package/.build/server/utils/stream.js +6 -0
  9. package/{server → .build/server}/utils/ws_client.js +18 -3
  10. package/{shared → .build/shared}/scripts.js +10 -10
  11. package/.build/shared/utils/call_raw.js +31 -0
  12. package/{shared → .build/shared}/utils/call_schema.js +2 -2
  13. package/.build/shared/utils/fetch_raw.js +52 -0
  14. package/{shared → .build/shared}/utils/fetch_schema.js +2 -2
  15. package/{shared → .build/shared}/utils/file.js +3 -1
  16. package/{shared → .build/shared}/utils/response_handlers/load.js +10 -7
  17. package/{shared → .build/shared}/utils/validate_schema.js +1 -1
  18. package/app/components/ActionButton.vue +6 -6
  19. package/app/components/CameraManager/List.vue +5 -5
  20. package/app/components/CameraManager/Saver.vue +3 -5
  21. package/app/components/CameraManager.vue +6 -4
  22. package/app/components/CameraOrientation.vue +12 -12
  23. package/app/components/ClippingPlaneCard.vue +4 -2
  24. package/app/components/ClippingPlanes.vue +8 -8
  25. package/app/components/CrsSelector.vue +9 -10
  26. package/app/components/DeleteDialog.vue +4 -2
  27. package/app/components/DragAndDrop.vue +10 -12
  28. package/app/components/DragAndDropInternal/DragAndDropInline.vue +4 -2
  29. package/app/components/ExtensionSelector.vue +4 -4
  30. package/app/components/FeedBack/ErrorBanner.vue +3 -1
  31. package/app/components/FeedBack/Snackers.vue +4 -3
  32. package/app/components/FileSelector.vue +10 -8
  33. package/app/components/FileUploader.vue +11 -11
  34. package/app/components/GlassCard.vue +1 -1
  35. package/app/components/HybridRenderingView.vue +7 -5
  36. package/app/components/HybridViewerTooltip.vue +7 -7
  37. package/app/components/Launcher.vue +1 -1
  38. package/app/components/Loading/EcoMessages.vue +9 -3
  39. package/app/components/Loading.vue +2 -2
  40. package/app/components/MissingFilesSelector.vue +12 -10
  41. package/app/components/ObjectSelector.vue +10 -9
  42. package/app/components/PackagesVersions.vue +6 -5
  43. package/app/components/Recaptcha.vue +3 -3
  44. package/app/components/RemoteRenderingView.vue +6 -7
  45. package/app/components/Ruler.vue +3 -3
  46. package/app/components/Screenshot.vue +6 -6
  47. package/app/components/SearchBar.vue +4 -2
  48. package/app/components/ShrinkFilter.vue +7 -7
  49. package/app/components/Step.vue +6 -5
  50. package/app/components/Stepper.vue +4 -3
  51. package/app/components/ToolPanel.vue +6 -3
  52. package/app/components/ViewToolbar.vue +25 -28
  53. package/app/components/Viewer/ContextMenu/CenterButton.vue +7 -5
  54. package/app/components/Viewer/ContextMenu/CircularItems.vue +3 -3
  55. package/app/components/Viewer/ContextMenu/ContextMenu.vue +22 -19
  56. package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +10 -8
  57. package/app/components/Viewer/ContextMenu/InfoCard.vue +11 -12
  58. package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +13 -17
  59. package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +11 -15
  60. package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +12 -16
  61. package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +8 -12
  62. package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +11 -15
  63. package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +11 -15
  64. package/app/components/Viewer/Generic/Model/BlocksOptions.vue +67 -38
  65. package/app/components/Viewer/Generic/Model/CornersOptions.vue +53 -23
  66. package/app/components/Viewer/Generic/Model/EdgesOptions.vue +1 -3
  67. package/app/components/Viewer/Generic/Model/LinesOptions.vue +67 -38
  68. package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +31 -15
  69. package/app/components/Viewer/Generic/Model/ModelStyleOptions.vue +2 -3
  70. package/app/components/Viewer/Generic/Model/PointsOptions.vue +6 -6
  71. package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +69 -38
  72. package/app/components/Viewer/ObjectTree/Base/CommonTreeView.vue +64 -46
  73. package/app/components/Viewer/ObjectTree/Base/Controls.vue +5 -5
  74. package/app/components/Viewer/ObjectTree/Base/ItemLabel.vue +13 -9
  75. package/app/components/Viewer/ObjectTree/Base/StickyHeader.vue +5 -5
  76. package/app/components/Viewer/ObjectTree/Base/TreeRow.vue +10 -10
  77. package/app/components/Viewer/ObjectTree/Box.vue +6 -4
  78. package/app/components/Viewer/ObjectTree/Layout.vue +23 -21
  79. package/app/components/Viewer/ObjectTree/Views/GlobalObjects.vue +14 -14
  80. package/app/components/Viewer/ObjectTree/Views/{ModelCollections.vue → ModelTree.vue} +59 -24
  81. package/app/components/Viewer/Options/AttributeColorBar.vue +4 -2
  82. package/app/components/Viewer/Options/AttributeRangeSelector.vue +4 -2
  83. package/app/components/Viewer/Options/AttributeSelector.vue +7 -9
  84. package/app/components/Viewer/Options/ColorMapList.vue +15 -13
  85. package/app/components/Viewer/Options/ColorMapPicker.vue +4 -4
  86. package/app/components/Viewer/Options/ColorPicker.vue +223 -41
  87. package/app/components/Viewer/Options/ColoringTypeSelector.vue +16 -16
  88. package/app/components/Viewer/Options/ColormapQuickPicker.vue +7 -5
  89. package/app/components/Viewer/Options/OptionsSection.vue +1 -1
  90. package/app/components/Viewer/Options/TextureItem.vue +8 -6
  91. package/app/components/Viewer/Options/TexturesSelector.vue +1 -1
  92. package/app/components/Viewer/OverlappingObjectsPicker.vue +8 -9
  93. package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +2 -6
  94. package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +12 -16
  95. package/app/components/Viewer/Surface/PolygonsOptions.vue +12 -16
  96. package/app/components/Viewer/Ui.vue +2 -2
  97. package/app/components/Wrapper.vue +1 -4
  98. package/app/components/ZScaling.vue +5 -3
  99. package/app/components/csv-preview/CsvPreviewer.vue +38 -37
  100. package/app/components/csv-preview/CsvSettings.vue +6 -4
  101. package/app/components/csv-preview/CsvTable.vue +1 -1
  102. package/app/composables/batch_style.ts +5 -6
  103. package/app/composables/clipping_planes_widget.ts +73 -181
  104. package/app/composables/clipping_planes_widget_entries.ts +189 -0
  105. package/app/composables/copy_to_clipboard.ts +7 -0
  106. package/app/composables/global_attribute_style.ts +163 -83
  107. package/app/composables/hover_highlight.ts +46 -14
  108. package/app/composables/model_collections.ts +26 -13
  109. package/app/composables/model_components.ts +26 -13
  110. package/app/composables/project_manager.ts +76 -19
  111. package/app/composables/responsive_middle_truncate.ts +13 -13
  112. package/app/composables/stepper_tree.ts +34 -11
  113. package/app/composables/tree_filter.ts +66 -44
  114. package/app/composables/tree_keyboard_nav.ts +25 -11
  115. package/app/composables/tree_scroll.ts +44 -14
  116. package/app/composables/use_adaptive_styles.ts +66 -23
  117. package/app/composables/use_overlapping_picker.ts +66 -16
  118. package/app/composables/use_quick_colormap.ts +16 -5
  119. package/app/composables/virtual_tree.ts +75 -43
  120. package/app/composables/vtk_implicit_plane_widget.d.ts +2 -0
  121. package/app/plugins/auto_store_register.ts +2 -7
  122. package/app/plugins/click_outside_ignore_snackbars.client.ts +39 -0
  123. package/app/stores/app.ts +57 -192
  124. package/app/stores/app_helpers/extension.ts +179 -0
  125. package/app/stores/back.ts +37 -21
  126. package/app/stores/camera_manager.ts +22 -20
  127. package/app/stores/cloud.ts +17 -13
  128. package/app/stores/data.ts +88 -47
  129. package/app/stores/data_helpers/collections.ts +36 -38
  130. package/app/stores/data_helpers/mesh.ts +45 -36
  131. package/app/stores/data_style.ts +50 -28
  132. package/app/stores/feedback.ts +6 -6
  133. package/app/stores/hybrid_viewer.ts +41 -52
  134. package/app/stores/infra.ts +39 -37
  135. package/app/stores/menu.ts +23 -14
  136. package/app/stores/treeview.ts +72 -42
  137. package/app/stores/viewer.ts +39 -27
  138. package/app/utils/attributes.ts +3 -3
  139. package/app/utils/clipping_planes.ts +111 -14
  140. package/app/utils/color_picker.ts +57 -0
  141. package/app/utils/colormap.ts +58 -35
  142. package/app/utils/default_styles/index.ts +2 -2
  143. package/app/utils/default_styles/meshes.ts +107 -13
  144. package/app/utils/default_styles/models.ts +83 -14
  145. package/app/utils/extension.ts +47 -20
  146. package/app/utils/import_workflow.ts +21 -13
  147. package/app/utils/name_cleaner.ts +1 -1
  148. package/app/utils/string.ts +1 -1
  149. package/app/utils/treeview.ts +2 -2
  150. package/internal/database/base_database.ts +7 -3
  151. package/internal/database/database.ts +36 -26
  152. package/internal/database/extended_database.ts +1 -1
  153. package/internal/stores/data_style/mesh/cells/cell.ts +70 -34
  154. package/internal/stores/data_style/mesh/cells/color.ts +12 -6
  155. package/internal/stores/data_style/mesh/cells/common.ts +18 -8
  156. package/internal/stores/data_style/mesh/cells/index.ts +122 -42
  157. package/internal/stores/data_style/mesh/cells/textures.ts +12 -6
  158. package/internal/stores/data_style/mesh/cells/vertex.ts +75 -34
  159. package/internal/stores/data_style/mesh/cells/visibility.ts +15 -4
  160. package/internal/stores/data_style/mesh/edges/color.ts +12 -6
  161. package/internal/stores/data_style/mesh/edges/common.ts +14 -6
  162. package/internal/stores/data_style/mesh/edges/edge.ts +71 -39
  163. package/internal/stores/data_style/mesh/edges/index.ts +117 -42
  164. package/internal/stores/data_style/mesh/edges/vertex.ts +76 -39
  165. package/internal/stores/data_style/mesh/edges/visibility.ts +15 -4
  166. package/internal/stores/data_style/mesh/edges/width.ts +12 -4
  167. package/internal/stores/data_style/mesh/index.ts +30 -11
  168. package/internal/stores/data_style/mesh/points/color.ts +12 -6
  169. package/internal/stores/data_style/mesh/points/common.ts +21 -8
  170. package/internal/stores/data_style/mesh/points/index.ts +101 -50
  171. package/internal/stores/data_style/mesh/points/size.ts +12 -4
  172. package/internal/stores/data_style/mesh/points/vertex.ts +75 -34
  173. package/internal/stores/data_style/mesh/points/visibility.ts +17 -7
  174. package/internal/stores/data_style/mesh/polygons/color.ts +12 -6
  175. package/internal/stores/data_style/mesh/polygons/common.ts +23 -6
  176. package/internal/stores/data_style/mesh/polygons/index.ts +130 -70
  177. package/internal/stores/data_style/mesh/polygons/polygon.ts +77 -43
  178. package/internal/stores/data_style/mesh/polygons/textures.ts +12 -6
  179. package/internal/stores/data_style/mesh/polygons/vertex.ts +79 -39
  180. package/internal/stores/data_style/mesh/polygons/visibility.ts +16 -6
  181. package/internal/stores/data_style/mesh/polyhedra/color.ts +12 -6
  182. package/internal/stores/data_style/mesh/polyhedra/common.ts +14 -6
  183. package/internal/stores/data_style/mesh/polyhedra/index.ts +115 -56
  184. package/internal/stores/data_style/mesh/polyhedra/polyhedron.ts +80 -39
  185. package/internal/stores/data_style/mesh/polyhedra/vertex.ts +79 -39
  186. package/internal/stores/data_style/mesh/polyhedra/visibility.ts +16 -6
  187. package/internal/stores/data_style/model/blocks/color.ts +43 -13
  188. package/internal/stores/data_style/model/blocks/common.ts +21 -6
  189. package/internal/stores/data_style/model/blocks/index.ts +89 -59
  190. package/internal/stores/data_style/model/blocks/polyhedron.ts +101 -44
  191. package/internal/stores/data_style/model/blocks/vertex.ts +107 -42
  192. package/internal/stores/data_style/model/blocks/visibility.ts +17 -4
  193. package/internal/stores/data_style/model/color.ts +171 -83
  194. package/internal/stores/data_style/model/common.ts +70 -21
  195. package/internal/stores/data_style/model/corners/color.ts +43 -11
  196. package/internal/stores/data_style/model/corners/common.ts +25 -6
  197. package/internal/stores/data_style/model/corners/index.ts +66 -41
  198. package/internal/stores/data_style/model/corners/vertex.ts +105 -74
  199. package/internal/stores/data_style/model/corners/visibility.ts +19 -4
  200. package/internal/stores/data_style/model/edges/common.ts +12 -4
  201. package/internal/stores/data_style/model/edges/index.ts +2 -1
  202. package/internal/stores/data_style/model/edges/visibility.ts +24 -7
  203. package/internal/stores/data_style/model/index.ts +24 -11
  204. package/internal/stores/data_style/model/lines/color.ts +41 -11
  205. package/internal/stores/data_style/model/lines/common.ts +17 -6
  206. package/internal/stores/data_style/model/lines/edge.ts +105 -42
  207. package/internal/stores/data_style/model/lines/index.ts +86 -59
  208. package/internal/stores/data_style/model/lines/vertex.ts +105 -42
  209. package/internal/stores/data_style/model/lines/visibility.ts +17 -4
  210. package/internal/stores/data_style/model/points/common.ts +8 -4
  211. package/internal/stores/data_style/model/points/index.ts +10 -3
  212. package/internal/stores/data_style/model/points/size.ts +12 -4
  213. package/internal/stores/data_style/model/points/visibility.ts +16 -6
  214. package/internal/stores/data_style/model/selection.ts +80 -58
  215. package/internal/stores/data_style/model/surfaces/color.ts +41 -11
  216. package/internal/stores/data_style/model/surfaces/common.ts +23 -6
  217. package/internal/stores/data_style/model/surfaces/index.ts +89 -59
  218. package/internal/stores/data_style/model/surfaces/polygon.ts +107 -67
  219. package/internal/stores/data_style/model/surfaces/vertex.ts +111 -67
  220. package/internal/stores/data_style/model/surfaces/visibility.ts +18 -5
  221. package/internal/stores/data_style/model/visibility.ts +82 -20
  222. package/internal/stores/data_style/state.ts +77 -65
  223. package/internal/stores/hybrid_viewer/brightness.ts +49 -31
  224. package/internal/stores/hybrid_viewer/camera.ts +191 -177
  225. package/internal/stores/hybrid_viewer/camera_animation.ts +11 -10
  226. package/internal/stores/hybrid_viewer/core.ts +64 -0
  227. package/internal/stores/hybrid_viewer/filters.ts +10 -16
  228. package/internal/stores/hybrid_viewer/highlight.ts +91 -130
  229. package/internal/stores/hybrid_viewer/ruler.ts +24 -15
  230. package/internal/stores/hybrid_viewer/scene.ts +96 -117
  231. package/internal/stores/hybrid_viewer/viewport.ts +74 -65
  232. package/internal/stores/hybrid_viewer/vtk_types.ts +13 -29
  233. package/internal/utils/api_fetch.ts +54 -23
  234. package/internal/utils/upload_file.ts +74 -53
  235. package/internal/utils/viewer_call.ts +22 -13
  236. package/internal/utils/ws_client.ts +24 -13
  237. package/nuxt.config.ts +58 -1
  238. package/package.json +20 -8
  239. package/server/api/cloud/extensions/run.post.ts +6 -10
  240. package/server/api/local/app/project_folder_path.post.ts +4 -4
  241. package/server/api/local/app/run_back.post.ts +5 -7
  242. package/server/api/local/app/run_viewer.post.ts +5 -7
  243. package/server/api/local/extensions/kill.post.ts +4 -3
  244. package/server/api/local/extensions/run.post.ts +7 -10
  245. package/server/api/local/extensions/upload.put.ts +44 -54
  246. package/server/api/microservice/app/get_is_app_ready.get.ts +4 -5
  247. package/server/api/microservice/app/set_app_base_url.post.ts +5 -6
  248. package/server/api/microservice/app/set_back_base_url.post.ts +5 -6
  249. package/server/api/microservice/app/set_is_app_ready.post.ts +5 -6
  250. package/server/api/microservice/app/set_viewer_base_url.post.ts +5 -6
  251. package/server/api/microservice/extensions/download.post.ts +5 -4
  252. package/server/api/serverless/run_cloud.post.ts +53 -11
  253. package/server/utils/app_config.ts +29 -22
  254. package/server/utils/cleanup.ts +60 -30
  255. package/server/utils/cloud.ts +9 -8
  256. package/server/utils/extension.ts +23 -9
  257. package/server/utils/microservices.ts +33 -24
  258. package/server/utils/path.ts +4 -4
  259. package/server/utils/scripts.ts +26 -23
  260. package/server/utils/server.ts +2 -2
  261. package/server/utils/server_config.ts +41 -27
  262. package/server/utils/stream.ts +6 -0
  263. package/server/utils/ws_client.ts +42 -8
  264. package/shared/scripts.ts +15 -10
  265. package/shared/utils/call_raw.ts +23 -16
  266. package/shared/utils/call_schema.ts +5 -8
  267. package/shared/utils/fetch_raw.ts +87 -47
  268. package/shared/utils/fetch_schema.ts +6 -9
  269. package/shared/utils/file.ts +8 -2
  270. package/shared/utils/response_handlers/load.ts +26 -11
  271. package/shared/utils/types.ts +9 -9
  272. package/shared/utils/validate_schema.ts +1 -1
  273. package/app/components/Viewer/ObjectTree/Views/ModelComponents.vue +0 -276
  274. package/server/types/vendor.d.ts +0 -64
  275. package/server/utils/server_config.js +0 -43
  276. package/shared/utils/call_raw.js +0 -30
  277. package/shared/utils/fetch_raw.js +0 -40
  278. /package/{opengeodeweb_front_schemas.js → .build/opengeodeweb_front_schemas.js} +0 -0
  279. /package/{server → .build/server}/utils/server.js +0 -0
  280. /package/{shared → .build/shared}/app_mode.js +0 -0
  281. /package/{shared → .build/shared}/utils/parse_boolean.js +0 -0
  282. /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
- // 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
+ 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
- const emit = defineEmits<{
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
- const emit = defineEmits<{
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 parseContent() {
79
- if (!rawContent.value) {
80
- return;
80
+ function splitLine(line: string): string[] {
81
+ if (!separator.value) {
82
+ return [line];
81
83
  }
82
-
83
- const allLines = rawContent.value.split(/\r?\n/u).filter((line) => line.trim() !== "");
84
-
85
- function splitLine(line: string): string[] {
86
- if (!separator.value) {
87
- return [line];
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
- const computedResult = computed(() => {
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
- const emit = defineEmits<{
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,
@@ -32,7 +32,7 @@ const {
32
32
  firstRow = 1,
33
33
  } = defineProps<Props>();
34
34
 
35
- function getColumnClass(key: string) {
35
+ function getColumnClass(key: string): string {
36
36
  if (key === coordinates.x) {
37
37
  return "x-col-highlight";
38
38
  }
@@ -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 && item.geode_object_type === targetType) {
25
+ if (item.geode_object_type === targetType) {
26
26
  await action(selectedId);
27
27
  }
28
- } catch (error) {
29
- console.error("Failed to apply batch style to item", selectedId, error);
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 (error) {
35
- console.error("Failed to fetch current item for batch style", id, error);
34
+ } catch {
36
35
  await action(id);
37
36
  }
38
37
  }