@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
package/app/stores/app.js DELETED
@@ -1,326 +0,0 @@
1
- // Local imports
2
- import { getRestApiPort, getRestApiProtocol, isCloudMode } from "@ogw_front/utils/stores.js";
3
- import { Status } from "@ogw_front/utils/status";
4
- import { api_fetch } from "@ogw_internal/utils/api_fetch.js";
5
- import { killExtension } from "@ogw_front/utils/extension.js";
6
- import { upload_file } from "@ogw_internal/utils/upload_file.js";
7
- import { useInfraStore } from "@ogw_front/stores/infra";
8
-
9
- import opengeodeweb_front_schemas from "@geode/opengeodeweb-front/opengeodeweb_front_schemas.json" with { type: "json" };
10
-
11
- // oxlint-disable-next-line max-lines-per-function, max-statements
12
- export const useAppStore = defineStore("app", () => {
13
- const stores = [];
14
- const globalComponents = ref(new Map());
15
- const default_local_port = ref(globalThis.location.port);
16
- const status = ref(Status.NOT_CONNECTED);
17
- const protocol = computed(() => getRestApiProtocol());
18
- const port = computed(() => getRestApiPort(default_local_port.value));
19
-
20
- const base_url = computed(() => {
21
- const infraStore = useInfraStore();
22
- let app_url = `${protocol.value}://${infraStore.domain_name}:${port.value}`;
23
- if (isCloudMode()) {
24
- app_url += `/server`;
25
- }
26
- return app_url;
27
- });
28
-
29
- function registerGlobalComponent(extensionId, componentId, component) {
30
- if (!globalComponents.value.has(extensionId)) {
31
- globalComponents.value.set(extensionId, new Map());
32
- }
33
- globalComponents.value.get(extensionId).set(componentId, component);
34
- console.log(
35
- `[AppStore] Registered global component ${componentId} for extension ${extensionId}`,
36
- );
37
- }
38
-
39
- function unregisterGlobalComponent(extensionId, componentId) {
40
- if (globalComponents.value.has(extensionId)) {
41
- globalComponents.value.get(extensionId).delete(componentId);
42
- }
43
- }
44
-
45
- function registerStore(store) {
46
- const isAlreadyRegistered = stores.some((registeredStore) => registeredStore.$id === store.$id);
47
- if (isAlreadyRegistered) {
48
- console.log(`[AppStore] Store "${store.$id}" already registered, skipping`);
49
- return;
50
- }
51
- console.log("[AppStore] Registering store", store.$id);
52
- stores.push(store);
53
- }
54
-
55
- async function exportStores(params = {}) {
56
- const snapshot = {};
57
- let exportCount = 0;
58
-
59
- console.log(`[AppStore] Exporting stores, total registered: ${stores.length}`);
60
- await Promise.all(
61
- stores.map(async (store) => {
62
- if (!store.exportStores) {
63
- return;
64
- }
65
- const storeId = store.$id;
66
- try {
67
- snapshot[storeId] = await store.exportStores(params);
68
- exportCount += 1;
69
- } catch (error) {
70
- console.error(`[AppStore] Error exporting store "${storeId}":`, error);
71
- }
72
- }),
73
- );
74
- console.log(`[AppStore] Exported ${exportCount} stores; snapshot keys:`, Object.keys(snapshot));
75
- return snapshot;
76
- }
77
-
78
- async function importStores(snapshot) {
79
- if (!snapshot) {
80
- console.warn("[AppStore] import called with invalid snapshot");
81
- return;
82
- }
83
- console.log("[AppStore] Import snapshot keys:", Object.keys(snapshot || {}));
84
-
85
- let importedCount = 0;
86
- const notFoundStores = [];
87
- await Promise.all(
88
- stores.map(async (store) => {
89
- if (!store.importStores) {
90
- return;
91
- }
92
- const storeId = store.$id;
93
- if (!snapshot[storeId]) {
94
- notFoundStores.push(storeId);
95
- return;
96
- }
97
- try {
98
- await store.importStores(snapshot[storeId]);
99
- importedCount += 1;
100
- } catch (error) {
101
- console.error(`[AppStore] Error importing store "${storeId}":`, error);
102
- }
103
- }),
104
- );
105
- if (notFoundStores.length > 0) {
106
- console.warn(`[AppStore] Stores not found in snapshot: ${notFoundStores.join(", ")}`);
107
- }
108
- console.log(`[AppStore] Imported ${importedCount} stores`);
109
- }
110
-
111
- const loadedExtensions = ref(new Map());
112
- const extensionAPI = ref(undefined);
113
- const codeTransformer = ref(undefined);
114
-
115
- function setExtensionAPI(api) {
116
- extensionAPI.value = api;
117
- }
118
-
119
- function setCodeTransformer(transformer) {
120
- codeTransformer.value = transformer;
121
- }
122
-
123
- function getExtension(id) {
124
- return loadedExtensions.value.get(id);
125
- }
126
-
127
- async function loadExtension(path, extensionPort, backendPath = undefined) {
128
- try {
129
- let finalURL = path;
130
-
131
- if (codeTransformer.value && path.startsWith("blob:")) {
132
- const response = await fetch(path);
133
- const code = await response.text();
134
- const transformedCode = codeTransformer.value(code);
135
-
136
- const newBlob = new Blob([transformedCode], {
137
- type: "application/javascript",
138
- });
139
- finalURL = URL.createObjectURL(newBlob);
140
- }
141
- // oxlint-disable-next-line no-inline-comments
142
- const extensionModule = await import(/* @vite-ignore */ finalURL);
143
- const store = extensionModule.metadata.store();
144
- store.$patch({ default_local_port: extensionPort });
145
-
146
- if (finalURL !== path && finalURL.startsWith("blob:")) {
147
- URL.revokeObjectURL(finalURL);
148
- }
149
-
150
- if (!extensionModule.metadata?.id) {
151
- throw new Error("Extension must have metadata.id");
152
- }
153
-
154
- const extensionId = extensionModule.metadata.id;
155
-
156
- if (loadedExtensions.value.has(extensionId)) {
157
- console.warn(`[AppStore] Extension "${extensionId}" is already loaded`);
158
- throw new Error(`Extension "${extensionId}" is already loaded.`);
159
- }
160
-
161
- if (!extensionAPI.value) {
162
- throw new Error("Extension API not initialized");
163
- }
164
-
165
- if (typeof extensionModule.install !== "function") {
166
- throw new TypeError("Extension must export an install function");
167
- }
168
-
169
- await extensionModule.install(extensionAPI.value, backendPath);
170
-
171
- const extensionData = {
172
- module: extensionModule,
173
- id: extensionId,
174
- path,
175
- backendPath,
176
- loadedAt: new Date().toISOString(),
177
- metadata: extensionModule.metadata,
178
- enabled: true,
179
- };
180
- loadedExtensions.value.set(extensionId, extensionData);
181
-
182
- console.log(`[AppStore] Extension loaded successfully: ${extensionId}`);
183
- return extensionModule;
184
- } catch (error) {
185
- console.error(`[AppStore] Failed to load extension from ${path}:`, error);
186
- throw error;
187
- }
188
- }
189
-
190
- function getLoadedExtensions() {
191
- return [...loadedExtensions.value.values()];
192
- }
193
-
194
- async function unloadExtension(extensionId) {
195
- console.log(`[AppStore] Unloading extension: ${extensionId}`);
196
- const infraStore = useInfraStore();
197
- await infraStore.unregister_microservice(extensionId);
198
- await killExtension(extensionId);
199
-
200
- loadedExtensions.value.delete(extensionId);
201
- console.log(`[AppStore] Extension unloaded: ${extensionId}`);
202
- return true;
203
- }
204
-
205
- function toggleExtension(extensionId) {
206
- const extensionData = getExtension(extensionId);
207
- if (!extensionData) {
208
- return false;
209
- }
210
- extensionData.enabled = !extensionData.enabled;
211
- console.log(
212
- `[AppStore] Extension ${extensionData.enabled ? "enabled" : "disabled"}: ${extensionId}`,
213
- );
214
- return extensionData.enabled;
215
- }
216
-
217
- function setExtensionEnabled(extensionId, enabled) {
218
- const extensionData = getExtension(extensionId);
219
- if (!extensionData) {
220
- return false;
221
- }
222
- extensionData.enabled = enabled;
223
- console.log(`[AppStore] Extension ${enabled ? "enabled" : "disabled"}: ${extensionId}`);
224
- return true;
225
- }
226
-
227
- function getExtensionEnabled(extensionId) {
228
- return getExtension(extensionId)?.enabled ?? false;
229
- }
230
-
231
- function upload(file, callbacks = {}) {
232
- const store = useAppStore();
233
- const schema = opengeodeweb_front_schemas.api.local.extensions.upload;
234
- const { PROJECT: projectName } = useRuntimeConfig().public;
235
- const params = { projectName };
236
- return upload_file(
237
- store,
238
- { schema, file, params },
239
- {
240
- ...callbacks,
241
- response_function: async (response) => {
242
- console.log("[APP] Request completed:", route);
243
- if (callbacks.response_function) {
244
- await callbacks.response_function(response);
245
- }
246
- },
247
- },
248
- );
249
- }
250
-
251
- function request({ schema, params }, callbacks = {}) {
252
- const store = useAppStore();
253
- return api_fetch(
254
- store,
255
- { schema, params },
256
- {
257
- ...callbacks,
258
- response_function: async (response) => {
259
- if (callbacks.response_function) {
260
- await callbacks.response_function(response);
261
- }
262
- },
263
- },
264
- );
265
- }
266
-
267
- const request_counter = ref(0);
268
- function start_request() {
269
- request_counter.value += 1;
270
- }
271
- function stop_request() {
272
- request_counter.value -= 1;
273
- }
274
- const is_busy = computed(() => request_counter.value > 0);
275
-
276
- const projectFolderPath = ref("");
277
-
278
- function createProjectFolder() {
279
- const { PROJECT } = useRuntimeConfig().public;
280
- const schema = opengeodeweb_front_schemas.api.local.app.project_folder_path;
281
- const params = { PROJECT };
282
- return request(
283
- { schema, params },
284
- {
285
- response_function: (response) => {
286
- console.log(`[APP] ${response.projectFolderPath} created`);
287
- projectFolderPath.value = response.projectFolderPath;
288
- },
289
- },
290
- );
291
- }
292
-
293
- return {
294
- stores,
295
- default_local_port,
296
- request_counter,
297
- status,
298
- protocol,
299
- port,
300
- base_url,
301
- is_busy,
302
- registerStore,
303
- exportStores,
304
- importStores,
305
- loadedExtensions,
306
- extensionAPI,
307
- setExtensionAPI,
308
- setCodeTransformer,
309
- loadExtension,
310
- getLoadedExtensions,
311
- getExtension,
312
- unloadExtension,
313
- toggleExtension,
314
- setExtensionEnabled,
315
- getExtensionEnabled,
316
- request,
317
- upload,
318
- projectFolderPath,
319
- createProjectFolder,
320
- start_request,
321
- stop_request,
322
- globalComponents,
323
- registerGlobalComponent,
324
- unregisterGlobalComponent,
325
- };
326
- });
@@ -1,57 +0,0 @@
1
- // Third party imports
2
- import { liveQuery } from "dexie";
3
- import { useObservable } from "@vueuse/rxjs";
4
- import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
5
-
6
- // Local imports
7
- import { database } from "@ogw_internal/database/database.js";
8
- import { useViewerStore } from "@ogw_front/stores/viewer";
9
-
10
- export const useCameraManagerStore = defineStore("camera_manager", () => {
11
- const viewerStore = useViewerStore();
12
- const camera_positions_db = database.camera_positions;
13
-
14
- function refAllCameraPositions() {
15
- return useObservable(
16
- liveQuery(() => camera_positions_db.toArray()),
17
- { initialValue: [] },
18
- );
19
- }
20
-
21
- async function getCameraPosition(id) {
22
- return await camera_positions_db.get(id);
23
- }
24
-
25
- async function saveCameraPosition(name, camera_options) {
26
- await camera_positions_db.put({
27
- name,
28
- camera_options,
29
- });
30
- }
31
-
32
- async function restoreCameraPosition(id) {
33
- const position = await camera_positions_db.get(id);
34
- if (position) {
35
- const schema = viewer_schemas.opengeodeweb_viewer.viewer.update_camera;
36
- const params = { camera_options: position.camera_options };
37
- await viewerStore.request({ schema, params });
38
- }
39
- }
40
-
41
- async function deleteCameraPosition(id) {
42
- await camera_positions_db.delete(id);
43
- }
44
-
45
- async function renameCameraPosition(id, newName) {
46
- await camera_positions_db.update(id, { name: newName });
47
- }
48
-
49
- return {
50
- refAllCameraPositions,
51
- getCameraPosition,
52
- saveCameraPosition,
53
- restoreCameraPosition,
54
- deleteCameraPosition,
55
- renameCameraPosition,
56
- };
57
- });
@@ -1,278 +0,0 @@
1
- // Third party imports
2
- import { liveQuery } from "dexie";
3
- import { useObservable } from "@vueuse/rxjs";
4
- import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
5
-
6
- // Local imports
7
- import { database } from "@ogw_internal/database/database.js";
8
- import { useDataCollections } from "./data_helpers/collections.js";
9
- import { useDataMesh } from "./data_helpers/mesh.js";
10
- import { useViewerStore } from "@ogw_front/stores/viewer";
11
-
12
- const viewer_generic_schemas = viewer_schemas.opengeodeweb_viewer.generic;
13
- function checkItemViewable(item) {
14
- if (!item || typeof item !== "object") {
15
- return false;
16
- }
17
- if (item.is_viewable !== undefined) {
18
- return Boolean(item.is_viewable);
19
- }
20
- if (item.binary_light_viewable !== undefined) {
21
- return item.binary_light_viewable !== "not_viewable";
22
- }
23
- if (
24
- item.geode_object_type === "HorizonStack3D" ||
25
- item.id === "HorizonStack3D" ||
26
- item.title === "HorizonStack3D"
27
- ) {
28
- return false;
29
- }
30
- return true;
31
- }
32
- function isItemViewable(itemOrId) {
33
- if (typeof itemOrId === "string") {
34
- return database.data.get(itemOrId).then(checkItemViewable);
35
- }
36
- return checkItemViewable(itemOrId);
37
- }
38
-
39
- // oxlint-disable-next-line max-lines-per-function, max-statements
40
- export const useDataStore = defineStore("data", () => {
41
- const viewerStore = useViewerStore();
42
- const data_db = database.data;
43
- const model_components_db = database.model_components;
44
- const model_components_relation_db = database.model_components_relation;
45
- const {
46
- formatedMeshComponents,
47
- refFormatedMeshComponents,
48
- getMeshComponentsByType,
49
- getAllMeshComponents,
50
- fetchAllMeshComponents,
51
- getMeshComponentGeodeIds,
52
- getCornersGeodeIds,
53
- getLinesGeodeIds,
54
- getSurfacesGeodeIds,
55
- getBlocksGeodeIds,
56
- } = useDataMesh();
57
- const {
58
- hasCollectionComponents,
59
- getAllCollectionComponents,
60
- fetchAllCollectionComponents,
61
- formatedCollectionComponents,
62
- refFormatedCollectionComponents,
63
- } = useDataCollections();
64
- async function item(id) {
65
- const data_item = await data_db.get(id);
66
- if (!data_item) {
67
- throw new Error(`Item not found: ${id}`);
68
- }
69
- return data_item;
70
- }
71
- async function allItems() {
72
- return await data_db.toArray();
73
- }
74
- function refItem(id) {
75
- return useObservable(
76
- liveQuery(() => data_db.get(id)),
77
- {
78
- initialValue: {},
79
- },
80
- );
81
- }
82
- function refAllItems() {
83
- return useObservable(
84
- liveQuery(() => data_db.toArray()),
85
- {
86
- initialValue: [],
87
- },
88
- );
89
- }
90
- async function meshComponentType(modelId, geode_id) {
91
- const component = await model_components_db
92
- .where("[id+geode_id]")
93
- .equals([modelId, geode_id])
94
- .first();
95
- return component?.type;
96
- }
97
- async function registerObject(id, name) {
98
- const schema = viewer_generic_schemas.register;
99
- const params = {
100
- id,
101
- name,
102
- };
103
- return await viewerStore.request({
104
- schema,
105
- params,
106
- timeout: 0,
107
- });
108
- }
109
- async function deregisterObject(id) {
110
- const schema = viewer_generic_schemas.deregister;
111
- const params = {
112
- id,
113
- };
114
- return await viewerStore.request({
115
- schema,
116
- params,
117
- });
118
- }
119
- function addItem(new_item) {
120
- const itemData = {
121
- id: new_item.id,
122
- name: new_item.name || new_item.id,
123
- viewer_type: new_item.viewer_type,
124
- geode_object_type: new_item.geode_object_type,
125
- visible: true,
126
- created_at: new Date().toISOString(),
127
- is_viewable: new_item.is_viewable,
128
- };
129
- if (new_item.binary_light_viewable !== undefined && new_item.binary_light_viewable !== null) {
130
- itemData.binary_light_viewable = new_item.binary_light_viewable;
131
- }
132
- return data_db.put(itemData);
133
- }
134
- function addComponents(new_item) {
135
- const allComponents = [];
136
- function addModelComponents(components) {
137
- for (const component of components) {
138
- allComponents.push({
139
- id: new_item.id,
140
- geode_id: component.geode_id,
141
- type: component.type,
142
- viewer_id: component.viewer_id,
143
- name: component.name,
144
- is_active: component.is_active,
145
- });
146
- }
147
- }
148
- if (new_item.mesh_components) {
149
- addModelComponents(new_item.mesh_components);
150
- }
151
- if (new_item.collection_components) {
152
- addModelComponents(new_item.collection_components);
153
- }
154
- return model_components_db.bulkPut(allComponents);
155
- }
156
- function addComponentRelations(new_item) {
157
- const relations = [];
158
- function addModelComponentRelations(components, parent, type) {
159
- for (const child of components) {
160
- relations.push({
161
- id: new_item.id,
162
- parent,
163
- child,
164
- type,
165
- });
166
- }
167
- }
168
- if (new_item.mesh_components) {
169
- for (const component of new_item.mesh_components) {
170
- if (component.boundaries) {
171
- addModelComponentRelations(component.boundaries, component.geode_id, "boundary");
172
- }
173
- if (component.internals) {
174
- addModelComponentRelations(component.internals, component.geode_id, "internal");
175
- }
176
- }
177
- }
178
- if (new_item.collection_components) {
179
- for (const component of new_item.collection_components) {
180
- if (component.items) {
181
- addModelComponentRelations(component.items, component.geode_id, "collection");
182
- }
183
- }
184
- }
185
- return model_components_relation_db.bulkPut(relations);
186
- }
187
- async function getComponentByViewerId(modelId, viewer_id) {
188
- const component = await model_components_db
189
- .where("viewer_id")
190
- .equals(Number(viewer_id))
191
- .and((model_component) => model_component.id === modelId)
192
- .first();
193
- return component;
194
- }
195
- async function deleteModelComponents(modelId) {
196
- await model_components_db.where("id").equals(modelId).delete();
197
- await database.model_components_relation.where("id").equals(modelId).delete();
198
- }
199
-
200
- async function deleteItem(id) {
201
- await data_db.delete(id);
202
- await deleteModelComponents(id);
203
- }
204
-
205
- async function updateItem(id, changes) {
206
- await data_db.update(id, changes);
207
- }
208
-
209
- async function getAllModelComponentsViewerIds(modelId) {
210
- const components = await model_components_db.where("id").equals(modelId).toArray();
211
- return components.map((component) => Math.trunc(Number(component.viewer_id)));
212
- }
213
- async function getMeshComponentsViewerIds(modelId, meshComponentGeodeIds) {
214
- const components = await model_components_db
215
- .where("[id+geode_id]")
216
- .anyOf(meshComponentGeodeIds.map((geode_id) => [modelId, geode_id]))
217
- .toArray();
218
- return components.map((component) => Math.trunc(Number(component.viewer_id)));
219
- }
220
- async function exportStores() {
221
- const items = await data_db.toArray();
222
- const modelComponents = await model_components_db.toArray();
223
- const modelComponentsRelations = await model_components_relation_db.toArray();
224
- return {
225
- items,
226
- modelComponents,
227
- modelComponentsRelations,
228
- };
229
- }
230
-
231
- async function clear() {
232
- await data_db.clear();
233
- await model_components_db.clear();
234
- await model_components_relation_db.clear();
235
- }
236
-
237
- async function importStores(snapshot) {
238
- await clear();
239
- await model_components_db.bulkPut(snapshot.modelComponents);
240
- await model_components_relation_db.bulkPut(snapshot.modelComponentsRelations);
241
- }
242
- return {
243
- refAllItems,
244
- item,
245
- allItems,
246
- refItem,
247
- isItemViewable,
248
- meshComponentType,
249
- registerObject,
250
- deregisterObject,
251
- addItem,
252
- addComponents,
253
- addComponentRelations,
254
- deleteItem,
255
- updateItem,
256
- getAllModelComponentsViewerIds,
257
- getMeshComponentsViewerIds,
258
- getComponentByViewerId,
259
- exportStores,
260
- importStores,
261
- clear,
262
- formatedMeshComponents,
263
- refFormatedMeshComponents,
264
- getMeshComponentsByType,
265
- getAllMeshComponents,
266
- fetchAllMeshComponents,
267
- getMeshComponentGeodeIds,
268
- getCornersGeodeIds,
269
- getLinesGeodeIds,
270
- getSurfacesGeodeIds,
271
- getBlocksGeodeIds,
272
- hasCollectionComponents,
273
- getAllCollectionComponents,
274
- fetchAllCollectionComponents,
275
- formatedCollectionComponents,
276
- refFormatedCollectionComponents,
277
- };
278
- });