@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,22 +1,27 @@
1
- <script setup>
2
- import FileUploader from "@ogw_front/components/FileUploader";
1
+ <script setup lang="ts">
2
+ import FileUploader from "@ogw_front/components/FileUploader.vue";
3
3
  import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json";
4
4
  import { useBackStore } from "@ogw_front/stores/back";
5
5
 
6
- const emit = defineEmits(["update_value"]);
6
+ // Mirrors FileUploader's own (unexported) UploadFile type.
7
+ type UploadFile = File & { isConfigured?: boolean; displayName?: string };
7
8
 
8
- const {
9
- id,
10
- textureId: propTextureId,
11
- textureName: propTextureName,
12
- } = defineProps({
13
- id: { type: String, required: true },
14
- textureId: { type: String, required: true },
15
- textureName: { type: String, required: true },
16
- });
9
+ interface Emits {
10
+ update_value: [payload: { key: "texture_name" | "id"; value: string }];
11
+ }
12
+
13
+ const emit = defineEmits<Emits>();
14
+
15
+ interface Props {
16
+ id: string;
17
+ textureId: string;
18
+ textureName: string;
19
+ }
20
+
21
+ const { id, textureId: propTextureId, textureName: propTextureName } = defineProps<Props>();
17
22
 
18
- const textureName = ref(propTextureName);
19
- const textureId = ref(propTextureId);
23
+ const textureName = ref<string>(propTextureName);
24
+ const textureId = ref<string>(propTextureId);
20
25
 
21
26
  watch(
22
27
  () => propTextureName,
@@ -32,17 +37,19 @@ watch(
32
37
  },
33
38
  );
34
39
 
35
- const textureCoordinates = ref([]);
40
+ const textureCoordinates = ref<string[]>([]);
36
41
  const backStore = useBackStore();
37
42
 
