@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,22 +1,25 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
2
  import OptionsSection from "@ogw_front/components/Viewer/Options/OptionsSection.vue";
3
+ import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
3
4
  import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
4
5
  import VisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
5
6
  import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json";
6
7
  import { useDataStyleStore } from "@ogw_front/stores/data_style";
7
8
  import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
8
9
 
9
- const { modelId, cornerId, targetCornerIds } = defineProps({
10
- modelId: { type: String, required: true },
11
- cornerId: { type: String, default: undefined },
12
- targetCornerIds: { type: Array, required: true },
13
- });
10
+ interface Props {
11
+ modelId: string;
12
+ cornerId?: string;
13
+ targetCornerIds: string[];
14
+ }
15
+
16
+ const { modelId, cornerId = undefined, targetCornerIds } = defineProps<Props>();
14
17
 
15
18
  const dataStyleStore = useDataStyleStore();
16
19
  const hybridViewerStore = useHybridViewerStore();
17
20
 
18
21
  // Visibility
19
- const cornersVisibility = computed({
22
+ const cornersVisibility = computed<boolean>({
20
23
  get: () => dataStyleStore.modelComponentTypeVisibility(modelId, "Corner"),
21
24
  set: async (newValue) => {
22
25
  await dataStyleStore.setModelCornersVisibility(modelId, targetCornerIds, newValue);
@@ -24,57 +27,73 @@ const cornersVisibility = computed({
24
27
  },
25
28
  });
26
29
 
27
- const cornerVisibility = computed({
28
- get: () => dataStyleStore.modelCornerVisibility(modelId, cornerId),
30
+ const cornerVisibility = computed<boolean | undefined>({
31
+ get: () => dataStyleStore.modelCornerVisibility(modelId, cornerId) as boolean | undefined,
29
32
  set: async (newValue) => {
33
+ if (cornerId === undefined) {
34
+ return;
35
+ }
30
36
  await dataStyleStore.setModelCornersVisibility(modelId, [cornerId], newValue);
31
37
  hybridViewerStore.remoteRender();
32
38
  },
33
39
  });
34
40
 
35
41
  // Color
36
- const cornersColor = computed({
37
- get: () => dataStyleStore.modelComponentTypeColor(modelId, "Corner"),
42
+ const cornersColor = computed<RGBAColor | undefined>({
43
+ get: () => dataStyleStore.modelComponentTypeColor(modelId, "Corner") as RGBAColor | undefined,
38
44
  set: async (color) => {
39
45
  await dataStyleStore.setModelCornersColor(modelId, targetCornerIds, color);
40
46
  hybridViewerStore.remoteRender();
41
47
  },
42
48
  });
43
49
 
44
- const cornerColor = computed({
45
- get: () => dataStyleStore.modelCornerColor(modelId, cornerId),
50
+ const cornerColor = computed<RGBAColor | undefined>({
51
+ get: () => dataStyleStore.modelCornerColor(modelId, cornerId) as RGBAColor | undefined,
46
52
  set: async (color) => {
53
+ if (cornerId === undefined) {
54
+ return;
55
+ }
47
56
  await dataStyleStore.setModelCornersColor(modelId, [cornerId], color);
48
57
  hybridViewerStore.remoteRender();
49
58
  },
50
59
  });
51
60
 
52
- const cornersActiveColoring = computed({
53
- get: () => dataStyleStore.getModelComponentTypeActiveColoring(modelId, "Corner"),
61
+ const cornersActiveColoring = computed<string | undefined>({
62
+ get: () =>
63
+ dataStyleStore.getModelComponentTypeActiveColoring(modelId, "Corner") as string | undefined,
54
64
  set: async (coloringType) => {
65
+ if (typeof coloringType !== "string") {
66
+ return;
67
+ }
55
68
  await dataStyleStore.setModelCornersActiveColoring(modelId, targetCornerIds, coloringType);
56
69
  hybridViewerStore.remoteRender();
57
70
  },
58
71
  });
59
72
 
60
- const cornerActiveColoring = computed({
61
- get: () => dataStyleStore.modelCornerActiveColoring(modelId, cornerId),
73
+ const cornerActiveColoring = computed<string | undefined>({
74
+ get: () => dataStyleStore.modelCornerActiveColoring(modelId, cornerId) as string | undefined,
62
75
  set: async (coloringType) => {
76
+ if (cornerId === undefined || typeof coloringType !== "string") {
77
+ return;
78
+ }
63
79
  await dataStyleStore.setModelCornersActiveColoring(modelId, [cornerId], coloringType);
64
80
  hybridViewerStore.remoteRender();
65
81
  },
66
82
  });
67
83
 
68
84
  // Group Attributes
69
- const cornersVertexAttributeName = computed({
85
+ const cornersVertexAttributeName = computed<string | undefined>({
70
86
  get: () => dataStyleStore.modelCornersVertexAttributeName(modelId),
71
87
  set: async (newValue) => {
88
+ if (newValue === undefined) {
89
+ return;
90
+ }
72
91
  await dataStyleStore.setModelCornersVertexAttributeName(modelId, targetCornerIds, newValue);
73
92
  hybridViewerStore.remoteRender();
74
93
  },
75
94
  });
76
95
 
77
- const cornersVertexAttributeItem = computed({
96
+ const cornersVertexAttributeItem = computed<string | undefined>({
78
97
  get: () => dataStyleStore.modelCornersVertexAttributeItem(modelId),
79
98
  set: async (newValue) => {
80
99
  await dataStyleStore.setModelCornersVertexAttributeItem(modelId, targetCornerIds, newValue);
@@ -82,20 +101,24 @@ const cornersVertexAttributeItem = computed({
82
101
  },
83
102
  });
84
103
 
85
- const cornersVertexAttributeRange = computed({
104
+ const cornersVertexAttributeRange = computed<[number, number] | undefined>({
86
105
  get: () => dataStyleStore.modelCornersVertexAttributeRange(modelId),
87
106
  set: async (newValue) => {
107
+ const [minimum, maximum] = newValue;
108
+ if (minimum === undefined || maximum === undefined) {
109
+ return;
110
+ }
88
111
  await dataStyleStore.setModelCornersVertexAttributeRange(
89
112
  modelId,
90
113
  targetCornerIds,
91
- newValue[0],
92
- newValue[1],
114
+ minimum,
115
+ maximum,
93
116
  );
94
117
  hybridViewerStore.remoteRender();
95
118
  },
96
119
  });
97
120
 
98
- const cornersVertexAttributeColorMap = computed({
121
+ const cornersVertexAttributeColorMap = computed<ColorMap | undefined>({
99
122
  get: () => dataStyleStore.modelCornersVertexAttributeColorMap(modelId),
100
123
  set: async (newValue) => {
101
124
  await dataStyleStore.setModelCornersVertexAttributeColorMap(modelId, targetCornerIds, newValue);
@@ -103,8 +126,9 @@ const cornersVertexAttributeColorMap = computed({
103
126
  },
104
127
  });
105
128
 
106
- const cornersVertexAttributeNoDataColor = computed({
107
- get: () => dataStyleStore.modelCornersVertexAttributeNoDataColor(modelId),
129
+ const cornersVertexAttributeNoDataColor = computed<RGBAColor | undefined>({
130
+ get: () =>
131
+ dataStyleStore.modelCornersVertexAttributeNoDataColor(modelId) as RGBAColor | undefined,
108
132
  set: async (newValue) => {
109
133
  await dataStyleStore.setModelCornersVertexAttributeNoDataColor(
110
134
  modelId,
@@ -116,46 +140,60 @@ const cornersVertexAttributeNoDataColor = computed({
116
140
  });
117
141
 
118
142
  // Individual Attributes
119
- const vertexAttributeName = computed({
143
+ const vertexAttributeName = computed<string | undefined>({
120
144
  get: () => dataStyleStore.modelCornersVertexAttributeName(modelId, cornerId),
121
145
  set: async (newValue) => {
146
+ if (cornerId === undefined || newValue === undefined) {
147
+ return;
148
+ }
122
149
  await dataStyleStore.setModelCornersVertexAttributeName(modelId, [cornerId], newValue);
123
150
  hybridViewerStore.remoteRender();
124
151
  },
125
152
  });
126
153
 
127
- const vertexAttributeItem = computed({
154
+ const vertexAttributeItem = computed<string | undefined>({
128
155
  get: () => dataStyleStore.modelCornersVertexAttributeItem(modelId, cornerId),
129
156
  set: async (newValue) => {
157
+ if (cornerId === undefined) {
158
+ return;
159
+ }
130
160
  await dataStyleStore.setModelCornersVertexAttributeItem(modelId, [cornerId], newValue);
131
161
  hybridViewerStore.remoteRender();
132
162
  },
133
163
  });
134
164
 
135
- const vertexAttributeRange = computed({
165
+ const vertexAttributeRange = computed<[number, number] | undefined>({
136
166
  get: () => dataStyleStore.modelCornersVertexAttributeRange(modelId, cornerId),
137
167
  set: async (newValue) => {
138
- await dataStyleStore.setModelCornersVertexAttributeRange(
139
- modelId,
140
- [cornerId],
141
- newValue[0],
142
- newValue[1],
143
- );
168
+ const [minimum, maximum] = newValue;
169
+ if (cornerId === undefined || minimum === undefined || maximum === undefined) {
170
+ return;
171
+ }
172
+ await dataStyleStore.setModelCornersVertexAttributeRange(modelId, [cornerId], minimum, maximum);
144
173
  hybridViewerStore.remoteRender();
145
174
  },
146
175
  });
147
176
 
148
- const vertexAttributeColorMap = computed({
177
+ const vertexAttributeColorMap = computed<ColorMap | undefined>({
149
178
  get: () => dataStyleStore.modelCornersVertexAttributeColorMap(modelId, cornerId),
150
179
  set: async (newValue) => {
180
+ if (cornerId === undefined) {
181
+ return;
182
+ }
151
183
  await dataStyleStore.setModelCornersVertexAttributeColorMap(modelId, [cornerId], newValue);
152
184
  hybridViewerStore.remoteRender();
153
185
  },
154
186
  });
155
187
 
156
- const vertexAttributeNoDataColor = computed({
157
- get: () => dataStyleStore.modelCornersVertexAttributeNoDataColor(modelId, cornerId),
188
+ const vertexAttributeNoDataColor = computed<RGBAColor | undefined>({
189
+ get: () =>
190
+ dataStyleStore.modelCornersVertexAttributeNoDataColor(modelId, cornerId) as
191
+ | RGBAColor
192
+ | undefined,
158
193
  set: async (newValue) => {
194
+ if (cornerId === undefined) {
195
+ return;
196
+ }
159
197
  await dataStyleStore.setModelCornersVertexAttributeNoDataColor(modelId, [cornerId], newValue);
160
198
  hybridViewerStore.remoteRender();
161
199
  },
@@ -1,8 +1,9 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
+ import ViewerContextMenuItem, {
3
+ type ItemProps,
4
+ } from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem.vue";
2
5
  import SurfaceEdges from "@ogw_front/assets/viewer_svgs/surface_edges.svg";
3
- import ViewerContextMenuItem from "@ogw_front/components/Viewer/ContextMenu/ContextMenuItem";
4
- import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch";
5
-
6
+ import ViewerOptionsVisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
6
7
  import { useBatchStyle } from "@ogw_front/composables/batch_style";
7
8
  import { useDataStyleStore } from "@ogw_front/stores/data_style";
8
9
  import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
@@ -11,16 +12,18 @@ const dataStyleStore = useDataStyleStore();
11
12
  const hybridViewerStore = useHybridViewerStore();
12
13
  const { applyBatchStyle } = useBatchStyle();
13
14
 
14
- const { itemProps } = defineProps({
15
- itemProps: { type: Object, required: true },
16
- });
15
+ interface Props {
16
+ itemProps: ItemProps & { index: number };
17
+ }
18
+
19
+ const { itemProps } = defineProps<Props>();
17
20
 
18
- const id = computed(() => itemProps.meta_data.modelId || itemProps.id);
21
+ const id = computed(() => (itemProps.meta_data.modelId as string | undefined) || itemProps.id);
19
22
 
20
23
  const visibility = computed({
21
24
  get: () => dataStyleStore.modelEdgesVisibility(id.value),
22
25
  set: async (newValue) => {
23
- await applyBatchStyle(id.value, (targetId) =>
26
+ await applyBatchStyle(id.value, (targetId: string) =>
24
27
  dataStyleStore.setModelEdgesVisibility(targetId, newValue),
25
28
  );
26
29
  hybridViewerStore.remoteRender();
@@ -31,6 +34,7 @@ const visibility = computed({
31
34
  <template>
32
35
  <ViewerContextMenuItem
33
36
  data-testid="modelEdgesMenu"
37
+ :index="itemProps.index"
34
38
  :itemProps="itemProps"
35
39
  tooltip="Edges options"
36
40
  :btnImage="SurfaceEdges"
@@ -1,22 +1,25 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
2
  import OptionsSection from "@ogw_front/components/Viewer/Options/OptionsSection.vue";
3
+ import type { RGBAColor } from "@ogw_front/utils/default_styles/constants";
3
4
  import ViewerOptionsColoringTypeSelector from "@ogw_front/components/Viewer/Options/ColoringTypeSelector.vue";
4
5
  import VisibilitySwitch from "@ogw_front/components/Viewer/Options/VisibilitySwitch.vue";
5
6
  import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json";
6
7
  import { useDataStyleStore } from "@ogw_front/stores/data_style";
7
8
  import { useHybridViewerStore } from "@ogw_front/stores/hybrid_viewer";
8
9
 
9
- const { modelId, lineId, targetLineIds } = defineProps({
10
- modelId: { type: String, required: true },
11
- lineId: { type: String, default: undefined },
12
- targetLineIds: { type: Array, required: true },
13
- });
10
+ interface Props {
11
+ modelId: string;
12
+ lineId?: string;
13
+ targetLineIds: string[];
14
+ }
15
+
16
+ const { modelId, lineId = undefined, targetLineIds } = defineProps<Props>();
14
17
 
15
18
  const dataStyleStore = useDataStyleStore();
16
19
  const hybridViewerStore = useHybridViewerStore();
17
20
 
18
21
  // Visibility
19
- const linesVisibility = computed({
22
+ const linesVisibility = computed<boolean>({
20
23
  get: () => dataStyleStore.modelComponentTypeVisibility(modelId, "Line"),
21
24
  set: async (newValue) => {
22
25
  await dataStyleStore.setModelLinesVisibility(modelId, targetLineIds, newValue);
@@ -24,57 +27,73 @@ const linesVisibility = computed({
24
27
  },
25
28
  });
26
29
 
27
- const lineVisibility = computed({
28
- get: () => dataStyleStore.modelLineVisibility(modelId, lineId),
30
+ const lineVisibility = computed<boolean | undefined>({
31
+ get: () => dataStyleStore.modelLineVisibility(modelId, lineId) as boolean | undefined,
29
32
  set: async (newValue) => {
33
+ if (lineId === undefined) {
34
+ return;
35
+ }
30
36
  await dataStyleStore.setModelLinesVisibility(modelId, [lineId], newValue);
31
37
  hybridViewerStore.remoteRender();
32
38
  },
33
39
  });
34
40
 
35
41
  // Color
36
- const linesColor = computed({
37
- get: () => dataStyleStore.modelComponentTypeColor(modelId, "Line"),
42
+ const linesColor = computed<RGBAColor | undefined>({
43
+ get: () => dataStyleStore.modelComponentTypeColor(modelId, "Line") as RGBAColor | undefined,
38
44
  set: async (color) => {
39
45
  await dataStyleStore.setModelLinesColor(modelId, targetLineIds, color);
40
46
  hybridViewerStore.remoteRender();
41
47
  },
42
48
  });
43
49
 
44
- const lineColor = computed({
45
- get: () => dataStyleStore.modelLineColor(modelId, lineId),
50
+ const lineColor = computed<RGBAColor | undefined>({
51
+ get: () => dataStyleStore.modelLineColor(modelId, lineId) as RGBAColor | undefined,
46
52
  set: async (color) => {
53
+ if (lineId === undefined) {
54
+ return;
55
+ }
47
56
  await dataStyleStore.setModelLinesColor(modelId, [lineId], color);
48
57
  hybridViewerStore.remoteRender();
49
58
  },
50
59
  });
51
60
 
52
- const linesActiveColoring = computed({
53
- get: () => dataStyleStore.getModelComponentTypeActiveColoring(modelId, "Line"),
61
+ const linesActiveColoring = computed<string | undefined>({
62
+ get: () =>
63
+ dataStyleStore.getModelComponentTypeActiveColoring(modelId, "Line") as string | undefined,
54
64
  set: async (coloringType) => {
65
+ if (typeof coloringType !== "string") {
66
+ return;
67
+ }
55
68
  await dataStyleStore.setModelLinesActiveColoring(modelId, targetLineIds, coloringType);
56
69
  hybridViewerStore.remoteRender();
57
70
  },
58
71
  });
59
72
 
60
- const lineActiveColoring = computed({
61
- get: () => dataStyleStore.modelLineActiveColoring(modelId, lineId),
73
+ const lineActiveColoring = computed<string | undefined>({
74
+ get: () => dataStyleStore.modelLineActiveColoring(modelId, lineId) as string | undefined,
62
75
  set: async (coloringType) => {
76
+ if (lineId === undefined || typeof coloringType !== "string") {
77
+ return;
78
+ }
63
79
  await dataStyleStore.setModelLinesActiveColoring(modelId, [lineId], coloringType);
64
80
  hybridViewerStore.remoteRender();
65
81
  },
66
82
  });
67
83
 
68
84
  // Group Attributes
69
- const linesVertexAttributeName = computed({
85
+ const linesVertexAttributeName = computed<string | undefined>({
70
86
  get: () => dataStyleStore.modelLinesVertexAttributeName(modelId),
71
87
  set: async (newValue) => {
88
+ if (newValue === undefined) {
89
+ return;
90
+ }
72
91
  await dataStyleStore.setModelLinesVertexAttributeName(modelId, targetLineIds, newValue);
73
92
  hybridViewerStore.remoteRender();
74
93
  },
75
94
  });
76
95
 
77
- const linesVertexAttributeItem = computed({
96
+ const linesVertexAttributeItem = computed<string | undefined>({
78
97
  get: () => dataStyleStore.modelLinesVertexAttributeItem(modelId),
79
98
  set: async (newValue) => {
80
99
  await dataStyleStore.setModelLinesVertexAttributeItem(modelId, targetLineIds, newValue);
@@ -82,20 +101,24 @@ const linesVertexAttributeItem = computed({
82
101
  },
83
102
  });
84
103
 
85
- const linesVertexAttributeRange = computed({
104
+ const linesVertexAttributeRange = computed<[number, number] | undefined>({
86
105
  get: () => dataStyleStore.modelLinesVertexAttributeRange(modelId),
87
106
  set: async (newValue) => {
107
+ const [minimum, maximum] = newValue;
108
+ if (minimum === undefined || maximum === undefined) {
109
+ return;
110
+ }
88
111
  await dataStyleStore.setModelLinesVertexAttributeRange(
89
112
  modelId,
90
113
  targetLineIds,
91
- newValue[0],
92
- newValue[1],
114
+ minimum,
115
+ maximum,
93
116
  );
94
117
  hybridViewerStore.remoteRender();
95
118
  },
96
119
  });
97
120
 
98
- const linesVertexAttributeColorMap = computed({
121
+ const linesVertexAttributeColorMap = computed<RGBAColorMap | undefined>({
99
122
  get: () => dataStyleStore.modelLinesVertexAttributeColorMap(modelId),
100
123
  set: async (newValue) => {
101
124
  await dataStyleStore.setModelLinesVertexAttributeColorMap(modelId, targetLineIds, newValue);
@@ -103,23 +126,26 @@ const linesVertexAttributeColorMap = computed({
103
126
  },
104
127
  });
105
128
 
106
- const linesVertexAttributeNoDataColor = computed({
107
- get: () => dataStyleStore.modelLinesVertexAttributeNoDataColor(modelId),
129
+ const linesVertexAttributeNoDataColor = computed<RGBAColor | undefined>({
130
+ get: () => dataStyleStore.modelLinesVertexAttributeNoDataColor(modelId) as RGBAColor | undefined,
108
131
  set: async (newValue) => {
109
132
  await dataStyleStore.setModelLinesVertexAttributeNoDataColor(modelId, targetLineIds, newValue);
110
133
  hybridViewerStore.remoteRender();
111
134
  },
112
135
  });
113
136
 
114
- const linesEdgeAttributeName = computed({
137
+ const linesEdgeAttributeName = computed<string | undefined>({
115
138
  get: () => dataStyleStore.modelLinesEdgeAttributeName(modelId),
116
139
  set: async (newValue) => {
140
+ if (newValue === undefined) {
141
+ return;
142
+ }
117
143
  await dataStyleStore.setModelLinesEdgeAttributeName(modelId, targetLineIds, newValue);
118
144
  hybridViewerStore.remoteRender();
119
145
  },
120
146
  });
121
147
 
122
- const linesEdgeAttributeItem = computed({
148
+ const linesEdgeAttributeItem = computed<string | undefined>({
123
149
  get: () => dataStyleStore.modelLinesEdgeAttributeItem(modelId),
124
150
  set: async (newValue) => {
125
151
  await dataStyleStore.setModelLinesEdgeAttributeItem(modelId, targetLineIds, newValue);
@@ -127,20 +153,19 @@ const linesEdgeAttributeItem = computed({
127
153
  },
128
154
  });
129
155
 
130
- const linesEdgeAttributeRange = computed({
156
+ const linesEdgeAttributeRange = computed<[number, number] | undefined>({
131
157
  get: () => dataStyleStore.modelLinesEdgeAttributeRange(modelId),
132
158
  set: async (newValue) => {
133
- await dataStyleStore.setModelLinesEdgeAttributeRange(
134
- modelId,
135
- targetLineIds,
136
- newValue[0],
137
- newValue[1],
138
- );
159
+ const [minimum, maximum] = newValue;
160
+ if (minimum === undefined || maximum === undefined) {
161
+ return;
162
+ }
163
+ await dataStyleStore.setModelLinesEdgeAttributeRange(modelId, targetLineIds, minimum, maximum);
139
164
  hybridViewerStore.remoteRender();
140
165
  },
141
166
  });
142
167
 
143
- const linesEdgeAttributeColorMap = computed({
168
+ const linesEdgeAttributeColorMap = computed<Map<string, RGBAColor> | undefined>({
144
169
  get: () => dataStyleStore.modelLinesEdgeAttributeColorMap(modelId),
145
170
  set: async (newValue) => {
146
171
  await dataStyleStore.setModelLinesEdgeAttributeColorMap(modelId, targetLineIds, newValue);
@@ -148,8 +173,8 @@ const linesEdgeAttributeColorMap = computed({
148
173
  },
149
174
  });
150
175
 
151
- const linesEdgeAttributeNoDataColor = computed({
152
- get: () => dataStyleStore.modelLinesEdgeAttributeNoDataColor(modelId),
176
+ const linesEdgeAttributeNoDataColor = computed<RGBAColor | undefined>({
177
+ get: () => dataStyleStore.modelLinesEdgeAttributeNoDataColor(modelId) as RGBAColor | undefined,
153
178
  set: async (newValue) => {
154
179
  await dataStyleStore.setModelLinesEdgeAttributeNoDataColor(modelId, targetLineIds, newValue);
155
180
  hybridViewerStore.remoteRender();
@@ -157,91 +182,115 @@ const linesEdgeAttributeNoDataColor = computed({
157
182
  });
158
183
 
159
184
  // Individual Attributes
160
- const vertexAttributeName = computed({
185
+ const vertexAttributeName = computed<string | undefined>({
161
186
  get: () => dataStyleStore.modelLinesVertexAttributeName(modelId, lineId),
162
187
  set: async (newValue) => {
188
+ if (lineId === undefined || newValue === undefined) {
189
+ return;
190
+ }
163
191
  await dataStyleStore.setModelLinesVertexAttributeName(modelId, [lineId], newValue);
164
192
  hybridViewerStore.remoteRender();
165
193
  },
166
194
  });
167
195
 
168
- const vertexAttributeItem = computed({
196
+ const vertexAttributeItem = computed<string | undefined>({
169
197
  get: () => dataStyleStore.modelLinesVertexAttributeItem(modelId, lineId),
170
198
  set: async (newValue) => {
199
+ if (lineId === undefined) {
200
+ return;
201
+ }
171
202
  await dataStyleStore.setModelLinesVertexAttributeItem(modelId, [lineId], newValue);
172
203
  hybridViewerStore.remoteRender();
173
204
  },
174
205
  });
175
206
 
176
- const vertexAttributeRange = computed({
207
+ const vertexAttributeRange = computed<[number, number] | undefined>({
177
208
  get: () => dataStyleStore.modelLinesVertexAttributeRange(modelId, lineId),
178
209
  set: async (newValue) => {
179
- await dataStyleStore.setModelLinesVertexAttributeRange(
180
- modelId,
181
- [lineId],
182
- newValue[0],
183
- newValue[1],
184
- );
210
+ const [minimum, maximum] = newValue;
211
+ if (lineId === undefined || minimum === undefined || maximum === undefined) {
212
+ return;
213
+ }
214
+ await dataStyleStore.setModelLinesVertexAttributeRange(modelId, [lineId], minimum, maximum);
185
215
  hybridViewerStore.remoteRender();
186
216
  },
187
217
  });
188
218
 
189
- const vertexAttributeColorMap = computed({
219
+ const vertexAttributeColorMap = computed<ColorMap | undefined>({
190
220
  get: () => dataStyleStore.modelLinesVertexAttributeColorMap(modelId, lineId),
191
221
  set: async (newValue) => {
222
+ if (lineId === undefined) {
223
+ return;
224
+ }
192
225
  await dataStyleStore.setModelLinesVertexAttributeColorMap(modelId, [lineId], newValue);
193
226
  hybridViewerStore.remoteRender();
194
227
  },
195
228
  });
196
229
 
197
- const vertexAttributeNoDataColor = computed({
198
- get: () => dataStyleStore.modelLinesVertexAttributeNoDataColor(modelId, lineId),
230
+ const vertexAttributeNoDataColor = computed<RGBAColor | undefined>({
231
+ get: () =>
232
+ dataStyleStore.modelLinesVertexAttributeNoDataColor(modelId, lineId) as RGBAColor | undefined,
199
233
  set: async (newValue) => {
234
+ if (lineId === undefined) {
235
+ return;
236
+ }
200
237
  await dataStyleStore.setModelLinesVertexAttributeNoDataColor(modelId, [lineId], newValue);
201
238
  hybridViewerStore.remoteRender();
202
239
  },
203
240
  });
204
241
 
205
- const edgeAttributeName = computed({
242
+ const edgeAttributeName = computed<string | undefined>({
206
243
  get: () => dataStyleStore.modelLinesEdgeAttributeName(modelId, lineId),
207
244
  set: async (newValue) => {
245
+ if (lineId === undefined || newValue === undefined) {
246
+ return;
247
+ }
208
248
  await dataStyleStore.setModelLinesEdgeAttributeName(modelId, [lineId], newValue);
209
249
  hybridViewerStore.remoteRender();
210
250
  },
211
251
  });
212
252
 
213
- const edgeAttributeItem = computed({
253
+ const edgeAttributeItem = computed<string | undefined>({
214
254
  get: () => dataStyleStore.modelLinesEdgeAttributeItem(modelId, lineId),
215
255
  set: async (newValue) => {
256
+ if (lineId === undefined) {
257
+ return;
258
+ }
216
259
  await dataStyleStore.setModelLinesEdgeAttributeItem(modelId, [lineId], newValue);
217
260
  hybridViewerStore.remoteRender();
218
261
  },
219
262
  });
220
263
 
221
- const edgeAttributeRange = computed({
264
+ const edgeAttributeRange = computed<[number, number] | undefined>({
222
265
  get: () => dataStyleStore.modelLinesEdgeAttributeRange(modelId, lineId),
223
266
  set: async (newValue) => {
224
- await dataStyleStore.setModelLinesEdgeAttributeRange(
225
- modelId,
226
- [lineId],
227
- newValue[0],
228
- newValue[1],
229
- );
267
+ const [minimum, maximum] = newValue;
268
+ if (lineId === undefined || minimum === undefined || maximum === undefined) {
269
+ return;
270
+ }
271
+ await dataStyleStore.setModelLinesEdgeAttributeRange(modelId, [lineId], minimum, maximum);
230
272
  hybridViewerStore.remoteRender();
231
273
  },
232
274
  });
233
275
 
234
- const edgeAttributeColorMap = computed({
276
+ const edgeAttributeColorMap = computed<Map<string, RGBAColor> | undefined>({
235
277
  get: () => dataStyleStore.modelLinesEdgeAttributeColorMap(modelId, lineId),
236
278
  set: async (newValue) => {
279
+ if (lineId === undefined) {
280
+ return;
281
+ }
237
282
  await dataStyleStore.setModelLinesEdgeAttributeColorMap(modelId, [lineId], newValue);
238
283
  hybridViewerStore.remoteRender();
239
284
  },
240
285
  });
241
286
 
242
- const edgeAttributeNoDataColor = computed({
243
- get: () => dataStyleStore.modelLinesEdgeAttributeNoDataColor(modelId, lineId),
287
+ const edgeAttributeNoDataColor = computed<RGBAColor | undefined>({
288
+ get: () =>
289
+ dataStyleStore.modelLinesEdgeAttributeNoDataColor(modelId, lineId) as RGBAColor | undefined,
244
290
  set: async (newValue) => {
291
+ if (lineId === undefined) {
292
+ return;
293
+ }
245
294
  await dataStyleStore.setModelLinesEdgeAttributeNoDataColor(modelId, [lineId], newValue);
246
295
  hybridViewerStore.remoteRender();
247
296
  },