@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
@@ -0,0 +1,155 @@
1
+ // Third party imports
2
+
3
+ // Local imports
4
+ import { isMeshEdgesEdgeAttributeValid, useMeshEdgesEdgeAttributeStyle } from "./edge";
5
+ import { isMeshEdgesVertexAttributeValid, useMeshEdgesVertexAttributeStyle } from "./vertex";
6
+ import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
7
+ import { useMeshEdgesColorStyle } from "./color";
8
+ import { useMeshEdgesCommonStyle } from "./common";
9
+ import { useMeshEdgesVisibilityStyle } from "./visibility";
10
+ import { useMeshEdgesWidthStyle } from "./width";
11
+
12
+ // Local constants
13
+
14
+ interface MeshEdgesActiveColoringDeps {
15
+ readonly commonStyle: ReturnType<typeof useMeshEdgesCommonStyle>;
16
+ readonly colorStyle: ReturnType<typeof useMeshEdgesColorStyle>;
17
+ readonly vertexAttributeStyle: ReturnType<typeof useMeshEdgesVertexAttributeStyle>;
18
+ readonly edgeAttributeStyle: ReturnType<typeof useMeshEdgesEdgeAttributeStyle>;
19
+ }
20
+
21
+ function handleMeshEdgesVertexColoring(
22
+ id: string,
23
+ vertexAttributeStyle: ReturnType<typeof useMeshEdgesVertexAttributeStyle>,
24
+ ): Promise<unknown> | undefined {
25
+ const name = vertexAttributeStyle.meshEdgesVertexAttributeName(id);
26
+ const item = vertexAttributeStyle.meshEdgesVertexAttributeItem(id);
27
+ const [minimum, maximum] = vertexAttributeStyle.meshEdgesVertexAttributeRange(id);
28
+ const colorMap = vertexAttributeStyle.meshEdgesVertexAttributeColorMap(id);
29
+ const vertex_attribute = { name, item, minimum, maximum, colorMap };
30
+ if (!isMeshEdgesVertexAttributeValid(vertex_attribute)) {
31
+ return undefined;
32
+ }
33
+ return vertexAttributeStyle.setMeshEdgesVertexAttribute(id, vertex_attribute);
34
+ }
35
+
36
+ function handleMeshEdgesEdgeColoring(
37
+ id: string,
38
+ edgeAttributeStyle: ReturnType<typeof useMeshEdgesEdgeAttributeStyle>,
39
+ ): Promise<unknown> | undefined {
40
+ const name = edgeAttributeStyle.meshEdgesEdgeAttributeName(id);
41
+ const item = edgeAttributeStyle.meshEdgesEdgeAttributeItem(id);
42
+ const [minimum, maximum] = edgeAttributeStyle.meshEdgesEdgeAttributeRange(id);
43
+ const colorMap = edgeAttributeStyle.meshEdgesEdgeAttributeColorMap(id);
44
+ const edge_attribute = { name, item, minimum, maximum, colorMap };
45
+ if (!isMeshEdgesEdgeAttributeValid(edge_attribute)) {
46
+ return undefined;
47
+ }
48
+ return edgeAttributeStyle.setMeshEdgesEdgeAttribute(id, edge_attribute);
49
+ }
50
+
51
+ async function setMeshEdgesActiveColoring(
52
+ id: string,
53
+ type: string | undefined,
54
+ deps: MeshEdgesActiveColoringDeps,
55
+ ): Promise<unknown> {
56
+ await deps.commonStyle.mutateMeshEdgesStyle(id, {
57
+ coloring: { active: type },
58
+ });
59
+ if (type === "constant") {
60
+ const result = await deps.colorStyle.setMeshEdgesColor(id, deps.colorStyle.meshEdgesColor(id));
61
+ return result;
62
+ }
63
+ if (type === "vertex") {
64
+ const result = await handleMeshEdgesVertexColoring(id, deps.vertexAttributeStyle);
65
+ return result;
66
+ }
67
+ if (type === "edge") {
68
+ const result = await handleMeshEdgesEdgeColoring(id, deps.edgeAttributeStyle);
69
+ return result;
70
+ }
71
+ throw new Error(`Unknown mesh edges coloring type: ${type}`);
72
+ }
73
+
74
+ async function applyMeshEdgesStyle(
75
+ id: string,
76
+ visibilityStyle: ReturnType<typeof useMeshEdgesVisibilityStyle>,
77
+ widthStyle: ReturnType<typeof useMeshEdgesWidthStyle>,
78
+ activeColoringType: string | undefined,
79
+ deps: MeshEdgesActiveColoringDeps,
80
+ ): Promise<unknown[]> {
81
+ const result = await Promise.all([
82
+ visibilityStyle.setMeshEdgesVisibility(id, visibilityStyle.meshEdgesVisibility(id)),
83
+ widthStyle.setMeshEdgesWidth(id, widthStyle.meshEdgesWidth(id)),
84
+ setMeshEdgesActiveColoring(id, activeColoringType, deps),
85
+ ]);
86
+ return result;
87
+ }
88
+
89
+ type UseMeshEdgesStyleReturn = ReturnType<typeof useMeshEdgesCommonStyle> & {
90
+ meshEdgesColoring: (id: string) => StyleValues;
91
+ meshEdgesActiveColoring: (id: string) => string | undefined;
92
+ setMeshEdgesActiveColoring: (id: string, type: string | undefined) => Promise<unknown>;
93
+ applyMeshEdgesStyle: (id: string) => Promise<unknown[]>;
94
+ } & ReturnType<typeof useMeshEdgesVisibilityStyle> &
95
+ ReturnType<typeof useMeshEdgesColorStyle> &
96
+ ReturnType<typeof useMeshEdgesWidthStyle> &
97
+ ReturnType<typeof useMeshEdgesVertexAttributeStyle> &
98
+ ReturnType<typeof useMeshEdgesEdgeAttributeStyle>;
99
+
100
+ export function useMeshEdgesStyle(): UseMeshEdgesStyleReturn {
101
+ const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
102
+ const meshEdgesVisibility = useMeshEdgesVisibilityStyle();
103
+ const meshEdgesColorStyle = useMeshEdgesColorStyle();
104
+ const meshEdgesWidthStyle = useMeshEdgesWidthStyle();
105
+ const meshEdgesVertexAttributeStyle = useMeshEdgesVertexAttributeStyle();
106
+ const meshEdgesEdgeAttributeStyle = useMeshEdgesEdgeAttributeStyle();
107
+
108
+ const activeColoringDeps: MeshEdgesActiveColoringDeps = {
109
+ commonStyle: meshEdgesCommonStyle,
110
+ colorStyle: meshEdgesColorStyle,
111
+ vertexAttributeStyle: meshEdgesVertexAttributeStyle,
112
+ edgeAttributeStyle: meshEdgesEdgeAttributeStyle,
113
+ };
114
+
115
+ function meshEdgesColoring(id: string): StyleValues {
116
+ return meshEdgesCommonStyle.meshEdgesColoring(id);
117
+ }
118
+
119
+ function meshEdgesActiveColoring(id: string): string | undefined {
120
+ // oxlint-disable-next-line no-unsafe-type-assertion -- coloring.active is defined as string in the data style schema.
121
+ return meshEdgesColoring(id).active as string | undefined;
122
+ }
123
+
124
+ async function boundSetMeshEdgesActiveColoring(
125
+ id: string,
126
+ type: string | undefined,
127
+ ): Promise<unknown> {
128
+ const result = await setMeshEdgesActiveColoring(id, type, activeColoringDeps);
129
+ return result;
130
+ }
131
+
132
+ async function boundApplyMeshEdgesStyle(id: string): Promise<unknown[]> {
133
+ const result = await applyMeshEdgesStyle(
134
+ id,
135
+ meshEdgesVisibility,
136
+ meshEdgesWidthStyle,
137
+ meshEdgesActiveColoring(id),
138
+ activeColoringDeps,
139
+ );
140
+ return result;
141
+ }
142
+
143
+ return {
144
+ ...meshEdgesCommonStyle,
145
+ meshEdgesColoring,
146
+ meshEdgesActiveColoring,
147
+ setMeshEdgesActiveColoring: boundSetMeshEdgesActiveColoring,
148
+ applyMeshEdgesStyle: boundApplyMeshEdgesStyle,
149
+ ...meshEdgesVisibility,
150
+ ...meshEdgesColorStyle,
151
+ ...meshEdgesWidthStyle,
152
+ ...meshEdgesVertexAttributeStyle,
153
+ ...meshEdgesEdgeAttributeStyle,
154
+ };
155
+ }
@@ -0,0 +1,285 @@
1
+ import { DEFAULT_NO_DATA_COLOR } from "@ogw_front/utils/default_styles/constants";
2
+ // Third party imports
3
+ import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
4
+
5
+ // Local imports
6
+ import { getRGBPointsFromPreset } from "@ogw_front/utils/colormap";
7
+ import { useMeshEdgesCommonStyle } from "./common";
8
+ import { useViewerStore } from "@ogw_front/stores/viewer";
9
+
10
+ // Local constants
11
+ const meshEdgesVertexAttributeSchemas =
12
+ viewer_schemas.opengeodeweb_viewer.mesh.edges.attribute.vertex;
13
+
14
+ interface AttributeStoredConfig {
15
+ minimum: number | undefined;
16
+ maximum: number | undefined;
17
+ colorMap: string | undefined;
18
+ no_data_color: unknown;
19
+ }
20
+
21
+ interface AttributeState {
22
+ name?: string;
23
+ item?: number;
24
+ storedConfigs?: Record<string, { lastItem: number } & Record<string, AttributeStoredConfig>>;
25
+ }
26
+
27
+ interface AttributeInput {
28
+ name: string | undefined;
29
+ item: number | undefined;
30
+ minimum: number | undefined;
31
+ maximum: number | undefined;
32
+ colorMap: string | undefined;
33
+ no_data_color?: unknown;
34
+ }
35
+
36
+ function isMeshEdgesVertexAttributeValid({
37
+ name,
38
+ item,
39
+ minimum,
40
+ maximum,
41
+ colorMap,
42
+ }: AttributeInput): boolean {
43
+ return (
44
+ name !== undefined &&
45
+ item !== undefined &&
46
+ minimum !== undefined &&
47
+ maximum !== undefined &&
48
+ colorMap !== undefined
49
+ );
50
+ }
51
+
52
+ interface UseMeshEdgesVertexAttributeStyleReturn {
53
+ meshEdgesVertexAttributeName: (id: string) => string | undefined;
54
+ meshEdgesVertexAttributeItem: (id: string) => number;
55
+ meshEdgesVertexAttributeRange: (id: string) => [number | undefined, number | undefined];
56
+ meshEdgesVertexAttributeColorMap: (id: string) => string | undefined;
57
+ meshEdgesVertexAttributeStoredConfig: (
58
+ id: string,
59
+ name: string | undefined,
60
+ item: number | undefined,
61
+ ) => AttributeStoredConfig;
62
+ setMeshEdgesVertexAttribute: (id: string, input: AttributeInput) => Promise<unknown>;
63
+ setMeshEdgesVertexAttributeName: (id: string, name: string) => Promise<unknown>;
64
+ setMeshEdgesVertexAttributeItem: (id: string, item: number) => Promise<unknown>;
65
+ setMeshEdgesVertexAttributeRange: (
66
+ id: string,
67
+ minimum: number,
68
+ maximum: number,
69
+ ) => Promise<unknown>;
70
+ setMeshEdgesVertexAttributeColorMap: (
71
+ id: string,
72
+ colorMap: string | undefined,
73
+ ) => Promise<unknown>;
74
+ meshEdgesVertexAttributeNoDataColor: (id: string) => unknown;
75
+ setMeshEdgesVertexAttributeNoDataColor: (id: string, no_data_color: unknown) => Promise<unknown>;
76
+ }
77
+
78
+ // oxlint-disable-next-line max-lines-per-function
79
+ function useMeshEdgesVertexAttributeStyle(): UseMeshEdgesVertexAttributeStyleReturn {
80
+ const viewerStore = useViewerStore();
81
+ const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
82
+ function meshEdgesVertexAttribute(id: string): AttributeState {
83
+ // oxlint-disable-next-line no-unsafe-type-assertion -- coloring.vertex shape is defined by the data style schema.
84
+ return meshEdgesCommonStyle.meshEdgesColoring(id).vertex as AttributeState;
85
+ }
86
+ function meshEdgesVertexAttributeStoredConfig(
87
+ id: string,
88
+ name: string | undefined,
89
+ item: number | undefined,
90
+ ): AttributeStoredConfig {
91
+ const { storedConfigs } = meshEdgesVertexAttribute(id);
92
+ const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
93
+ const itemConfig = item === undefined ? undefined : nameConfig?.[item];
94
+ if (itemConfig !== undefined) {
95
+ return itemConfig;
96
+ }
97
+ return {
98
+ minimum: undefined,
99
+ maximum: undefined,
100
+ colorMap: undefined,
101
+ no_data_color: DEFAULT_NO_DATA_COLOR,
102
+ };
103
+ }
104
+ async function mutateMeshEdgesVertexStyle(
105
+ id: string,
106
+ values: Record<string, unknown>,
107
+ ): Promise<string> {
108
+ const result = await meshEdgesCommonStyle.mutateMeshEdgesStyle(id, {
109
+ coloring: {
110
+ vertex: values,
111
+ },
112
+ });
113
+ return result;
114
+ }
115
+ async function setMeshEdgesVertexAttributeStoredConfig(
116
+ id: string,
117
+ name: string | undefined,
118
+ item: number | undefined,
119
+ config: Partial<AttributeStoredConfig>,
120
+ ): Promise<string> {
121
+ const result = await mutateMeshEdgesVertexStyle(id, {
122
+ storedConfigs: {
123
+ [name ?? ""]: {
124
+ lastItem: item,
125
+ [item ?? 0]: config,
126
+ },
127
+ },
128
+ });
129
+ return result;
130
+ }
131
+ function meshEdgesVertexAttributeName(id: string): string | undefined {
132
+ return meshEdgesVertexAttribute(id).name;
133
+ }
134
+ function meshEdgesVertexAttributeLastItem(id: string, name: string | undefined): number {
135
+ const { storedConfigs } = meshEdgesVertexAttribute(id);
136
+ const nameConfig = name === undefined ? undefined : storedConfigs?.[name];
137
+ if (nameConfig !== undefined) {
138
+ return nameConfig.lastItem;
139
+ }
140
+ return 0;
141
+ }
142
+ function meshEdgesVertexAttributeItem(id: string): number {
143
+ const { item, name } = meshEdgesVertexAttribute(id);
144
+ return item ?? meshEdgesVertexAttributeLastItem(id, name);
145
+ }
146
+ async function setMeshEdgesVertexAttribute(
147
+ id: string,
148
+ {
149
+ name,
150
+ item,
151
+ minimum,
152
+ maximum,
153
+ colorMap,
154
+ no_data_color = DEFAULT_NO_DATA_COLOR,
155
+ }: AttributeInput,
156
+ ): Promise<unknown> {
157
+ await mutateMeshEdgesVertexStyle(id, {
158
+ name,
159
+ item,
160
+ });
161
+ await setMeshEdgesVertexAttributeStoredConfig(id, name, item, {
162
+ minimum,
163
+ maximum,
164
+ colorMap,
165
+ no_data_color,
166
+ });
167
+ const points = getRGBPointsFromPreset(colorMap ?? "");
168
+ const schema = meshEdgesVertexAttributeSchemas.attribute;
169
+ const params = {
170
+ id,
171
+ name,
172
+ item,
173
+ points,
174
+ minimum,
175
+ maximum,
176
+ no_data_color,
177
+ };
178
+ return viewerStore.request({
179
+ schema,
180
+ params,
181
+ });
182
+ }
183
+ async function applyVertexAttribute(id: string): Promise<unknown> {
184
+ const name = meshEdgesVertexAttributeName(id);
185
+ const item = meshEdgesVertexAttributeItem(id);
186
+ const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
187
+ const attribute = {
188
+ name,
189
+ item,
190
+ minimum: storedConfig.minimum,
191
+ maximum: storedConfig.maximum,
192
+ colorMap: storedConfig.colorMap,
193
+ no_data_color: storedConfig.no_data_color,
194
+ };
195
+ if (isMeshEdgesVertexAttributeValid(attribute)) {
196
+ const result = await setMeshEdgesVertexAttribute(id, attribute);
197
+ return result;
198
+ }
199
+ return undefined;
200
+ }
201
+ async function setMeshEdgesVertexAttributeName(id: string, name: string): Promise<unknown> {
202
+ const item = meshEdgesVertexAttributeLastItem(id, name);
203
+ await mutateMeshEdgesVertexStyle(id, {
204
+ name,
205
+ item,
206
+ });
207
+ return applyVertexAttribute(id);
208
+ }
209
+ async function setMeshEdgesVertexAttributeItem(id: string, item: number): Promise<unknown> {
210
+ await mutateMeshEdgesVertexStyle(id, {
211
+ item,
212
+ });
213
+ return applyVertexAttribute(id);
214
+ }
215
+ function meshEdgesVertexAttributeRange(id: string): [number | undefined, number | undefined] {
216
+ const name = meshEdgesVertexAttributeName(id);
217
+ const item = meshEdgesVertexAttributeItem(id);
218
+ const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
219
+ return [storedConfig.minimum, storedConfig.maximum];
220
+ }
221
+ async function setMeshEdgesVertexAttributeRange(
222
+ id: string,
223
+ minimum: number,
224
+ maximum: number,
225
+ ): Promise<unknown> {
226
+ const name = meshEdgesVertexAttributeName(id);
227
+ const item = meshEdgesVertexAttributeItem(id);
228
+ await setMeshEdgesVertexAttributeStoredConfig(id, name, item, {
229
+ minimum,
230
+ maximum,
231
+ });
232
+ return applyVertexAttribute(id);
233
+ }
234
+ function meshEdgesVertexAttributeColorMap(id: string): string | undefined {
235
+ const name = meshEdgesVertexAttributeName(id);
236
+ const item = meshEdgesVertexAttributeItem(id);
237
+ const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
238
+ return storedConfig.colorMap;
239
+ }
240
+ async function setMeshEdgesVertexAttributeColorMap(
241
+ id: string,
242
+ colorMap: string | undefined,
243
+ ): Promise<unknown> {
244
+ const name = meshEdgesVertexAttributeName(id);
245
+ const item = meshEdgesVertexAttributeItem(id);
246
+ await setMeshEdgesVertexAttributeStoredConfig(id, name, item, {
247
+ colorMap,
248
+ });
249
+ return applyVertexAttribute(id);
250
+ }
251
+ function meshEdgesVertexAttributeNoDataColor(id: string): unknown {
252
+ const name = meshEdgesVertexAttributeName(id);
253
+ const item = meshEdgesVertexAttributeItem(id);
254
+ const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
255
+ return storedConfig.no_data_color;
256
+ }
257
+ async function setMeshEdgesVertexAttributeNoDataColor(
258
+ id: string,
259
+ no_data_color: unknown,
260
+ ): Promise<unknown> {
261
+ const name = meshEdgesVertexAttributeName(id);
262
+ const item = meshEdgesVertexAttributeItem(id);
263
+ const storedConfig = meshEdgesVertexAttributeStoredConfig(id, name, item);
264
+ await setMeshEdgesVertexAttributeStoredConfig(id, name, item, {
265
+ ...storedConfig,
266
+ no_data_color,
267
+ });
268
+ return applyVertexAttribute(id);
269
+ }
270
+ return {
271
+ meshEdgesVertexAttributeName,
272
+ meshEdgesVertexAttributeItem,
273
+ meshEdgesVertexAttributeRange,
274
+ meshEdgesVertexAttributeColorMap,
275
+ meshEdgesVertexAttributeStoredConfig,
276
+ setMeshEdgesVertexAttribute,
277
+ setMeshEdgesVertexAttributeName,
278
+ setMeshEdgesVertexAttributeItem,
279
+ setMeshEdgesVertexAttributeRange,
280
+ setMeshEdgesVertexAttributeColorMap,
281
+ meshEdgesVertexAttributeNoDataColor,
282
+ setMeshEdgesVertexAttributeNoDataColor,
283
+ };
284
+ }
285
+ export { isMeshEdgesVertexAttributeValid, useMeshEdgesVertexAttributeStyle };
@@ -0,0 +1,45 @@
1
+ // Third party imports
2
+ import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
3
+
4
+ import { useMeshEdgesCommonStyle } from "./common";
5
+ import { useViewerStore } from "@ogw_front/stores/viewer";
6
+
7
+ // Local constants
8
+ const schema = viewer_schemas.opengeodeweb_viewer.mesh.edges.visibility;
9
+
10
+ export function useMeshEdgesVisibilityStyle(): {
11
+ meshEdgesVisibility: (id: string) => boolean | undefined;
12
+ setMeshEdgesVisibility: (id: string, visibility: boolean | undefined) => Promise<unknown>;
13
+ } {
14
+ const viewerStore = useViewerStore();
15
+ const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
16
+
17
+ function meshEdgesVisibility(id: string): boolean | undefined {
18
+ // oxlint-disable-next-line no-unsafe-type-assertion -- visibility is defined as boolean in the data style schema.
19
+ return meshEdgesCommonStyle.meshEdgesStyle(id).visibility as boolean | undefined;
20
+ }
21
+ async function setMeshEdgesVisibility(
22
+ id: string,
23
+ visibility: boolean | undefined,
24
+ ): Promise<unknown> {
25
+ const params = { id, visibility };
26
+ const result = await viewerStore.request(
27
+ {
28
+ schema,
29
+ params,
30
+ },
31
+ {
32
+ response_function: async () => {
33
+ const mutateResult = await meshEdgesCommonStyle.mutateMeshEdgesStyle(id, { visibility });
34
+ return mutateResult;
35
+ },
36
+ },
37
+ );
38
+ return result;
39
+ }
40
+
41
+ return {
42
+ meshEdgesVisibility,
43
+ setMeshEdgesVisibility,
44
+ };
45
+ }
@@ -0,0 +1,42 @@
1
+ // Third party imports
2
+ import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
3
+
4
+ import { useMeshEdgesCommonStyle } from "./common";
5
+ import { useViewerStore } from "@ogw_front/stores/viewer";
6
+
7
+ // Local constants
8
+ const schema = viewer_schemas.opengeodeweb_viewer.mesh.edges.width;
9
+
10
+ export function useMeshEdgesWidthStyle(): {
11
+ meshEdgesWidth: (id: string) => number | undefined;
12
+ setMeshEdgesWidth: (id: string, width: number | undefined) => Promise<unknown>;
13
+ } {
14
+ const viewerStore = useViewerStore();
15
+ const meshEdgesCommonStyle = useMeshEdgesCommonStyle();
16
+
17
+ function meshEdgesWidth(id: string): number | undefined {
18
+ // oxlint-disable-next-line no-unsafe-type-assertion -- width is defined as number in the data style schema.
19
+ return meshEdgesCommonStyle.meshEdgesStyle(id).width as number | undefined;
20
+ }
21
+ async function setMeshEdgesWidth(id: string, width: number | undefined): Promise<unknown> {
22
+ const params = { id, width };
23
+ const result = await viewerStore.request(
24
+ {
25
+ schema,
26
+ params,
27
+ },
28
+ {
29
+ response_function: async () => {
30
+ const mutateResult = await meshEdgesCommonStyle.mutateMeshEdgesStyle(id, { width });
31
+ return mutateResult;
32
+ },
33
+ },
34
+ );
35
+ return result;
36
+ }
37
+
38
+ return {
39
+ meshEdgesWidth,
40
+ setMeshEdgesWidth,
41
+ };
42
+ }
@@ -15,7 +15,18 @@ import { useMeshPolyhedraStyle } from "./polyhedra";
15
15
  // Local constants
