@collabdt/core 0.3.0 → 0.3.1

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 (1284) hide show
  1. package/dist/core/components/AppSidebarContent.d.ts +1 -1
  2. package/dist/core/components/AppSidebarContent.d.ts.map +1 -1
  3. package/dist/core/components/AppSidebarContent.js +9 -9
  4. package/dist/core/components/AppSidebarContent.js.map +1 -1
  5. package/dist/core/components/ConfirmDialog.js.map +1 -1
  6. package/dist/core/components/DataTableSkeleton.d.ts.map +1 -1
  7. package/dist/core/components/DataTableSkeleton.js.map +1 -1
  8. package/dist/core/components/LanguageSwitch.d.ts.map +1 -1
  9. package/dist/core/components/LanguageSwitch.js +4 -4
  10. package/dist/core/components/LanguageSwitch.js.map +1 -1
  11. package/dist/core/components/Logo.js +1 -1
  12. package/dist/core/components/Logo.js.map +1 -1
  13. package/dist/core/components/Toolbar.d.ts +1 -1
  14. package/dist/core/components/Toolbar.d.ts.map +1 -1
  15. package/dist/core/components/Toolbar.js +1 -1
  16. package/dist/core/components/Toolbar.js.map +1 -1
  17. package/dist/core/components/ToolbarBody.d.ts +1 -1
  18. package/dist/core/components/ToolbarBody.d.ts.map +1 -1
  19. package/dist/core/components/ToolbarBody.js +1 -1
  20. package/dist/core/components/ToolbarBody.js.map +1 -1
  21. package/dist/core/components/ToolbarSubmenu.d.ts +1 -1
  22. package/dist/core/components/ToolbarSubmenu.d.ts.map +1 -1
  23. package/dist/core/components/ToolbarSubmenu.js +2 -2
  24. package/dist/core/components/ToolbarSubmenu.js.map +1 -1
  25. package/dist/core/components/TopNavigationBar.d.ts.map +1 -1
  26. package/dist/core/components/TopNavigationBar.js +5 -5
  27. package/dist/core/components/TopNavigationBar.js.map +1 -1
  28. package/dist/core/components/authentication/AuthPage.d.ts.map +1 -1
  29. package/dist/core/components/authentication/AuthPage.js +5 -5
  30. package/dist/core/components/authentication/AuthPage.js.map +1 -1
  31. package/dist/core/components/authentication/ForgotPassword.d.ts.map +1 -1
  32. package/dist/core/components/authentication/ForgotPassword.js +3 -3
  33. package/dist/core/components/authentication/ForgotPassword.js.map +1 -1
  34. package/dist/core/components/authentication/Signin.d.ts.map +1 -1
  35. package/dist/core/components/authentication/Signin.js +5 -5
  36. package/dist/core/components/authentication/Signin.js.map +1 -1
  37. package/dist/core/components/authentication/Signup.d.ts.map +1 -1
  38. package/dist/core/components/authentication/Signup.js +7 -7
  39. package/dist/core/components/authentication/Signup.js.map +1 -1
  40. package/dist/core/components/instance-not-found/index.d.ts.map +1 -1
  41. package/dist/core/components/instance-not-found/index.js +4 -4
  42. package/dist/core/components/instance-not-found/index.js.map +1 -1
  43. package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.d.ts.map +1 -1
  44. package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.js +3 -3
  45. package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.js.map +1 -1
  46. package/dist/core/components/organizationConfig/index.d.ts.map +1 -1
  47. package/dist/core/components/organizationConfig/index.js +4 -4
  48. package/dist/core/components/organizationConfig/index.js.map +1 -1
  49. package/dist/core/components/organizationConfig/src/organizationConfigContent.js +2 -2
  50. package/dist/core/components/organizationConfig/src/organizationConfigContent.js.map +1 -1
  51. package/dist/core/components/settings/index.d.ts.map +1 -1
  52. package/dist/core/components/settings/index.js +2 -2
  53. package/dist/core/components/settings/index.js.map +1 -1
  54. package/dist/core/components/settings/src/AccountSettingsPanel.d.ts.map +1 -1
  55. package/dist/core/components/settings/src/AccountSettingsPanel.js +8 -8
  56. package/dist/core/components/settings/src/AccountSettingsPanel.js.map +1 -1
  57. package/dist/core/components/settings/src/ChangePassword.d.ts.map +1 -1
  58. package/dist/core/components/settings/src/ChangePassword.js +5 -5
  59. package/dist/core/components/settings/src/ChangePassword.js.map +1 -1
  60. package/dist/core/components/settings/src/OrganizationSettingsPanel.d.ts.map +1 -1
  61. package/dist/core/components/settings/src/OrganizationSettingsPanel.js +7 -7
  62. package/dist/core/components/settings/src/OrganizationSettingsPanel.js.map +1 -1
  63. package/dist/core/components/settings/src/SettingsContent.d.ts.map +1 -1
  64. package/dist/core/components/settings/src/SettingsContent.js +1 -1
  65. package/dist/core/components/settings/src/SettingsContent.js.map +1 -1
  66. package/dist/core/components/settings/src/SettingsSidebar.d.ts.map +1 -1
  67. package/dist/core/components/settings/src/SettingsSidebar.js +3 -3
  68. package/dist/core/components/settings/src/SettingsSidebar.js.map +1 -1
  69. package/dist/core/components/settings/src/UsersSettingsPanel.js +1 -1
  70. package/dist/core/components/settings/src/UsersSettingsPanel.js.map +1 -1
  71. package/dist/core/components/support/BugReportDialog.d.ts.map +1 -1
  72. package/dist/core/components/support/BugReportDialog.js +8 -8
  73. package/dist/core/components/support/BugReportDialog.js.map +1 -1
  74. package/dist/core/components/support/FeatureRequestDialog.d.ts.map +1 -1
  75. package/dist/core/components/support/FeatureRequestDialog.js +6 -6
  76. package/dist/core/components/support/FeatureRequestDialog.js.map +1 -1
  77. package/dist/core/components/support/SupportMenu.d.ts.map +1 -1
  78. package/dist/core/components/support/SupportMenu.js +1 -1
  79. package/dist/core/components/support/SupportMenu.js.map +1 -1
  80. package/dist/core/components/ui/Accordion.d.ts +1 -1
  81. package/dist/core/components/ui/Accordion.d.ts.map +1 -1
  82. package/dist/core/components/ui/Accordion.js +1 -1
  83. package/dist/core/components/ui/Accordion.js.map +1 -1
  84. package/dist/core/components/ui/AddItemDialog.d.ts.map +1 -1
  85. package/dist/core/components/ui/AddItemDialog.js +1 -1
  86. package/dist/core/components/ui/AddItemDialog.js.map +1 -1
  87. package/dist/core/components/ui/AlertDialog.d.ts +1 -1
  88. package/dist/core/components/ui/AlertDialog.d.ts.map +1 -1
  89. package/dist/core/components/ui/AlertDialog.js +1 -1
  90. package/dist/core/components/ui/AlertDialog.js.map +1 -1
  91. package/dist/core/components/ui/AnimatedBackground.js +1 -1
  92. package/dist/core/components/ui/AnimatedBackground.js.map +1 -1
  93. package/dist/core/components/ui/AppSidebar.d.ts.map +1 -1
  94. package/dist/core/components/ui/AppSidebar.js +7 -7
  95. package/dist/core/components/ui/AppSidebar.js.map +1 -1
  96. package/dist/core/components/ui/Avatar.d.ts +1 -1
  97. package/dist/core/components/ui/Avatar.d.ts.map +1 -1
  98. package/dist/core/components/ui/Avatar.js +1 -1
  99. package/dist/core/components/ui/Avatar.js.map +1 -1
  100. package/dist/core/components/ui/Badge.d.ts.map +1 -1
  101. package/dist/core/components/ui/Badge.js.map +1 -1
  102. package/dist/core/components/ui/Breadcrumb.d.ts.map +1 -1
  103. package/dist/core/components/ui/Breadcrumb.js +2 -2
  104. package/dist/core/components/ui/Breadcrumb.js.map +1 -1
  105. package/dist/core/components/ui/Button.d.ts.map +1 -1
  106. package/dist/core/components/ui/Button.js +1 -1
  107. package/dist/core/components/ui/Button.js.map +1 -1
  108. package/dist/core/components/ui/Calendar.d.ts +2 -1
  109. package/dist/core/components/ui/Calendar.d.ts.map +1 -1
  110. package/dist/core/components/ui/Calendar.js +1 -1
  111. package/dist/core/components/ui/Calendar.js.map +1 -1
  112. package/dist/core/components/ui/Checkbox.d.ts +1 -1
  113. package/dist/core/components/ui/Checkbox.d.ts.map +1 -1
  114. package/dist/core/components/ui/Checkbox.js +1 -1
  115. package/dist/core/components/ui/Checkbox.js.map +1 -1
  116. package/dist/core/components/ui/CollapsibleSection.d.ts.map +1 -1
  117. package/dist/core/components/ui/CollapsibleSection.js +2 -2
  118. package/dist/core/components/ui/CollapsibleSection.js.map +1 -1
  119. package/dist/core/components/ui/Command.d.ts +8 -8
  120. package/dist/core/components/ui/Command.d.ts.map +1 -1
  121. package/dist/core/components/ui/Command.js +1 -1
  122. package/dist/core/components/ui/Command.js.map +1 -1
  123. package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts +1 -1
  124. package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts.map +1 -1
  125. package/dist/core/components/ui/Comments/CollapsibleCommentItem.js +9 -9
  126. package/dist/core/components/ui/Comments/CollapsibleCommentItem.js.map +1 -1
  127. package/dist/core/components/ui/Comments/Comment.d.ts.map +1 -1
  128. package/dist/core/components/ui/Comments/Comment.js +4 -4
  129. package/dist/core/components/ui/Comments/Comment.js.map +1 -1
  130. package/dist/core/components/ui/Comments/CommentInput.d.ts.map +1 -1
  131. package/dist/core/components/ui/Comments/CommentInput.js +6 -6
  132. package/dist/core/components/ui/Comments/CommentInput.js.map +1 -1
  133. package/dist/core/components/ui/Comments/CommentsSection.d.ts.map +1 -1
  134. package/dist/core/components/ui/Comments/CommentsSection.js +4 -4
  135. package/dist/core/components/ui/Comments/CommentsSection.js.map +1 -1
  136. package/dist/core/components/ui/Comments/commentUtils.d.ts +1 -1
  137. package/dist/core/components/ui/Comments/commentUtils.d.ts.map +1 -1
  138. package/dist/core/components/ui/Comments/commentUtils.js.map +1 -1
  139. package/dist/core/components/ui/Countdown.d.ts.map +1 -1
  140. package/dist/core/components/ui/Countdown.js +1 -1
  141. package/dist/core/components/ui/Countdown.js.map +1 -1
  142. package/dist/core/components/ui/DataTable.d.ts +1 -1
  143. package/dist/core/components/ui/DataTable.d.ts.map +1 -1
  144. package/dist/core/components/ui/DataTable.js +17 -17
  145. package/dist/core/components/ui/DataTable.js.map +1 -1
  146. package/dist/core/components/ui/DatePicker.d.ts.map +1 -1
  147. package/dist/core/components/ui/DatePicker.js +2 -2
  148. package/dist/core/components/ui/DatePicker.js.map +1 -1
  149. package/dist/core/components/ui/DescriptionList.d.ts.map +1 -1
  150. package/dist/core/components/ui/DescriptionList.js +2 -2
  151. package/dist/core/components/ui/DescriptionList.js.map +1 -1
  152. package/dist/core/components/ui/Dialog.d.ts +1 -1
  153. package/dist/core/components/ui/Dialog.d.ts.map +1 -1
  154. package/dist/core/components/ui/Dialog.js +1 -1
  155. package/dist/core/components/ui/Dialog.js.map +1 -1
  156. package/dist/core/components/ui/DropdownMenu.d.ts +1 -1
  157. package/dist/core/components/ui/DropdownMenu.d.ts.map +1 -1
  158. package/dist/core/components/ui/DropdownMenu.js +1 -1
  159. package/dist/core/components/ui/DropdownMenu.js.map +1 -1
  160. package/dist/core/components/ui/ExportData.d.ts +2 -2
  161. package/dist/core/components/ui/ExportData.d.ts.map +1 -1
  162. package/dist/core/components/ui/ExportData.js +5 -5
  163. package/dist/core/components/ui/ExportData.js.map +1 -1
  164. package/dist/core/components/ui/FilesManager/src/FileItemComponent.d.ts.map +1 -1
  165. package/dist/core/components/ui/FilesManager/src/FileItemComponent.js +3 -3
  166. package/dist/core/components/ui/FilesManager/src/FileItemComponent.js.map +1 -1
  167. package/dist/core/components/ui/FilesManager/src/FileMarker.d.ts.map +1 -1
  168. package/dist/core/components/ui/FilesManager/src/FileMarker.js +2 -2
  169. package/dist/core/components/ui/FilesManager/src/FileMarker.js.map +1 -1
  170. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.d.ts.map +1 -1
  171. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.js +1 -1
  172. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.js.map +1 -1
  173. package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.d.ts.map +1 -1
  174. package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.js.map +1 -1
  175. package/dist/core/components/ui/FilesManager/src/downloadUtils.d.ts +1 -1
  176. package/dist/core/components/ui/FilesManager/src/downloadUtils.d.ts.map +1 -1
  177. package/dist/core/components/ui/FilesManager/src/downloadUtils.js.map +1 -1
  178. package/dist/core/components/ui/FilesManager/src/useCommonFileUpload.js.map +1 -1
  179. package/dist/core/components/ui/FilesManager/src/useFileActions.d.ts +2 -2
  180. package/dist/core/components/ui/FilesManager/src/useFileActions.d.ts.map +1 -1
  181. package/dist/core/components/ui/FilesManager/src/useFileActions.js +2 -2
  182. package/dist/core/components/ui/FilesManager/src/useFileActions.js.map +1 -1
  183. package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js +1 -1
  184. package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js.map +1 -1
  185. package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js +3 -3
  186. package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js.map +1 -1
  187. package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.d.ts.map +1 -1
  188. package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.js.map +1 -1
  189. package/dist/core/components/ui/GenericTool.d.ts +1 -1
  190. package/dist/core/components/ui/GenericTool.d.ts.map +1 -1
  191. package/dist/core/components/ui/GenericTool.js +2 -2
  192. package/dist/core/components/ui/GenericTool.js.map +1 -1
  193. package/dist/core/components/ui/Icons/FloorPlanIcon.js +1 -1
  194. package/dist/core/components/ui/Icons/FloorPlanIcon.js.map +1 -1
  195. package/dist/core/components/ui/InfoSidebar/Container.d.ts.map +1 -1
  196. package/dist/core/components/ui/InfoSidebar/Container.js.map +1 -1
  197. package/dist/core/components/ui/InfoSidebar/Header.d.ts.map +1 -1
  198. package/dist/core/components/ui/InfoSidebar/Header.js +4 -4
  199. package/dist/core/components/ui/InfoSidebar/Header.js.map +1 -1
  200. package/dist/core/components/ui/InfoSidebar/index.d.ts +1 -1
  201. package/dist/core/components/ui/InfoSidebar/index.d.ts.map +1 -1
  202. package/dist/core/components/ui/InfoSidebar/index.js +1 -1
  203. package/dist/core/components/ui/InfoSidebar/index.js.map +1 -1
  204. package/dist/core/components/ui/Label.d.ts +1 -1
  205. package/dist/core/components/ui/Label.d.ts.map +1 -1
  206. package/dist/core/components/ui/Label.js +1 -1
  207. package/dist/core/components/ui/Label.js.map +1 -1
  208. package/dist/core/components/ui/LanguageToggle.d.ts +1 -1
  209. package/dist/core/components/ui/LanguageToggle.d.ts.map +1 -1
  210. package/dist/core/components/ui/LanguageToggle.js +1 -1
  211. package/dist/core/components/ui/LanguageToggle.js.map +1 -1
  212. package/dist/core/components/ui/Menubar.d.ts +1 -1
  213. package/dist/core/components/ui/Menubar.d.ts.map +1 -1
  214. package/dist/core/components/ui/Menubar.js +1 -1
  215. package/dist/core/components/ui/Menubar.js.map +1 -1
  216. package/dist/core/components/ui/NavUser.js +7 -7
  217. package/dist/core/components/ui/NavUser.js.map +1 -1
  218. package/dist/core/components/ui/Navbar.d.ts.map +1 -1
  219. package/dist/core/components/ui/Navbar.js +2 -2
  220. package/dist/core/components/ui/Navbar.js.map +1 -1
  221. package/dist/core/components/ui/Popover.d.ts +1 -1
  222. package/dist/core/components/ui/Popover.d.ts.map +1 -1
  223. package/dist/core/components/ui/Popover.js +1 -1
  224. package/dist/core/components/ui/Popover.js.map +1 -1
  225. package/dist/core/components/ui/Progress.d.ts +1 -1
  226. package/dist/core/components/ui/Progress.d.ts.map +1 -1
  227. package/dist/core/components/ui/Progress.js +1 -1
  228. package/dist/core/components/ui/Progress.js.map +1 -1
  229. package/dist/core/components/ui/ScrollArea.d.ts +1 -1
  230. package/dist/core/components/ui/ScrollArea.d.ts.map +1 -1
  231. package/dist/core/components/ui/ScrollArea.js +1 -1
  232. package/dist/core/components/ui/ScrollArea.js.map +1 -1
  233. package/dist/core/components/ui/SearchInput.d.ts.map +1 -1
  234. package/dist/core/components/ui/SearchInput.js +2 -2
  235. package/dist/core/components/ui/SearchInput.js.map +1 -1
  236. package/dist/core/components/ui/Select.d.ts +1 -1
  237. package/dist/core/components/ui/Select.d.ts.map +1 -1
  238. package/dist/core/components/ui/Select.js +3 -3
  239. package/dist/core/components/ui/Select.js.map +1 -1
  240. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts +1 -1
  241. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts.map +1 -1
  242. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js +10 -10
  243. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js.map +1 -1
  244. package/dist/core/components/ui/Sensors/Sensor.d.ts +2 -1
  245. package/dist/core/components/ui/Sensors/Sensor.d.ts.map +1 -1
  246. package/dist/core/components/ui/Sensors/Sensor.js +3 -3
  247. package/dist/core/components/ui/Sensors/Sensor.js.map +1 -1
  248. package/dist/core/components/ui/Sensors/SensorChart.d.ts +1 -1
  249. package/dist/core/components/ui/Sensors/SensorChart.d.ts.map +1 -1
  250. package/dist/core/components/ui/Sensors/SensorChart.js +1 -1
  251. package/dist/core/components/ui/Sensors/SensorChart.js.map +1 -1
  252. package/dist/core/components/ui/Sensors/SensorInput.d.ts.map +1 -1
  253. package/dist/core/components/ui/Sensors/SensorInput.js +9 -9
  254. package/dist/core/components/ui/Sensors/SensorInput.js.map +1 -1
  255. package/dist/core/components/ui/Sensors/SensorTagsSection.d.ts.map +1 -1
  256. package/dist/core/components/ui/Sensors/SensorTagsSection.js +3 -3
  257. package/dist/core/components/ui/Sensors/SensorTagsSection.js.map +1 -1
  258. package/dist/core/components/ui/Sensors/SensorsSection.d.ts.map +1 -1
  259. package/dist/core/components/ui/Sensors/SensorsSection.js +7 -7
  260. package/dist/core/components/ui/Sensors/SensorsSection.js.map +1 -1
  261. package/dist/core/components/ui/Sensors/SensorsSectionSkeleton.d.ts.map +1 -1
  262. package/dist/core/components/ui/Sensors/SensorsSectionSkeleton.js.map +1 -1
  263. package/dist/core/components/ui/Sensors/sensorUtils.d.ts +1 -1
  264. package/dist/core/components/ui/Sensors/sensorUtils.d.ts.map +1 -1
  265. package/dist/core/components/ui/Sensors/sensorUtils.js.map +1 -1
  266. package/dist/core/components/ui/Separator.d.ts +1 -1
  267. package/dist/core/components/ui/Separator.d.ts.map +1 -1
  268. package/dist/core/components/ui/Separator.js +1 -1
  269. package/dist/core/components/ui/Separator.js.map +1 -1
  270. package/dist/core/components/ui/SettingsButton.d.ts.map +1 -1
  271. package/dist/core/components/ui/SettingsButton.js +4 -4
  272. package/dist/core/components/ui/SettingsButton.js.map +1 -1
  273. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts +1 -1
  274. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts.map +1 -1
  275. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js +14 -14
  276. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js.map +1 -1
  277. package/dist/core/components/ui/Sheet.d.ts +1 -1
  278. package/dist/core/components/ui/Sheet.d.ts.map +1 -1
  279. package/dist/core/components/ui/Sheet.js +1 -1
  280. package/dist/core/components/ui/Sheet.js.map +1 -1
  281. package/dist/core/components/ui/Sidebar.d.ts +1 -1
  282. package/dist/core/components/ui/Sidebar.d.ts.map +1 -1
  283. package/dist/core/components/ui/Sidebar.js +6 -6
  284. package/dist/core/components/ui/Sidebar.js.map +1 -1
  285. package/dist/core/components/ui/Slider.d.ts +1 -1
  286. package/dist/core/components/ui/Slider.d.ts.map +1 -1
  287. package/dist/core/components/ui/Slider.js +1 -1
  288. package/dist/core/components/ui/Slider.js.map +1 -1
  289. package/dist/core/components/ui/Switch.d.ts +1 -1
  290. package/dist/core/components/ui/Switch.d.ts.map +1 -1
  291. package/dist/core/components/ui/Switch.js +1 -1
  292. package/dist/core/components/ui/Switch.js.map +1 -1
  293. package/dist/core/components/ui/Tabs.d.ts +1 -1
  294. package/dist/core/components/ui/Tabs.d.ts.map +1 -1
  295. package/dist/core/components/ui/Tabs.js +1 -1
  296. package/dist/core/components/ui/Tabs.js.map +1 -1
  297. package/dist/core/components/ui/Toggle.d.ts +1 -1
  298. package/dist/core/components/ui/Toggle.d.ts.map +1 -1
  299. package/dist/core/components/ui/Toggle.js +1 -1
  300. package/dist/core/components/ui/Toggle.js.map +1 -1
  301. package/dist/core/components/ui/ToggleGroup.d.ts +1 -1
  302. package/dist/core/components/ui/ToggleGroup.d.ts.map +1 -1
  303. package/dist/core/components/ui/ToggleGroup.js +1 -1
  304. package/dist/core/components/ui/ToggleGroup.js.map +1 -1
  305. package/dist/core/components/ui/ToolbarButton.d.ts +1 -1
  306. package/dist/core/components/ui/ToolbarButton.d.ts.map +1 -1
  307. package/dist/core/components/ui/ToolbarButton.js +1 -1
  308. package/dist/core/components/ui/ToolbarButton.js.map +1 -1
  309. package/dist/core/components/ui/Tooltip.d.ts +1 -1
  310. package/dist/core/components/ui/Tooltip.d.ts.map +1 -1
  311. package/dist/core/components/ui/Tooltip.js +1 -1
  312. package/dist/core/components/ui/Tooltip.js.map +1 -1
  313. package/dist/core/components/ui/UserAvatar.d.ts.map +1 -1
  314. package/dist/core/components/ui/UserAvatar.js +1 -1
  315. package/dist/core/components/ui/UserAvatar.js.map +1 -1
  316. package/dist/core/components/ui/downloadUtils.d.ts.map +1 -1
  317. package/dist/core/components/ui/downloadUtils.js.map +1 -1
  318. package/dist/core/components/ui/stats.d.ts.map +1 -1
  319. package/dist/core/components/ui/stats.js.map +1 -1
  320. package/dist/core/components/ui/uploadFile.js +1 -1
  321. package/dist/core/components/ui/uploadFile.js.map +1 -1
  322. package/dist/core/components/viewers/Data/DataMenu.d.ts +1 -1
  323. package/dist/core/components/viewers/Data/DataMenu.d.ts.map +1 -1
  324. package/dist/core/components/viewers/Data/DataMenu.js +11 -11
  325. package/dist/core/components/viewers/Data/DataMenu.js.map +1 -1
  326. package/dist/core/components/viewers/Data/FilterButtons.d.ts +1 -1
  327. package/dist/core/components/viewers/Data/FilterButtons.d.ts.map +1 -1
  328. package/dist/core/components/viewers/Data/FilterButtons.js +7 -7
  329. package/dist/core/components/viewers/Data/FilterButtons.js.map +1 -1
  330. package/dist/core/components/viewers/Data/HeaderButtons.d.ts +1 -1
  331. package/dist/core/components/viewers/Data/HeaderButtons.d.ts.map +1 -1
  332. package/dist/core/components/viewers/Data/HeaderButtons.js +9 -9
  333. package/dist/core/components/viewers/Data/HeaderButtons.js.map +1 -1
  334. package/dist/core/components/viewers/Data/MoreOptions.d.ts +1 -1
  335. package/dist/core/components/viewers/Data/MoreOptions.d.ts.map +1 -1
  336. package/dist/core/components/viewers/Data/MoreOptions.js +16 -16
  337. package/dist/core/components/viewers/Data/MoreOptions.js.map +1 -1
  338. package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts +1 -1
  339. package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts.map +1 -1
  340. package/dist/core/components/viewers/Data/advancedFilter/Filters.js +2 -2
  341. package/dist/core/components/viewers/Data/advancedFilter/Filters.js.map +1 -1
  342. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts +1 -1
  343. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts.map +1 -1
  344. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.js +6 -6
  345. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.js.map +1 -1
  346. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.d.ts.map +1 -1
  347. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.js +3 -3
  348. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.js.map +1 -1
  349. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.d.ts.map +1 -1
  350. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.js +10 -10
  351. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.js.map +1 -1
  352. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.d.ts.map +1 -1
  353. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.js +11 -11
  354. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.js.map +1 -1
  355. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.d.ts.map +1 -1
  356. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.js +10 -10
  357. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.js.map +1 -1
  358. package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.d.ts.map +1 -1
  359. package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.js.map +1 -1
  360. package/dist/core/components/viewers/Data/buildingDetails/buildingSchemaTemplate.d.ts.map +1 -1
  361. package/dist/core/components/viewers/Data/buildingDetails/buildingSchemaTemplate.js.map +1 -1
  362. package/dist/core/components/viewers/Data/details/AttachedFiles.d.ts +1 -1
  363. package/dist/core/components/viewers/Data/details/AttachedFiles.d.ts.map +1 -1
  364. package/dist/core/components/viewers/Data/details/AttachedFiles.js +3 -3
  365. package/dist/core/components/viewers/Data/details/AttachedFiles.js.map +1 -1
  366. package/dist/core/components/viewers/Data/details/DetailActions.d.ts +1 -1
  367. package/dist/core/components/viewers/Data/details/DetailActions.d.ts.map +1 -1
  368. package/dist/core/components/viewers/Data/details/DetailActions.js +2 -2
  369. package/dist/core/components/viewers/Data/details/DetailActions.js.map +1 -1
  370. package/dist/core/components/viewers/Data/details/DetailHeader.d.ts.map +1 -1
  371. package/dist/core/components/viewers/Data/details/DetailHeader.js.map +1 -1
  372. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.d.ts.map +1 -1
  373. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.js +4 -4
  374. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.js.map +1 -1
  375. package/dist/core/components/viewers/Data/details/FieldValue.d.ts.map +1 -1
  376. package/dist/core/components/viewers/Data/details/FieldValue.js +2 -2
  377. package/dist/core/components/viewers/Data/details/FieldValue.js.map +1 -1
  378. package/dist/core/components/viewers/Data/details/FileUpload.d.ts.map +1 -1
  379. package/dist/core/components/viewers/Data/details/FileUpload.js +2 -2
  380. package/dist/core/components/viewers/Data/details/FileUpload.js.map +1 -1
  381. package/dist/core/components/viewers/Data/details/FilterFiles.d.ts.map +1 -1
  382. package/dist/core/components/viewers/Data/details/FilterFiles.js +2 -2
  383. package/dist/core/components/viewers/Data/details/FilterFiles.js.map +1 -1
  384. package/dist/core/components/viewers/Data/details/TabSidebar.d.ts.map +1 -1
  385. package/dist/core/components/viewers/Data/details/TabSidebar.js +3 -3
  386. package/dist/core/components/viewers/Data/details/TabSidebar.js.map +1 -1
  387. package/dist/core/components/viewers/Data/files/DatatableFileAdder.d.ts.map +1 -1
  388. package/dist/core/components/viewers/Data/files/DatatableFileAdder.js +3 -3
  389. package/dist/core/components/viewers/Data/files/DatatableFileAdder.js.map +1 -1
  390. package/dist/core/components/viewers/Data/files/FileDetails.d.ts.map +1 -1
  391. package/dist/core/components/viewers/Data/files/FileDetails.js +8 -8
  392. package/dist/core/components/viewers/Data/files/FileDetails.js.map +1 -1
  393. package/dist/core/components/viewers/Data/files/FileMoreOptions.d.ts.map +1 -1
  394. package/dist/core/components/viewers/Data/files/FileMoreOptions.js +8 -8
  395. package/dist/core/components/viewers/Data/files/FileMoreOptions.js.map +1 -1
  396. package/dist/core/components/viewers/Data/files/FilePreview.d.ts +1 -1
  397. package/dist/core/components/viewers/Data/files/FilePreview.d.ts.map +1 -1
  398. package/dist/core/components/viewers/Data/files/FilePreview.js +1 -1
  399. package/dist/core/components/viewers/Data/files/FilePreview.js.map +1 -1
  400. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.d.ts.map +1 -1
  401. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.js +3 -3
  402. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.js.map +1 -1
  403. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.d.ts.map +1 -1
  404. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js +2 -2
  405. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js.map +1 -1
  406. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.d.ts.map +1 -1
  407. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.js +6 -6
  408. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.js.map +1 -1
  409. package/dist/core/components/viewers/Data/siteDetails/AddSite.d.ts.map +1 -1
  410. package/dist/core/components/viewers/Data/siteDetails/AddSite.js +5 -5
  411. package/dist/core/components/viewers/Data/siteDetails/AddSite.js.map +1 -1
  412. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.d.ts.map +1 -1
  413. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js +10 -10
  414. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js.map +1 -1
  415. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.d.ts.map +1 -1
  416. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.js +9 -9
  417. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.js.map +1 -1
  418. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.d.ts.map +1 -1
  419. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.js +11 -11
  420. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.js.map +1 -1
  421. package/dist/core/components/viewers/Data/userDetails/AddUser.d.ts.map +1 -1
  422. package/dist/core/components/viewers/Data/userDetails/AddUser.js +3 -3
  423. package/dist/core/components/viewers/Data/userDetails/AddUser.js.map +1 -1
  424. package/dist/core/components/viewers/Data/userDetails/UserDetails.d.ts.map +1 -1
  425. package/dist/core/components/viewers/Data/userDetails/UserDetails.js +12 -12
  426. package/dist/core/components/viewers/Data/userDetails/UserDetails.js.map +1 -1
  427. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.d.ts.map +1 -1
  428. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.js +12 -12
  429. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.js.map +1 -1
  430. package/dist/core/components/viewers/Data/utils/Columns.d.ts +2 -2
  431. package/dist/core/components/viewers/Data/utils/Columns.d.ts.map +1 -1
  432. package/dist/core/components/viewers/Data/utils/Columns.js +7 -7
  433. package/dist/core/components/viewers/Data/utils/Columns.js.map +1 -1
  434. package/dist/core/components/viewers/Data/utils/Headers.d.ts.map +1 -1
  435. package/dist/core/components/viewers/Data/utils/Headers.js.map +1 -1
  436. package/dist/core/components/viewers/Data/utils/csvUtils.js.map +1 -1
  437. package/dist/core/components/viewers/Data/utils/positionParser.js.map +1 -1
  438. package/dist/core/components/viewers/Data/utils/useViewerData.d.ts +2 -2
  439. package/dist/core/components/viewers/Data/utils/useViewerData.d.ts.map +1 -1
  440. package/dist/core/components/viewers/Data/utils/useViewerData.js.map +1 -1
  441. package/dist/core/components/viewers/Viewer.d.ts +1 -1
  442. package/dist/core/components/viewers/Viewer.d.ts.map +1 -1
  443. package/dist/core/components/viewers/Viewer.js +6 -6
  444. package/dist/core/components/viewers/Viewer.js.map +1 -1
  445. package/dist/core/components/viewers/bim/BimToolbar.d.ts.map +1 -1
  446. package/dist/core/components/viewers/bim/BimToolbar.js +1 -1
  447. package/dist/core/components/viewers/bim/BimToolbar.js.map +1 -1
  448. package/dist/core/components/viewers/bim/BimViewer.d.ts.map +1 -1
  449. package/dist/core/components/viewers/bim/BimViewer.js +7 -7
  450. package/dist/core/components/viewers/bim/BimViewer.js.map +1 -1
  451. package/dist/core/components/viewers/bim/src/BCFTopicsManager.d.ts.map +1 -1
  452. package/dist/core/components/viewers/bim/src/BCFTopicsManager.js.map +1 -1
  453. package/dist/core/components/viewers/bim/src/BIMManager/index.d.ts +2 -2
  454. package/dist/core/components/viewers/bim/src/BIMManager/index.d.ts.map +1 -1
  455. package/dist/core/components/viewers/bim/src/BIMManager/index.js.map +1 -1
  456. package/dist/core/components/viewers/bim/src/BimLoadingState/index.d.ts.map +1 -1
  457. package/dist/core/components/viewers/bim/src/BimLoadingState/index.js +9 -9
  458. package/dist/core/components/viewers/bim/src/BimLoadingState/index.js.map +1 -1
  459. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.d.ts.map +1 -1
  460. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.js +1 -1
  461. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.js.map +1 -1
  462. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.d.ts +1 -1
  463. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.d.ts.map +1 -1
  464. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.js +1 -1
  465. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.js.map +1 -1
  466. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.d.ts +1 -1
  467. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.d.ts.map +1 -1
  468. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.js +5 -5
  469. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.js.map +1 -1
  470. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.d.ts +1 -1
  471. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.d.ts.map +1 -1
  472. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.js +9 -9
  473. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.js.map +1 -1
  474. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.d.ts.map +1 -1
  475. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.js +6 -6
  476. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.js.map +1 -1
  477. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.d.ts.map +1 -1
  478. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.js +4 -4
  479. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.js.map +1 -1
  480. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  481. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  482. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js +10 -10
  483. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  484. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
  485. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js +9 -9
  486. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
  487. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.d.ts.map +1 -1
  488. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.js +1 -1
  489. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.js.map +1 -1
  490. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.d.ts.map +1 -1
  491. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.js +2 -2
  492. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.js.map +1 -1
  493. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.d.ts.map +1 -1
  494. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js +1 -1
  495. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js.map +1 -1
  496. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.d.ts.map +1 -1
  497. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.js +6 -6
  498. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.js.map +1 -1
  499. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.d.ts +1 -1
  500. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.d.ts.map +1 -1
  501. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.js.map +1 -1
  502. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.d.ts.map +1 -1
  503. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.js +2 -2
  504. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.js.map +1 -1
  505. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.d.ts.map +1 -1
  506. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.js +5 -5
  507. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.js.map +1 -1
  508. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.d.ts.map +1 -1
  509. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.js +3 -3
  510. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.js.map +1 -1
  511. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.d.ts.map +1 -1
  512. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.js +3 -3
  513. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.js.map +1 -1
  514. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.d.ts.map +1 -1
  515. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.js +4 -4
  516. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.js.map +1 -1
  517. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.d.ts +1 -1
  518. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.d.ts.map +1 -1
  519. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.js +1 -1
  520. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.js.map +1 -1
  521. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.d.ts.map +1 -1
  522. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.js +5 -5
  523. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.js.map +1 -1
  524. package/dist/core/components/viewers/bim/src/CameraProjection.d.ts.map +1 -1
  525. package/dist/core/components/viewers/bim/src/CameraProjection.js.map +1 -1
  526. package/dist/core/components/viewers/bim/src/ClippingPlane.d.ts.map +1 -1
  527. package/dist/core/components/viewers/bim/src/ClippingPlane.js +1 -1
  528. package/dist/core/components/viewers/bim/src/ClippingPlane.js.map +1 -1
  529. package/dist/core/components/viewers/bim/src/Cursor.d.ts +1 -1
  530. package/dist/core/components/viewers/bim/src/Cursor.d.ts.map +1 -1
  531. package/dist/core/components/viewers/bim/src/Cursor.js.map +1 -1
  532. package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts +1 -1
  533. package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts.map +1 -1
  534. package/dist/core/components/viewers/bim/src/DXFLoader/index.js +1 -1
  535. package/dist/core/components/viewers/bim/src/DXFLoader/index.js.map +1 -1
  536. package/dist/core/components/viewers/bim/src/ElevationsTool/index.d.ts +1 -1
  537. package/dist/core/components/viewers/bim/src/ElevationsTool/index.d.ts.map +1 -1
  538. package/dist/core/components/viewers/bim/src/ElevationsTool/index.js +1 -1
  539. package/dist/core/components/viewers/bim/src/ElevationsTool/index.js.map +1 -1
  540. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.d.ts +1 -1
  541. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.d.ts.map +1 -1
  542. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.js.map +1 -1
  543. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.d.ts +4 -4
  544. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.d.ts.map +1 -1
  545. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.js.map +1 -1
  546. package/dist/core/components/viewers/bim/src/FitCamera.d.ts.map +1 -1
  547. package/dist/core/components/viewers/bim/src/FitCamera.js +1 -1
  548. package/dist/core/components/viewers/bim/src/FitCamera.js.map +1 -1
  549. package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts +3 -3
  550. package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts.map +1 -1
  551. package/dist/core/components/viewers/bim/src/FloorplanTool/index.js +1 -1
  552. package/dist/core/components/viewers/bim/src/FloorplanTool/index.js.map +1 -1
  553. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.d.ts +3 -3
  554. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.d.ts.map +1 -1
  555. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.js.map +1 -1
  556. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.d.ts +1 -1
  557. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.d.ts.map +1 -1
  558. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.js.map +1 -1
  559. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.d.ts +2 -2
  560. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.d.ts.map +1 -1
  561. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.js.map +1 -1
  562. package/dist/core/components/viewers/bim/src/GhostMode.d.ts +1 -1
  563. package/dist/core/components/viewers/bim/src/GhostMode.d.ts.map +1 -1
  564. package/dist/core/components/viewers/bim/src/GhostMode.js.map +1 -1
  565. package/dist/core/components/viewers/bim/src/Highlighter/index.d.ts.map +1 -1
  566. package/dist/core/components/viewers/bim/src/Highlighter/index.js +1 -1
  567. package/dist/core/components/viewers/bim/src/Highlighter/index.js.map +1 -1
  568. package/dist/core/components/viewers/bim/src/IDSManager/index.d.ts.map +1 -1
  569. package/dist/core/components/viewers/bim/src/IDSManager/index.js +3 -3
  570. package/dist/core/components/viewers/bim/src/IDSManager/index.js.map +1 -1
  571. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.d.ts.map +1 -1
  572. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.js +2 -2
  573. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.js.map +1 -1
  574. package/dist/core/components/viewers/bim/src/LoadIfcAsFragments.d.ts.map +1 -1
  575. package/dist/core/components/viewers/bim/src/LoadIfcAsFragments.js.map +1 -1
  576. package/dist/core/components/viewers/bim/src/LoadModels.d.ts +1 -1
  577. package/dist/core/components/viewers/bim/src/LoadModels.d.ts.map +1 -1
  578. package/dist/core/components/viewers/bim/src/LoadModels.js +1 -1
  579. package/dist/core/components/viewers/bim/src/LoadModels.js.map +1 -1
  580. package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts +1 -1
  581. package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts.map +1 -1
  582. package/dist/core/components/viewers/bim/src/ModelManager/index.js +4 -4
  583. package/dist/core/components/viewers/bim/src/ModelManager/index.js.map +1 -1
  584. package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts +1 -1
  585. package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts.map +1 -1
  586. package/dist/core/components/viewers/bim/src/SimpleBimViewer.js +8 -8
  587. package/dist/core/components/viewers/bim/src/SimpleBimViewer.js.map +1 -1
  588. package/dist/core/components/viewers/bim/src/SpatialStructure.js.map +1 -1
  589. package/dist/core/components/viewers/bim/src/ViewportGizmo.d.ts.map +1 -1
  590. package/dist/core/components/viewers/bim/src/ViewportGizmo.js +2 -2
  591. package/dist/core/components/viewers/bim/src/ViewportGizmo.js.map +1 -1
  592. package/dist/core/components/viewers/bim/src/lib/CameraController.d.ts +1 -1
  593. package/dist/core/components/viewers/bim/src/lib/CameraController.d.ts.map +1 -1
  594. package/dist/core/components/viewers/bim/src/lib/CameraController.js.map +1 -1
  595. package/dist/core/components/viewers/bim/src/lib/ChromeController.d.ts +1 -1
  596. package/dist/core/components/viewers/bim/src/lib/ChromeController.d.ts.map +1 -1
  597. package/dist/core/components/viewers/bim/src/lib/ChromeController.js.map +1 -1
  598. package/dist/core/components/viewers/bim/src/lib/ClipController.d.ts +1 -1
  599. package/dist/core/components/viewers/bim/src/lib/ClipController.d.ts.map +1 -1
  600. package/dist/core/components/viewers/bim/src/lib/ClipController.js.map +1 -1
  601. package/dist/core/components/viewers/bim/src/lib/GridController.d.ts.map +1 -1
  602. package/dist/core/components/viewers/bim/src/lib/GridController.js.map +1 -1
  603. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.d.ts.map +1 -1
  604. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js +1 -1
  605. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js.map +1 -1
  606. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts +2 -2
  607. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts.map +1 -1
  608. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js +1 -1
  609. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js.map +1 -1
  610. package/dist/core/components/viewers/bim/src/lib/drawingProjection.d.ts +1 -1
  611. package/dist/core/components/viewers/bim/src/lib/drawingProjection.d.ts.map +1 -1
  612. package/dist/core/components/viewers/bim/src/lib/drawingProjection.js.map +1 -1
  613. package/dist/core/components/viewers/bim/src/lib/useBuildingName.d.ts.map +1 -1
  614. package/dist/core/components/viewers/bim/src/lib/useBuildingName.js.map +1 -1
  615. package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js +1 -1
  616. package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js.map +1 -1
  617. package/dist/core/components/viewers/bim/src/propertiesMenu/index.d.ts.map +1 -1
  618. package/dist/core/components/viewers/bim/src/propertiesMenu/index.js +4 -4
  619. package/dist/core/components/viewers/bim/src/propertiesMenu/index.js.map +1 -1
  620. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.d.ts.map +1 -1
  621. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.js +1 -1
  622. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.js.map +1 -1
  623. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.d.ts.map +1 -1
  624. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.js +2 -2
  625. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.js.map +1 -1
  626. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertyGroup.d.ts.map +1 -1
  627. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertyGroup.js.map +1 -1
  628. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.d.ts +1 -1
  629. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.d.ts.map +1 -1
  630. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.js +2 -2
  631. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.js.map +1 -1
  632. package/dist/core/components/viewers/bim/src/propertiesMenu/src/utils.d.ts.map +1 -1
  633. package/dist/core/components/viewers/bim/src/propertiesMenu/src/utils.js.map +1 -1
  634. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.d.ts.map +1 -1
  635. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js +9 -9
  636. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js.map +1 -1
  637. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts +1 -1
  638. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts.map +1 -1
  639. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js +2 -2
  640. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js.map +1 -1
  641. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.d.ts.map +1 -1
  642. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.js +2 -2
  643. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.js.map +1 -1
  644. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts +1 -1
  645. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts.map +1 -1
  646. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.js.map +1 -1
  647. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.d.ts.map +1 -1
  648. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.js +3 -3
  649. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.js.map +1 -1
  650. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.d.ts +1 -1
  651. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.d.ts.map +1 -1
  652. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.js.map +1 -1
  653. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.d.ts +2 -2
  654. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.d.ts.map +1 -1
  655. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.js.map +1 -1
  656. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts +5 -5
  657. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts.map +1 -1
  658. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.js.map +1 -1
  659. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.d.ts.map +1 -1
  660. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js +2 -2
  661. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js.map +1 -1
  662. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.d.ts.map +1 -1
  663. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js +1 -1
  664. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js.map +1 -1
  665. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.d.ts +1 -1
  666. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.d.ts.map +1 -1
  667. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.js +1 -1
  668. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.js.map +1 -1
  669. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.d.ts.map +1 -1
  670. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.js +4 -4
  671. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.js.map +1 -1
  672. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts +2 -2
  673. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts.map +1 -1
  674. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js +4 -4
  675. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js.map +1 -1
  676. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.d.ts.map +1 -1
  677. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.js +6 -6
  678. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.js.map +1 -1
  679. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.d.ts.map +1 -1
  680. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.js +2 -2
  681. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.js.map +1 -1
  682. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.d.ts +1 -1
  683. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.d.ts.map +1 -1
  684. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.js +6 -6
  685. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.js.map +1 -1
  686. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.d.ts +1 -1
  687. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.d.ts.map +1 -1
  688. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.js +3 -3
  689. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.js.map +1 -1
  690. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.d.ts +1 -1
  691. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.d.ts.map +1 -1
  692. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.js +2 -2
  693. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.js.map +1 -1
  694. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.d.ts +1 -1
  695. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.d.ts.map +1 -1
  696. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.js +4 -4
  697. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.js.map +1 -1
  698. package/dist/core/components/viewers/bim/src/tools/bimToolbar.d.ts +1 -1
  699. package/dist/core/components/viewers/bim/src/tools/bimToolbar.d.ts.map +1 -1
  700. package/dist/core/components/viewers/bim/src/tools/bimToolbar.js +4 -4
  701. package/dist/core/components/viewers/bim/src/tools/bimToolbar.js.map +1 -1
  702. package/dist/core/components/viewers/bim/src/tools/measureBimTool.d.ts +1 -1
  703. package/dist/core/components/viewers/bim/src/tools/measureBimTool.d.ts.map +1 -1
  704. package/dist/core/components/viewers/bim/src/tools/measureBimTool.js +5 -5
  705. package/dist/core/components/viewers/bim/src/tools/measureBimTool.js.map +1 -1
  706. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.d.ts +1 -1
  707. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.d.ts.map +1 -1
  708. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.js +5 -5
  709. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.js.map +1 -1
  710. package/dist/core/components/viewers/bim/src/tools/shareBimTool.d.ts +1 -1
  711. package/dist/core/components/viewers/bim/src/tools/shareBimTool.d.ts.map +1 -1
  712. package/dist/core/components/viewers/bim/src/tools/shareBimTool.js.map +1 -1
  713. package/dist/core/components/viewers/bim/utils/GizmoController.d.ts +1 -1
  714. package/dist/core/components/viewers/bim/utils/GizmoController.d.ts.map +1 -1
  715. package/dist/core/components/viewers/bim/utils/GizmoController.js.map +1 -1
  716. package/dist/core/components/viewers/bim/utils/setCameraLookAt.d.ts +1 -1
  717. package/dist/core/components/viewers/bim/utils/setCameraLookAt.d.ts.map +1 -1
  718. package/dist/core/components/viewers/bim/utils/setCameraLookAt.js.map +1 -1
  719. package/dist/core/components/viewers/map/MapViewer.d.ts +1 -1
  720. package/dist/core/components/viewers/map/MapViewer.d.ts.map +1 -1
  721. package/dist/core/components/viewers/map/MapViewer.js +7 -7
  722. package/dist/core/components/viewers/map/MapViewer.js.map +1 -1
  723. package/dist/core/components/viewers/map/datasets/AddPortalDialog.d.ts.map +1 -1
  724. package/dist/core/components/viewers/map/datasets/AddPortalDialog.js +4 -4
  725. package/dist/core/components/viewers/map/datasets/AddPortalDialog.js.map +1 -1
  726. package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts +1 -1
  727. package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts.map +1 -1
  728. package/dist/core/components/viewers/map/datasets/DatasetDetails.js +4 -4
  729. package/dist/core/components/viewers/map/datasets/DatasetDetails.js.map +1 -1
  730. package/dist/core/components/viewers/map/datasets/DatasetManager/index.d.ts.map +1 -1
  731. package/dist/core/components/viewers/map/datasets/DatasetManager/index.js +13 -13
  732. package/dist/core/components/viewers/map/datasets/DatasetManager/index.js.map +1 -1
  733. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.d.ts.map +1 -1
  734. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.js +2 -2
  735. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.js.map +1 -1
  736. package/dist/core/components/viewers/map/datasets/DatasetSkeleton.d.ts.map +1 -1
  737. package/dist/core/components/viewers/map/datasets/DatasetSkeleton.js.map +1 -1
  738. package/dist/core/components/viewers/map/datasets/Filters.d.ts.map +1 -1
  739. package/dist/core/components/viewers/map/datasets/Filters.js +2 -2
  740. package/dist/core/components/viewers/map/datasets/Filters.js.map +1 -1
  741. package/dist/core/components/viewers/map/datasets/NestedFilter.d.ts.map +1 -1
  742. package/dist/core/components/viewers/map/datasets/NestedFilter.js +1 -1
  743. package/dist/core/components/viewers/map/datasets/NestedFilter.js.map +1 -1
  744. package/dist/core/components/viewers/map/datasets/RowActions.d.ts.map +1 -1
  745. package/dist/core/components/viewers/map/datasets/RowActions.js +3 -3
  746. package/dist/core/components/viewers/map/datasets/RowActions.js.map +1 -1
  747. package/dist/core/components/viewers/map/datasets/data.d.ts +1 -1
  748. package/dist/core/components/viewers/map/datasets/data.d.ts.map +1 -1
  749. package/dist/core/components/viewers/map/datasets/data.js +2 -2
  750. package/dist/core/components/viewers/map/datasets/data.js.map +1 -1
  751. package/dist/core/components/viewers/map/datasets/index.d.ts +1 -1
  752. package/dist/core/components/viewers/map/datasets/index.d.ts.map +1 -1
  753. package/dist/core/components/viewers/map/datasets/index.js +11 -11
  754. package/dist/core/components/viewers/map/datasets/index.js.map +1 -1
  755. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.d.ts +1 -1
  756. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.d.ts.map +1 -1
  757. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.js +2 -2
  758. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.js.map +1 -1
  759. package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.d.ts.map +1 -1
  760. package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.js.map +1 -1
  761. package/dist/core/components/viewers/map/datasets/src/cache.js.map +1 -1
  762. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.d.ts +1 -1
  763. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.d.ts.map +1 -1
  764. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js +1 -1
  765. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js.map +1 -1
  766. package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts +1 -1
  767. package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts.map +1 -1
  768. package/dist/core/components/viewers/map/datasets/src/localDatasets.js +3 -3
  769. package/dist/core/components/viewers/map/datasets/src/localDatasets.js.map +1 -1
  770. package/dist/core/components/viewers/map/datasets/src/minioDatasets.d.ts.map +1 -1
  771. package/dist/core/components/viewers/map/datasets/src/minioDatasets.js.map +1 -1
  772. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.d.ts +1 -1
  773. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.d.ts.map +1 -1
  774. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js +1 -1
  775. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js.map +1 -1
  776. package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts +1 -1
  777. package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts.map +1 -1
  778. package/dist/core/components/viewers/map/datasets/src/publishedTiles.js.map +1 -1
  779. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.d.ts.map +1 -1
  780. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.js +1 -1
  781. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.js.map +1 -1
  782. package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts +1 -12
  783. package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts.map +1 -1
  784. package/dist/core/components/viewers/map/datasets/src/urlSources.js +1 -1
  785. package/dist/core/components/viewers/map/datasets/src/urlSources.js.map +1 -1
  786. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.d.ts.map +1 -1
  787. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.js +1 -1
  788. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.js.map +1 -1
  789. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.d.ts +1 -1
  790. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.d.ts.map +1 -1
  791. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.js.map +1 -1
  792. package/dist/core/components/viewers/map/datasets/utils.d.ts +1 -1
  793. package/dist/core/components/viewers/map/datasets/utils.d.ts.map +1 -1
  794. package/dist/core/components/viewers/map/datasets/utils.js.map +1 -1
  795. package/dist/core/components/viewers/map/legends/MapLegendHost.d.ts.map +1 -1
  796. package/dist/core/components/viewers/map/legends/MapLegendHost.js +3 -3
  797. package/dist/core/components/viewers/map/legends/MapLegendHost.js.map +1 -1
  798. package/dist/core/components/viewers/map/src/Geocoder.d.ts.map +1 -1
  799. package/dist/core/components/viewers/map/src/Geocoder.js +8 -8
  800. package/dist/core/components/viewers/map/src/Geocoder.js.map +1 -1
  801. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.d.ts +1 -1
  802. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.d.ts.map +1 -1
  803. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.js.map +1 -1
  804. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.d.ts +1 -1
  805. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.d.ts.map +1 -1
  806. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.js +3 -3
  807. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.js.map +1 -1
  808. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.d.ts +1 -1
  809. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.d.ts.map +1 -1
  810. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.js +11 -10
  811. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.js.map +1 -1
  812. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.d.ts.map +1 -1
  813. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js +23 -55
  814. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js.map +1 -1
  815. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.d.ts.map +1 -1
  816. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.js +4 -4
  817. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.js.map +1 -1
  818. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.d.ts.map +1 -1
  819. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.js +2 -2
  820. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.js.map +1 -1
  821. package/dist/core/components/viewers/map/src/MapLayers/index.d.ts.map +1 -1
  822. package/dist/core/components/viewers/map/src/MapLayers/index.js +5 -5
  823. package/dist/core/components/viewers/map/src/MapLayers/index.js.map +1 -1
  824. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.d.ts.map +1 -1
  825. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js +5 -5
  826. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js.map +1 -1
  827. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.d.ts.map +1 -1
  828. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.js +4 -4
  829. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.js.map +1 -1
  830. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.d.ts +1 -1
  831. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.d.ts.map +1 -1
  832. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.js.map +1 -1
  833. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.d.ts.map +1 -1
  834. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.js +9 -9
  835. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.js.map +1 -1
  836. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.d.ts.map +1 -1
  837. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js +1 -1
  838. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js.map +1 -1
  839. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.d.ts.map +1 -1
  840. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.js +3 -3
  841. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.js.map +1 -1
  842. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts +1 -1
  843. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts.map +1 -1
  844. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js +1 -1
  845. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js.map +1 -1
  846. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileIcon.d.ts.map +1 -1
  847. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileIcon.js.map +1 -1
  848. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.d.ts +1 -1
  849. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.d.ts.map +1 -1
  850. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.js +3 -3
  851. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.js.map +1 -1
  852. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.d.ts.map +1 -1
  853. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.js +2 -2
  854. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.js.map +1 -1
  855. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileMarker.d.ts.map +1 -1
  856. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileMarker.js.map +1 -1
  857. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.d.ts.map +1 -1
  858. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.js +6 -6
  859. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.js.map +1 -1
  860. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts +1 -1
  861. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts.map +1 -1
  862. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.js.map +1 -1
  863. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.d.ts +1 -1
  864. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.d.ts.map +1 -1
  865. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.js.map +1 -1
  866. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.d.ts.map +1 -1
  867. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.js.map +1 -1
  868. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.d.ts.map +1 -1
  869. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js +3 -3
  870. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js.map +1 -1
  871. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.d.ts.map +1 -1
  872. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.js +3 -3
  873. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.js.map +1 -1
  874. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.d.ts.map +1 -1
  875. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.js +11 -11
  876. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.js.map +1 -1
  877. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.d.ts.map +1 -1
  878. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.js +2 -2
  879. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.js.map +1 -1
  880. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.d.ts.map +1 -1
  881. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.js +4 -4
  882. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.js.map +1 -1
  883. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.d.ts +1 -1
  884. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.d.ts.map +1 -1
  885. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.js.map +1 -1
  886. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/siteGeometry.d.ts.map +1 -1
  887. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/siteGeometry.js.map +1 -1
  888. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/useShowSitesOnMap.d.ts.map +1 -1
  889. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/useShowSitesOnMap.js.map +1 -1
  890. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.d.ts +1 -1
  891. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.d.ts.map +1 -1
  892. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.js +1 -1
  893. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.js.map +1 -1
  894. package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts +1 -1
  895. package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts.map +1 -1
  896. package/dist/core/components/viewers/map/src/MapSidebar/index.js +4 -4
  897. package/dist/core/components/viewers/map/src/MapSidebar/index.js.map +1 -1
  898. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.d.ts +1 -1
  899. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.d.ts.map +1 -1
  900. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.js.map +1 -1
  901. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.d.ts.map +1 -1
  902. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.js +2 -2
  903. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.js.map +1 -1
  904. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  905. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  906. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js +5 -5
  907. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  908. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
  909. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js +5 -5
  910. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
  911. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.d.ts +1 -1
  912. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.d.ts.map +1 -1
  913. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.js +4 -4
  914. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.js.map +1 -1
  915. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.d.ts.map +1 -1
  916. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.js +4 -4
  917. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.js.map +1 -1
  918. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.d.ts.map +1 -1
  919. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.js +2 -2
  920. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.js.map +1 -1
  921. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.d.ts +1 -1
  922. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.d.ts.map +1 -1
  923. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.js.map +1 -1
  924. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/index.d.ts.map +1 -1
  925. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/index.js.map +1 -1
  926. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.d.ts.map +1 -1
  927. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.js +3 -3
  928. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.js.map +1 -1
  929. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.d.ts.map +1 -1
  930. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.js +3 -3
  931. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.js.map +1 -1
  932. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.d.ts.map +1 -1
  933. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js +3 -3
  934. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js.map +1 -1
  935. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.d.ts.map +1 -1
  936. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js +3 -3
  937. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js.map +1 -1
  938. package/dist/core/components/viewers/map/src/SimpleMap.d.ts.map +1 -1
  939. package/dist/core/components/viewers/map/src/SimpleMap.js +1 -1
  940. package/dist/core/components/viewers/map/src/SimpleMap.js.map +1 -1
  941. package/dist/core/components/viewers/map/src/compare/AddItem.d.ts +1 -1
  942. package/dist/core/components/viewers/map/src/compare/AddItem.d.ts.map +1 -1
  943. package/dist/core/components/viewers/map/src/compare/AddItem.js +6 -6
  944. package/dist/core/components/viewers/map/src/compare/AddItem.js.map +1 -1
  945. package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts +2 -2
  946. package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts.map +1 -1
  947. package/dist/core/components/viewers/map/src/compare/CompareDialog.js +5 -5
  948. package/dist/core/components/viewers/map/src/compare/CompareDialog.js.map +1 -1
  949. package/dist/core/components/viewers/map/src/compare/index.d.ts +1 -1
  950. package/dist/core/components/viewers/map/src/compare/index.d.ts.map +1 -1
  951. package/dist/core/components/viewers/map/src/compare/index.js +6 -6
  952. package/dist/core/components/viewers/map/src/compare/index.js.map +1 -1
  953. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.d.ts.map +1 -1
  954. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.js +3 -3
  955. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.js.map +1 -1
  956. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.d.ts.map +1 -1
  957. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.js +5 -5
  958. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.js.map +1 -1
  959. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.d.ts.map +1 -1
  960. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.js +3 -3
  961. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.js.map +1 -1
  962. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.d.ts.map +1 -1
  963. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.js +7 -7
  964. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.js.map +1 -1
  965. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.d.ts.map +1 -1
  966. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.js +1 -1
  967. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.js.map +1 -1
  968. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.d.ts +2 -2
  969. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.d.ts.map +1 -1
  970. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.js +8 -8
  971. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.js.map +1 -1
  972. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts +2 -2
  973. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts.map +1 -1
  974. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.js +1 -1
  975. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.js.map +1 -1
  976. package/dist/core/components/viewers/map/src/tools/mapTools.d.ts +2 -2
  977. package/dist/core/components/viewers/map/src/tools/mapTools.d.ts.map +1 -1
  978. package/dist/core/components/viewers/map/src/tools/mapTools.js +4 -4
  979. package/dist/core/components/viewers/map/src/tools/mapTools.js.map +1 -1
  980. package/dist/core/components/viewers/map/src/tools/measureMapTool.d.ts +1 -1
  981. package/dist/core/components/viewers/map/src/tools/measureMapTool.d.ts.map +1 -1
  982. package/dist/core/components/viewers/map/src/tools/measureMapTool.js +3 -3
  983. package/dist/core/components/viewers/map/src/tools/measureMapTool.js.map +1 -1
  984. package/dist/core/components/viewers/map/src/tools/shareMapTool.d.ts +1 -1
  985. package/dist/core/components/viewers/map/src/tools/shareMapTool.d.ts.map +1 -1
  986. package/dist/core/components/viewers/map/src/tools/shareMapTool.js.map +1 -1
  987. package/dist/core/components/viewers/map/utils/ClusterManager.d.ts +1 -1
  988. package/dist/core/components/viewers/map/utils/ClusterManager.d.ts.map +1 -1
  989. package/dist/core/components/viewers/map/utils/ClusterManager.js.map +1 -1
  990. package/dist/core/components/viewers/map/utils/MarkerManager.d.ts +1 -1
  991. package/dist/core/components/viewers/map/utils/MarkerManager.d.ts.map +1 -1
  992. package/dist/core/components/viewers/map/utils/MarkerManager.js.map +1 -1
  993. package/dist/core/components/viewers/map/utils/extractCoordinates.js.map +1 -1
  994. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.d.ts +1 -1
  995. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.d.ts.map +1 -1
  996. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.js.map +1 -1
  997. package/dist/core/components/viewers/map/utils/flyToEach.d.ts +1 -1
  998. package/dist/core/components/viewers/map/utils/flyToEach.d.ts.map +1 -1
  999. package/dist/core/components/viewers/map/utils/flyToEach.js.map +1 -1
  1000. package/dist/core/components/viewers/map/utils/geocoder.d.ts +1 -1
  1001. package/dist/core/components/viewers/map/utils/geocoder.d.ts.map +1 -1
  1002. package/dist/core/components/viewers/map/utils/geocoder.js +1 -1
  1003. package/dist/core/components/viewers/map/utils/geocoder.js.map +1 -1
  1004. package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts +1 -1
  1005. package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts.map +1 -1
  1006. package/dist/core/components/viewers/map/utils/geocoding/adapters.js.map +1 -1
  1007. package/dist/core/components/viewers/map/utils/geocoding/index.d.ts +1 -1
  1008. package/dist/core/components/viewers/map/utils/geocoding/index.d.ts.map +1 -1
  1009. package/dist/core/components/viewers/map/utils/geocoding/index.js +1 -1
  1010. package/dist/core/components/viewers/map/utils/geocoding/index.js.map +1 -1
  1011. package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts +1 -1
  1012. package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts.map +1 -1
  1013. package/dist/core/components/viewers/map/utils/geocoding/osm.js +1 -1
  1014. package/dist/core/components/viewers/map/utils/geocoding/osm.js.map +1 -1
  1015. package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts +1 -1
  1016. package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts.map +1 -1
  1017. package/dist/core/components/viewers/map/utils/geocoding/pelias.js.map +1 -1
  1018. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.d.ts +1 -1
  1019. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.d.ts.map +1 -1
  1020. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.js.map +1 -1
  1021. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.d.ts.map +1 -1
  1022. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js +1 -1
  1023. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js.map +1 -1
  1024. package/dist/core/components/viewers/pointcloud/PointCloudViewer.d.ts.map +1 -1
  1025. package/dist/core/components/viewers/pointcloud/PointCloudViewer.js +5 -5
  1026. package/dist/core/components/viewers/pointcloud/PointCloudViewer.js.map +1 -1
  1027. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.d.ts.map +1 -1
  1028. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.js +7 -7
  1029. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.js.map +1 -1
  1030. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudManagementTable.d.ts.map +1 -1
  1031. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudManagementTable.js.map +1 -1
  1032. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.d.ts.map +1 -1
  1033. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.js +15 -15
  1034. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.js.map +1 -1
  1035. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.d.ts.map +1 -1
  1036. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.js +3 -3
  1037. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.js.map +1 -1
  1038. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.d.ts +1 -1
  1039. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.d.ts.map +1 -1
  1040. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.js +1 -1
  1041. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.js.map +1 -1
  1042. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.d.ts.map +1 -1
  1043. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.js +2 -2
  1044. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.js.map +1 -1
  1045. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.d.ts.map +1 -1
  1046. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js +3 -3
  1047. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js.map +1 -1
  1048. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  1049. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  1050. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js +4 -4
  1051. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  1052. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts +1 -1
  1053. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts.map +1 -1
  1054. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js +5 -5
  1055. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js.map +1 -1
  1056. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.d.ts.map +1 -1
  1057. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.js +1 -1
  1058. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.js.map +1 -1
  1059. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.d.ts.map +1 -1
  1060. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.js +3 -3
  1061. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.js.map +1 -1
  1062. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.d.ts.map +1 -1
  1063. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.js +4 -4
  1064. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.js.map +1 -1
  1065. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.d.ts.map +1 -1
  1066. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.js +10 -10
  1067. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.js.map +1 -1
  1068. package/dist/core/components/viewers/pointcloud/src/ViewportGizmo.js.map +1 -1
  1069. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.d.ts +1 -1
  1070. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.d.ts.map +1 -1
  1071. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.js +3 -3
  1072. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.js.map +1 -1
  1073. package/dist/core/components/viewers/pointcloud/src/tools/FitToScreen.d.ts.map +1 -1
  1074. package/dist/core/components/viewers/pointcloud/src/tools/FitToScreen.js.map +1 -1
  1075. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AngleMeasurement.d.ts.map +1 -1
  1076. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AngleMeasurement.js.map +1 -1
  1077. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AreaMeasurement.d.ts.map +1 -1
  1078. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AreaMeasurement.js.map +1 -1
  1079. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/LineMeasurement.d.ts.map +1 -1
  1080. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/LineMeasurement.js.map +1 -1
  1081. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.d.ts +1 -1
  1082. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.d.ts.map +1 -1
  1083. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.js +6 -6
  1084. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.js.map +1 -1
  1085. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.d.ts.map +1 -1
  1086. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.js +2 -2
  1087. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.js.map +1 -1
  1088. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.d.ts.map +1 -1
  1089. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js +2 -2
  1090. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js.map +1 -1
  1091. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.d.ts.map +1 -1
  1092. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.js +3 -3
  1093. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.js.map +1 -1
  1094. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.d.ts.map +1 -1
  1095. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.js +1 -1
  1096. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.js.map +1 -1
  1097. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.d.ts.map +1 -1
  1098. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.js +1 -1
  1099. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.js.map +1 -1
  1100. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.d.ts.map +1 -1
  1101. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.js +1 -1
  1102. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.js.map +1 -1
  1103. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.d.ts.map +1 -1
  1104. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.js +4 -4
  1105. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.js.map +1 -1
  1106. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.d.ts +1 -1
  1107. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.d.ts.map +1 -1
  1108. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.js +1 -1
  1109. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.js.map +1 -1
  1110. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.d.ts +1 -1
  1111. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.d.ts.map +1 -1
  1112. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.js +2 -2
  1113. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.js.map +1 -1
  1114. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.d.ts +1 -1
  1115. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.d.ts.map +1 -1
  1116. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.js.map +1 -1
  1117. package/dist/core/hooks/buildings/createBuildingHooks.d.ts +1 -1
  1118. package/dist/core/hooks/buildings/createBuildingHooks.d.ts.map +1 -1
  1119. package/dist/core/hooks/buildings/createBuildingHooks.js.map +1 -1
  1120. package/dist/core/hooks/comments/createCommentHooks.d.ts +1 -1
  1121. package/dist/core/hooks/comments/createCommentHooks.d.ts.map +1 -1
  1122. package/dist/core/hooks/comments/createCommentHooks.js +1 -1
  1123. package/dist/core/hooks/comments/createCommentHooks.js.map +1 -1
  1124. package/dist/core/hooks/files/createFileHooks.d.ts +1 -1
  1125. package/dist/core/hooks/files/createFileHooks.d.ts.map +1 -1
  1126. package/dist/core/hooks/files/createFileHooks.js.map +1 -1
  1127. package/dist/core/hooks/files/files.d.ts.map +1 -1
  1128. package/dist/core/hooks/files/files.js +1 -1
  1129. package/dist/core/hooks/files/files.js.map +1 -1
  1130. package/dist/core/hooks/infrastructures/createInfrastructureHooks.d.ts +1 -1
  1131. package/dist/core/hooks/infrastructures/createInfrastructureHooks.d.ts.map +1 -1
  1132. package/dist/core/hooks/infrastructures/createInfrastructureHooks.js.map +1 -1
  1133. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.d.ts +1 -1
  1134. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.d.ts.map +1 -1
  1135. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.js.map +1 -1
  1136. package/dist/core/hooks/organizations/createOrganizationHooks.d.ts +1 -1
  1137. package/dist/core/hooks/organizations/createOrganizationHooks.d.ts.map +1 -1
  1138. package/dist/core/hooks/organizations/createOrganizationHooks.js.map +1 -1
  1139. package/dist/core/hooks/provider.d.ts +5 -5
  1140. package/dist/core/hooks/provider.d.ts.map +1 -1
  1141. package/dist/core/hooks/provider.js +4 -4
  1142. package/dist/core/hooks/provider.js.map +1 -1
  1143. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.d.ts +1 -1
  1144. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.d.ts.map +1 -1
  1145. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.js.map +1 -1
  1146. package/dist/core/hooks/sensors/createSensorHooks.d.ts +1 -1
  1147. package/dist/core/hooks/sensors/createSensorHooks.d.ts.map +1 -1
  1148. package/dist/core/hooks/sensors/createSensorHooks.js +1 -1
  1149. package/dist/core/hooks/sensors/createSensorHooks.js.map +1 -1
  1150. package/dist/core/hooks/sites/createSiteHooks.d.ts +1 -1
  1151. package/dist/core/hooks/sites/createSiteHooks.d.ts.map +1 -1
  1152. package/dist/core/hooks/sites/createSiteHooks.js.map +1 -1
  1153. package/dist/core/hooks/sites/sites.d.ts.map +1 -1
  1154. package/dist/core/hooks/useCaptureScreenshot.d.ts.map +1 -1
  1155. package/dist/core/hooks/useCaptureScreenshot.js.map +1 -1
  1156. package/dist/core/hooks/useCurrentViewerPosition.d.ts.map +1 -1
  1157. package/dist/core/hooks/useCurrentViewerPosition.js +1 -1
  1158. package/dist/core/hooks/useCurrentViewerPosition.js.map +1 -1
  1159. package/dist/core/hooks/useGeocodingRuntimeConfig.d.ts +1 -1
  1160. package/dist/core/hooks/useGeocodingRuntimeConfig.d.ts.map +1 -1
  1161. package/dist/core/hooks/useGeocodingRuntimeConfig.js.map +1 -1
  1162. package/dist/core/hooks/useShareUrl.d.ts.map +1 -1
  1163. package/dist/core/hooks/useShareUrl.js +1 -1
  1164. package/dist/core/hooks/useShareUrl.js.map +1 -1
  1165. package/dist/core/hooks/users/createUserHooks.d.ts +1 -1
  1166. package/dist/core/hooks/users/createUserHooks.d.ts.map +1 -1
  1167. package/dist/core/hooks/users/createUserHooks.js.map +1 -1
  1168. package/dist/core/i18n/index.js +1 -1
  1169. package/dist/core/i18n/index.js.map +1 -1
  1170. package/dist/core/i18n/messages/en.json +1872 -1872
  1171. package/dist/core/i18n/messages/es.json +1870 -1870
  1172. package/dist/core/i18n/messages/fr.json +1870 -1870
  1173. package/dist/core/plugins/host/context.d.ts +1 -1
  1174. package/dist/core/plugins/host/context.d.ts.map +1 -1
  1175. package/dist/core/plugins/host/context.js.map +1 -1
  1176. package/dist/core/plugins/host/host.d.ts +1 -1
  1177. package/dist/core/plugins/host/host.d.ts.map +1 -1
  1178. package/dist/core/plugins/host/host.js.map +1 -1
  1179. package/dist/core/plugins/host/provider.d.ts.map +1 -1
  1180. package/dist/core/plugins/host/provider.js +2 -2
  1181. package/dist/core/plugins/host/provider.js.map +1 -1
  1182. package/dist/core/store/AppConfig/context.d.ts +1 -1
  1183. package/dist/core/store/AppConfig/context.d.ts.map +1 -1
  1184. package/dist/core/store/AppConfig/context.js.map +1 -1
  1185. package/dist/core/store/AppConfig/reducer.d.ts +2 -2
  1186. package/dist/core/store/AppConfig/reducer.d.ts.map +1 -1
  1187. package/dist/core/store/AppConfig/reducer.js.map +1 -1
  1188. package/dist/core/store/BIM/context.d.ts +1 -1
  1189. package/dist/core/store/BIM/context.d.ts.map +1 -1
  1190. package/dist/core/store/BIM/context.js.map +1 -1
  1191. package/dist/core/store/BIM/reducer.d.ts +3 -3
  1192. package/dist/core/store/BIM/reducer.d.ts.map +1 -1
  1193. package/dist/core/store/BIM/reducer.js.map +1 -1
  1194. package/dist/core/store/Buildings/context.d.ts +1 -1
  1195. package/dist/core/store/Buildings/context.d.ts.map +1 -1
  1196. package/dist/core/store/Buildings/context.js.map +1 -1
  1197. package/dist/core/store/Buildings/reducer.d.ts +2 -2
  1198. package/dist/core/store/Buildings/reducer.d.ts.map +1 -1
  1199. package/dist/core/store/Buildings/reducer.js.map +1 -1
  1200. package/dist/core/store/CombineProviders.d.ts.map +1 -1
  1201. package/dist/core/store/CombineProviders.js +7 -7
  1202. package/dist/core/store/CombineProviders.js.map +1 -1
  1203. package/dist/core/store/Content/context.d.ts +1 -1
  1204. package/dist/core/store/Content/context.d.ts.map +1 -1
  1205. package/dist/core/store/Content/context.js.map +1 -1
  1206. package/dist/core/store/Datasets/context.d.ts +1 -1
  1207. package/dist/core/store/Datasets/context.d.ts.map +1 -1
  1208. package/dist/core/store/Datasets/context.js.map +1 -1
  1209. package/dist/core/store/Datasets/reducer.d.ts +1 -1
  1210. package/dist/core/store/Datasets/reducer.d.ts.map +1 -1
  1211. package/dist/core/store/Datasets/reducer.js.map +1 -1
  1212. package/dist/core/store/Files/context.d.ts +1 -1
  1213. package/dist/core/store/Files/context.d.ts.map +1 -1
  1214. package/dist/core/store/Files/context.js.map +1 -1
  1215. package/dist/core/store/Files/reducer.d.ts +3 -3
  1216. package/dist/core/store/Files/reducer.d.ts.map +1 -1
  1217. package/dist/core/store/Files/reducer.js.map +1 -1
  1218. package/dist/core/store/Map/context.d.ts +1 -1
  1219. package/dist/core/store/Map/context.d.ts.map +1 -1
  1220. package/dist/core/store/Map/context.js +1 -1
  1221. package/dist/core/store/Map/context.js.map +1 -1
  1222. package/dist/core/store/Map/reducer.d.ts +6 -5
  1223. package/dist/core/store/Map/reducer.d.ts.map +1 -1
  1224. package/dist/core/store/Map/reducer.js.map +1 -1
  1225. package/dist/core/store/MapSites/context.d.ts +1 -1
  1226. package/dist/core/store/MapSites/context.d.ts.map +1 -1
  1227. package/dist/core/store/MapSites/context.js.map +1 -1
  1228. package/dist/core/store/MapSites/reducer.d.ts +1 -1
  1229. package/dist/core/store/MapSites/reducer.d.ts.map +1 -1
  1230. package/dist/core/store/MapSites/reducer.js.map +1 -1
  1231. package/dist/core/store/Menus/context.d.ts +1 -1
  1232. package/dist/core/store/Menus/context.d.ts.map +1 -1
  1233. package/dist/core/store/Menus/context.js +2 -2
  1234. package/dist/core/store/Menus/context.js.map +1 -1
  1235. package/dist/core/store/Menus/reducer.d.ts +1 -1
  1236. package/dist/core/store/Menus/reducer.d.ts.map +1 -1
  1237. package/dist/core/store/Menus/reducer.js.map +1 -1
  1238. package/dist/core/store/Permissions/context.d.ts +1 -1
  1239. package/dist/core/store/Permissions/context.d.ts.map +1 -1
  1240. package/dist/core/store/Permissions/context.js +2 -2
  1241. package/dist/core/store/Permissions/context.js.map +1 -1
  1242. package/dist/core/store/PointCloud/context.d.ts +1 -1
  1243. package/dist/core/store/PointCloud/context.d.ts.map +1 -1
  1244. package/dist/core/store/PointCloud/context.js.map +1 -1
  1245. package/dist/core/store/PointCloud/reducer.d.ts +1 -1
  1246. package/dist/core/store/PointCloud/reducer.d.ts.map +1 -1
  1247. package/dist/core/store/PointCloud/reducer.js.map +1 -1
  1248. package/dist/core/store/Tools/context.d.ts +1 -1
  1249. package/dist/core/store/Tools/context.d.ts.map +1 -1
  1250. package/dist/core/store/Tools/context.js.map +1 -1
  1251. package/dist/core/store/Tools/reducer.d.ts +1 -1
  1252. package/dist/core/store/Tools/reducer.d.ts.map +1 -1
  1253. package/dist/core/store/Tools/reducer.js.map +1 -1
  1254. package/dist/core/styles/globals.css +17 -16
  1255. package/dist/core/styles/tailwindMerge.d.ts +1 -1
  1256. package/dist/core/styles/tailwindMerge.d.ts.map +1 -1
  1257. package/dist/core/styles/tailwindMerge.js.map +1 -1
  1258. package/dist/core/types/datasetTypes.d.ts +2 -2
  1259. package/dist/core/types/datasetTypes.d.ts.map +1 -1
  1260. package/dist/core/types/dbTypes.d.ts +1 -1
  1261. package/dist/core/types/dbTypes.d.ts.map +1 -1
  1262. package/dist/core/types/dbTypes.js.map +1 -1
  1263. package/dist/core/types/files.d.ts +2 -2
  1264. package/dist/core/types/files.d.ts.map +1 -1
  1265. package/dist/core/types/global.d.ts +3 -3
  1266. package/dist/core/types/global.d.ts.map +1 -1
  1267. package/dist/core/types/global.js.map +1 -1
  1268. package/dist/core/types/map.d.ts +2 -2
  1269. package/dist/core/types/map.d.ts.map +1 -1
  1270. package/dist/core/types/tools.d.ts +3 -3
  1271. package/dist/core/types/tools.d.ts.map +1 -1
  1272. package/dist/core/types/users.d.ts +2 -2
  1273. package/dist/core/types/users.d.ts.map +1 -1
  1274. package/dist/core/utils/getFileIcon.d.ts +1 -1
  1275. package/dist/core/utils/getFileIcon.d.ts.map +1 -1
  1276. package/dist/core/utils/getFileIcon.js.map +1 -1
  1277. package/dist/core/utils/memcache.js.map +1 -1
  1278. package/dist/core/utils/roles.d.ts.map +1 -1
  1279. package/dist/core/utils/roles.js.map +1 -1
  1280. package/dist/core/utils/timeUtils.js.map +1 -1
  1281. package/dist/core/utils/utils.d.ts +1 -1
  1282. package/dist/core/utils/utils.d.ts.map +1 -1
  1283. package/dist/core/utils/utils.js.map +1 -1
  1284. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.tsx"],"sourcesContent":["\"use client\";\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from \"react\";\r\nimport { Source, Layer, Popup } from \"react-map-gl/maplibre\";\r\nimport type { MapMouseEvent } from \"maplibre-gl\";\r\n\r\nimport { MapContext } from \"../../../../../../../../store/Map/context\";\r\nimport type { Building } from '../../../../../../../../types/dbTypes';\r\nimport { DatasetsContext } from '../../../../../../../../store';\r\nimport { MapLayerClickPriority } from \"../../../../../utils/MapEventManager/MapClickManager\";\r\nimport MapFeaturePopoverMenu from \"../../../../MapFeaturePopoverMenu\";\r\nimport { fitGeoJsonBounds } from \"../../../../../utils/fitGeojsonBounds\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { WmsTimeControl } from \"./WmsTimeControl\";\r\nimport { fetchWmsFrames, buildWmsTimeUrl, wmsLegendUrl } from \"../../../../../datasets/src/wmsTime\";\r\n\r\ninterface BuildingDataset {\r\n \"type\": \"buildings\";\r\n \"data\": Building[];\r\n \"name\": string;\r\n \"visible\"?: boolean;\r\n}\r\n\r\nconst isBuildingDataset = (dataset: any): dataset is BuildingDataset => {\r\n return dataset.type === \"buildings\" && \"data\" in dataset;\r\n};\r\n\r\nconst parseNumericValue = (value: unknown): number | null => {\r\n if (typeof value === 'number' && Number.isFinite(value)) return value;\r\n if (typeof value !== 'string') return null;\r\n const cleaned = value.replace(/[$%\\s]/g, '').replace(/,/g, '');\r\n const parsed = Number.parseFloat(cleaned);\r\n return Number.isFinite(parsed) ? parsed : null;\r\n};\r\n\r\nconst computeMinMax = (\r\n features: import('geojson').Feature[],\r\n fieldName: string,\r\n): { min: number; max: number } | null => {\r\n let min = Number.POSITIVE_INFINITY;\r\n let max = Number.NEGATIVE_INFINITY;\r\n let found = false;\r\n for (const feature of features) {\r\n const properties = (feature.properties || {}) as Record<string, unknown>;\r\n const value = parseNumericValue(properties[fieldName]);\r\n if (value === null) continue;\r\n found = true;\r\n if (value < min) min = value;\r\n if (value > max) max = value;\r\n }\r\n if (!found) return null;\r\n return { min, max: max === min ? min + 1 : max };\r\n};\r\n\r\n// ─── Per-dataset GeoJSON layer ────────────────────────────────────────\r\n// Each dataset manages its own fetch lifecycle. This means:\r\n// • datasets render PROGRESSIVELY as each one loads (no blocking)\r\n// • unmounting a dataset cancels only ITS fetch\r\n// • re-renders of one dataset never cancel fetches for another\r\n\r\ninterface GeoJsonDatasetLayerProps {\r\n dataset: any;\r\n index: number;\r\n onLayerReady: (datasetName: string, layerIds: string[]) => void;\r\n onLayerRemoved: (datasetName: string) => void;\r\n}\r\n\r\nconst GeoJsonDatasetLayer = React.memo(({ dataset, index, onLayerReady, onLayerRemoved }: GeoJsonDatasetLayerProps) => {\r\n const { state: mapState } = React.useContext(MapContext);\r\n const { map } = mapState.map;\r\n\r\n const [featureCollection, setFeatureCollection] = React.useState<import('geojson').FeatureCollection | null>(null);\r\n const fitBoundsAppliedRef = React.useRef(false);\r\n\r\n // Fetch features once when the component mounts (or dataset identity changes)\r\n React.useEffect(() => {\r\n if (!map) return;\r\n let cancelled = false;\r\n\r\n const load = async () => {\r\n try {\r\n const fetched = await dataset.getFeatures();\r\n if (cancelled) return;\r\n\r\n const fc: import('geojson').FeatureCollection =\r\n fetched?.type === 'FeatureCollection'\r\n ? fetched\r\n : { type: 'FeatureCollection', features: [] };\r\n\r\n setFeatureCollection(fc);\r\n } catch (error) {\r\n console.error(`OpenDataLayers: Error fetching features for \"${dataset.name}\":`, error);\r\n }\r\n };\r\n\r\n load();\r\n return () => { cancelled = true; };\r\n }, [map, dataset.name]);\r\n\r\n // Build the layer JSX from the loaded feature collection\r\n const layerContent = React.useMemo(() => {\r\n if (!featureCollection || featureCollection.features.length === 0) return null;\r\n\r\n const geometryType = featureCollection.features[0]?.geometry?.type;\r\n if (!geometryType) return null;\r\n\r\n // ── colour resolution ──\r\n let layerColor: any = dataset.layerColor?.color || '#0d9488';\r\n let numericFieldName: string | undefined;\r\n\r\n if (dataset.selectedFieldName) {\r\n const selectedField = dataset.fields?.find((field: any) => field.name === dataset.selectedFieldName);\r\n if (selectedField?.layerColor) {\r\n if (selectedField.colorType === 'single') {\r\n layerColor = selectedField.layerColor.color;\r\n }\r\n if (selectedField.colorType === 'minMax') {\r\n try {\r\n const fieldName = dataset.selectedFieldName;\r\n numericFieldName = `__numeric_${fieldName}`;\r\n const range = computeMinMax(featureCollection.features, fieldName);\r\n if (range) {\r\n const minColor = selectedField.layerColor.minColor || dataset.layerColor?.minColor || dataset.layerColor?.color || '#0d9488';\r\n const maxColor = selectedField.layerColor.maxColor || dataset.layerColor?.maxColor || dataset.layerColor?.color || '#0d9488';\r\n layerColor = [\r\n 'interpolate', ['linear'],\r\n ['to-number', ['get', numericFieldName], range.min],\r\n range.min, minColor,\r\n range.max, maxColor,\r\n ];\r\n }\r\n } catch (error) {\r\n console.warn('Failed to build interpolate for field', dataset.selectedFieldName, error);\r\n }\r\n }\r\n if (selectedField.colorType === 'boolean') {\r\n const minColor = selectedField.layerColor.minColor || dataset.layerColor?.minColor || dataset.layerColor?.color || '#0d9488';\r\n const maxColor = selectedField.layerColor.maxColor || dataset.layerColor?.maxColor || dataset.layerColor?.color || '#0d9488';\r\n const fieldName = dataset.selectedFieldName;\r\n layerColor = [\r\n 'case',\r\n ['any',\r\n ['==', ['get', fieldName], true],\r\n ['==', ['get', fieldName], 1],\r\n ['==', ['downcase', ['to-string', ['get', fieldName]]], 'true'],\r\n ['==', ['downcase', ['to-string', ['get', fieldName]]], 'yes'],\r\n ],\r\n maxColor,\r\n minColor,\r\n ];\r\n }\r\n }\r\n }\r\n\r\n // ── inject datasetName + numeric shadow field into each feature ──\r\n const enrichedFC: import('geojson').FeatureCollection = {\r\n ...featureCollection,\r\n features: featureCollection.features.map((feature) => {\r\n let numericVal: number | undefined;\r\n if (numericFieldName && dataset.selectedFieldName) {\r\n const v = parseNumericValue((feature.properties || {})[dataset.selectedFieldName]);\r\n if (v !== null) numericVal = v;\r\n }\r\n return {\r\n ...feature,\r\n properties: {\r\n ...feature.properties,\r\n datasetName: dataset.name,\r\n layer_color: layerColor,\r\n ...(numericFieldName && numericVal !== undefined ? { [numericFieldName]: numericVal } : {}),\r\n },\r\n };\r\n }),\r\n };\r\n\r\n // ── build layer props per geometry type ──\r\n const registeredIds: string[] = [];\r\n\r\n if (geometryType === 'Point' || geometryType === 'MultiPoint') {\r\n const paint = {\r\n 'circle-radius': 6,\r\n 'circle-color': layerColor,\r\n 'circle-opacity': 0.8,\r\n 'circle-stroke-width': 2,\r\n 'circle-stroke-color': '#ffffff',\r\n };\r\n registeredIds.push(`${dataset.name}-unclustered-point`);\r\n\r\n return {\r\n registeredIds,\r\n jsx: (\r\n <Source\r\n id={`${dataset.name}-source`}\r\n key={`${index}-${dataset.name}-source`}\r\n type=\"geojson\"\r\n data={enrichedFC}\r\n cluster={true}\r\n clusterMaxZoom={11}\r\n clusterRadius={50}\r\n >\r\n <Layer\r\n id={`${dataset.name}-clusters`}\r\n filter={['has', 'point_count']}\r\n type=\"circle\"\r\n paint={{\r\n 'circle-color': dataset.layerColor?.color || '#0d9488',\r\n 'circle-radius': ['step', ['get', 'point_count'], 20, 100, 30, 750, 40],\r\n 'circle-opacity': 0.9,\r\n }}\r\n />\r\n <Layer\r\n id={`${dataset.name}-cluster-count`}\r\n filter={['has', 'point_count']}\r\n type=\"symbol\"\r\n layout={{\r\n 'text-field': '{point_count_abbreviated}',\r\n 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Bold'],\r\n 'text-size': 12,\r\n }}\r\n paint={{ 'text-color': '#fff' }}\r\n />\r\n <Layer\r\n id={`${dataset.name}-unclustered-point`}\r\n filter={['!', ['has', 'point_count']]}\r\n type=\"circle\"\r\n paint={paint}\r\n />\r\n </Source>\r\n ),\r\n };\r\n }\r\n\r\n if (geometryType === 'LineString' || geometryType === 'MultiLineString') {\r\n const mainId = `${dataset.name}-line`;\r\n registeredIds.push(mainId);\r\n return {\r\n registeredIds,\r\n jsx: (\r\n <Source\r\n id={`${dataset.name}-source`}\r\n key={`${index}-${dataset.name}-source`}\r\n type=\"geojson\"\r\n data={enrichedFC}\r\n >\r\n <Layer\r\n id={mainId}\r\n type=\"line\"\r\n paint={{ 'line-color': layerColor, 'line-width': 3, 'line-opacity': 1 }}\r\n />\r\n </Source>\r\n ),\r\n };\r\n }\r\n\r\n if (geometryType === 'Polygon' || geometryType === 'MultiPolygon') {\r\n const fillId = `${dataset.name}-fill`;\r\n const outlineId = `${dataset.name}-outline`;\r\n registeredIds.push(fillId, outlineId);\r\n return {\r\n registeredIds,\r\n jsx: (\r\n <Source\r\n id={`${dataset.name}-source`}\r\n key={`${index}-${dataset.name}-source`}\r\n type=\"geojson\"\r\n data={enrichedFC}\r\n >\r\n <Layer\r\n id={fillId}\r\n type=\"fill\"\r\n paint={{ 'fill-color': layerColor, 'fill-opacity': 0.5 }}\r\n />\r\n <Layer\r\n id={outlineId}\r\n type=\"line\"\r\n paint={{ 'line-color': '#ffffff', 'line-width': 2 }}\r\n />\r\n </Source>\r\n ),\r\n };\r\n }\r\n\r\n return null;\r\n }, [featureCollection, dataset.name, dataset.layerColor, dataset.selectedFieldName, dataset.fields, index]);\r\n\r\n // Register / unregister interactive layer IDs with the parent\r\n React.useEffect(() => {\r\n if (layerContent?.registeredIds) {\r\n onLayerReady(dataset.name, layerContent.registeredIds);\r\n }\r\n return () => { onLayerRemoved(dataset.name); };\r\n }, [layerContent?.registeredIds, dataset.name, onLayerReady, onLayerRemoved]);\r\n\r\n return layerContent?.jsx ?? null;\r\n});\r\nGeoJsonDatasetLayer.displayName = 'GeoJsonDatasetLayer';\r\n\r\n\r\n// ─── Per-dataset MVT layer ────────────────────────────────────────────\r\n\r\ninterface MVTDatasetLayerProps {\r\n dataset: any;\r\n index: number;\r\n onLayerReady: (datasetName: string, layerIds: string[]) => void;\r\n onLayerRemoved: (datasetName: string) => void;\r\n}\r\n\r\nconst MVTDatasetLayer = React.memo(({ dataset, index, onLayerReady, onLayerRemoved }: MVTDatasetLayerProps) => {\r\n const tileUrl = dataset.url || dataset.information;\r\n const sourceLayer = (dataset as any)?.serviceInfo?.sourceLayer || dataset.id || dataset.name.toLowerCase().replace(/\\s+/g, '_');\r\n const layerColor = dataset.layerColor?.color || '#0d9488';\r\n const isPointLayer = dataset.layerType === 'circle' || /point/i.test(sourceLayer);\r\n const isMartinBuilding = /buildings?/i.test((dataset as any)?.serviceInfo?.sourceLayer || dataset.id || dataset.name);\r\n // Only extrude actual building layers. A polygon dataset resolves to layerType\r\n // 'fill', so keying extrusion off 'fill' alone routed every polygon (e.g. published\r\n // open-data boundaries) into the zero-height, minzoom-15.5 extrusion branch — leaving\r\n // only the outline visible. Non-building polygons fall through to the flat-fill branch.\r\n const extraIsBuilding = isMartinBuilding && !isPointLayer;\r\n\r\n const mainLayerId = isPointLayer\r\n ? `${dataset.name}-points`\r\n : extraIsBuilding\r\n ? `${dataset.name}-extrusion`\r\n : `${dataset.name}-fill`;\r\n const outlineLayerId = `${dataset.name}-outline`;\r\n\r\n // Register interactive layer IDs\r\n React.useEffect(() => {\r\n const ids = isPointLayer ? [mainLayerId] : [mainLayerId, outlineLayerId];\r\n onLayerReady(dataset.name, ids);\r\n return () => { onLayerRemoved(dataset.name); };\r\n }, [dataset.name, mainLayerId, outlineLayerId, isPointLayer, onLayerReady, onLayerRemoved]);\r\n\r\n if (!tileUrl) {\r\n console.error(`❌ OpenDataLayers: No tile URL found for MVT dataset \"${dataset.name}\"`);\r\n return null;\r\n }\r\n\r\n if (extraIsBuilding) {\r\n return (\r\n <Source id={`${dataset.name}-source`} key={`${index}-${dataset.name}-source`} type=\"vector\" tiles={[tileUrl]}>\r\n <Layer\r\n id={mainLayerId} type=\"fill-extrusion\" source-layer={sourceLayer}\r\n paint={{\r\n 'fill-extrusion-color': layerColor,\r\n 'fill-extrusion-height': ['coalesce', ['to-number', ['get', 'heightmax']], 0],\r\n 'fill-extrusion-opacity': 0.8,\r\n }}\r\n minzoom={15.5}\r\n />\r\n <Layer id={outlineLayerId} type=\"line\" source-layer={sourceLayer} paint={{ 'line-color': layerColor, 'line-width': 1, 'line-opacity': 0.8 }} />\r\n </Source>\r\n );\r\n }\r\n\r\n if (isPointLayer) {\r\n return (\r\n <Source id={`${dataset.name}-source`} key={`${index}-${dataset.name}-source`} type=\"vector\" tiles={[tileUrl]}>\r\n <Layer\r\n id={mainLayerId} type=\"circle\" source-layer={sourceLayer}\r\n paint={{ 'circle-radius': 6, 'circle-color': layerColor, 'circle-opacity': 0.8, 'circle-stroke-width': 2, 'circle-stroke-color': '#ffffff' }}\r\n />\r\n </Source>\r\n );\r\n }\r\n\r\n return (\r\n <Source id={`${dataset.name}-source`} key={`${index}-${dataset.name}-source`} type=\"vector\" tiles={[tileUrl]}>\r\n <Layer id={mainLayerId} type=\"fill\" source-layer={sourceLayer} paint={{ 'fill-color': layerColor, 'fill-opacity': 0.6 }} />\r\n {/* White outline (matches the original GeoJSON polygon style) so subdivision\r\n boundaries stay legible — a same-colour outline read as one solid blob. */}\r\n <Layer id={outlineLayerId} type=\"line\" source-layer={sourceLayer} paint={{ 'line-color': '#ffffff', 'line-width': 2 }} />\r\n </Source>\r\n );\r\n});\r\nMVTDatasetLayer.displayName = 'MVTDatasetLayer';\r\n\r\n\r\n// ─── Per-dataset WMS raster layer ─────────────────────────────────────\r\n// Live/federated WMS overlays (e.g. the GeoMet weather radar). The dataset's\r\n// `url` is a MapLibre raster tile template (GetMap with a literal\r\n// {bbox-epsg-3857}); MapLibre fetches tiles directly, so there's nothing to\r\n// parse and no features to query (raster → not interactive).\r\n\r\ninterface WMSDatasetLayerProps {\r\n dataset: any;\r\n index: number;\r\n onLayerReady: (datasetName: string, layerIds: string[]) => void;\r\n onLayerRemoved: (datasetName: string) => void;\r\n}\r\n\r\nconst WMSDatasetLayer = React.memo(({ dataset, index, onLayerReady, onLayerRemoved }: WMSDatasetLayerProps) => {\r\n const { state: mapState } = React.useContext(MapContext);\r\n const { map } = mapState.map;\r\n\r\n const tileUrl = dataset.url || dataset.information;\r\n const layerId = `${dataset.name}-wms`;\r\n const sourceId = `${dataset.name}-source`;\r\n\r\n const timeEnabled = !!dataset.timeEnabled && !!dataset.wms;\r\n const [frames, setFrames] = React.useState<string[]>([]);\r\n const [activeTime, setActiveTime] = React.useState<string | null>(null);\r\n // The bottom-left overlay stack's portal slot (MapViewer renders it). Resolved\r\n // in an effect so the node exists (post-commit) before we portal into it.\r\n const [controlSlot, setControlSlot] = React.useState<HTMLElement | null>(null);\r\n React.useEffect(() => {\r\n if (timeEnabled) setControlSlot(document.getElementById('wms-time-slot'));\r\n }, [timeEnabled]);\r\n\r\n // Register with no interactive layer ids — a raster has no queryable features.\r\n React.useEffect(() => {\r\n onLayerReady(dataset.name, []);\r\n return () => { onLayerRemoved(dataset.name); };\r\n }, [dataset.name, onLayerReady, onLayerRemoved]);\r\n\r\n // Load the WMS time extent once (time-enabled datasets only).\r\n React.useEffect(() => {\r\n if (!timeEnabled || !dataset.wms) return;\r\n let cancelled = false;\r\n fetchWmsFrames(dataset.wms.baseUrl, dataset.wms.layers)\r\n .then(f => { if (!cancelled) setFrames(f); })\r\n .catch(() => { /* fetchWmsFrames already swallows; keep static */ });\r\n return () => { cancelled = true; };\r\n }, [timeEnabled, dataset.wms?.baseUrl, dataset.wms?.layers]);\r\n\r\n // Imperatively swap the raster source's tiles per frame. The <Source tiles>\r\n // prop below never changes after mount, so there's no react-map-gl tug-of-war\r\n // and no flicker — this setTiles call is the single source of truth for TIME.\r\n React.useEffect(() => {\r\n if (!map || !activeTime || !dataset.wms) return;\r\n const src = map.getSource(sourceId) as { setTiles?: (t: string[]) => void } | undefined;\r\n if (src?.setTiles) {\r\n src.setTiles([buildWmsTimeUrl(dataset.wms.baseUrl, dataset.wms.layers, activeTime)]);\r\n }\r\n }, [map, activeTime, sourceId, dataset.wms?.baseUrl, dataset.wms?.layers]);\r\n\r\n if (!tileUrl) {\r\n console.error(`❌ OpenDataLayers: No tile URL found for WMS dataset \"${dataset.name}\"`);\r\n return null;\r\n }\r\n\r\n const showControl = timeEnabled && frames.length > 1 && map && controlSlot;\r\n\r\n return (\r\n <>\r\n <Source id={sourceId} key={`${index}-${dataset.name}-source`} type=\"raster\" tiles={[tileUrl]} tileSize={256}>\r\n <Layer id={layerId} type=\"raster\" paint={{ 'raster-opacity': 0.85 }} />\r\n </Source>\r\n {showControl && createPortal(\r\n <WmsTimeControl\r\n frames={frames}\r\n onTimeChange={setActiveTime}\r\n label={dataset.name}\r\n legendUrl={dataset.wms ? wmsLegendUrl(dataset.wms.baseUrl, dataset.wms.layers) : undefined}\r\n />,\r\n controlSlot,\r\n )}\r\n </>\r\n );\r\n});\r\nWMSDatasetLayer.displayName = 'WMSDatasetLayer';\r\n\r\n\r\n// ─── Main orchestrator ────────────────────────────────────────────────\r\n\r\nexport const OpenDataLayers = () => {\r\n const { \"state\": mapState, \"dispatch\": mapDispatch } = React.useContext(MapContext);\r\n const { map, mapClickManager } = mapState.map;\r\n\r\n const { state: datasetState } = React.useContext(DatasetsContext);\r\n const { addedDatasets } = datasetState.datasets;\r\n\r\n const [clickedFeature, setClickedFeature] = React.useState<any>(null);\r\n const [addedFeaturesPopup, setAddedFeaturesPopup] = React.useState<Array<{\r\n id: string | number;\r\n popup: React.ReactElement;\r\n }>>([]);\r\n\r\n // Track interactive layer IDs per dataset for click handling\r\n const layerIdsMapRef = React.useRef<Record<string, string[]>>({});\r\n const [allLayerNames, setAllLayerNames] = React.useState<string[]>([]);\r\n\r\n const handleLayerReady = React.useCallback((datasetName: string, layerIds: string[]) => {\r\n layerIdsMapRef.current[datasetName] = layerIds;\r\n setAllLayerNames(Object.values(layerIdsMapRef.current).flat());\r\n }, []);\r\n\r\n const handleLayerRemoved = React.useCallback((datasetName: string) => {\r\n delete layerIdsMapRef.current[datasetName];\r\n setAllLayerNames(Object.values(layerIdsMapRef.current).flat());\r\n }, []);\r\n\r\n // ── Click handling ──\r\n React.useEffect(() => {\r\n if (!map || !mapClickManager || allLayerNames.length === 0) return;\r\n\r\n const handleMapClick = (e: MapMouseEvent) => {\r\n const clicked = map.queryRenderedFeatures(e.point, { layers: allLayerNames });\r\n const localClickedFeature = clicked?.[0];\r\n\r\n if (!localClickedFeature) {\r\n setClickedFeature(null);\r\n return;\r\n }\r\n\r\n const lng = e.lngLat.lng;\r\n const lat = e.lngLat.lat;\r\n const coordinates = [lng, lat];\r\n const properties = localClickedFeature.properties || {};\r\n const _name = Object.entries(properties).find(([key]) => key.toLowerCase().includes('name'))?.[1] || undefined;\r\n\r\n let datasetNameFromFeature = properties.datasetName;\r\n if (!datasetNameFromFeature && localClickedFeature.layer) {\r\n const layerId = localClickedFeature.layer.id;\r\n const suffixes = ['-unclustered-point', '-clusters', '-cluster-count', '-outline', '-fill', '-line', '-circle', '-extrusion', '-points'];\r\n let extractedName = layerId;\r\n for (const suffix of suffixes) {\r\n if (layerId.endsWith(suffix)) {\r\n extractedName = layerId.slice(0, -suffix.length);\r\n break;\r\n }\r\n }\r\n if (extractedName === layerId && layerId.includes('-')) {\r\n extractedName = layerId.slice(0, layerId.lastIndexOf('-'));\r\n }\r\n datasetNameFromFeature = extractedName;\r\n }\r\n\r\n const featureId = properties.globalid || properties.id || `temp-${Date.now()}`;\r\n localClickedFeature.id = featureId;\r\n localClickedFeature.properties = { ...properties, coordinates, _name, datasetName: datasetNameFromFeature };\r\n setClickedFeature(localClickedFeature);\r\n };\r\n\r\n for (const layerId of allLayerNames) {\r\n mapClickManager.register(layerId, MapLayerClickPriority.OpenDataLayerClickPriority, handleMapClick);\r\n }\r\n\r\n return () => {\r\n for (const layerId of allLayerNames) {\r\n mapClickManager.unregister(layerId);\r\n }\r\n };\r\n }, [map, mapClickManager, allLayerNames]);\r\n\r\n // ── Hover cursor handling ──\r\n React.useEffect(() => {\r\n if (!map) return;\r\n\r\n const canvas = map.getCanvas();\r\n\r\n const setDefaultCursor = () => {\r\n canvas.style.cursor = 'default';\r\n };\r\n\r\n if (allLayerNames.length === 0) {\r\n setDefaultCursor();\r\n return;\r\n }\r\n\r\n const handleMouseMove = (e: MapMouseEvent) => {\r\n const hoveredFeatures = map.queryRenderedFeatures(e.point, { layers: allLayerNames });\r\n canvas.style.cursor = hoveredFeatures.length > 0 ? 'pointer' : 'default';\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setDefaultCursor();\r\n };\r\n\r\n map.on('mousemove', handleMouseMove);\r\n map.on('mouseleave', handleMouseLeave);\r\n\r\n return () => {\r\n map.off('mousemove', handleMouseMove);\r\n map.off('mouseleave', handleMouseLeave);\r\n setDefaultCursor();\r\n };\r\n }, [map, allLayerNames]);\r\n\r\n // ── Popup ──\r\n React.useEffect(() => {\r\n if (!clickedFeature || !clickedFeature.properties?.coordinates) {\r\n setAddedFeaturesPopup([]);\r\n return;\r\n }\r\n const popup = (\r\n <Popup\r\n anchor=\"bottom\"\r\n closeButton={true}\r\n closeOnClick={false}\r\n closeOnMove={false}\r\n focusAfterOpen={true}\r\n key={clickedFeature.id}\r\n latitude={clickedFeature.properties.coordinates[1]}\r\n longitude={clickedFeature.properties.coordinates[0]}\r\n >\r\n <MapFeaturePopoverMenu\r\n feature={clickedFeature}\r\n onCloseAction={() => clearClickedFeature()}\r\n />\r\n </Popup>\r\n );\r\n setAddedFeaturesPopup([{ id: clickedFeature.id as string | number, popup }]);\r\n }, [clickedFeature]);\r\n\r\n function clearClickedFeature() {\r\n mapDispatch({ type: \"SET_CLICKED_FEATURE\", payload: { clickedFeature: null } });\r\n setClickedFeature(null);\r\n }\r\n\r\n // ── Sort datasets by display order ──\r\n const sortedDatasets = React.useMemo(() => {\r\n if (!addedDatasets?.length) return [];\r\n return [...addedDatasets].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\r\n }, [addedDatasets]);\r\n\r\n return (\r\n <>\r\n {sortedDatasets.map((dataset, index) => {\r\n if (dataset.visible === false) return null;\r\n if (isBuildingDataset(dataset)) return null;\r\n\r\n if (dataset.type === 'WMS' || dataset.datasetType === 'WMS') {\r\n return (\r\n <WMSDatasetLayer\r\n key={dataset.name}\r\n dataset={dataset}\r\n index={index}\r\n onLayerReady={handleLayerReady}\r\n onLayerRemoved={handleLayerRemoved}\r\n />\r\n );\r\n }\r\n\r\n if (dataset.type === 'MVT' || dataset.datasetType === 'MVT') {\r\n return (\r\n <MVTDatasetLayer\r\n key={dataset.name}\r\n dataset={dataset}\r\n index={index}\r\n onLayerReady={handleLayerReady}\r\n onLayerRemoved={handleLayerRemoved}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <GeoJsonDatasetLayer\r\n key={dataset.name}\r\n dataset={dataset}\r\n index={index}\r\n onLayerReady={handleLayerReady}\r\n onLayerRemoved={handleLayerRemoved}\r\n />\r\n );\r\n })}\r\n\r\n {addedFeaturesPopup.map((popup) => (\r\n <React.Fragment key={popup.id}>{popup.popup}</React.Fragment>\r\n ))}\r\n </>\r\n );\r\n};\r\n"],"mappings":"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","names":["_a"]}
