@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,18 +1,22 @@
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 { middleTruncate } from "@ogw_front/utils/string";
4
- import { useClipboard } from "@vueuse/core";
4
+ import { useCopyToClipboard } from "@ogw_front/composables/copy_to_clipboard";
5
5
  import { useDataStore } from "@ogw_front/stores/data";
6
6
  import { useMenuStore } from "@ogw_front/stores/menu";
7
7
 
8
- const { show, metaData } = defineProps({
9
- show: { type: Boolean, required: true },
10
- metaData: { type: Object, required: true },
11
- });
8
+ interface Props {
9
+ show: boolean;
10
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any
11
+ metaData: Record<string, any>;
12
+ }
12
13
 
13
- const emit = defineEmits(["update:show"]);
14
+ const { show, metaData } = defineProps<Props>();
15
+
16
+ const emit = defineEmits<{
17
+ "update:show": [value: boolean];
18
+ }>();
14
19
 
15
- const COPIED_TIMEOUT = 1500;
16
20
  const MAX_SHORT_ID_LENGTH = 15;
17
21
  const ID_SLICE_START = 8;
18
22
  const ID_SLICE_END_OFFSET = 7;
@@ -20,18 +24,28 @@ const TRUNCATE_MAX_LENGTH = 22;
20
24
  const TRUNCATE_START_CHARS = 12;
21
25
  const TRUNCATE_END_CHARS = 7;
22
26
 
23
- const { copy, copied } = useClipboard({ copiedDuring: COPIED_TIMEOUT });
27
+ const { copy, copied } = useCopyToClipboard();
24
28
  const copiedId = ref("");
25
29
 
