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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/.build/opengeodeweb_front_schemas.js +175 -0
  2. package/.build/server/utils/app_config.js +57 -0
  3. package/.build/server/utils/cleanup.js +135 -0
  4. package/.build/server/utils/cloud.js +156 -0
  5. package/.build/server/utils/microservices.js +153 -0
  6. package/.build/server/utils/path.js +108 -0
  7. package/.build/server/utils/scripts.js +134 -0
  8. package/.build/server/utils/server.js +44 -0
  9. package/.build/server/utils/server_config.js +51 -0
  10. package/.build/server/utils/stream.js +6 -0
  11. package/.build/server/utils/ws_client.js +100 -0
  12. package/.build/shared/app_mode.js +8 -0
  13. package/.build/shared/scripts.js +49 -0
  14. package/.build/shared/utils/call_raw.js +31 -0
  15. package/.build/shared/utils/call_schema.js +28 -0
  16. package/.build/shared/utils/fetch_raw.js +52 -0
  17. package/.build/shared/utils/fetch_schema.js +32 -0
  18. package/.build/shared/utils/file.js +14 -0
  19. package/.build/shared/utils/parse_boolean.js +23 -0
  20. package/.build/shared/utils/response_handlers/load.js +50 -0
  21. package/.build/shared/utils/types.js +1 -0
  22. package/.build/shared/utils/validate_schema.js +17 -0
  23. package/README.md +8 -0
  24. package/app/assets/{geode_objects.js → geode_objects.ts} +8 -1
  25. package/app/components/ActionButton.vue +28 -12
  26. package/app/components/Basic/Slider.vue +2 -2
  27. package/app/components/Basic/Switch.vue +2 -2
  28. package/app/components/CameraManager/List.vue +11 -11
  29. package/app/components/CameraManager/Saver.vue +8 -4
  30. package/app/components/CameraManager.vue +24 -12
  31. package/app/components/CameraOrientation.vue +31 -17
  32. package/app/components/ClippingPlaneCard.vue +13 -12
  33. package/app/components/ClippingPlanes.vue +31 -21
  34. package/app/components/CrsSelector.vue +26 -18
  35. package/app/components/DeleteDialog.vue +18 -16
  36. package/app/components/DragAndDrop.vue +55 -37
  37. package/app/components/DragAndDropInternal/DragAndDropInline.vue +31 -16
  38. package/app/components/DragAndDropInternal/DragAndDropOverlay.vue +32 -19
  39. package/app/components/ExtensionSelector.vue +34 -18
  40. package/app/components/FeedBack/ErrorBanner.vue +4 -3
  41. package/app/components/FeedBack/Snackers.vue +6 -5
  42. package/app/components/FetchingData.vue +8 -12
  43. package/app/components/FileSelector.vue +27 -17
  44. package/app/components/FileUploader.vue +51 -30
  45. package/app/components/GlassCard.vue +17 -13
  46. package/app/components/HybridRenderingView.vue +25 -12
  47. package/app/components/HybridViewerTooltip.vue +28 -26
  48. package/app/components/InfraConnected.vue +1 -1
  49. package/app/components/Launcher.vue +12 -10
  50. package/app/components/Loading/EcoMessages.vue +24 -13
  51. package/app/components/Loading/Header.vue +6 -7
  52. package/app/components/Loading/Progress.vue +6 -7
  53. package/app/components/Loading.vue +10 -14
  54. package/app/components/MissingFilesSelector.vue +35 -19
  55. package/app/components/ObjectSelector.vue +37 -21
  56. package/app/components/PackagesVersions.vue +16 -8
  57. package/app/components/Recaptcha.vue +17 -23
  58. package/app/components/RemoteRenderingView.vue +21 -15
  59. package/app/components/Ruler.vue +11 -9
  60. package/app/components/Screenshot.vue +25 -19
  61. package/app/components/SearchBar.vue +12 -6
  62. package/app/components/ShrinkFilter.vue +19 -14
  63. package/app/components/Step.vue +32 -12
  64. package/app/components/Stepper.vue +19 -7
  65. package/app/components/ToolPanel.vue +29 -13
  66. package/app/components/ViewToolbar.vue +53 -44
  67. package/app/components/Viewer/ContextMenu/CenterButton.vue +16 -9
  68. package/app/components/Viewer/ContextMenu/CircularItems.vue +13 -10
  69. package/app/components/Viewer/ContextMenu/ContextMenu.vue +40 -32
  70. package/app/components/Viewer/ContextMenu/ContextMenuItem.vue +31 -17
  71. package/app/components/Viewer/ContextMenu/InfoCard.vue +38 -22
  72. package/app/components/Viewer/EdgedCurve/PointsOptions.vue +8 -5
  73. package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +67 -48
  74. package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +74 -50
  75. package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +69 -50
  76. package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +47 -35
  77. package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +91 -51
  78. package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +74 -49
  79. package/app/components/Viewer/Generic/Model/BlocksOptions.vue +115 -53
  80. package/app/components/Viewer/Generic/Model/CornersOptions.vue +75 -37
  81. package/app/components/Viewer/Generic/Model/EdgesOptions.vue +13 -9
  82. package/app/components/Viewer/Generic/Model/LinesOptions.vue +110 -61
  83. package/app/components/Viewer/Generic/Model/ModelStyleCard.vue +32 -21
  84. package/app/components/Viewer/Generic/Model/ModelStyleOptions.vue +9 -5
  85. package/app/components/Viewer/Generic/Model/PointsOptions.vue +19 -13
  86. package/app/components/Viewer/Generic/Model/SurfacesOptions.vue +119 -49
  87. package/app/components/Viewer/Grid/2D/CellsOptions.vue +8 -5
  88. package/app/components/Viewer/Grid/2D/EdgesOptions.vue +8 -5
  89. package/app/components/Viewer/Grid/2D/PointsOptions.vue +8 -5
  90. package/app/components/Viewer/Grid/3D/CellsOptions.vue +8 -5
  91. package/app/components/Viewer/Grid/3D/EdgesOptions.vue +8 -5
  92. package/app/components/Viewer/Grid/3D/FacetsOptions.vue +8 -5
  93. package/app/components/Viewer/Grid/3D/PointsOptions.vue +8 -5
  94. package/app/components/Viewer/ObjectTree/Base/CommonTreeView.vue +120 -76
  95. package/app/components/Viewer/ObjectTree/Base/Controls.vue +25 -10
  96. package/app/components/Viewer/ObjectTree/Base/ItemLabel.vue +42 -17
  97. package/app/components/Viewer/ObjectTree/Base/StickyHeader.vue +22 -9
  98. package/app/components/Viewer/ObjectTree/Base/TreeRow.vue +29 -14
  99. package/app/components/Viewer/ObjectTree/Box.vue +32 -15
  100. package/app/components/Viewer/ObjectTree/Layout.vue +55 -35
  101. package/app/components/Viewer/ObjectTree/Views/GlobalObjects.vue +63 -34
  102. package/app/components/Viewer/ObjectTree/Views/{ModelCollections.vue → ModelTree.vue} +101 -39
  103. package/app/components/Viewer/Options/AttributeColorBar.vue +14 -6
  104. package/app/components/Viewer/Options/AttributeRangeSelector.vue +8 -4
  105. package/app/components/Viewer/Options/AttributeSelector.vue +64 -33
  106. package/app/components/Viewer/Options/ColorMapList.vue +52 -24
  107. package/app/components/Viewer/Options/ColorMapPicker.vue +15 -11
  108. package/app/components/Viewer/Options/ColorPicker.vue +239 -50
  109. package/app/components/Viewer/Options/ColoringTypeSelector.vue +87 -67
  110. package/app/components/Viewer/Options/ColormapQuickPicker.vue +16 -12
  111. package/app/components/Viewer/Options/OptionsSection.vue +7 -5
  112. package/app/components/Viewer/Options/Sliders/Size.vue +3 -3
  113. package/app/components/Viewer/Options/Sliders/Slider.vue +9 -6
  114. package/app/components/Viewer/Options/Sliders/Width.vue +3 -3
  115. package/app/components/Viewer/Options/TextureItem.vue +29 -22
  116. package/app/components/Viewer/Options/TexturesSelector.vue +23 -12
  117. package/app/components/Viewer/Options/VisibilitySwitch.vue +3 -3
  118. package/app/components/Viewer/OverlappingObjectsPicker.vue +27 -12
  119. package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +38 -26
  120. package/app/components/Viewer/Solid/EdgesOptions.vue +8 -5
  121. package/app/components/Viewer/Solid/PointsOptions.vue +8 -5
  122. package/app/components/Viewer/Solid/PolygonsOptions.vue +8 -5
  123. package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +73 -48
  124. package/app/components/Viewer/Surface/EdgesOptions.vue +8 -5
  125. package/app/components/Viewer/Surface/PointsOptions.vue +8 -5
  126. package/app/components/Viewer/Surface/PolygonsOptions.vue +79 -49
  127. package/app/components/Viewer/Surface/Triangulated/TrianglesOptions.vue +8 -5
  128. package/app/components/Viewer/TetrahedralSolid/TetrahedraOptions.vue +8 -5
  129. package/app/components/Viewer/TetrahedralSolid/TrianglesOptions.vue +8 -5
  130. package/app/components/Viewer/Ui.vue +19 -14
  131. package/app/components/Wrapper.vue +16 -10
  132. package/app/components/ZScaling.vue +18 -10
  133. package/app/components/csv-preview/CsvPreviewer.vue +72 -50
  134. package/app/components/csv-preview/CsvSettings.vue +30 -50
  135. package/app/components/csv-preview/CsvTable.vue +34 -14
  136. package/app/composables/{batch_style.js → batch_style.ts} +9 -7
  137. package/app/composables/clipping_planes_widget.ts +204 -0
  138. package/app/composables/clipping_planes_widget_entries.ts +189 -0
  139. package/app/composables/copy_to_clipboard.ts +7 -0
  140. package/app/composables/global_attribute_style.ts +303 -0
  141. package/app/composables/hover_highlight.ts +127 -0
  142. package/app/composables/{model_collections.js → model_collections.ts} +28 -9
  143. package/app/composables/{model_components.js → model_components.ts} +28 -9
  144. package/app/composables/{project_manager.js → project_manager.ts} +77 -20
  145. package/app/composables/responsive_middle_truncate.ts +48 -0
  146. package/app/composables/{run_function_when_microservices_connected.js → run_function_when_microservices_connected.ts} +1 -1
  147. package/app/composables/stepper_tree.ts +79 -0
  148. package/app/composables/tree_filter.ts +194 -0
  149. package/app/composables/{tree_keyboard_nav.js → tree_keyboard_nav.ts} +62 -20
  150. package/app/composables/{tree_scroll.js → tree_scroll.ts} +61 -12
  151. package/app/composables/use_adaptive_styles.ts +186 -0
  152. package/app/composables/use_overlapping_picker.ts +263 -0
  153. package/app/composables/use_quick_colormap.ts +55 -0
  154. package/app/composables/virtual_tree.ts +271 -0
  155. package/app/composables/vtk_implicit_plane_widget.d.ts +2 -0
  156. package/app/plugins/{auto_store_register.js → auto_store_register.ts} +3 -5
  157. package/app/plugins/click_outside_ignore_snackbars.client.ts +36 -0
  158. package/app/stores/app.ts +252 -0
  159. package/app/stores/app_helpers/extension.ts +179 -0
  160. package/app/stores/{back.js → back.ts} +54 -28
  161. package/app/stores/camera_manager.ts +80 -0
  162. package/app/stores/{cloud.js → cloud.ts} +18 -13
  163. package/app/stores/data.ts +392 -0
  164. package/app/stores/data_helpers/collections.ts +138 -0
  165. package/app/stores/data_helpers/mesh.ts +169 -0
  166. package/app/stores/data_style.ts +167 -0
  167. package/app/stores/{feedback.js → feedback.ts} +19 -8
  168. package/app/stores/{hybrid_viewer.js → hybrid_viewer.ts} +49 -45
  169. package/app/stores/infra.ts +106 -0
  170. package/app/stores/{menu.js → menu.ts} +67 -36
  171. package/app/stores/treeview.ts +383 -0
  172. package/app/stores/{viewer.js → viewer.ts} +75 -42
  173. package/app/utils/attributes.ts +40 -0
  174. package/app/utils/clipping_planes.ts +222 -0
  175. package/app/utils/color_picker.js +54 -0
  176. package/app/utils/colormap.ts +102 -0
  177. package/app/utils/default_styles/{constants.js → constants.ts} +25 -12
  178. package/app/utils/default_styles/{index.js → index.ts} +4 -3
  179. package/app/utils/default_styles/meshes.ts +264 -0
  180. package/app/utils/default_styles/{models.js → models.ts} +106 -52
  181. package/app/utils/{extension.js → extension.ts} +63 -19
  182. package/app/utils/{import_workflow.js → import_workflow.ts} +39 -22
  183. package/app/utils/{log.js → log.ts} +12 -2
  184. package/app/utils/{name_cleaner.js → name_cleaner.ts} +6 -6
  185. package/app/utils/status.ts +19 -0
  186. package/app/utils/{stores.js → stores.ts} +5 -5
  187. package/app/utils/{string.js → string.ts} +6 -6
  188. package/app/utils/{treeview.js → treeview.ts} +4 -1
  189. package/internal/database/{base_database.js → base_database.ts} +7 -3
  190. package/internal/database/database.ts +102 -0
  191. package/internal/database/{extended_database.js → extended_database.ts} +5 -1
  192. package/internal/database/tables/camera_positions.ts +6 -0
  193. package/internal/database/tables/{data.js → data.ts} +3 -1
  194. package/internal/database/tables/data_style.ts +6 -0
  195. package/internal/database/tables/model_component_datastyle.ts +6 -0
  196. package/internal/database/tables/model_component_type_datastyle.ts +6 -0
  197. package/internal/database/tables/model_components.ts +6 -0
  198. package/internal/database/tables/model_components_relation.ts +6 -0
  199. package/internal/database/tables/table_definition.ts +5 -0
  200. package/internal/stores/data_style/mesh/cells/cell.ts +279 -0
  201. package/internal/stores/data_style/mesh/cells/{color.js → color.ts} +13 -7
  202. package/internal/stores/data_style/mesh/cells/common.ts +50 -0
  203. package/internal/stores/data_style/mesh/cells/index.ts +161 -0
  204. package/internal/stores/data_style/mesh/cells/{textures.js → textures.ts} +14 -8
  205. package/internal/stores/data_style/mesh/cells/vertex.ts +285 -0
  206. package/internal/stores/data_style/mesh/cells/visibility.ts +46 -0
  207. package/internal/stores/data_style/mesh/edges/{color.js → color.ts} +13 -7
  208. package/internal/stores/data_style/mesh/edges/common.ts +41 -0
  209. package/internal/stores/data_style/mesh/edges/edge.ts +279 -0
  210. package/internal/stores/data_style/mesh/edges/index.ts +155 -0
  211. package/internal/stores/data_style/mesh/edges/vertex.ts +285 -0
  212. package/internal/stores/data_style/mesh/edges/visibility.ts +45 -0
  213. package/internal/stores/data_style/mesh/edges/width.ts +42 -0
  214. package/internal/stores/data_style/mesh/{index.js → index.ts} +34 -14
  215. package/internal/stores/data_style/mesh/points/{color.js → color.ts} +13 -7
  216. package/internal/stores/data_style/mesh/points/common.ts +51 -0
  217. package/internal/stores/data_style/mesh/points/index.ts +133 -0
  218. package/internal/stores/data_style/mesh/points/size.ts +43 -0
  219. package/internal/stores/data_style/mesh/points/vertex.ts +285 -0
  220. package/internal/stores/data_style/mesh/points/visibility.ts +49 -0
  221. package/internal/stores/data_style/mesh/polygons/{color.js → color.ts} +13 -7
  222. package/internal/stores/data_style/mesh/polygons/common.ts +50 -0
  223. package/internal/stores/data_style/mesh/polygons/index.ts +167 -0
  224. package/internal/stores/data_style/mesh/polygons/polygon.ts +282 -0
  225. package/internal/stores/data_style/mesh/polygons/{textures.js → textures.ts} +14 -8
  226. package/internal/stores/data_style/mesh/polygons/vertex.ts +288 -0
  227. package/internal/stores/data_style/mesh/polygons/visibility.ts +48 -0
  228. package/internal/stores/data_style/mesh/polyhedra/{color.js → color.ts} +13 -7
  229. package/internal/stores/data_style/mesh/polyhedra/common.ts +41 -0
  230. package/internal/stores/data_style/mesh/polyhedra/index.ts +157 -0
  231. package/internal/stores/data_style/mesh/polyhedra/polyhedron.ts +294 -0
  232. package/internal/stores/data_style/mesh/polyhedra/vertex.ts +288 -0
  233. package/internal/stores/data_style/mesh/polyhedra/visibility.ts +48 -0
  234. package/internal/stores/data_style/model/blocks/{color.js → color.ts} +50 -13
  235. package/internal/stores/data_style/model/blocks/common.ts +67 -0
  236. package/internal/stores/data_style/model/blocks/{index.js → index.ts} +111 -66
  237. package/internal/stores/data_style/model/blocks/polyhedron.ts +363 -0
  238. package/internal/stores/data_style/model/blocks/vertex.ts +349 -0
  239. package/internal/stores/data_style/model/blocks/visibility.ts +37 -0
  240. package/internal/stores/data_style/model/color.ts +348 -0
  241. package/internal/stores/data_style/model/common.ts +262 -0
  242. package/internal/stores/data_style/model/corners/{color.js → color.ts} +49 -10
  243. package/internal/stores/data_style/model/corners/common.ts +71 -0
  244. package/internal/stores/data_style/model/corners/{index.js → index.ts} +86 -47
  245. package/internal/stores/data_style/model/corners/vertex.ts +315 -0
  246. package/internal/stores/data_style/model/corners/visibility.ts +39 -0
  247. package/internal/stores/data_style/model/edges/common.ts +29 -0
  248. package/internal/stores/data_style/model/edges/{index.js → index.ts} +2 -7
  249. package/internal/stores/data_style/model/edges/visibility.ts +55 -0
  250. package/internal/stores/data_style/model/{index.js → index.ts} +24 -11
  251. package/internal/stores/data_style/model/lines/{color.js → color.ts} +47 -10
  252. package/internal/stores/data_style/model/lines/common.ts +63 -0
  253. package/internal/stores/data_style/model/lines/edge.ts +343 -0
  254. package/internal/stores/data_style/model/lines/{index.js → index.ts} +108 -66
  255. package/internal/stores/data_style/model/lines/vertex.ts +344 -0
  256. package/internal/stores/data_style/model/lines/visibility.ts +37 -0
  257. package/internal/stores/data_style/model/points/common.ts +25 -0
  258. package/internal/stores/data_style/model/points/index.ts +35 -0
  259. package/internal/stores/data_style/model/points/size.ts +44 -0
  260. package/internal/stores/data_style/model/points/visibility.ts +46 -0
  261. package/internal/stores/data_style/model/selection.ts +138 -0
  262. package/internal/stores/data_style/model/surfaces/{color.js → color.ts} +47 -10
  263. package/internal/stores/data_style/model/surfaces/common.ts +69 -0
  264. package/internal/stores/data_style/model/surfaces/{index.js → index.ts} +113 -66
  265. package/internal/stores/data_style/model/surfaces/polygon.ts +347 -0
  266. package/internal/stores/data_style/model/surfaces/vertex.ts +351 -0
  267. package/internal/stores/data_style/model/surfaces/visibility.ts +37 -0
  268. package/internal/stores/data_style/model/{visibility.js → visibility.ts} +112 -32
  269. package/internal/stores/data_style/state.ts +281 -0
  270. package/internal/stores/data_style/types.ts +30 -0
  271. package/internal/stores/hybrid_viewer/brightness.ts +124 -0
  272. package/internal/stores/hybrid_viewer/camera.ts +326 -0
  273. package/internal/stores/hybrid_viewer/{camera_animation.js → camera_animation.ts} +30 -12
  274. package/internal/stores/hybrid_viewer/{constants.js → constants.ts} +2 -2
  275. package/internal/stores/hybrid_viewer/core.ts +64 -0
  276. package/internal/stores/hybrid_viewer/{filters.js → filters.ts} +10 -13
  277. package/internal/stores/hybrid_viewer/highlight.ts +183 -0
  278. package/internal/stores/hybrid_viewer/{ruler.js → ruler.ts} +50 -22
  279. package/internal/stores/hybrid_viewer/scene.ts +125 -0
  280. package/internal/stores/hybrid_viewer/viewport.ts +177 -0
  281. package/internal/stores/hybrid_viewer/vtk_types.ts +58 -0
  282. package/internal/utils/api_fetch.ts +133 -0
  283. package/internal/utils/upload_file.ts +115 -0
  284. package/internal/utils/viewer_call.ts +99 -0
  285. package/internal/utils/ws_client.ts +54 -0
  286. package/nuxt.config.ts +168 -0
  287. package/opengeodeweb_front_schemas.json +2 -2
  288. package/package.json +49 -13
  289. package/server/api/cloud/extensions/{run.post.js → run.post.ts} +16 -12
  290. package/server/api/local/app/project_folder_path.post.ts +33 -0
  291. package/server/api/local/app/run_back.post.ts +39 -0
  292. package/server/api/local/app/run_viewer.post.ts +39 -0
  293. package/server/api/local/extensions/{kill.post.js → kill.post.ts} +15 -8
  294. package/server/api/local/extensions/{run.post.js → run.post.ts} +17 -12
  295. package/server/api/local/extensions/upload.put.ts +71 -0
  296. package/server/api/microservice/app/{get_is_app_ready.get.js → get_is_app_ready.get.ts} +5 -5
  297. package/server/api/microservice/app/schemas/get_is_app_ready.json +1 -1
  298. package/server/api/microservice/app/set_app_base_url.post.ts +29 -0
  299. package/server/api/microservice/app/set_back_base_url.post.ts +26 -0
  300. package/server/api/microservice/app/set_is_app_ready.post.ts +29 -0
  301. package/server/api/microservice/app/set_viewer_base_url.post.ts +26 -0
  302. package/server/api/microservice/extensions/{download.post.js → download.post.ts} +13 -6
  303. package/server/api/serverless/run_cloud.post.ts +92 -0
  304. package/server/utils/{app_config.js → app_config.ts} +40 -18
  305. package/server/utils/{cleanup.js → cleanup.ts} +76 -29
  306. package/server/utils/{cloud.js → cloud.ts} +33 -17
  307. package/server/utils/{extension.js → extension.ts} +31 -4
  308. package/server/utils/{microservices.js → microservices.ts} +68 -27
  309. package/server/utils/{path.js → path.ts} +36 -17
  310. package/server/utils/{scripts.js → scripts.ts} +49 -33
  311. package/server/utils/{server.js → server.ts} +13 -6
  312. package/server/utils/server_config.ts +74 -0
  313. package/server/utils/stream.ts +6 -0
  314. package/server/utils/ws_client.ts +165 -0
  315. package/shared/{scripts.js → scripts.ts} +15 -10
  316. package/shared/utils/call_raw.ts +73 -0
  317. package/shared/utils/{call_schema.js → call_schema.ts} +15 -6
  318. package/shared/utils/fetch_raw.ts +125 -0
  319. package/shared/utils/{fetch_schema.js → fetch_schema.ts} +16 -7
  320. package/shared/utils/file.ts +22 -0
  321. package/shared/utils/{parse_boolean.js → parse_boolean.ts} +1 -1
  322. package/shared/utils/response_handlers/load.ts +109 -0
  323. package/shared/utils/types.ts +27 -0
  324. package/shared/utils/{validate_schema.js → validate_schema.ts} +3 -1
  325. package/.github/workflows/config.json +0 -5
  326. package/.github/workflows/deploy.yml +0 -15
  327. package/.github/workflows/manual_release.yml +0 -11
  328. package/.github/workflows/merge_request.yml +0 -9
  329. package/.github/workflows/pr_update.yml +0 -11
  330. package/.github/workflows/prepare_deploy.yml +0 -9
  331. package/.github/workflows/schedule.yml +0 -18
  332. package/.github/workflows/test.yml +0 -14
  333. package/.github/workflows/test_pr.yml +0 -12
  334. package/.oxlintrc.json +0 -150
  335. package/.releaserc +0 -11
  336. package/app/components/Viewer/ObjectTree/Views/ModelComponents.vue +0 -224
  337. package/app/composables/clipping_planes_widget.js +0 -249
  338. package/app/composables/global_attribute_style.js +0 -181
  339. package/app/composables/hover_highlight.js +0 -91
  340. package/app/composables/responsive_middle_truncate.js +0 -34
  341. package/app/composables/stepper_tree.js +0 -56
  342. package/app/composables/tree_filter.js +0 -138
  343. package/app/composables/use_adaptive_styles.js +0 -120
  344. package/app/composables/use_overlapping_picker.js +0 -169
  345. package/app/composables/use_quick_colormap.js +0 -32
  346. package/app/composables/virtual_tree.js +0 -191
  347. package/app/stores/app.js +0 -326
  348. package/app/stores/camera_manager.js +0 -57
  349. package/app/stores/data.js +0 -278
  350. package/app/stores/data_helpers/collections.js +0 -96
  351. package/app/stores/data_helpers/mesh.js +0 -122
  352. package/app/stores/data_style.js +0 -116
  353. package/app/stores/infra.js +0 -95
  354. package/app/stores/treeview.js +0 -290
  355. package/app/utils/attributes.js +0 -23
  356. package/app/utils/clipping_planes.js +0 -110
  357. package/app/utils/colormap.js +0 -64
  358. package/app/utils/default_styles/meshes.js +0 -191
  359. package/app/utils/status.js +0 -10
  360. package/commitlint.config.js +0 -20
  361. package/internal/database/database.js +0 -80
  362. package/internal/database/tables/camera_positions.js +0 -4
  363. package/internal/database/tables/data_style.js +0 -4
  364. package/internal/database/tables/model_component_datastyle.js +0 -4
  365. package/internal/database/tables/model_component_type_datastyle.js +0 -4
  366. package/internal/database/tables/model_components.js +0 -4
  367. package/internal/database/tables/model_components_relation.js +0 -4
  368. package/internal/stores/data_style/mesh/cells/cell.js +0 -196
  369. package/internal/stores/data_style/mesh/cells/common.js +0 -39
  370. package/internal/stores/data_style/mesh/cells/index.js +0 -81
  371. package/internal/stores/data_style/mesh/cells/vertex.js +0 -193
  372. package/internal/stores/data_style/mesh/cells/visibility.js +0 -35
  373. package/internal/stores/data_style/mesh/edges/common.js +0 -32
  374. package/internal/stores/data_style/mesh/edges/edge.js +0 -195
  375. package/internal/stores/data_style/mesh/edges/index.js +0 -81
  376. package/internal/stores/data_style/mesh/edges/vertex.js +0 -196
  377. package/internal/stores/data_style/mesh/edges/visibility.js +0 -34
  378. package/internal/stores/data_style/mesh/edges/width.js +0 -34
  379. package/internal/stores/data_style/mesh/points/common.js +0 -37
  380. package/internal/stores/data_style/mesh/points/index.js +0 -82
  381. package/internal/stores/data_style/mesh/points/size.js +0 -35
  382. package/internal/stores/data_style/mesh/points/vertex.js +0 -193
  383. package/internal/stores/data_style/mesh/points/visibility.js +0 -37
  384. package/internal/stores/data_style/mesh/polygons/common.js +0 -32
  385. package/internal/stores/data_style/mesh/polygons/index.js +0 -107
  386. package/internal/stores/data_style/mesh/polygons/polygon.js +0 -196
  387. package/internal/stores/data_style/mesh/polygons/vertex.js +0 -196
  388. package/internal/stores/data_style/mesh/polygons/visibility.js +0 -38
  389. package/internal/stores/data_style/mesh/polyhedra/common.js +0 -32
  390. package/internal/stores/data_style/mesh/polyhedra/index.js +0 -98
  391. package/internal/stores/data_style/mesh/polyhedra/polyhedron.js +0 -196
  392. package/internal/stores/data_style/mesh/polyhedra/vertex.js +0 -196
  393. package/internal/stores/data_style/mesh/polyhedra/visibility.js +0 -38
  394. package/internal/stores/data_style/model/blocks/common.js +0 -51
  395. package/internal/stores/data_style/model/blocks/polyhedron.js +0 -215
  396. package/internal/stores/data_style/model/blocks/vertex.js +0 -204
  397. package/internal/stores/data_style/model/blocks/visibility.js +0 -20
  398. package/internal/stores/data_style/model/color.js +0 -218
  399. package/internal/stores/data_style/model/common.js +0 -141
  400. package/internal/stores/data_style/model/corners/common.js +0 -51
  401. package/internal/stores/data_style/model/corners/vertex.js +0 -204
  402. package/internal/stores/data_style/model/corners/visibility.js +0 -20
  403. package/internal/stores/data_style/model/edges/common.js +0 -20
  404. package/internal/stores/data_style/model/edges/visibility.js +0 -38
  405. package/internal/stores/data_style/model/lines/common.js +0 -51
  406. package/internal/stores/data_style/model/lines/edge.js +0 -203
  407. package/internal/stores/data_style/model/lines/vertex.js +0 -204
  408. package/internal/stores/data_style/model/lines/visibility.js +0 -20
  409. package/internal/stores/data_style/model/points/common.js +0 -20
  410. package/internal/stores/data_style/model/points/index.js +0 -25
  411. package/internal/stores/data_style/model/points/size.js +0 -36
  412. package/internal/stores/data_style/model/points/visibility.js +0 -36
  413. package/internal/stores/data_style/model/selection.js +0 -89
  414. package/internal/stores/data_style/model/surfaces/common.js +0 -51
  415. package/internal/stores/data_style/model/surfaces/polygon.js +0 -215
  416. package/internal/stores/data_style/model/surfaces/vertex.js +0 -215
  417. package/internal/stores/data_style/model/surfaces/visibility.js +0 -20
  418. package/internal/stores/data_style/state.js +0 -197
  419. package/internal/stores/hybrid_viewer/brightness.js +0 -82
  420. package/internal/stores/hybrid_viewer/camera.js +0 -274
  421. package/internal/stores/hybrid_viewer/highlight.js +0 -170
  422. package/internal/stores/hybrid_viewer/scene.js +0 -136
  423. package/internal/stores/hybrid_viewer/viewport.js +0 -140
  424. package/internal/utils/api_fetch.js +0 -52
  425. package/internal/utils/upload_file.js +0 -57
  426. package/internal/utils/viewer_call.js +0 -49
  427. package/internal/utils/ws_client.js +0 -29
  428. package/nuxt.config.js +0 -106
  429. package/scripts/generate_geode_objects.js +0 -24
  430. package/server/api/local/app/project_folder_path.post.js +0 -29
  431. package/server/api/local/app/run_back.post.js +0 -33
  432. package/server/api/local/app/run_viewer.post.js +0 -33
  433. package/server/api/local/extensions/upload.put.js +0 -72
  434. package/server/api/microservice/app/set_app_base_url.post.js +0 -25
  435. package/server/api/microservice/app/set_back_base_url.post.js +0 -22
  436. package/server/api/microservice/app/set_is_app_ready.post.js +0 -25
  437. package/server/api/microservice/app/set_viewer_base_url.post.js +0 -22
  438. package/server/api/serverless/run_cloud.post.js +0 -44
  439. package/server/utils/server_config.js +0 -58
  440. package/server/utils/ws_client.js +0 -112
  441. package/shared/utils/call_raw.js +0 -46
  442. package/shared/utils/fetch_raw.js +0 -61
  443. package/shared/utils/file.js +0 -16
  444. package/shared/utils/response_handlers/load.js +0 -74
  445. package/tests/integration/data/uploads/test.og_brep +0 -0
  446. package/tests/integration/data/uploads/test.og_edc2d +0 -0
  447. package/tests/integration/data/uploads/test.og_edc3d +0 -0
  448. package/tests/integration/data/uploads/test.og_psf3d +0 -0
  449. package/tests/integration/data/uploads/test.og_rgd2d +0 -0
  450. package/tests/integration/data/uploads/test.og_rgd3d +0 -0
  451. package/tests/integration/data/uploads/test.vtu +0 -22
  452. package/tests/integration/setup.js +0 -92
  453. package/tests/integration/stores/data_style/mesh/cells.nuxt.test.js +0 -343
  454. package/tests/integration/stores/data_style/mesh/edges.nuxt.test.js +0 -254
  455. package/tests/integration/stores/data_style/mesh/index.nuxt.test.js +0 -62
  456. package/tests/integration/stores/data_style/mesh/points.nuxt.test.js +0 -201
  457. package/tests/integration/stores/data_style/mesh/polygons.nuxt.test.js +0 -260
  458. package/tests/integration/stores/data_style/mesh/polyhedra.nuxt.test.js +0 -267
  459. package/tests/integration/stores/data_style/model/blocks.nuxt.test.js +0 -397
  460. package/tests/integration/stores/data_style/model/corners.nuxt.test.js +0 -264
  461. package/tests/integration/stores/data_style/model/edges.nuxt.test.js +0 -71
  462. package/tests/integration/stores/data_style/model/index.nuxt.test.js +0 -92
  463. package/tests/integration/stores/data_style/model/lines.nuxt.test.js +0 -379
  464. package/tests/integration/stores/data_style/model/points.nuxt.test.js +0 -95
  465. package/tests/integration/stores/data_style/model/surfaces.nuxt.test.js +0 -574
  466. package/tests/integration/stores/viewer.nuxt.test.js +0 -69
  467. package/tests/setup_indexeddb.js +0 -4
  468. package/tests/unit/components/CrsSelector.nuxt.test.js +0 -55
  469. package/tests/unit/components/DragAndDrop.nuxt.test.js +0 -89
  470. package/tests/unit/components/ExtensionSelector.nuxt.test.js +0 -65
  471. package/tests/unit/components/FeedBack/ErrorsBanner.nuxt.test.js +0 -41
  472. package/tests/unit/components/FeedBack/Snackers.nuxt.test.js +0 -49
  473. package/tests/unit/components/FileSelector.nuxt.test.js +0 -124
  474. package/tests/unit/components/FileUploader.nuxt.test.js +0 -69
  475. package/tests/unit/components/MissingFilesSelector.nuxt.test.js +0 -77
  476. package/tests/unit/components/ObjectSelector.nuxt.test.js +0 -118
  477. package/tests/unit/components/PackagesVersions.nuxt.test.js +0 -42
  478. package/tests/unit/components/Step.nuxt.test.js +0 -51
  479. package/tests/unit/components/Stepper.nuxt.test.js +0 -41
  480. package/tests/unit/components/ToolPanel.nuxt.test.js +0 -66
  481. package/tests/unit/composables/api_fetch.nuxt.test.js +0 -75
  482. package/tests/unit/composables/project_manager.nuxt.test.js +0 -299
  483. package/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js +0 -57
  484. package/tests/unit/composables/upload_file.nuxt.test.js +0 -45
  485. package/tests/unit/composables/virtual_tree.nuxt.test.js +0 -63
  486. package/tests/unit/plugins/project_load.nuxt.test.js +0 -98
  487. package/tests/unit/stores/app.nuxt.test.js +0 -189
  488. package/tests/unit/stores/back.nuxt.test.js +0 -147
  489. package/tests/unit/stores/cloud.nuxt.test.js +0 -90
  490. package/tests/unit/stores/data.nuxt.test.js +0 -162
  491. package/tests/unit/stores/feedback.nuxt.test.js +0 -90
  492. package/tests/unit/stores/infra.nuxt.test.js +0 -313
  493. package/tests/unit/stores/treeview.nuxt.test.js +0 -63
  494. package/tests/unit/stores/viewer.nuxt.test.js +0 -161
  495. package/tests/unit/utils/validate_schema.nuxt.test.js +0 -38
  496. package/tests/utils.js +0 -20
  497. package/tests/vitest.config.js +0 -67
  498. /package/server/api/local/app/{kill.post.js → kill.post.ts} +0 -0
  499. /package/shared/{app_mode.js → app_mode.ts} +0 -0
