@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,9 +1,11 @@
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
- import ViewerOptionsWidthSlider from "@ogw_front/components/Viewer/Options/Sliders/Width";
6
-
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";
8
+ import ViewerOptionsWidthSlider from "@ogw_front/components/Viewer/Options/Sliders/Width.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,135 +14,151 @@ const dataStyleStore = useDataStyleStore();
12
14
  const hybridViewerStore = useHybridViewerStore();
13
15
  const { applyBatchStyle } = useBatchStyle();
14
16
 
15
- const { itemProps, btnImage, tooltip } = defineProps({
16
- itemProps: { type: Object, required: true },
17
- btnImage: { type: String, required: true },
18
- tooltip: { type: String, required: false, default: "Edges options" },
19
- });
17
+ interface Props {
18
+ itemProps: ItemProps & { index?: number };
19
+ btnImage: string;
20
+ tooltip?: string;
21
+ }
22
+
23
+ const { itemProps, btnImage, tooltip = "Edges options" } = defineProps<Props>();
20
24
 
21
25
  const id = toRef(() => itemProps.id);
22
26
 
23
- const visibility = computed({
27
+ const visibility = computed<boolean>({
24
28
  get: () => dataStyleStore.meshEdgesVisibility(id.value),
25
29
  set: async (newValue) => {
26
- await applyBatchStyle(id.value, (targetId) =>
30
+ await applyBatchStyle(id.value, (targetId: string) =>
27
31
  dataStyleStore.setMeshEdgesVisibility(targetId, newValue),
28
32
  );
29
33
  hybridViewerStore.remoteRender();
30
34
  },
31
35
  });
32
- const size = computed({
36
+ const size = computed<number>({
33
37
  get: () => dataStyleStore.meshEdgesWidth(id.value),
34
38
  set: async (newValue) => {
35
- await applyBatchStyle(id.value, (targetId) =>
39
+ await applyBatchStyle(id.value, (targetId: string) =>
36
40
  dataStyleStore.setMeshEdgesWidth(targetId, newValue),
37
41
  );
38
42
  hybridViewerStore.remoteRender();
39
43
  },
40
44
  });
41
- const coloring_style_key = computed({
45
+ const coloring_style_key = computed<string>({
42
46
  get: () => dataStyleStore.meshEdgesActiveColoring(id.value),
43
47
  set: async (newValue) => {
44
- await applyBatchStyle(id.value, (targetId) =>
48
+ await applyBatchStyle(id.value, (targetId: string) =>
45
49
  dataStyleStore.setMeshEdgesActiveColoring(targetId, newValue),
46
50
  );
47
51
  hybridViewerStore.remoteRender();
48
52
  },
49
53
  });
50
- const color = computed({
51
- get: () => dataStyleStore.meshEdgesColor(id.value),
54
+ const color = computed<RGBAColor | undefined>({
55
+ get: () => dataStyleStore.meshEdgesColor(id.value) as RGBAColor | undefined,
52
56
  set: async (newValue) => {
53
- await applyBatchStyle(id.value, (targetId) =>
57
+ await applyBatchStyle(id.value, (targetId: string) =>
54
58
  dataStyleStore.setMeshEdgesColor(targetId, newValue),
55
59
  );
56
60
  hybridViewerStore.remoteRender();
57
61
  },
58
62
  });
59
- const vertex_attribute_name = computed({
63
+ const vertex_attribute_name = computed<string | undefined>({
60
64
  get: () => dataStyleStore.meshEdgesVertexAttributeName(id.value),
61
65
  set: async (newValue) => {
62
- await applyBatchStyle(id.value, (targetId) =>
63
- dataStyleStore.setMeshEdgesVertexAttributeName(targetId, newValue),
66
+ if (newValue === undefined) {
67
+ return;
68
+ }
69
+ await applyBatchStyle(id.value, (targetId: string) =>
70
+ Promise.resolve(dataStyleStore.setMeshEdgesVertexAttributeName(targetId, newValue)),
64
71
  );
65
72
  hybridViewerStore.remoteRender();
66
73
  },
67
74
  });
68
- const vertex_attribute_item = computed({
75
+ const vertex_attribute_item = computed<string | undefined>({
69
76
  get: () => dataStyleStore.meshEdgesVertexAttributeItem(id.value),
70
77
  set: async (newValue) => {
71
- await applyBatchStyle(id.value, (targetId) =>
72
- dataStyleStore.setMeshEdgesVertexAttributeItem(targetId, newValue),
78
+ await applyBatchStyle(id.value, (targetId: string) =>
79
+ Promise.resolve(dataStyleStore.setMeshEdgesVertexAttributeItem(targetId, newValue)),
73
80
  );
74
81
  hybridViewerStore.remoteRender();
75
82
  },
76
83
  });
77
- const vertex_attribute_range = computed({
84
+ const vertex_attribute_range = computed<[number, number] | undefined>({
78
85
  get: () => dataStyleStore.meshEdgesVertexAttributeRange(id.value),
79
86
  set: async (newValue) => {
80
- await applyBatchStyle(id.value, (targetId) =>
81
- dataStyleStore.setMeshEdgesVertexAttributeRange(targetId, newValue[0], newValue[1]),
87
+ const [minimum, maximum] = newValue;
88
+ if (minimum === undefined || maximum === undefined) {
89
+ return;
90
+ }
91
+ await applyBatchStyle(id.value, (targetId: string) =>
92
+ Promise.resolve(dataStyleStore.setMeshEdgesVertexAttributeRange(targetId, minimum, maximum)),
82
93
  );
83
94
  hybridViewerStore.remoteRender();
84
95
  },
85
96
  });
86
- const vertex_attribute_color_map = computed({
97
+ const vertex_attribute_color_map = computed<Map<string, RGBAColor>>({
87
98
  get: () => dataStyleStore.meshEdgesVertexAttributeColorMap(id.value),
88
99
  set: async (newValue) => {
89
- await applyBatchStyle(id.value, (targetId) =>
90
- dataStyleStore.setMeshEdgesVertexAttributeColorMap(targetId, newValue),
100
+ await applyBatchStyle(id.value, (targetId: string) =>
101
+ Promise.resolve(dataStyleStore.setMeshEdgesVertexAttributeColorMap(targetId, newValue)),
91
102
  );
92
103
  hybridViewerStore.remoteRender();
93
104
  },
94
105
  });
95
- const vertex_attribute_no_data_color = computed({
96
- get: () => dataStyleStore.meshEdgesVertexAttributeNoDataColor(id.value),
106
+ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
107
+ get: () => dataStyleStore.meshEdgesVertexAttributeNoDataColor(id.value) as RGBAColor | undefined,
97
108
  set: async (newValue) => {
98
- await applyBatchStyle(id.value, (targetId) =>
109
+ await applyBatchStyle(id.value, (targetId: string) =>
99
110
  dataStyleStore.setMeshEdgesVertexAttributeNoDataColor(targetId, newValue),
100
111
  );
101
112
  hybridViewerStore.remoteRender();
102
113
  },
103
114
  });
104
- const edge_attribute_name = computed({
115
+ const edge_attribute_name = computed<string | undefined>({
105
116
  get: () => dataStyleStore.meshEdgesEdgeAttributeName(id.value),
106
117
  set: async (newValue) => {
107
- await applyBatchStyle(id.value, (targetId) =>
108
- dataStyleStore.setMeshEdgesEdgeAttributeName(targetId, newValue),
118
+ if (newValue === undefined) {
119
+ return;
120
+ }
121
+ await applyBatchStyle(id.value, (targetId: string) =>
122
+ Promise.resolve(dataStyleStore.setMeshEdgesEdgeAttributeName(targetId, newValue)),
109
123
  );
110
124
  hybridViewerStore.remoteRender();
111
125
  },
112
126
  });
113
- const edge_attribute_item = computed({
127
+ const edge_attribute_item = computed<string | undefined>({
114
128
  get: () => dataStyleStore.meshEdgesEdgeAttributeItem(id.value),
115
129
  set: async (newValue) => {
116
- await applyBatchStyle(id.value, (targetId) =>
117
- dataStyleStore.setMeshEdgesEdgeAttributeItem(targetId, newValue),
130
+ await applyBatchStyle(id.value, (targetId: string) =>
131
+ Promise.resolve(dataStyleStore.setMeshEdgesEdgeAttributeItem(targetId, newValue)),
118
132
  );
119
133
  hybridViewerStore.remoteRender();
120
134
  },
121
135
  });
122
- const edge_attribute_range = computed({
136
+ const edge_attribute_range = computed<[number, number] | undefined>({
123
137
  get: () => dataStyleStore.meshEdgesEdgeAttributeRange(id.value),
124
138
  set: async (newValue) => {
125
- await applyBatchStyle(id.value, (targetId) =>
126
- dataStyleStore.setMeshEdgesEdgeAttributeRange(targetId, newValue[0], newValue[1]),
139
+ const [minimum, maximum] = newValue;
140
+ if (minimum === undefined || maximum === undefined) {
141
+ return;
142
+ }
143
+ await applyBatchStyle(id.value, (targetId: string) =>
144
+ Promise.resolve(dataStyleStore.setMeshEdgesEdgeAttributeRange(targetId, minimum, maximum)),
127
145
  );
128
146
  hybridViewerStore.remoteRender();
129
147
  },
130
148
  });
131
- const edge_attribute_color_map = computed({
149
+ const edge_attribute_color_map = computed<Map<string, RGBAColor>>({
132
150
  get: () => dataStyleStore.meshEdgesEdgeAttributeColorMap(id.value),
133
151
  set: async (newValue) => {
134
- await applyBatchStyle(id.value, (targetId) =>
135
- dataStyleStore.setMeshEdgesEdgeAttributeColorMap(targetId, newValue),
152
+ await applyBatchStyle(id.value, (targetId: string) =>
153
+ Promise.resolve(dataStyleStore.setMeshEdgesEdgeAttributeColorMap(targetId, newValue)),
136
154
  );
137
155
  hybridViewerStore.remoteRender();
138
156
  },
139
157
  });
140
- const edge_attribute_no_data_color = computed({
141
- get: () => dataStyleStore.meshEdgesEdgeAttributeNoDataColor(id.value),
158
+ const edge_attribute_no_data_color = computed<RGBAColor | undefined>({
159
+ get: () => dataStyleStore.meshEdgesEdgeAttributeNoDataColor(id.value) as RGBAColor | undefined,
142
160
  set: async (newValue) => {
143
- await applyBatchStyle(id.value, (targetId) =>
161
+ await applyBatchStyle(id.value, (targetId: string) =>
144
162
  dataStyleStore.setMeshEdgesEdgeAttributeNoDataColor(targetId, newValue),
145
163
  );
146
164
  hybridViewerStore.remoteRender();
@@ -151,6 +169,7 @@ const edge_attribute_no_data_color = computed({
151
169
  <template>
152
170
  <ViewerContextMenuItem
153
171
  data-testid="meshEdgesMenu"
172
+ :index="itemProps.index!"
154
173
  :itemProps="itemProps"
155
174
  :tooltip="tooltip"
156
175
  :btnImage="btnImage"
@@ -1,9 +1,11 @@
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 ViewerOptionsSizeSlider from "@ogw_front/components/Viewer/Options/Sliders/Size";
5
- import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch";
6
-
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 ViewerOptionsSizeSlider from "@ogw_front/components/Viewer/Options/Sliders/Size.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,90 +14,99 @@ const dataStyleStore = useDataStyleStore();
12
14
  const hybridViewerStore = useHybridViewerStore();
13
15
  const { applyBatchStyle } = useBatchStyle();
14
16
 
15
- const { itemProps, btnImage, tooltip } = defineProps({
16
- itemProps: { type: Object, required: true },
17
- btnImage: { type: String, required: true },
18
- tooltip: { type: String, required: false, default: "Points options" },
19
- });
17
+ interface Props {
18
+ itemProps: ItemProps & { index?: number };
19
+ btnImage: string;
20
+ tooltip?: string;
21
+ }
22
+
23
+ const { itemProps, btnImage, tooltip = "Points options" } = defineProps<Props>();
20
24
 
21
25
  const id = toRef(() => itemProps.id);
22
26
 
23
- const visibility = computed({
27
+ const visibility = computed<boolean>({
24
28
  get: () => dataStyleStore.meshPointsVisibility(id.value),
25
29
  set: async (newValue) => {
26
- await applyBatchStyle(id.value, (targetId) =>
30
+ await applyBatchStyle(id.value, (targetId: string) =>
27
31
  dataStyleStore.setMeshPointsVisibility(targetId, newValue),
28
32
  );
29
33
  hybridViewerStore.remoteRender();
30
34
  },
31
35
  });
32
- const size = computed({
36
+ const size = computed<number>({
33
37
  get: () => dataStyleStore.meshPointsSize(id.value),
34
38
  set: async (newValue) => {
35
- await applyBatchStyle(id.value, (targetId) =>
39
+ await applyBatchStyle(id.value, (targetId: string) =>
36
40
  dataStyleStore.setMeshPointsSize(targetId, newValue),
37
41
  );
38
42
  hybridViewerStore.remoteRender();
39
43
  },
40
44
  });
41
- const coloring_style_key = computed({
45
+ const coloring_style_key = computed<string>({
42
46
  get: () => dataStyleStore.meshPointsActiveColoring(id.value),
43
47
  set: async (newValue) => {
44
- await applyBatchStyle(id.value, (targetId) =>
48
+ await applyBatchStyle(id.value, (targetId: string) =>
45
49
  dataStyleStore.setMeshPointsActiveColoring(targetId, newValue),
46
50
  );
47
51
  hybridViewerStore.remoteRender();
48
52
  },
49
53
  });
50
- const color = computed({
51
- get: () => dataStyleStore.meshPointsColor(id.value),
54
+ const color = computed<RGBAColor | undefined>({
55
+ get: () => dataStyleStore.meshPointsColor(id.value) as RGBAColor | undefined,
52
56
  set: async (newValue) => {
53
- await applyBatchStyle(id.value, (targetId) =>
57
+ await applyBatchStyle(id.value, (targetId: string) =>
54
58
  dataStyleStore.setMeshPointsColor(targetId, newValue),
55
59
  );
56
60
  hybridViewerStore.remoteRender();
57
61
  },
58
62
  });
59
- const vertex_attribute_name = computed({
63
+ const vertex_attribute_name = computed<string | undefined>({
60
64
  get: () => dataStyleStore.meshPointsVertexAttributeName(id.value),
61
65
  set: async (newValue) => {
62
- await applyBatchStyle(id.value, (targetId) =>
63
- dataStyleStore.setMeshPointsVertexAttributeName(targetId, newValue),
66
+ if (newValue === undefined) {
67
+ return;
68
+ }
69
+ await applyBatchStyle(id.value, (targetId: string) =>
70
+ Promise.resolve(dataStyleStore.setMeshPointsVertexAttributeName(targetId, newValue)),
64
71
  );
65
72
  hybridViewerStore.remoteRender();
66
73
  },
67
74
  });
68
- const vertex_attribute_item = computed({
75
+ const vertex_attribute_item = computed<string | undefined>({
69
76
  get: () => dataStyleStore.meshPointsVertexAttributeItem(id.value),
70
77
  set: async (newValue) => {
71
- await applyBatchStyle(id.value, (targetId) =>
72
- dataStyleStore.setMeshPointsVertexAttributeItem(targetId, newValue),
78
+ await applyBatchStyle(id.value, (targetId: string) =>
79
+ Promise.resolve(dataStyleStore.setMeshPointsVertexAttributeItem(targetId, newValue)),
73
80
  );
74
81
  hybridViewerStore.remoteRender();
75
82
  },
76
83
  });
77
- const vertex_attribute_range = computed({
84
+ const vertex_attribute_range = computed<[number, number] | undefined>({
78
85
  get: () => dataStyleStore.meshPointsVertexAttributeRange(id.value),
79
86
  set: async (newValue) => {
80
- await applyBatchStyle(id.value, (targetId) =>
81
- dataStyleStore.setMeshPointsVertexAttributeRange(targetId, newValue[0], newValue[1]),
87
+ const [minimum, maximum] = newValue;
88
+ if (minimum === undefined || maximum === undefined) {
89
+ return;
90
+ }
91
+ await applyBatchStyle(id.value, (targetId: string) =>
92
+ Promise.resolve(dataStyleStore.setMeshPointsVertexAttributeRange(targetId, minimum, maximum)),
82
93
  );
83
94
  hybridViewerStore.remoteRender();
84
95
  },
85
96
  });
86
- const vertex_attribute_color_map = computed({
97
+ const vertex_attribute_color_map = computed<Map<string, RGBAColor>>({
87
98
  get: () => dataStyleStore.meshPointsVertexAttributeColorMap(id.value),
88
99
  set: async (newValue) => {
89
- await applyBatchStyle(id.value, (targetId) =>
90
- dataStyleStore.setMeshPointsVertexAttributeColorMap(targetId, newValue),
100
+ await applyBatchStyle(id.value, (targetId: string) =>
101
+ Promise.resolve(dataStyleStore.setMeshPointsVertexAttributeColorMap(targetId, newValue)),
91
102
  );
92
103
  hybridViewerStore.remoteRender();
93
104
  },
94
105
  });
95
- const vertex_attribute_no_data_color = computed({
96
- get: () => dataStyleStore.meshPointsVertexAttributeNoDataColor(id.value),
106
+ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
107
+ get: () => dataStyleStore.meshPointsVertexAttributeNoDataColor(id.value) as RGBAColor | undefined,
97
108
  set: async (newValue) => {
98
- await applyBatchStyle(id.value, (targetId) =>
109
+ await applyBatchStyle(id.value, (targetId: string) =>
99
110
  dataStyleStore.setMeshPointsVertexAttributeNoDataColor(targetId, newValue),
100
111
  );
101
112
  hybridViewerStore.remoteRender();
@@ -106,6 +117,7 @@ const vertex_attribute_no_data_color = computed({
106
117
  <template>
107
118
  <ViewerContextMenuItem
108
119
  data-testid="meshPointsMenu"
120
+ :index="itemProps.index!"
109
121
  :itemProps="itemProps"
110
122
  :tooltip="tooltip"
111
123
  :btnImage="btnImage"
@@ -1,147 +1,186 @@
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
+
17
+ interface CapabilityConfig {
18
+ available?: boolean;
19
+ hasColorMap?: boolean;
20
+ }
21
+
10
22
  const dataStyleStore = useDataStyleStore();
11
23
  const hybridViewerStore = useHybridViewerStore();
12
24
  const { applyBatchStyle } = useBatchStyle();
13
25
 
14
- const { itemProps, btnImage, tooltip, capabilities } = defineProps({
15
- itemProps: { type: Object, required: true },
16
- btnImage: { type: String, required: true },
17
- tooltip: { type: String, required: false, default: "Polygons options" },
18
- capabilities: { type: Object, default: () => ({}) },
19
- });
26
+ interface Props {
27
+ itemProps: ItemProps & { index?: number };
28
+ btnImage: string;
29
+ tooltip?: string;
30
+ capabilities?: Record<string, CapabilityConfig>;
31
+ }
32
+
33
+ const {
34
+ itemProps,
35
+ btnImage,
36
+ tooltip = "Polygons options",
37
+ capabilities = {},
38
+ } = defineProps<Props>();
20
39
 
21
40
  const id = toRef(() => itemProps.id);
22
41
 
23
- const visibility = computed({
42
+ const visibility = computed<boolean>({
24
43
  get: () => dataStyleStore.meshPolygonsVisibility(id.value),
25
44
  set: async (newValue) => {
26
- await applyBatchStyle(id.value, (targetId) =>
45
+ await applyBatchStyle(id.value, (targetId: string) =>
27
46
  dataStyleStore.setMeshPolygonsVisibility(targetId, newValue),
28
47
  );
29
48
  hybridViewerStore.remoteRender();
30
49
  },
31
50
  });
32
- const coloring_style_key = computed({
51
+ const coloring_style_key = computed<string>({
33
52
  get: () => dataStyleStore.meshPolygonsActiveColoring(id.value),
34
53
  set: async (newValue) => {
35
- await applyBatchStyle(id.value, (targetId) =>
54
+ await applyBatchStyle(id.value, (targetId: string) =>
36
55
  dataStyleStore.setMeshPolygonsActiveColoring(targetId, newValue),
37
56
  );
38
57
  hybridViewerStore.remoteRender();
39
58
  },
40
59
  });
41
- const color = computed({
42
- get: () => dataStyleStore.meshPolygonsColor(id.value),
60
+ const color = computed<RGBAColor | undefined>({
61
+ get: () => dataStyleStore.meshPolygonsColor(id.value) as RGBAColor | undefined,
43
62
  set: async (newValue) => {
44
- await applyBatchStyle(id.value, (targetId) =>
63
+ await applyBatchStyle(id.value, (targetId: string) =>
45
64
  dataStyleStore.setMeshPolygonsColor(targetId, newValue),
46
65
  );
47
66
  hybridViewerStore.remoteRender();
48
67
  },
49
68
  });
50
- const textures = computed({
51
- get: () => dataStyleStore.meshPolygonsTextures(id.value),
69
+ const textures = computed<Texture[] | undefined>({
70
+ get: () => dataStyleStore.meshPolygonsTextures(id.value) as Texture[] | undefined,
52
71
  set: async (newValue) => {
53
- await applyBatchStyle(id.value, (targetId) =>
72
+ await applyBatchStyle(id.value, (targetId: string) =>
54
73
  dataStyleStore.setMeshPolygonsTextures(targetId, newValue),
55
74
  );
56
75
  hybridViewerStore.remoteRender();
57
76
  },
58
77
  });
59
78
 
60
- const vertex_attribute_name = computed({
79
+ const vertex_attribute_name = computed<string | undefined>({
61
80
  get: () => dataStyleStore.meshPolygonsVertexAttributeName(id.value),
62
81
  set: async (newValue) => {
63
- await applyBatchStyle(id.value, (targetId) =>
64
- dataStyleStore.setMeshPolygonsVertexAttributeName(targetId, newValue),
82
+ if (newValue === undefined) {
83
+ return;
84
+ }
85
+ await applyBatchStyle(id.value, (targetId: string) =>
86
+ Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeName(targetId, newValue)),
65
87
  );
66
88
  hybridViewerStore.remoteRender();
67
89
  },
68
90
  });
69
- const vertex_attribute_item = computed({
91
+ const vertex_attribute_item = computed<string | undefined>({
70
92
  get: () => dataStyleStore.meshPolygonsVertexAttributeItem(id.value),
71
93
  set: async (newValue) => {
72
- await applyBatchStyle(id.value, (targetId) =>
73
- dataStyleStore.setMeshPolygonsVertexAttributeItem(targetId, newValue),
94
+ await applyBatchStyle(id.value, (targetId: string) =>
95
+ Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeItem(targetId, newValue)),
74
96
  );
75
97
  hybridViewerStore.remoteRender();
76
98
  },
77
99
  });
78
- const vertex_attribute_range = computed({
100
+ const vertex_attribute_range = computed<[number, number] | undefined>({
79
101
  get: () => dataStyleStore.meshPolygonsVertexAttributeRange(id.value),
80
102
  set: async (newValue) => {
81
- await applyBatchStyle(id.value, (targetId) =>
82
- dataStyleStore.setMeshPolygonsVertexAttributeRange(targetId, newValue[0], newValue[1]),
103
+ const [minimum, maximum] = newValue;
104
+ if (minimum === undefined || maximum === undefined) {
105
+ return;
106
+ }
107
+ await applyBatchStyle(id.value, (targetId: string) =>
108
+ Promise.resolve(
109
+ dataStyleStore.setMeshPolygonsVertexAttributeRange(targetId, minimum, maximum),
110
+ ),
83
111
  );
84
112
  hybridViewerStore.remoteRender();
85
113
  },
86
114
  });
87
- const vertex_attribute_color_map = computed({
115
+ const vertex_attribute_color_map = computed<Map<string, RGBAColor>>({
88
116
  get: () => dataStyleStore.meshPolygonsVertexAttributeColorMap(id.value),
89
117
  set: async (newValue) => {
90
- await applyBatchStyle(id.value, (targetId) =>
91
- dataStyleStore.setMeshPolygonsVertexAttributeColorMap(targetId, newValue),
118
+ await applyBatchStyle(id.value, (targetId: string) =>
119
+ Promise.resolve(dataStyleStore.setMeshPolygonsVertexAttributeColorMap(targetId, newValue)),
92
120
  );
93
121
  hybridViewerStore.remoteRender();
94
122
  },
95
123
  });
96
- const vertex_attribute_no_data_color = computed({
97
- get: () => dataStyleStore.meshPolygonsVertexAttributeNoDataColor(id.value),
124
+ const vertex_attribute_no_data_color = computed<RGBAColor | undefined>({
125
+ get: () =>
126
+ dataStyleStore.meshPolygonsVertexAttributeNoDataColor(id.value) as RGBAColor | undefined,
98
127
  set: async (newValue) => {
99
- await applyBatchStyle(id.value, (targetId) =>
128
+ await applyBatchStyle(id.value, (targetId: string) =>
100
129
  dataStyleStore.setMeshPolygonsVertexAttributeNoDataColor(targetId, newValue),
101
130
  );
102
131
  hybridViewerStore.remoteRender();
103
132
  },
104
133
  });
105
- const polygon_attribute_name = computed({
134
+ const polygon_attribute_name = computed<string | undefined>({
106
135
  get: () => dataStyleStore.meshPolygonsPolygonAttributeName(id.value),
107
136
  set: async (newValue) => {
108
- await applyBatchStyle(id.value, (targetId) =>
109
- dataStyleStore.setMeshPolygonsPolygonAttributeName(targetId, newValue),
137
+ if (newValue === undefined) {
138
+ return;
139
+ }
140
+ await applyBatchStyle(id.value, (targetId: string) =>
141
+ Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeName(targetId, newValue)),
110
142
  );
111
143
  hybridViewerStore.remoteRender();
112
144
  },
113
145
  });
114
- const polygon_attribute_item = computed({
146
+ const polygon_attribute_item = computed<string | undefined>({
115
147
  get: () => dataStyleStore.meshPolygonsPolygonAttributeItem(id.value),
116
148
  set: async (newValue) => {
117
- await applyBatchStyle(id.value, (targetId) =>
118
- dataStyleStore.setMeshPolygonsPolygonAttributeItem(targetId, newValue),
149
+ await applyBatchStyle(id.value, (targetId: string) =>
150
+ Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeItem(targetId, newValue)),
119
151
  );
120
152
  hybridViewerStore.remoteRender();
121
153
  },
122
154
  });
123
- const polygon_attribute_range = computed({
155
+ const polygon_attribute_range = computed<[number, number] | undefined>({
124
156
  get: () => dataStyleStore.meshPolygonsPolygonAttributeRange(id.value),
125
157
  set: async (newValue) => {
126
- await applyBatchStyle(id.value, (targetId) =>
127
- dataStyleStore.setMeshPolygonsPolygonAttributeRange(targetId, newValue[0], newValue[1]),
158
+ const [minimum, maximum] = newValue;
159
+ if (minimum === undefined || maximum === undefined) {
160
+ return;
161
+ }
162
+ await applyBatchStyle(id.value, (targetId: string) =>
163
+ Promise.resolve(
164
+ dataStyleStore.setMeshPolygonsPolygonAttributeRange(targetId, minimum, maximum),
165
+ ),
128
166
  );
129
167
  hybridViewerStore.remoteRender();
130
168
  },
131
169
  });
132
- const polygon_attribute_color_map = computed({
170
+ const polygon_attribute_color_map = computed<Map<string, RGBAColor>>({
133
171
  get: () => dataStyleStore.meshPolygonsPolygonAttributeColorMap(id.value),
134
172
  set: async (newValue) => {
135
- await applyBatchStyle(id.value, (targetId) =>
136
- dataStyleStore.setMeshPolygonsPolygonAttributeColorMap(targetId, newValue),
173
+ await applyBatchStyle(id.value, (targetId: string) =>
174
+ Promise.resolve(dataStyleStore.setMeshPolygonsPolygonAttributeColorMap(targetId, newValue)),
137
175
  );
138
176
  hybridViewerStore.remoteRender();
139
177
  },
140
178
  });
141
- const polygon_attribute_no_data_color = computed({
142
- get: () => dataStyleStore.meshPolygonsPolygonAttributeNoDataColor(id.value),
179
+ const polygon_attribute_no_data_color = computed<RGBAColor | undefined>({
180
+ get: () =>
181
+ dataStyleStore.meshPolygonsPolygonAttributeNoDataColor(id.value) as RGBAColor | undefined,
143
182
  set: async (newValue) => {
144
- await applyBatchStyle(id.value, (targetId) =>
183
+ await applyBatchStyle(id.value, (targetId: string) =>
145
184
  dataStyleStore.setMeshPolygonsPolygonAttributeNoDataColor(targetId, newValue),
146
185
  );
147
186
  hybridViewerStore.remoteRender();
@@ -152,6 +191,7 @@ const polygon_attribute_no_data_color = computed({
152
191
  <template>
153
192
  <ViewerContextMenuItem
154
193
  data-testid="meshPolygonsMenu"
194
+ :index="itemProps.index!"
155
195
  :itemProps="itemProps"
156
196
  :tooltip="tooltip"
157
197
  :btnImage="btnImage"