@geode/opengeodeweb-front 10.34.0-rc.2 → 10.34.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/.build/opengeodeweb_front_schemas.js +175 -0
  2. package/.build/server/utils/app_config.js +57 -0
  3. package/.build/server/utils/cleanup.js +135 -0
  4. package/.build/server/utils/cloud.js +156 -0
  5. package/.build/server/utils/microservices.js +153 -0
  6. package/.build/server/utils/path.js +108 -0
  7. package/.build/server/utils/scripts.js +134 -0
  8. package/.build/server/utils/server.js +44 -0
  9. package/.build/server/utils/server_config.js +51 -0
  10. package/.build/server/utils/stream.js +6 -0
  11. package/.build/server/utils/ws_client.js +100 -0
  12. package/.build/shared/app_mode.js +8 -0
  13. package/.build/shared/scripts.js +49 -0
  14. package/.build/shared/utils/call_raw.js +31 -0
  15. package/.build/shared/utils/call_schema.js +28 -0
  16. package/.build/shared/utils/fetch_raw.js +52 -0
  17. package/.build/shared/utils/fetch_schema.js +32 -0
  18. package/.build/shared/utils/file.js +14 -0
  19. package/.build/shared/utils/parse_boolean.js +23 -0
  20. package/.build/shared/utils/response_handlers/load.js +50 -0
  21. package/.build/shared/utils/types.js +1 -0
  22. package/.build/shared/utils/validate_schema.js +17 -0
  23. package/README.md +8 -0
  24. package/app/assets/{geode_objects.js → geode_objects.ts} +8 -1
  25. package/app/components/ActionButton.vue +28 -12
  26. package/app/components/Basic/Slider.vue +2 -2
  27. package/app/components/Basic/Switch.vue +2 -2
  28. package/app/components/CameraManager/List.vue +11 -11
  29. package/app/components/CameraManager/Saver.vue +8 -4
  30. package/app/components/CameraManager.vue +24 -12
  31. package/app/components/CameraOrientation.vue +31 -17
  32. package/app/components/ClippingPlaneCard.vue +13 -12
  33. package/app/components/ClippingPlanes.vue +31 -21
  34. package/app/components/CrsSelector.vue +26 -18
  35. package/app/components/DeleteDialog.vue +18 -16
  36. package/app/components/DragAndDrop.vue +55 -37
  37. package/app/components/DragAndDropInternal/DragAndDropInline.vue +31 -16
  38. package/app/components/DragAndDropInternal/DragAndDropOverlay.vue +32 -19
  39. package/app/components/ExtensionSelector.vue +34 -18
  40. package/app/components/FeedBack/ErrorBanner.vue +4 -3
  41. package/app/components/FeedBack/Snackers.vue +6 -5
  42. package/app/components/FetchingData.vue +8 -12
  43. package/app/components/FileSelector.vue +27 -17
  44. package/app/components/FileUploader.vue +51 -30
  45. package/app/components/GlassCard.vue +17 -13
  46. package/app/components/HybridRenderingView.vue +25 -12
  47. package/app/components/HybridViewerTooltip.vue +28 -26
  48. package/app/components/InfraConnected.vue +1 -1
  49. package/app/components/Launcher.vue +12 -10
  50. package/app/components/Loading/EcoMessages.vue +24 -13
  51. package/app/components/Loading/Header.vue +6 -7
  52. package/app/components/Loading/Progress.vue +6 -7
  53. package/app/components/Loading.vue +10 -14
  54. package/app/components/MissingFilesSelector.vue +35 -19
  55. package/app/components/ObjectSelector.vue +37 -21
  56. package/app/components/PackagesVersions.vue +16 -8
  57. package/app/components/Recaptcha.vue +17 -23
  58. package/app/components/RemoteRenderingView.vue +21 -15
  59. package/app/components/Ruler.vue +11 -9
  60. package/app/components/Screenshot.vue +25 -19
  61. package/app/components/SearchBar.vue +12 -6
  62. package/app/components/ShrinkFilter.vue +19 -14
  63. package/app/components/Step.vue +32 -12
  64. package/app/components/Stepper.vue +19 -7
  65. package/app/components/ToolPanel.vue +29 -13
  66. package/app/components/ViewToolbar.vue +53 -44
  67. package/app/components/Viewer/ContextMenu/CenterButton.vue +16 -9
  68. package/app/components/Viewer/ContextMenu/CircularItems.vue +13 -10
  69. package/app/components/Viewer/ContextMenu/ContextMenu.vue +40 -32
  70. package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +31 -17
  71. package/app/components/Viewer/ContextMenu/InfoCard.vue +38 -22
  72. package/app/components/Viewer/EdgedCurve/PointsOptions.vue +8 -5
  73. package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +67 -48
  74. package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +74 -50
  75. package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +69 -50
  76. package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +47 -35
  77. package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +91 -51
  78. package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +74 -49
  79. package/app/components/Viewer/Generic/Model/BlocksOptions.vue +115 -53
  80. package/app/components/Viewer/Generic/Model/CornersOptions.vue +75 -37
  81. package/app/components/Viewer/Generic/Model/EdgesOptions.vue +13 -9
  82. package/app/components/Viewer/Generic/Model/LinesOptions.vue +110 -61
  83. package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +32 -21
  84. package/app/components/Viewer/Generic/Model/ModelStyleOptions.vue +9 -5
  85. package/app/components/Viewer/Generic/Model/PointsOptions.vue +19 -13
  86. package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +119 -49
  87. package/app/components/Viewer/Grid/2D/CellsOptions.vue +8 -5
  88. package/app/components/Viewer/Grid/2D/EdgesOptions.vue +8 -5
  89. package/app/components/Viewer/Grid/2D/PointsOptions.vue +8 -5
  90. package/app/components/Viewer/Grid/3D/CellsOptions.vue +8 -5
  91. package/app/components/Viewer/Grid/3D/EdgesOptions.vue +8 -5
  92. package/app/components/Viewer/Grid/3D/FacetsOptions.vue +8 -5
  93. package/app/components/Viewer/Grid/3D/PointsOptions.vue +8 -5
  94. package/app/components/Viewer/ObjectTree/Base/CommonTreeView.vue +120 -76
  95. package/app/components/Viewer/ObjectTree/Base/Controls.vue +25 -10
  96. package/app/components/Viewer/ObjectTree/Base/ItemLabel.vue +42 -17
  97. package/app/components/Viewer/ObjectTree/Base/StickyHeader.vue +22 -9
  98. package/app/components/Viewer/ObjectTree/Base/TreeRow.vue +29 -14
  99. package/app/components/Viewer/ObjectTree/Box.vue +32 -15
  100. package/app/components/Viewer/ObjectTree/Layout.vue +55 -35
  101. package/app/components/Viewer/ObjectTree/Views/GlobalObjects.vue +63 -34
  102. package/app/components/Viewer/ObjectTree/Views/{ModelCollections.vue → ModelTree.vue} +101 -39
  103. package/app/components/Viewer/Options/AttributeColorBar.vue +14 -6
  104. package/app/components/Viewer/Options/AttributeRangeSelector.vue +8 -4
  105. package/app/components/Viewer/Options/AttributeSelector.vue +64 -33
  106. package/app/components/Viewer/Options/ColorMapList.vue +52 -24
  107. package/app/components/Viewer/Options/ColorMapPicker.vue +15 -11
  108. package/app/components/Viewer/Options/ColorPicker.vue +239 -50
  109. package/app/components/Viewer/Options/ColoringTypeSelector.vue +87 -67
  110. package/app/components/Viewer/Options/ColormapQuickPicker.vue +16 -12
  111. package/app/components/Viewer/Options/OptionsSection.vue +7 -5
  112. package/app/components/Viewer/Options/Sliders/Size.vue +3 -3
  113. package/app/components/Viewer/Options/Sliders/Slider.vue +9 -6
  114. package/app/components/Viewer/Options/Sliders/Width.vue +3 -3
  115. package/app/components/Viewer/Options/TextureItem.vue +29 -22
  116. package/app/components/Viewer/Options/TexturesSelector.vue +23 -12
  117. package/app/components/Viewer/Options/VisibilitySwitch.vue +3 -3
  118. package/app/components/Viewer/OverlappingObjectsPicker.vue +27 -12
  119. package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +38 -26
  120. package/app/components/Viewer/Solid/EdgesOptions.vue +8 -5
  121. package/app/components/Viewer/Solid/PointsOptions.vue +8 -5
  122. package/app/components/Viewer/Solid/PolygonsOptions.vue +8 -5
  123. package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +73 -48
  124. package/app/components/Viewer/Surface/EdgesOptions.vue +8 -5
  125. package/app/components/Viewer/Surface/PointsOptions.vue +8 -5
  126. package/app/components/Viewer/Surface/PolygonsOptions.vue +79 -49
  127. package/app/components/Viewer/Surface/Triangulated/TrianglesOptions.vue +8 -5
  128. package/app/components/Viewer/TetrahedralSolid/TetrahedraOptions.vue +8 -5
  129. package/app/components/Viewer/TetrahedralSolid/TrianglesOptions.vue +8 -5
  130. package/app/components/Viewer/Ui.vue +19 -14
  131. package/app/components/Wrapper.vue +16 -10
  132. package/app/components/ZScaling.vue +18 -10
  133. package/app/components/csv-preview/CsvPreviewer.vue +72 -50
  134. package/app/components/csv-preview/CsvSettings.vue +30 -50
  135. package/app/components/csv-preview/CsvTable.vue +34 -14
  136. package/app/composables/{batch_style.js → batch_style.ts} +9 -7
  137. package/app/composables/clipping_planes_widget.ts +204 -0
  138. package/app/composables/clipping_planes_widget_entries.ts +189 -0
  139. package/app/composables/copy_to_clipboard.ts +7 -0
  140. package/app/composables/global_attribute_style.ts +303 -0
  141. package/app/composables/hover_highlight.ts +127 -0
  142. package/app/composables/{model_collections.js → model_collections.ts} +28 -9
  143. package/app/composables/{model_components.js → model_components.ts} +28 -9
  144. package/app/composables/{project_manager.js → project_manager.ts} +77 -20
  145. package/app/composables/responsive_middle_truncate.ts +48 -0
  146. package/app/composables/{run_function_when_microservices_connected.js → run_function_when_microservices_connected.ts} +1 -1
  147. package/app/composables/stepper_tree.ts +79 -0
  148. package/app/composables/tree_filter.ts +194 -0
  149. package/app/composables/{tree_keyboard_nav.js → tree_keyboard_nav.ts} +62 -20
  150. package/app/composables/{tree_scroll.js → tree_scroll.ts} +61 -12
  151. package/app/composables/use_adaptive_styles.ts +186 -0
  152. package/app/composables/use_overlapping_picker.ts +263 -0
  153. package/app/composables/use_quick_colormap.ts +55 -0
  154. package/app/composables/virtual_tree.ts +271 -0
  155. package/app/composables/vtk_implicit_plane_widget.d.ts +2 -0
  156. package/app/plugins/{auto_store_register.js → auto_store_register.ts} +3 -5
  157. package/app/plugins/click_outside_ignore_snackbars.client.ts +36 -0
  158. package/app/stores/app.ts +252 -0
  159. package/app/stores/app_helpers/extension.ts +179 -0
  160. package/app/stores/{back.js → back.ts} +54 -28
  161. package/app/stores/camera_manager.ts +80 -0
  162. package/app/stores/{cloud.js → cloud.ts} +18 -13
  163. package/app/stores/data.ts +392 -0
  164. package/app/stores/data_helpers/collections.ts +138 -0
  165. package/app/stores/data_helpers/mesh.ts +169 -0
  166. package/app/stores/data_style.ts +167 -0
  167. package/app/stores/{feedback.js → feedback.ts} +19 -8
  168. package/app/stores/{hybrid_viewer.js → hybrid_viewer.ts} +49 -45
  169. package/app/stores/infra.ts +106 -0
  170. package/app/stores/{menu.js → menu.ts} +67 -36
  171. package/app/stores/treeview.ts +383 -0
  172. package/app/stores/{viewer.js → viewer.ts} +75 -42
  173. package/app/utils/attributes.ts +40 -0
  174. package/app/utils/clipping_planes.ts +222 -0
  175. package/app/utils/color_picker.js +54 -0
  176. package/app/utils/colormap.ts +102 -0
  177. package/app/utils/default_styles/{constants.js → constants.ts} +25 -12
  178. package/app/utils/default_styles/{index.js → index.ts} +4 -3
  179. package/app/utils/default_styles/meshes.ts +264 -0
  180. package/app/utils/default_styles/{models.js → models.ts} +106 -52
  181. package/app/utils/{extension.js → extension.ts} +63 -19
  182. package/app/utils/{import_workflow.js → import_workflow.ts} +39 -22
  183. package/app/utils/{log.js → log.ts} +12 -2
  184. package/app/utils/{name_cleaner.js → name_cleaner.ts} +6 -6
  185. package/app/utils/status.ts +19 -0
  186. package/app/utils/{stores.js → stores.ts} +5 -5
  187. package/app/utils/{string.js → string.ts} +6 -6
  188. package/app/utils/{treeview.js → treeview.ts} +4 -1
  189. package/internal/database/{base_database.js → base_database.ts} +7 -3
  190. package/internal/database/database.ts +102 -0
  191. package/internal/database/{extended_database.js → extended_database.ts} +5 -1
  192. package/internal/database/tables/camera_positions.ts +6 -0
  193. package/internal/database/tables/{data.js → data.ts} +3 -1
  194. package/internal/database/tables/data_style.ts +6 -0
  195. package/internal/database/tables/model_component_datastyle.ts +6 -0
  196. package/internal/database/tables/model_component_type_datastyle.ts +6 -0
  197. package/internal/database/tables/model_components.ts +6 -0
  198. package/internal/database/tables/model_components_relation.ts +6 -0
  199. package/internal/database/tables/table_definition.ts +5 -0
  200. package/internal/stores/data_style/mesh/cells/cell.ts +279 -0
  201. package/internal/stores/data_style/mesh/cells/{color.js → color.ts} +13 -7
  202. package/internal/stores/data_style/mesh/cells/common.ts +50 -0
  203. package/internal/stores/data_style/mesh/cells/index.ts +161 -0
  204. package/internal/stores/data_style/mesh/cells/{textures.js → textures.ts} +14 -8
  205. package/internal/stores/data_style/mesh/cells/vertex.ts +285 -0
  206. package/internal/stores/data_style/mesh/cells/visibility.ts +46 -0
  207. package/internal/stores/data_style/mesh/edges/{color.js → color.ts} +13 -7
  208. package/internal/stores/data_style/mesh/edges/common.ts +41 -0
  209. package/internal/stores/data_style/mesh/edges/edge.ts +279 -0
  210. package/internal/stores/data_style/mesh/edges/index.ts +155 -0
  211. package/internal/stores/data_style/mesh/edges/vertex.ts +285 -0
  212. package/internal/stores/data_style/mesh/edges/visibility.ts +45 -0
  213. package/internal/stores/data_style/mesh/edges/width.ts +42 -0
  214. package/internal/stores/data_style/mesh/{index.js → index.ts} +34 -14
  215. package/internal/stores/data_style/mesh/points/{color.js → color.ts} +13 -7
  216. package/internal/stores/data_style/mesh/points/common.ts +51 -0
  217. package/internal/stores/data_style/mesh/points/index.ts +133 -0
  218. package/internal/stores/data_style/mesh/points/size.ts +43 -0
  219. package/internal/stores/data_style/mesh/points/vertex.ts +285 -0
  220. package/internal/stores/data_style/mesh/points/visibility.ts +49 -0
  221. package/internal/stores/data_style/mesh/polygons/{color.js → color.ts} +13 -7
  222. package/internal/stores/data_style/mesh/polygons/common.ts +50 -0
  223. package/internal/stores/data_style/mesh/polygons/index.ts +167 -0
  224. package/internal/stores/data_style/mesh/polygons/polygon.ts +282 -0
  225. package/internal/stores/data_style/mesh/polygons/{textures.js → textures.ts} +14 -8
  226. package/internal/stores/data_style/mesh/polygons/vertex.ts +288 -0
  227. package/internal/stores/data_style/mesh/polygons/visibility.ts +48 -0
  228. package/internal/stores/data_style/mesh/polyhedra/{color.js → color.ts} +13 -7
  229. package/internal/stores/data_style/mesh/polyhedra/common.ts +41 -0
  230. package/internal/stores/data_style/mesh/polyhedra/index.ts +157 -0
  231. package/internal/stores/data_style/mesh/polyhedra/polyhedron.ts +294 -0
  232. package/internal/stores/data_style/mesh/polyhedra/vertex.ts +288 -0
  233. package/internal/stores/data_style/mesh/polyhedra/visibility.ts +48 -0
  234. package/internal/stores/data_style/model/blocks/{color.js → color.ts} +50 -13
  235. package/internal/stores/data_style/model/blocks/common.ts +67 -0
  236. package/internal/stores/data_style/model/blocks/{index.js → index.ts} +111 -66
  237. package/internal/stores/data_style/model/blocks/polyhedron.ts +363 -0
  238. package/internal/stores/data_style/model/blocks/vertex.ts +349 -0
  239. package/internal/stores/data_style/model/blocks/visibility.ts +37 -0
  240. package/internal/stores/data_style/model/color.ts +348 -0
  241. package/internal/stores/data_style/model/common.ts +262 -0
  242. package/internal/stores/data_style/model/corners/{color.js → color.ts} +49 -10
  243. package/internal/stores/data_style/model/corners/common.ts +71 -0
  244. package/internal/stores/data_style/model/corners/{index.js → index.ts} +86 -47
  245. package/internal/stores/data_style/model/corners/vertex.ts +315 -0
  246. package/internal/stores/data_style/model/corners/visibility.ts +39 -0
  247. package/internal/stores/data_style/model/edges/common.ts +29 -0
  248. package/internal/stores/data_style/model/edges/{index.js → index.ts} +2 -7
  249. package/internal/stores/data_style/model/edges/visibility.ts +55 -0
  250. package/internal/stores/data_style/model/{index.js → index.ts} +24 -11
  251. package/internal/stores/data_style/model/lines/{color.js → color.ts} +47 -10
  252. package/internal/stores/data_style/model/lines/common.ts +63 -0
  253. package/internal/stores/data_style/model/lines/edge.ts +343 -0
  254. package/internal/stores/data_style/model/lines/{index.js → index.ts} +108 -66
  255. package/internal/stores/data_style/model/lines/vertex.ts +344 -0
  256. package/internal/stores/data_style/model/lines/visibility.ts +37 -0
  257. package/internal/stores/data_style/model/points/common.ts +25 -0
  258. package/internal/stores/data_style/model/points/index.ts +35 -0
  259. package/internal/stores/data_style/model/points/size.ts +44 -0
  260. package/internal/stores/data_style/model/points/visibility.ts +46 -0
  261. package/internal/stores/data_style/model/selection.ts +138 -0
  262. package/internal/stores/data_style/model/surfaces/{color.js → color.ts} +47 -10
  263. package/internal/stores/data_style/model/surfaces/common.ts +69 -0
  264. package/internal/stores/data_style/model/surfaces/{index.js → index.ts} +113 -66
  265. package/internal/stores/data_style/model/surfaces/polygon.ts +347 -0
  266. package/internal/stores/data_style/model/surfaces/vertex.ts +351 -0
  267. package/internal/stores/data_style/model/surfaces/visibility.ts +37 -0
  268. package/internal/stores/data_style/model/{visibility.js → visibility.ts} +112 -32
  269. package/internal/stores/data_style/state.ts +281 -0
  270. package/internal/stores/data_style/types.ts +30 -0
  271. package/internal/stores/hybrid_viewer/brightness.ts +124 -0
  272. package/internal/stores/hybrid_viewer/camera.ts +326 -0
  273. package/internal/stores/hybrid_viewer/{camera_animation.js → camera_animation.ts} +30 -12
  274. package/internal/stores/hybrid_viewer/{constants.js → constants.ts} +2 -2
  275. package/internal/stores/hybrid_viewer/core.ts +64 -0
  276. package/internal/stores/hybrid_viewer/{filters.js → filters.ts} +10 -13
  277. package/internal/stores/hybrid_viewer/highlight.ts +183 -0
  278. package/internal/stores/hybrid_viewer/{ruler.js → ruler.ts} +50 -22
  279. package/internal/stores/hybrid_viewer/scene.ts +125 -0
  280. package/internal/stores/hybrid_viewer/viewport.ts +177 -0
  281. package/internal/stores/hybrid_viewer/vtk_types.ts +58 -0
  282. package/internal/utils/api_fetch.ts +133 -0
  283. package/internal/utils/upload_file.ts +115 -0
  284. package/internal/utils/viewer_call.ts +99 -0
  285. package/internal/utils/ws_client.ts +54 -0
  286. package/nuxt.config.ts +168 -0
  287. package/opengeodeweb_front_schemas.json +2 -2
  288. package/package.json +49 -13
  289. package/server/api/cloud/extensions/{run.post.js → run.post.ts} +16 -12
  290. package/server/api/local/app/project_folder_path.post.ts +33 -0
  291. package/server/api/local/app/run_back.post.ts +39 -0
  292. package/server/api/local/app/run_viewer.post.ts +39 -0
  293. package/server/api/local/extensions/{kill.post.js → kill.post.ts} +15 -8
  294. package/server/api/local/extensions/{run.post.js → run.post.ts} +17 -12
  295. package/server/api/local/extensions/upload.put.ts +71 -0
  296. package/server/api/microservice/app/{get_is_app_ready.get.js → get_is_app_ready.get.ts} +5 -5
  297. package/server/api/microservice/app/schemas/get_is_app_ready.json +1 -1
  298. package/server/api/microservice/app/set_app_base_url.post.ts +29 -0
  299. package/server/api/microservice/app/set_back_base_url.post.ts +26 -0
  300. package/server/api/microservice/app/set_is_app_ready.post.ts +29 -0
  301. package/server/api/microservice/app/set_viewer_base_url.post.ts +26 -0
  302. package/server/api/microservice/extensions/{download.post.js → download.post.ts} +13 -6
  303. package/server/api/serverless/run_cloud.post.ts +92 -0
  304. package/server/utils/{app_config.js → app_config.ts} +40 -18
  305. package/server/utils/{cleanup.js → cleanup.ts} +76 -29
  306. package/server/utils/{cloud.js → cloud.ts} +33 -17
  307. package/server/utils/{extension.js → extension.ts} +31 -4
  308. package/server/utils/{microservices.js → microservices.ts} +68 -27
  309. package/server/utils/{path.js → path.ts} +36 -17
  310. package/server/utils/{scripts.js → scripts.ts} +49 -33
  311. package/server/utils/{server.js → server.ts} +13 -6
  312. package/server/utils/server_config.ts +74 -0
  313. package/server/utils/stream.ts +6 -0
  314. package/server/utils/ws_client.ts +165 -0
  315. package/shared/{scripts.js → scripts.ts} +15 -10
  316. package/shared/utils/call_raw.ts +73 -0
  317. package/shared/utils/{call_schema.js → call_schema.ts} +15 -6
  318. package/shared/utils/fetch_raw.ts +125 -0
  319. package/shared/utils/{fetch_schema.js → fetch_schema.ts} +16 -7
  320. package/shared/utils/file.ts +22 -0
  321. package/shared/utils/{parse_boolean.js → parse_boolean.ts} +1 -1
  322. package/shared/utils/response_handlers/load.ts +109 -0
  323. package/shared/utils/types.ts +27 -0
  324. package/shared/utils/{validate_schema.js → validate_schema.ts} +3 -1
  325. package/.github/workflows/config.json +0 -5
  326. package/.github/workflows/deploy.yml +0 -15
  327. package/.github/workflows/manual_release.yml +0 -11
  328. package/.github/workflows/merge_request.yml +0 -9
  329. package/.github/workflows/pr_update.yml +0 -11
  330. package/.github/workflows/prepare_deploy.yml +0 -9
  331. package/.github/workflows/schedule.yml +0 -18
  332. package/.github/workflows/test.yml +0 -14
  333. package/.github/workflows/test_pr.yml +0 -12
  334. package/.oxlintrc.json +0 -150
  335. package/.releaserc +0 -11
  336. package/app/components/Viewer/ObjectTree/Views/ModelComponents.vue +0 -224
  337. package/app/composables/clipping_planes_widget.js +0 -249
  338. package/app/composables/global_attribute_style.js +0 -181
  339. package/app/composables/hover_highlight.js +0 -91
  340. package/app/composables/responsive_middle_truncate.js +0 -34
  341. package/app/composables/stepper_tree.js +0 -56
  342. package/app/composables/tree_filter.js +0 -138
  343. package/app/composables/use_adaptive_styles.js +0 -120
  344. package/app/composables/use_overlapping_picker.js +0 -169
  345. package/app/composables/use_quick_colormap.js +0 -32
  346. package/app/composables/virtual_tree.js +0 -191
  347. package/app/stores/app.js +0 -326
  348. package/app/stores/camera_manager.js +0 -57
  349. package/app/stores/data.js +0 -278
  350. package/app/stores/data_helpers/collections.js +0 -96
  351. package/app/stores/data_helpers/mesh.js +0 -122
  352. package/app/stores/data_style.js +0 -116
  353. package/app/stores/infra.js +0 -95
  354. package/app/stores/treeview.js +0 -290
  355. package/app/utils/attributes.js +0 -23
  356. package/app/utils/clipping_planes.js +0 -110
  357. package/app/utils/colormap.js +0 -64
  358. package/app/utils/default_styles/meshes.js +0 -191
  359. package/app/utils/status.js +0 -10
  360. package/commitlint.config.js +0 -20
  361. package/internal/database/database.js +0 -80
  362. package/internal/database/tables/camera_positions.js +0 -4
  363. package/internal/database/tables/data_style.js +0 -4
  364. package/internal/database/tables/model_component_datastyle.js +0 -4
  365. package/internal/database/tables/model_component_type_datastyle.js +0 -4
  366. package/internal/database/tables/model_components.js +0 -4
  367. package/internal/database/tables/model_components_relation.js +0 -4
  368. package/internal/stores/data_style/mesh/cells/cell.js +0 -196
  369. package/internal/stores/data_style/mesh/cells/common.js +0 -39
  370. package/internal/stores/data_style/mesh/cells/index.js +0 -81
  371. package/internal/stores/data_style/mesh/cells/vertex.js +0 -193
  372. package/internal/stores/data_style/mesh/cells/visibility.js +0 -35
  373. package/internal/stores/data_style/mesh/edges/common.js +0 -32
  374. package/internal/stores/data_style/mesh/edges/edge.js +0 -195
  375. package/internal/stores/data_style/mesh/edges/index.js +0 -81
  376. package/internal/stores/data_style/mesh/edges/vertex.js +0 -196
  377. package/internal/stores/data_style/mesh/edges/visibility.js +0 -34
  378. package/internal/stores/data_style/mesh/edges/width.js +0 -34
  379. package/internal/stores/data_style/mesh/points/common.js +0 -37
  380. package/internal/stores/data_style/mesh/points/index.js +0 -82
  381. package/internal/stores/data_style/mesh/points/size.js +0 -35
  382. package/internal/stores/data_style/mesh/points/vertex.js +0 -193
  383. package/internal/stores/data_style/mesh/points/visibility.js +0 -37
  384. package/internal/stores/data_style/mesh/polygons/common.js +0 -32
  385. package/internal/stores/data_style/mesh/polygons/index.js +0 -107
  386. package/internal/stores/data_style/mesh/polygons/polygon.js +0 -196
  387. package/internal/stores/data_style/mesh/polygons/vertex.js +0 -196
  388. package/internal/stores/data_style/mesh/polygons/visibility.js +0 -38
  389. package/internal/stores/data_style/mesh/polyhedra/common.js +0 -32
  390. package/internal/stores/data_style/mesh/polyhedra/index.js +0 -98
  391. package/internal/stores/data_style/mesh/polyhedra/polyhedron.js +0 -196
  392. package/internal/stores/data_style/mesh/polyhedra/vertex.js +0 -196
  393. package/internal/stores/data_style/mesh/polyhedra/visibility.js +0 -38
  394. package/internal/stores/data_style/model/blocks/common.js +0 -51
  395. package/internal/stores/data_style/model/blocks/polyhedron.js +0 -215
  396. package/internal/stores/data_style/model/blocks/vertex.js +0 -204
  397. package/internal/stores/data_style/model/blocks/visibility.js +0 -20
  398. package/internal/stores/data_style/model/color.js +0 -218
  399. package/internal/stores/data_style/model/common.js +0 -141
  400. package/internal/stores/data_style/model/corners/common.js +0 -51
  401. package/internal/stores/data_style/model/corners/vertex.js +0 -204
  402. package/internal/stores/data_style/model/corners/visibility.js +0 -20
  403. package/internal/stores/data_style/model/edges/common.js +0 -20
  404. package/internal/stores/data_style/model/edges/visibility.js +0 -38
  405. package/internal/stores/data_style/model/lines/common.js +0 -51
  406. package/internal/stores/data_style/model/lines/edge.js +0 -203
  407. package/internal/stores/data_style/model/lines/vertex.js +0 -204
  408. package/internal/stores/data_style/model/lines/visibility.js +0 -20
  409. package/internal/stores/data_style/model/points/common.js +0 -20
  410. package/internal/stores/data_style/model/points/index.js +0 -25
  411. package/internal/stores/data_style/model/points/size.js +0 -36
  412. package/internal/stores/data_style/model/points/visibility.js +0 -36
  413. package/internal/stores/data_style/model/selection.js +0 -89
  414. package/internal/stores/data_style/model/surfaces/common.js +0 -51
  415. package/internal/stores/data_style/model/surfaces/polygon.js +0 -215
  416. package/internal/stores/data_style/model/surfaces/vertex.js +0 -215
  417. package/internal/stores/data_style/model/surfaces/visibility.js +0 -20
  418. package/internal/stores/data_style/state.js +0 -197
  419. package/internal/stores/hybrid_viewer/brightness.js +0 -82
  420. package/internal/stores/hybrid_viewer/camera.js +0 -274
  421. package/internal/stores/hybrid_viewer/highlight.js +0 -170
  422. package/internal/stores/hybrid_viewer/scene.js +0 -136
  423. package/internal/stores/hybrid_viewer/viewport.js +0 -140
  424. package/internal/utils/api_fetch.js +0 -52
  425. package/internal/utils/upload_file.js +0 -57
  426. package/internal/utils/viewer_call.js +0 -49
  427. package/internal/utils/ws_client.js +0 -29
  428. package/nuxt.config.js +0 -106
  429. package/scripts/generate_geode_objects.js +0 -24
  430. package/server/api/local/app/project_folder_path.post.js +0 -29
  431. package/server/api/local/app/run_back.post.js +0 -33
  432. package/server/api/local/app/run_viewer.post.js +0 -33
  433. package/server/api/local/extensions/upload.put.js +0 -72
  434. package/server/api/microservice/app/set_app_base_url.post.js +0 -25
  435. package/server/api/microservice/app/set_back_base_url.post.js +0 -22
  436. package/server/api/microservice/app/set_is_app_ready.post.js +0 -25
  437. package/server/api/microservice/app/set_viewer_base_url.post.js +0 -22
  438. package/server/api/serverless/run_cloud.post.js +0 -44
  439. package/server/utils/server_config.js +0 -58
  440. package/server/utils/ws_client.js +0 -112
  441. package/shared/utils/call_raw.js +0 -46
  442. package/shared/utils/fetch_raw.js +0 -61
  443. package/shared/utils/file.js +0 -16
  444. package/shared/utils/response_handlers/load.js +0 -74
  445. package/tests/integration/data/uploads/test.og_brep +0 -0
  446. package/tests/integration/data/uploads/test.og_edc2d +0 -0
  447. package/tests/integration/data/uploads/test.og_edc3d +0 -0
  448. package/tests/integration/data/uploads/test.og_psf3d +0 -0
  449. package/tests/integration/data/uploads/test.og_rgd2d +0 -0
  450. package/tests/integration/data/uploads/test.og_rgd3d +0 -0
  451. package/tests/integration/data/uploads/test.vtu +0 -22
  452. package/tests/integration/setup.js +0 -92
  453. package/tests/integration/stores/data_style/mesh/cells.nuxt.test.js +0 -343
  454. package/tests/integration/stores/data_style/mesh/edges.nuxt.test.js +0 -254
  455. package/tests/integration/stores/data_style/mesh/index.nuxt.test.js +0 -62
  456. package/tests/integration/stores/data_style/mesh/points.nuxt.test.js +0 -201
  457. package/tests/integration/stores/data_style/mesh/polygons.nuxt.test.js +0 -260
  458. package/tests/integration/stores/data_style/mesh/polyhedra.nuxt.test.js +0 -267
  459. package/tests/integration/stores/data_style/model/blocks.nuxt.test.js +0 -397
  460. package/tests/integration/stores/data_style/model/corners.nuxt.test.js +0 -264
  461. package/tests/integration/stores/data_style/model/edges.nuxt.test.js +0 -71
  462. package/tests/integration/stores/data_style/model/index.nuxt.test.js +0 -92
  463. package/tests/integration/stores/data_style/model/lines.nuxt.test.js +0 -379
  464. package/tests/integration/stores/data_style/model/points.nuxt.test.js +0 -95
  465. package/tests/integration/stores/data_style/model/surfaces.nuxt.test.js +0 -574
  466. package/tests/integration/stores/viewer.nuxt.test.js +0 -69
  467. package/tests/setup_indexeddb.js +0 -4
  468. package/tests/unit/components/CrsSelector.nuxt.test.js +0 -55
  469. package/tests/unit/components/DragAndDrop.nuxt.test.js +0 -89
  470. package/tests/unit/components/ExtensionSelector.nuxt.test.js +0 -65
  471. package/tests/unit/components/FeedBack/ErrorsBanner.nuxt.test.js +0 -41
  472. package/tests/unit/components/FeedBack/Snackers.nuxt.test.js +0 -49
  473. package/tests/unit/components/FileSelector.nuxt.test.js +0 -124
  474. package/tests/unit/components/FileUploader.nuxt.test.js +0 -69
  475. package/tests/unit/components/MissingFilesSelector.nuxt.test.js +0 -77
  476. package/tests/unit/components/ObjectSelector.nuxt.test.js +0 -118
  477. package/tests/unit/components/PackagesVersions.nuxt.test.js +0 -42
  478. package/tests/unit/components/Step.nuxt.test.js +0 -51
  479. package/tests/unit/components/Stepper.nuxt.test.js +0 -41
  480. package/tests/unit/components/ToolPanel.nuxt.test.js +0 -66
  481. package/tests/unit/composables/api_fetch.nuxt.test.js +0 -75
  482. package/tests/unit/composables/project_manager.nuxt.test.js +0 -299
  483. package/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js +0 -57
  484. package/tests/unit/composables/upload_file.nuxt.test.js +0 -45
  485. package/tests/unit/composables/virtual_tree.nuxt.test.js +0 -63
  486. package/tests/unit/plugins/project_load.nuxt.test.js +0 -98
  487. package/tests/unit/stores/app.nuxt.test.js +0 -189
  488. package/tests/unit/stores/back.nuxt.test.js +0 -147
  489. package/tests/unit/stores/cloud.nuxt.test.js +0 -90
  490. package/tests/unit/stores/data.nuxt.test.js +0 -162
  491. package/tests/unit/stores/feedback.nuxt.test.js +0 -90
  492. package/tests/unit/stores/infra.nuxt.test.js +0 -313
  493. package/tests/unit/stores/treeview.nuxt.test.js +0 -63
  494. package/tests/unit/stores/viewer.nuxt.test.js +0 -161
  495. package/tests/unit/utils/validate_schema.nuxt.test.js +0 -38
  496. package/tests/utils.js +0 -20
  497. package/tests/vitest.config.js +0 -67
  498. /package/server/api/local/app/{kill.post.js → kill.post.ts} +0 -0
  499. /package/shared/{app_mode.js → app_mode.ts} +0 -0