16
16
  const meshSchemas = viewer_schemas.opengeodeweb_viewer.mesh;
17
17
 
18
- export function useMeshStyle() {
18
+ // oxlint-disable-next-line max-lines-per-function
19
+ export function useMeshStyle(): {
20
+ meshVisibility: (id: string) => boolean | undefined;
21
+ setMeshVisibility: (id: string, visibility: boolean | undefined) => Promise<unknown>;
22
+ meshColor: (id: string) => unknown;
23
+ setMeshColor: (id: string, color: unknown) => Promise<unknown>;
24
+ applyMeshStyle: (id: string) => Promise<unknown[]>;
25
+ } & ReturnType<typeof useMeshPointsStyle> &
26
+ ReturnType<typeof useMeshEdgesStyle> &
27
+ ReturnType<typeof useMeshCellsStyle> &
28
+ ReturnType<typeof useMeshPolygonsStyle> &
29
+ ReturnType<typeof useMeshPolyhedraStyle> {
19
30
  const hybridViewerStore = useHybridViewerStore();
20
31
  const viewerStore = useViewerStore();
21
32
  const dataStyleState = useDataStyleState();
@@ -25,50 +36,58 @@ export function useMeshStyle() {
25
36
  const meshPolygonsStyle = useMeshPolygonsStyle();
26
37
  const meshPolyhedraStyle = useMeshPolyhedraStyle();
27
38
 
28
- function meshVisibility(id) {
39
+ function meshVisibility(id: string): boolean | undefined {
29
40
  return dataStyleState.getStyle(id).visibility;
30
41
  }
31
- function setMeshVisibility(id, visibility) {
42
+ async function setMeshVisibility(id: string, visibility: boolean | undefined): Promise<unknown> {
32
43
  const schema = meshSchemas.visibility;
33
44
  const params = { id, visibility };
34
- return viewerStore.request(
45
+ const result = await viewerStore.request(
35
46
  {
36
47
  schema,
37
48
  params,
38
49
  },
39
50
  {
40
51
  response_function: async () => {
41
- await hybridViewerStore.setVisibility(id, visibility);
42
- return dataStyleState.mutateStyle(id, { visibility });
52
+ if (visibility !== undefined) {
53
+ hybridViewerStore.setVisibility(id, visibility);
54
+ }
55
+ const mutatedId = await dataStyleState.mutateStyle(id, { visibility });
56
+ return mutatedId;
43
57
  },
44
58
  },
45
59
  );
60
+ return result;
46
61
  }
47
62
 
48
- function meshColor(id) {
63
+ function meshColor(id: string): unknown {
49
64
  return dataStyleState.getStyle(id).color;
50
65
  }
51
66
 
52
- function setMeshColor(id, color) {
67
+ async function setMeshColor(id: string, color: unknown): Promise<unknown> {
53
68
  const schema = meshSchemas.color;
54
69
  const params = { id, color };
55
- return viewerStore.request(
70
+ const result = await viewerStore.request(
56
71
  {
57
72
  schema,
58
73
  params,
59
74
  },
60
75
  {
61
- response_function: () => dataStyleState.mutateStyle(id, { color }),
76
+ response_function: async () => {
77
+ const mutatedId = await dataStyleState.mutateStyle(id, { color });
78
+ return mutatedId;
79
+ },
62
80
  },
63
81
  );
82
+ return result;
64
83
  }
65
84
 
66
- function applyMeshStyle(id) {
85
+ async function applyMeshStyle(id: string): Promise<unknown[]> {
67
86
  const style = dataStyleState.getStyle(id);
68
- const promise_array = [];
87
+ const promise_array: unknown[] = [];
69
88
  for (const [key, value] of Object.entries(style)) {
70
89
  if (key === "visibility") {
71
- promise_array.push(setMeshVisibility(id, value));
90
+ promise_array.push(setMeshVisibility(id, style.visibility));
72
91
  } else if (key === "color") {
73
92
  promise_array.push(setMeshColor(id, value));
74
93
  } else if (key === "points") {
@@ -95,7 +114,8 @@ export function useMeshStyle() {
95
114
  throw new Error(`Unknown mesh key: ${key}`);
96
115
  }
97
116
  }
98
- return Promise.all(promise_array);
117
+ const results = await Promise.all(promise_array);
118
+ return results;
99
119
  }
100
120
 
101
121
  return {
@@ -8,27 +8,33 @@ import { useViewerStore } from "@ogw_front/stores/viewer";
8
8
  // Local constants
9
9
  const schema = viewer_schemas.opengeodeweb_viewer.mesh.points.color;
10
10
 
11
- export function useMeshPointsColorStyle() {
11
+ export function useMeshPointsColorStyle(): {
12
+ meshPointsColor: (id: string) => unknown;
13
+ setMeshPointsColor: (id: string, color: unknown) => Promise<unknown>;
14
+ } {
12
15
  const viewerStore = useViewerStore();
13
16
  const meshPointsCommonStyle = useMeshPointsCommonStyle();
14
17
 
15
- function meshPointsColor(id) {
18
+ function meshPointsColor(id: string): unknown {
16
19
  return meshPointsCommonStyle.meshPointsColoring(id).constant;
17
20
  }
18
- function setMeshPointsColor(id, color) {
21
+ async function setMeshPointsColor(id: string, color: unknown): Promise<unknown> {
19
22
  const params = { id, color };
20
- return viewerStore.request(
23
+ const result = await viewerStore.request(
21
24
  {
22
25
  schema,
23
26
  params,
24
27
  },
25
28
  {
26
- response_function: () =>
27
- meshPointsCommonStyle.mutateMeshPointsColoring(id, {
29
+ response_function: async () => {
30
+ const mutateResult = await meshPointsCommonStyle.mutateMeshPointsColoring(id, {
28
31
  constant: color,
29
- }),
32
+ });
33
+ return mutateResult;
34
+ },
30
35
  },
31
36
  );
37
+ return result;
32
38
  }
33
39
 
34
40
  return {