@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
@@ -3,37 +3,73 @@ import {
3
3
  useModelBlocksPolyhedronAttribute,
4
4
  } from "./polyhedron";
5
5
  import { isModelBlocksVertexAttributeValid, useModelBlocksVertexAttribute } from "./vertex";
6
+ import type { StyleValues } from "@ogw_internal/stores/data_style/types.js";
7
+ import { useDataStore } from "@ogw_front/stores/data";
6
8
  import { useModelBlocksCommonStyle } from "./common";
7
9
  import { useModelCommonStyle } from "@ogw_internal/stores/data_style/model/common";
8
10
  import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
9
11
 
10
12
  const schema = viewer_schemas.opengeodeweb_viewer.model.blocks.color;
11
13
 
12
- export function useModelBlocksColor() {
14
+ export function useModelBlocksColor(): {
15
+ modelBlockColoring: (id: string, block_id?: string) => StyleValues;
16
+ modelBlockColor: (id: string, block_id?: string) => unknown;
17
+ setModelBlocksColor: (
18
+ modelId: string,
19
+ blocks_ids: string[],
20
+ color: unknown,
21
+ activeColoring?: string,
22
+ ) => Promise<unknown>;
23
+ modelBlockActiveColoring: (id: string, block_id?: string) => unknown;
24
+ setModelBlocksActiveColoring: (
25
+ modelId: string,
26
+ blocks_ids: string[],
27
+ activeColoring: string,
28
+ ) => Promise<void>;
29
+ } {
30
+ const dataStore = useDataStore();
13
31
  const modelCommonStyle = useModelCommonStyle();
14
32
  const modelBlocksCommonStyle = useModelBlocksCommonStyle();
15
33
  const modelBlocksVertexAttribute = useModelBlocksVertexAttribute();
16
34
  const modelBlocksPolyhedronAttribute = useModelBlocksPolyhedronAttribute();
17
35
 
18
- function modelBlockColoring(id, block_id) {
19
- return modelBlocksCommonStyle.modelBlockStyle(id, block_id).coloring;
36
+ function modelBlockColoring(id: string, block_id?: string): StyleValues {
37
+ // oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
38
+ return modelBlocksCommonStyle.modelBlockStyle(id, block_id).coloring as StyleValues;
20
39
  }
21
40
 
22
- function modelBlockColor(id, block_id) {
41
+ function modelBlockColor(id: string, block_id?: string): unknown {
23
42
  return modelBlockColoring(id, block_id).constant;
24
43
  }
25
44
 
26
- function setModelBlocksColor(modelId, blocks_ids, color, activeColoring = "constant") {
27
- return modelCommonStyle.setModelTypeColor(modelId, blocks_ids, color, schema, activeColoring);
45
+ async function setModelBlocksColor(
46
+ modelId: string,
47
+ blocks_ids: string[],
48
+ color: unknown,
49
+ activeColoring = "constant",
50
+ ): Promise<unknown> {
51
+ const result = await modelCommonStyle.setModelTypeColor(
52
+ modelId,
53
+ blocks_ids,
54
+ color,
55
+ schema,
56
+ activeColoring,
57
+ );
58
+ return result;
28
59
  }
29
60
 
30
- function modelBlockActiveColoring(id, block_id) {
61
+ function modelBlockActiveColoring(id: string, block_id?: string): unknown {
31
62
  return modelBlockColoring(id, block_id).active;
32
63
  }
33
64
 
34
- async function setModelBlocksActiveColoring(modelId, blocks_ids, activeColoring) {
35
- if (blocks_ids.length > 1) {
36
- modelBlocksCommonStyle.mutateModelBlocksTypeColoring(modelId, {
65
+ async function setModelBlocksActiveColoring(
66
+ modelId: string,
67
+ blocks_ids: string[],
68
+ activeColoring: string,
69
+ ): Promise<void> {
70
+ const totalBlockIds = await dataStore.getBlocksGeodeIds(modelId);
71
+ if (blocks_ids.length === totalBlockIds.length) {
72
+ await modelBlocksCommonStyle.mutateModelBlocksTypeColoring(modelId, {
37
73
  active: activeColoring,
38
74
  });
39
75
  }
@@ -42,7 +78,8 @@ export function useModelBlocksColor() {
42
78
  });
43
79
  if (activeColoring === "constant" || activeColoring === "random") {
44
80
  const color = modelBlockColor(modelId, blocks_ids[0]);
45
- return setModelBlocksColor(modelId, blocks_ids, color, activeColoring);
81
+ await setModelBlocksColor(modelId, blocks_ids, color, activeColoring);
82
+ return;
46
83
  }
47
84
 
48
85
  if (activeColoring === "vertex") {
@@ -64,7 +101,7 @@ export function useModelBlocksColor() {
64
101
  );
65
102
  const attribute = { name, item, minimum, maximum, colorMap };
66
103
  if (isModelBlocksVertexAttributeValid(attribute)) {
67
- return modelBlocksVertexAttribute.setModelBlocksVertexAttribute(
104
+ await modelBlocksVertexAttribute.setModelBlocksVertexAttribute(
68
105
  modelId,
69
106
  blocks_ids,
70
107
  attribute,
@@ -89,7 +126,7 @@ export function useModelBlocksColor() {
89
126
  );
90
127
  const attribute = { name, item, minimum, maximum, colorMap };
91
128
  if (isModelBlocksPolyhedronAttributeValid(attribute)) {
92
- return modelBlocksPolyhedronAttribute.setModelBlocksPolyhedronAttribute(
129
+ await modelBlocksPolyhedronAttribute.setModelBlocksPolyhedronAttribute(
93
130
  modelId,
94
131
  blocks_ids,
95
132
  attribute,
@@ -0,0 +1,67 @@
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
+ export function useModelBlocksCommonStyle(): {
7
+ modelBlocksStyle: (id: string) => StyleValues;
8
+ modelBlockStyle: (id: string, block_id?: string) => StyleValues;
9
+ modelBlockColoring: (id: string, block_id?: string) => StyleValues;
10
+ mutateModelBlocksColoring: (
11
+ id: string,
12
+ blocks_ids: string[],
13
+ values: StyleValues,
14
+ ) => Promise<void>;
15
+ mutateModelBlocksTypeColoring: (id: string, values: StyleValues) => Promise<void>;
16
+ } {
17
+ const dataStyleState = useDataStyleState();
18
+ const modelCommonStyle = useModelCommonStyle();
19
+
20
+ function modelBlocksStyle(id: string): StyleValues {
21
+ return dataStyleState.getStyle(id).blocks ?? {};
22
+ }
23
+
24
+ function modelComponentTypeBlocksStyle(id: string): StyleValues {
25
+ const defaultStyle = modelBlocksStyle(id);
26
+ const typeStyle = dataStyleState.getModelComponentTypeStyle(id, "Block");
27
+ return merge({}, defaultStyle, typeStyle);
28
+ }
29
+
30
+ function modelBlockStyle(id: string, block_id?: string): StyleValues {
31
+ if (block_id === undefined) {
32
+ return modelComponentTypeBlocksStyle(id);
33
+ }
34
+ const typeStyle = modelComponentTypeBlocksStyle(id);
35
+ const individualStyle = dataStyleState.getComponentStyle(id, block_id);
36
+ return merge({}, typeStyle, individualStyle);
37
+ }
38
+
39
+ function modelBlockColoring(id: string, block_id?: string): StyleValues {
40
+ // oxlint-disable-next-line no-unsafe-type-assertion -- coloring shape is defined by the data style schema.
41
+ return modelBlockStyle(id, block_id).coloring as StyleValues;
42
+ }
43
+
44
+ async function mutateModelBlocksColoring(
45
+ id: string,
46
+ blocks_ids: string[],
47
+ values: StyleValues,
48
+ ): Promise<void> {
49
+ await modelCommonStyle.mutateComponentStyles(id, blocks_ids, {
50
+ coloring: values,
51
+ });
52
+ }
53
+
54
+ async function mutateModelBlocksTypeColoring(id: string, values: StyleValues): Promise<void> {
55
+ await modelCommonStyle.mutateModelComponentTypeStyle(id, "Block", {
56
+ coloring: values,
57
+ });
58
+ }
59
+
60
+ return {
61
+ modelBlocksStyle,
62
+ modelBlockStyle,
63
+ modelBlockColoring,
64
+ mutateModelBlocksColoring,
65
+ mutateModelBlocksTypeColoring,
66
+ };
67
+ }
@@ -8,11 +8,35 @@ import { useModelBlocksColor } from "./color";
8
8
  import { useModelBlocksCommonStyle } from "./common";
9
9
  import { useModelBlocksVisibility } from "./visibility";
10
10
 
11
- async function setModelBlocksDefaultStyle(_id) {
11
+ interface ColorGroup {
12
+ color: unknown;
13
+ blocks_ids: string[];
14
+ }
15
+
16
+ interface AttributeGroup {
17
+ name: string | undefined;
18
+ item: number | undefined;
19
+ minimum: number | undefined;
20
+ maximum: number | undefined;
21
+ colorMap: string | undefined;
22
+ blocks_ids: string[];
23
+ }
24
+
25
+ async function setModelBlocksDefaultStyle(_id: string): Promise<void> {
12
26
  // Placeholder
13
27
  }
14
28
 
15
- export function useModelBlocksStyle() {
29
+ type UseModelBlocksStyleReturn = {
30
+ applyModelBlocksStyle: (modelId: string) => Promise<void>;
31
+ setModelBlocksDefaultStyle: (id: string) => Promise<void>;
32
+ } & ReturnType<typeof useModelBlocksCommonStyle> &
33
+ ReturnType<typeof useModelBlocksVisibility> &
34
+ ReturnType<typeof useModelBlocksColor> &
35
+ ReturnType<typeof useModelBlocksVertexAttribute> &
36
+ ReturnType<typeof useModelBlocksPolyhedronAttribute>;
37
+
38
+ // oxlint-disable-next-line max-lines-per-function
39
+ export function useModelBlocksStyle(): UseModelBlocksStyleReturn {
16
40
  const dataStore = useDataStore();
17
41
  const modelCommonStyle = useModelBlocksCommonStyle();
18
42
  const modelVisibilityStyle = useModelBlocksVisibility();
@@ -20,57 +44,69 @@ export function useModelBlocksStyle() {
20
44
  const modelBlocksVertexAttribute = useModelBlocksVertexAttribute();
21
45
  const modelBlocksPolyhedronAttribute = useModelBlocksPolyhedronAttribute();
22
46
 
23
- function applyModelBlocksVisibilityStyle(modelId, blocks_ids) {
24
- const visibilityGroups = {};
47
+ async function applyModelBlocksVisibilityStyle(
48
+ modelId: string,
49
+ blocks_ids: string[],
50
+ ): Promise<unknown[]> {
51
+ const visibilityGroups: Record<string, string[]> = {};
25
52
  for (const block_id of blocks_ids) {
26
53
  const style = modelCommonStyle.modelBlockStyle(modelId, block_id);
27
54
  const visibility = String(style.visibility);
28
- if (!visibilityGroups[visibility]) {
29
- visibilityGroups[visibility] = [];
30
- }
55
+ visibilityGroups[visibility] ??= [];
31
56
  visibilityGroups[visibility].push(block_id);
32
57
  }
33
- return Promise.all(
34
- Object.entries(visibilityGroups).map(([visibility, ids]) =>
35
- modelVisibilityStyle.setModelBlocksVisibility(modelId, ids, visibility === "true"),
36
- ),
58
+ const result = await Promise.all(
59
+ Object.entries(visibilityGroups).map(async ([visibility, ids]) => {
60
+ const visibilityResult = await modelVisibilityStyle.setModelBlocksVisibility(
61
+ modelId,
62
+ ids,
63
+ visibility === "true",
64
+ );
65
+ return visibilityResult;
66
+ }),
37
67
  );
68
+ return result;
38
69
  }
39
70
 
40
- function applyModelBlocksColoringStyle(modelId, blocks_ids) {
41
- const activeColoringGroups = {};
71
+ async function applyModelBlocksColoringStyle(
72
+ modelId: string,
73
+ blocks_ids: string[],
74
+ ): Promise<unknown[]> {
75
+ const activeColoringGroups: Record<string, string[]> = {};
42
76
  for (const block_id of blocks_ids) {
43
- const activeColoring = modelColorStyle.modelBlockActiveColoring(modelId, block_id);
44
- if (!activeColoringGroups[activeColoring]) {
45
- activeColoringGroups[activeColoring] = [];
46
- }
77
+ const activeColoring = String(modelColorStyle.modelBlockActiveColoring(modelId, block_id));
78
+ activeColoringGroups[activeColoring] ??= [];
47
79
  activeColoringGroups[activeColoring].push(block_id);
48
80
  }
49
81
 
50
- const coloringPromises = [];
82
+ const coloringPromises: Promise<unknown>[] = [];
51
83
 
52
84
  for (const [type, type_blocks_ids] of Object.entries(activeColoringGroups)) {
53
85
  if (type === "constant") {
54
- const colorGroups = {};
86
+ const colorGroups: Record<string, ColorGroup> = {};
55
87
  for (const block_id of type_blocks_ids) {
56
88
  const color = modelColorStyle.modelBlockColor(modelId, block_id);
57
89
  const color_key = JSON.stringify(color);
58
- if (!colorGroups[color_key]) {
59
- colorGroups[color_key] = { color, blocks_ids: [] };
60
- }
90
+ colorGroups[color_key] ??= { color, blocks_ids: [] };
61
91
  colorGroups[color_key].blocks_ids.push(block_id);
62
92
  }
63
93
  coloringPromises.push(
64
- ...Object.values(colorGroups).map(({ color, blocks_ids: ids }) =>
65
- modelColorStyle.setModelBlocksColor(modelId, ids, color, "constant"),
66
- ),
94
+ ...Object.values(colorGroups).map(async ({ color, blocks_ids: ids }) => {
95
+ const result = await modelColorStyle.setModelBlocksColor(
96
+ modelId,
97
+ ids,
98
+ color,
99
+ "constant",
100
+ );
101
+ return result;
102
+ }),
67
103
  );
68
104
  } else if (type === "random") {
69
105
  coloringPromises.push(
70
106
  modelColorStyle.setModelBlocksColor(modelId, type_blocks_ids, undefined, "random"),
71
107
  );
72
108
  } else if (type === "vertex") {
73
- const vertexGroups = {};
109
+ const vertexGroups: Record<string, AttributeGroup> = {};
74
110
  for (const block_id of type_blocks_ids) {
75
111
  const name = modelBlocksVertexAttribute.modelBlocksVertexAttributeName(modelId, block_id);
76
112
  const item = modelBlocksVertexAttribute.modelBlocksVertexAttributeItem(modelId, block_id);
@@ -87,32 +123,36 @@ export function useModelBlocksStyle() {
87
123
  continue;
88
124
  }
89
125
  const key = `${name}_${item}_${colorMap}_${minimum}_${maximum}`;
90
- if (!vertexGroups[key]) {
91
- vertexGroups[key] = {
92
- name,
93
- item,
94
- minimum,
95
- maximum,
96
- colorMap,
97
- blocks_ids: [],
98
- };
99
- }
126
+ vertexGroups[key] ??= {
127
+ name,
128
+ item,
129
+ minimum,
130
+ maximum,
131
+ colorMap,
132
+ blocks_ids: [],
133
+ };
100
134
  vertexGroups[key].blocks_ids.push(block_id);
101
135
  }
102
136
  coloringPromises.push(
103
137
  ...Object.values(vertexGroups).map(
104
- ({ name, item, minimum, maximum, colorMap, blocks_ids: ids }) =>
105
- modelBlocksVertexAttribute.setModelBlocksVertexAttribute(modelId, ids, {
106
- name,
107
- item,
108
- minimum,
109
- maximum,
110
- colorMap,
111
- }),
138
+ async ({ name, item, minimum, maximum, colorMap, blocks_ids: ids }) => {
139
+ const result = await modelBlocksVertexAttribute.setModelBlocksVertexAttribute(
140
+ modelId,
141
+ ids,
142
+ {
143
+ name,
144
+ item,
145
+ minimum,
146
+ maximum,
147
+ colorMap,
148
+ },
149
+ );
150
+ return result;
151
+ },
112
152
  ),
113
153
  );
114
154
  } else if (type === "polyhedron") {
115
- const polyhedronGroups = {};
155
+ const polyhedronGroups: Record<string, AttributeGroup> = {};
116
156
  for (const block_id of type_blocks_ids) {
117
157
  const name = modelBlocksPolyhedronAttribute.modelBlocksPolyhedronAttributeName(
118
158
  modelId,
@@ -133,43 +173,48 @@ export function useModelBlocksStyle() {
133
173
  continue;
134
174
  }
135
175
  const key = `${name}_${item}_${colorMap}_${minimum}_${maximum}`;
136
- if (!polyhedronGroups[key]) {
137
- polyhedronGroups[key] = {
138
- name,
139
- item,
140
- minimum,
141
- maximum,
142
- colorMap,
143
- blocks_ids: [],
144
- };
145
- }
176
+ polyhedronGroups[key] ??= {
177
+ name,
178
+ item,
179
+ minimum,
180
+ maximum,
181
+ colorMap,
182
+ blocks_ids: [],
183
+ };
146
184
  polyhedronGroups[key].blocks_ids.push(block_id);
147
185
  }
148
186
  coloringPromises.push(
149
187
  ...Object.values(polyhedronGroups).map(
150
- ({ name, item, minimum, maximum, colorMap, blocks_ids: ids }) =>
151
- modelBlocksPolyhedronAttribute.setModelBlocksPolyhedronAttribute(modelId, ids, {
152
- name,
153
- item,
154
- minimum,
155
- maximum,
156
- colorMap,
157
- }),
188
+ async ({ name, item, minimum, maximum, colorMap, blocks_ids: ids }) => {
189
+ const result = await modelBlocksPolyhedronAttribute.setModelBlocksPolyhedronAttribute(
190
+ modelId,
191
+ ids,
192
+ {
193
+ name,
194
+ item,
195
+ minimum,
196
+ maximum,
197
+ colorMap,
198
+ },
199
+ );
200
+ return result;
201
+ },
158
202
  ),
159
203
  );
160
204
  }
161
205
  }
162
206
 
163
- return Promise.all(coloringPromises);
207
+ const result = await Promise.all(coloringPromises);
208
+ return result;
164
209
  }
165
210
 
166
- async function applyModelBlocksStyle(modelId) {
211
+ async function applyModelBlocksStyle(modelId: string): Promise<void> {
167
212
  const blocks_ids = await dataStore.getBlocksGeodeIds(modelId);
168
213
  if (blocks_ids.length === 0) {
169
214
  return;
170
215
  }
171
216
 
172
- return Promise.all([
217
+ await Promise.all([
173
218
  applyModelBlocksVisibilityStyle(modelId, blocks_ids),
174
219
  applyModelBlocksColoringStyle(modelId, blocks_ids),
175
220
  ]);