@@ -1,10 +1,13 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
+ import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
2
3
  import TriangulatedSurfaceEdgesPoints from "@ogw_front/assets/viewer_svgs/surface_points.svg";
3
- import ViewerGenericMeshPointsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PointsOptions";
4
+ import ViewerGenericMeshPointsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PointsOptions.vue";
4
5
 
5
- const { itemProps } = defineProps({
6
- itemProps: { type: Object, required: true },
7
- });
6
+ interface Props {
7
+ itemProps: ItemProps & { index?: number };
8
+ }
9
+
10
+ const { itemProps } = defineProps<Props>();
8
11
  </script>
9
12
 
10
13
  <template>
@@ -1,9 +1,11 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
+ import ViewerContextMenuItem, {
3
+ type ItemProps,
4
+ } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
2
5
  import PolygonalSurfacePolygons from "@ogw_front/assets/viewer_svgs/surface_triangles.svg";
3
- import ViewerContextMenuItem from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem";
4
- import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector";
5
- import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch";
6
-
6
+ import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
7
+ import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
8
+ import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
7
9
  import { useBatchStyle } from "@ogw_front/composables/batch_style";
8
10
  import { useDataStyleStore } from "@ogw_front/stores/data_style";
9
11
  import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
@@ -12,134 +14,161 @@ const dataStyleStore = useDataStyleStore();
12
14
  const hybridViewerStore = useHybridViewerStore();
