@geode/opengeodeweb-front 10.34.0-rc.2 → 10.34.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/.build/opengeodeweb_front_schemas.js +175 -0
  2. package/.build/server/utils/app_config.js +57 -0
  3. package/.build/server/utils/cleanup.js +135 -0
  4. package/.build/server/utils/cloud.js +156 -0
  5. package/.build/server/utils/microservices.js +153 -0
  6. package/.build/server/utils/path.js +108 -0
  7. package/.build/server/utils/scripts.js +134 -0
  8. package/.build/server/utils/server.js +44 -0
  9. package/.build/server/utils/server_config.js +51 -0
  10. package/.build/server/utils/stream.js +6 -0
  11. package/.build/server/utils/ws_client.js +100 -0
  12. package/.build/shared/app_mode.js +8 -0
  13. package/.build/shared/scripts.js +49 -0
  14. package/.build/shared/utils/call_raw.js +31 -0
  15. package/.build/shared/utils/call_schema.js +28 -0
  16. package/.build/shared/utils/fetch_raw.js +52 -0
  17. package/.build/shared/utils/fetch_schema.js +32 -0
  18. package/.build/shared/utils/file.js +14 -0
  19. package/.build/shared/utils/parse_boolean.js +23 -0
  20. package/.build/shared/utils/response_handlers/load.js +50 -0
  21. package/.build/shared/utils/types.js +1 -0
  22. package/.build/shared/utils/validate_schema.js +17 -0
  23. package/README.md +8 -0
  24. package/app/assets/{geode_objects.js → geode_objects.ts} +8 -1
  25. package/app/components/ActionButton.vue +28 -12
  26. package/app/components/Basic/Slider.vue +2 -2
  27. package/app/components/Basic/Switch.vue +2 -2
  28. package/app/components/CameraManager/List.vue +11 -11
  29. package/app/components/CameraManager/Saver.vue +8 -4
  30. package/app/components/CameraManager.vue +24 -12
  31. package/app/components/CameraOrientation.vue +31 -17
  32. package/app/components/ClippingPlaneCard.vue +13 -12
  33. package/app/components/ClippingPlanes.vue +31 -21
  34. package/app/components/CrsSelector.vue +26 -18
  35. package/app/components/DeleteDialog.vue +18 -16
  36. package/app/components/DragAndDrop.vue +55 -37
  37. package/app/components/DragAndDropInternal/DragAndDropInline.vue +31 -16
  38. package/app/components/DragAndDropInternal/DragAndDropOverlay.vue +32 -19
  39. package/app/components/ExtensionSelector.vue +34 -18
  40. package/app/components/FeedBack/ErrorBanner.vue +4 -3
  41. package/app/components/FeedBack/Snackers.vue +6 -5
  42. package/app/components/FetchingData.vue +8 -12
  43. package/app/components/FileSelector.vue +27 -17
  44. package/app/components/FileUploader.vue +51 -30
  45. package/app/components/GlassCard.vue +17 -13
  46. package/app/components/HybridRenderingView.vue +25 -12
  47. package/app/components/HybridViewerTooltip.vue +28 -26
  48. package/app/components/InfraConnected.vue +1 -1
  49. package/app/components/Launcher.vue +12 -10
  50. package/app/components/Loading/EcoMessages.vue +24 -13
  51. package/app/components/Loading/Header.vue +6 -7
  52. package/app/components/Loading/Progress.vue +6 -7
  53. package/app/components/Loading.vue +10 -14
  54. package/app/components/MissingFilesSelector.vue +35 -19
  55. package/app/components/ObjectSelector.vue +37 -21
  56. package/app/components/PackagesVersions.vue +16 -8
  57. package/app/components/Recaptcha.vue +17 -23
  58. package/app/components/RemoteRenderingView.vue +21 -15
  59. package/app/components/Ruler.vue +11 -9
  60. package/app/components/Screenshot.vue +25 -19
  61. package/app/components/SearchBar.vue +12 -6
  62. package/app/components/ShrinkFilter.vue +19 -14
  63. package/app/components/Step.vue +32 -12
  64. package/app/components/Stepper.vue +19 -7
  65. package/app/components/ToolPanel.vue +29 -13
  66. package/app/components/ViewToolbar.vue +53 -44
  67. package/app/components/Viewer/ContextMenu/CenterButton.vue +16 -9
  68. package/app/components/Viewer/ContextMenu/CircularItems.vue +13 -10
  69. package/app/components/Viewer/ContextMenu/ContextMenu.vue +40 -32
  70. package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +31 -17
  71. package/app/components/Viewer/ContextMenu/InfoCard.vue +38 -22
  72. package/app/components/Viewer/EdgedCurve/PointsOptions.vue +8 -5
  73. package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +67 -48
  74. package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +74 -50
  75. package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +69 -50
  76. package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +47 -35
  77. package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +91 -51
  78. package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +74 -49
  79. package/app/components/Viewer/Generic/Model/BlocksOptions.vue +115 -53
  80. package/app/components/Viewer/Generic/Model/CornersOptions.vue +75 -37
  81. package/app/components/Viewer/Generic/Model/EdgesOptions.vue +13 -9
  82. package/app/components/Viewer/Generic/Model/LinesOptions.vue +110 -61
  83. package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +32 -21
  84. package/app/components/Viewer/Generic/Model/ModelStyleOptions.vue +9 -5
  85. package/app/components/Viewer/Generic/Model/PointsOptions.vue +19 -13
  86. package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +119 -49
  87. package/app/components/Viewer/Grid/2D/CellsOptions.vue +8 -5
  88. package/app/components/Viewer/Grid/2D/EdgesOptions.vue +8 -5
  89. package/app/components/Viewer/Grid/2D/PointsOptions.vue +8 -5
  90. package/app/components/Viewer/Grid/3D/CellsOptions.vue +8 -5
  91. package/app/components/Viewer/Grid/3D/EdgesOptions.vue +8 -5
  92. package/app/components/Viewer/Grid/3D/FacetsOptions.vue +8 -5
  93. package/app/components/Viewer/Grid/3D/PointsOptions.vue +8 -5
  94. package/app/components/Viewer/ObjectTree/Base/CommonTreeView.vue +120 -76
  95. package/app/components/Viewer/ObjectTree/Base/Controls.vue +25 -10
  96. package/app/components/Viewer/ObjectTree/Base/ItemLabel.vue +42 -17
  97. package/app/components/Viewer/ObjectTree/Base/StickyHeader.vue +22 -9
  98. package/app/components/Viewer/ObjectTree/Base/TreeRow.vue +29 -14
  99. package/app/components/Viewer/ObjectTree/Box.vue +32 -15
  100. package/app/components/Viewer/ObjectTree/Layout.vue +55 -35
  101. package/app/components/Viewer/ObjectTree/Views/GlobalObjects.vue +63 -34
  102. package/app/components/Viewer/ObjectTree/Views/{ModelCollections.vue → ModelTree.vue} +101 -39
  103. package/app/components/Viewer/Options/AttributeColorBar.vue +14 -6
  104. package/app/components/Viewer/Options/AttributeRangeSelector.vue +8 -4
  105. package/app/components/Viewer/Options/AttributeSelector.vue +64 -33
  106. package/app/components/Viewer/Options/ColorMapList.vue +52 -24
  107. package/app/components/Viewer/Options/ColorMapPicker.vue +15 -11
  108. package/app/components/Viewer/Options/ColorPicker.vue +239 -50
  109. package/app/components/Viewer/Options/ColoringTypeSelector.vue +87 -67
  110. package/app/components/Viewer/Options/ColormapQuickPicker.vue +16 -12
  111. package/app/components/Viewer/Options/OptionsSection.vue +7 -5
  112. package/app/components/Viewer/Options/Sliders/Size.vue +3 -3
  113. package/app/components/Viewer/Options/Sliders/Slider.vue +9 -6
  114. package/app/components/Viewer/Options/Sliders/Width.vue +3 -3
  115. package/app/components/Viewer/Options/TextureItem.vue +29 -22
  116. package/app/components/Viewer/Options/TexturesSelector.vue +23 -12
  117. package/app/components/Viewer/Options/VisibilitySwitch.vue +3 -3
  118. package/app/components/Viewer/OverlappingObjectsPicker.vue +27 -12
  119. package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +38 -26
  120. package/app/components/Viewer/Solid/EdgesOptions.vue +8 -5
  121. package/app/components/Viewer/Solid/PointsOptions.vue +8 -5
  122. package/app/components/Viewer/Solid/PolygonsOptions.vue +8 -5
  123. package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +73 -48
  124. package/app/components/Viewer/Surface/EdgesOptions.vue +8 -5
  125. package/app/components/Viewer/Surface/PointsOptions.vue +8 -5
  126. package/app/components/Viewer/Surface/PolygonsOptions.vue +79 -49
  127. package/app/components/Viewer/Surface/Triangulated/TrianglesOptions.vue +8 -5
  128. package/app/components/Viewer/TetrahedralSolid/TetrahedraOptions.vue +8 -5
  129. package/app/components/Viewer/TetrahedralSolid/TrianglesOptions.vue +8 -5
  130. package/app/components/Viewer/Ui.vue +19 -14
  131. package/app/components/Wrapper.vue +16 -10
  132. package/app/components/ZScaling.vue +18 -10
  133. package/app/components/csv-preview/CsvPreviewer.vue +72 -50
  134. package/app/components/csv-preview/CsvSettings.vue +30 -50
  135. package/app/components/csv-preview/CsvTable.vue +34 -14
  136. package/app/composables/{batch_style.js → batch_style.ts} +9 -7
  137. package/app/composables/clipping_planes_widget.ts +204 -0
  138. package/app/composables/clipping_planes_widget_entries.ts +189 -0
  139. package/app/composables/copy_to_clipboard.ts +7 -0
  140. package/app/composables/global_attribute_style.ts +303 -0
  141. package/app/composables/hover_highlight.ts +127 -0
  142. package/app/composables/{model_collections.js → model_collections.ts} +28 -9
  143. package/app/composables/{model_components.js → model_components.ts} +28 -9
  144. package/app/composables/{project_manager.js → project_manager.ts} +77 -20
  145. package/app/composables/responsive_middle_truncate.ts +48 -0
  146. package/app/composables/{run_function_when_microservices_connected.js → run_function_when_microservices_connected.ts} +1 -1
  147. package/app/composables/stepper_tree.ts +79 -0
  148. package/app/composables/tree_filter.ts +194 -0
  149. package/app/composables/{tree_keyboard_nav.js → tree_keyboard_nav.ts} +62 -20
  150. package/app/composables/{tree_scroll.js → tree_scroll.ts} +61 -12
  151. package/app/composables/use_adaptive_styles.ts +186 -0
  152. package/app/composables/use_overlapping_picker.ts +263 -0
  153. package/app/composables/use_quick_colormap.ts +55 -0
  154. package/app/composables/virtual_tree.ts +271 -0
  155. package/app/composables/vtk_implicit_plane_widget.d.ts +2 -0
  156. package/app/plugins/{auto_store_register.js → auto_store_register.ts} +3 -5
  157. package/app/plugins/click_outside_ignore_snackbars.client.ts +36 -0
  158. package/app/stores/app.ts +252 -0
  159. package/app/stores/app_helpers/extension.ts +179 -0
  160. package/app/stores/{back.js → back.ts} +54 -28
  161. package/app/stores/camera_manager.ts +80 -0
  162. package/app/stores/{cloud.js → cloud.ts} +18 -13
  163. package/app/stores/data.ts +392 -0
  164. package/app/stores/data_helpers/collections.ts +138 -0
  165. package/app/stores/data_helpers/mesh.ts +169 -0
  166. package/app/stores/data_style.ts +167 -0
  167. package/app/stores/{feedback.js → feedback.ts} +19 -8
  168. package/app/stores/{hybrid_viewer.js → hybrid_viewer.ts} +49 -45
  169. package/app/stores/infra.ts +106 -0
  170. package/app/stores/{menu.js → menu.ts} +67 -36
  171. package/app/stores/treeview.ts +383 -0
  172. package/app/stores/{viewer.js → viewer.ts} +75 -42
  173. package/app/utils/attributes.ts +40 -0
  174. package/app/utils/clipping_planes.ts +222 -0
  175. package/app/utils/color_picker.js +54 -0
  176. package/app/utils/colormap.ts +102 -0
  177. package/app/utils/default_styles/{constants.js → constants.ts} +25 -12
  178. package/app/utils/default_styles/{index.js → index.ts} +4 -3
  179. package/app/utils/default_styles/meshes.ts +264 -0
  180. package/app/utils/default_styles/{models.js → models.ts} +106 -52
  181. package/app/utils/{extension.js → extension.ts} +63 -19
  182. package/app/utils/{import_workflow.js → import_workflow.ts} +39 -22
  183. package/app/utils/{log.js → log.ts} +12 -2
  184. package/app/utils/{name_cleaner.js → name_cleaner.ts} +6 -6
  185. package/app/utils/status.ts +19 -0
  186. package/app/utils/{stores.js → stores.ts} +5 -5
  187. package/app/utils/{string.js → string.ts} +6 -6
  188. package/app/utils/{treeview.js → treeview.ts} +4 -1
  189. package/internal/database/{base_database.js → base_database.ts} +7 -3
  190. package/internal/database/database.ts +102 -0
  191. package/internal/database/{extended_database.js → extended_database.ts} +5 -1
  192. package/internal/database/tables/camera_positions.ts +6 -0
  193. package/internal/database/tables/{data.js → data.ts} +3 -1
  194. package/internal/database/tables/data_style.ts +6 -0
  195. package/internal/database/tables/model_component_datastyle.ts +6 -0
  196. package/internal/database/tables/model_component_type_datastyle.ts +6 -0
  197. package/internal/database/tables/model_components.ts +6 -0
  198. package/internal/database/tables/model_components_relation.ts +6 -0
  199. package/internal/database/tables/table_definition.ts +5 -0
  200. package/internal/stores/data_style/mesh/cells/cell.ts +279 -0
  201. package/internal/stores/data_style/mesh/cells/{color.js → color.ts} +13 -7
  202. package/internal/stores/data_style/mesh/cells/common.ts +50 -0
  203. package/internal/stores/data_style/mesh/cells/index.ts +161 -0
  204. package/internal/stores/data_style/mesh/cells/{textures.js → textures.ts} +14 -8
  205. package/internal/stores/data_style/mesh/cells/vertex.ts +285 -0
  206. package/internal/stores/data_style/mesh/cells/visibility.ts +46 -0
  207. package/internal/stores/data_style/mesh/edges/{color.js → color.ts} +13 -7
  208. package/internal/stores/data_style/mesh/edges/common.ts +41 -0
  209. package/internal/stores/data_style/mesh/edges/edge.ts +279 -0
  210. package/internal/stores/data_style/mesh/edges/index.ts +155 -0
  211. package/internal/stores/data_style/mesh/edges/vertex.ts +285 -0
  212. package/internal/stores/data_style/mesh/edges/visibility.ts +45 -0
  213. package/internal/stores/data_style/mesh/edges/width.ts +42 -0
  214. package/internal/stores/data_style/mesh/{index.js → index.ts} +34 -14
  215. package/internal/stores/data_style/mesh/points/{color.js → color.ts} +13 -7
  216. package/internal/stores/data_style/mesh/points/common.ts +51 -0
  217. package/internal/stores/data_style/mesh/points/index.ts +133 -0
  218. package/internal/stores/data_style/mesh/points/size.ts +43 -0
  219. package/internal/stores/data_style/mesh/points/vertex.ts +285 -0
  220. package/internal/stores/data_style/mesh/points/visibility.ts +49 -0
  221. package/internal/stores/data_style/mesh/polygons/{color.js → color.ts} +13 -7
  222. package/internal/stores/data_style/mesh/polygons/common.ts +50 -0
  223. package/internal/stores/data_style/mesh/polygons/index.ts +167 -0
  224. package/internal/stores/data_style/mesh/polygons/polygon.ts +282 -0
  225. package/internal/stores/data_style/mesh/polygons/{textures.js → textures.ts} +14 -8
  226. package/internal/stores/data_style/mesh/polygons/vertex.ts +288 -0
  227. package/internal/stores/data_style/mesh/polygons/visibility.ts +48 -0
  228. package/internal/stores/data_style/mesh/polyhedra/{color.js → color.ts} +13 -7
  229. package/internal/stores/data_style/mesh/polyhedra/common.ts +41 -0
  230. package/internal/stores/data_style/mesh/polyhedra/index.ts +157 -0
  231. package/internal/stores/data_style/mesh/polyhedra/polyhedron.ts +294 -0
  232. package/internal/stores/data_style/mesh/polyhedra/vertex.ts +288 -0
  233. package/internal/stores/data_style/mesh/polyhedra/visibility.ts +48 -0
  234. package/internal/stores/data_style/model/blocks/{color.js → color.ts} +50 -13
  235. package/internal/stores/data_style/model/blocks/common.ts +67 -0
  236. package/internal/stores/data_style/model/blocks/{index.js → index.ts} +111 -66
  237. package/internal/stores/data_style/model/blocks/polyhedron.ts +363 -0
  238. package/internal/stores/data_style/model/blocks/vertex.ts +349 -0
  239. package/internal/stores/data_style/model/blocks/visibility.ts +37 -0
  240. package/internal/stores/data_style/model/color.ts +348 -0
  241. package/internal/stores/data_style/model/common.ts +262 -0
  242. package/internal/stores/data_style/model/corners/{color.js → color.ts} +49 -10
  243. package/internal/stores/data_style/model/corners/common.ts +71 -0
  244. package/internal/stores/data_style/model/corners/{index.js → index.ts} +86 -47
  245. package/internal/stores/data_style/model/corners/vertex.ts +315 -0
  246. package/internal/stores/data_style/model/corners/visibility.ts +39 -0
  247. package/internal/stores/data_style/model/edges/common.ts +29 -0
  248. package/internal/stores/data_style/model/edges/{index.js → index.ts} +2 -7
  249. package/internal/stores/data_style/model/edges/visibility.ts +55 -0
  250. package/internal/stores/data_style/model/{index.js → index.ts} +24 -11
  251. package/internal/stores/data_style/model/lines/{color.js → color.ts} +47 -10
  252. package/internal/stores/data_style/model/lines/common.ts +63 -0
  253. package/internal/stores/data_style/model/lines/edge.ts +343 -0
  254. package/internal/stores/data_style/model/lines/{index.js → index.ts} +108 -66
  255. package/internal/stores/data_style/model/lines/vertex.ts +344 -0
  256. package/internal/stores/data_style/model/lines/visibility.ts +37 -0
  257. package/internal/stores/data_style/model/points/common.ts +25 -0
  258. package/internal/stores/data_style/model/points/index.ts +35 -0
  259. package/internal/stores/data_style/model/points/size.ts +44 -0
  260. package/internal/stores/data_style/model/points/visibility.ts +46 -0
  261. package/internal/stores/data_style/model/selection.ts +138 -0
  262. package/internal/stores/data_style/model/surfaces/{color.js → color.ts} +47 -10
  263. package/internal/stores/data_style/model/surfaces/common.ts +69 -0
  264. package/internal/stores/data_style/model/surfaces/{index.js → index.ts} +113 -66
  265. package/internal/stores/data_style/model/surfaces/polygon.ts +347 -0
  266. package/internal/stores/data_style/model/surfaces/vertex.ts +351 -0
  267. package/internal/stores/data_style/model/surfaces/visibility.ts +37 -0
  268. package/internal/stores/data_style/model/{visibility.js → visibility.ts} +112 -32
  269. package/internal/stores/data_style/state.ts +281 -0
  270. package/internal/stores/data_style/types.ts +30 -0
  271. package/internal/stores/hybrid_viewer/brightness.ts +124 -0
  272. package/internal/stores/hybrid_viewer/camera.ts +326 -0
  273. package/internal/stores/hybrid_viewer/{camera_animation.js → camera_animation.ts} +30 -12
  274. package/internal/stores/hybrid_viewer/{constants.js → constants.ts} +2 -2
  275. package/internal/stores/hybrid_viewer/core.ts +64 -0
  276. package/internal/stores/hybrid_viewer/{filters.js → filters.ts} +10 -13
  277. package/internal/stores/hybrid_viewer/highlight.ts +183 -0
  278. package/internal/stores/hybrid_viewer/{ruler.js → ruler.ts} +50 -22
  279. package/internal/stores/hybrid_viewer/scene.ts +125 -0
  280. package/internal/stores/hybrid_viewer/viewport.ts +177 -0
  281. package/internal/stores/hybrid_viewer/vtk_types.ts +58 -0
  282. package/internal/utils/api_fetch.ts +133 -0
  283. package/internal/utils/upload_file.ts +115 -0
  284. package/internal/utils/viewer_call.ts +99 -0
  285. package/internal/utils/ws_client.ts +54 -0
  286. package/nuxt.config.ts +168 -0
  287. package/opengeodeweb_front_schemas.json +2 -2
  288. package/package.json +49 -13
  289. package/server/api/cloud/extensions/{run.post.js → run.post.ts} +16 -12
  290. package/server/api/local/app/project_folder_path.post.ts +33 -0
  291. package/server/api/local/app/run_back.post.ts +39 -0
  292. package/server/api/local/app/run_viewer.post.ts +39 -0
  293. package/server/api/local/extensions/{kill.post.js → kill.post.ts} +15 -8
  294. package/server/api/local/extensions/{run.post.js → run.post.ts} +17 -12
  295. package/server/api/local/extensions/upload.put.ts +71 -0
  296. package/server/api/microservice/app/{get_is_app_ready.get.js → get_is_app_ready.get.ts} +5 -5
  297. package/server/api/microservice/app/schemas/get_is_app_ready.json +1 -1
  298. package/server/api/microservice/app/set_app_base_url.post.ts +29 -0
  299. package/server/api/microservice/app/set_back_base_url.post.ts +26 -0
  300. package/server/api/microservice/app/set_is_app_ready.post.ts +29 -0
  301. package/server/api/microservice/app/set_viewer_base_url.post.ts +26 -0
  302. package/server/api/microservice/extensions/{download.post.js → download.post.ts} +13 -6
  303. package/server/api/serverless/run_cloud.post.ts +92 -0
  304. package/server/utils/{app_config.js → app_config.ts} +40 -18
  305. package/server/utils/{cleanup.js → cleanup.ts} +76 -29
  306. package/server/utils/{cloud.js → cloud.ts} +33 -17
  307. package/server/utils/{extension.js → extension.ts} +31 -4
  308. package/server/utils/{microservices.js → microservices.ts} +68 -27
  309. package/server/utils/{path.js → path.ts} +36 -17
  310. package/server/utils/{scripts.js → scripts.ts} +49 -33
  311. package/server/utils/{server.js → server.ts} +13 -6
  312. package/server/utils/server_config.ts +74 -0
  313. package/server/utils/stream.ts +6 -0
  314. package/server/utils/ws_client.ts +165 -0
  315. package/shared/{scripts.js → scripts.ts} +15 -10
  316. package/shared/utils/call_raw.ts +73 -0
  317. package/shared/utils/{call_schema.js → call_schema.ts} +15 -6
  318. package/shared/utils/fetch_raw.ts +125 -0
  319. package/shared/utils/{fetch_schema.js → fetch_schema.ts} +16 -7
  320. package/shared/utils/file.ts +22 -0
  321. package/shared/utils/{parse_boolean.js → parse_boolean.ts} +1 -1
  322. package/shared/utils/response_handlers/load.ts +109 -0
  323. package/shared/utils/types.ts +27 -0
  324. package/shared/utils/{validate_schema.js → validate_schema.ts} +3 -1
  325. package/.github/workflows/config.json +0 -5
  326. package/.github/workflows/deploy.yml +0 -15
  327. package/.github/workflows/manual_release.yml +0 -11
  328. package/.github/workflows/merge_request.yml +0 -9
  329. package/.github/workflows/pr_update.yml +0 -11
  330. package/.github/workflows/prepare_deploy.yml +0 -9
  331. package/.github/workflows/schedule.yml +0 -18
  332. package/.github/workflows/test.yml +0 -14
  333. package/.github/workflows/test_pr.yml +0 -12
  334. package/.oxlintrc.json +0 -150
  335. package/.releaserc +0 -11
  336. package/app/components/Viewer/ObjectTree/Views/ModelComponents.vue +0 -224
  337. package/app/composables/clipping_planes_widget.js +0 -249
  338. package/app/composables/global_attribute_style.js +0 -181
  339. package/app/composables/hover_highlight.js +0 -91
  340. package/app/composables/responsive_middle_truncate.js +0 -34
  341. package/app/composables/stepper_tree.js +0 -56
  342. package/app/composables/tree_filter.js +0 -138
  343. package/app/composables/use_adaptive_styles.js +0 -120
  344. package/app/composables/use_overlapping_picker.js +0 -169
  345. package/app/composables/use_quick_colormap.js +0 -32
  346. package/app/composables/virtual_tree.js +0 -191
  347. package/app/stores/app.js +0 -326
  348. package/app/stores/camera_manager.js +0 -57
  349. package/app/stores/data.js +0 -278
  350. package/app/stores/data_helpers/collections.js +0 -96
  351. package/app/stores/data_helpers/mesh.js +0 -122
  352. package/app/stores/data_style.js +0 -116
  353. package/app/stores/infra.js +0 -95
  354. package/app/stores/treeview.js +0 -290
  355. package/app/utils/attributes.js +0 -23
  356. package/app/utils/clipping_planes.js +0 -110
  357. package/app/utils/colormap.js +0 -64
  358. package/app/utils/default_styles/meshes.js +0 -191
  359. package/app/utils/status.js +0 -10
  360. package/commitlint.config.js +0 -20
  361. package/internal/database/database.js +0 -80
  362. package/internal/database/tables/camera_positions.js +0 -4
  363. package/internal/database/tables/data_style.js +0 -4
  364. package/internal/database/tables/model_component_datastyle.js +0 -4
  365. package/internal/database/tables/model_component_type_datastyle.js +0 -4
  366. package/internal/database/tables/model_components.js +0 -4
  367. package/internal/database/tables/model_components_relation.js +0 -4
  368. package/internal/stores/data_style/mesh/cells/cell.js +0 -196
  369. package/internal/stores/data_style/mesh/cells/common.js +0 -39
  370. package/internal/stores/data_style/mesh/cells/index.js +0 -81
  371. package/internal/stores/data_style/mesh/cells/vertex.js +0 -193
  372. package/internal/stores/data_style/mesh/cells/visibility.js +0 -35
  373. package/internal/stores/data_style/mesh/edges/common.js +0 -32
  374. package/internal/stores/data_style/mesh/edges/edge.js +0 -195
  375. package/internal/stores/data_style/mesh/edges/index.js +0 -81
  376. package/internal/stores/data_style/mesh/edges/vertex.js +0 -196
  377. package/internal/stores/data_style/mesh/edges/visibility.js +0 -34
  378. package/internal/stores/data_style/mesh/edges/width.js +0 -34
  379. package/internal/stores/data_style/mesh/points/common.js +0 -37
  380. package/internal/stores/data_style/mesh/points/index.js +0 -82
  381. package/internal/stores/data_style/mesh/points/size.js +0 -35
  382. package/internal/stores/data_style/mesh/points/vertex.js +0 -193
  383. package/internal/stores/data_style/mesh/points/visibility.js +0 -37
  384. package/internal/stores/data_style/mesh/polygons/common.js +0 -32
  385. package/internal/stores/data_style/mesh/polygons/index.js +0 -107
  386. package/internal/stores/data_style/mesh/polygons/polygon.js +0 -196
  387. package/internal/stores/data_style/mesh/polygons/vertex.js +0 -196
  388. package/internal/stores/data_style/mesh/polygons/visibility.js +0 -38
  389. package/internal/stores/data_style/mesh/polyhedra/common.js +0 -32
  390. package/internal/stores/data_style/mesh/polyhedra/index.js +0 -98
  391. package/internal/stores/data_style/mesh/polyhedra/polyhedron.js +0 -196
  392. package/internal/stores/data_style/mesh/polyhedra/vertex.js +0 -196
  393. package/internal/stores/data_style/mesh/polyhedra/visibility.js +0 -38
  394. package/internal/stores/data_style/model/blocks/common.js +0 -51
  395. package/internal/stores/data_style/model/blocks/polyhedron.js +0 -215
  396. package/internal/stores/data_style/model/blocks/vertex.js +0 -204
  397. package/internal/stores/data_style/model/blocks/visibility.js +0 -20
  398. package/internal/stores/data_style/model/color.js +0 -218
  399. package/internal/stores/data_style/model/common.js +0 -141
  400. package/internal/stores/data_style/model/corners/common.js +0 -51
  401. package/internal/stores/data_style/model/corners/vertex.js +0 -204
  402. package/internal/stores/data_style/model/corners/visibility.js +0 -20
  403. package/internal/stores/data_style/model/edges/common.js +0 -20
  404. package/internal/stores/data_style/model/edges/visibility.js +0 -38
  405. package/internal/stores/data_style/model/lines/common.js +0 -51
  406. package/internal/stores/data_style/model/lines/edge.js +0 -203
  407. package/internal/stores/data_style/model/lines/vertex.js +0 -204
  408. package/internal/stores/data_style/model/lines/visibility.js +0 -20
  409. package/internal/stores/data_style/model/points/common.js +0 -20
  410. package/internal/stores/data_style/model/points/index.js +0 -25
  411. package/internal/stores/data_style/model/points/size.js +0 -36
  412. package/internal/stores/data_style/model/points/visibility.js +0 -36
  413. package/internal/stores/data_style/model/selection.js +0 -89
  414. package/internal/stores/data_style/model/surfaces/common.js +0 -51
  415. package/internal/stores/data_style/model/surfaces/polygon.js +0 -215
  416. package/internal/stores/data_style/model/surfaces/vertex.js +0 -215
  417. package/internal/stores/data_style/model/surfaces/visibility.js +0 -20
  418. package/internal/stores/data_style/state.js +0 -197
  419. package/internal/stores/hybrid_viewer/brightness.js +0 -82
  420. package/internal/stores/hybrid_viewer/camera.js +0 -274
  421. package/internal/stores/hybrid_viewer/highlight.js +0 -170
  422. package/internal/stores/hybrid_viewer/scene.js +0 -136
  423. package/internal/stores/hybrid_viewer/viewport.js +0 -140
  424. package/internal/utils/api_fetch.js +0 -52
  425. package/internal/utils/upload_file.js +0 -57
  426. package/internal/utils/viewer_call.js +0 -49
  427. package/internal/utils/ws_client.js +0 -29
  428. package/nuxt.config.js +0 -106
  429. package/scripts/generate_geode_objects.js +0 -24
  430. package/server/api/local/app/project_folder_path.post.js +0 -29
  431. package/server/api/local/app/run_back.post.js +0 -33
  432. package/server/api/local/app/run_viewer.post.js +0 -33
  433. package/server/api/local/extensions/upload.put.js +0 -72
  434. package/server/api/microservice/app/set_app_base_url.post.js +0 -25
  435. package/server/api/microservice/app/set_back_base_url.post.js +0 -22
  436. package/server/api/microservice/app/set_is_app_ready.post.js +0 -25
  437. package/server/api/microservice/app/set_viewer_base_url.post.js +0 -22
  438. package/server/api/serverless/run_cloud.post.js +0 -44
  439. package/server/utils/server_config.js +0 -58
  440. package/server/utils/ws_client.js +0 -112
  441. package/shared/utils/call_raw.js +0 -46
  442. package/shared/utils/fetch_raw.js +0 -61
  443. package/shared/utils/file.js +0 -16
  444. package/shared/utils/response_handlers/load.js +0 -74
  445. package/tests/integration/data/uploads/test.og_brep +0 -0
  446. package/tests/integration/data/uploads/test.og_edc2d +0 -0
  447. package/tests/integration/data/uploads/test.og_edc3d +0 -0
  448. package/tests/integration/data/uploads/test.og_psf3d +0 -0
  449. package/tests/integration/data/uploads/test.og_rgd2d +0 -0
  450. package/tests/integration/data/uploads/test.og_rgd3d +0 -0
  451. package/tests/integration/data/uploads/test.vtu +0 -22
  452. package/tests/integration/setup.js +0 -92
  453. package/tests/integration/stores/data_style/mesh/cells.nuxt.test.js +0 -343
  454. package/tests/integration/stores/data_style/mesh/edges.nuxt.test.js +0 -254
  455. package/tests/integration/stores/data_style/mesh/index.nuxt.test.js +0 -62
  456. package/tests/integration/stores/data_style/mesh/points.nuxt.test.js +0 -201
  457. package/tests/integration/stores/data_style/mesh/polygons.nuxt.test.js +0 -260
  458. package/tests/integration/stores/data_style/mesh/polyhedra.nuxt.test.js +0 -267
  459. package/tests/integration/stores/data_style/model/blocks.nuxt.test.js +0 -397
  460. package/tests/integration/stores/data_style/model/corners.nuxt.test.js +0 -264
  461. package/tests/integration/stores/data_style/model/edges.nuxt.test.js +0 -71
  462. package/tests/integration/stores/data_style/model/index.nuxt.test.js +0 -92
  463. package/tests/integration/stores/data_style/model/lines.nuxt.test.js +0 -379
  464. package/tests/integration/stores/data_style/model/points.nuxt.test.js +0 -95
  465. package/tests/integration/stores/data_style/model/surfaces.nuxt.test.js +0 -574
  466. package/tests/integration/stores/viewer.nuxt.test.js +0 -69
  467. package/tests/setup_indexeddb.js +0 -4
  468. package/tests/unit/components/CrsSelector.nuxt.test.js +0 -55
  469. package/tests/unit/components/DragAndDrop.nuxt.test.js +0 -89
  470. package/tests/unit/components/ExtensionSelector.nuxt.test.js +0 -65
  471. package/tests/unit/components/FeedBack/ErrorsBanner.nuxt.test.js +0 -41
  472. package/tests/unit/components/FeedBack/Snackers.nuxt.test.js +0 -49
  473. package/tests/unit/components/FileSelector.nuxt.test.js +0 -124
  474. package/tests/unit/components/FileUploader.nuxt.test.js +0 -69
  475. package/tests/unit/components/MissingFilesSelector.nuxt.test.js +0 -77
  476. package/tests/unit/components/ObjectSelector.nuxt.test.js +0 -118
  477. package/tests/unit/components/PackagesVersions.nuxt.test.js +0 -42
  478. package/tests/unit/components/Step.nuxt.test.js +0 -51
  479. package/tests/unit/components/Stepper.nuxt.test.js +0 -41
  480. package/tests/unit/components/ToolPanel.nuxt.test.js +0 -66
  481. package/tests/unit/composables/api_fetch.nuxt.test.js +0 -75
  482. package/tests/unit/composables/project_manager.nuxt.test.js +0 -299
  483. package/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js +0 -57
  484. package/tests/unit/composables/upload_file.nuxt.test.js +0 -45
  485. package/tests/unit/composables/virtual_tree.nuxt.test.js +0 -63
  486. package/tests/unit/plugins/project_load.nuxt.test.js +0 -98
  487. package/tests/unit/stores/app.nuxt.test.js +0 -189
  488. package/tests/unit/stores/back.nuxt.test.js +0 -147
  489. package/tests/unit/stores/cloud.nuxt.test.js +0 -90
  490. package/tests/unit/stores/data.nuxt.test.js +0 -162
  491. package/tests/unit/stores/feedback.nuxt.test.js +0 -90
  492. package/tests/unit/stores/infra.nuxt.test.js +0 -313
  493. package/tests/unit/stores/treeview.nuxt.test.js +0 -63
  494. package/tests/unit/stores/viewer.nuxt.test.js +0 -161
  495. package/tests/unit/utils/validate_schema.nuxt.test.js +0 -38
  496. package/tests/utils.js +0 -20
  497. package/tests/vitest.config.js +0 -67
  498. /package/server/api/local/app/{kill.post.js → kill.post.ts} +0 -0
  499. /package/shared/{app_mode.js → app_mode.ts} +0 -0