38
- function getTextureCoordinates() {
43
+ function getTextureCoordinates(): void {
39
44
  const schema = back_schemas.opengeodeweb_back.texture_coordinates;
40
45
  const params = { id };
41
46
  backStore.request(
42
47
  { schema, params },
43
48
  {
44
- response_function: (response) => {
45
- textureCoordinates.value = response.texture_coordinates;
49
+ response_function: (response: unknown) => {
50
+ textureCoordinates.value = (
51
+ response as { texture_coordinates: string[] }
52
+ ).texture_coordinates;
46
53
  },
47
54
  },
48
55
  );
@@ -52,8 +59,8 @@ onMounted(() => {
52
59
  getTextureCoordinates();
53
60
  });
54
61
 
55
- async function files_uploaded_event(value) {
56
- if (value.length > 0) {
62
+ async function files_uploaded_event(value: UploadFile[]): Promise<void> {
63
+ if (value.length > 0 && value[0]) {
57
64
  const schema = back_schemas.opengeodeweb_back.save_viewable_file;
58
65
  const params = {
59
66
  geode_object_type: "RasterImage2D",
@@ -62,8 +69,8 @@ async function files_uploaded_event(value) {
62
69
  await backStore.request(
63
70
  { schema, params },
64
71
  {
65
- response_function: (response) => {
66
- textureId.value = response.id;
72
+ response_function: (response: unknown) => {
73
+ textureId.value = (response as { id: string }).id;
67
74
  },
68
75
  },
69
76
  );
@@ -1,13 +1,20 @@
1
- <script setup>
2
- import ViewerOptionsTextureItem from "@ogw_front/components/Viewer/Options/TextureItem";
1
+ <script setup lang="ts">
2
+ import ViewerOptionsTextureItem from "@ogw_front/components/Viewer/Options/TextureItem.vue";
3
3
 
4
- const textures = defineModel({ type: Array });
4
+ interface Texture {
5
+ id: string;
6
+ texture_name: string;
7
+ }
5
8
 
6
- const { id } = defineProps({
7
- id: { type: String, required: true },
8
- });
9
+ const textures = defineModel<Texture[]>();
10
+
11
+ interface Props {
12
+ id: string;
13
+ }
14
+
15
+ const { id } = defineProps<Props>();
9
16
 
10
- const internal_textures = ref([]);
17
+ const internal_textures = ref<Texture[]>([]);
11
18
 
12
19
  onMounted(() => {
13
20
  if (textures.value === null || textures.value === undefined || textures.value.length === 0) {
@@ -17,10 +24,14 @@ onMounted(() => {
17
24
  }
18
25
  });
19
26
 
20
- function update_value_event($event, index) {
21
- internal_textures.value[index][$event.key] = $event.value;
27
+ function update_value_event($event: { key: keyof Texture; value: string }, index: number): void {
28
+ const texture = internal_textures.value[index];
29
+ if (!texture) {
30
+ return;
31
+ }
32
+ texture[$event.key] = $event.value;
22
33
  const filtered = internal_textures.value.filter(
23
- (texture) => texture.texture_name !== "" && texture.id !== "",
34
+ (item) => item.texture_name !== "" && item.id !== "",
24
35
  );
25
36
  if (filtered.length > 0) {
26
37
  textures.value = filtered;
@@ -41,8 +52,8 @@ function update_value_event($event, index) {
41
52
  </v-col>
42
53
  <ViewerOptionsTextureItem
43
54
  :id="id"
44
- :texture_name="internal_textures[index].texture_name"
45
- :texture_id="internal_textures[index].id"
55
+ :texture-name="texture.texture_name"
56
+ :texture-id="texture.id"
46
57
  @update_value="update_value_event($event, index)"
47
58
  />
48
59
  </v-row>
@@ -1,7 +1,7 @@
1
- <script setup>
2
- import BasicSwitch from "@ogw_front/components/Basic/Switch";
1
+ <script setup lang="ts">
2
+ import BasicSwitch from "@ogw_front/components/Basic/Switch.vue";
3
3
 
4
- const visibility = defineModel({ type: Boolean });
4
+ const visibility = defineModel<boolean>();
5
5
  </script>
6
6
 
7
7
  <template>
@@ -1,21 +1,36 @@
1
- <script setup>
2
- import GlassCard from "@ogw_front/components/GlassCard";
1
+ <script setup lang="ts">
2
+ import GlassCard from "@ogw_front/components/GlassCard.vue";
3
3
  import { formatListId } from "@ogw_front/utils/name_cleaner";
4
4
  import { geode_objects } from "@ogw_front/assets/geode_objects";
5
5
 
6
- const { displayIntermediate, intermediateItems, menuStyle } = defineProps({
7
- displayIntermediate: { type: Boolean, required: true },
8
- intermediateItems: { type: Array, required: true },
9
- menuStyle: { type: Object, required: true },
10
- });
6
+ interface IntermediateItem {
7
+ id: string;
8
+ viewer_id: number | undefined;
9
+ name: string;
10
+ viewer_type: string | undefined;
11
+ geode_object_type: string | undefined;
12
+ }
13
+
14
+ interface Props {
15
+ displayIntermediate: boolean;
16
+ intermediateItems: IntermediateItem[];
17
+ menuStyle: Record<string, unknown>;
18
+ }
19
+
20
+ const { displayIntermediate, intermediateItems, menuStyle } = defineProps<Props>();
21
+
22
+ interface Emits {
23
+ select: [item: IntermediateItem];
24
+ "update:displayIntermediate": [val: boolean];
25
+ }
11
26
 
12
- const emit = defineEmits(["select", "update:displayIntermediate"]);
27
+ const emit = defineEmits<Emits>();
13
28
 
14
- function selectItem(item) {
29
+ function selectItem(item: IntermediateItem): void {
15
30
  emit("select", item);
16
31
  }
17
32
 
18
- function handleUpdate(val) {
33
+ function handleUpdate(val: boolean): void {
19
34
  emit("update:displayIntermediate", val);
20
35
  }
21
36
  </script>
@@ -55,8 +70,8 @@ function handleUpdate(val) {
55
70
  >
56
71
  <template #prepend>
57
72
  <v-img
58
- v-if="geode_objects[item.geode_object_type]?.image"
59
- :src="geode_objects[item.geode_object_type].image"
73
+ v-if="geode_objects[item.geode_object_type ?? '']?.image"
74
+ :src="geode_objects[item.geode_object_type ?? '']?.image"
60
75
  height="24"
61
76
  width="24"
62
77
  max-width="24"
@@ -1,10 +1,12 @@
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 PointSetPoints from "@ogw_front/assets/viewer_svgs/point_set_points.svg";
3
- import ViewerContextMenuItem from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem";
4
- import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector";
5
- import ViewerOptionsSizeSlider from "@ogw_front/components/Viewer/Options/Sliders/Size";
6
- import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch";
7
-
6
+ import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
7
+ import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
8
+ import ViewerOptionsSizeSlider from "@ogw_front/components/Viewer/Options/Sliders/Size.vue";
9
+ import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
8
10
  import { useBatchStyle } from "@ogw_front/composables/batch_style";
9
11
  import { useDataStyleStore } from "@ogw_front/stores/data_style";
10
12
  import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
@@ -13,16 +15,18 @@ const dataStyleStore = useDataStyleStore();
13
15
  const hybridViewerStore = useHybridViewerStore();
14
16
  const { applyBatchStyle } = useBatchStyle();
15
17
 
16
- const { itemProps } = defineProps({
17
- itemProps: { type: Object, required: true },
18
- });
18
+ interface Props {
19
+ itemProps: ItemProps & { index: number };
20
+ }
21
+
22
+ const { itemProps } = defineProps<Props>();
19
23
 
20
24
  const id = toRef(() => itemProps.id);
21
25
 
22
26
  const visibility = computed({
23
27
  get: () => dataStyleStore.meshPointsVisibility(id.value),
24
28
  set: async (newValue) => {
25
- await applyBatchStyle(id.value, (targetId) =>
29
+ await applyBatchStyle(id.value, (targetId: string) =>
26
30
  dataStyleStore.setMeshPointsVisibility(targetId, newValue),
27
31
  );
28
32
  hybridViewerStore.remoteRender();
@@ -31,7 +35,7 @@ const visibility = computed({
31
35
  const size = computed({
32
36
  get: () => dataStyleStore.meshPointsSize(id.value),
33
37
  set: async (newValue) => {
34
- await applyBatchStyle(id.value, (targetId) =>
38
+ await applyBatchStyle(id.value, (targetId: string) =>
35
39
  dataStyleStore.setMeshPointsSize(targetId, newValue),
36
40
  );
37
41
  hybridViewerStore.remoteRender();
@@ -40,16 +44,16 @@ const size = computed({
40
44
  const coloring_style_key = computed({
41
45
  get: () => dataStyleStore.meshPointsActiveColoring(id.value),
42
46
  set: async (newValue) => {
43
- await applyBatchStyle(id.value, (targetId) =>
47
+ await applyBatchStyle(id.value, (targetId: string) =>
44
48
  dataStyleStore.setMeshPointsActiveColoring(targetId, newValue),
45
49
  );
46
50
  hybridViewerStore.remoteRender();
47
51
  },
48
52
  });
49
- const color = computed({
50
- get: () => dataStyleStore.meshPointsColor(id.value),
53
+ const color = computed<RGBAColor | undefined>({
54
+ get: () => dataStyleStore.meshPointsColor(id.value) as RGBAColor | undefined,
51
55
  set: async (newValue) => {
52
- await applyBatchStyle(id.value, (targetId) =>
56
+ await applyBatchStyle(id.value, (targetId: string) =>
53
57
  dataStyleStore.setMeshPointsColor(targetId, newValue),
54
58
  );
55
59
  hybridViewerStore.remoteRender();
@@ -58,8 +62,11 @@ const color = computed({
58
62
  const vertex_attribute_name = computed({
59
63
  get: () => dataStyleStore.meshPointsVertexAttributeName(id.value),
60
64
  set: async (newValue) => {
61
- await applyBatchStyle(id.value, (targetId) =>
62
- dataStyleStore.setMeshPointsVertexAttributeName(targetId, newValue),
65
+ if (newValue === undefined) {
66
+ return;
67
+ }
68
+ await applyBatchStyle(id.value, (targetId: string) =>
69
+ Promise.resolve(dataStyleStore.setMeshPointsVertexAttributeName(targetId, newValue)),
63
70
  );
64
71
  hybridViewerStore.remoteRender();
65
72
  },
@@ -67,8 +74,8 @@ const vertex_attribute_name = computed({
67
74
  const vertex_attribute_item = computed({
68
75
  get: () => dataStyleStore.meshPointsVertexAttributeItem(id.value),
69
76
  set: async (newValue) => {
70
- await applyBatchStyle(id.value, (targetId) =>
71
- dataStyleStore.setMeshPointsVertexAttributeItem(targetId, newValue),
77
+ await applyBatchStyle(id.value, (targetId: string) =>
78
+ Promise.resolve(dataStyleStore.setMeshPointsVertexAttributeItem(targetId, newValue)),
72
79
  );
73
80
  hybridViewerStore.remoteRender();
74
81
  },
@@ -76,8 +83,12 @@ const vertex_attribute_item = computed({
76
83
  const vertex_attribute_range = computed({
77
84
  get: () => dataStyleStore.meshPointsVertexAttributeRange(id.value),
78
85
  set: async (newValue) => {
79
- await applyBatchStyle(id.value, (targetId) =>
80
- dataStyleStore.setMeshPointsVertexAttributeRange(targetId, newValue[0], newValue[1]),
86
+ const [minimum, maximum] = newValue;
87
+ if (minimum === undefined || maximum === undefined) {
88
+ return;
89
+ }
90
+ await applyBatchStyle(id.value, (targetId: string) =>
91
+ Promise.resolve(dataStyleStore.setMeshPointsVertexAttributeRange(targetId, minimum, maximum)),
81
92
  );
82
93
  hybridViewerStore.remoteRender();
83
94
  },
@@ -85,16 +96,16 @@ const vertex_attribute_range = computed({
85
96
  const vertex_attribute_color_map = computed({
86
97
  get: () => dataStyleStore.meshPointsVertexAttributeColorMap(id.value),
87
98
  set: async (newValue) => {
88
- await applyBatchStyle(id.value, (targetId) =>
89
- dataStyleStore.setMeshPointsVertexAttributeColorMap(targetId, newValue),
99
+ await applyBatchStyle(id.value, (targetId: string) =>
100
+ Promise.resolve(dataStyleStore.setMeshPointsVertexAttributeColorMap(targetId, newValue)),
90
101
  );
91
102
  hybridViewerStore.remoteRender();
92
103
  },
93
104
  });
94
- const vertex_attribute_no_data_color = computed({
95
- get: () => dataStyleStore.meshPointsVertexAttributeNoDataColor(id.value),
105
+ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
106
+ get: () => dataStyleStore.meshPointsVertexAttributeNoDataColor(id.value) as RGBAColor | undefined,
96
107
  set: async (newValue) => {
97
- await applyBatchStyle(id.value, (targetId) =>
108
+ await applyBatchStyle(id.value, (targetId: string) =>
98
109
  dataStyleStore.setMeshPointsVertexAttributeNoDataColor(targetId, newValue),
99
110
  );
100
111
  hybridViewerStore.remoteRender();
@@ -104,6 +115,7 @@ const vertex_attribute_no_data_color = computed({
104
115
  <template>
105
116
  <ViewerContextMenuItem
106
117
  data-testid="meshPointsMenu"
118
+ :index="itemProps.index"
107
119
  :itemProps="itemProps"
108
120
  :btnImage="PointSetPoints"
109
121
  tooltip="Points options"
@@ -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 SolidEdges from "@ogw_front/assets/viewer_svgs/solid_edges.svg";
3
- import ViewerGenericMeshEdgesOptions from "@ogw_front/components/Viewer/Generic/Mesh/EdgesOptions";
4
+ import ViewerGenericMeshEdgesOptions from "@ogw_front/components/Viewer/Generic/Mesh/EdgesOptions.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 SolidPoints from "@ogw_front/assets/viewer_svgs/solid_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,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 SolidFacets 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,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";
5
+ import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
2
6
  import SolidPolyhedra from "@ogw_front/assets/viewer_svgs/solid_polyhedra.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
-
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,127 +14,149 @@ 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: "Polyhedra options" },
18
- });
17
+ interface Props {
18
+ itemProps: ItemProps & { index: number };
19
+ tooltip?: string;
20
+ }
21
+
22
+ const { itemProps, tooltip = "Polyhedra options" } = defineProps<Props>();
19
23
 
20
24
  const id = toRef(() => itemProps.id);
21
25
 
22
- const visibility = computed({
26
+ const visibility = computed<boolean>({
23
27
  get: () => dataStyleStore.meshPolyhedraVisibility(id.value),
24
28
  set: async (newValue) => {
25
- await applyBatchStyle(id.value, (targetId) =>
29
+ await applyBatchStyle(id.value, (targetId: string) =>
26
30
  dataStyleStore.setMeshPolyhedraVisibility(targetId, newValue),
27
31
  );
28
32
  hybridViewerStore.remoteRender();
29
33
  },
30
34
  });
31
- const coloring_style_key = computed({
35
+ const coloring_style_key = computed<string>({
32
36
  get: () => dataStyleStore.meshPolyhedraActiveColoring(id.value),
33
37
  set: async (newValue) => {
34
- await applyBatchStyle(id.value, (targetId) =>
38
+ await applyBatchStyle(id.value, (targetId: string) =>
35
39
  dataStyleStore.setMeshPolyhedraActiveColoring(targetId, newValue),
36
40
  );
37
41
  hybridViewerStore.remoteRender();
38
42
  },
39
43
  });
40
- const color = computed({
41
- get: () => dataStyleStore.meshPolyhedraColor(id.value),
44
+ const color = computed<RGBAColor | undefined>({
45
+ get: () => dataStyleStore.meshPolyhedraColor(id.value) as RGBAColor | undefined,
42
46
  set: async (newValue) => {
43
- await applyBatchStyle(id.value, (targetId) =>
47
+ await applyBatchStyle(id.value, (targetId: string) =>
44
48
  dataStyleStore.setMeshPolyhedraColor(targetId, newValue),
45
49
  );
46
50
  hybridViewerStore.remoteRender();
47
51
  },
48
52
  });
49
- const vertex_attribute_name = computed({
53
+ const vertex_attribute_name = computed<string | undefined>({
50
54
  get: () => dataStyleStore.meshPolyhedraVertexAttributeName(id.value),
51
55
  set: async (newValue) => {
52
- await applyBatchStyle(id.value, (targetId) =>
53
- dataStyleStore.setMeshPolyhedraVertexAttributeName(targetId, newValue),
56
+ if (newValue === undefined) {
57
+ return;
58
+ }
59
+ await applyBatchStyle(id.value, (targetId: string) =>
60
+ Promise.resolve(dataStyleStore.setMeshPolyhedraVertexAttributeName(targetId, newValue)),
54
61
  );
55
62
  hybridViewerStore.remoteRender();
56
63
  },
57
64
  });
58
- const vertex_attribute_item = computed({
65
+ const vertex_attribute_item = computed<string | undefined>({
59
66
  get: () => dataStyleStore.meshPolyhedraVertexAttributeItem(id.value),
60
67
  set: async (newValue) => {
61
- await applyBatchStyle(id.value, (targetId) =>
62
- dataStyleStore.setMeshPolyhedraVertexAttributeItem(targetId, newValue),
68
+ await applyBatchStyle(id.value, (targetId: string) =>
69
+ Promise.resolve(dataStyleStore.setMeshPolyhedraVertexAttributeItem(targetId, newValue)),
63
70
  );
64
71
  hybridViewerStore.remoteRender();
65
72
  },
66
73
  });
67
- const vertex_attribute_range = computed({
74
+ const vertex_attribute_range = computed<[number, number] | undefined>({
68
75
  get: () => dataStyleStore.meshPolyhedraVertexAttributeRange(id.value),
69
76
  set: async (newValue) => {
70
- await applyBatchStyle(id.value, (targetId) =>
71
- dataStyleStore.setMeshPolyhedraVertexAttributeRange(targetId, newValue[0], newValue[1]),
77
+ const [minimum, maximum] = newValue;
78
+ if (minimum === undefined || maximum === undefined) {
79
+ return;
80
+ }
81
+ await applyBatchStyle(id.value, (targetId: string) =>
82
+ Promise.resolve(
83
+ dataStyleStore.setMeshPolyhedraVertexAttributeRange(targetId, minimum, maximum),
84
+ ),
72
85
  );
73
86
  hybridViewerStore.remoteRender();
74
87
  },
75
88
  });
76
- const vertex_attribute_color_map = computed({
89
+ const vertex_attribute_color_map = computed<Map<string, RGBAColor> | undefined>({
77
90
  get: () => dataStyleStore.meshPolyhedraVertexAttributeColorMap(id.value),
78
91
  set: async (newValue) => {
79
- await applyBatchStyle(id.value, (targetId) =>
80
- dataStyleStore.setMeshPolyhedraVertexAttributeColorMap(targetId, newValue),
92
+ await applyBatchStyle(id.value, (targetId: string) =>
93
+ Promise.resolve(dataStyleStore.setMeshPolyhedraVertexAttributeColorMap(targetId, newValue)),
81
94
  );
82
95
  hybridViewerStore.remoteRender();
83
96
  },
84
97
  });
85
- const vertex_attribute_no_data_color = computed({
86
- get: () => dataStyleStore.meshPolyhedraVertexAttributeNoDataColor(id.value),
98
+ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
99
+ get: () =>
100
+ dataStyleStore.meshPolyhedraVertexAttributeNoDataColor(id.value) as RGBAColor | undefined,
87
101
  set: async (newValue) => {
88
- await applyBatchStyle(id.value, (targetId) =>
102
+ await applyBatchStyle(id.value, (targetId: string) =>
89
103
  dataStyleStore.setMeshPolyhedraVertexAttributeNoDataColor(targetId, newValue),
90
104
  );
91
105
  hybridViewerStore.remoteRender();
92
106
  },
93
107
  });
94
- const polyhedron_attribute_name = computed({
108
+ const polyhedron_attribute_name = computed<string | undefined>({
95
109
  get: () => dataStyleStore.meshPolyhedraPolyhedronAttributeName(id.value),
96
110
  set: async (newValue) => {
97
- await applyBatchStyle(id.value, (targetId) =>
98
- dataStyleStore.setMeshPolyhedraPolyhedronAttributeName(targetId, newValue),
111
+ if (newValue === undefined) {
112
+ return;
113
+ }
114
+ await applyBatchStyle(id.value, (targetId: string) =>
115
+ Promise.resolve(dataStyleStore.setMeshPolyhedraPolyhedronAttributeName(targetId, newValue)),
99
116
  );
100
117
  hybridViewerStore.remoteRender();
101
118
  },
102
119
  });
103
- const polyhedron_attribute_item = computed({
120
+ const polyhedron_attribute_item = computed<string | undefined>({
104
121
  get: () => dataStyleStore.meshPolyhedraPolyhedronAttributeItem(id.value),
105
122
  set: async (newValue) => {
106
- await applyBatchStyle(id.value, (targetId) =>
107
- dataStyleStore.setMeshPolyhedraPolyhedronAttributeItem(targetId, newValue),
123
+ await applyBatchStyle(id.value, (targetId: string) =>
124
+ Promise.resolve(dataStyleStore.setMeshPolyhedraPolyhedronAttributeItem(targetId, newValue)),
108
125
  );
109
126
  hybridViewerStore.remoteRender();
110
127
  },
111
128
  });
112
- const polyhedron_attribute_range = computed({
129
+ const polyhedron_attribute_range = computed<[number, number] | undefined>({
113
130
  get: () => dataStyleStore.meshPolyhedraPolyhedronAttributeRange(id.value),
114
131
  set: async (newValue) => {
115
- await dataStyleStore.setMeshPolyhedraPolyhedronAttributeRange(
116
- id.value,
117
- newValue[0],
118
- newValue[1],
132
+ const [minimum, maximum] = newValue;
133
+ if (minimum === undefined || maximum === undefined) {
134
+ return;
135
+ }
136
+ await applyBatchStyle(id.value, (targetId: string) =>
137
+ Promise.resolve(
138
+ dataStyleStore.setMeshPolyhedraPolyhedronAttributeRange(targetId, minimum, maximum),
139
+ ),
119
140
  );
120
141
  hybridViewerStore.remoteRender();
121
142
  },
122
143
  });
123
- const polyhedron_attribute_color_map = computed({
144
+ const polyhedron_attribute_color_map = computed<Map<string, RGBAColor> | undefined>({
124
145
  get: () => dataStyleStore.meshPolyhedraPolyhedronAttributeColorMap(id.value),
125
146
  set: async (newValue) => {
126
- await applyBatchStyle(id.value, (targetId) =>
127
- dataStyleStore.setMeshPolyhedraPolyhedronAttributeColorMap(targetId, newValue),
147
+ await applyBatchStyle(id.value, (targetId: string) =>
148
+ Promise.resolve(
149
+ dataStyleStore.setMeshPolyhedraPolyhedronAttributeColorMap(targetId, newValue),
150
+ ),
128
151
  );
129
152
  hybridViewerStore.remoteRender();
130
153
  },
131
154
  });
132
- const polyhedron_attribute_no_data_color = computed({
133
- get: () => dataStyleStore.meshPolyhedraPolyhedronAttributeNoDataColor(id.value),
155
+ const polyhedron_attribute_no_data_color = computed<RGBAColor | undefined>({
156
+ get: () =>
157
+ dataStyleStore.meshPolyhedraPolyhedronAttributeNoDataColor(id.value) as RGBAColor | undefined,
134
158
  set: async (newValue) => {
135
- await applyBatchStyle(id.value, (targetId) =>
159
+ await applyBatchStyle(id.value, (targetId: string) =>
136
160
  dataStyleStore.setMeshPolyhedraPolyhedronAttributeNoDataColor(targetId, newValue),
137
161
  );
138
162
  hybridViewerStore.remoteRender();
@@ -142,6 +166,7 @@ const polyhedron_attribute_no_data_color = computed({
142
166
  <template>
143
167
  <ViewerContextMenuItem
144
168
  data-testid="meshPolyhedraMenu"
169
+ :index="itemProps.index"
145
170
  :itemProps="itemProps"
146
171
  :tooltip="tooltip"
147
172
  :btnImage="SolidPolyhedra"
@@ -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 SurfaceEdges from "@ogw_front/assets/viewer_svgs/surface_edges.svg";
3
- import ViewerGenericMeshEdgesOptions from "@ogw_front/components/Viewer/Generic/Mesh/EdgesOptions";
4
+ import ViewerGenericMeshEdgesOptions from "@ogw_front/components/Viewer/Generic/Mesh/EdgesOptions.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>