13
15
  const { applyBatchStyle } = useBatchStyle();
14
16
 
15
- const { itemProps } = defineProps({
16
- itemProps: { type: Object, required: true },
17
- tooltip: { type: String, required: false, default: "Polygons options" },
18
- });
17
+ interface Texture {
18
+ id: string;
19
+ texture_name: string;
20
+ }
21
+
22
+ interface Props {
23
+ itemProps: ItemProps & { index: number };
24
+ tooltip?: string;
25
+ }
26
+
27
+ const { itemProps, tooltip = "Polygons options" } = defineProps<Props>();
19
28
 
20
29
  const id = toRef(() => itemProps.id);
21
30
 
22
- const visibility = computed({
31
+ const visibility = computed<boolean>({
23
32
  get: () => dataStyleStore.meshPolygonsVisibility(id.value),
24
33
  set: async (newValue) => {
25
- await applyBatchStyle(id.value, (targetId) =>
34
+ await applyBatchStyle(id.value, (targetId: string) =>
26
35
  dataStyleStore.setMeshPolygonsVisibility(targetId, newValue),
27
36
  );
28
37
  hybridViewerStore.remoteRender();
29
38
  },
30
39
  });
31
- const coloring_style_key = computed({
40
+ const coloring_style_key = computed<string>({
32
41
  get: () => dataStyleStore.meshPolygonsActiveColoring(id.value),
33
42
  set: async (newValue) => {
34
- await applyBatchStyle(id.value, (targetId) =>
43
+ await applyBatchStyle(id.value, (targetId: string) =>
35
44
  dataStyleStore.setMeshPolygonsActiveColoring(targetId, newValue),
36
45
  );
37
46
  hybridViewerStore.remoteRender();
38
47
  },
39
48
  });
40
- const color = computed({
41
- get: () => dataStyleStore.meshPolygonsColor(id.value),
49
+ const color = computed<RGBAColor | undefined>({
50
+ get: () => dataStyleStore.meshPolygonsColor(id.value) as RGBAColor | undefined,
42
51
  set: async (newValue) => {
43
- await applyBatchStyle(id.value, (targetId) =>
52
+ await applyBatchStyle(id.value, (targetId: string) =>
44
53
  dataStyleStore.setMeshPolygonsColor(targetId, newValue),
45
54
  );
46
55
  hybridViewerStore.remoteRender();
47
56
  },
48
57
  });
49
- const textures = computed({
50
- get: () => dataStyleStore.meshPolygonsTextures(id.value),
58
+ const textures = computed<Texture[] | undefined>({
59
+ get: () => dataStyleStore.meshPolygonsTextures(id.value) as Texture[] | undefined,
51
60
  set: async (newValue) => {
52
- await applyBatchStyle(id.value, (targetId) =>
61
+ await applyBatchStyle(id.value, (targetId: string) =>
53
62
  dataStyleStore.setMeshPolygonsTextures(targetId, newValue),
54
63
  );
55
64
  hybridViewerStore.remoteRender();
56
65
  },
57
66
  });
58
- const vertex_attribute_name = computed({
67
+ const vertex_attribute_name = computed<string | undefined>({
59
68
  get: () => dataStyleStore.meshPolygonsVertexAttributeName(id.value),
60
69
  set: async (newValue) => {
61
- await applyBatchStyle(id.value, (targetId) =>
62
- dataStyleStore.setMeshPolygonsVertexAttributeName(targetId, newValue),
70
+ if (newValue === undefined) {
71
+ return;
72
+ }
73
+ await applyBatchStyle(id.value, (targetId: string) =>
74
+ Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeName(targetId, newValue)),
63
75
  );
64
76
  hybridViewerStore.remoteRender();
65
77
  },
66
78
  });
67
- const vertex_attribute_item = computed({
79
+ const vertex_attribute_item = computed<string | undefined>({
68
80
  get: () => dataStyleStore.meshPolygonsVertexAttributeItem(id.value),
69
81
  set: async (newValue) => {
70
- await applyBatchStyle(id.value, (targetId) =>
71
- dataStyleStore.setMeshPolygonsVertexAttributeItem(targetId, newValue),
82
+ await applyBatchStyle(id.value, (targetId: string) =>
83
+ Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeItem(targetId, newValue)),
72
84
  );
73
85
  hybridViewerStore.remoteRender();
74
86
  },
75
87
  });
76
- const vertex_attribute_range = computed({
88
+ const vertex_attribute_range = computed<[number, number] | undefined>({
77
89
  get: () => dataStyleStore.meshPolygonsVertexAttributeRange(id.value),
78
90
  set: async (newValue) => {
79
- await applyBatchStyle(id.value, (targetId) =>
80
- dataStyleStore.setMeshPolygonsVertexAttributeRange(targetId, newValue[0], newValue[1]),
91
+ const [minimum, maximum] = newValue;
92
+ if (minimum === undefined || maximum === undefined) {
93
+ return;
94
+ }
95
+ await applyBatchStyle(id.value, (targetId: string) =>
96
+ Promise.resolve(
97
+ dataStyleStore.setMeshPolygonsVertexAttributeRange(targetId, minimum, maximum),
98
+ ),
81
99
  );
82
100
  hybridViewerStore.remoteRender();
83
101
  },
84
102
  });
85
- const vertex_attribute_color_map = computed({
103
+ const vertex_attribute_color_map = computed<Map<string, RGBAColor> | undefined>({
86
104
  get: () => dataStyleStore.meshPolygonsVertexAttributeColorMap(id.value),
87
105
  set: async (newValue) => {
88
- await applyBatchStyle(id.value, (targetId) =>
89
- dataStyleStore.setMeshPolygonsVertexAttributeColorMap(targetId, newValue),
106
+ await applyBatchStyle(id.value, (targetId: string) =>
107
+ Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeColorMap(targetId, newValue)),
90
108
  );
91
109
  hybridViewerStore.remoteRender();
92
110
  },
93
111
  });
94
- const vertex_attribute_no_data_color = computed({
95
- get: () => dataStyleStore.meshPolygonsVertexAttributeNoDataColor(id.value),
112
+ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
113
+ get: () =>
114
+ dataStyleStore.meshPolygonsVertexAttributeNoDataColor(id.value) as RGBAColor | undefined,
96
115
  set: async (newValue) => {
97
- await applyBatchStyle(id.value, (targetId) =>
116
+ await applyBatchStyle(id.value, (targetId: string) =>
98
117
  dataStyleStore.setMeshPolygonsVertexAttributeNoDataColor(targetId, newValue),
99
118
  );
100
119
  hybridViewerStore.remoteRender();
101
120
  },
102
121
  });
103
- const polygon_attribute_name = computed({
122
+ const polygon_attribute_name = computed<string | undefined>({
104
123
  get: () => dataStyleStore.meshPolygonsPolygonAttributeName(id.value),
105
124
  set: async (newValue) => {
106
- await applyBatchStyle(id.value, (targetId) =>
107
- dataStyleStore.setMeshPolygonsPolygonAttributeName(targetId, newValue),
125
+ if (newValue === undefined) {
126
+ return;
127
+ }
128
+ await applyBatchStyle(id.value, (targetId: string) =>
129
+ Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeName(targetId, newValue)),
108
130
  );
109
131
  hybridViewerStore.remoteRender();
110
132
  },
111
133
  });
112
- const polygon_attribute_item = computed({
134
+ const polygon_attribute_item = computed<string | undefined>({
113
135
  get: () => dataStyleStore.meshPolygonsPolygonAttributeItem(id.value),
114
136
  set: async (newValue) => {
115
- await applyBatchStyle(id.value, (targetId) =>
116
- dataStyleStore.setMeshPolygonsPolygonAttributeItem(targetId, newValue),
137
+ await applyBatchStyle(id.value, (targetId: string) =>
138
+ Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeItem(targetId, newValue)),
117
139
  );
118
140
  hybridViewerStore.remoteRender();
119
141
  },
120
142
  });
121
- const polygon_attribute_range = computed({
143
+ const polygon_attribute_range = computed<[number, number] | undefined>({
122
144
  get: () => dataStyleStore.meshPolygonsPolygonAttributeRange(id.value),
123
145
  set: async (newValue) => {
124
- await applyBatchStyle(id.value, (targetId) =>
125
- dataStyleStore.setMeshPolygonsPolygonAttributeRange(targetId, newValue[0], newValue[1]),
146
+ const [minimum, maximum] = newValue;
147
+ if (minimum === undefined || maximum === undefined) {
148
+ return;
149
+ }
150
+ await applyBatchStyle(id.value, (targetId: string) =>
151
+ Promise.resolve(
152
+ dataStyleStore.setMeshPolygonsPolygonAttributeRange(targetId, minimum, maximum),
153
+ ),
126
154
  );
127
155
  hybridViewerStore.remoteRender();
128
156
  },
129
157
  });
130
- const polygon_attribute_color_map = computed({
158
+ const polygon_attribute_color_map = computed<Map<string, RGBAColor> | undefined>({
131
159
  get: () => dataStyleStore.meshPolygonsPolygonAttributeColorMap(id.value),
132
160
  set: async (newValue) => {
133
- await applyBatchStyle(id.value, (targetId) =>
134
- dataStyleStore.setMeshPolygonsPolygonAttributeColorMap(targetId, newValue),
161
+ await applyBatchStyle(id.value, (targetId: string) =>
162
+ Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeColorMap(targetId, newValue)),
135
163
  );
136
164
  hybridViewerStore.remoteRender();
137
165
  },
138
166
  });
139
- const polygon_attribute_no_data_color = computed({
140
- get: () => dataStyleStore.meshPolygonsPolygonAttributeNoDataColor(id.value),
167
+ const polygon_attribute_no_data_color = computed<RGBAColor | undefined>({
168
+ get: () =>
169
+ dataStyleStore.meshPolygonsPolygonAttributeNoDataColor(id.value) as RGBAColor | undefined,
141
170
  set: async (newValue) => {
142
- await applyBatchStyle(id.value, (targetId) =>
171
+ await applyBatchStyle(id.value, (targetId: string) =>
143
172
  dataStyleStore.setMeshPolygonsPolygonAttributeNoDataColor(targetId, newValue),
144
173
  );
145
174
  hybridViewerStore.remoteRender();
@@ -150,6 +179,7 @@ const polygon_attribute_no_data_color = computed({
150
179
  <template>
151
180
  <ViewerContextMenuItem
152
181
  data-testid="meshPolygonsMenu"
182
+ :index="itemProps.index"
153
183
  :itemProps="itemProps"
154
184
  :tooltip="tooltip"
155
185
  :btnImage="PolygonalSurfacePolygons"
@@ -1,9 +1,12 @@
1
- <script setup>
2
- import ViewerSpecificPolygonsOptions from "@ogw_front/components/Viewer/Surface/PolygonsOptions";
1
+ <script setup lang="ts">
2
+ import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
3
+ import ViewerSpecificPolygonsOptions from "@ogw_front/components/Viewer/Surface/PolygonsOptions.vue";
3
4
 
4
- const { itemProps } = defineProps({
5
- itemProps: { type: Object, required: true },
6
- });
5
+ interface Props {
6
+ itemProps: ItemProps & { index: number };
7
+ }
8
+
9
+ const { itemProps } = defineProps<Props>();
7
10
  </script>
8
11
 
9
12
  <template>
@@ -1,10 +1,13 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
+ import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
2
3
  import TetrahedralSolidTetrahedra from "@ogw_front/assets/viewer_svgs/solid_polyhedra.svg";
3
- import ViewerGenericMeshPolyhedraOptions from "@ogw_front/components/Viewer/Generic/Mesh/PolyhedraOptions";
4
+ import ViewerGenericMeshPolyhedraOptions from "@ogw_front/components/Viewer/Generic/Mesh/PolyhedraOptions.vue";
4
5
 
5
- const { itemProps } = defineProps({
6
- itemProps: { type: Object, required: true },
7
- });
6
+ interface Props {
7
+ itemProps: ItemProps & { index?: number };
8
+ }
9
+
10
+ const { itemProps } = defineProps<Props>();
8
11
  </script>
9
12
 
10
13
  <template>
@@ -1,10 +1,13 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
+ import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
2
3
  import TetrahedralSolidTriangles from "@ogw_front/assets/viewer_svgs/solid_facets.svg";
3
- import ViewerGenericMeshPolygonsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PolygonsOptions";
4
+ import ViewerGenericMeshPolygonsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PolygonsOptions.vue";
4
5
 
5
- const { itemProps } = defineProps({
6
- itemProps: { type: Object, required: true },
7
- });
6
+ interface Props {
7
+ itemProps: ItemProps & { index?: number };
8
+ }
9
+
10
+ const { itemProps } = defineProps<Props>();
8
11
  </script>
9
12
 
10
13
  <template>
@@ -1,25 +1,29 @@
1
- <script setup>
2
- import OverlappingObjectsPicker from "@ogw_front/components/Viewer/OverlappingObjectsPicker";
3
- import ViewerContextMenu from "@ogw_front/components/Viewer/ContextMenu/ContextMenu";
4
- import ViewerObjectTreeLayout from "@ogw_front/components/Viewer/ObjectTree/Layout";
1
+ <script setup lang="ts">
2
+ import OverlappingObjectsPicker from "@ogw_front/components/Viewer/OverlappingObjectsPicker.vue";
3
+ import ViewerContextMenu from "@ogw_front/components/Viewer/ContextMenu/ContextMenu.vue";
4
+ import ViewerObjectTreeLayout from "@ogw_front/components/Viewer/ObjectTree/Layout.vue";
5
5
  import { getCurrentInstance } from "vue";
6
6
  import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
7
7
  import { useMenuStore } from "@ogw_front/stores/menu";
8
8
  import { useOverlappingPicker } from "@ogw_front/composables/use_overlapping_picker";
9
9
  import { useViewerStore } from "@ogw_front/stores/viewer";
10
10
 
11
- const { displayMenu, containerWidth, containerHeight } = defineProps({
12
- displayMenu: { type: Boolean, required: true },
13
- containerWidth: { type: Number, required: true },
14
- containerHeight: { type: Number, required: true },
15
- });
11
+ interface Props {
12
+ displayMenu: boolean;
13
+ containerWidth: number;
14
+ containerHeight: number;
15
+ }
16
+
17
+ const { displayMenu, containerWidth, containerHeight } = defineProps<Props>();
16
18
 
17
- const emit = defineEmits(["show-menu"]);
19
+ const emit = defineEmits<{
20
+ "show-menu": [args: unknown];
21
+ }>();
18
22
  const menuStore = useMenuStore();
19
23
  const viewerStore = useViewerStore();
20
24
  const hybridViewerStore = useHybridViewerStore();
21
25
 
22
- function stopHoverHighlight() {
26
+ function stopHoverHighlight(): void {
23
27
  hybridViewerStore.is_hover_highlight = false;
24
28
  hybridViewerStore.clearHoverHighlight();
25
29
  }
@@ -53,7 +57,7 @@ const {
53
57
  get_viewer_id: trigger_picker,
54
58
  } = useOverlappingPicker();
55
59
 
56
- function get_viewer_id(x, y) {
60
+ function get_viewer_id(x: number, y: number): string {
57
61
  const instance = getCurrentInstance();
58
62
  const containerRect = instance?.proxy?.$el
59
63
  ?.closest?.('[data-testid="hybridViewer"]')
@@ -82,7 +86,7 @@ defineExpose({ get_viewer_id });
82
86
  />
83
87
  <ViewerContextMenu
84
88
  v-if="displayMenu"
85
- :id="menuStore.current_id"
89
+ :id="menuStore.current_id ?? ''"
86
90
  :x="menuStore.menuX"
87
91
  :y="menuStore.menuY"
88
92
  :container-width="containerWidth"
@@ -160,7 +164,8 @@ defineExpose({ get_viewer_id });
160
164
  prepend-icon="mdi-ruler"
161
165
  @click="hybridViewerStore.clearRuler()"
162
166
  >
163
- Ruler &mdash; click to set point {{ hybridViewerStore.ruler_awaiting_point }}
167
+ Ruler &mdash; click to set point
168
+ {{ hybridViewerStore.ruler_awaiting_point }}
164
169
  &middot; Esc to stop
165
170
  <v-divider vertical class="mx-2 my-1" opacity="0.3" />
166
171
  <v-icon icon="mdi-close" size="small" />
@@ -1,16 +1,22 @@
1
- <script setup>
2
- import Launcher from "@ogw_front/components/Launcher";
3
- import PackagesVersions from "@ogw_front/components/PackagesVersions";
4
- import Stepper from "@ogw_front/components/Stepper";
5
-
1
+ <script setup lang="ts">
2
+ import type { JsonRpcSchema } from "@ogw_shared/utils/types.js";
3
+ import Launcher from "@ogw_front/components/Launcher.vue";
4
+ import PackagesVersions from "@ogw_front/components/PackagesVersions.vue";
5
+ import Stepper from "@ogw_front/components/Stepper.vue";
6
6
  import { useInfraStore } from "@ogw_front/stores/infra";
7
+ import { useStepperTree } from "@ogw_front/composables/stepper_tree";
7
8
 
8
9
  const infraStore = useInfraStore();
9
10
 
10
- const { versionsSchema, appName } = defineProps({
11
- versionsSchema: { type: Object, required: true },
12
- appName: { type: String, required: true },
13
- });
11
+ interface Props {
12
+ versionsSchema: JsonRpcSchema;
13
+ appName: string;
14
+ }
15
+
16
+ const { versionsSchema, appName } = defineProps<Props>();
17
+
18
+ // Pre-existing gap (not introduced by this typing pass): this component never received an actual list of import steps, so `<Stepper>` was being rendered without its required `stepperTree` prop and would have thrown at runtime. Instantiating an (empty) stepper tree here keeps the component from crashing without inventing step content it isn't given.
19
+ const stepperTree = useStepperTree([]);
14
20
  </script>
15
21
 
16
22
  <template>
@@ -23,7 +29,7 @@ const { versionsSchema, appName } = defineProps({
23
29
  </template>
24
30
  <template v-else>
25
31
  <v-col>
26
- <Stepper />
32
+ <Stepper :stepper-tree="stepperTree" />
27
33
  </v-col>
28
34
  <v-col>
29
35
  <PackagesVersions :schema="versionsSchema" />
@@ -1,17 +1,25 @@
1
- <script setup>
2
- import ToolPanel from "@ogw_front/components/ToolPanel";
1
+ <script setup lang="ts">
2
+ import ToolPanel from "@ogw_front/components/ToolPanel.vue";
3
3
 
4
- const zScale = defineModel({ type: Number, default: 1 });
5
- const show = defineModel("show", { type: Boolean, default: false });
4
+ const zScale = defineModel<number>({ default: 1 });
5
+ const show = defineModel<boolean>("show", { default: false });
6
6
 
7
- const { width, escapeFunction } = defineProps({
8
- width: { type: Number, default: 260 },
9
- escapeFunction: { type: Function, default: undefined },
10
- });
7
+ const DEFAULT_PANEL_WIDTH = 260;
11
8
 
12
- const emit = defineEmits(["apply"]);
9
+ interface Props {
10
+ width?: number;
11
+ escapeFunction?: () => void;
12
+ }
13
+
14
+ const { width = DEFAULT_PANEL_WIDTH, escapeFunction = undefined } = defineProps<Props>();
15
+
16
+ interface Emits {
17
+ apply: [];
18
+ }
19
+
20
+ const emit = defineEmits<Emits>();
13
21
 
14
- function apply() {
22
+ function apply(): void {
15
23
  emit("apply");
16
24
  show.value = false;
17
25
  }
@@ -1,13 +1,31 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
2
  import { useToggle } from "@vueuse/core";
3
3
 
4
4
  import CsvSettings from "./CsvSettings.vue";
5
5
  import CsvTable from "./CsvTable.vue";
6
6
 
7
- const { file, modelValue } = defineProps({
8
- file: { type: Object, required: true },
9
- modelValue: { type: Boolean, default: false },
10
- });
7
+ interface CsvHeader {
8
+ title: string;
9
+ key: string;
10
+ align: "start" | "end" | "center";
11
+ sortable: boolean;
12
+ }
13
+ type CsvRow = Record<string, string>;
14
+ interface CsvParseResult {
15
+ firstRow: number;
16
+ headerRow: number;
17
+ separator: string;
18
+ xColumn: number;
19
+ yColumn: number;
20
+ zColumn: number;
21
+ }
22
+
23
+ interface Props {
24
+ file: File;
25
+ modelValue?: boolean;
26
+ }
27
+
28
+ const { file, modelValue = false } = defineProps<Props>();
11
29
 
12
30
  const MAX_CONTENT_SLICE = 1000;
13
31
  const MAX_LINES_FOR_DETECTION = 5;
@@ -15,23 +33,28 @@ const MIN_AVG_COUNT = 1.5;
15
33
  const MAX_VARIANCE = 0.5;
16
34
  const PREVIEW_ROWS_LIMIT = 101;
17
35
 
18
- const emit = defineEmits(["update:modelValue", "confirm"]);
36
+ interface Emits {
37
+ "update:modelValue": [value: boolean];
38
+ confirm: [result: CsvParseResult];
39
+ }
40
+
41
+ const emit = defineEmits<Emits>();
19
42
 
20
- const separator = ref(",");
21
- const headerRow = ref(0);
22
- const firstRow = ref(1);
43
+ const separator = ref<string>(",");
44
+ const headerRow = ref<number>(0);
45
+ const firstRow = ref<number>(1);
23
46
 
24
- const xColumn = ref(undefined);
25
- const yColumn = ref(undefined);
26
- const zColumn = ref(undefined);
47
+ const xColumn = ref<string | undefined>(undefined);
48
+ const yColumn = ref<string | undefined>(undefined);
49
+ const zColumn = ref<string | undefined>(undefined);
27
50
 
28
- const rawContent = ref("");
29
- const previewRows = ref([]);
30
- const previewHeaders = ref([]);
31
- const loading = ref(false);
51
+ const rawContent = ref<string>("");
52
+ const previewRows = ref<CsvRow[]>([]);
53
+ const previewHeaders = ref<CsvHeader[]>([]);
54
+ const loading = ref<boolean>(false);
32
55
  const toggleLoading = useToggle(loading);
33
56
 
34
- function autoDetectSeparator(content) {
57
+ function autoDetectSeparator(content: string): string {
35
58
  const lines = content
36
59
  .slice(0, MAX_CONTENT_SLICE)
37
60
  .split(/\r?\n/u)
@@ -54,57 +77,55 @@ function autoDetectSeparator(content) {
54
77
  return best;
55
78
  }
56
79
 
57
- function parseContent() {
58
- if (!rawContent.value) {
59
- return;
80
+ function splitLine(line: string): string[] {
81
+ if (!separator.value) {
82
+ return [line];
60
83
  }
61
-
62
- const allLines = rawContent.value.split(/\r?\n/u).filter((line) => line.trim() !== "");
63
-
64
- function splitLine(line) {
65
- if (!separator.value) {
66
- 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;
67
95
  }
68
- const result = [];
69
- let current = "";
70
- let inQuotes = false;
71
- for (let index = 0; index < line.length; index += 1) {
72
- const char = line[index];
73
- if (char === '"') {
74
- inQuotes = !inQuotes;
75
- } else if (char === separator.value && !inQuotes) {
76
- result.push(current.trim());
77
- current = "";
78
- } else {
79
- current += char;
80
- }
81
- }
82
- result.push(current.trim());
83
- return result;
96
+ }
97
+ result.push(current.trim());
98
+ return result;
99
+ }
100
+
101
+ function parseContent(): string[] {
102
+ if (!rawContent.value) {
103
+ return [];
84
104
  }
85
105
 
106
+ const allLines = rawContent.value.split(/\r?\n/u).filter((line) => line.trim() !== "");
86
107
  const headerLine = allLines[headerRow.value];
87
108
  const rawHeaders = headerLine ? splitLine(headerLine) : [];
88
109
 
89
110
  previewHeaders.value = rawHeaders.map((header, index) => ({
90
111
  title: header || `Column ${index + 1}`,
91
112
  key: `col${index}`,
92
- align: "start",
113
+ align: "start" as const,
93
114
  sortable: true,
94
115
  }));
95
116
 
96
117
  const dataLines = allLines.slice(firstRow.value, firstRow.value + PREVIEW_ROWS_LIMIT);
97
118
  previewRows.value = dataLines.map((line) => {
98
119
  const row = splitLine(line);
99
- const obj = {};
120
+ const obj: CsvRow = {};
100
121
  for (let index = 0; index < row.length; index += 1) {
101
- obj[`col${index}`] = row[index];
122
+ obj[`col${index}`] = row[index] ?? "";
102
123
  }
103
124
  return obj;
104
125
  });
105
126
  }
106
127
 
107
- function readAndParse() {
128
+ function readAndParse(): void {
108
129
  if (!file) {
109
130
  return;
110
131
  }
@@ -112,7 +133,7 @@ function readAndParse() {
112
133
 
113
134
  const reader = new FileReader();
114
135
  reader.addEventListener("load", (event) => {
115
- rawContent.value = event.target.result;
136
+ rawContent.value = String((event.target as FileReader | null)?.result ?? "");
116
137
  if (!separator.value || separator.value === ",") {
117
138
  separator.value = autoDetectSeparator(rawContent.value);
118
139
  }
@@ -124,7 +145,8 @@ function readAndParse() {
124
145
  });
125
146
  reader.readAsText(file, "utf8");
126
147
  }
127
- const computedResult = computed(() => {
148
+
149
+ const computedResult = computed<CsvParseResult>(() => {
128
150
  const xIndex = previewHeaders.value.findIndex((header) => header.key === xColumn.value);
129
151
  const yIndex = previewHeaders.value.findIndex((header) => header.key === yColumn.value);
130
152
  const zIndex = previewHeaders.value.findIndex((header) => header.key === zColumn.value);
@@ -139,7 +161,7 @@ const computedResult = computed(() => {
139
161
  };
140
162
  });
141
163
 
142
- const isFormValid = computed(
164
+ const isFormValid = computed<boolean>(
143
165
  () =>
144
166
  separator.value !== "" &&
145
167
  separator.value !== undefined &&
@@ -176,7 +198,7 @@ watch(
176
198
  },
177
199
  );
178
200
 
179
- function onConfirm() {
201
+ function onConfirm(): void {
180
202
  emit("confirm", computedResult.value);
181
203
  emit("update:modelValue", false);
182
204
  }