@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,36 +1,72 @@
1
1
  import { isModelSurfacesPolygonAttributeValid, useModelSurfacesPolygonAttribute } from "./polygon";
2
2
  import { isModelSurfacesVertexAttributeValid, useModelSurfacesVertexAttribute } from "./vertex";
3
+ import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
4
+ import { useDataStore } from "@ogw_front/stores/data";
3
5
  import { useModelCommonStyle } from "@ogw_internal/stores/data_style/model/common";
4
6
  import { useModelSurfacesCommonStyle } from "./common";
5
7
  import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
6
8
 
7
9
  const schema = viewer_schemas.opengeodeweb_viewer.model.surfaces.color;
8
10
 
9
- export function useModelSurfacesColor() {
11
+ export function useModelSurfacesColor(): {
12
+ setModelSurfacesColor: (
13
+ modelId: string,
14
+ surfaces_ids: string[],
15
+ color: unknown,
16
+ activeColoring?: string,
17
+ ) => Promise<unknown>;
18
+ modelSurfaceColoring: (id: string, surface_id?: string) => StyleValues;
19
+ modelSurfaceColor: (id: string, surface_id?: string) => unknown;
20
+ modelSurfaceActiveColoring: (id: string, surface_id?: string) => unknown;
21
+ setModelSurfacesActiveColoring: (
22
+ modelId: string,
23
+ surfaces_ids: string[],
24
+ activeColoring: string,
25
+ ) => Promise<unknown>;
26
+ } {
27
+ const dataStore = useDataStore();
10
28
  const modelCommonStyle = useModelCommonStyle();
11
29
  const modelSurfacesCommonStyle = useModelSurfacesCommonStyle();
12
30
  const modelSurfacesVertexAttribute = useModelSurfacesVertexAttribute();
13
31
  const modelSurfacesPolygonAttribute = useModelSurfacesPolygonAttribute();
14
32
 
15
- function modelSurfaceColoring(id, surface_id) {
16
- return modelSurfacesCommonStyle.modelSurfaceStyle(id, surface_id).coloring;
33
+ function modelSurfaceColoring(id: string, surface_id?: string): StyleValues {
34
+ // oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
35
+ return modelSurfacesCommonStyle.modelSurfaceStyle(id, surface_id).coloring as StyleValues;
17
36
  }
18
37
 
19
- function modelSurfaceColor(id, surface_id) {
38
+ function modelSurfaceColor(id: string, surface_id?: string): unknown {
20
39
  return modelSurfaceColoring(id, surface_id).constant;
21
40
  }
22
41
 
23
- function setModelSurfacesColor(modelId, surfaces_ids, color, activeColoring = "constant") {
24
- return modelCommonStyle.setModelTypeColor(modelId, surfaces_ids, color, schema, activeColoring);
42
+ async function setModelSurfacesColor(
43
+ modelId: string,
44
+ surfaces_ids: string[],
45
+ color: unknown,
46
+ activeColoring = "constant",
47
+ ): Promise<unknown> {
48
+ const result = await modelCommonStyle.setModelTypeColor(
49
+ modelId,
50
+ surfaces_ids,
51
+ color,
52
+ schema,
53
+ activeColoring,
54
+ );
55
+ return result;
25
56
  }
26
57
 
27
- function modelSurfaceActiveColoring(id, surface_id) {
58
+ function modelSurfaceActiveColoring(id: string, surface_id?: string): unknown {
28
59
  return modelSurfaceColoring(id, surface_id).active;
29
60
  }
30
61
 
31
- async function setModelSurfacesActiveColoring(modelId, surfaces_ids, activeColoring) {
32
- if (surfaces_ids.length > 1) {
33
- modelSurfacesCommonStyle.mutateModelSurfacesTypeColoring(modelId, {
62
+ async function setModelSurfacesActiveColoring(
63
+ modelId: string,
64
+ surfaces_ids: string[],
65
+ activeColoring: string,
66
+ ): Promise<unknown> {
67
+ const totalSurfaceIds = await dataStore.getSurfacesGeodeIds(modelId);
68
+ if (surfaces_ids.length === totalSurfaceIds.length) {
69
+ await modelSurfacesCommonStyle.mutateModelSurfacesTypeColoring(modelId, {
34
70
  active: activeColoring,
35
71
  });
36
72
  }
@@ -93,6 +129,7 @@ export function useModelSurfacesColor() {
93
129
  );
94
130
  }
95
131
  }
132
+ return undefined;
96
133
  }
97
134
 
98
135
  return {
@@ -0,0 +1,69 @@
1
+ import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
2
+ import merge from "lodash/merge";
3
+ import { useDataStyleState } from "@ogw_internal/stores/data_style/state";
4
+ import { useModelCommonStyle } from "@ogw_internal/stores/data_style/model/common";
5
+
6
+ interface UseModelSurfacesCommonStyleReturn {
7
+ modelSurfacesStyle: (id: string) => StyleValues;
8
+ modelSurfaceStyle: (id: string, surface_id?: string) => StyleValues;
9
+ modelSurfaceColoring: (id: string, surface_id?: string) => StyleValues;
10
+ mutateModelSurfacesColoring: (
11
+ id: string,
12
+ surfaces_ids: readonly string[],
13
+ values: StyleValues,
14
+ ) => Promise<void>;
15
+ mutateModelSurfacesTypeColoring: (id: string, values: StyleValues) => Promise<void>;
16
+ }
17
+
18
+ export function useModelSurfacesCommonStyle(): UseModelSurfacesCommonStyleReturn {
19
+ const dataStyleState = useDataStyleState();
20
+ const modelCommonStyle = useModelCommonStyle();
21
+
22
+ function modelSurfacesStyle(id: string): StyleValues {
23
+ return dataStyleState.getStyle(id).surfaces ?? {};
24
+ }
25
+
26
+ function modelComponentTypeSurfacesStyle(id: string): StyleValues {
27
+ const defaultStyle = modelSurfacesStyle(id);
28
+ const typeStyle = dataStyleState.getModelComponentTypeStyle(id, "Surface");
29
+ return merge({}, defaultStyle, typeStyle);
30
+ }
31
+
32
+ function modelSurfaceStyle(id: string, surface_id?: string): StyleValues {
33
+ if (surface_id === undefined) {
34
+ return modelComponentTypeSurfacesStyle(id);
35
+ }
36
+ const typeStyle = modelComponentTypeSurfacesStyle(id);
37
+ const individualStyle = dataStyleState.getComponentStyle(id, surface_id);
38
+ return merge({}, typeStyle, individualStyle);
39
+ }
40
+
41
+ function modelSurfaceColoring(id: string, surface_id?: string): StyleValues {
42
+ // oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
43
+ return modelSurfaceStyle(id, surface_id).coloring as StyleValues;
44
+ }
45
+
46
+ async function mutateModelSurfacesColoring(
47
+ id: string,
48
+ surfaces_ids: readonly string[],
49
+ values: StyleValues,
50
+ ): Promise<void> {
51
+ await modelCommonStyle.mutateComponentStyles(id, [...surfaces_ids], {
52
+ coloring: values,
53
+ });
54
+ }
55
+
56
+ async function mutateModelSurfacesTypeColoring(id: string, values: StyleValues): Promise<void> {
57
+ await modelCommonStyle.mutateModelComponentTypeStyle(id, "Surface", {
58
+ coloring: values,
59
+ });
60
+ }
61
+
62
+ return {
63
+ modelSurfacesStyle,
64
+ modelSurfaceStyle,
65
+ modelSurfaceColoring,
66
+ mutateModelSurfacesColoring,
67
+ mutateModelSurfacesTypeColoring,
68
+ };
69
+ }
@@ -5,10 +5,35 @@ import { useModelSurfacesColor } from "./color";
5
5
  import { useModelSurfacesCommonStyle } from "./common";
6
6
  import { useModelSurfacesVisibility } from "./visibility";
7
7
 
8
- async function setModelSurfacesDefaultStyle(_id) {
8
+ interface ColorGroup {
9
+ color: unknown;
10
+ surfaces_ids: string[];
11
+ }
12
+
13
+ interface AttributeGroup {
14
+ name: string | undefined;
15
+ item: number | undefined;
16
+ minimum: number | undefined;
17
+ maximum: number | undefined;
18
+ colorMap: string | undefined;
19
+ surfaces_ids: string[];
20
+ }
21
+
22
+ async function setModelSurfacesDefaultStyle(_id: string): Promise<void> {
9
23
  // Placeholder
10
24
  }
11
- export function useModelSurfacesStyle() {
25
+
26
+ type UseModelSurfacesStyleReturn = ReturnType<typeof useModelSurfacesCommonStyle> &
27
+ ReturnType<typeof useModelSurfacesVisibility> &
28
+ ReturnType<typeof useModelSurfacesColor> &
29
+ ReturnType<typeof useModelSurfacesVertexAttribute> &
30
+ ReturnType<typeof useModelSurfacesPolygonAttribute> & {
31
+ applyModelSurfacesStyle: (modelId: string) => Promise<void>;
32
+ setModelSurfacesDefaultStyle: (id: string) => Promise<void>;
33
+ };
34
+
35
+ // oxlint-disable-next-line max-lines-per-function
36
+ export function useModelSurfacesStyle(): UseModelSurfacesStyleReturn {
12
37
  const dataStore = useDataStore();
13
38
  const modelCommonStyle = useModelSurfacesCommonStyle();
14
39
  const modelVisibilityStyle = useModelSurfacesVisibility();
@@ -16,57 +41,70 @@ export function useModelSurfacesStyle() {
16
41
  const modelSurfacesVertexAttribute = useModelSurfacesVertexAttribute();
17
42
  const modelSurfacesPolygonAttribute = useModelSurfacesPolygonAttribute();
18
43
 
19
- function applyModelSurfacesVisibilityStyle(modelId, surfaces_ids) {
20
- const visibilityGroups = {};
44
+ async function applyModelSurfacesVisibilityStyle(
45
+ modelId: string,
46
+ surfaces_ids: string[],
47
+ ): Promise<void> {
48
+ const visibilityGroups: Record<string, string[]> = {};
21
49
  for (const surfaces_id of surfaces_ids) {
22
50
  const style = modelCommonStyle.modelSurfaceStyle(modelId, surfaces_id);
23
51
  const visibility = String(style.visibility);
24
- if (!visibilityGroups[visibility]) {
25
- visibilityGroups[visibility] = [];
26
- }
52
+ visibilityGroups[visibility] ??= [];
27
53
  visibilityGroups[visibility].push(surfaces_id);
28
54
  }
29
- return Promise.all(
30
- Object.entries(visibilityGroups).map(([visibility, ids]) =>
31
- modelVisibilityStyle.setModelSurfacesVisibility(modelId, ids, visibility === "true"),
32
- ),
55
+ await Promise.all(
56
+ Object.entries(visibilityGroups).map(async ([visibility, ids]) => {
57
+ const result = await modelVisibilityStyle.setModelSurfacesVisibility(
58
+ modelId,
59
+ ids,
60
+ visibility === "true",
61
+ );
62
+ return result;
63
+ }),
33
64
  );
34
65
  }
35
66
 
36
- function applyModelSurfacesColoringStyle(modelId, surfaces_ids) {
37
- const activeColoringGroups = {};
67
+ async function applyModelSurfacesColoringStyle(
68
+ modelId: string,
69
+ surfaces_ids: string[],
70
+ ): Promise<unknown[]> {
71
+ const activeColoringGroups: Record<string, string[]> = {};
38
72
  for (const surfaces_id of surfaces_ids) {
39
- const activeColoring = modelColorStyle.modelSurfaceActiveColoring(modelId, surfaces_id);
40
- if (!activeColoringGroups[activeColoring]) {
41
- activeColoringGroups[activeColoring] = [];
42
- }
73
+ const activeColoring = String(
74
+ modelColorStyle.modelSurfaceActiveColoring(modelId, surfaces_id),
75
+ );
76
+ activeColoringGroups[activeColoring] ??= [];
43
77
  activeColoringGroups[activeColoring].push(surfaces_id);
44
78
  }
45
79
 
46
- const coloringPromises = [];
80
+ const coloringPromises: Promise<unknown>[] = [];
47
81
 
48
82
  for (const [type, type_surfaces_ids] of Object.entries(activeColoringGroups)) {
49
83
  if (type === "constant") {
50
- const colorGroups = {};
84
+ const colorGroups: Record<string, ColorGroup> = {};
51
85
  for (const surfaces_id of type_surfaces_ids) {
52
86
  const color = modelColorStyle.modelSurfaceColor(modelId, surfaces_id);
53
87
  const color_key = JSON.stringify(color);
54
- if (!colorGroups[color_key]) {
55
- colorGroups[color_key] = { color, surfaces_ids: [] };
56
- }
88
+ colorGroups[color_key] ??= { color, surfaces_ids: [] };
57
89
  colorGroups[color_key].surfaces_ids.push(surfaces_id);
58
90
  }
59
91
  coloringPromises.push(
60
- ...Object.values(colorGroups).map(({ color, surfaces_ids: ids }) =>
61
- modelColorStyle.setModelSurfacesColor(modelId, ids, color, "constant"),
62
- ),
92
+ ...Object.values(colorGroups).map(async ({ color, surfaces_ids: ids }) => {
93
+ const result = await modelColorStyle.setModelSurfacesColor(
94
+ modelId,
95
+ ids,
96
+ color,
97
+ "constant",
98
+ );
99
+ return result;
100
+ }),
63
101
  );
64
102
  } else if (type === "random") {
65
103
  coloringPromises.push(
66
104
  modelColorStyle.setModelSurfacesColor(modelId, type_surfaces_ids, undefined, "random"),
67
105
  );
68
106
  } else if (type === "vertex") {
69
- const vertexGroups = {};
107
+ const vertexGroups: Record<string, AttributeGroup> = {};
70
108
  for (const surfaces_id of type_surfaces_ids) {
71
109
  const name = modelSurfacesVertexAttribute.modelSurfacesVertexAttributeName(
72
110
  modelId,
@@ -89,32 +127,36 @@ export function useModelSurfacesStyle() {
89
127
  continue;
90
128
  }
91
129
  const key = `${name}_${item}_${colorMap}_${minimum}_${maximum}`;
92
- if (!vertexGroups[key]) {
93
- vertexGroups[key] = {
94
- name,
95
- item,
96
- minimum,
97
- maximum,
98
- colorMap,
99
- surfaces_ids: [],
100
- };
101
- }
130
+ vertexGroups[key] ??= {
131
+ name,
132
+ item,
133
+ minimum,
134
+ maximum,
135
+ colorMap,
136
+ surfaces_ids: [],
137
+ };
102
138
  vertexGroups[key].surfaces_ids.push(surfaces_id);
103
139
  }
104
140
  coloringPromises.push(
105
141
  ...Object.values(vertexGroups).map(
106
- ({ name, item, minimum, maximum, colorMap, surfaces_ids: ids }) =>
107
- modelSurfacesVertexAttribute.setModelSurfacesVertexAttribute(modelId, ids, {
108
- name,
109
- item,
110
- minimum,
111
- maximum,
112
- colorMap,
113
- }),
142
+ async ({ name, item, minimum, maximum, colorMap, surfaces_ids: ids }) => {
143
+ const result = await modelSurfacesVertexAttribute.setModelSurfacesVertexAttribute(
144
+ modelId,
145
+ ids,
146
+ {
147
+ name,
148
+ item,
149
+ minimum,
150
+ maximum,
151
+ colorMap,
152
+ },
153
+ );
154
+ return result;
155
+ },
114
156
  ),
115
157
  );
116
158
  } else if (type === "polygon") {
117
- const polygonGroups = {};
159
+ const polygonGroups: Record<string, AttributeGroup> = {};
118
160
  for (const surfaces_id of type_surfaces_ids) {
119
161
  const name = modelSurfacesPolygonAttribute.modelSurfacesPolygonAttributeName(
120
162
  modelId,
@@ -135,41 +177,46 @@ export function useModelSurfacesStyle() {
135
177
  continue;
136
178
  }
137
179
  const key = `${name}_${item}_${colorMap}_${minimum}_${maximum}`;
138
- if (!polygonGroups[key]) {
139
- polygonGroups[key] = {
140
- name,
141
- item,
142
- minimum,
143
- maximum,
144
- colorMap,
145
- surfaces_ids: [],
146
- };
147
- }
180
+ polygonGroups[key] ??= {
181
+ name,
182
+ item,
183
+ minimum,
184
+ maximum,
185
+ colorMap,
186
+ surfaces_ids: [],
187
+ };
148
188
  polygonGroups[key].surfaces_ids.push(surfaces_id);
149
189
  }
150
190
  coloringPromises.push(
151
191
  ...Object.values(polygonGroups).map(
152
- ({ name, item, minimum, maximum, colorMap, surfaces_ids: ids }) =>
153
- modelSurfacesPolygonAttribute.setModelSurfacesPolygonAttribute(modelId, ids, {
154
- name,
155
- item,
156
- minimum,
157
- maximum,
158
- colorMap,
159
- }),
192
+ async ({ name, item, minimum, maximum, colorMap, surfaces_ids: ids }) => {
193
+ const result = await modelSurfacesPolygonAttribute.setModelSurfacesPolygonAttribute(
194
+ modelId,
195
+ ids,
196
+ {
197
+ name,
198
+ item,
199
+ minimum,
200
+ maximum,
201
+ colorMap,
202
+ },
203
+ );
204
+ return result;
205
+ },
160
206
  ),
161
207
  );
162
208
  }
163
209
  }
164
- return Promise.all(coloringPromises);
210
+ const results = await Promise.all(coloringPromises);
211
+ return results;
165
212
  }
166
213
 
167
- async function applyModelSurfacesStyle(modelId) {
214
+ async function applyModelSurfacesStyle(modelId: string): Promise<void> {
168
215
  const surfaces_ids = await dataStore.getSurfacesGeodeIds(modelId);
169
216
  if (surfaces_ids.length === 0) {
170
217
  return;
171
218
  }
172
- return Promise.all([
219
+ await Promise.all([
173
220
  applyModelSurfacesVisibilityStyle(modelId, surfaces_ids),
174
221
  applyModelSurfacesColoringStyle(modelId, surfaces_ids),
175
222
  ]);