1
+ {"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.tsx"],"sourcesContent":["\"use client\";\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { Source, Layer, Popup } from \"react-map-gl/maplibre\";\r\n\r\n\r\nimport { DatasetsContext } from '../../../../../../../../store';\r\nimport { MapContext } from \"../../../../../../../../store/Map/context\";\r\nimport { fetchWmsFrames, buildWmsTimeUrl, wmsLegendUrl } from \"../../../../../datasets/src/wmsTime\";\r\nimport { fitGeoJsonBounds } from \"../../../../../utils/fitGeojsonBounds\";\r\nimport { MapLayerClickPriority } from \"../../../../../utils/MapEventManager/MapClickManager\";\r\nimport MapFeaturePopoverMenu from \"../../../../MapFeaturePopoverMenu\";\r\n\r\nimport { WmsTimeControl } from \"./WmsTimeControl\";\r\n\r\nimport type { Building } from '../../../../../../../../types/dbTypes';\r\nimport type { MapMouseEvent } from \"maplibre-gl\";\r\n\r\ninterface BuildingDataset {\r\n \"type\": \"buildings\";\r\n \"data\": Building[];\r\n \"name\": string;\r\n \"visible\"?: boolean;\r\n}\r\n\r\nconst isBuildingDataset = (dataset: any): dataset is BuildingDataset => {\r\n return dataset.type === \"buildings\" && \"data\" in dataset;\r\n};\r\n\r\nconst parseNumericValue = (value: unknown): number | null => {\r\n if (typeof value === 'number' && Number.isFinite(value)) return value;\r\n if (typeof value !== 'string') return null;\r\n const cleaned = value.replace(/[$%\\s]/g, '').replace(/,/g, '');\r\n const parsed = Number.parseFloat(cleaned);\r\n return Number.isFinite(parsed) ? parsed : null;\r\n};\r\n\r\nconst computeMinMax = (\r\n features: import('geojson').Feature[],\r\n fieldName: string,\r\n): { min: number; max: number } | null => {\r\n let min = Number.POSITIVE_INFINITY;\r\n let max = Number.NEGATIVE_INFINITY;\r\n let found = false;\r\n for (const feature of features) {\r\n const properties = (feature.properties || {}) as Record<string, unknown>;\r\n const value = parseNumericValue(properties[fieldName]);\r\n if (value === null) continue;\r\n found = true;\r\n if (value < min) min = value;\r\n if (value > max) max = value;\r\n }\r\n if (!found) return null;\r\n return { min, max: max === min ? min + 1 : max };\r\n};\r\n\r\n// ─── Per-dataset GeoJSON layer ────────────────────────────────────────\r\n// Each dataset manages its own fetch lifecycle. This means:\r\n// • datasets render PROGRESSIVELY as each one loads (no blocking)\r\n// • unmounting a dataset cancels only ITS fetch\r\n// • re-renders of one dataset never cancel fetches for another\r\n\r\ninterface GeoJsonDatasetLayerProps {\r\n dataset: any;\r\n index: number;\r\n onLayerReady: (datasetName: string, layerIds: string[]) => void;\r\n onLayerRemoved: (datasetName: string) => void;\r\n}\r\n\r\nconst GeoJsonDatasetLayer = React.memo(({ dataset, index, onLayerReady, onLayerRemoved }: GeoJsonDatasetLayerProps) => {\r\n const { state: mapState } = React.useContext(MapContext);\r\n const { map } = mapState.map;\r\n\r\n const [featureCollection, setFeatureCollection] = React.useState<import('geojson').FeatureCollection | null>(null);\r\n const fitBoundsAppliedRef = React.useRef(false);\r\n\r\n // Fetch features once when the component mounts (or dataset identity changes)\r\n React.useEffect(() => {\r\n if (!map) return;\r\n let cancelled = false;\r\n\r\n const load = async () => {\r\n try {\r\n const fetched = await dataset.getFeatures();\r\n if (cancelled) return;\r\n\r\n const fc: import('geojson').FeatureCollection =\r\n fetched?.type === 'FeatureCollection'\r\n ? fetched\r\n : { type: 'FeatureCollection', features: [] };\r\n\r\n setFeatureCollection(fc);\r\n } catch (error) {\r\n console.error(`OpenDataLayers: Error fetching features for \"${dataset.name}\":`, error);\r\n }\r\n };\r\n\r\n load();\r\n return () => { cancelled = true; };\r\n }, [map, dataset.name]);\r\n\r\n // Build the layer JSX from the loaded feature collection\r\n const layerContent = React.useMemo(() => {\r\n if (!featureCollection || featureCollection.features.length === 0) return null;\r\n\r\n const geometryType = featureCollection.features[0]?.geometry?.type;\r\n if (!geometryType) return null;\r\n\r\n // ── colour resolution ──\r\n let layerColor: any = dataset.layerColor?.color || '#0d9488';\r\n let numericFieldName: string | undefined;\r\n\r\n if (dataset.selectedFieldName) {\r\n const selectedField = dataset.fields?.find((field: any) => field.name === dataset.selectedFieldName);\r\n if (selectedField?.layerColor) {\r\n if (selectedField.colorType === 'single') {\r\n layerColor = selectedField.layerColor.color;\r\n }\r\n if (selectedField.colorType === 'minMax') {\r\n try {\r\n const fieldName = dataset.selectedFieldName;\r\n numericFieldName = `__numeric_${fieldName}`;\r\n const range = computeMinMax(featureCollection.features, fieldName);\r\n if (range) {\r\n const minColor = selectedField.layerColor.minColor || dataset.layerColor?.minColor || dataset.layerColor?.color || '#0d9488';\r\n const maxColor = selectedField.layerColor.maxColor || dataset.layerColor?.maxColor || dataset.layerColor?.color || '#0d9488';\r\n layerColor = [\r\n 'interpolate', ['linear'],\r\n ['to-number', ['get', numericFieldName], range.min],\r\n range.min, minColor,\r\n range.max, maxColor,\r\n ];\r\n }\r\n } catch (error) {\r\n console.warn('Failed to build interpolate for field', dataset.selectedFieldName, error);\r\n }\r\n }\r\n if (selectedField.colorType === 'boolean') {\r\n const minColor = selectedField.layerColor.minColor || dataset.layerColor?.minColor || dataset.layerColor?.color || '#0d9488';\r\n const maxColor = selectedField.layerColor.maxColor || dataset.layerColor?.maxColor || dataset.layerColor?.color || '#0d9488';\r\n const fieldName = dataset.selectedFieldName;\r\n layerColor = [\r\n 'case',\r\n ['any',\r\n ['==', ['get', fieldName], true],\r\n ['==', ['get', fieldName], 1],\r\n ['==', ['downcase', ['to-string', ['get', fieldName]]], 'true'],\r\n ['==', ['downcase', ['to-string', ['get', fieldName]]], 'yes'],\r\n ],\r\n maxColor,\r\n minColor,\r\n ];\r\n }\r\n }\r\n }\r\n\r\n // ── inject datasetName + numeric shadow field into each feature ──\r\n const enrichedFC: import('geojson').FeatureCollection = {\r\n ...featureCollection,\r\n features: featureCollection.features.map((feature) => {\r\n let numericVal: number | undefined;\r\n if (numericFieldName && dataset.selectedFieldName) {\r\n const v = parseNumericValue((feature.properties || {})[dataset.selectedFieldName]);\r\n if (v !== null) numericVal = v;\r\n }\r\n return {\r\n ...feature,\r\n properties: {\r\n ...feature.properties,\r\n datasetName: dataset.name,\r\n layer_color: layerColor,\r\n ...(numericFieldName && numericVal !== undefined ? { [numericFieldName]: numericVal } : {}),\r\n },\r\n };\r\n }),\r\n };\r\n\r\n // ── build layer props per geometry type ──\r\n const registeredIds: string[] = [];\r\n\r\n if (geometryType === 'Point' || geometryType === 'MultiPoint') {\r\n const paint = {\r\n 'circle-radius': 6,\r\n 'circle-color': layerColor,\r\n 'circle-opacity': 0.8,\r\n 'circle-stroke-width': 2,\r\n 'circle-stroke-color': '#ffffff',\r\n };\r\n registeredIds.push(`${dataset.name}-unclustered-point`);\r\n\r\n return {\r\n registeredIds,\r\n jsx: (\r\n <Source\r\n id={`${dataset.name}-source`}\r\n key={`${index}-${dataset.name}-source`}\r\n type=\"geojson\"\r\n data={enrichedFC}\r\n cluster={true}\r\n clusterMaxZoom={11}\r\n clusterRadius={50}\r\n >\r\n <Layer\r\n id={`${dataset.name}-clusters`}\r\n filter={['has', 'point_count']}\r\n type=\"circle\"\r\n paint={{\r\n 'circle-color': dataset.layerColor?.color || '#0d9488',\r\n 'circle-radius': ['step', ['get', 'point_count'], 20, 100, 30, 750, 40],\r\n 'circle-opacity': 0.9,\r\n }}\r\n />\r\n <Layer\r\n id={`${dataset.name}-cluster-count`}\r\n filter={['has', 'point_count']}\r\n type=\"symbol\"\r\n layout={{\r\n 'text-field': '{point_count_abbreviated}',\r\n 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Bold'],\r\n 'text-size': 12,\r\n }}\r\n paint={{ 'text-color': '#fff' }}\r\n />\r\n <Layer\r\n id={`${dataset.name}-unclustered-point`}\r\n filter={['!', ['has', 'point_count']]}\r\n type=\"circle\"\r\n paint={paint}\r\n />\r\n </Source>\r\n ),\r\n };\r\n }\r\n\r\n if (geometryType === 'LineString' || geometryType === 'MultiLineString') {\r\n const mainId = `${dataset.name}-line`;\r\n registeredIds.push(mainId);\r\n return {\r\n registeredIds,\r\n jsx: (\r\n <Source\r\n id={`${dataset.name}-source`}\r\n key={`${index}-${dataset.name}-source`}\r\n type=\"geojson\"\r\n data={enrichedFC}\r\n >\r\n <Layer\r\n id={mainId}\r\n type=\"line\"\r\n paint={{ 'line-color': layerColor, 'line-width': 3, 'line-opacity': 1 }}\r\n />\r\n </Source>\r\n ),\r\n };\r\n }\r\n\r\n if (geometryType === 'Polygon' || geometryType === 'MultiPolygon') {\r\n const fillId = `${dataset.name}-fill`;\r\n const outlineId = `${dataset.name}-outline`;\r\n registeredIds.push(fillId, outlineId);\r\n return {\r\n registeredIds,\r\n jsx: (\r\n <Source\r\n id={`${dataset.name}-source`}\r\n key={`${index}-${dataset.name}-source`}\r\n type=\"geojson\"\r\n data={enrichedFC}\r\n >\r\n <Layer\r\n id={fillId}\r\n type=\"fill\"\r\n paint={{ 'fill-color': layerColor, 'fill-opacity': 0.5 }}\r\n />\r\n <Layer\r\n id={outlineId}\r\n type=\"line\"\r\n paint={{ 'line-color': '#ffffff', 'line-width': 2 }}\r\n />\r\n </Source>\r\n ),\r\n };\r\n }\r\n\r\n return null;\r\n }, [featureCollection, dataset.name, dataset.layerColor, dataset.selectedFieldName, dataset.fields, index]);\r\n\r\n // Register / unregister interactive layer IDs with the parent\r\n React.useEffect(() => {\r\n if (layerContent?.registeredIds) {\r\n onLayerReady(dataset.name, layerContent.registeredIds);\r\n }\r\n return () => { onLayerRemoved(dataset.name); };\r\n }, [layerContent?.registeredIds, dataset.name, onLayerReady, onLayerRemoved]);\r\n\r\n return layerContent?.jsx ?? null;\r\n});\r\nGeoJsonDatasetLayer.displayName = 'GeoJsonDatasetLayer';\r\n\r\n\r\n// ─── Per-dataset MVT layer ────────────────────────────────────────────\r\n\r\ninterface MVTDatasetLayerProps {\r\n dataset: any;\r\n index: number;\r\n onLayerReady: (datasetName: string, layerIds: string[]) => void;\r\n onLayerRemoved: (datasetName: string) => void;\r\n}\r\n\r\nconst MVTDatasetLayer = React.memo(({ dataset, index, onLayerReady, onLayerRemoved }: MVTDatasetLayerProps) => {\r\n const tileUrl = dataset.url || dataset.information;\r\n const sourceLayer = (dataset as any)?.serviceInfo?.sourceLayer || dataset.id || dataset.name.toLowerCase().replace(/\\s+/g, '_');\r\n const layerColor = dataset.layerColor?.color || '#0d9488';\r\n const isPointLayer = dataset.layerType === 'circle' || /point/i.test(sourceLayer);\r\n const isMartinBuilding = /buildings?/i.test((dataset as any)?.serviceInfo?.sourceLayer || dataset.id || dataset.name);\r\n // Only extrude actual building layers. A polygon dataset resolves to layerType\r\n // 'fill', so keying extrusion off 'fill' alone routed every polygon (e.g. published\r\n // open-data boundaries) into the zero-height, minzoom-15.5 extrusion branch — leaving\r\n // only the outline visible. Non-building polygons fall through to the flat-fill branch.\r\n const extraIsBuilding = isMartinBuilding && !isPointLayer;\r\n\r\n const mainLayerId = isPointLayer\r\n ? `${dataset.name}-points`\r\n : extraIsBuilding\r\n ? `${dataset.name}-extrusion`\r\n : `${dataset.name}-fill`;\r\n const outlineLayerId = `${dataset.name}-outline`;\r\n\r\n // Register interactive layer IDs\r\n React.useEffect(() => {\r\n const ids = isPointLayer ? [mainLayerId] : [mainLayerId, outlineLayerId];\r\n onLayerReady(dataset.name, ids);\r\n return () => { onLayerRemoved(dataset.name); };\r\n }, [dataset.name, mainLayerId, outlineLayerId, isPointLayer, onLayerReady, onLayerRemoved]);\r\n\r\n if (!tileUrl) {\r\n console.error(`❌ OpenDataLayers: No tile URL found for MVT dataset \"${dataset.name}\"`);\r\n return null;\r\n }\r\n\r\n if (extraIsBuilding) {\r\n return (\r\n <Source id={`${dataset.name}-source`} key={`${index}-${dataset.name}-source`} type=\"vector\" tiles={[tileUrl]}>\r\n <Layer\r\n id={mainLayerId} type=\"fill-extrusion\" source-layer={sourceLayer}\r\n paint={{\r\n 'fill-extrusion-color': layerColor,\r\n 'fill-extrusion-height': ['coalesce', ['to-number', ['get', 'heightmax']], 0],\r\n 'fill-extrusion-opacity': 0.8,\r\n }}\r\n minzoom={15.5}\r\n />\r\n <Layer id={outlineLayerId} type=\"line\" source-layer={sourceLayer} paint={{ 'line-color': layerColor, 'line-width': 1, 'line-opacity': 0.8 }} />\r\n </Source>\r\n );\r\n }\r\n\r\n if (isPointLayer) {\r\n return (\r\n <Source id={`${dataset.name}-source`} key={`${index}-${dataset.name}-source`} type=\"vector\" tiles={[tileUrl]}>\r\n <Layer\r\n id={mainLayerId} type=\"circle\" source-layer={sourceLayer}\r\n paint={{ 'circle-radius': 6, 'circle-color': layerColor, 'circle-opacity': 0.8, 'circle-stroke-width': 2, 'circle-stroke-color': '#ffffff' }}\r\n />\r\n </Source>\r\n );\r\n }\r\n\r\n return (\r\n <Source id={`${dataset.name}-source`} key={`${index}-${dataset.name}-source`} type=\"vector\" tiles={[tileUrl]}>\r\n <Layer id={mainLayerId} type=\"fill\" source-layer={sourceLayer} paint={{ 'fill-color': layerColor, 'fill-opacity': 0.6 }} />\r\n {/* White outline (matches the original GeoJSON polygon style) so subdivision\r\n boundaries stay legible — a same-colour outline read as one solid blob. */}\r\n <Layer id={outlineLayerId} type=\"line\" source-layer={sourceLayer} paint={{ 'line-color': '#ffffff', 'line-width': 2 }} />\r\n </Source>\r\n );\r\n});\r\nMVTDatasetLayer.displayName = 'MVTDatasetLayer';\r\n\r\n\r\n// ─── Per-dataset WMS raster layer ─────────────────────────────────────\r\n// Live/federated WMS overlays (e.g. the GeoMet weather radar). The dataset's\r\n// `url` is a MapLibre raster tile template (GetMap with a literal\r\n// {bbox-epsg-3857}); MapLibre fetches tiles directly, so there's nothing to\r\n// parse and no features to query (raster → not interactive).\r\n\r\ninterface WMSDatasetLayerProps {\r\n dataset: any;\r\n index: number;\r\n onLayerReady: (datasetName: string, layerIds: string[]) => void;\r\n onLayerRemoved: (datasetName: string) => void;\r\n}\r\n\r\nconst WMSDatasetLayer = React.memo(({ dataset, index, onLayerReady, onLayerRemoved }: WMSDatasetLayerProps) => {\r\n const { state: mapState } = React.useContext(MapContext);\r\n const { map } = mapState.map;\r\n\r\n const tileUrl = dataset.url || dataset.information;\r\n const layerId = `${dataset.name}-wms`;\r\n const sourceId = `${dataset.name}-source`;\r\n\r\n const timeEnabled = !!dataset.timeEnabled && !!dataset.wms;\r\n const [frames, setFrames] = React.useState<string[]>([]);\r\n const [activeTime, setActiveTime] = React.useState<string | null>(null);\r\n // The bottom-left overlay stack's portal slot (MapViewer renders it). Resolved\r\n // in an effect so the node exists (post-commit) before we portal into it.\r\n const [controlSlot, setControlSlot] = React.useState<HTMLElement | null>(null);\r\n React.useEffect(() => {\r\n if (timeEnabled) setControlSlot(document.getElementById('wms-time-slot'));\r\n }, [timeEnabled]);\r\n\r\n // Register with no interactive layer ids — a raster has no queryable features.\r\n React.useEffect(() => {\r\n onLayerReady(dataset.name, []);\r\n return () => { onLayerRemoved(dataset.name); };\r\n }, [dataset.name, onLayerReady, onLayerRemoved]);\r\n\r\n // Load the WMS time extent once (time-enabled datasets only).\r\n React.useEffect(() => {\r\n if (!timeEnabled || !dataset.wms) return;\r\n let cancelled = false;\r\n fetchWmsFrames(dataset.wms.baseUrl, dataset.wms.layers)\r\n .then(f => { if (!cancelled) setFrames(f); })\r\n .catch(() => { /* fetchWmsFrames already swallows; keep static */ });\r\n return () => { cancelled = true; };\r\n }, [timeEnabled, dataset.wms?.baseUrl, dataset.wms?.layers]);\r\n\r\n // Imperatively swap the raster source's tiles per frame. The <Source tiles>\r\n // prop below never changes after mount, so there's no react-map-gl tug-of-war\r\n // and no flicker — this setTiles call is the single source of truth for TIME.\r\n React.useEffect(() => {\r\n if (!map || !activeTime || !dataset.wms) return;\r\n const src = map.getSource(sourceId) as { setTiles?: (t: string[]) => void } | undefined;\r\n if (src?.setTiles) {\r\n src.setTiles([buildWmsTimeUrl(dataset.wms.baseUrl, dataset.wms.layers, activeTime)]);\r\n }\r\n }, [map, activeTime, sourceId, dataset.wms?.baseUrl, dataset.wms?.layers]);\r\n\r\n if (!tileUrl) {\r\n console.error(`❌ OpenDataLayers: No tile URL found for WMS dataset \"${dataset.name}\"`);\r\n return null;\r\n }\r\n\r\n const showControl = timeEnabled && frames.length > 1 && map && controlSlot;\r\n\r\n return (\r\n <>\r\n <Source id={sourceId} key={`${index}-${dataset.name}-source`} type=\"raster\" tiles={[tileUrl]} tileSize={256}>\r\n <Layer id={layerId} type=\"raster\" paint={{ 'raster-opacity': 0.85 }} />\r\n </Source>\r\n {showControl && createPortal(\r\n <WmsTimeControl\r\n frames={frames}\r\n onTimeChange={setActiveTime}\r\n label={dataset.name}\r\n legendUrl={dataset.wms ? wmsLegendUrl(dataset.wms.baseUrl, dataset.wms.layers) : undefined}\r\n />,\r\n controlSlot,\r\n )}\r\n </>\r\n );\r\n});\r\nWMSDatasetLayer.displayName = 'WMSDatasetLayer';\r\n\r\n\r\n// ─── Main orchestrator ────────────────────────────────────────────────\r\n\r\nexport const OpenDataLayers = () => {\r\n const { \"state\": mapState, \"dispatch\": mapDispatch } = React.useContext(MapContext);\r\n const { map, mapClickManager } = mapState.map;\r\n\r\n const { state: datasetState } = React.useContext(DatasetsContext);\r\n const { addedDatasets } = datasetState.datasets;\r\n\r\n const [clickedFeature, setClickedFeature] = React.useState<any>(null);\r\n const [addedFeaturesPopup, setAddedFeaturesPopup] = React.useState<Array<{\r\n id: string | number;\r\n popup: React.ReactElement;\r\n }>>([]);\r\n\r\n // Track interactive layer IDs per dataset for click handling\r\n const layerIdsMapRef = React.useRef<Record<string, string[]>>({});\r\n const [allLayerNames, setAllLayerNames] = React.useState<string[]>([]);\r\n\r\n const handleLayerReady = React.useCallback((datasetName: string, layerIds: string[]) => {\r\n layerIdsMapRef.current[datasetName] = layerIds;\r\n setAllLayerNames(Object.values(layerIdsMapRef.current).flat());\r\n }, []);\r\n\r\n const handleLayerRemoved = React.useCallback((datasetName: string) => {\r\n delete layerIdsMapRef.current[datasetName];\r\n setAllLayerNames(Object.values(layerIdsMapRef.current).flat());\r\n }, []);\r\n\r\n // ── Click handling ──\r\n React.useEffect(() => {\r\n if (!map || !mapClickManager || allLayerNames.length === 0) return;\r\n\r\n const handleMapClick = (e: MapMouseEvent) => {\r\n const clicked = map.queryRenderedFeatures(e.point, { layers: allLayerNames });\r\n const localClickedFeature = clicked?.[0];\r\n\r\n if (!localClickedFeature) {\r\n setClickedFeature(null);\r\n return;\r\n }\r\n\r\n const lng = e.lngLat.lng;\r\n const lat = e.lngLat.lat;\r\n const coordinates = [lng, lat];\r\n const properties = localClickedFeature.properties || {};\r\n const _name = Object.entries(properties).find(([key]) => key.toLowerCase().includes('name'))?.[1] || undefined;\r\n\r\n let datasetNameFromFeature = properties.datasetName;\r\n if (!datasetNameFromFeature && localClickedFeature.layer) {\r\n const layerId = localClickedFeature.layer.id;\r\n const suffixes = ['-unclustered-point', '-clusters', '-cluster-count', '-outline', '-fill', '-line', '-circle', '-extrusion', '-points'];\r\n let extractedName = layerId;\r\n for (const suffix of suffixes) {\r\n if (layerId.endsWith(suffix)) {\r\n extractedName = layerId.slice(0, -suffix.length);\r\n break;\r\n }\r\n }\r\n if (extractedName === layerId && layerId.includes('-')) {\r\n extractedName = layerId.slice(0, layerId.lastIndexOf('-'));\r\n }\r\n datasetNameFromFeature = extractedName;\r\n }\r\n\r\n const featureId = properties.globalid || properties.id || `temp-${Date.now()}`;\r\n localClickedFeature.id = featureId;\r\n localClickedFeature.properties = { ...properties, coordinates, _name, datasetName: datasetNameFromFeature };\r\n setClickedFeature(localClickedFeature);\r\n };\r\n\r\n for (const layerId of allLayerNames) {\r\n mapClickManager.register(layerId, MapLayerClickPriority.OpenDataLayerClickPriority, handleMapClick);\r\n }\r\n\r\n return () => {\r\n for (const layerId of allLayerNames) {\r\n mapClickManager.unregister(layerId);\r\n }\r\n };\r\n }, [map, mapClickManager, allLayerNames]);\r\n\r\n // ── Hover cursor handling ──\r\n React.useEffect(() => {\r\n if (!map) return;\r\n\r\n const canvas = map.getCanvas();\r\n\r\n const setDefaultCursor = () => {\r\n canvas.style.cursor = 'default';\r\n };\r\n\r\n if (allLayerNames.length === 0) {\r\n setDefaultCursor();\r\n return;\r\n }\r\n\r\n const handleMouseMove = (e: MapMouseEvent) => {\r\n const hoveredFeatures = map.queryRenderedFeatures(e.point, { layers: allLayerNames });\r\n canvas.style.cursor = hoveredFeatures.length > 0 ? 'pointer' : 'default';\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setDefaultCursor();\r\n };\r\n\r\n map.on('mousemove', handleMouseMove);\r\n map.on('mouseleave', handleMouseLeave);\r\n\r\n return () => {\r\n map.off('mousemove', handleMouseMove);\r\n map.off('mouseleave', handleMouseLeave);\r\n setDefaultCursor();\r\n };\r\n }, [map, allLayerNames]);\r\n\r\n // ── Popup ──\r\n React.useEffect(() => {\r\n if (!clickedFeature || !clickedFeature.properties?.coordinates) {\r\n setAddedFeaturesPopup([]);\r\n return;\r\n }\r\n const popup = (\r\n <Popup\r\n anchor=\"bottom\"\r\n closeButton={true}\r\n closeOnClick={false}\r\n closeOnMove={false}\r\n focusAfterOpen={true}\r\n key={clickedFeature.id}\r\n latitude={clickedFeature.properties.coordinates[1]}\r\n longitude={clickedFeature.properties.coordinates[0]}\r\n >\r\n <MapFeaturePopoverMenu\r\n feature={clickedFeature}\r\n onCloseAction={() => clearClickedFeature()}\r\n />\r\n </Popup>\r\n );\r\n setAddedFeaturesPopup([{ id: clickedFeature.id as string | number, popup }]);\r\n }, [clickedFeature]);\r\n\r\n function clearClickedFeature() {\r\n mapDispatch({ type: \"SET_CLICKED_FEATURE\", payload: { clickedFeature: null } });\r\n setClickedFeature(null);\r\n }\r\n\r\n // ── Sort datasets by display order ──\r\n const sortedDatasets = React.useMemo(() => {\r\n if (!addedDatasets?.length) return [];\r\n return [...addedDatasets].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\r\n }, [addedDatasets]);\r\n\r\n return (\r\n <>\r\n {sortedDatasets.map((dataset, index) => {\r\n if (dataset.visible === false) return null;\r\n if (isBuildingDataset(dataset)) return null;\r\n\r\n if (dataset.type === 'WMS' || dataset.datasetType === 'WMS') {\r\n return (\r\n <WMSDatasetLayer\r\n key={dataset.name}\r\n dataset={dataset}\r\n index={index}\r\n onLayerReady={handleLayerReady}\r\n onLayerRemoved={handleLayerRemoved}\r\n />\r\n );\r\n }\r\n\r\n if (dataset.type === 'MVT' || dataset.datasetType === 'MVT') {\r\n return (\r\n <MVTDatasetLayer\r\n key={dataset.name}\r\n dataset={dataset}\r\n index={index}\r\n onLayerReady={handleLayerReady}\r\n onLayerRemoved={handleLayerRemoved}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <GeoJsonDatasetLayer\r\n key={dataset.name}\r\n dataset={dataset}\r\n index={index}\r\n onLayerReady={handleLayerReady}\r\n onLayerRemoved={handleLayerRemoved}\r\n />\r\n );\r\n })}\r\n\r\n {addedFeaturesPopup.map((popup) => (\r\n <React.Fragment key={popup.id}>{popup.popup}</React.Fragment>\r\n ))}\r\n </>\r\n );\r\n};\r\n"],"mappings":"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","names":["_a"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PlaceOnMap.d.ts","sourceRoot":"","sources":["../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAK7D,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAA;CACvB;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkEhD,CAAA"}
1
+ {"version":3,"file":"PlaceOnMap.d.ts","sourceRoot":"","sources":["../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAK7D,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAA;CACvB;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkEhD,CAAA"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
+ import { useTranslations } from "next-intl";
2
3
  import * as React from "react";
3
- import { MapContext } from "../../../../../../store";
4
- import { useFile } from "../../../../../../hooks/files/files";
5
4
  import { toast } from "sonner";
6
- import { useTranslations } from "next-intl";
5
+ import { useFile } from "../../../../../../hooks/files/files";
6
+ import { MapContext } from "../../../../../../store";
7
7
  const PlaceOnMap = ({ file, onPlaced, onCancel }) => {
8
8
  const { state: mapState } = React.useContext(MapContext);
9
9
  const { map } = mapState.map;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.tsx"],"sourcesContent":["\"use client\"\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from \"react\"\r\nimport type maplibregl from \"maplibre-gl\"\r\nimport { MapContext } from \"../../../../../../store\"\r\nimport type { DbFile } from \"../../../../../../types/dbTypes\"\r\nimport { useFile } from \"../../../../../../hooks/files/files\"\r\nimport { toast } from \"sonner\"\r\nimport { useTranslations } from \"next-intl\"\r\n\r\ninterface PlaceOnMapProps {\r\n file: DbFile\r\n onPlaced: (file: DbFile, lat: number, lng: number) => void\r\n onCancel: () => void\r\n}\r\n\r\n/**\r\n * Invisible component that puts the map into \"click-to-place\" mode.\r\n * Sets crosshair cursor, listens for a single click, saves the coords to the DB,\r\n * then calls onPlaced. Esc calls onCancel.\r\n */\r\nexport const PlaceOnMap: React.FC<PlaceOnMapProps> = ({ file, onPlaced, onCancel }) => {\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n const { updateFile } = useFile(file.id)\r\n const t = useTranslations(\"EditFilePosition\")\r\n\r\n // Stable refs so the map effect never needs to re-register\r\n const onPlacedRef = React.useRef(onPlaced)\r\n const onCancelRef = React.useRef(onCancel)\r\n onPlacedRef.current = onPlaced\r\n onCancelRef.current = onCancel\r\n\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n const canvas = map.getCanvas()\r\n\r\n // MapLibre resets the cursor on every mousemove, so we re-apply it each time\r\n const keepCrosshair = () => { canvas.style.cursor = \"crosshair\" }\r\n const clearCursor = () => { canvas.style.cursor = \"\" }\r\n\r\n canvas.style.cursor = \"crosshair\"\r\n map.on(\"mousemove\", keepCrosshair)\r\n\r\n const handleClick = async (e: maplibregl.MapMouseEvent) => {\r\n const lat = e.lngLat.lat\r\n const lng = e.lngLat.lng\r\n\r\n map.off(\"mousemove\", keepCrosshair)\r\n clearCursor()\r\n\r\n try {\r\n await updateFile({ lat, lng, type: 'map-file' } as Partial<DbFile>)\r\n file.lat = lat\r\n file.lng = lng\r\n file.type = 'map-file'\r\n onPlacedRef.current(file, lat, lng)\r\n toast.success(t(\"positionAcceptedToast\"))\r\n } catch (err) {\r\n console.error(\"Error placing file:\", err)\r\n // Restore on failure\r\n map.on(\"mousemove\", keepCrosshair)\r\n canvas.style.cursor = \"crosshair\"\r\n }\r\n }\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n map.off(\"mousemove\", keepCrosshair)\r\n clearCursor()\r\n onCancelRef.current()\r\n }\r\n }\r\n\r\n map.on(\"click\", handleClick)\r\n document.addEventListener(\"keydown\", handleKeyDown)\r\n\r\n return () => {\r\n map.off(\"mousemove\", keepCrosshair)\r\n map.off(\"click\", handleClick)\r\n document.removeEventListener(\"keydown\", handleKeyDown)\r\n clearCursor()\r\n }\r\n }, [map, updateFile])\r\n\r\n return null\r\n}\r\n"],"mappings":";AAKA,YAAY,WAAW;AAEvB,SAAS,kBAAkB;AAE3B,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,uBAAuB;AAazB,MAAM,aAAwC,CAAC,EAAE,MAAM,UAAU,SAAS,MAAM;AACnF,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,WAAW,UAAU;AACvD,QAAM,EAAE,IAAI,IAAI,SAAS;AACzB,QAAM,EAAE,WAAW,IAAI,QAAQ,KAAK,EAAE;AACtC,QAAM,IAAI,gBAAgB,kBAAkB;AAG5C,QAAM,cAAc,MAAM,OAAO,QAAQ;AACzC,QAAM,cAAc,MAAM,OAAO,QAAQ;AACzC,cAAY,UAAU;AACtB,cAAY,UAAU;AAEtB,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,IAAK;AAEV,UAAM,SAAS,IAAI,UAAU;AAG7B,UAAM,gBAAgB,MAAM;AAAE,aAAO,MAAM,SAAS;AAAA,IAAY;AAChE,UAAM,cAAgB,MAAM;AAAE,aAAO,MAAM,SAAS;AAAA,IAAG;AAEvD,WAAO,MAAM,SAAS;AACtB,QAAI,GAAG,aAAa,aAAa;AAEjC,UAAM,cAAc,OAAO,MAAgC;AACvD,YAAM,MAAM,EAAE,OAAO;AACrB,YAAM,MAAM,EAAE,OAAO;AAErB,UAAI,IAAI,aAAa,aAAa;AAClC,kBAAY;AAEZ,UAAI;AACA,cAAM,WAAW,EAAE,KAAK,KAAK,MAAM,WAAW,CAAoB;AAClE,aAAK,MAAM;AACX,aAAK,MAAM;AACX,aAAK,OAAO;AACZ,oBAAY,QAAQ,MAAM,KAAK,GAAG;AAClC,cAAM,QAAQ,EAAE,uBAAuB,CAAC;AAAA,MAC5C,SAAS,KAAK;AACV,gBAAQ,MAAM,uBAAuB,GAAG;AAExC,YAAI,GAAG,aAAa,aAAa;AACjC,eAAO,MAAM,SAAS;AAAA,MAC1B;AAAA,IACJ;AAEA,UAAM,gBAAgB,CAAC,MAAqB;AACxC,UAAI,EAAE,QAAQ,UAAU;AACpB,YAAI,IAAI,aAAa,aAAa;AAClC,oBAAY;AACZ,oBAAY,QAAQ;AAAA,MACxB;AAAA,IACJ;AAEA,QAAI,GAAG,SAAS,WAAW;AAC3B,aAAS,iBAAiB,WAAW,aAAa;AAElD,WAAO,MAAM;AACT,UAAI,IAAI,aAAa,aAAa;AAClC,UAAI,IAAI,SAAS,WAAW;AAC5B,eAAS,oBAAoB,WAAW,aAAa;AACrD,kBAAY;AAAA,IAChB;AAAA,EACJ,GAAG,CAAC,KAAK,UAAU,CAAC;AAEpB,SAAO;AACX;","names":[]}
1
+ {"version":3,"sources":["../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.tsx"],"sourcesContent":["\"use client\"\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport { useTranslations } from \"next-intl\"\r\nimport * as React from \"react\"\r\nimport { toast } from \"sonner\"\r\n\r\nimport { useFile } from \"../../../../../../hooks/files/files\"\r\nimport { MapContext } from \"../../../../../../store\"\r\n\r\nimport type { DbFile } from \"../../../../../../types/dbTypes\"\r\nimport type maplibregl from \"maplibre-gl\"\r\n\r\n\r\n\r\ninterface PlaceOnMapProps {\r\n file: DbFile\r\n onPlaced: (file: DbFile, lat: number, lng: number) => void\r\n onCancel: () => void\r\n}\r\n\r\n/**\r\n * Invisible component that puts the map into \"click-to-place\" mode.\r\n * Sets crosshair cursor, listens for a single click, saves the coords to the DB,\r\n * then calls onPlaced. Esc calls onCancel.\r\n */\r\nexport const PlaceOnMap: React.FC<PlaceOnMapProps> = ({ file, onPlaced, onCancel }) => {\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n const { updateFile } = useFile(file.id)\r\n const t = useTranslations(\"EditFilePosition\")\r\n\r\n // Stable refs so the map effect never needs to re-register\r\n const onPlacedRef = React.useRef(onPlaced)\r\n const onCancelRef = React.useRef(onCancel)\r\n onPlacedRef.current = onPlaced\r\n onCancelRef.current = onCancel\r\n\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n const canvas = map.getCanvas()\r\n\r\n // MapLibre resets the cursor on every mousemove, so we re-apply it each time\r\n const keepCrosshair = () => { canvas.style.cursor = \"crosshair\" }\r\n const clearCursor = () => { canvas.style.cursor = \"\" }\r\n\r\n canvas.style.cursor = \"crosshair\"\r\n map.on(\"mousemove\", keepCrosshair)\r\n\r\n const handleClick = async (e: maplibregl.MapMouseEvent) => {\r\n const lat = e.lngLat.lat\r\n const lng = e.lngLat.lng\r\n\r\n map.off(\"mousemove\", keepCrosshair)\r\n clearCursor()\r\n\r\n try {\r\n await updateFile({ lat, lng, type: 'map-file' } as Partial<DbFile>)\r\n file.lat = lat\r\n file.lng = lng\r\n file.type = 'map-file'\r\n onPlacedRef.current(file, lat, lng)\r\n toast.success(t(\"positionAcceptedToast\"))\r\n } catch (err) {\r\n console.error(\"Error placing file:\", err)\r\n // Restore on failure\r\n map.on(\"mousemove\", keepCrosshair)\r\n canvas.style.cursor = \"crosshair\"\r\n }\r\n }\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n map.off(\"mousemove\", keepCrosshair)\r\n clearCursor()\r\n onCancelRef.current()\r\n }\r\n }\r\n\r\n map.on(\"click\", handleClick)\r\n document.addEventListener(\"keydown\", handleKeyDown)\r\n\r\n return () => {\r\n map.off(\"mousemove\", keepCrosshair)\r\n map.off(\"click\", handleClick)\r\n document.removeEventListener(\"keydown\", handleKeyDown)\r\n clearCursor()\r\n }\r\n }, [map, updateFile])\r\n\r\n return null\r\n}\r\n"],"mappings":";AAKA,SAAS,uBAAuB;AAChC,YAAY,WAAW;AACvB,SAAS,aAAa;AAEtB,SAAS,eAAe;AACxB,SAAS,kBAAkB;AAkBpB,MAAM,aAAwC,CAAC,EAAE,MAAM,UAAU,SAAS,MAAM;AACnF,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,WAAW,UAAU;AACvD,QAAM,EAAE,IAAI,IAAI,SAAS;AACzB,QAAM,EAAE,WAAW,IAAI,QAAQ,KAAK,EAAE;AACtC,QAAM,IAAI,gBAAgB,kBAAkB;AAG5C,QAAM,cAAc,MAAM,OAAO,QAAQ;AACzC,QAAM,cAAc,MAAM,OAAO,QAAQ;AACzC,cAAY,UAAU;AACtB,cAAY,UAAU;AAEtB,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,IAAK;AAEV,UAAM,SAAS,IAAI,UAAU;AAG7B,UAAM,gBAAgB,MAAM;AAAE,aAAO,MAAM,SAAS;AAAA,IAAY;AAChE,UAAM,cAAgB,MAAM;AAAE,aAAO,MAAM,SAAS;AAAA,IAAG;AAEvD,WAAO,MAAM,SAAS;AACtB,QAAI,GAAG,aAAa,aAAa;AAEjC,UAAM,cAAc,OAAO,MAAgC;AACvD,YAAM,MAAM,EAAE,OAAO;AACrB,YAAM,MAAM,EAAE,OAAO;AAErB,UAAI,IAAI,aAAa,aAAa;AAClC,kBAAY;AAEZ,UAAI;AACA,cAAM,WAAW,EAAE,KAAK,KAAK,MAAM,WAAW,CAAoB;AAClE,aAAK,MAAM;AACX,aAAK,MAAM;AACX,aAAK,OAAO;AACZ,oBAAY,QAAQ,MAAM,KAAK,GAAG;AAClC,cAAM,QAAQ,EAAE,uBAAuB,CAAC;AAAA,MAC5C,SAAS,KAAK;AACV,gBAAQ,MAAM,uBAAuB,GAAG;AAExC,YAAI,GAAG,aAAa,aAAa;AACjC,eAAO,MAAM,SAAS;AAAA,MAC1B;AAAA,IACJ;AAEA,UAAM,gBAAgB,CAAC,MAAqB;AACxC,UAAI,EAAE,QAAQ,UAAU;AACpB,YAAI,IAAI,aAAa,aAAa;AAClC,oBAAY;AACZ,oBAAY,QAAQ;AAAA,MACxB;AAAA,IACJ;AAEA,QAAI,GAAG,SAAS,WAAW;AAC3B,aAAS,iBAAiB,WAAW,aAAa;AAElD,WAAO,MAAM;AACT,UAAI,IAAI,aAAa,aAAa;AAClC,UAAI,IAAI,SAAS,WAAW;AAC5B,eAAS,oBAAoB,WAAW,aAAa;AACrD,kBAAY;AAAA,IAChB;AAAA,EACJ,GAAG,CAAC,KAAK,UAAU,CAAC;AAEpB,SAAO;AACX;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAoD9B,eAAO,MAAM,YAAY,GAAI,kBAAkB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,sBA4TvE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAqD9B,eAAO,MAAM,YAAY,GAAI,kBAAkB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,sBA4TvE,CAAA"}
@@ -19,22 +19,22 @@ var __spreadValues = (a, b) => {
19
19
  };
20
20
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
21
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
- import { MapContext, MenusContext } from "../../../../../../../store";
22
+ import * as LR from "lucide-react";
23
+ import { useSession } from "next-auth/react";
24
+ import { useTranslations } from "next-intl";
23
25
  import * as React from "react";
24
26
  import { Source, Layer, Popup, Marker } from "react-map-gl/maplibre";
25
- import Sensor from "../../../../../../ui/Sensors/Sensor";
26
- import { ViewerNames } from "../../../../../../../types/dbTypes";
27
- import { MapLayerClickPriority } from "../../../../utils/MapEventManager/MapClickManager";
28
- import { extractCoordinatesFromFeature } from "../../../../utils/extractCoordinates";
29
- import { useSensor, useSensors } from "../../../../../../../hooks/sensors/sensors";
30
- import { useUsers } from "../../../../../../../hooks/users/users";
31
27
  import { toast } from "sonner";
32
- import { useTranslations } from "next-intl";
33
- import { useSession } from "next-auth/react";
34
- import { createClusterLayer, createClusterCountLayer, createUnclusteredPointLayer } from "../mapLayersUtils";
28
+ import { useSensor, useSensors } from "../../../../../../../hooks/sensors/sensors";
35
29
  import { useSensorTypes } from "../../../../../../../hooks/sensorTypes/sensorTypes";
36
- import * as LR from "lucide-react";
30
+ import { useUsers } from "../../../../../../../hooks/users/users";
31
+ import { MapContext, MenusContext } from "../../../../../../../store";
32
+ import { ViewerNames } from "../../../../../../../types/dbTypes";
33
+ import Sensor from "../../../../../../ui/Sensors/Sensor";
37
34
  import { UNTAGGED_TAG } from "../../../../../../ui/Sensors/SensorsSection";
35
+ import { extractCoordinatesFromFeature } from "../../../../utils/extractCoordinates";
36
+ import { MapLayerClickPriority } from "../../../../utils/MapEventManager/MapClickManager";
37
+ import { createClusterLayer, createClusterCountLayer, createUnclusteredPointLayer } from "../mapLayersUtils";
38
38
  const SensorIconMarker = ({ feature, isHighlighted, onMouseEnter, onMouseLeave, sensorTypes }) => {
39
39
  var _a, _b;
40
40
  const coords = extractCoordinatesFromFeature(feature);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport { MapContext, MenusContext } from '../../../../../../../store'\r\nimport * as React from 'react'\r\nimport { Source, Layer, Popup, Marker } from 'react-map-gl/maplibre'\r\nimport type { MapGeoJSONFeature, MapLayerMouseEvent } from 'maplibre-gl'\r\nimport Sensor from '../../../../../../ui/Sensors/Sensor'\r\nimport { SensorType, ViewerNames, type Sensor as ISensor} from '../../../../../../../types/dbTypes'\r\n\r\nimport { MapLayerClickPriority, ClickCallback } from '../../../../utils/MapEventManager/MapClickManager'\r\nimport { extractCoordinatesFromFeature } from '../../../../utils/extractCoordinates'\r\nimport { useSensor, useSensors } from '../../../../../../../hooks/sensors/sensors'\r\nimport { useUsers } from '../../../../../../../hooks/users/users'\r\nimport { toast } from 'sonner'\r\nimport { useTranslations } from 'next-intl'\r\nimport { useSession } from 'next-auth/react'\r\nimport { createClusterLayer, createClusterCountLayer, createUnclusteredPointLayer } from '../mapLayersUtils'\r\nimport { useSensorTypes } from '../../../../../../../hooks/sensorTypes/sensorTypes'\r\nimport * as LR from 'lucide-react'\r\nimport { UNTAGGED_TAG } from '../../../../../../ui/Sensors/SensorsSection'\r\n\r\nconst SensorIconMarker = ({ feature, isHighlighted, onMouseEnter, onMouseLeave, sensorTypes }: { feature: MapGeoJSONFeature; isHighlighted?: boolean; onMouseEnter?: () => void; onMouseLeave?: () => void; sensorTypes: SensorType[] }) => {\r\n\r\n const coords = extractCoordinatesFromFeature(feature)\r\n if (!coords) return null\r\n\r\n const sensorType = sensorTypes.find(t => t.id === feature.properties?.typeId)\r\n const icon = sensorType?.icon || 'Radio'\r\n const SensorIcon = LR[icon] || LR.Radio\r\n\r\n return (\r\n <Marker key={String(feature.properties?.id ?? `${coords.lng},${coords.lat}`)} longitude={coords.lng} latitude={coords.lat} anchor=\"center\">\r\n <div\r\n style={{\r\n width: '36px',\r\n height: '36px',\r\n borderRadius: '50%',\r\n border: isHighlighted ? '3px solid #73cee2' : '2px solid white',\r\n backgroundColor: 'black',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxShadow: isHighlighted ? '0 0 12px rgba(115, 206, 226, 0.5)' : 'none',\r\n transition: 'all 0.2s ease-in-out',\r\n transform: isHighlighted ? 'scale(1.2)' : 'scale(1)',\r\n }}\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n >\r\n <SensorIcon style={{ width: '20px', height: '20px', color: 'hsl(var(--primary-foreground))' }} />\r\n </div>\r\n </Marker>\r\n )\r\n}\r\n\r\nexport const SensorLayers = ({ minioBaseUrl }: { minioBaseUrl?: string }) => {\r\n const [hoveredSensorId, setHoveredSensorId] = React.useState<number | null>(null)\r\n const clusterLayer = createClusterLayer('sensors')\r\n const clusterCountLayer = createClusterCountLayer('sensors')\r\n const unclusteredPointLayer = createUnclusteredPointLayer('sensors')\r\n\r\n // global map state\r\n\r\n const t = useTranslations('SensorLayers')\r\n const tSensors = useTranslations('SensorsSection')\r\n\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map, mapClickManager } = mapState.map\r\n const { sensors } = useSensors()\r\n const { users } = useUsers()\r\n const user = useSession().data?.user\r\n\r\n const [popupInfo, setPopUpInfo] = React.useState<Partial<ISensor & { sensorType: SensorType }> | null>(null)\r\n const { deleteSensor, updateSensor } = useSensor(popupInfo?.id ?? null)\r\n const { state: menusState } = React.useContext(MenusContext)\r\n const { visibleSensorTypes, visibleSensorTags, currentSensorId } = menusState.menus\r\n const typesVisible = visibleSensorTypes?.[ViewerNames.map] || []\r\n const tagsVisible = visibleSensorTags?.[ViewerNames.map] || []\r\n\r\n const {sensorTypes} = useSensorTypes()\r\n\r\n const eligibleSensors: Array<ISensor & { authorName: string } & { sensorType: SensorType }> = sensors\r\n .filter((sensor) => sensor.viewer === ViewerNames.map)\r\n .filter((sensor) => {\r\n const matchesType = typesVisible.includes(sensor.typeId)\r\n const hasNoTags = !sensor.tags?.length\r\n const matchesTag = hasNoTags\r\n ? tagsVisible.includes(UNTAGGED_TAG)\r\n : sensor.tags?.some(tag => tagsVisible.includes(tag)) ?? false\r\n return matchesType || matchesTag\r\n })\r\n .map((sensor) => {\r\n const user = users.find(u => u.id === sensor.authorId)\r\n const sensorType = sensorTypes.find(t => t.id === sensor.typeId)\r\n return {\r\n ...sensor,\r\n authorName: user?.name ?? 'Unknown User',\r\n sensorType,\r\n }\r\n })\r\n\r\n // Close popup if the sensor was deleted\r\n React.useEffect(() => {\r\n if (popupInfo && !sensors.find((s) => s.id === popupInfo.id)) {\r\n setPopUpInfo(null)\r\n }\r\n }, [sensors, popupInfo])\r\n\r\n const geojsonSensorData = React.useMemo(() => {\r\n const convertDataToGeojson = (sensorData: typeof eligibleSensors): GeoJSON.FeatureCollection<GeoJSON.Point, { [key: string]: any }> => {\r\n const sensorFeatures: GeoJSON.Feature<GeoJSON.Point, { [key: string]: any }>[] = sensorData\r\n .map((sensor) => {\r\n const { longitude, latitude, id, name, typeId, sensorType, data, dataFormat, updateFrequency, createdAt, authorId, organizationId, visible, url, authorName } = sensor\r\n\r\n return {\r\n type: 'Feature',\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [longitude, latitude],\r\n },\r\n properties: {\r\n id: Number(id),\r\n organizationId,\r\n visible,\r\n longitude,\r\n latitude,\r\n authorId: Number(authorId),\r\n authorName,\r\n name,\r\n typeId: Number(typeId),\r\n typeIcon: sensorType?.icon,\r\n data,\r\n dataFormat,\r\n updateFrequency,\r\n url,\r\n createdAt,\r\n viewer: ViewerNames.map,\r\n },\r\n }\r\n })\r\n\r\n \r\n\r\n const sensorFC: GeoJSON.FeatureCollection<GeoJSON.Point, { [key: string]: any }> = {\r\n type: 'FeatureCollection',\r\n features: sensorFeatures,\r\n }\r\n return sensorFC\r\n }\r\n return convertDataToGeojson(eligibleSensors)\r\n }, [eligibleSensors])\r\n\r\n // event listeners for sensor unclustered points\r\n React.useEffect(() => {\r\n if (!map) return\r\n const showSensorPopUp: ClickCallback = (e: MapLayerMouseEvent, features: MapGeoJSONFeature[]) => {\r\n const feature = features?.[0]\r\n\r\n if (!feature || feature.properties.point_count) return\r\n\r\n if (feature.geometry.type != 'Point') return\r\n const [longitude, latitude] = feature.geometry.coordinates\r\n const { id, authorId, name, typeId, data, dataFormat, updateFrequency, createdAt, url } = feature.properties\r\n setPopUpInfo({\r\n id: Number(id),\r\n authorId: Number(authorId),\r\n organizationId: feature.properties?.organizationId,\r\n visible: feature.properties?.visible,\r\n longitude,\r\n latitude,\r\n name,\r\n typeId: Number(typeId),\r\n data,\r\n dataFormat,\r\n updateFrequency,\r\n url,\r\n createdAt,\r\n viewer: ViewerNames.map,\r\n })\r\n }\r\n\r\n const mouseEnterChangeCursor = () => {\r\n map.getCanvas().style.cursor = 'pointer'\r\n }\r\n const mouseLeaveChangeCursor = () => {\r\n map.getCanvas().style.cursor = ''\r\n }\r\n\r\n // event listener for clicking on single point to show sensor, hover to change cursor\r\n mapClickManager.register('sensors-unclustered-points', MapLayerClickPriority.CommentLayersClickPriority, showSensorPopUp)\r\n\r\n map.on('mouseenter', 'sensors-unclustered-points', mouseEnterChangeCursor)\r\n map.on('mouseleave', 'sensors-unclustered-points', mouseLeaveChangeCursor)\r\n return () => {\r\n mapClickManager.unregister('sensors-unclustered-points')\r\n map.off('mouseenter', 'sensors-unclustered-points', mouseEnterChangeCursor)\r\n map.off('mouseleave', 'sensors-unclustered-points', mouseLeaveChangeCursor)\r\n }\r\n }, [map, mapClickManager])\r\n\r\n const handleRemoveSensor = () => {\r\n toast.success(t('sensorDeleted'))\r\n deleteSensor()\r\n setPopUpInfo(null)\r\n }\r\n\r\n // event listeners for clustered points\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n const zoomInToDecluster = (e: MapLayerMouseEvent) => {\r\n const feature = e.features?.[0] // only proceed if this is actually a cluster\r\n if (!feature || !feature.properties.cluster_id) return\r\n\r\n const clusterId = feature.properties.cluster_id as number\r\n\r\n // Check if geometry has coordinates (not a GeometryCollection)\r\n if (!('coordinates' in feature.geometry)) return\r\n const [lng, lat] = feature.geometry.coordinates as [number, number]\r\n\r\n const source = map.getSource('sensors') as any\r\n console.log(source)\r\n console.log(clusterId)\r\n source.getClusterExpansionZoom(clusterId).then(\r\n (zoom: number) => {\r\n console.log('easing to')\r\n map.easeTo({ center: [lng, lat], zoom })\r\n },\r\n )\r\n .catch((error) => {\r\n console.error(error)\r\n })\r\n }\r\n\r\n const mouseEnterChangeCursor = () => { map.getCanvas().style.cursor = 'pointer' }\r\n const mouseLeaveChangeCursor = () => { map.getCanvas().style.cursor = '' }\r\n\r\n // event listener for clicking on single point to zoom in and decluster, hover to change cursor\r\n map.on('click', 'sensors-clusters', zoomInToDecluster)\r\n map.on('mouseenter', 'sensors-clusters', mouseEnterChangeCursor)\r\n map.on('mouseleave', 'sensors-clusters', mouseLeaveChangeCursor)\r\n return () => {\r\n map.off('click', 'sensors-clusters', zoomInToDecluster)\r\n map.off('mouseenter', 'sensors-clusters', mouseEnterChangeCursor)\r\n map.off('mouseleave', 'sensors-clusters', mouseLeaveChangeCursor)\r\n }\r\n }, [map])\r\n\r\n const renderPopup = () => {\r\n if (!popupInfo) return null\r\n const sensorType = sensorTypes.find(t => t.id === popupInfo.typeId)\r\n const liveSensor = sensors.find(s => s.id === popupInfo.id)\r\n const dataUrl = popupInfo.url\r\n ? `${minioBaseUrl ?? ''}/sensors/${popupInfo.url}`\r\n : popupInfo.data || ''\r\n \r\n return (\r\n <Popup\r\n className=\"noBorderPopup\"\r\n longitude={popupInfo.longitude}\r\n latitude={popupInfo.latitude}\r\n closeOnClick={false}\r\n onClose={() => setPopUpInfo(null)}\r\n anchor=\"bottom\"\r\n style={{ height: '50px', border: 'none', boxShadow: 'none' }}\r\n offset={[0, 10]}\r\n >\r\n <Sensor\r\n sensorName={popupInfo.name || ''}\r\n sensorType={sensorType}\r\n sensorId={popupInfo.id}\r\n tags={liveSensor?.tags ?? []}\r\n onAddTag={async (tag) => { await updateSensor({ tags: [...(liveSensor?.tags ?? []), tag] }) }}\r\n onDeleteTag={async (tag) => { await updateSensor({ tags: (liveSensor?.tags ?? []).filter(t => t !== tag) }) }}\r\n tagsTranslations={{\r\n addTag: tSensors('addTag'),\r\n removeTag: tSensors('removeTag'),\r\n cancel: tSensors('cancel'),\r\n newTagPlaceholder: tSensors('newTagPlaceholder'),\r\n }}\r\n dataUrl={dataUrl}\r\n dataFormat={popupInfo.dataFormat}\r\n updateFrequency={popupInfo.updateFrequency}\r\n buildingId={popupInfo.buildingId}\r\n createdAt={popupInfo.createdAt}\r\n onRemove={user.id === String(popupInfo.authorId) ? handleRemoveSensor : null}\r\n onClose={() => setPopUpInfo(null)}\r\n size=\"sm\"\r\n />\r\n {/* inline styles to override MapLibre's Pop up CSS */}\r\n <style>\r\n {`\r\n .noBorderPopup .maplibregl-popup-content {\r\n border: none !important;\r\n box-shadow: none !important;\r\n background: transparent !important;\r\n }\r\n .noBorderPopup .maplibregl-popup-tip {\r\n display: none !important;\r\n }\r\n `}\r\n </style>\r\n </Popup>\r\n )\r\n }\r\n\r\n // Track unclustered sensors to display icons\r\n const [unclusteredFeatures, setUnclusteredFeatures] = React.useState<MapGeoJSONFeature[]>([])\r\n\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n const updateUnclusteredFeatures = () => {\r\n const allFeatures = map.querySourceFeatures('sensors')\r\n const unclusteredOnly = allFeatures.filter(\r\n (f) => !f.properties?.cluster && !f.properties?.point_count\r\n )\r\n // Deduplicate by id\r\n const uniqueFeatures = new Map()\r\n unclusteredOnly.forEach((f) => uniqueFeatures.set(f.properties.id, f))\r\n setUnclusteredFeatures(Array.from(uniqueFeatures.values()))\r\n }\r\n\r\n const onSourceData = (e: any) => {\r\n if (e?.sourceId === 'sensors') updateUnclusteredFeatures()\r\n }\r\n\r\n map.on('sourcedata', onSourceData)\r\n map.on('moveend', updateUnclusteredFeatures)\r\n map.on('zoomend', updateUnclusteredFeatures)\r\n\r\n updateUnclusteredFeatures()\r\n\r\n return () => {\r\n map.off('sourcedata', onSourceData)\r\n map.off('moveend', updateUnclusteredFeatures)\r\n map.off('zoomend', updateUnclusteredFeatures)\r\n }\r\n }, [map])\r\n\r\n return (\r\n <>\r\n {(typesVisible.length > 0 || tagsVisible.length > 0) &&\r\n <Source\r\n id=\"sensors\"\r\n type=\"geojson\"\r\n data={geojsonSensorData}\r\n cluster={true}\r\n clusterMaxZoom={14}\r\n clusterRadius={40}\r\n >\r\n <Layer {...clusterLayer} />\r\n <Layer {...clusterCountLayer} />\r\n <Layer {...unclusteredPointLayer} />\r\n\r\n {renderPopup()}\r\n {unclusteredFeatures\r\n .filter((feature) => feature.properties?.id !== popupInfo?.id)\r\n .map((feature) => (\r\n <SensorIconMarker\r\n key={String(feature.properties?.id)}\r\n feature={feature}\r\n isHighlighted={currentSensorId === feature.properties?.id || hoveredSensorId === feature.properties?.id}\r\n onMouseEnter={() => setHoveredSensorId(feature.properties?.id)}\r\n onMouseLeave={() => setHoveredSensorId(null)}\r\n sensorTypes={sensorTypes}\r\n />\r\n ))}\r\n </Source>}\r\n </>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAoDQ,SAoSJ,UApSI,KAgNF,YAhNE;AA/CR,SAAS,YAAY,oBAAoB;AACzC,YAAY,WAAW;AACvB,SAAS,QAAQ,OAAO,OAAO,cAAc;AAE7C,OAAO,YAAY;AACnB,SAAqB,mBAA0C;AAE/D,SAAS,6BAA4C;AACrD,SAAS,qCAAqC;AAC9C,SAAS,WAAW,kBAAkB;AACtC,SAAS,gBAAgB;AACzB,SAAS,aAAa;AACtB,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB,yBAAyB,mCAAmC;AACzF,SAAS,sBAAsB;AAC/B,YAAY,QAAQ;AACpB,SAAS,oBAAoB;AAE7B,MAAM,mBAAmB,CAAC,EAAE,SAAS,eAAe,cAAc,cAAc,YAAY,MAAgJ;AAxB5O;AA0BE,QAAM,SAAS,8BAA8B,OAAO;AACpD,MAAI,CAAC,OAAQ,QAAO;AAEpB,QAAM,aAAa,YAAY,KAAK,OAAE;AA7BxC,QAAAA;AA6B2C,aAAE,SAAOA,MAAA,QAAQ,eAAR,gBAAAA,IAAoB;AAAA,GAAM;AAC5E,QAAM,QAAO,yCAAY,SAAQ;AACjC,QAAM,aAAa,GAAG,IAAI,KAAK,GAAG;AAElC,SACE,oBAAC,UAA6E,WAAW,OAAO,KAAK,UAAU,OAAO,KAAK,QAAO,UAChI;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,QAAQ,gBAAgB,sBAAsB;AAAA,QAC9C,iBAAiB;AAAA,QACjB,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,WAAW,gBAAgB,sCAAsC;AAAA,QACjE,YAAY;AAAA,QACZ,WAAW,gBAAgB,eAAe;AAAA,MAC5C;AAAA,MACA;AAAA,MACA;AAAA,MAEA,8BAAC,cAAW,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,OAAO,iCAAiC,GAAG;AAAA;AAAA,EACjG,KAnBW,QAAO,mBAAQ,eAAR,mBAAoB,OAApB,YAA0B,GAAG,OAAO,GAAG,IAAI,OAAO,GAAG,EAAE,CAoB3E;AAEJ;AAEO,MAAM,eAAe,CAAC,EAAE,aAAa,MAAiC;AA1D7E;AA2DI,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM,SAAwB,IAAI;AAClF,QAAM,eAAe,mBAAmB,SAAS;AACjD,QAAM,oBAAoB,wBAAwB,SAAS;AAC3D,QAAM,wBAAwB,4BAA4B,SAAS;AAInE,QAAM,IAAI,gBAAgB,cAAc;AACxC,QAAM,WAAW,gBAAgB,gBAAgB;AAEjD,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,WAAW,UAAU;AACvD,QAAM,EAAE,KAAK,gBAAgB,IAAI,SAAS;AAC1C,QAAM,EAAE,QAAQ,IAAI,WAAW;AAC/B,QAAM,EAAE,MAAM,IAAI,SAAS;AAC3B,QAAM,QAAO,gBAAW,EAAE,SAAb,mBAAmB;AAEhC,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAA+D,IAAI;AAC3G,QAAM,EAAE,cAAc,aAAa,IAAI,WAAU,4CAAW,OAAX,YAAiB,IAAI;AACtE,QAAM,EAAE,OAAO,WAAW,IAAI,MAAM,WAAW,YAAY;AAC3D,QAAM,EAAE,oBAAoB,mBAAmB,gBAAgB,IAAI,WAAW;AAC9E,QAAM,gBAAe,yDAAqB,YAAY,SAAQ,CAAC;AAC/D,QAAM,eAAc,uDAAoB,YAAY,SAAQ,CAAC;AAE7D,QAAM,EAAC,YAAW,IAAI,eAAe;AAErC,QAAM,kBAAwF,QAC3F,OAAO,CAAC,WAAW,OAAO,WAAW,YAAY,GAAG,EACpD,OAAO,CAAC,WAAW;AAtFxB,QAAAA,KAAAC,KAAA;AAuFM,UAAM,cAAc,aAAa,SAAS,OAAO,MAAM;AACvD,UAAM,YAAY,GAACD,MAAA,OAAO,SAAP,gBAAAA,IAAa;AAChC,UAAM,aAAa,YACf,YAAY,SAAS,YAAY,KACjC,MAAAC,MAAA,OAAO,SAAP,gBAAAA,IAAa,KAAK,SAAO,YAAY,SAAS,GAAG,OAAjD,YAAuD;AAC3D,WAAO,eAAe;AAAA,EACxB,CAAC,EACA,IAAI,CAAC,WAAW;AA9FrB,QAAAD;AA+FM,UAAME,QAAO,MAAM,KAAK,OAAK,EAAE,OAAO,OAAO,QAAQ;AACrD,UAAM,aAAa,YAAY,KAAK,CAAAC,OAAKA,GAAE,OAAO,OAAO,MAAM;AAC/D,WAAO,iCACF,SADE;AAAA,MAEL,aAAYH,MAAAE,SAAA,gBAAAA,MAAM,SAAN,OAAAF,MAAc;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,CAAC;AAGH,QAAM,UAAU,MAAM;AACpB,QAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,UAAU,EAAE,GAAG;AAC5D,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,SAAS,SAAS,CAAC;AAEvB,QAAM,oBAAoB,MAAM,QAAQ,MAAM;AAC5C,UAAM,uBAAuB,CAAC,eAAyG;AACrI,YAAM,iBAA2E,WAC9E,IAAI,CAAC,WAAW;AACf,cAAM,EAAE,WAAW,UAAU,IAAI,MAAM,QAAQ,YAAY,MAAM,YAAY,iBAAiB,WAAW,UAAU,gBAAgB,SAAS,KAAK,WAAW,IAAI;AAEhK,eAAO;AAAA,UACL,MAAM;AAAA,UACN,UAAU;AAAA,YACR,MAAM;AAAA,YACN,aAAa,CAAC,WAAW,QAAQ;AAAA,UACnC;AAAA,UACA,YAAY;AAAA,YACV,IAAI,OAAO,EAAE;AAAA,YACb;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAU,OAAO,QAAQ;AAAA,YACzB;AAAA,YACA;AAAA,YACA,QAAQ,OAAO,MAAM;AAAA,YACrB,UAAU,yCAAY;AAAA,YACtB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,QAAQ,YAAY;AAAA,UACtB;AAAA,QACF;AAAA,MACF,CAAC;AAIH,YAAM,WAA6E;AAAA,QACjF,MAAM;AAAA,QACN,UAAU;AAAA,MACZ;AACA,aAAO;AAAA,IACT;AACA,WAAO,qBAAqB,eAAe;AAAA,EAC7C,GAAG,CAAC,eAAe,CAAC;AAGpB,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,IAAK;AACV,UAAM,kBAAiC,CAAC,GAAuB,aAAkC;AA9JrG,UAAAA,KAAAC;AA+JM,YAAM,UAAU,qCAAW;AAE3B,UAAI,CAAC,WAAW,QAAQ,WAAW,YAAa;AAEhD,UAAI,QAAQ,SAAS,QAAQ,QAAS;AACtC,YAAM,CAAC,WAAW,QAAQ,IAAI,QAAQ,SAAS;AAC/C,YAAM,EAAE,IAAI,UAAU,MAAM,QAAQ,MAAM,YAAY,iBAAiB,WAAW,IAAI,IAAI,QAAQ;AAClG,mBAAa;AAAA,QACX,IAAI,OAAO,EAAE;AAAA,QACb,UAAU,OAAO,QAAQ;AAAA,QACzB,iBAAgBD,MAAA,QAAQ,eAAR,gBAAAA,IAAoB;AAAA,QACpC,UAASC,MAAA,QAAQ,eAAR,gBAAAA,IAAoB;AAAA,QAC7B;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,OAAO,MAAM;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,YAAY;AAAA,MACtB,CAAC;AAAA,IACH;AAEA,UAAM,yBAAyB,MAAM;AACnC,UAAI,UAAU,EAAE,MAAM,SAAS;AAAA,IACjC;AACA,UAAM,yBAAyB,MAAM;AACnC,UAAI,UAAU,EAAE,MAAM,SAAS;AAAA,IACjC;AAGA,oBAAgB,SAAS,8BAA8B,sBAAsB,4BAA4B,eAAe;AAExH,QAAI,GAAG,cAAc,8BAA8B,sBAAsB;AACzE,QAAI,GAAG,cAAc,8BAA8B,sBAAsB;AACzE,WAAO,MAAM;AACX,sBAAgB,WAAW,4BAA4B;AACvD,UAAI,IAAI,cAAc,8BAA8B,sBAAsB;AAC1E,UAAI,IAAI,cAAc,8BAA8B,sBAAsB;AAAA,IAC5E;AAAA,EACF,GAAG,CAAC,KAAK,eAAe,CAAC;AAEzB,QAAM,qBAAqB,MAAM;AAC/B,UAAM,QAAQ,EAAE,eAAe,CAAC;AAChC,iBAAa;AACb,iBAAa,IAAI;AAAA,EACnB;AAGA,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,IAAK;AAEV,UAAM,oBAAoB,CAAC,MAA0B;AArNzD,UAAAD;AAsNM,YAAM,WAAUA,MAAA,EAAE,aAAF,gBAAAA,IAAa;AAC7B,UAAI,CAAC,WAAW,CAAC,QAAQ,WAAW,WAAY;AAEhD,YAAM,YAAY,QAAQ,WAAW;AAGrC,UAAI,EAAE,iBAAiB,QAAQ,UAAW;AAC1C,YAAM,CAAC,KAAK,GAAG,IAAI,QAAQ,SAAS;AAEpC,YAAM,SAAS,IAAI,UAAU,SAAS;AACtC,cAAQ,IAAI,MAAM;AAClB,cAAQ,IAAI,SAAS;AACrB,aAAO,wBAAwB,SAAS,EAAE;AAAA,QACxC,CAAC,SAAiB;AAChB,kBAAQ,IAAI,WAAW;AACvB,cAAI,OAAO,EAAE,QAAQ,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC;AAAA,QACzC;AAAA,MACF,EACG,MAAM,CAAC,UAAU;AAChB,gBAAQ,MAAM,KAAK;AAAA,MACrB,CAAC;AAAA,IACL;AAEA,UAAM,yBAAyB,MAAM;AAAE,UAAI,UAAU,EAAE,MAAM,SAAS;AAAA,IAAU;AAChF,UAAM,yBAAyB,MAAM;AAAE,UAAI,UAAU,EAAE,MAAM,SAAS;AAAA,IAAG;AAGzE,QAAI,GAAG,SAAS,oBAAoB,iBAAiB;AACrD,QAAI,GAAG,cAAc,oBAAoB,sBAAsB;AAC/D,QAAI,GAAG,cAAc,oBAAoB,sBAAsB;AAC/D,WAAO,MAAM;AACX,UAAI,IAAI,SAAS,oBAAoB,iBAAiB;AACtD,UAAI,IAAI,cAAc,oBAAoB,sBAAsB;AAChE,UAAI,IAAI,cAAc,oBAAoB,sBAAsB;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,GAAG,CAAC;AAER,QAAM,cAAc,MAAM;AA3P5B,QAAAA;AA4PI,QAAI,CAAC,UAAW,QAAO;AACvB,UAAM,aAAa,YAAY,KAAK,CAAAG,OAAKA,GAAE,OAAO,UAAU,MAAM;AAClE,UAAM,aAAa,QAAQ,KAAK,OAAK,EAAE,OAAO,UAAU,EAAE;AAC1D,UAAM,UAAU,UAAU,MACtB,GAAG,sCAAgB,EAAE,YAAY,UAAU,GAAG,KAC9C,UAAU,QAAQ;AAEtB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,WAAW,UAAU;AAAA,QACrB,UAAU,UAAU;AAAA,QACpB,cAAc;AAAA,QACd,SAAS,MAAM,aAAa,IAAI;AAAA,QAChC,QAAO;AAAA,QACP,OAAO,EAAE,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,OAAO;AAAA,QAC3D,QAAQ,CAAC,GAAG,EAAE;AAAA,QAEd;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,YAAY,UAAU,QAAQ;AAAA,cAC9B;AAAA,cACA,UAAU,UAAU;AAAA,cACpB,OAAMH,MAAA,yCAAY,SAAZ,OAAAA,MAAoB,CAAC;AAAA,cAC3B,UAAU,OAAO,QAAQ;AAnRnC,oBAAAA;AAmRqC,sBAAM,aAAa,EAAE,MAAM,CAAC,IAAIA,MAAA,yCAAY,SAAZ,OAAAA,MAAoB,CAAC,GAAI,GAAG,EAAE,CAAC;AAAA,cAAE;AAAA,cAC5F,aAAa,OAAO,QAAQ;AApRtC,oBAAAA;AAoRwC,sBAAM,aAAa,EAAE,QAAOA,MAAA,yCAAY,SAAZ,OAAAA,MAAoB,CAAC,GAAG,OAAO,CAAAG,OAAKA,OAAM,GAAG,EAAE,CAAC;AAAA,cAAE;AAAA,cAC5G,kBAAkB;AAAA,gBAChB,QAAQ,SAAS,QAAQ;AAAA,gBACzB,WAAW,SAAS,WAAW;AAAA,gBAC/B,QAAQ,SAAS,QAAQ;AAAA,gBACzB,mBAAmB,SAAS,mBAAmB;AAAA,cACjD;AAAA,cACA;AAAA,cACA,YAAY,UAAU;AAAA,cACtB,iBAAiB,UAAU;AAAA,cAC3B,YAAY,UAAU;AAAA,cACtB,WAAW,UAAU;AAAA,cACrB,UAAU,KAAK,OAAO,OAAO,UAAU,QAAQ,IAAI,qBAAqB;AAAA,cACxE,SAAS,MAAM,aAAa,IAAI;AAAA,cAChC,MAAK;AAAA;AAAA,UACP;AAAA,UAEA,oBAAC,WACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAUH;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AAGA,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,MAAM,SAA8B,CAAC,CAAC;AAE5F,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,IAAK;AAEV,UAAM,4BAA4B,MAAM;AACtC,YAAM,cAAc,IAAI,oBAAoB,SAAS;AACrD,YAAM,kBAAkB,YAAY;AAAA,QAClC,CAAC,MAAG;AA9TZ,cAAAH,KAAAC;AA8Te,oBAACD,MAAA,EAAE,eAAF,gBAAAA,IAAc,YAAW,GAACC,MAAA,EAAE,eAAF,gBAAAA,IAAc;AAAA;AAAA,MAClD;AAEA,YAAM,iBAAiB,oBAAI,IAAI;AAC/B,sBAAgB,QAAQ,CAAC,MAAM,eAAe,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC;AACrE,6BAAuB,MAAM,KAAK,eAAe,OAAO,CAAC,CAAC;AAAA,IAC5D;AAEA,UAAM,eAAe,CAAC,MAAW;AAC/B,WAAI,uBAAG,cAAa,UAAW,2BAA0B;AAAA,IAC3D;AAEA,QAAI,GAAG,cAAc,YAAY;AACjC,QAAI,GAAG,WAAW,yBAAyB;AAC3C,QAAI,GAAG,WAAW,yBAAyB;AAE3C,8BAA0B;AAE1B,WAAO,MAAM;AACX,UAAI,IAAI,cAAc,YAAY;AAClC,UAAI,IAAI,WAAW,yBAAyB;AAC5C,UAAI,IAAI,WAAW,yBAAyB;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,GAAG,CAAC;AAER,SACE,gCACA,wBAAa,SAAS,KAAK,YAAY,SAAS,MAChD;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,MAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,eAAe;AAAA,MAEf;AAAA,4BAAC,0BAAU,aAAc;AAAA,QACzB,oBAAC,0BAAU,kBAAmB;AAAA,QAC9B,oBAAC,0BAAU,sBAAuB;AAAA,QAEjC,YAAY;AAAA,QACZ,oBACE,OAAO,CAAC,YAAS;AAxW1B,cAAAD;AAwW6B,mBAAAA,MAAA,QAAQ,eAAR,gBAAAA,IAAoB,SAAO,uCAAW;AAAA,SAAE,EAC5D,IAAI,CAAC,YAAS;AAzWvB,cAAAA,KAAAC,KAAA;AA0WU;AAAA,YAAC;AAAA;AAAA,cAEC;AAAA,cACA,eAAe,sBAAoBA,MAAA,QAAQ,eAAR,gBAAAA,IAAoB,OAAM,sBAAoB,aAAQ,eAAR,mBAAoB;AAAA,cACrG,cAAc,MAAG;AA9W7B,oBAAAD;AA8WgC,2CAAmBA,MAAA,QAAQ,eAAR,gBAAAA,IAAoB,EAAE;AAAA;AAAA,cAC7D,cAAc,MAAM,mBAAmB,IAAI;AAAA,cAC3C;AAAA;AAAA,YALK,QAAOA,MAAA,QAAQ,eAAR,gBAAAA,IAAoB,EAAE;AAAA,UAMpC;AAAA,SACD;AAAA;AAAA;AAAA,EACL,GACA;AAEJ;","names":["_a","_b","user","t"]}
1
+ {"version":3,"sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as LR from 'lucide-react'\r\nimport { useSession } from 'next-auth/react'\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from 'react'\r\nimport { Source, Layer, Popup, Marker } from 'react-map-gl/maplibre'\r\nimport { toast } from 'sonner'\r\n\r\nimport { useSensor, useSensors } from '../../../../../../../hooks/sensors/sensors'\r\nimport { useSensorTypes } from '../../../../../../../hooks/sensorTypes/sensorTypes'\r\nimport { useUsers } from '../../../../../../../hooks/users/users'\r\nimport { MapContext, MenusContext } from '../../../../../../../store'\r\nimport { ViewerNames, type Sensor as ISensor} from '../../../../../../../types/dbTypes'\r\nimport Sensor from '../../../../../../ui/Sensors/Sensor'\r\nimport { UNTAGGED_TAG } from '../../../../../../ui/Sensors/SensorsSection'\r\nimport { extractCoordinatesFromFeature } from '../../../../utils/extractCoordinates'\r\nimport { MapLayerClickPriority } from '../../../../utils/MapEventManager/MapClickManager'\r\nimport { createClusterLayer, createClusterCountLayer, createUnclusteredPointLayer } from '../mapLayersUtils'\r\n\r\nimport type { SensorType} from '../../../../../../../types/dbTypes';\r\nimport type { ClickCallback } from '../../../../utils/MapEventManager/MapClickManager';\r\nimport type { MapGeoJSONFeature, MapLayerMouseEvent } from 'maplibre-gl'\r\n\r\nconst SensorIconMarker = ({ feature, isHighlighted, onMouseEnter, onMouseLeave, sensorTypes }: { feature: MapGeoJSONFeature; isHighlighted?: boolean; onMouseEnter?: () => void; onMouseLeave?: () => void; sensorTypes: SensorType[] }) => {\r\n\r\n const coords = extractCoordinatesFromFeature(feature)\r\n if (!coords) return null\r\n\r\n const sensorType = sensorTypes.find(t => t.id === feature.properties?.typeId)\r\n const icon = sensorType?.icon || 'Radio'\r\n const SensorIcon = LR[icon] || LR.Radio\r\n\r\n return (\r\n <Marker key={String(feature.properties?.id ?? `${coords.lng},${coords.lat}`)} longitude={coords.lng} latitude={coords.lat} anchor=\"center\">\r\n <div\r\n style={{\r\n width: '36px',\r\n height: '36px',\r\n borderRadius: '50%',\r\n border: isHighlighted ? '3px solid #73cee2' : '2px solid white',\r\n backgroundColor: 'black',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxShadow: isHighlighted ? '0 0 12px rgba(115, 206, 226, 0.5)' : 'none',\r\n transition: 'all 0.2s ease-in-out',\r\n transform: isHighlighted ? 'scale(1.2)' : 'scale(1)',\r\n }}\r\n onMouseEnter={onMouseEnter}\r\n onMouseLeave={onMouseLeave}\r\n >\r\n <SensorIcon style={{ width: '20px', height: '20px', color: 'hsl(var(--primary-foreground))' }} />\r\n </div>\r\n </Marker>\r\n )\r\n}\r\n\r\nexport const SensorLayers = ({ minioBaseUrl }: { minioBaseUrl?: string }) => {\r\n const [hoveredSensorId, setHoveredSensorId] = React.useState<number | null>(null)\r\n const clusterLayer = createClusterLayer('sensors')\r\n const clusterCountLayer = createClusterCountLayer('sensors')\r\n const unclusteredPointLayer = createUnclusteredPointLayer('sensors')\r\n\r\n // global map state\r\n\r\n const t = useTranslations('SensorLayers')\r\n const tSensors = useTranslations('SensorsSection')\r\n\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map, mapClickManager } = mapState.map\r\n const { sensors } = useSensors()\r\n const { users } = useUsers()\r\n const user = useSession().data?.user\r\n\r\n const [popupInfo, setPopUpInfo] = React.useState<Partial<ISensor & { sensorType: SensorType }> | null>(null)\r\n const { deleteSensor, updateSensor } = useSensor(popupInfo?.id ?? null)\r\n const { state: menusState } = React.useContext(MenusContext)\r\n const { visibleSensorTypes, visibleSensorTags, currentSensorId } = menusState.menus\r\n const typesVisible = visibleSensorTypes?.[ViewerNames.map] || []\r\n const tagsVisible = visibleSensorTags?.[ViewerNames.map] || []\r\n\r\n const {sensorTypes} = useSensorTypes()\r\n\r\n const eligibleSensors: Array<ISensor & { authorName: string } & { sensorType: SensorType }> = sensors\r\n .filter((sensor) => sensor.viewer === ViewerNames.map)\r\n .filter((sensor) => {\r\n const matchesType = typesVisible.includes(sensor.typeId)\r\n const hasNoTags = !sensor.tags?.length\r\n const matchesTag = hasNoTags\r\n ? tagsVisible.includes(UNTAGGED_TAG)\r\n : sensor.tags?.some(tag => tagsVisible.includes(tag)) ?? false\r\n return matchesType || matchesTag\r\n })\r\n .map((sensor) => {\r\n const user = users.find(u => u.id === sensor.authorId)\r\n const sensorType = sensorTypes.find(t => t.id === sensor.typeId)\r\n return {\r\n ...sensor,\r\n authorName: user?.name ?? 'Unknown User',\r\n sensorType,\r\n }\r\n })\r\n\r\n // Close popup if the sensor was deleted\r\n React.useEffect(() => {\r\n if (popupInfo && !sensors.find((s) => s.id === popupInfo.id)) {\r\n setPopUpInfo(null)\r\n }\r\n }, [sensors, popupInfo])\r\n\r\n const geojsonSensorData = React.useMemo(() => {\r\n const convertDataToGeojson = (sensorData: typeof eligibleSensors): GeoJSON.FeatureCollection<GeoJSON.Point, { [key: string]: any }> => {\r\n const sensorFeatures: GeoJSON.Feature<GeoJSON.Point, { [key: string]: any }>[] = sensorData\r\n .map((sensor) => {\r\n const { longitude, latitude, id, name, typeId, sensorType, data, dataFormat, updateFrequency, createdAt, authorId, organizationId, visible, url, authorName } = sensor\r\n\r\n return {\r\n type: 'Feature',\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [longitude, latitude],\r\n },\r\n properties: {\r\n id: Number(id),\r\n organizationId,\r\n visible,\r\n longitude,\r\n latitude,\r\n authorId: Number(authorId),\r\n authorName,\r\n name,\r\n typeId: Number(typeId),\r\n typeIcon: sensorType?.icon,\r\n data,\r\n dataFormat,\r\n updateFrequency,\r\n url,\r\n createdAt,\r\n viewer: ViewerNames.map,\r\n },\r\n }\r\n })\r\n\r\n\r\n\r\n const sensorFC: GeoJSON.FeatureCollection<GeoJSON.Point, { [key: string]: any }> = {\r\n type: 'FeatureCollection',\r\n features: sensorFeatures,\r\n }\r\n return sensorFC\r\n }\r\n return convertDataToGeojson(eligibleSensors)\r\n }, [eligibleSensors])\r\n\r\n // event listeners for sensor unclustered points\r\n React.useEffect(() => {\r\n if (!map) return\r\n const showSensorPopUp: ClickCallback = (e: MapLayerMouseEvent, features: MapGeoJSONFeature[]) => {\r\n const feature = features?.[0]\r\n\r\n if (!feature || feature.properties.point_count) return\r\n\r\n if (feature.geometry.type != 'Point') return\r\n const [longitude, latitude] = feature.geometry.coordinates\r\n const { id, authorId, name, typeId, data, dataFormat, updateFrequency, createdAt, url } = feature.properties\r\n setPopUpInfo({\r\n id: Number(id),\r\n authorId: Number(authorId),\r\n organizationId: feature.properties?.organizationId,\r\n visible: feature.properties?.visible,\r\n longitude,\r\n latitude,\r\n name,\r\n typeId: Number(typeId),\r\n data,\r\n dataFormat,\r\n updateFrequency,\r\n url,\r\n createdAt,\r\n viewer: ViewerNames.map,\r\n })\r\n }\r\n\r\n const mouseEnterChangeCursor = () => {\r\n map.getCanvas().style.cursor = 'pointer'\r\n }\r\n const mouseLeaveChangeCursor = () => {\r\n map.getCanvas().style.cursor = ''\r\n }\r\n\r\n // event listener for clicking on single point to show sensor, hover to change cursor\r\n mapClickManager.register('sensors-unclustered-points', MapLayerClickPriority.CommentLayersClickPriority, showSensorPopUp)\r\n\r\n map.on('mouseenter', 'sensors-unclustered-points', mouseEnterChangeCursor)\r\n map.on('mouseleave', 'sensors-unclustered-points', mouseLeaveChangeCursor)\r\n return () => {\r\n mapClickManager.unregister('sensors-unclustered-points')\r\n map.off('mouseenter', 'sensors-unclustered-points', mouseEnterChangeCursor)\r\n map.off('mouseleave', 'sensors-unclustered-points', mouseLeaveChangeCursor)\r\n }\r\n }, [map, mapClickManager])\r\n\r\n const handleRemoveSensor = () => {\r\n toast.success(t('sensorDeleted'))\r\n deleteSensor()\r\n setPopUpInfo(null)\r\n }\r\n\r\n // event listeners for clustered points\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n const zoomInToDecluster = (e: MapLayerMouseEvent) => {\r\n const feature = e.features?.[0] // only proceed if this is actually a cluster\r\n if (!feature || !feature.properties.cluster_id) return\r\n\r\n const clusterId = feature.properties.cluster_id as number\r\n\r\n // Check if geometry has coordinates (not a GeometryCollection)\r\n if (!('coordinates' in feature.geometry)) return\r\n const [lng, lat] = feature.geometry.coordinates as [number, number]\r\n\r\n const source = map.getSource('sensors') as any\r\n console.log(source)\r\n console.log(clusterId)\r\n source.getClusterExpansionZoom(clusterId).then(\r\n (zoom: number) => {\r\n console.log('easing to')\r\n map.easeTo({ center: [lng, lat], zoom })\r\n },\r\n )\r\n .catch((error) => {\r\n console.error(error)\r\n })\r\n }\r\n\r\n const mouseEnterChangeCursor = () => { map.getCanvas().style.cursor = 'pointer' }\r\n const mouseLeaveChangeCursor = () => { map.getCanvas().style.cursor = '' }\r\n\r\n // event listener for clicking on single point to zoom in and decluster, hover to change cursor\r\n map.on('click', 'sensors-clusters', zoomInToDecluster)\r\n map.on('mouseenter', 'sensors-clusters', mouseEnterChangeCursor)\r\n map.on('mouseleave', 'sensors-clusters', mouseLeaveChangeCursor)\r\n return () => {\r\n map.off('click', 'sensors-clusters', zoomInToDecluster)\r\n map.off('mouseenter', 'sensors-clusters', mouseEnterChangeCursor)\r\n map.off('mouseleave', 'sensors-clusters', mouseLeaveChangeCursor)\r\n }\r\n }, [map])\r\n\r\n const renderPopup = () => {\r\n if (!popupInfo) return null\r\n const sensorType = sensorTypes.find(t => t.id === popupInfo.typeId)\r\n const liveSensor = sensors.find(s => s.id === popupInfo.id)\r\n const dataUrl = popupInfo.url\r\n ? `${minioBaseUrl ?? ''}/sensors/${popupInfo.url}`\r\n : popupInfo.data || ''\r\n\r\n return (\r\n <Popup\r\n className=\"noBorderPopup\"\r\n longitude={popupInfo.longitude}\r\n latitude={popupInfo.latitude}\r\n closeOnClick={false}\r\n onClose={() => setPopUpInfo(null)}\r\n anchor=\"bottom\"\r\n style={{ height: '50px', border: 'none', boxShadow: 'none' }}\r\n offset={[0, 10]}\r\n >\r\n <Sensor\r\n sensorName={popupInfo.name || ''}\r\n sensorType={sensorType}\r\n sensorId={popupInfo.id}\r\n tags={liveSensor?.tags ?? []}\r\n onAddTag={async (tag) => { await updateSensor({ tags: [...(liveSensor?.tags ?? []), tag] }) }}\r\n onDeleteTag={async (tag) => { await updateSensor({ tags: (liveSensor?.tags ?? []).filter(t => t !== tag) }) }}\r\n tagsTranslations={{\r\n addTag: tSensors('addTag'),\r\n removeTag: tSensors('removeTag'),\r\n cancel: tSensors('cancel'),\r\n newTagPlaceholder: tSensors('newTagPlaceholder'),\r\n }}\r\n dataUrl={dataUrl}\r\n dataFormat={popupInfo.dataFormat}\r\n updateFrequency={popupInfo.updateFrequency}\r\n buildingId={popupInfo.buildingId}\r\n createdAt={popupInfo.createdAt}\r\n onRemove={user.id === String(popupInfo.authorId) ? handleRemoveSensor : null}\r\n onClose={() => setPopUpInfo(null)}\r\n size=\"sm\"\r\n />\r\n {/* inline styles to override MapLibre's Pop up CSS */}\r\n <style>\r\n {`\r\n .noBorderPopup .maplibregl-popup-content {\r\n border: none !important;\r\n box-shadow: none !important;\r\n background: transparent !important;\r\n }\r\n .noBorderPopup .maplibregl-popup-tip {\r\n display: none !important;\r\n }\r\n `}\r\n </style>\r\n </Popup>\r\n )\r\n }\r\n\r\n // Track unclustered sensors to display icons\r\n const [unclusteredFeatures, setUnclusteredFeatures] = React.useState<MapGeoJSONFeature[]>([])\r\n\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n const updateUnclusteredFeatures = () => {\r\n const allFeatures = map.querySourceFeatures('sensors')\r\n const unclusteredOnly = allFeatures.filter(\r\n (f) => !f.properties?.cluster && !f.properties?.point_count\r\n )\r\n // Deduplicate by id\r\n const uniqueFeatures = new Map()\r\n unclusteredOnly.forEach((f) => uniqueFeatures.set(f.properties.id, f))\r\n setUnclusteredFeatures(Array.from(uniqueFeatures.values()))\r\n }\r\n\r\n const onSourceData = (e: any) => {\r\n if (e?.sourceId === 'sensors') updateUnclusteredFeatures()\r\n }\r\n\r\n map.on('sourcedata', onSourceData)\r\n map.on('moveend', updateUnclusteredFeatures)\r\n map.on('zoomend', updateUnclusteredFeatures)\r\n\r\n updateUnclusteredFeatures()\r\n\r\n return () => {\r\n map.off('sourcedata', onSourceData)\r\n map.off('moveend', updateUnclusteredFeatures)\r\n map.off('zoomend', updateUnclusteredFeatures)\r\n }\r\n }, [map])\r\n\r\n return (\r\n <>\r\n {(typesVisible.length > 0 || tagsVisible.length > 0) &&\r\n <Source\r\n id=\"sensors\"\r\n type=\"geojson\"\r\n data={geojsonSensorData}\r\n cluster={true}\r\n clusterMaxZoom={14}\r\n clusterRadius={40}\r\n >\r\n <Layer {...clusterLayer} />\r\n <Layer {...clusterCountLayer} />\r\n <Layer {...unclusteredPointLayer} />\r\n\r\n {renderPopup()}\r\n {unclusteredFeatures\r\n .filter((feature) => feature.properties?.id !== popupInfo?.id)\r\n .map((feature) => (\r\n <SensorIconMarker\r\n key={String(feature.properties?.id)}\r\n feature={feature}\r\n isHighlighted={currentSensorId === feature.properties?.id || hoveredSensorId === feature.properties?.id}\r\n onMouseEnter={() => setHoveredSensorId(feature.properties?.id)}\r\n onMouseLeave={() => setHoveredSensorId(null)}\r\n sensorTypes={sensorTypes}\r\n />\r\n ))}\r\n </Source>}\r\n </>\r\n )\r\n}\r\n"],"mappings":"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","names":["_a","_b","user","t"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SiteContextMenu.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAE5E,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqI1D,CAAA"}
1
+ {"version":3,"file":"SiteContextMenu.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAE5E,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqI1D,CAAA"}
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
3
  import * as LR from "lucide-react";
5
4
  import { useTranslations } from "next-intl";
6
- import { Input } from "../../../../../../ui/Input";
5
+ import * as React from "react";
7
6
  import ConfirmDialog from "../../../../../../ConfirmDialog";
7
+ import { Input } from "../../../../../../ui/Input";
8
8
  const SiteContextMenu = ({
9
9
  x,
10
10
  y,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from 'react'\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { Input } from '../../../../../../ui/Input'\r\nimport { Button } from '../../../../../../ui/Button'\r\nimport ConfirmDialog from '../../../../../../ConfirmDialog'\r\nimport type { ShownSite } from '../../../../../../../store/MapSites/reducer'\r\n\r\nexport interface SiteContextMenuProps {\r\n x: number\r\n y: number\r\n site: ShownSite\r\n isEditing: boolean\r\n canUpdate: boolean\r\n canDelete: boolean\r\n canRead: boolean\r\n onClose: () => void\r\n onRename: (name: string) => void\r\n onToggleEdit: () => void\r\n onHide: () => void\r\n onInfo: () => void\r\n onDelete: () => void | Promise<void>\r\n}\r\n\r\nexport const SiteContextMenu: React.FC<SiteContextMenuProps> = ({\r\n x, y, site, isEditing, canUpdate, canDelete, canRead,\r\n onClose, onRename, onToggleEdit, onHide, onInfo, onDelete,\r\n}) => {\r\n const t = useTranslations('SiteContextMenu')\r\n // Translate with an English fallback so the menu is usable before the host\r\n // app's message catalog is updated (mirrors SiteAdder's approach).\r\n const tf = React.useCallback(\r\n (key: string, fallback: string) => (t.has(key) ? t(key) : fallback),\r\n [t],\r\n )\r\n\r\n const ref = React.useRef<HTMLDivElement>(null)\r\n const [name, setName] = React.useState(site.name)\r\n const [isDeleteOpen, setIsDeleteOpen] = React.useState(false)\r\n const [isDeleting, setIsDeleting] = React.useState(false)\r\n\r\n React.useEffect(() => { setName(site.name) }, [site.id, site.name])\r\n\r\n // Close on outside click / Escape, unless the delete confirmation is open or\r\n // the user is editing the polygon (dragging a vertex is an \"outside\" click).\r\n React.useEffect(() => {\r\n const onPointerDown = (e: MouseEvent) => {\r\n if (isDeleteOpen || isEditing) return\r\n if (ref.current && !ref.current.contains(e.target as Node)) onClose()\r\n }\r\n const onKey = (e: KeyboardEvent) => {\r\n if (isDeleteOpen || isEditing) return\r\n if (e.key === 'Escape') onClose()\r\n }\r\n document.addEventListener('mousedown', onPointerDown)\r\n document.addEventListener('keydown', onKey)\r\n return () => {\r\n document.removeEventListener('mousedown', onPointerDown)\r\n document.removeEventListener('keydown', onKey)\r\n }\r\n }, [isDeleteOpen, isEditing, onClose])\r\n\r\n const commitName = () => {\r\n const trimmed = name.trim()\r\n if (trimmed && trimmed !== site.name) onRename(trimmed)\r\n }\r\n\r\n const handleConfirmDelete = async (e: React.MouseEvent) => {\r\n e.preventDefault()\r\n setIsDeleting(true)\r\n try {\r\n await onDelete()\r\n }\r\n finally {\r\n setIsDeleting(false)\r\n setIsDeleteOpen(false)\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className=\"fixed z-50 w-56 rounded-md border bg-popover text-popover-foreground shadow-md p-1\"\r\n style={{ left: x, top: y }}\r\n onClick={e => e.stopPropagation()}\r\n >\r\n {/* Editable site name */}\r\n <div className=\"px-2 pt-1.5 pb-2\">\r\n <Input\r\n value={name}\r\n disabled={!canUpdate}\r\n onChange={e => setName(e.target.value)}\r\n onBlur={commitName}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); commitName(); (e.target as HTMLInputElement).blur() }\r\n }}\r\n placeholder={tf('namePlaceholder', 'Site name')}\r\n className=\"h-8 text-sm\"\r\n />\r\n </div>\r\n\r\n <div className=\"h-px bg-border my-1\" />\r\n\r\n <button\r\n type=\"button\"\r\n onClick={onToggleEdit}\r\n disabled={!canUpdate}\r\n className=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent disabled:opacity-50 disabled:pointer-events-none\"\r\n >\r\n {isEditing\r\n ? <LR.Check className=\"h-4 w-4\" />\r\n : <LR.PencilRuler className=\"h-4 w-4\" />}\r\n {isEditing ? tf('doneEditing', 'Done editing shape') : tf('editShape', 'Edit shape')}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n onClick={onHide}\r\n disabled={!canRead}\r\n className=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent disabled:opacity-50 disabled:pointer-events-none\"\r\n >\r\n <LR.EyeOff className=\"h-4 w-4\" />\r\n {tf('hide', 'Hide')}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n onClick={onInfo}\r\n disabled={!canRead}\r\n className=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent disabled:opacity-50 disabled:pointer-events-none\"\r\n >\r\n <LR.Info className=\"h-4 w-4\" />\r\n {tf('info', 'Site details')}\r\n </button>\r\n\r\n <div className=\"h-px bg-border my-1\" />\r\n\r\n <button\r\n type=\"button\"\r\n onClick={() => setIsDeleteOpen(true)}\r\n disabled={!canDelete}\r\n className=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-destructive hover:bg-accent disabled:opacity-50 disabled:pointer-events-none\"\r\n >\r\n <LR.Trash2 className=\"h-4 w-4\" />\r\n {tf('delete', 'Delete site')}\r\n </button>\r\n\r\n <ConfirmDialog\r\n isOpen={isDeleteOpen}\r\n isDeleting={isDeleting}\r\n onOpenChange={setIsDeleteOpen}\r\n handleConfirm={handleConfirmDelete}\r\n itemName={site.name}\r\n dataType={tf('siteDataType', 'site')}\r\n />\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from 'react'\r\n\r\nimport ConfirmDialog from '../../../../../../ConfirmDialog'\r\nimport { Button } from '../../../../../../ui/Button'\r\nimport { Input } from '../../../../../../ui/Input'\r\n\r\nimport type { ShownSite } from '../../../../../../../store/MapSites/reducer'\r\n\r\nexport interface SiteContextMenuProps {\r\n x: number\r\n y: number\r\n site: ShownSite\r\n isEditing: boolean\r\n canUpdate: boolean\r\n canDelete: boolean\r\n canRead: boolean\r\n onClose: () => void\r\n onRename: (name: string) => void\r\n onToggleEdit: () => void\r\n onHide: () => void\r\n onInfo: () => void\r\n onDelete: () => void | Promise<void>\r\n}\r\n\r\nexport const SiteContextMenu: React.FC<SiteContextMenuProps> = ({\r\n x, y, site, isEditing, canUpdate, canDelete, canRead,\r\n onClose, onRename, onToggleEdit, onHide, onInfo, onDelete,\r\n}) => {\r\n const t = useTranslations('SiteContextMenu')\r\n // Translate with an English fallback so the menu is usable before the host\r\n // app's message catalog is updated (mirrors SiteAdder's approach).\r\n const tf = React.useCallback(\r\n (key: string, fallback: string) => (t.has(key) ? t(key) : fallback),\r\n [t],\r\n )\r\n\r\n const ref = React.useRef<HTMLDivElement>(null)\r\n const [name, setName] = React.useState(site.name)\r\n const [isDeleteOpen, setIsDeleteOpen] = React.useState(false)\r\n const [isDeleting, setIsDeleting] = React.useState(false)\r\n\r\n React.useEffect(() => { setName(site.name) }, [site.id, site.name])\r\n\r\n // Close on outside click / Escape, unless the delete confirmation is open or\r\n // the user is editing the polygon (dragging a vertex is an \"outside\" click).\r\n React.useEffect(() => {\r\n const onPointerDown = (e: MouseEvent) => {\r\n if (isDeleteOpen || isEditing) return\r\n if (ref.current && !ref.current.contains(e.target as Node)) onClose()\r\n }\r\n const onKey = (e: KeyboardEvent) => {\r\n if (isDeleteOpen || isEditing) return\r\n if (e.key === 'Escape') onClose()\r\n }\r\n document.addEventListener('mousedown', onPointerDown)\r\n document.addEventListener('keydown', onKey)\r\n return () => {\r\n document.removeEventListener('mousedown', onPointerDown)\r\n document.removeEventListener('keydown', onKey)\r\n }\r\n }, [isDeleteOpen, isEditing, onClose])\r\n\r\n const commitName = () => {\r\n const trimmed = name.trim()\r\n if (trimmed && trimmed !== site.name) onRename(trimmed)\r\n }\r\n\r\n const handleConfirmDelete = async (e: React.MouseEvent) => {\r\n e.preventDefault()\r\n setIsDeleting(true)\r\n try {\r\n await onDelete()\r\n }\r\n finally {\r\n setIsDeleting(false)\r\n setIsDeleteOpen(false)\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className=\"fixed z-50 w-56 rounded-md border bg-popover text-popover-foreground shadow-md p-1\"\r\n style={{ left: x, top: y }}\r\n onClick={e => e.stopPropagation()}\r\n >\r\n {/* Editable site name */}\r\n <div className=\"px-2 pt-1.5 pb-2\">\r\n <Input\r\n value={name}\r\n disabled={!canUpdate}\r\n onChange={e => setName(e.target.value)}\r\n onBlur={commitName}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') { e.preventDefault(); commitName(); (e.target as HTMLInputElement).blur() }\r\n }}\r\n placeholder={tf('namePlaceholder', 'Site name')}\r\n className=\"h-8 text-sm\"\r\n />\r\n </div>\r\n\r\n <div className=\"h-px bg-border my-1\" />\r\n\r\n <button\r\n type=\"button\"\r\n onClick={onToggleEdit}\r\n disabled={!canUpdate}\r\n className=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent disabled:opacity-50 disabled:pointer-events-none\"\r\n >\r\n {isEditing\r\n ? <LR.Check className=\"h-4 w-4\" />\r\n : <LR.PencilRuler className=\"h-4 w-4\" />}\r\n {isEditing ? tf('doneEditing', 'Done editing shape') : tf('editShape', 'Edit shape')}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n onClick={onHide}\r\n disabled={!canRead}\r\n className=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent disabled:opacity-50 disabled:pointer-events-none\"\r\n >\r\n <LR.EyeOff className=\"h-4 w-4\" />\r\n {tf('hide', 'Hide')}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n onClick={onInfo}\r\n disabled={!canRead}\r\n className=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent disabled:opacity-50 disabled:pointer-events-none\"\r\n >\r\n <LR.Info className=\"h-4 w-4\" />\r\n {tf('info', 'Site details')}\r\n </button>\r\n\r\n <div className=\"h-px bg-border my-1\" />\r\n\r\n <button\r\n type=\"button\"\r\n onClick={() => setIsDeleteOpen(true)}\r\n disabled={!canDelete}\r\n className=\"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-destructive hover:bg-accent disabled:opacity-50 disabled:pointer-events-none\"\r\n >\r\n <LR.Trash2 className=\"h-4 w-4\" />\r\n {tf('delete', 'Delete site')}\r\n </button>\r\n\r\n <ConfirmDialog\r\n isOpen={isDeleteOpen}\r\n isDeleting={isDeleting}\r\n onOpenChange={setIsDeleteOpen}\r\n handleConfirm={handleConfirmDelete}\r\n itemName={site.name}\r\n dataType={tf('siteDataType', 'site')}\r\n />\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SiteLayer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA8D9B,eAAO,MAAM,SAAS,yBA+QrB,CAAA"}
1
+ {"version":3,"file":"SiteLayer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAgE9B,eAAO,MAAM,SAAS,yBA+QrB,CAAA"}
@@ -19,18 +19,18 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
19
19
  import * as React from "react";
20
20
  import { Source, Layer, Marker } from "react-map-gl/maplibre";
21
21
  import { toast } from "sonner";
22
+ import { useDeleteFile } from "../../../../../../../hooks/files/files";
23
+ import { useSite, useDeleteSite } from "../../../../../../../hooks/sites/sites";
22
24
  import {
23
25
  MapContext,
24
26
  usePermissions,
25
27
  useMenusContext,
26
28
  useMapSitesContext
27
29
  } from "../../../../../../../store";
28
- import { MapLayerClickPriority } from "../../../../utils/MapEventManager/MapClickManager";
29
30
  import { ViewerNames } from "../../../../../../../types/dbTypes";
30
- import { useSite, useDeleteSite } from "../../../../../../../hooks/sites/sites";
31
- import { useDeleteFile } from "../../../../../../../hooks/files/files";
32
- import { polygonCentroid, uploadGeoJsonToAsset, pointToSegmentDistance } from "./siteGeometry";
31
+ import { MapLayerClickPriority } from "../../../../utils/MapEventManager/MapClickManager";
33
32
  import { SiteContextMenu } from "./SiteContextMenu";
33
+ import { polygonCentroid, uploadGeoJsonToAsset, pointToSegmentDistance } from "./siteGeometry";
34
34
  const SITE_FILL_ID = "site-fill";
35
35
  const SITE_OUTLINE_ID = "site-outline";
36
36
  const SITE_LABEL_ID = "site-label";