@@ -1,574 +0,0 @@
1
- // oxlint-disable max-lines
2
- // Third party imports
3
- import { afterAll, beforeAll, describe, expect, test, vi } from "vitest";
4
- import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json" with { type: "json" };
5
-
6
- // Local imports
7
- import { beforeAllTimeout, setupIntegrationTests } from "@ogw_tests/integration/setup";
8
- import { DEFAULT_NO_DATA_COLOR } from "@ogw_front/utils/default_styles/constants";
9
- import { Status } from "@ogw_front/utils/status";
10
- import { cleanupBackend } from "@ogw_server/utils/cleanup";
11
- import { getRGBPointsFromPreset } from "@ogw_front/utils/colormap";
12
- import { isModelSurfacesPolygonAttributeValid } from "@ogw_internal/stores/data_style/model/surfaces/polygon";
13
- import { isModelSurfacesVertexAttributeValid } from "@ogw_internal/stores/data_style/model/surfaces/vertex";
14
- import { useDataStore } from "@ogw_front/stores/data";
15
- import { useDataStyleStore } from "@ogw_front/stores/data_style";
16
- import { useViewerStore } from "@ogw_front/stores/viewer";
17
-
18
- // Local constants
19
- const model_surfaces_schemas = viewer_schemas.opengeodeweb_viewer.model.surfaces;
20
- const file_name = "test.og_brep";
21
- const geode_object = "BRep";
22
- const SLEEP_MS = 200;
23
- const MINIMUM_RANGE = 10;
24
- const MAXIMUM_RANGE = 20;
25
- const MAX_RANGE_TEST_VALUE = 100;
26
-
27
- function sleep(milliseconds) {
28
- // oxlint-disable-next-line promise/avoid-new
29
- return new Promise((resolve) => {
30
- setTimeout(resolve, milliseconds);
31
- });
32
- }
33
-
34
- let id = "";
35
- let projectFolderPath = "";
36
-
37
- describe("model surfaces", () => {
38
- beforeAll(async () => {
39
- ({ id, projectFolderPath } = await setupIntegrationTests(file_name, geode_object));
40
- }, beforeAllTimeout);
41
-
42
- afterAll(async () => {
43
- console.log("afterAll model surfaces kill", projectFolderPath);
44
- await cleanupBackend(projectFolderPath);
45
- });
46
- describe("surfaces visibility", () => {
47
- test("visibility true", async () => {
48
- const dataStyleStore = useDataStyleStore();
49
- const viewerStore = useViewerStore();
50
- const dataStore = useDataStore();
51
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
52
- const surface_viewer_ids = await dataStore.getMeshComponentsViewerIds(id, surface_ids);
53
- const visibility = true;
54
- const spy = vi.spyOn(viewerStore, "request");
55
- spy.mockClear();
56
- const result = dataStyleStore.setModelSurfacesVisibility(id, surface_ids, visibility);
57
- expect(result).toBeInstanceOf(Promise);
58
- await result;
59
- await sleep(SLEEP_MS);
60
- const schema = model_surfaces_schemas.visibility;
61
- const params = { id, block_ids: surface_viewer_ids, visibility };
62
- expect(spy).toHaveBeenCalledWith(
63
- { schema, params },
64
- {
65
- response_function: expect.any(Function),
66
- },
67
- );
68
- for (const surface_id of surface_ids) {
69
- expect(dataStyleStore.modelSurfaceVisibility(id, surface_id)).toBe(visibility);
70
- }
71
- expect(viewerStore.status).toBe(Status.CONNECTED);
72
- });
73
- });
74
-
75
- describe("surfaces color", () => {
76
- test("color red", async () => {
77
- const dataStyleStore = useDataStyleStore();
78
- const viewerStore = useViewerStore();
79
- const dataStore = useDataStore();
80
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
81
- const surface_viewer_ids = await dataStore.getMeshComponentsViewerIds(id, surface_ids);
82
- const color = { red: 255, green: 0, blue: 0, alpha: 1 };
83
- const spy = vi.spyOn(viewerStore, "request");
84
- spy.mockClear();
85
- const result = dataStyleStore.setModelSurfacesColor(id, surface_ids, color);
86
- expect(result).toBeInstanceOf(Promise);
87
- await result;
88
- await sleep(SLEEP_MS);
89
- const schema = model_surfaces_schemas.color;
90
- const params = { id, block_ids: surface_viewer_ids, color, color_mode: "constant" };
91
- expect(spy).toHaveBeenCalledWith(
92
- { schema, params },
93
- {
94
- response_function: expect.any(Function),
95
- },
96
- );
97
- for (const surface_id of surface_ids) {
98
- expect(dataStyleStore.modelSurfaceColor(id, surface_id)).toStrictEqual(color);
99
- }
100
- expect(viewerStore.status).toBe(Status.CONNECTED);
101
- });
102
- });
103
- describe("surfaces vertex attribute", () => {
104
- test("coloring vertex attribute", () => {
105
- expect(
106
- isModelSurfacesVertexAttributeValid({
107
- name: "points",
108
- item: 0,
109
- minimum: undefined,
110
- maximum: undefined,
111
- colorMap: undefined,
112
- }),
113
- ).toBe(false);
114
- });
115
-
116
- test("coloring vertex attribute — direct set with full object", async () => {
117
- const dataStyleStore = useDataStyleStore();
118
- const viewerStore = useViewerStore();
119
- const dataStore = useDataStore();
120
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
121
- const surface_viewer_ids = await dataStore.getMeshComponentsViewerIds(id, surface_ids);
122
- const spy = vi.spyOn(viewerStore, "request");
123
- spy.mockClear();
124
- const vertex_attribute = {
125
- name: "points",
126
- item: 0,
127
- minimum: MINIMUM_RANGE,
128
- maximum: MAXIMUM_RANGE,
129
- colorMap: "batlow",
130
- };
131
- const result = dataStyleStore.setModelSurfacesVertexAttribute(
132
- id,
133
- surface_ids,
134
- vertex_attribute,
135
- );
136
- expect(result).toBeInstanceOf(Promise);
137
- await result;
138
- await sleep(SLEEP_MS);
139
- const schema = model_surfaces_schemas.attribute.vertex.attribute;
140
- const points = getRGBPointsFromPreset(vertex_attribute.colorMap);
141
- const params = {
142
- id,
143
- block_ids: surface_viewer_ids,
144
- name: vertex_attribute.name,
145
- item: vertex_attribute.item,
146
- points,
147
- minimum: vertex_attribute.minimum,
148
- maximum: vertex_attribute.maximum,
149
- no_data_color: DEFAULT_NO_DATA_COLOR,
150
- };
151
- expect(spy).toHaveBeenCalledWith({ schema, params });
152
- const [surface_id] = surface_ids;
153
- expect(dataStyleStore.modelSurfacesVertexAttributeName(id, surface_id)).toBe(
154
- vertex_attribute.name,
155
- );
156
- expect(viewerStore.status).toBe(Status.CONNECTED);
157
- });
158
-
159
- test("coloring vertex attribute — item switching and stored configs restore", async () => {
160
- const dataStyleStore = useDataStyleStore();
161
- const dataStore = useDataStore();
162
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
163
- const [surface_id] = surface_ids;
164
-
165
- await dataStyleStore.setModelSurfacesVertexAttribute(id, surface_ids, {
166
- name: "points",
167
- item: 0,
168
- minimum: MINIMUM_RANGE,
169
- maximum: MAXIMUM_RANGE,
170
- colorMap: "batlow",
171
- });
172
-
173
- await dataStyleStore.setModelSurfacesVertexAttributeItem(id, surface_ids, 1);
174
- await dataStyleStore.setModelSurfacesVertexAttributeRange(
175
- id,
176
- surface_ids,
177
- 0,
178
- MAX_RANGE_TEST_VALUE,
179
- );
180
- await dataStyleStore.setModelSurfacesVertexAttributeColorMap(id, surface_ids, "berlin");
181
- expect(dataStyleStore.modelSurfacesVertexAttributeItem(id, surface_id)).toBe(1);
182
- expect(dataStyleStore.modelSurfacesVertexAttributeRange(id, surface_id)).toStrictEqual([
183
- 0,
184
- MAX_RANGE_TEST_VALUE,
185
- ]);
186
- expect(dataStyleStore.modelSurfacesVertexAttributeColorMap(id, surface_id)).toBe("berlin");
187
-
188
- await dataStyleStore.setModelSurfacesVertexAttributeItem(id, surface_ids, 0);
189
- expect(dataStyleStore.modelSurfacesVertexAttributeItem(id, surface_id)).toBe(0);
190
- expect(dataStyleStore.modelSurfacesVertexAttributeRange(id, surface_id)).toStrictEqual([
191
- MINIMUM_RANGE,
192
- MAXIMUM_RANGE,
193
- ]);
194
- // oxlint-disable-next-line max-expects
195
- expect(dataStyleStore.modelSurfacesVertexAttributeColorMap(id, surface_id)).toBe("batlow");
196
- });
197
-
198
- test("coloring vertex attribute — request sent when all params defined", async () => {
199
- const dataStyleStore = useDataStyleStore();
200
- const viewerStore = useViewerStore();
201
- const dataStore = useDataStore();
202
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
203
- const surface_viewer_ids = await dataStore.getMeshComponentsViewerIds(id, surface_ids);
204
- const spy = vi.spyOn(viewerStore, "request");
205
- spy.mockClear();
206
- await dataStyleStore.setModelSurfacesVertexAttributeName(id, surface_ids, "points");
207
- await dataStyleStore.setModelSurfacesVertexAttributeRange(
208
- id,
209
- surface_ids,
210
- MINIMUM_RANGE,
211
- MAXIMUM_RANGE,
212
- );
213
- await dataStyleStore.setModelSurfacesVertexAttributeColorMap(id, surface_ids, "budaS");
214
- await sleep(SLEEP_MS);
215
- const [lastCall] = spy.mock.calls.slice(-1);
216
- expect(lastCall[0].schema).toStrictEqual(model_surfaces_schemas.attribute.vertex.attribute);
217
- expect(lastCall[0].params).toStrictEqual(
218
- expect.objectContaining({
219
- id,
220
- block_ids: surface_viewer_ids,
221
- name: "points",
222
- item: 0,
223
- minimum: MINIMUM_RANGE,
224
- maximum: MAXIMUM_RANGE,
225
- }),
226
- );
227
- expect(viewerStore.status).toBe(Status.CONNECTED);
228
- });
229
-
230
- test("stored configs 1 - select attribute points and item 2", async () => {
231
- const dataStyleStore = useDataStyleStore();
232
- const dataStore = useDataStore();
233
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
234
- const [surface_id] = surface_ids;
235
- await dataStyleStore.setModelSurfacesVertexAttributeName(id, surface_ids, "points");
236
- await dataStyleStore.setModelSurfacesVertexAttributeItem(id, surface_ids, 2);
237
- expect(dataStyleStore.modelSurfacesVertexAttributeName(id, surface_id)).toBe("points");
238
- expect(dataStyleStore.modelSurfacesVertexAttributeItem(id, surface_id)).toBe(2);
239
- });
240
-
241
- test("stored configs 2 - set range and colormap", async () => {
242
- const dataStyleStore = useDataStyleStore();
243
- const dataStore = useDataStore();
244
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
245
- const [surface_id] = surface_ids;
246
- await dataStyleStore.setModelSurfacesVertexAttributeRange(
247
- id,
248
- surface_ids,
249
- MINIMUM_RANGE,
250
- MAXIMUM_RANGE,
251
- );
252
- await dataStyleStore.setModelSurfacesVertexAttributeColorMap(id, surface_ids, "budaS");
253
- await sleep(SLEEP_MS);
254
- expect(dataStyleStore.modelSurfacesVertexAttributeRange(id, surface_id)).toStrictEqual([
255
- MINIMUM_RANGE,
256
- MAXIMUM_RANGE,
257
- ]);
258
- expect(dataStyleStore.modelSurfacesVertexAttributeColorMap(id, surface_id)).toBe("budaS");
259
- });
260
-
261
- test("stored configs 3 - select unique_vertices", async () => {
262
- const dataStyleStore = useDataStyleStore();
263
- const dataStore = useDataStore();
264
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
265
- const [surface_id] = surface_ids;
266
- await dataStyleStore.setModelSurfacesVertexAttributeName(id, surface_ids, "unique_vertices");
267
- await dataStyleStore.setModelSurfacesVertexAttributeItem(id, surface_ids, 0);
268
- expect(dataStyleStore.modelSurfacesVertexAttributeName(id, surface_id)).toBe(
269
- "unique_vertices",
270
- );
271
- expect(dataStyleStore.modelSurfacesVertexAttributeItem(id, surface_id)).toBe(0);
272
- });
273
-
274
- test("stored configs 4 - switch back to points and verify restoration", async () => {
275
- const dataStyleStore = useDataStyleStore();
276
- const dataStore = useDataStore();
277
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
278
- const [surface_id] = surface_ids;
279
- await dataStyleStore.setModelSurfacesVertexAttributeName(id, surface_ids, "points");
280
- expect(dataStyleStore.modelSurfacesVertexAttributeName(id, surface_id)).toBe("points");
281
- expect(dataStyleStore.modelSurfacesVertexAttributeItem(id, surface_id)).toBe(2);
282
- expect(dataStyleStore.modelSurfacesVertexAttributeRange(id, surface_id)).toStrictEqual([
283
- MINIMUM_RANGE,
284
- MAXIMUM_RANGE,
285
- ]);
286
- expect(dataStyleStore.modelSurfacesVertexAttributeColorMap(id, surface_id)).toBe("budaS");
287
- });
288
- });
289
-
290
- describe("surfaces polygon attribute", () => {
291
- test("coloring polygon attribute — guard on missing parameters", () => {
292
- expect(
293
- isModelSurfacesPolygonAttributeValid({
294
- name: "triangle_vertices",
295
- item: 0,
296
- minimum: undefined,
297
- maximum: undefined,
298
- colorMap: undefined,
299
- }),
300
- ).toBe(false);
301
- });
302
-
303
- test("coloring polygon attribute — direct set with full object", async () => {
304
- const dataStyleStore = useDataStyleStore();
305
- const viewerStore = useViewerStore();
306
- const dataStore = useDataStore();
307
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
308
- const surface_viewer_ids = await dataStore.getMeshComponentsViewerIds(id, surface_ids);
309
- const spy = vi.spyOn(viewerStore, "request");
310
- spy.mockClear();
311
- const polygon_attribute = {
312
- name: "triangle_vertices",
313
- item: 0,
314
- minimum: MINIMUM_RANGE,
315
- maximum: MAXIMUM_RANGE,
316
- colorMap: "batlow",
317
- };
318
- const result = dataStyleStore.setModelSurfacesPolygonAttribute(
319
- id,
320
- surface_ids,
321
- polygon_attribute,
322
- );
323
- expect(result).toBeInstanceOf(Promise);
324
- await result;
325
- await sleep(SLEEP_MS);
326
- const schema = model_surfaces_schemas.attribute.polygon.attribute;
327
- const points = getRGBPointsFromPreset(polygon_attribute.colorMap);
328
- const params = {
329
- id,
330
- block_ids: surface_viewer_ids,
331
- name: polygon_attribute.name,
332
- item: polygon_attribute.item,
333
- points,
334
- minimum: polygon_attribute.minimum,
335
- maximum: polygon_attribute.maximum,
336
- no_data_color: DEFAULT_NO_DATA_COLOR,
337
- };
338
- expect(spy).toHaveBeenCalledWith({ schema, params });
339
- const [surface_id] = surface_ids;
340
- expect(dataStyleStore.modelSurfacesPolygonAttributeName(id, surface_id)).toBe(
341
- polygon_attribute.name,
342
- );
343
- expect(viewerStore.status).toBe(Status.CONNECTED);
344
- });
345
-
346
- test("coloring polygon attribute — item switching and stored configs restore", async () => {
347
- const dataStyleStore = useDataStyleStore();
348
- const dataStore = useDataStore();
349
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
350
- const [surface_id] = surface_ids;
351
-
352
- await dataStyleStore.setModelSurfacesPolygonAttribute(id, surface_ids, {
353
- name: "triangle_vertices",
354
- item: 0,
355
- minimum: MINIMUM_RANGE,
356
- maximum: MAXIMUM_RANGE,
357
- colorMap: "batlow",
358
- });
359
-
360
- await dataStyleStore.setModelSurfacesPolygonAttributeItem(id, surface_ids, 1);
361
- await dataStyleStore.setModelSurfacesPolygonAttributeRange(
362
- id,
363
- surface_ids,
364
- 0,
365
- MAX_RANGE_TEST_VALUE,
366
- );
367
- await dataStyleStore.setModelSurfacesPolygonAttributeColorMap(id, surface_ids, "berlin");
368
- expect(dataStyleStore.modelSurfacesPolygonAttributeItem(id, surface_id)).toBe(1);
369
- expect(dataStyleStore.modelSurfacesPolygonAttributeRange(id, surface_id)).toStrictEqual([
370
- 0,
371
- MAX_RANGE_TEST_VALUE,
372
- ]);
373
- expect(dataStyleStore.modelSurfacesPolygonAttributeColorMap(id, surface_id)).toBe("berlin");
374
-
375
- await dataStyleStore.setModelSurfacesPolygonAttributeItem(id, surface_ids, 0);
376
- expect(dataStyleStore.modelSurfacesPolygonAttributeItem(id, surface_id)).toBe(0);
377
- expect(dataStyleStore.modelSurfacesPolygonAttributeRange(id, surface_id)).toStrictEqual([
378
- MINIMUM_RANGE,
379
- MAXIMUM_RANGE,
380
- ]);
381
- // oxlint-disable-next-line max-expects
382
- expect(dataStyleStore.modelSurfacesPolygonAttributeColorMap(id, surface_id)).toBe("batlow");
383
- });
384
-
385
- test("coloring polygon attribute — no request until range+colormap set", async () => {
386
- const dataStyleStore = useDataStyleStore();
387
- const viewerStore = useViewerStore();
388
- const dataStore = useDataStore();
389
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
390
- const spy = vi.spyOn(viewerStore, "request");
391
- spy.mockClear();
392
- const result = dataStyleStore.setModelSurfacesPolygonAttributeName(
393
- id,
394
- surface_ids,
395
- "test_attribute",
396
- );
397
- expect(result).toBeInstanceOf(Promise);
398
- await result;
399
- await sleep(SLEEP_MS);
400
- // No request sent yet since minimum/maximum/colorMap are still undefined
401
- expect(spy).not.toHaveBeenCalled();
402
- for (const surface_id of surface_ids) {
403
- expect(dataStyleStore.modelSurfacesPolygonAttributeName(id, surface_id)).toBe(
404
- "test_attribute",
405
- );
406
- }
407
- expect(viewerStore.status).toBe(Status.CONNECTED);
408
- });
409
-
410
- test("coloring polygon attribute — request sent when all params defined", async () => {
411
- const dataStyleStore = useDataStyleStore();
412
- const viewerStore = useViewerStore();
413
- const dataStore = useDataStore();
414
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
415
- const surface_viewer_ids = await dataStore.getMeshComponentsViewerIds(id, surface_ids);
416
- const spy = vi.spyOn(viewerStore, "request");
417
- spy.mockClear();
418
- await dataStyleStore.setModelSurfacesPolygonAttributeName(id, surface_ids, "test_attribute");
419
- await dataStyleStore.setModelSurfacesPolygonAttributeRange(
420
- id,
421
- surface_ids,
422
- MINIMUM_RANGE,
423
- MAXIMUM_RANGE,
424
- );
425
- await dataStyleStore.setModelSurfacesPolygonAttributeColorMap(id, surface_ids, "budaS");
426
- await sleep(SLEEP_MS);
427
- const [lastCall] = spy.mock.calls.slice(-1);
428
- expect(lastCall[0].schema).toStrictEqual(model_surfaces_schemas.attribute.polygon.attribute);
429
- expect(lastCall[0].params).toStrictEqual(
430
- expect.objectContaining({
431
- id,
432
- block_ids: surface_viewer_ids,
433
- name: "test_attribute",
434
- item: 0,
435
- minimum: MINIMUM_RANGE,
436
- maximum: MAXIMUM_RANGE,
437
- }),
438
- );
439
- expect(viewerStore.status).toBe(Status.CONNECTED);
440
- });
441
-
442
- test("stored configs 1 - select attribute triangle_vertices and item 2", async () => {
443
- const dataStyleStore = useDataStyleStore();
444
- const dataStore = useDataStore();
445
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
446
- const [surface_id] = surface_ids;
447
- await dataStyleStore.setModelSurfacesPolygonAttributeName(
448
- id,
449
- surface_ids,
450
- "triangle_vertices",
451
- );
452
- await dataStyleStore.setModelSurfacesPolygonAttributeItem(id, surface_ids, 2);
453
- expect(dataStyleStore.modelSurfacesPolygonAttributeName(id, surface_id)).toBe(
454
- "triangle_vertices",
455
- );
456
- expect(dataStyleStore.modelSurfacesPolygonAttributeItem(id, surface_id)).toBe(2);
457
- });
458
-
459
- test("stored configs 2 - set range and colormap", async () => {
460
- const dataStyleStore = useDataStyleStore();
461
- const dataStore = useDataStore();
462
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
463
- const [surface_id] = surface_ids;
464
- await dataStyleStore.setModelSurfacesPolygonAttributeRange(
465
- id,
466
- surface_ids,
467
- MINIMUM_RANGE,
468
- MAXIMUM_RANGE,
469
- );
470
- await dataStyleStore.setModelSurfacesPolygonAttributeColorMap(id, surface_ids, "budaS");
471
- await sleep(SLEEP_MS);
472
- expect(dataStyleStore.modelSurfacesPolygonAttributeRange(id, surface_id)).toStrictEqual([
473
- MINIMUM_RANGE,
474
- MAXIMUM_RANGE,
475
- ]);
476
- expect(dataStyleStore.modelSurfacesPolygonAttributeColorMap(id, surface_id)).toBe("budaS");
477
- });
478
-
479
- test("stored configs 3 - select triangle_adjacents", async () => {
480
- const dataStyleStore = useDataStyleStore();
481
- const dataStore = useDataStore();
482
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
483
- const [surface_id] = surface_ids;
484
- await dataStyleStore.setModelSurfacesPolygonAttributeName(
485
- id,
486
- surface_ids,
487
- "triangle_adjacents",
488
- );
489
- await dataStyleStore.setModelSurfacesPolygonAttributeItem(id, surface_ids, 0);
490
- expect(dataStyleStore.modelSurfacesPolygonAttributeName(id, surface_id)).toBe(
491
- "triangle_adjacents",
492
- );
493
- expect(dataStyleStore.modelSurfacesPolygonAttributeItem(id, surface_id)).toBe(0);
494
- });
495
-
496
- test("stored configs 4 - switch back to triangle_vertices and verify restoration", async () => {
497
- const dataStyleStore = useDataStyleStore();
498
- const dataStore = useDataStore();
499
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
500
- const [surface_id] = surface_ids;
501
- await dataStyleStore.setModelSurfacesPolygonAttributeName(
502
- id,
503
- surface_ids,
504
- "triangle_vertices",
505
- );
506
- expect(dataStyleStore.modelSurfacesPolygonAttributeName(id, surface_id)).toBe(
507
- "triangle_vertices",
508
- );
509
- expect(dataStyleStore.modelSurfacesPolygonAttributeItem(id, surface_id)).toBe(2);
510
- expect(dataStyleStore.modelSurfacesPolygonAttributeRange(id, surface_id)).toStrictEqual([
511
- MINIMUM_RANGE,
512
- MAXIMUM_RANGE,
513
- ]);
514
- expect(dataStyleStore.modelSurfacesPolygonAttributeColorMap(id, surface_id)).toBe("budaS");
515
- });
516
- });
517
-
518
- describe("surfaces style", () => {
519
- test("surfaces apply style", async () => {
520
- const dataStyleStore = useDataStyleStore();
521
- const viewerStore = useViewerStore();
522
- const result = dataStyleStore.applyModelSurfacesStyle(id);
523
- expect(result).toBeInstanceOf(Promise);
524
- await result;
525
- expect(viewerStore.status).toBe(Status.CONNECTED);
526
- });
527
- });
528
-
529
- describe("surface component active coloring", () => {
530
- test("coloring color", async () => {
531
- const dataStyleStore = useDataStyleStore();
532
- const viewerStore = useViewerStore();
533
- const dataStore = useDataStore();
534
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
535
- const [surface_id] = surface_ids;
536
- const coloringName = "constant";
537
- const result = dataStyleStore.setModelComponentActiveColoring(id, surface_id, coloringName);
538
- expect(result).toBeInstanceOf(Promise);
539
- await result;
540
- expect(dataStyleStore.modelSurfaceActiveColoring(id, surface_id)).toBe(coloringName);
541
- expect(viewerStore.status).toBe(Status.CONNECTED);
542
- });
543
-
544
- test("coloring vertex", async () => {
545
- const dataStyleStore = useDataStyleStore();
546
- const viewerStore = useViewerStore();
547
- const dataStore = useDataStore();
548
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
549
- const [surface_id] = surface_ids;
550
- await dataStyleStore.setModelSurfacesVertexAttributeName(id, [surface_id], "points");
551
- const coloringName = "vertex";
552
- const result = dataStyleStore.setModelComponentActiveColoring(id, surface_id, coloringName);
553
- expect(result).toBeInstanceOf(Promise);
554
- await result;
555
- expect(dataStyleStore.modelSurfaceActiveColoring(id, surface_id)).toBe(coloringName);
556
- expect(viewerStore.status).toBe(Status.CONNECTED);
557
- });
558
-
559
- test("coloring polygon", async () => {
560
- const dataStyleStore = useDataStyleStore();
561
- const viewerStore = useViewerStore();
562
- const dataStore = useDataStore();
563
- const surface_ids = await dataStore.getSurfacesGeodeIds(id);
564
- const [surface_id] = surface_ids;
565
- await dataStyleStore.setModelSurfacesPolygonAttributeName(id, [surface_id], "test_attribute");
566
- const coloringName = "polygon";
567
- const result = dataStyleStore.setModelComponentActiveColoring(id, surface_id, coloringName);
568
- expect(result).toBeInstanceOf(Promise);
569
- await result;
570
- expect(dataStyleStore.modelSurfaceActiveColoring(id, surface_id)).toBe(coloringName);
571
- expect(viewerStore.status).toBe(Status.CONNECTED);
572
- });
573
- });
574
- });
@@ -1,69 +0,0 @@
1
- // Global imports
2
-
3
- // Third party imports
4
- import { afterAll, beforeAll, describe, expect, test } from "vitest";
5
- import opengeodeweb_viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json";
6
-
7
- // Local imports
8
- import { beforeAllTimeout, runMicroservices } from "@ogw_tests/integration/setup";
9
- import { Status } from "@ogw_front/utils/status";
10
- import { cleanupBackend } from "@ogw_server/utils/cleanup";
11
- import { setupActivePinia } from "@ogw_tests/utils";
12
- import { useViewerStore } from "@ogw_front/stores/viewer";
13
-
14
- const CONNECT_TIMEOUT = 25_000;
15
-
16
- let projectFolderPath = "";
17
-
18
- describe("viewer Store", () => {
19
- beforeAll(async () => {
20
- setupActivePinia();
21
- ({ projectFolderPath } = await runMicroservices());
22
- }, beforeAllTimeout);
23
-
24
- afterAll(async () => {
25
- await cleanupBackend(projectFolderPath);
26
- });
27
-
28
- describe("actions", () => {
29
- describe("ws_connect", () => {
30
- test(
31
- "ws_connect",
32
- async () => {
33
- const viewerStore = useViewerStore();
34
- await viewerStore.ws_connect();
35
- expect(viewerStore.status).toBe(Status.CONNECTED);
36
- },
37
- CONNECT_TIMEOUT,
38
- );
39
- });
40
- describe("connect", () => {
41
- test(
42
- "connect",
43
- async () => {
44
- const viewerStore = useViewerStore();
45
- await viewerStore.connect();
46
- expect(viewerStore.status).toBe(Status.CONNECTED);
47
- },
48
- CONNECT_TIMEOUT,
49
- );
50
- });
51
-
52
- describe("request", () => {
53
- test(
54
- "request",
55
- () => {
56
- const schema = opengeodeweb_viewer_schemas.opengeodeweb_viewer.viewer.render;
57
- const viewerStore = useViewerStore();
58
- const timeout = 1;
59
- expect(() =>
60
- viewerStore
61
- .request({ schema, timeout })
62
- .rejects.toThrow(`${schema.$id}: Timed out after ${timeout}ms, ${schema} ${params}`),
63
- ).toBeDefined();
64
- },
65
- CONNECT_TIMEOUT,
66
- );
67
- });
68
- });
69
- });
@@ -1,4 +0,0 @@
1
- import { setup } from "vitest-indexeddb";
2
-
3
- // oxlint-disable-next-line jest/require-hook
4
- setup();