26
- function isCopied(id) {
30
+ function isCopied(id: string | undefined): boolean {
27
31
  return copied.value && copiedId.value === id;
28
32
  }
29
33
 
30
34
  const menuStore = useMenuStore();
31
35
  const dataStore = useDataStore();
32
36
 
33
- const componentName = ref("");
34
- const componentItem = ref(undefined);
37
+ interface MeshComponentInfo {
38
+ id?: string;
39
+ title?: string;
40
+ category?: string;
41
+ }
42
+
43
+ const componentName = ref<string>("");
44
+ const componentItem = ref<MeshComponentInfo | undefined>(undefined);
45
+
46
+ function asString(value: unknown): string | undefined {
47
+ return typeof value === "string" ? value : undefined;
48
+ }
35
49
 
36
50
  watch(
37
51
  () => menuStore.current_meta_data,
@@ -42,10 +56,12 @@ watch(
42
56
  return;
43
57
  }
44
58
 
45
- const modelId = newMeta.modelId || newMeta.id;
59
+ const modelId = asString(newMeta.modelId) ?? asString(newMeta.id);
46
60
  if (newMeta.pickedComponentId && modelId) {
47
61
  const components = await dataStore.getAllMeshComponents(modelId);
48
- const comp = components.find((component) => component.id === newMeta.pickedComponentId);
62
+ const comp = components.find(
63
+ (component: MeshComponentInfo) => component.id === newMeta.pickedComponentId,
64
+ );
49
65
  if (comp) {
50
66
  componentName.value = comp.title;
51
67
  componentItem.value = comp;
@@ -55,7 +71,7 @@ watch(
55
71
  { immediate: true },
56
72
  );
57
73
 
58
- const cleanName = computed(() => {
74
+ const cleanName = computed<string>(() => {
59
75
  const meta = menuStore.current_meta_data;
60
76
  if (!meta) {
61
77
  return "Unnamed Object";
@@ -63,10 +79,10 @@ const cleanName = computed(() => {
63
79
  if (componentName.value && meta.viewer_type === "model_component") {
64
80
  return componentName.value;
65
81
  }
66
- return meta.name || "Unnamed Object";
82
+ return asString(meta.name) ?? "Unnamed Object";
67
83
  });
68
84
 
69
- const displayTitle = computed(() => {
85
+ const displayTitle = computed<string>(() => {
70
86
  const name = cleanName.value;
71
87
  if (!name) {
72
88
  return "";
@@ -74,7 +90,7 @@ const displayTitle = computed(() => {
74
90
  return middleTruncate(name, TRUNCATE_MAX_LENGTH, TRUNCATE_START_CHARS, TRUNCATE_END_CHARS);
75
91
  });
76
92
 
77
- const displayComponentTitle = computed(() => {
93
+ const displayComponentTitle = computed<string>(() => {
78
94
  if (!componentItem.value) {
79
95
  return "";
80
96
  }
@@ -86,7 +102,7 @@ const displayComponentTitle = computed(() => {
86
102
  );
87
103
  });
88
104
 
89
- async function copyId(targetId) {
105
+ async function copyId(targetId: string | undefined): Promise<void> {
90
106
  if (!targetId) {
91
107
  return;
92
108
  }
@@ -98,7 +114,7 @@ async function copyId(targetId) {
98
114
  }
99
115
  }
100
116
 
101
- function formatId(id) {
117
+ function formatId(id: string | undefined): string {
102
118
  if (!id) {
103
119
  return "";
104
120
  }
@@ -108,7 +124,7 @@ function formatId(id) {
108
124
  return `${id.slice(0, ID_SLICE_START)}...${id.slice(id.length - ID_SLICE_END_OFFSET)}`;
109
125
  }
110
126
 
111
- const formattedId = computed(() => formatId(metaData.id));
127
+ const formattedId = computed<string>(() => formatId(metaData.id));
112
128
  </script>
113
129
 
114
130
  <template>
@@ -1,10 +1,13 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
2
  import EdgedCurvePoints from "@ogw_front/assets/viewer_svgs/edged_curve_points.svg";
3
- import ViewerGenericMeshPointsOptions from "@ogw_front/components/Viewer/Generic/Mesh/PointsOptions";
3
+ import type { ItemProps } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
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,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 EdgedCurveEdges from "@ogw_front/assets/viewer_svgs/edged_curve_edges.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
- import ViewerOptionsWidthSlider from "@ogw_front/components/Viewer/Options/Sliders/Width";
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 ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
9
+ import ViewerOptionsWidthSlider from "@ogw_front/components/Viewer/Options/Sliders/Width.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,133 +15,149 @@ 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
- const visibility = computed({
26
+ const visibility = computed<boolean>({
23
27
  get: () => dataStyleStore.meshEdgesVisibility(id.value),
24
28
  set: async (newValue) => {
25
- await applyBatchStyle(id.value, (targetId) =>
29
+ await applyBatchStyle(id.value, (targetId: string) =>
26
30
  dataStyleStore.setMeshEdgesVisibility(targetId, newValue),
27
31
  );
28
32
  hybridViewerStore.remoteRender();
29
33
  },
30
34
  });
31
- const width = computed({
35
+ const width = computed<number>({
32
36
  get: () => dataStyleStore.meshEdgesWidth(id.value),
33
37
  set: async (newValue) => {
34
- await applyBatchStyle(id.value, (targetId) =>
38
+ await applyBatchStyle(id.value, (targetId: string) =>
35
39
  dataStyleStore.setMeshEdgesWidth(targetId, newValue),
36
40
  );
37
41
  hybridViewerStore.remoteRender();
38
42
  },
39
43
  });
40
- const coloring_style_key = computed({
44
+ const coloring_style_key = computed<string>({
41
45
  get: () => dataStyleStore.meshEdgesActiveColoring(id.value),
42
46
  set: async (newValue) => {
43
- await applyBatchStyle(id.value, (targetId) =>
47
+ await applyBatchStyle(id.value, (targetId: string) =>
44
48
  dataStyleStore.setMeshEdgesActiveColoring(targetId, newValue),
45
49
  );
46
50
  hybridViewerStore.remoteRender();
47
51
  },
48
52
  });
49
- const color = computed({
50
- get: () => dataStyleStore.meshEdgesColor(id.value),
53
+ const color = computed<RGBAColor | undefined>({
54
+ get: () => dataStyleStore.meshEdgesColor(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.setMeshEdgesColor(targetId, newValue),
54
58
  );
55
59
  hybridViewerStore.remoteRender();
56
60
  },
57
61
  });
58
- const vertex_attribute_name = computed({
62
+ const vertex_attribute_name = computed<string | undefined>({
59
63
  get: () => dataStyleStore.meshEdgesVertexAttributeName(id.value),
60
64
  set: async (newValue) => {
61
- await applyBatchStyle(id.value, (targetId) =>
62
- dataStyleStore.setMeshEdgesVertexAttributeName(targetId, newValue),
65
+ if (newValue === undefined) {
66
+ return;
67
+ }
68
+ await applyBatchStyle(id.value, (targetId: string) =>
69
+ Promise.resolve(dataStyleStore.setMeshEdgesVertexAttributeName(targetId, newValue)),
63
70
  );
64
71
  hybridViewerStore.remoteRender();
65
72
  },
66
73
  });
67
- const vertex_attribute_item = computed({
74
+ const vertex_attribute_item = computed<string | undefined>({
68
75
  get: () => dataStyleStore.meshEdgesVertexAttributeItem(id.value),
69
76
  set: async (newValue) => {
70
- await applyBatchStyle(id.value, (targetId) =>
71
- dataStyleStore.setMeshEdgesVertexAttributeItem(targetId, newValue),
77
+ await applyBatchStyle(id.value, (targetId: string) =>
78
+ Promise.resolve(dataStyleStore.setMeshEdgesVertexAttributeItem(targetId, newValue)),
72
79
  );
73
80
  hybridViewerStore.remoteRender();
74
81
  },
75
82
  });
76
- const vertex_attribute_range = computed({
83
+ const vertex_attribute_range = computed<[number, number] | undefined>({
77
84
  get: () => dataStyleStore.meshEdgesVertexAttributeRange(id.value),
78
85
  set: async (newValue) => {
79
- await applyBatchStyle(id.value, (targetId) =>
80
- dataStyleStore.setMeshEdgesVertexAttributeRange(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.setMeshEdgesVertexAttributeRange(targetId, minimum, maximum)),
81
92
  );
82
93
  hybridViewerStore.remoteRender();
83
94
  },
84
95
  });
85
- const vertex_attribute_color_map = computed({
96
+ const vertex_attribute_color_map = computed<Map<string, RGBAColor>>({
86
97
  get: () => dataStyleStore.meshEdgesVertexAttributeColorMap(id.value),
87
98
  set: async (newValue) => {
88
- await applyBatchStyle(id.value, (targetId) =>
89
- dataStyleStore.setMeshEdgesVertexAttributeColorMap(targetId, newValue),
99
+ await applyBatchStyle(id.value, (targetId: string) =>
100
+ Promise.resolve(dataStyleStore.setMeshEdgesVertexAttributeColorMap(targetId, newValue)),
90
101
  );
91
102
  hybridViewerStore.remoteRender();
92
103
  },
93
104
  });
94
- const vertex_attribute_no_data_color = computed({
95
- get: () => dataStyleStore.meshEdgesVertexAttributeNoDataColor(id.value),
105
+ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
106
+ get: () => dataStyleStore.meshEdgesVertexAttributeNoDataColor(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.setMeshEdgesVertexAttributeNoDataColor(targetId, newValue),
99
110
  );
100
111
  hybridViewerStore.remoteRender();
101
112
  },
102
113
  });
103
- const edge_attribute_name = computed({
114
+ const edge_attribute_name = computed<string | undefined>({
104
115
  get: () => dataStyleStore.meshEdgesEdgeAttributeName(id.value),
105
116
  set: async (newValue) => {
106
- await applyBatchStyle(id.value, (targetId) =>
107
- dataStyleStore.setMeshEdgesEdgeAttributeName(targetId, newValue),
117
+ if (newValue === undefined) {
118
+ return;
119
+ }
120
+ await applyBatchStyle(id.value, (targetId: string) =>
121
+ Promise.resolve(dataStyleStore.setMeshEdgesEdgeAttributeName(targetId, newValue)),
108
122
  );
109
123
  hybridViewerStore.remoteRender();
110
124
  },
111
125
  });
112
- const edge_attribute_item = computed({
126
+ const edge_attribute_item = computed<string | undefined>({
113
127
  get: () => dataStyleStore.meshEdgesEdgeAttributeItem(id.value),
114
128
  set: async (newValue) => {
115
- await applyBatchStyle(id.value, (targetId) =>
116
- dataStyleStore.setMeshEdgesEdgeAttributeItem(targetId, newValue),
129
+ await applyBatchStyle(id.value, (targetId: string) =>
130
+ Promise.resolve(dataStyleStore.setMeshEdgesEdgeAttributeItem(targetId, newValue)),
117
131
  );
118
132
  hybridViewerStore.remoteRender();
119
133
  },
120
134
  });
121
- const edge_attribute_range = computed({
135
+ const edge_attribute_range = computed<[number, number] | undefined>({
122
136
  get: () => dataStyleStore.meshEdgesEdgeAttributeRange(id.value),
123
137
  set: async (newValue) => {
124
- await applyBatchStyle(id.value, (targetId) =>
125
- dataStyleStore.setMeshEdgesEdgeAttributeRange(targetId, newValue[0], newValue[1]),
138
+ const [minimum, maximum] = newValue;
139
+ if (minimum === undefined || maximum === undefined) {
140
+ return;
141
+ }
142
+ await applyBatchStyle(id.value, (targetId: string) =>
143
+ Promise.resolve(dataStyleStore.setMeshEdgesEdgeAttributeRange(targetId, minimum, maximum)),
126
144
  );
127
145
  hybridViewerStore.remoteRender();
128
146
  },
129
147
  });
130
- const edge_attribute_color_map = computed({
148
+ const edge_attribute_color_map = computed<Map<string, RGBAColor>>({
131
149
  get: () => dataStyleStore.meshEdgesEdgeAttributeColorMap(id.value),
132
150
  set: async (newValue) => {
133
- await applyBatchStyle(id.value, (targetId) =>
134
- dataStyleStore.setMeshEdgesEdgeAttributeColorMap(targetId, newValue),
151
+ await applyBatchStyle(id.value, (targetId: string) =>
152
+ Promise.resolve(dataStyleStore.setMeshEdgesEdgeAttributeColorMap(targetId, newValue)),
135
153
  );
136
154
  hybridViewerStore.remoteRender();
137
155
  },
138
156
  });
139
- const edge_attribute_no_data_color = computed({
140
- get: () => dataStyleStore.meshEdgesEdgeAttributeNoDataColor(id.value),
157
+ const edge_attribute_no_data_color = computed<RGBAColor | undefined>({
158
+ get: () => dataStyleStore.meshEdgesEdgeAttributeNoDataColor(id.value) as RGBAColor | undefined,
141
159
  set: async (newValue) => {
142
- await applyBatchStyle(id.value, (targetId) =>
160
+ await applyBatchStyle(id.value, (targetId: string) =>
143
161
  dataStyleStore.setMeshEdgesEdgeAttributeNoDataColor(targetId, newValue),
144
162
  );
145
163
  hybridViewerStore.remoteRender();
@@ -150,6 +168,7 @@ const edge_attribute_no_data_color = computed({
150
168
  <template>
151
169
  <ViewerContextMenuItem
152
170
  data-testid="meshEdgesMenu"
171
+ :index="itemProps.index!"
153
172
  :itemProps="itemProps"
154
173
  :btnImage="EdgedCurveEdges"
155
174
  tooltip="Edges options"
@@ -1,146 +1,169 @@
1
- <script setup>
2
- import ViewerContextMenuItem from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem";
3
- import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector";
4
- import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch";
5
-
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";
6
+ import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
7
+ import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
6
8
  import { useBatchStyle } from "@ogw_front/composables/batch_style";
7
9
  import { useDataStyleStore } from "@ogw_front/stores/data_style";
8
10
  import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
9
11
 
12
+ interface Texture {
13
+ id: string;
14
+ texture_name: string;
15
+ }
16
+
10
17
  const dataStyleStore = useDataStyleStore();
11
18
  const hybridViewerStore = useHybridViewerStore();
12
19
  const { applyBatchStyle } = useBatchStyle();
13
20
 
14
- const { itemProps, btnImage, tooltip } = defineProps({
15
- itemProps: { type: Object, required: true },
16
- btnImage: { type: String, required: true },
17
- tooltip: { type: String, required: false, default: "Cells options" },
18
- });
21
+ interface Props {
22
+ itemProps: ItemProps & { index?: number };
23
+ btnImage: string;
24
+ tooltip?: string;
25
+ }
26
+
27
+ const { itemProps, btnImage, tooltip = "Cells 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.meshCellsVisibility(id.value),
24
33
  set: async (newValue) => {
25
- await applyBatchStyle(id.value, (targetId) =>
34
+ await applyBatchStyle(id.value, (targetId: string) =>
26
35
  dataStyleStore.setMeshCellsVisibility(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.meshCellsActiveColoring(id.value),
33
42
  set: async (newValue) => {
34
- await applyBatchStyle(id.value, (targetId) =>
43
+ await applyBatchStyle(id.value, (targetId: string) =>
35
44
  dataStyleStore.setMeshCellsActiveColoring(targetId, newValue),
36
45
  );
37
46
  hybridViewerStore.remoteRender();
38
47
  },
39
48
  });
40
- const color = computed({
41
- get: () => dataStyleStore.meshCellsColor(id.value),
49
+ const color = computed<RGBAColor | undefined>({
50
+ get: () => dataStyleStore.meshCellsColor(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.setMeshCellsColor(targetId, newValue),
45
54
  );
46
55
  hybridViewerStore.remoteRender();
47
56
  },
48
57
  });
49
- const textures = computed({
50
- get: () => dataStyleStore.meshCellsTextures(id.value),
58
+ const textures = computed<Texture[] | undefined>({
59
+ get: () => dataStyleStore.meshCellsTextures(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.setMeshCellsTextures(targetId, newValue),
54
63
  );
55
64
  hybridViewerStore.remoteRender();
56
65
  },
57
66
  });
58
67
 
59
- const vertex_attribute_name = computed({
68
+ const vertex_attribute_name = computed<string | undefined>({
60
69
  get: () => dataStyleStore.meshCellsVertexAttributeName(id.value),
61
70
  set: async (newValue) => {
62
- await applyBatchStyle(id.value, (targetId) =>
63
- dataStyleStore.setMeshCellsVertexAttributeName(targetId, newValue),
71
+ if (newValue === undefined) {
72
+ return;
73
+ }
74
+ await applyBatchStyle(id.value, (targetId: string) =>
75
+ Promise.resolve(dataStyleStore.setMeshCellsVertexAttributeName(targetId, newValue)),
64
76
  );
65
77
  hybridViewerStore.remoteRender();
66
78
  },
67
79
  });
68
- const vertex_attribute_item = computed({
80
+ const vertex_attribute_item = computed<string | undefined>({
69
81
  get: () => dataStyleStore.meshCellsVertexAttributeItem(id.value),
70
82
  set: async (newValue) => {
71
- await applyBatchStyle(id.value, (targetId) =>
72
- dataStyleStore.setMeshCellsVertexAttributeItem(targetId, newValue),
83
+ await applyBatchStyle(id.value, (targetId: string) =>
84
+ Promise.resolve(dataStyleStore.setMeshCellsVertexAttributeItem(targetId, newValue)),
73
85
  );
74
86
  hybridViewerStore.remoteRender();
75
87
  },
76
88
  });
77
- const vertex_attribute_range = computed({
89
+ const vertex_attribute_range = computed<[number, number] | undefined>({
78
90
  get: () => dataStyleStore.meshCellsVertexAttributeRange(id.value),
79
91
  set: async (newValue) => {
80
- await applyBatchStyle(id.value, (targetId) =>
81
- dataStyleStore.setMeshCellsVertexAttributeRange(targetId, newValue[0], newValue[1]),
92
+ const [minimum, maximum] = newValue;
93
+ if (minimum === undefined || maximum === undefined) {
94
+ return;
95
+ }
96
+ await applyBatchStyle(id.value, (targetId: string) =>
97
+ Promise.resolve(dataStyleStore.setMeshCellsVertexAttributeRange(targetId, minimum, maximum)),
82
98
  );
83
99
  hybridViewerStore.remoteRender();
84
100
  },
85
101
  });
86
- const vertex_attribute_color_map = computed({
102
+ const vertex_attribute_color_map = computed<Map<string, RGBAColor>>({
87
103
  get: () => dataStyleStore.meshCellsVertexAttributeColorMap(id.value),
88
104
  set: async (newValue) => {
89
- await applyBatchStyle(id.value, (targetId) =>
90
- dataStyleStore.setMeshCellsVertexAttributeColorMap(targetId, newValue),
105
+ await applyBatchStyle(id.value, (targetId: string) =>
106
+ Promise.resolve(dataStyleStore.setMeshCellsVertexAttributeColorMap(targetId, newValue)),
91
107
  );
92
108
  hybridViewerStore.remoteRender();
93
109
  },
94
110
  });
95
- const vertex_attribute_no_data_color = computed({
96
- get: () => dataStyleStore.meshCellsVertexAttributeNoDataColor(id.value),
111
+ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
112
+ get: () => dataStyleStore.meshCellsVertexAttributeNoDataColor(id.value) as RGBAColor | undefined,
97
113
  set: async (newValue) => {
98
- await applyBatchStyle(id.value, (targetId) =>
114
+ await applyBatchStyle(id.value, (targetId: string) =>
99
115
  dataStyleStore.setMeshCellsVertexAttributeNoDataColor(targetId, newValue),
100
116
  );
101
117
  hybridViewerStore.remoteRender();
102
118
  },
103
119
  });
104
- const cell_attribute_name = computed({
120
+ const cell_attribute_name = computed<string | undefined>({
105
121
  get: () => dataStyleStore.meshCellsCellAttributeName(id.value),
106
122
  set: async (newValue) => {
107
- await applyBatchStyle(id.value, (targetId) =>
108
- dataStyleStore.setMeshCellsCellAttributeName(targetId, newValue),
123
+ if (newValue === undefined) {
124
+ return;
125
+ }
126
+ await applyBatchStyle(id.value, (targetId: string) =>
127
+ Promise.resolve(dataStyleStore.setMeshCellsCellAttributeName(targetId, newValue)),
109
128
  );
110
129
  hybridViewerStore.remoteRender();
111
130
  },
112
131
  });
113
- const cell_attribute_item = computed({
132
+ const cell_attribute_item = computed<string | undefined>({
114
133
  get: () => dataStyleStore.meshCellsCellAttributeItem(id.value),
115
134
  set: async (newValue) => {
116
- await applyBatchStyle(id.value, (targetId) =>
117
- dataStyleStore.setMeshCellsCellAttributeItem(targetId, newValue),
135
+ await applyBatchStyle(id.value, (targetId: string) =>
136
+ Promise.resolve(dataStyleStore.setMeshCellsCellAttributeItem(targetId, newValue)),
118
137
  );
119
138
  hybridViewerStore.remoteRender();
120
139
  },
121
140
  });
122
- const cell_attribute_range = computed({
141
+ const cell_attribute_range = computed<[number, number] | undefined>({
123
142
  get: () => dataStyleStore.meshCellsCellAttributeRange(id.value),
124
143
  set: async (newValue) => {
125
- await applyBatchStyle(id.value, (targetId) =>
126
- dataStyleStore.setMeshCellsCellAttributeRange(targetId, newValue[0], newValue[1]),
144
+ const [minimum, maximum] = newValue;
145
+ if (minimum === undefined || maximum === undefined) {
146
+ return;
147
+ }
148
+ await applyBatchStyle(id.value, (targetId: string) =>
149
+ Promise.resolve(dataStyleStore.setMeshCellsCellAttributeRange(targetId, minimum, maximum)),
127
150
  );
128
151
  hybridViewerStore.remoteRender();
129
152
  },
130
153
  });
131
- const cell_attribute_color_map = computed({
154
+ const cell_attribute_color_map = computed<Map<string, RGBAColor>>({
132
155
  get: () => dataStyleStore.meshCellsCellAttributeColorMap(id.value),
133
156
  set: async (newValue) => {
134
- await applyBatchStyle(id.value, (targetId) =>
135
- dataStyleStore.setMeshCellsCellAttributeColorMap(targetId, newValue),
157
+ await applyBatchStyle(id.value, (targetId: string) =>
158
+ Promise.resolve(dataStyleStore.setMeshCellsCellAttributeColorMap(targetId, newValue)),
136
159
  );
137
160
  hybridViewerStore.remoteRender();
138
161
  },
139
162
  });
140
- const cell_attribute_no_data_color = computed({
141
- get: () => dataStyleStore.meshCellsCellAttributeNoDataColor(id.value),
163
+ const cell_attribute_no_data_color = computed<RGBAColor | undefined>({
164
+ get: () => dataStyleStore.meshCellsCellAttributeNoDataColor(id.value) as RGBAColor | undefined,
142
165
  set: async (newValue) => {
143
- await applyBatchStyle(id.value, (targetId) =>
166
+ await applyBatchStyle(id.value, (targetId: string) =>
144
167
  dataStyleStore.setMeshCellsCellAttributeNoDataColor(targetId, newValue),
145
168
  );
146
169
  hybridViewerStore.remoteRender();
@@ -151,6 +174,7 @@ const cell_attribute_no_data_color = computed({
151
174
  <template>
152
175
  <ViewerContextMenuItem
153
176
  data-testid="meshCellsMenu"
177
+ :index="itemProps.index!"
154
178
  :itemProps="itemProps"
155
179
  :tooltip="tooltip"
156
180
  :btnImage="btnImage"