@@ -0,0 +1,264 @@
1
+ import {
2
+ type AttributeConfig,
3
+ CELLS_DEFAULT_COLOR,
4
+ CELLS_DEFAULT_VISIBILITY,
5
+ EDGES_DEFAULT_COLOR,
6
+ EDGES_DEFAULT_VISIBILITY,
7
+ EDGES_DEFAULT_WIDTH,
8
+ MESH_DEFAULT_ACTIVE_COLORING,
9
+ POINTS_DEFAULT_COLOR,
10
+ POINTS_DEFAULT_SIZE,
11
+ POINTS_DEFAULT_VISIBILITY,
12
+ POLYGONS_DEFAULT_COLOR,
13
+ POLYGONS_DEFAULT_VISIBILITY,
14
+ POLYHEDRA_DEFAULT_COLOR,
15
+ POLYHEDRA_DEFAULT_VISIBILITY,
16
+ type RGBAColor,
17
+ } from "./constants";
18
+
19
+ function emptyAttributeConfig(): AttributeConfig {
20
+ return { name: undefined, storedConfigs: {} };
21
+ }
22
+
23
+ interface MeshComponentColoring {
24
+ active: string;
25
+ constant: RGBAColor;
26
+ vertex: AttributeConfig;
27
+ }
28
+
29
+ interface MeshEdgesColoring extends MeshComponentColoring {
30
+ edge: AttributeConfig;
31
+ }
32
+
33
+ interface MeshCellsColoring extends MeshComponentColoring {
34
+ cell: AttributeConfig;
35
+ // oxlint-disable-next-line unicorn/no-null
36
+ textures: null;
37
+ }
38
+
39
+ interface MeshPolygonsColoring extends MeshComponentColoring {
40
+ // oxlint-disable-next-line unicorn/no-null
41
+ textures: null;
42
+ polygon: AttributeConfig;
43
+ }
44
+
45
+ interface MeshPolyhedraColoring extends MeshComponentColoring {
46
+ polyhedron: AttributeConfig;
47
+ }
48
+
49
+ interface MeshPointsStyle {
50
+ visibility: boolean;
51
+ coloring: MeshComponentColoring;
52
+ size: number;
53
+ }
54
+
55
+ interface MeshEdgesStyle {
56
+ visibility: boolean;
57
+ coloring: MeshEdgesColoring;
58
+ width: number;
59
+ }
60
+
61
+ interface MeshCellsStyle {
62
+ visibility: boolean;
63
+ coloring: MeshCellsColoring;
64
+ }
65
+
66
+ interface MeshPolygonsStyle {
67
+ visibility: boolean;
68
+ coloring: MeshPolygonsColoring;
69
+ }
70
+
71
+ interface MeshPolyhedraStyle {
72
+ visibility: boolean;
73
+ coloring: MeshPolyhedraColoring;
74
+ }
75
+
76
+ interface PointSetStyle {
77
+ visibility: boolean;
78
+ points: MeshPointsStyle;
79
+ }
80
+
81
+ interface EdgedCurveStyle {
82
+ visibility: boolean;
83
+ points: MeshPointsStyle;
84
+ edges: MeshEdgesStyle;
85
+ }
86
+
87
+ interface Grid2dStyle {
88
+ visibility: boolean;
89
+ points: MeshPointsStyle;
90
+ edges: MeshEdgesStyle;
91
+ cells: MeshCellsStyle;
92
+ }
93
+
94
+ interface Grid3dStyle {
95
+ visibility: boolean;
96
+ points: MeshPointsStyle;
97
+ edges: MeshEdgesStyle;
98
+ cells: MeshCellsStyle;
99
+ polyhedra: MeshPolyhedraStyle;
100
+ }
101
+
102
+ interface SurfaceStyle {
103
+ visibility: boolean;
104
+ points: MeshPointsStyle;
105
+ edges: MeshEdgesStyle;
106
+ polygons: MeshPolygonsStyle;
107
+ }
108
+
109
+ interface SolidStyle {
110
+ visibility: boolean;
111
+ points: MeshPointsStyle;
112
+ edges: MeshEdgesStyle;
113
+ polygons: MeshPolygonsStyle;
114
+ polyhedra: MeshPolyhedraStyle;
115
+ }
116
+
117
+ function meshPointsDefaultStyle(
118
+ visibility: boolean = POINTS_DEFAULT_VISIBILITY,
119
+ size: number = POINTS_DEFAULT_SIZE,
120
+ constant: RGBAColor = POINTS_DEFAULT_COLOR,
121
+ ): MeshPointsStyle {
122
+ return {
123
+ visibility,
124
+ coloring: {
125
+ active: MESH_DEFAULT_ACTIVE_COLORING,
126
+ constant,
127
+ vertex: emptyAttributeConfig(),
128
+ },
129
+ size,
130
+ };
131
+ }
132
+
133
+ function meshEdgesDefaultStyle(
134
+ visibility: boolean = EDGES_DEFAULT_VISIBILITY,
135
+ width: number = EDGES_DEFAULT_WIDTH,
136
+ constant: RGBAColor = EDGES_DEFAULT_COLOR,
137
+ ): MeshEdgesStyle {
138
+ return {
139
+ visibility,
140
+ coloring: {
141
+ active: MESH_DEFAULT_ACTIVE_COLORING,
142
+ constant,
143
+ edge: emptyAttributeConfig(),
144
+ vertex: emptyAttributeConfig(),
145
+ },
146
+ width,
147
+ };
148
+ }
149
+
150
+ function meshCellsDefaultStyle(
151
+ visibility: boolean = CELLS_DEFAULT_VISIBILITY,
152
+ constant: RGBAColor = CELLS_DEFAULT_COLOR,
153
+ ): MeshCellsStyle {
154
+ return {
155
+ visibility,
156
+ coloring: {
157
+ active: MESH_DEFAULT_ACTIVE_COLORING,
158
+ cell: emptyAttributeConfig(),
159
+ constant,
160
+ // oxlint-disable-next-line unicorn/no-null
161
+ textures: null,
162
+ vertex: emptyAttributeConfig(),
163
+ },
164
+ };
165
+ }
166
+
167
+ function meshPolygonsDefaultStyle(
168
+ visibility: boolean = POLYGONS_DEFAULT_VISIBILITY,
169
+ constant: RGBAColor = POLYGONS_DEFAULT_COLOR,
170
+ ): MeshPolygonsStyle {
171
+ return {
172
+ visibility,
173
+ coloring: {
174
+ active: MESH_DEFAULT_ACTIVE_COLORING,
175
+ constant,
176
+ // oxlint-disable-next-line unicorn/no-null
177
+ textures: null,
178
+ polygon: emptyAttributeConfig(),
179
+ vertex: emptyAttributeConfig(),
180
+ },
181
+ };
182
+ }
183
+
184
+ function meshPolyhedraDefaultStyle(
185
+ visibility: boolean = POLYHEDRA_DEFAULT_VISIBILITY,
186
+ constant: RGBAColor = POLYHEDRA_DEFAULT_COLOR,
187
+ ): MeshPolyhedraStyle {
188
+ return {
189
+ visibility,
190
+ coloring: {
191
+ active: MESH_DEFAULT_ACTIVE_COLORING,
192
+ constant,
193
+ polyhedron: emptyAttributeConfig(),
194
+ vertex: emptyAttributeConfig(),
195
+ },
196
+ };
197
+ }
198
+
199
+ function pointSetDefaultStyle(): PointSetStyle {
200
+ return {
201
+ visibility: true,
202
+ points: meshPointsDefaultStyle(),
203
+ };
204
+ }
205
+
206
+ function edgedCurveDefaultStyle(): EdgedCurveStyle {
207
+ return {
208
+ visibility: true,
209
+ points: meshPointsDefaultStyle(),
210
+ edges: meshEdgesDefaultStyle(),
211
+ };
212
+ }
213
+
214
+ function grid2dDefaultStyle(): Grid2dStyle {
215
+ return {
216
+ visibility: true,
217
+ points: meshPointsDefaultStyle(false),
218
+ edges: meshEdgesDefaultStyle(false),
219
+ cells: meshCellsDefaultStyle(),
220
+ };
221
+ }
222
+
223
+ function grid3dDefaultStyle(): Grid3dStyle {
224
+ return {
225
+ visibility: true,
226
+ points: meshPointsDefaultStyle(false),
227
+ edges: meshEdgesDefaultStyle(false),
228
+ cells: meshCellsDefaultStyle(),
229
+ polyhedra: meshPolyhedraDefaultStyle(),
230
+ };
231
+ }
232
+
233
+ function surfaceDefaultStyle(): SurfaceStyle {
234
+ return {
235
+ visibility: true,
236
+ points: meshPointsDefaultStyle(false),
237
+ edges: meshEdgesDefaultStyle(false),
238
+ polygons: meshPolygonsDefaultStyle(),
239
+ };
240
+ }
241
+
242
+ function solidDefaultStyle(): SolidStyle {
243
+ return {
244
+ visibility: true,
245
+ points: meshPointsDefaultStyle(false),
246
+ edges: meshEdgesDefaultStyle(false),
247
+ polygons: meshPolygonsDefaultStyle(),
248
+ polyhedra: meshPolyhedraDefaultStyle(),
249
+ };
250
+ }
251
+
252
+ export {
253
+ meshPointsDefaultStyle,
254
+ meshEdgesDefaultStyle,
255
+ meshCellsDefaultStyle,
256
+ meshPolygonsDefaultStyle,
257
+ meshPolyhedraDefaultStyle,
258
+ pointSetDefaultStyle,
259
+ edgedCurveDefaultStyle,
260
+ grid2dDefaultStyle,
261
+ grid3dDefaultStyle,
262
+ surfaceDefaultStyle,
263
+ solidDefaultStyle,
264
+ };
@@ -1,4 +1,5 @@
1
1
  import {
2
+ type AttributeConfig,
2
3
  BLOCKS_DEFAULT_ACTIVE_COLORING,
3
4
  BLOCKS_DEFAULT_COLOR,
4
5
  BLOCKS_DEFAULT_VISIBILITY,
@@ -14,102 +15,155 @@ import {
14
15
  MODEL_DEFAULT_COLOR,
15
16
  POINTS_DEFAULT_SIZE,
16
17
  POINTS_DEFAULT_VISIBILITY,
18
+ type RGBAColor,
17
19
  SURFACES_DEFAULT_ACTIVE_COLORING,
18
20
  SURFACES_DEFAULT_COLOR,
19
21
  SURFACES_DEFAULT_VISIBILITY,
20
22
  } from "./constants";
21
23
 
24
+ function emptyAttributeConfig(): AttributeConfig {
25
+ return { name: undefined, storedConfigs: {} };
26
+ }
27
+
28
+ interface ModelComponentColoring {
29
+ active: string;
30
+ constant: RGBAColor;
31
+ vertex: AttributeConfig;
32
+ }
33
+
34
+ interface ModelLinesColoring extends ModelComponentColoring {
35
+ edge: AttributeConfig;
36
+ }
37
+
38
+ interface ModelSurfacesColoring extends ModelComponentColoring {
39
+ polygon: AttributeConfig;
40
+ }
41
+
42
+ interface ModelBlocksColoring extends ModelComponentColoring {
43
+ polyhedron: AttributeConfig;
44
+ }
45
+
46
+ interface ModelCornersStyle {
47
+ visibility: boolean;
48
+ coloring: ModelComponentColoring;
49
+ }
50
+
51
+ interface ModelLinesStyle {
52
+ visibility: boolean;
53
+ coloring: ModelLinesColoring;
54
+ }
55
+
56
+ interface ModelSurfacesStyle {
57
+ visibility: boolean;
58
+ coloring: ModelSurfacesColoring;
59
+ }
60
+
61
+ interface ModelBlocksStyle {
62
+ visibility: boolean;
63
+ coloring: ModelBlocksColoring;
64
+ }
65
+
66
+ interface ModelPointsStyle {
67
+ visibility: boolean;
68
+ size: number;
69
+ }
70
+
71
+ interface ModelEdgesStyle {
72
+ visibility: boolean;
73
+ width: number;
74
+ }
75
+
76
+ interface ModelWithBlocksStyle {
77
+ visibility: boolean;
78
+ coloring: { active: string; constant: RGBAColor };
79
+ corners: ModelCornersStyle;
80
+ lines: ModelLinesStyle;
81
+ surfaces: ModelSurfacesStyle;
82
+ blocks: ModelBlocksStyle;
83
+ points: ModelPointsStyle;
84
+ edges: ModelEdgesStyle;
85
+ }
86
+
87
+ interface ModelWithoutBlocksStyle {
88
+ visibility: boolean;
89
+ coloring: { active: string; constant: RGBAColor };
90
+ corners: ModelCornersStyle;
91
+ lines: ModelLinesStyle;
92
+ surfaces: ModelSurfacesStyle;
93
+ points: ModelPointsStyle;
94
+ edges: ModelEdgesStyle;
95
+ }
96
+
22
97
  function modelCornersDefaultStyle(
23
- visibility = CORNERS_DEFAULT_VISIBILITY,
24
- constant = CORNERS_DEFAULT_COLOR,
25
- ) {
98
+ visibility: boolean = CORNERS_DEFAULT_VISIBILITY,
99
+ constant: RGBAColor = CORNERS_DEFAULT_COLOR,
100
+ ): ModelCornersStyle {
26
101
  return {
27
102
  visibility,
28
103
  coloring: {
29
104
  active: CORNERS_DEFAULT_ACTIVE_COLORING,
30
105
  constant,
31
- vertex: {
32
- name: undefined,
33
- storedConfigs: {},
34
- },
106
+ vertex: emptyAttributeConfig(),
35
107
  },
36
108
  };
37
109
  }
38
110
 
39
111
  function modelLinesDefaultStyle(
40
- visibility = LINES_DEFAULT_VISIBILITY,
41
- constant = LINES_DEFAULT_COLOR,
42
- ) {
112
+ visibility: boolean = LINES_DEFAULT_VISIBILITY,
113
+ constant: RGBAColor = LINES_DEFAULT_COLOR,
114
+ ): ModelLinesStyle {
43
115
  return {
44
116
  visibility,
45
117
  coloring: {
46
118
  active: LINES_DEFAULT_ACTIVE_COLORING,
47
119
  constant,
48
- vertex: {
49
- name: undefined,
50
- storedConfigs: {},
51
- },
52
- edge: {
53
- name: undefined,
54
- storedConfigs: {},
55
- },
120
+ vertex: emptyAttributeConfig(),
121
+ edge: emptyAttributeConfig(),
56
122
  },
57
123
  };
58
124
  }
59
125
 
60
126
  function modelSurfacesDefaultStyle(
61
- visibility = SURFACES_DEFAULT_VISIBILITY,
62
- constant = SURFACES_DEFAULT_COLOR,
63
- ) {
127
+ visibility: boolean = SURFACES_DEFAULT_VISIBILITY,
128
+ constant: RGBAColor = SURFACES_DEFAULT_COLOR,
129
+ ): ModelSurfacesStyle {
64
130
  return {
65
131
  visibility,
66
132
  coloring: {
67
133
  active: SURFACES_DEFAULT_ACTIVE_COLORING,
68
134
  constant,
69
- vertex: {
70
- name: undefined,
71
- storedConfigs: {},
72
- },
73
- polygon: {
74
- name: undefined,
75
- storedConfigs: {},
76
- },
135
+ vertex: emptyAttributeConfig(),
136
+ polygon: emptyAttributeConfig(),
77
137
  },
78
138
  };
79
139
  }
80
140
 
81
141
  function modelBlocksDefaultStyle(
82
- visibility = BLOCKS_DEFAULT_VISIBILITY,
83
- constant = BLOCKS_DEFAULT_COLOR,
84
- ) {
142
+ visibility: boolean = BLOCKS_DEFAULT_VISIBILITY,
143
+ constant: RGBAColor = BLOCKS_DEFAULT_COLOR,
144
+ ): ModelBlocksStyle {
85
145
  return {
86
146
  visibility,
87
147
  coloring: {
88
148
  active: BLOCKS_DEFAULT_ACTIVE_COLORING,
89
149
  constant,
90
- vertex: {
91
- name: undefined,
92
- storedConfigs: {},
93
- },
94
- polyhedron: {
95
- name: undefined,
96
- storedConfigs: {},
97
- },
150
+ vertex: emptyAttributeConfig(),
151
+ polyhedron: emptyAttributeConfig(),
98
152
  },
99
153
  };
100
154
  }
101
155
 
102
156
  function modelPointsDefaultStyle(
103
- visibility = POINTS_DEFAULT_VISIBILITY,
104
- size = POINTS_DEFAULT_SIZE,
105
- ) {
157
+ visibility: boolean = POINTS_DEFAULT_VISIBILITY,
158
+ size: number = POINTS_DEFAULT_SIZE,
159
+ ): ModelPointsStyle {
106
160
  return { visibility, size };
107
161
  }
108
162
 
109
163
  function modelEdgesDefaultStyle(
110
- visibility = EDGES_DEFAULT_VISIBILITY,
111
- width = EDGES_DEFAULT_WIDTH,
112
- ) {
164
+ visibility: boolean = EDGES_DEFAULT_VISIBILITY,
165
+ width: number = EDGES_DEFAULT_WIDTH,
166
+ ): ModelEdgesStyle {
113
167
  return { visibility, width };
114
168
  }
115
169
 
@@ -120,7 +174,7 @@ const DEFAULT_MODEL_COMPONENT_TYPE_STYLES = {
120
174
  Block: modelBlocksDefaultStyle(),
121
175
  };
122
176
 
123
- function brepDefaultStyle() {
177
+ function brepDefaultStyle(): ModelWithBlocksStyle {
124
178
  return {
125
179
  visibility: true,
126
180
  coloring: {
@@ -136,7 +190,7 @@ function brepDefaultStyle() {
136
190
  };
137
191
  }
138
192
 
139
- function crossSectionDefaultStyle() {
193
+ function crossSectionDefaultStyle(): ModelWithoutBlocksStyle {
140
194
  return {
141
195
  visibility: true,
142
196
  coloring: {
@@ -151,7 +205,7 @@ function crossSectionDefaultStyle() {
151
205
  };
152
206
  }
153
207
 
154
- function structuralModelDefaultStyle() {
208
+ function structuralModelDefaultStyle(): ModelWithBlocksStyle {
155
209
  return {
156
210
  visibility: true,
157
211
  coloring: {
@@ -167,7 +221,7 @@ function structuralModelDefaultStyle() {
167
221
  };
168
222
  }
169
223
 
170
- function sectionDefaultStyle() {
224
+ function sectionDefaultStyle(): ModelWithoutBlocksStyle {
171
225
  return {
172
226
  visibility: true,
173
227
  coloring: {
@@ -182,7 +236,7 @@ function sectionDefaultStyle() {
182
236
  };
183
237
  }
184
238
 
185
- function implicitCrossSectionDefaultStyle() {
239
+ function implicitCrossSectionDefaultStyle(): ModelWithoutBlocksStyle {
186
240
  return {
187
241
  visibility: true,
188
242
  coloring: {
@@ -197,7 +251,7 @@ function implicitCrossSectionDefaultStyle() {
197
251
  };
198
252
  }
199
253
 
200
- function implicitStructuralModelDefaultStyle() {
254
+ function implicitStructuralModelDefaultStyle(): ModelWithBlocksStyle {
201
255
  return {
202
256
  visibility: true,
203
257
  coloring: {
@@ -1,20 +1,42 @@
1
1
  // Node.js imports
2
2
 
3
3
  // Third party imports
4
- import _ from "lodash";
5
4
 
6
5
  // Local imports
6
+ import type { RegisterableStore, useAppStore } from "@ogw_front/stores/app";
7
+ import type { Microservice } from "@ogw_front/stores/infra";
7
8
  import { isCloudMode } from "@ogw_front/utils/stores";
8
9
  import opengeodeweb_front_schemas from "@geode/opengeodeweb-front/opengeodeweb_front_schemas.json" with { type: "json" };
9
- import { useAppStore } from "@ogw_front/stores/app";
10
- import { useInfraStore } from "@ogw_front/stores/infra";
11
10
 
12
- async function uploadExtension(file) {
11
+ interface ExtensionDescriptor {
12
+ id: string;
13
+ name: string;
14
+ version: string;
15
+ frontendContent: string;
16
+ port: string;
17
+ }
18
+
19
+ interface DownloadExtensionParams {
20
+ url: string;
21
+ extensionFileName: string;
22
+ }
23
+
24
+ type AppStoreInstance = ReturnType<typeof useAppStore>;
25
+ type ExtensionModuleType = Awaited<ReturnType<AppStoreInstance["loadExtension"]>>;
26
+ interface RegisteredExtension {
27
+ name: string;
28
+ version: string;
29
+ extensionModule: ExtensionModuleType;
30
+ }
31
+
32
+ async function uploadExtension(file: File): Promise<void> {
33
+ const { useAppStore } = await import("@ogw_front/stores/app");
13
34
  const appStore = useAppStore();
14
35
  await appStore.upload(file);
15
36
  }
16
37
 
17
- function runExtensions() {
38
+ async function runExtensions(): Promise<{ extensionsArray: ExtensionDescriptor[] }> {
39
+ const { useAppStore } = await import("@ogw_front/stores/app");
18
40
  const appStore = useAppStore();
19
41
  const { projectFolderPath } = appStore;
20
42
  const { PROJECT: projectName } = useRuntimeConfig().public;
@@ -25,13 +47,18 @@ function runExtensions() {
25
47
  projectFolderPath,
26
48
  projectName,
27
49
  };
28
- return appStore.request({
50
+ const result = await appStore.request<{ extensionsArray: ExtensionDescriptor[] }>({
29
51
  schema,
30
52
  params,
31
53
  });
54
+ return result;
32
55
  }
33
56
 
34
- function downloadExtension({ url, extensionFileName }) {
57
+ async function downloadExtension({
58
+ url,
59
+ extensionFileName,
60
+ }: DownloadExtensionParams): Promise<unknown> {
61
+ const { useAppStore } = await import("@ogw_front/stores/app");
35
62
  const appStore = useAppStore();
36
63
  const { PROJECT: projectName } = useRuntimeConfig().public;
37
64
  const schema = opengeodeweb_front_schemas.api.microservice.extensions.download;
@@ -40,18 +67,25 @@ function downloadExtension({ url, extensionFileName }) {
40
67
  url,
41
68
  extensionFileName,
42
69
  };
43
- return appStore.request({
70
+ const result = await appStore.request({
44
71
  schema,
45
72
  params,
46
73
  });
74
+ return result;
75
+ }
76
+
77
+ function isMicroservice(store: RegisterableStore): store is RegisterableStore & Microservice {
78
+ return typeof store.connect === "function";
47
79
  }
48
80
 
49
- async function registerRunningExtensions() {
81
+ async function registerRunningExtensions(): Promise<RegisteredExtension[]> {
82
+ const { useAppStore } = await import("@ogw_front/stores/app");
83
+ const { useInfraStore } = await import("@ogw_front/stores/infra");
50
84
  const appStore = useAppStore();
51
85
  const infraStore = useInfraStore();
52
86
  const { extensionsArray } = await runExtensions();
53
87
  return Promise.all(
54
- extensionsArray.map(async (extension) => {
88
+ extensionsArray.map(async (extension: ExtensionDescriptor) => {
55
89
  const { id, name, version, frontendContent, port } = extension;
56
90
  const blob = new Blob([frontendContent], {
57
91
  type: "application/javascript",
@@ -63,7 +97,14 @@ async function registerRunningExtensions() {
63
97
  const store = storeFactory();
64
98
  appStore.registerStore(store);
65
99
  console.log("[ExtensionManager] Store registered:", store.$id);
66
- infraStore.register_microservice(store);
100
+ // Extension-provided stores are expected to satisfy the fuller
101
+ // Microservice contract (connect, etc.) even though the loader's own
102
+ // RegisterableStore type only models what app.ts itself needs.
103
+ if (isMicroservice(store)) {
104
+ infraStore.register_microservice(store);
105
+ } else {
106
+ console.warn("[ExtensionManager] Store does not implement Microservice:", store.$id);
107
+ }
67
108
  return {
68
109
  name,
69
110
  version,
@@ -73,17 +114,18 @@ async function registerRunningExtensions() {
73
114
  );
74
115
  }
75
116
 
76
- async function importExtensionFile(file) {
117
+ async function importExtensionFile(file: File): Promise<RegisteredExtension[]> {
77
118
  await uploadExtension(file);
78
119
  return registerRunningExtensions();
79
120
  }
80
121
 
81
- async function importExtensionURL(url) {
122
+ async function importExtensionURL(url: DownloadExtensionParams): Promise<RegisteredExtension[]> {
82
123
  await downloadExtension(url);
83
124
  return registerRunningExtensions();
84
125
  }
85
126
 
86
- async function unloadExtension(extensionId) {
127
+ async function unloadExtension(extensionId: string): Promise<boolean> {
128
+ const { useAppStore } = await import("@ogw_front/stores/app");
87
129
  const appStore = useAppStore();
88
130
  console.log("[ExtensionManager] Unloading extension:", extensionId);
89
131
  const extensionData = appStore.getExtension(extensionId);
@@ -94,21 +136,22 @@ async function unloadExtension(extensionId) {
94
136
 
95
137
  // Get the store if it exists
96
138
  const storeFactory = extensionData.metadata?.store;
97
- if (storeFactory) {
139
+ if (storeFactory !== undefined) {
98
140
  const store = storeFactory();
99
141
  // Stop the microservice if possible
100
- if (typeof store.kill === "function") {
142
+ if (store.kill) {
101
143
  await store.kill();
102
144
  }
103
145
  }
104
146
 
105
147
  // Unload from AppStore
106
- appStore.unloadExtension(extensionId);
148
+ await appStore.unloadExtension(extensionId);
107
149
  console.log("[ExtensionManager] Extension unloaded:", extensionId);
108
150
  return true;
109
151
  }
110
152
 
111
- function killExtension(extensionId) {
153
+ async function killExtension(extensionId: string): Promise<unknown> {
154
+ const { useAppStore } = await import("@ogw_front/stores/app");
112
155
  const appStore = useAppStore();
113
156
  const { projectFolderPath } = appStore;
114
157
  const { PROJECT: projectName } = useRuntimeConfig().public;
@@ -118,10 +161,11 @@ function killExtension(extensionId) {
118
161
  projectFolderPath,
119
162
  projectName,
120
163
  };
121
- return appStore.request({
164
+ const result = await appStore.request({
122
165
  schema,
123
166
  params,
124
167
  });
168
+ return result;
125
169
  }
126
170
  export {
127
171
  importExtensionFile,