@collabdt/core 0.2.1 → 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 (1286) 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.d.ts +8 -0
  1169. package/dist/core/i18n/index.d.ts.map +1 -0
  1170. package/dist/core/i18n/index.js +8 -0
  1171. package/dist/core/i18n/index.js.map +1 -0
  1172. package/dist/core/i18n/messages/en.json +1873 -0
  1173. package/dist/core/i18n/messages/es.json +1870 -0
  1174. package/dist/core/i18n/messages/fr.json +1870 -0
  1175. package/dist/core/plugins/host/context.d.ts +1 -1
  1176. package/dist/core/plugins/host/context.d.ts.map +1 -1
  1177. package/dist/core/plugins/host/context.js.map +1 -1
  1178. package/dist/core/plugins/host/host.d.ts +1 -1
  1179. package/dist/core/plugins/host/host.d.ts.map +1 -1
  1180. package/dist/core/plugins/host/host.js.map +1 -1
  1181. package/dist/core/plugins/host/provider.d.ts.map +1 -1
  1182. package/dist/core/plugins/host/provider.js +2 -2
  1183. package/dist/core/plugins/host/provider.js.map +1 -1
  1184. package/dist/core/store/AppConfig/context.d.ts +1 -1
  1185. package/dist/core/store/AppConfig/context.d.ts.map +1 -1
  1186. package/dist/core/store/AppConfig/context.js.map +1 -1
  1187. package/dist/core/store/AppConfig/reducer.d.ts +2 -2
  1188. package/dist/core/store/AppConfig/reducer.d.ts.map +1 -1
  1189. package/dist/core/store/AppConfig/reducer.js.map +1 -1
  1190. package/dist/core/store/BIM/context.d.ts +1 -1
  1191. package/dist/core/store/BIM/context.d.ts.map +1 -1
  1192. package/dist/core/store/BIM/context.js.map +1 -1
  1193. package/dist/core/store/BIM/reducer.d.ts +3 -3
  1194. package/dist/core/store/BIM/reducer.d.ts.map +1 -1
  1195. package/dist/core/store/BIM/reducer.js.map +1 -1
  1196. package/dist/core/store/Buildings/context.d.ts +1 -1
  1197. package/dist/core/store/Buildings/context.d.ts.map +1 -1
  1198. package/dist/core/store/Buildings/context.js.map +1 -1
  1199. package/dist/core/store/Buildings/reducer.d.ts +2 -2
  1200. package/dist/core/store/Buildings/reducer.d.ts.map +1 -1
  1201. package/dist/core/store/Buildings/reducer.js.map +1 -1
  1202. package/dist/core/store/CombineProviders.d.ts.map +1 -1
  1203. package/dist/core/store/CombineProviders.js +7 -7
  1204. package/dist/core/store/CombineProviders.js.map +1 -1
  1205. package/dist/core/store/Content/context.d.ts +1 -1
  1206. package/dist/core/store/Content/context.d.ts.map +1 -1
  1207. package/dist/core/store/Content/context.js.map +1 -1
  1208. package/dist/core/store/Datasets/context.d.ts +1 -1
  1209. package/dist/core/store/Datasets/context.d.ts.map +1 -1
  1210. package/dist/core/store/Datasets/context.js.map +1 -1
  1211. package/dist/core/store/Datasets/reducer.d.ts +1 -1
  1212. package/dist/core/store/Datasets/reducer.d.ts.map +1 -1
  1213. package/dist/core/store/Datasets/reducer.js.map +1 -1
  1214. package/dist/core/store/Files/context.d.ts +1 -1
  1215. package/dist/core/store/Files/context.d.ts.map +1 -1
  1216. package/dist/core/store/Files/context.js.map +1 -1
  1217. package/dist/core/store/Files/reducer.d.ts +3 -3
  1218. package/dist/core/store/Files/reducer.d.ts.map +1 -1
  1219. package/dist/core/store/Files/reducer.js.map +1 -1
  1220. package/dist/core/store/Map/context.d.ts +1 -1
  1221. package/dist/core/store/Map/context.d.ts.map +1 -1
  1222. package/dist/core/store/Map/context.js +1 -1
  1223. package/dist/core/store/Map/context.js.map +1 -1
  1224. package/dist/core/store/Map/reducer.d.ts +6 -5
  1225. package/dist/core/store/Map/reducer.d.ts.map +1 -1
  1226. package/dist/core/store/Map/reducer.js.map +1 -1
  1227. package/dist/core/store/MapSites/context.d.ts +1 -1
  1228. package/dist/core/store/MapSites/context.d.ts.map +1 -1
  1229. package/dist/core/store/MapSites/context.js.map +1 -1
  1230. package/dist/core/store/MapSites/reducer.d.ts +1 -1
  1231. package/dist/core/store/MapSites/reducer.d.ts.map +1 -1
  1232. package/dist/core/store/MapSites/reducer.js.map +1 -1
  1233. package/dist/core/store/Menus/context.d.ts +1 -1
  1234. package/dist/core/store/Menus/context.d.ts.map +1 -1
  1235. package/dist/core/store/Menus/context.js +2 -2
  1236. package/dist/core/store/Menus/context.js.map +1 -1
  1237. package/dist/core/store/Menus/reducer.d.ts +1 -1
  1238. package/dist/core/store/Menus/reducer.d.ts.map +1 -1
  1239. package/dist/core/store/Menus/reducer.js.map +1 -1
  1240. package/dist/core/store/Permissions/context.d.ts +1 -1
  1241. package/dist/core/store/Permissions/context.d.ts.map +1 -1
  1242. package/dist/core/store/Permissions/context.js +2 -2
  1243. package/dist/core/store/Permissions/context.js.map +1 -1
  1244. package/dist/core/store/PointCloud/context.d.ts +1 -1
  1245. package/dist/core/store/PointCloud/context.d.ts.map +1 -1
  1246. package/dist/core/store/PointCloud/context.js.map +1 -1
  1247. package/dist/core/store/PointCloud/reducer.d.ts +1 -1
  1248. package/dist/core/store/PointCloud/reducer.d.ts.map +1 -1
  1249. package/dist/core/store/PointCloud/reducer.js.map +1 -1
  1250. package/dist/core/store/Tools/context.d.ts +1 -1
  1251. package/dist/core/store/Tools/context.d.ts.map +1 -1
  1252. package/dist/core/store/Tools/context.js.map +1 -1
  1253. package/dist/core/store/Tools/reducer.d.ts +1 -1
  1254. package/dist/core/store/Tools/reducer.d.ts.map +1 -1
  1255. package/dist/core/store/Tools/reducer.js.map +1 -1
  1256. package/dist/core/styles/globals.css +17 -16
  1257. package/dist/core/styles/tailwindMerge.d.ts +1 -1
  1258. package/dist/core/styles/tailwindMerge.d.ts.map +1 -1
  1259. package/dist/core/styles/tailwindMerge.js.map +1 -1
  1260. package/dist/core/types/datasetTypes.d.ts +2 -2
  1261. package/dist/core/types/datasetTypes.d.ts.map +1 -1
  1262. package/dist/core/types/dbTypes.d.ts +1 -1
  1263. package/dist/core/types/dbTypes.d.ts.map +1 -1
  1264. package/dist/core/types/dbTypes.js.map +1 -1
  1265. package/dist/core/types/files.d.ts +2 -2
  1266. package/dist/core/types/files.d.ts.map +1 -1
  1267. package/dist/core/types/global.d.ts +3 -3
  1268. package/dist/core/types/global.d.ts.map +1 -1
  1269. package/dist/core/types/global.js.map +1 -1
  1270. package/dist/core/types/map.d.ts +2 -2
  1271. package/dist/core/types/map.d.ts.map +1 -1
  1272. package/dist/core/types/tools.d.ts +3 -3
  1273. package/dist/core/types/tools.d.ts.map +1 -1
  1274. package/dist/core/types/users.d.ts +2 -2
  1275. package/dist/core/types/users.d.ts.map +1 -1
  1276. package/dist/core/utils/getFileIcon.d.ts +1 -1
  1277. package/dist/core/utils/getFileIcon.d.ts.map +1 -1
  1278. package/dist/core/utils/getFileIcon.js.map +1 -1
  1279. package/dist/core/utils/memcache.js.map +1 -1
  1280. package/dist/core/utils/roles.d.ts.map +1 -1
  1281. package/dist/core/utils/roles.js.map +1 -1
  1282. package/dist/core/utils/timeUtils.js.map +1 -1
  1283. package/dist/core/utils/utils.d.ts +1 -1
  1284. package/dist/core/utils/utils.d.ts.map +1 -1
  1285. package/dist/core/utils/utils.js.map +1 -1
  1286. package/package.json +13 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.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 { useTranslations } from 'next-intl'\r\nimport * as LR from 'lucide-react'\r\nimport { ColorInput } from '../../../../../../../ui/Input'\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../../../../../ui/Select'\r\nimport { Tabs, TabsList, TabsTrigger } from '../../../../../../../ui/Tabs'\r\nimport { AppConfigContext, MapContext } from '../../../../../../../../store'\r\nimport { TerrainLevel } from './TerrainLevel'\r\nimport { buildMapStylesCatalog, resolveMapStyle } from '../../../../../utils/mapStyleCatalog'\r\nimport { MapProjection } from './MapProjection'\r\n\r\nexport function MapCustomization() {\r\n // Translation\r\n const tSettings = useTranslations('SettingsTab')\r\n const tMap = useTranslations('MapCustomization')\r\n\r\n // Contexts\r\n const { state: appConfigState } = React.useContext(AppConfigContext)\r\n const { dispatch: mapDispatch, state: mapState } = React.useContext(MapContext)\r\n const { dimensionsColour, mapStyle: currentMapStyle } = mapState.map\r\n\r\n const mapStylesArray = React.useMemo(\r\n () => buildMapStylesCatalog(appConfigState.appConfig.organization?.mapStyles),\r\n [appConfigState.appConfig.organization?.mapStyles],\r\n )\r\n\r\n const resolvedMapStyle = React.useMemo(\r\n () => resolveMapStyle(currentMapStyle, mapStylesArray),\r\n [currentMapStyle, mapStylesArray],\r\n )\r\n\r\n const handleDimensionsColour = (value: string) => {\r\n mapDispatch({ type: 'UPDATE_DIMENSIONS_COLOUR', payload: { dimensionsColour: value } })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n {/* Map Style Selector */}\r\n <div className=\"space-y-2\">\r\n <label className=\"text-sm font-medium\">{tSettings('mapStyle')}</label>\r\n <Select\r\n value={resolvedMapStyle.url}\r\n onValueChange={(value: string) => {\r\n const selectedStyle = mapStylesArray.find(style => style.url === value)\r\n if (selectedStyle) {\r\n mapDispatch({ type: 'UPDATE_MAP_STYLE', payload: { mapStyle: selectedStyle } })\r\n }\r\n }}\r\n >\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {mapStylesArray.map((mapStyle, index) => (\r\n <SelectItem key={index} value={mapStyle.url}>\r\n {mapStyle.name}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n\r\n {/* Terrain */}\r\n <TerrainLevel />\r\n\r\n {/* Map Projection */}\r\n <MapProjection />\r\n\r\n {/* Dimensions Colour */}\r\n <div className=\"space-y-2\">\r\n <label className=\"text-sm font-medium\">{tMap('dimensionsColour')}</label>\r\n <div className=\"p-2 border rounded-md bg-white\">\r\n <ColorInput\r\n value={dimensionsColour}\r\n onInput={e => handleDimensionsColour(e.currentTarget.value)}\r\n defaultColor={dimensionsColour}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"mappings":";AA4CQ,cACA,YADA;AAvCR,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAEhC,SAAS,kBAAkB;AAC3B,SAAS,QAAQ,eAAe,YAAY,eAAe,mBAAmB;AAE9E,SAAS,kBAAkB,kBAAkB;AAC7C,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB,uBAAuB;AACvD,SAAS,qBAAqB;AAEvB,SAAS,mBAAmB;AAhBnC;AAkBE,QAAM,YAAY,gBAAgB,aAAa;AAC/C,QAAM,OAAO,gBAAgB,kBAAkB;AAG/C,QAAM,EAAE,OAAO,eAAe,IAAI,MAAM,WAAW,gBAAgB;AACnE,QAAM,EAAE,UAAU,aAAa,OAAO,SAAS,IAAI,MAAM,WAAW,UAAU;AAC9E,QAAM,EAAE,kBAAkB,UAAU,gBAAgB,IAAI,SAAS;AAEjE,QAAM,iBAAiB,MAAM;AAAA,IAC3B,MAAG;AA3BP,UAAAA;AA2BU,oCAAsBA,MAAA,eAAe,UAAU,iBAAzB,gBAAAA,IAAuC,SAAS;AAAA;AAAA,IAC5E,EAAC,oBAAe,UAAU,iBAAzB,mBAAuC,SAAS;AAAA,EACnD;AAEA,QAAM,mBAAmB,MAAM;AAAA,IAC7B,MAAM,gBAAgB,iBAAiB,cAAc;AAAA,IACrD,CAAC,iBAAiB,cAAc;AAAA,EAClC;AAEA,QAAM,yBAAyB,CAAC,UAAkB;AAChD,gBAAY,EAAE,MAAM,4BAA4B,SAAS,EAAE,kBAAkB,MAAM,EAAE,CAAC;AAAA,EACxF;AAEA,SACE,qBAAC,SAAI,WAAU,aAEb;AAAA,yBAAC,SAAI,WAAU,aACb;AAAA,0BAAC,WAAM,WAAU,uBAAuB,oBAAU,UAAU,GAAE;AAAA,MAC9D;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,iBAAiB;AAAA,UACxB,eAAe,CAAC,UAAkB;AAChC,kBAAM,gBAAgB,eAAe,KAAK,WAAS,MAAM,QAAQ,KAAK;AACtE,gBAAI,eAAe;AACjB,0BAAY,EAAE,MAAM,oBAAoB,SAAS,EAAE,UAAU,cAAc,EAAE,CAAC;AAAA,YAChF;AAAA,UACF;AAAA,UAEA;AAAA,gCAAC,iBACC,8BAAC,eAAY,GACf;AAAA,YACA,oBAAC,iBACE,yBAAe,IAAI,CAAC,UAAU,UAC7B,oBAAC,cAAuB,OAAO,SAAS,KACrC,mBAAS,QADK,KAEjB,CACD,GACH;AAAA;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAGA,oBAAC,gBAAa;AAAA,IAGd,oBAAC,iBAAc;AAAA,IAGf,qBAAC,SAAI,WAAU,aACb;AAAA,0BAAC,WAAM,WAAU,uBAAuB,eAAK,kBAAkB,GAAE;AAAA,MACjE,oBAAC,SAAI,WAAU,kCACb;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,UACP,SAAS,OAAK,uBAAuB,EAAE,cAAc,KAAK;AAAA,UAC1D,cAAc;AAAA;AAAA,MAChB,GACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":["_a"]}
1
+ {"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.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 { AppConfigContext, MapContext } from '../../../../../../../../store'\r\nimport { ColorInput } from '../../../../../../../ui/Input'\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../../../../../ui/Select'\r\nimport { Tabs, TabsList, TabsTrigger } from '../../../../../../../ui/Tabs'\r\nimport { buildMapStylesCatalog, resolveMapStyle } from '../../../../../utils/mapStyleCatalog'\r\n\r\nimport { MapProjection } from './MapProjection'\r\nimport { TerrainLevel } from './TerrainLevel'\r\n\r\n\r\n\r\nexport function MapCustomization() {\r\n // Translation\r\n const tSettings = useTranslations('SettingsTab')\r\n const tMap = useTranslations('MapCustomization')\r\n\r\n // Contexts\r\n const { state: appConfigState } = React.useContext(AppConfigContext)\r\n const { dispatch: mapDispatch, state: mapState } = React.useContext(MapContext)\r\n const { dimensionsColour, mapStyle: currentMapStyle } = mapState.map\r\n\r\n const mapStylesArray = React.useMemo(\r\n () => buildMapStylesCatalog(appConfigState.appConfig.organization?.mapStyles),\r\n [appConfigState.appConfig.organization?.mapStyles],\r\n )\r\n\r\n const resolvedMapStyle = React.useMemo(\r\n () => resolveMapStyle(currentMapStyle, mapStylesArray),\r\n [currentMapStyle, mapStylesArray],\r\n )\r\n\r\n const handleDimensionsColour = (value: string) => {\r\n mapDispatch({ type: 'UPDATE_DIMENSIONS_COLOUR', payload: { dimensionsColour: value } })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n {/* Map Style Selector */}\r\n <div className=\"space-y-2\">\r\n <label className=\"text-sm font-medium\">{tSettings('mapStyle')}</label>\r\n <Select\r\n value={resolvedMapStyle.url}\r\n onValueChange={(value: string) => {\r\n const selectedStyle = mapStylesArray.find(style => style.url === value)\r\n if (selectedStyle) {\r\n mapDispatch({ type: 'UPDATE_MAP_STYLE', payload: { mapStyle: selectedStyle } })\r\n }\r\n }}\r\n >\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {mapStylesArray.map((mapStyle, index) => (\r\n <SelectItem key={index} value={mapStyle.url}>\r\n {mapStyle.name}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n\r\n {/* Terrain */}\r\n <TerrainLevel />\r\n\r\n {/* Map Projection */}\r\n <MapProjection />\r\n\r\n {/* Dimensions Colour */}\r\n <div className=\"space-y-2\">\r\n <label className=\"text-sm font-medium\">{tMap('dimensionsColour')}</label>\r\n <div className=\"p-2 border rounded-md bg-white\">\r\n <ColorInput\r\n value={dimensionsColour}\r\n onInput={e => handleDimensionsColour(e.currentTarget.value)}\r\n defaultColor={dimensionsColour}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"mappings":";AAgDQ,cACA,YADA;AA1CR,SAAS,uBAAuB;AAChC,YAAY,WAAW;AAEvB,SAAS,kBAAkB,kBAAkB;AAC7C,SAAS,kBAAkB;AAC3B,SAAS,QAAQ,eAAe,YAAY,eAAe,mBAAmB;AAE9E,SAAS,uBAAuB,uBAAuB;AAEvD,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAItB,SAAS,mBAAmB;AApBnC;AAsBE,QAAM,YAAY,gBAAgB,aAAa;AAC/C,QAAM,OAAO,gBAAgB,kBAAkB;AAG/C,QAAM,EAAE,OAAO,eAAe,IAAI,MAAM,WAAW,gBAAgB;AACnE,QAAM,EAAE,UAAU,aAAa,OAAO,SAAS,IAAI,MAAM,WAAW,UAAU;AAC9E,QAAM,EAAE,kBAAkB,UAAU,gBAAgB,IAAI,SAAS;AAEjE,QAAM,iBAAiB,MAAM;AAAA,IAC3B,MAAG;AA/BP,UAAAA;AA+BU,oCAAsBA,MAAA,eAAe,UAAU,iBAAzB,gBAAAA,IAAuC,SAAS;AAAA;AAAA,IAC5E,EAAC,oBAAe,UAAU,iBAAzB,mBAAuC,SAAS;AAAA,EACnD;AAEA,QAAM,mBAAmB,MAAM;AAAA,IAC7B,MAAM,gBAAgB,iBAAiB,cAAc;AAAA,IACrD,CAAC,iBAAiB,cAAc;AAAA,EAClC;AAEA,QAAM,yBAAyB,CAAC,UAAkB;AAChD,gBAAY,EAAE,MAAM,4BAA4B,SAAS,EAAE,kBAAkB,MAAM,EAAE,CAAC;AAAA,EACxF;AAEA,SACE,qBAAC,SAAI,WAAU,aAEb;AAAA,yBAAC,SAAI,WAAU,aACb;AAAA,0BAAC,WAAM,WAAU,uBAAuB,oBAAU,UAAU,GAAE;AAAA,MAC9D;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,iBAAiB;AAAA,UACxB,eAAe,CAAC,UAAkB;AAChC,kBAAM,gBAAgB,eAAe,KAAK,WAAS,MAAM,QAAQ,KAAK;AACtE,gBAAI,eAAe;AACjB,0BAAY,EAAE,MAAM,oBAAoB,SAAS,EAAE,UAAU,cAAc,EAAE,CAAC;AAAA,YAChF;AAAA,UACF;AAAA,UAEA;AAAA,gCAAC,iBACC,8BAAC,eAAY,GACf;AAAA,YACA,oBAAC,iBACE,yBAAe,IAAI,CAAC,UAAU,UAC7B,oBAAC,cAAuB,OAAO,SAAS,KACrC,mBAAS,QADK,KAEjB,CACD,GACH;AAAA;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAGA,oBAAC,gBAAa;AAAA,IAGd,oBAAC,iBAAc;AAAA,IAGf,qBAAC,SAAI,WAAU,aACb;AAAA,0BAAC,WAAM,WAAU,uBAAuB,eAAK,kBAAkB,GAAE;AAAA,MACjE,oBAAC,SAAI,WAAU,kCACb;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,UACP,SAAS,OAAK,uBAAuB,EAAE,cAAc,KAAK;AAAA,UAC1D,cAAc;AAAA;AAAA,MAChB,GACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":["_a"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MapProjection.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,wBAAgB,aAAa,sBAyE5B"}
1
+ {"version":3,"file":"MapProjection.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,wBAAgB,aAAa,sBAyE5B"}
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { useTranslations } from "next-intl";
5
3
  import * as LR from "lucide-react";
6
- import { Tabs, TabsList, TabsTrigger } from "../../../../../../../ui/Tabs";
4
+ import { useTranslations } from "next-intl";
5
+ import * as React from "react";
7
6
  import { MapContext } from "../../../../../../../../store";
7
+ import { Tabs, TabsList, TabsTrigger } from "../../../../../../../ui/Tabs";
8
8
  const MAX_GLOBE_ZOOM = 5;
9
9
  function MapProjection() {
10
10
  const tMap = useTranslations("MapCustomization");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.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 { useTranslations } from 'next-intl'\r\nimport * as LR from 'lucide-react'\r\nimport { Tabs, TabsList, TabsTrigger } from '../../../../../../../ui/Tabs'\r\nimport { MapContext } from '../../../../../../../../store'\r\n\r\ntype MapProjectionType = 'globe' | 'mercator'\r\n\r\nconst MAX_GLOBE_ZOOM = 5\r\n\r\nexport function MapProjection() {\r\n const tMap = useTranslations('MapCustomization')\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n const [mapProjection, setMapProjection] = React.useState<MapProjectionType>('globe')\r\n\r\n const getCurrentProjection = React.useCallback((): MapProjectionType => {\r\n if (!map) return 'globe'\r\n\r\n const projection = map.getProjection()\r\n\r\n if (typeof projection === 'string') {\r\n return projection === 'globe' ? 'globe' : 'mercator'\r\n }\r\n\r\n const projectionType =\r\n (projection as { type?: string; name?: string })?.type ??\r\n (projection as { type?: string; name?: string })?.name\r\n\r\n return projectionType === 'globe' ? 'globe' : 'mercator'\r\n }, [map])\r\n\r\n // Display-only sync. The zoom-based enforcement (forcing mercator past\r\n // MAX_GLOBE_ZOOM) now lives in MapViewer so it runs whether or not this\r\n // settings panel is mounted; here we just mirror the map's current projection\r\n // into the toggle UI.\r\n const syncProjectionDisplay = React.useCallback(() => {\r\n if (!map) return\r\n\r\n setMapProjection(getCurrentProjection())\r\n }, [getCurrentProjection, map])\r\n\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n syncProjectionDisplay()\r\n\r\n map.on('zoom', syncProjectionDisplay)\r\n\r\n return () => {\r\n map.off('zoom', syncProjectionDisplay)\r\n }\r\n }, [map, syncProjectionDisplay])\r\n\r\n const handleMapProjection = (value: MapProjectionType) => {\r\n if (!map) return\r\n\r\n const forcedProjection = map.getZoom() > MAX_GLOBE_ZOOM ? 'mercator' : value\r\n\r\n if (getCurrentProjection() !== forcedProjection) {\r\n map.setProjection({ type: forcedProjection })\r\n }\r\n\r\n setMapProjection(forcedProjection)\r\n }\r\n\r\n return (\r\n <div className=\"space-y-2\">\r\n <label className=\"text-sm font-medium\">{tMap('mapProjection')}</label>\r\n <Tabs value={mapProjection} onValueChange={value => handleMapProjection(value as MapProjectionType)} variant=\"switch\">\r\n <TabsList className=\"grid w-full grid-cols-2\">\r\n <TabsTrigger value=\"globe\">\r\n <LR.Globe className=\"w-4 h-4 mr-2\" />\r\n {tMap('globe')}\r\n </TabsTrigger>\r\n <TabsTrigger value=\"mercator\">\r\n <LR.Map className=\"w-4 h-4 mr-2\" />\r\n {tMap('mercator')}\r\n </TabsTrigger>\r\n </TabsList>\r\n </Tabs>\r\n </div>\r\n )\r\n}\r\n"],"mappings":";AAyEM,cAGI,YAHJ;AApEN,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAChC,YAAY,QAAQ;AACpB,SAAS,MAAM,UAAU,mBAAmB;AAC5C,SAAS,kBAAkB;AAI3B,MAAM,iBAAiB;AAEhB,SAAS,gBAAgB;AAC9B,QAAM,OAAO,gBAAgB,kBAAkB;AAC/C,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,WAAW,UAAU;AACvD,QAAM,EAAE,IAAI,IAAI,SAAS;AACzB,QAAM,CAAC,eAAe,gBAAgB,IAAI,MAAM,SAA4B,OAAO;AAEnF,QAAM,uBAAuB,MAAM,YAAY,MAAyB;AArB1E;AAsBI,QAAI,CAAC,IAAK,QAAO;AAEjB,UAAM,aAAa,IAAI,cAAc;AAErC,QAAI,OAAO,eAAe,UAAU;AAClC,aAAO,eAAe,UAAU,UAAU;AAAA,IAC5C;AAEA,UAAM,kBACH,8CAAiD,SAAjD,YACA,yCAAiD;AAEpD,WAAO,mBAAmB,UAAU,UAAU;AAAA,EAChD,GAAG,CAAC,GAAG,CAAC;AAMR,QAAM,wBAAwB,MAAM,YAAY,MAAM;AACpD,QAAI,CAAC,IAAK;AAEV,qBAAiB,qBAAqB,CAAC;AAAA,EACzC,GAAG,CAAC,sBAAsB,GAAG,CAAC;AAE9B,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,IAAK;AAEV,0BAAsB;AAEtB,QAAI,GAAG,QAAQ,qBAAqB;AAEpC,WAAO,MAAM;AACX,UAAI,IAAI,QAAQ,qBAAqB;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,KAAK,qBAAqB,CAAC;AAE/B,QAAM,sBAAsB,CAAC,UAA6B;AACxD,QAAI,CAAC,IAAK;AAEV,UAAM,mBAAmB,IAAI,QAAQ,IAAI,iBAAiB,aAAa;AAEvE,QAAI,qBAAqB,MAAM,kBAAkB;AAC/C,UAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAAA,IAC9C;AAEA,qBAAiB,gBAAgB;AAAA,EACnC;AAEA,SACE,qBAAC,SAAI,WAAU,aACb;AAAA,wBAAC,WAAM,WAAU,uBAAuB,eAAK,eAAe,GAAE;AAAA,IAC9D,oBAAC,QAAK,OAAO,eAAe,eAAe,WAAS,oBAAoB,KAA0B,GAAG,SAAQ,UAC3G,+BAAC,YAAS,WAAU,2BAClB;AAAA,2BAAC,eAAY,OAAM,SACjB;AAAA,4BAAC,GAAG,OAAH,EAAS,WAAU,gBAAe;AAAA,QAClC,KAAK,OAAO;AAAA,SACf;AAAA,MACA,qBAAC,eAAY,OAAM,YACjB;AAAA,4BAAC,GAAG,KAAH,EAAO,WAAU,gBAAe;AAAA,QAChC,KAAK,UAAU;AAAA,SAClB;AAAA,OACF,GACF;AAAA,KACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.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 { MapContext } from '../../../../../../../../store'\r\nimport { Tabs, TabsList, TabsTrigger } from '../../../../../../../ui/Tabs'\r\n\r\ntype MapProjectionType = 'globe' | 'mercator'\r\n\r\nconst MAX_GLOBE_ZOOM = 5\r\n\r\nexport function MapProjection() {\r\n const tMap = useTranslations('MapCustomization')\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n const [mapProjection, setMapProjection] = React.useState<MapProjectionType>('globe')\r\n\r\n const getCurrentProjection = React.useCallback((): MapProjectionType => {\r\n if (!map) return 'globe'\r\n\r\n const projection = map.getProjection()\r\n\r\n if (typeof projection === 'string') {\r\n return projection === 'globe' ? 'globe' : 'mercator'\r\n }\r\n\r\n const projectionType =\r\n (projection as { type?: string; name?: string })?.type ??\r\n (projection as { type?: string; name?: string })?.name\r\n\r\n return projectionType === 'globe' ? 'globe' : 'mercator'\r\n }, [map])\r\n\r\n // Display-only sync. The zoom-based enforcement (forcing mercator past\r\n // MAX_GLOBE_ZOOM) now lives in MapViewer so it runs whether or not this\r\n // settings panel is mounted; here we just mirror the map's current projection\r\n // into the toggle UI.\r\n const syncProjectionDisplay = React.useCallback(() => {\r\n if (!map) return\r\n\r\n setMapProjection(getCurrentProjection())\r\n }, [getCurrentProjection, map])\r\n\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n syncProjectionDisplay()\r\n\r\n map.on('zoom', syncProjectionDisplay)\r\n\r\n return () => {\r\n map.off('zoom', syncProjectionDisplay)\r\n }\r\n }, [map, syncProjectionDisplay])\r\n\r\n const handleMapProjection = (value: MapProjectionType) => {\r\n if (!map) return\r\n\r\n const forcedProjection = map.getZoom() > MAX_GLOBE_ZOOM ? 'mercator' : value\r\n\r\n if (getCurrentProjection() !== forcedProjection) {\r\n map.setProjection({ type: forcedProjection })\r\n }\r\n\r\n setMapProjection(forcedProjection)\r\n }\r\n\r\n return (\r\n <div className=\"space-y-2\">\r\n <label className=\"text-sm font-medium\">{tMap('mapProjection')}</label>\r\n <Tabs value={mapProjection} onValueChange={value => handleMapProjection(value as MapProjectionType)} variant=\"switch\">\r\n <TabsList className=\"grid w-full grid-cols-2\">\r\n <TabsTrigger value=\"globe\">\r\n <LR.Globe className=\"w-4 h-4 mr-2\" />\r\n {tMap('globe')}\r\n </TabsTrigger>\r\n <TabsTrigger value=\"mercator\">\r\n <LR.Map className=\"w-4 h-4 mr-2\" />\r\n {tMap('mercator')}\r\n </TabsTrigger>\r\n </TabsList>\r\n </Tabs>\r\n </div>\r\n )\r\n}\r\n"],"mappings":";AA0EM,cAGI,YAHJ;AArEN,YAAY,QAAQ;AACpB,SAAS,uBAAuB;AAChC,YAAY,WAAW;AAEvB,SAAS,kBAAkB;AAC3B,SAAS,MAAM,UAAU,mBAAmB;AAI5C,MAAM,iBAAiB;AAEhB,SAAS,gBAAgB;AAC9B,QAAM,OAAO,gBAAgB,kBAAkB;AAC/C,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,WAAW,UAAU;AACvD,QAAM,EAAE,IAAI,IAAI,SAAS;AACzB,QAAM,CAAC,eAAe,gBAAgB,IAAI,MAAM,SAA4B,OAAO;AAEnF,QAAM,uBAAuB,MAAM,YAAY,MAAyB;AAtB1E;AAuBI,QAAI,CAAC,IAAK,QAAO;AAEjB,UAAM,aAAa,IAAI,cAAc;AAErC,QAAI,OAAO,eAAe,UAAU;AAClC,aAAO,eAAe,UAAU,UAAU;AAAA,IAC5C;AAEA,UAAM,kBACH,8CAAiD,SAAjD,YACA,yCAAiD;AAEpD,WAAO,mBAAmB,UAAU,UAAU;AAAA,EAChD,GAAG,CAAC,GAAG,CAAC;AAMR,QAAM,wBAAwB,MAAM,YAAY,MAAM;AACpD,QAAI,CAAC,IAAK;AAEV,qBAAiB,qBAAqB,CAAC;AAAA,EACzC,GAAG,CAAC,sBAAsB,GAAG,CAAC;AAE9B,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,IAAK;AAEV,0BAAsB;AAEtB,QAAI,GAAG,QAAQ,qBAAqB;AAEpC,WAAO,MAAM;AACX,UAAI,IAAI,QAAQ,qBAAqB;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,KAAK,qBAAqB,CAAC;AAE/B,QAAM,sBAAsB,CAAC,UAA6B;AACxD,QAAI,CAAC,IAAK;AAEV,UAAM,mBAAmB,IAAI,QAAQ,IAAI,iBAAiB,aAAa;AAEvE,QAAI,qBAAqB,MAAM,kBAAkB;AAC/C,UAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAAA,IAC9C;AAEA,qBAAiB,gBAAgB;AAAA,EACnC;AAEA,SACE,qBAAC,SAAI,WAAU,aACb;AAAA,wBAAC,WAAM,WAAU,uBAAuB,eAAK,eAAe,GAAE;AAAA,IAC9D,oBAAC,QAAK,OAAO,eAAe,eAAe,WAAS,oBAAoB,KAA0B,GAAG,SAAQ,UAC3G,+BAAC,YAAS,WAAU,2BAClB;AAAA,2BAAC,eAAY,OAAM,SACjB;AAAA,4BAAC,GAAG,OAAH,EAAS,WAAU,gBAAe;AAAA,QAClC,KAAK,OAAO;AAAA,SACf;AAAA,MACA,qBAAC,eAAY,OAAM,YACjB;AAAA,4BAAC,GAAG,KAAH,EAAO,WAAU,gBAAe;AAAA,QAChC,KAAK,UAAU;AAAA,SAClB;AAAA,OACF,GACF;AAAA,KACF;AAEJ;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TerrainLevel.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,wBAAgB,YAAY,sBAsI3B"}
1
+ {"version":3,"file":"TerrainLevel.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,wBAAgB,YAAY,sBAsI3B"}
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { useTranslations } from "next-intl";
5
3
  import * as LR from "lucide-react";
6
- import { Tabs, TabsList, TabsTrigger } from "../../../../../../../ui/Tabs";
4
+ import { useTranslations } from "next-intl";
5
+ import * as React from "react";
7
6
  import { AppConfigContext, MapContext } from "../../../../../../../../store";
7
+ import { Tabs, TabsList, TabsTrigger } from "../../../../../../../ui/Tabs";
8
8
  function TerrainLevel() {
9
9
  var _a;
10
10
  const tMap = useTranslations("MapCustomization");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.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 { useTranslations } from 'next-intl'\r\nimport * as LR from 'lucide-react'\r\nimport { Tabs, TabsList, TabsTrigger } from '../../../../../../../ui/Tabs'\r\nimport { AppConfigContext, MapContext } from '../../../../../../../../store'\r\nimport { TerrainLevel as TerrainLevelType } from '../../../../../../../../types/map'\r\n\r\nexport function TerrainLevel() {\r\n const tMap = useTranslations('MapCustomization')\r\n const { state: appConfigState } = React.useContext(AppConfigContext)\r\n const { dispatch: mapDispatch, state: mapState } = React.useContext(MapContext)\r\n const { map, terrainLevel } = mapState.map\r\n const maptilerKey = appConfigState.runtimeConfig.maptilerKey\r\n const organizationCountry = (appConfigState.appConfig.organization?.country || '').toUpperCase()\r\n const isCanadaOrg = organizationCountry === 'CA'\r\n\r\n React.useEffect(() => {\r\n if (!isCanadaOrg && terrainLevel === 'high') {\r\n mapDispatch({ type: 'UPDATE_TERRAIN_LEVEL', payload: { terrainLevel: 'medium' } })\r\n }\r\n }, [isCanadaOrg, terrainLevel, mapDispatch])\r\n\r\n // Medium terrain relies on MapTiler; without a key, fall back to disabled.\r\n React.useEffect(() => {\r\n if (!maptilerKey && terrainLevel === 'medium') {\r\n mapDispatch({ type: 'UPDATE_TERRAIN_LEVEL', payload: { terrainLevel: 'disabled' } })\r\n }\r\n }, [maptilerKey, terrainLevel, mapDispatch])\r\n\r\n // Terrain control effect\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n const updateTerrain = () => {\r\n if (terrainLevel === 'disabled') {\r\n // Disable terrain\r\n map.setTerrain(null)\r\n } else if (terrainLevel === 'medium' && maptilerKey) {\r\n // Check if terrain source already exists\r\n const terrainSourceExists = map.getSource('terrain-source')\r\n\r\n // Add terrain source if it doesn't exist\r\n if (!terrainSourceExists) {\r\n map.addSource('terrain-source', {\r\n type: 'raster-dem',\r\n url: `https://api.maptiler.com/tiles/terrain-rgb-v2/tiles.json?key=${maptilerKey}`,\r\n tileSize: 256,\r\n })\r\n }\r\n // Enable terrain with medium exaggeration\r\n map.setTerrain({\r\n source: 'terrain-source',\r\n exaggeration: 1,\r\n })\r\n } else if (terrainLevel === 'high' && isCanadaOrg) {\r\n // Check if NRCan terrain sources already exist\r\n const nrcanTerrainExists = map.getSource('hrdem-terrain')\r\n const nrcanHillshadeExists = map.getSource('hrdem-hillshade')\r\n \r\n // Add NRCan terrain source if it doesn't exist\r\n if (!nrcanTerrainExists) {\r\n map.addSource('hrdem-terrain', {\r\n type: 'raster-dem',\r\n tiles: [\r\n '/api/nrcan-hr-dem?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=false&LAYERS=dtm&CRS=EPSG:3857&STYLES=&WIDTH=256&HEIGHT=256&BBOX={bbox-epsg-3857}'\r\n ],\r\n tileSize: 256,\r\n maxzoom: 15,\r\n attribution: 'Contains information licensed under the Open Government Licence – Canada',\r\n })\r\n }\r\n \r\n // Add NRCan hillshade source and layer if they don't exist\r\n if (!nrcanHillshadeExists) {\r\n map.addSource('hrdem-hillshade', {\r\n type: 'raster',\r\n tiles: [\r\n '/api/nrcan-hr-hillshade?request=GetCapabilities&service=WMS&version=1.3.0&layers=dsm-hillshade&legend_format=image&png&feature_info_type=text&xml'\r\n ],\r\n tileSize: 256,\r\n maxzoom: 15,\r\n attribution: 'Contains information licensed under the Open Government Licence – Canada',\r\n })\r\n \r\n // Add hillshade layer if it doesn't exist\r\n if (!map.getLayer('nrcan-hillshade')) {\r\n map.addLayer({\r\n id: 'nrcan-hillshade',\r\n type: 'raster',\r\n source: 'hrdem-hillshade',\r\n paint: {\r\n 'raster-opacity': 0.15,\r\n },\r\n })\r\n }\r\n }\r\n \r\n // Enable high-resolution terrain with lower exaggeration\r\n map.setTerrain({\r\n source: 'hrdem-terrain',\r\n exaggeration: 0.0002,\r\n })\r\n }\r\n }\r\n\r\n // Wait for map to be loaded before updating terrain\r\n if (map.loaded()) {\r\n updateTerrain()\r\n } else {\r\n map.once('load', updateTerrain)\r\n }\r\n }, [map, terrainLevel, isCanadaOrg, maptilerKey])\r\n\r\n const handleTerrainLevel = (value: TerrainLevelType) => {\r\n if (!isCanadaOrg && value === 'high') return\r\n if (!maptilerKey && value === 'medium') return\r\n\r\n mapDispatch({ type: 'UPDATE_TERRAIN_LEVEL', payload: { terrainLevel: value } })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-2\">\r\n <label className=\"text-sm font-medium\">{tMap('terrain')}</label>\r\n <Tabs value={terrainLevel} onValueChange={handleTerrainLevel} variant=\"switch\">\r\n <TabsList className=\"grid w-full grid-cols-3\">\r\n <TabsTrigger value=\"disabled\">\r\n <LR.ArrowDownToLine className=\"w-4 h-4 mr-2\" />\r\n {tMap('disabled')}\r\n </TabsTrigger>\r\n <TabsTrigger value=\"medium\" disabled={!maptilerKey}>\r\n <LR.Mountain className=\"w-4 h-4 mr-2\" />\r\n {tMap('medium')}\r\n </TabsTrigger>\r\n <TabsTrigger value=\"high\" disabled={!isCanadaOrg}>\r\n <LR.MountainSnow className=\"w-4 h-4 mr-2\" />\r\n {tMap('high')}\r\n </TabsTrigger>\r\n </TabsList>\r\n </Tabs>\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/MapSidebar/src/SettingsTab/src/TerrainLevel.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 { AppConfigContext, MapContext } from '../../../../../../../../store'\r\nimport { Tabs, TabsList, TabsTrigger } from '../../../../../../../ui/Tabs'\r\n\r\nimport type { TerrainLevel as TerrainLevelType } from '../../../../../../../../types/map'\r\n\r\nexport function TerrainLevel() {\r\n const tMap = useTranslations('MapCustomization')\r\n const { state: appConfigState } = React.useContext(AppConfigContext)\r\n const { dispatch: mapDispatch, state: mapState } = React.useContext(MapContext)\r\n const { map, terrainLevel } = mapState.map\r\n const maptilerKey = appConfigState.runtimeConfig.maptilerKey\r\n const organizationCountry = (appConfigState.appConfig.organization?.country || '').toUpperCase()\r\n const isCanadaOrg = organizationCountry === 'CA'\r\n\r\n React.useEffect(() => {\r\n if (!isCanadaOrg && terrainLevel === 'high') {\r\n mapDispatch({ type: 'UPDATE_TERRAIN_LEVEL', payload: { terrainLevel: 'medium' } })\r\n }\r\n }, [isCanadaOrg, terrainLevel, mapDispatch])\r\n\r\n // Medium terrain relies on MapTiler; without a key, fall back to disabled.\r\n React.useEffect(() => {\r\n if (!maptilerKey && terrainLevel === 'medium') {\r\n mapDispatch({ type: 'UPDATE_TERRAIN_LEVEL', payload: { terrainLevel: 'disabled' } })\r\n }\r\n }, [maptilerKey, terrainLevel, mapDispatch])\r\n\r\n // Terrain control effect\r\n React.useEffect(() => {\r\n if (!map) return\r\n\r\n const updateTerrain = () => {\r\n if (terrainLevel === 'disabled') {\r\n // Disable terrain\r\n map.setTerrain(null)\r\n } else if (terrainLevel === 'medium' && maptilerKey) {\r\n // Check if terrain source already exists\r\n const terrainSourceExists = map.getSource('terrain-source')\r\n\r\n // Add terrain source if it doesn't exist\r\n if (!terrainSourceExists) {\r\n map.addSource('terrain-source', {\r\n type: 'raster-dem',\r\n url: `https://api.maptiler.com/tiles/terrain-rgb-v2/tiles.json?key=${maptilerKey}`,\r\n tileSize: 256,\r\n })\r\n }\r\n // Enable terrain with medium exaggeration\r\n map.setTerrain({\r\n source: 'terrain-source',\r\n exaggeration: 1,\r\n })\r\n } else if (terrainLevel === 'high' && isCanadaOrg) {\r\n // Check if NRCan terrain sources already exist\r\n const nrcanTerrainExists = map.getSource('hrdem-terrain')\r\n const nrcanHillshadeExists = map.getSource('hrdem-hillshade')\r\n\r\n // Add NRCan terrain source if it doesn't exist\r\n if (!nrcanTerrainExists) {\r\n map.addSource('hrdem-terrain', {\r\n type: 'raster-dem',\r\n tiles: [\r\n '/api/nrcan-hr-dem?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=false&LAYERS=dtm&CRS=EPSG:3857&STYLES=&WIDTH=256&HEIGHT=256&BBOX={bbox-epsg-3857}'\r\n ],\r\n tileSize: 256,\r\n maxzoom: 15,\r\n attribution: 'Contains information licensed under the Open Government Licence – Canada',\r\n })\r\n }\r\n\r\n // Add NRCan hillshade source and layer if they don't exist\r\n if (!nrcanHillshadeExists) {\r\n map.addSource('hrdem-hillshade', {\r\n type: 'raster',\r\n tiles: [\r\n '/api/nrcan-hr-hillshade?request=GetCapabilities&service=WMS&version=1.3.0&layers=dsm-hillshade&legend_format=image&png&feature_info_type=text&xml'\r\n ],\r\n tileSize: 256,\r\n maxzoom: 15,\r\n attribution: 'Contains information licensed under the Open Government Licence – Canada',\r\n })\r\n\r\n // Add hillshade layer if it doesn't exist\r\n if (!map.getLayer('nrcan-hillshade')) {\r\n map.addLayer({\r\n id: 'nrcan-hillshade',\r\n type: 'raster',\r\n source: 'hrdem-hillshade',\r\n paint: {\r\n 'raster-opacity': 0.15,\r\n },\r\n })\r\n }\r\n }\r\n\r\n // Enable high-resolution terrain with lower exaggeration\r\n map.setTerrain({\r\n source: 'hrdem-terrain',\r\n exaggeration: 0.0002,\r\n })\r\n }\r\n }\r\n\r\n // Wait for map to be loaded before updating terrain\r\n if (map.loaded()) {\r\n updateTerrain()\r\n } else {\r\n map.once('load', updateTerrain)\r\n }\r\n }, [map, terrainLevel, isCanadaOrg, maptilerKey])\r\n\r\n const handleTerrainLevel = (value: TerrainLevelType) => {\r\n if (!isCanadaOrg && value === 'high') return\r\n if (!maptilerKey && value === 'medium') return\r\n\r\n mapDispatch({ type: 'UPDATE_TERRAIN_LEVEL', payload: { terrainLevel: value } })\r\n }\r\n\r\n return (\r\n <div className=\"space-y-2\">\r\n <label className=\"text-sm font-medium\">{tMap('terrain')}</label>\r\n <Tabs value={terrainLevel} onValueChange={handleTerrainLevel} variant=\"switch\">\r\n <TabsList className=\"grid w-full grid-cols-3\">\r\n <TabsTrigger value=\"disabled\">\r\n <LR.ArrowDownToLine className=\"w-4 h-4 mr-2\" />\r\n {tMap('disabled')}\r\n </TabsTrigger>\r\n <TabsTrigger value=\"medium\" disabled={!maptilerKey}>\r\n <LR.Mountain className=\"w-4 h-4 mr-2\" />\r\n {tMap('medium')}\r\n </TabsTrigger>\r\n <TabsTrigger value=\"high\" disabled={!isCanadaOrg}>\r\n <LR.MountainSnow className=\"w-4 h-4 mr-2\" />\r\n {tMap('high')}\r\n </TabsTrigger>\r\n </TabsList>\r\n </Tabs>\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleMap.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/src/SimpleMap.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAQD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAe,EACf,MAAgB,EAChB,WAAW,EACX,gBAAuB,EACvB,OAAO,GACR,EAAE,KAAK,qBA4JP"}
1
+ {"version":3,"file":"SimpleMap.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/src/SimpleMap.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAQD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAe,EACf,MAAgB,EAChB,WAAW,EACX,gBAAuB,EACvB,OAAO,GACR,EAAE,KAAK,qBA4JP"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
+ import maplibregl from "maplibre-gl";
3
4
  import * as React from "react";
4
5
  import Map, { NavigationControl } from "react-map-gl/maplibre";
5
- import maplibregl from "maplibre-gl";
6
6
  import { CountryLayer } from "./MapLayers/src/CountryLayer";
7
7
  const ROTATION_SPEED = 0.1;
8
8
  const FIT_DIVISOR = 160;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/components/viewers/map/src/SimpleMap.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 Map, { NavigationControl } from 'react-map-gl/maplibre'\r\nimport type { MapRef } from 'react-map-gl/maplibre'\r\n\r\nimport maplibregl from 'maplibre-gl'\r\n\r\nimport { CountryLayer } from './MapLayers/src/CountryLayer'\r\n\r\n\r\ninterface PaddingOptions {\r\n top: number\r\n bottom: number\r\n left: number\r\n right: number\r\n}\r\n\r\ninterface Props {\r\n width?: string\r\n height?: string\r\n mapStyleUrl?: string\r\n showCountryLayer?: boolean\r\n padding?: PaddingOptions\r\n}\r\n\r\nconst ROTATION_SPEED = 0.1 // degrees longitude per frame\r\n\r\n// Empirically tuned so the whole sphere fits inside the container.\r\n// Globe diameter ≈ FIT_DIVISOR * 2^zoom, so larger values yield more margin.\r\nconst FIT_DIVISOR = 160\r\n\r\nexport default function SimpleMap({\r\n width = '100vw',\r\n height = '100vh',\r\n mapStyleUrl,\r\n showCountryLayer = true,\r\n padding,\r\n}: Props) {\r\n const containerRef = React.useRef<HTMLDivElement>(null)\r\n const [zoom, setZoom] = React.useState(2.8)\r\n const mapRef = React.useRef<MapRef>(null)\r\n const paddingRef = React.useRef<PaddingOptions | undefined>(padding)\r\n const userInteracting = React.useRef(false)\r\n const animationRef = React.useRef<number>(0)\r\n const resumeTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)\r\n\r\n React.useEffect(() => {\r\n paddingRef.current = padding\r\n }, [padding])\r\n\r\n React.useEffect(() => {\r\n const el = containerRef.current\r\n if (!el) return\r\n\r\n const computeZoom = () => {\r\n const { clientWidth, clientHeight } = el\r\n const minDim = Math.min(clientWidth, clientHeight)\r\n if (minDim <= 0) return\r\n const next = Math.log2(minDim / FIT_DIVISOR)\r\n setZoom(Math.max(-1, Math.min(3.5, next)))\r\n }\r\n\r\n computeZoom()\r\n const observer = new ResizeObserver(computeZoom)\r\n observer.observe(el)\r\n return () => observer.disconnect()\r\n }, [])\r\n\r\n // Cleanup animation on unmount\r\n React.useEffect(() => {\r\n return () => {\r\n cancelAnimationFrame(animationRef.current)\r\n if (resumeTimeoutRef.current) clearTimeout(resumeTimeoutRef.current)\r\n }\r\n }, [])\r\n\r\n // Apply min/max zoom safely — lower the floor first so maxZoom can never\r\n // be set below the current minZoom (which maplibre rejects).\r\n const applyZoomBounds = React.useCallback((map: maplibregl.Map, target: number) => {\r\n map.setMinZoom(-2)\r\n map.setMaxZoom(target + 0.2)\r\n map.setMinZoom(target)\r\n }, [])\r\n\r\n // Keep padding and zoom in sync whenever the prop changes\r\n React.useEffect(() => {\r\n const map = mapRef.current?.getMap()\r\n if (!map) return\r\n applyZoomBounds(map, zoom)\r\n map.setZoom(zoom)\r\n\r\n const currentPadding = paddingRef.current\r\n if (!currentPadding) return\r\n map.setPadding(currentPadding)\r\n }, [padding, zoom, applyZoomBounds])\r\n\r\n const viewState = {\r\n longitude: -75.74,\r\n latitude: 0,\r\n zoom\r\n }\r\n\r\n const resolvedStyle = React.useMemo(() => {\r\n if (!mapStyleUrl) return undefined\r\n\r\n const isTileTemplate = mapStyleUrl.includes('{x}') && mapStyleUrl.includes('{y}') && mapStyleUrl.includes('{z}')\r\n if (!isTileTemplate) return mapStyleUrl\r\n\r\n return {\r\n version: 8 as const,\r\n sources: {\r\n rasterTiles: {\r\n type: 'raster' as const,\r\n tiles: [mapStyleUrl],\r\n tileSize: 256,\r\n },\r\n },\r\n layers: [\r\n {\r\n id: 'raster-tiles',\r\n type: 'raster' as const,\r\n source: 'rasterTiles',\r\n },\r\n ],\r\n }\r\n }, [mapStyleUrl])\r\n\r\n const handleMapLoad = React.useCallback(() => {\r\n const map = mapRef.current?.getMap()\r\n if (!map) return\r\n\r\n applyZoomBounds(map, zoom)\r\n\r\n const applyCurrentPadding = () => {\r\n const currentPadding = paddingRef.current\r\n if (!currentPadding) return\r\n map.setPadding(currentPadding)\r\n }\r\n\r\n applyCurrentPadding()\r\n map.on('styledata', applyCurrentPadding)\r\n\r\n const onInteractionStart = () => {\r\n userInteracting.current = true\r\n if (resumeTimeoutRef.current) clearTimeout(resumeTimeoutRef.current)\r\n }\r\n\r\n const onInteractionEnd = () => {\r\n resumeTimeoutRef.current = setTimeout(() => {\r\n userInteracting.current = false\r\n }, 1500)\r\n }\r\n\r\n map.on('mousedown', onInteractionStart)\r\n map.on('mouseup', onInteractionEnd)\r\n map.on('touchstart', onInteractionStart)\r\n map.on('touchend', onInteractionEnd)\r\n map.on('dragstart', onInteractionStart)\r\n map.on('dragend', onInteractionEnd)\r\n\r\n function rotate() {\r\n if (!userInteracting.current) {\r\n const center = map.getCenter()\r\n center.lng -= ROTATION_SPEED\r\n map.jumpTo({\r\n center: { lng: center.lng, lat: center.lat },\r\n padding: map.getPadding(),\r\n })\r\n }\r\n animationRef.current = requestAnimationFrame(rotate)\r\n }\r\n\r\n animationRef.current = requestAnimationFrame(rotate)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return (\r\n <div ref={containerRef} className=\"pointer-events-auto relative z-10 h-full w-full\">\r\n <Map\r\n ref={mapRef}\r\n mapStyle={resolvedStyle}\r\n mapLib={maplibregl}\r\n style={{ width, height, position: 'absolute', inset: 0, top: 0 }}\r\n initialViewState={viewState}\r\n projection=\"globe\"\r\n onLoad={handleMapLoad}\r\n attributionControl={false}\r\n >\r\n <NavigationControl visualizePitch />\r\n {showCountryLayer ? <CountryLayer /> : null}\r\n </Map>\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/SimpleMap.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 maplibregl from 'maplibre-gl'\r\nimport * as React from 'react'\r\nimport Map, { NavigationControl } from 'react-map-gl/maplibre'\r\n\r\nimport { CountryLayer } from './MapLayers/src/CountryLayer'\r\n\r\nimport type { MapRef } from 'react-map-gl/maplibre'\r\n\r\n\r\n\r\n\r\ninterface PaddingOptions {\r\n top: number\r\n bottom: number\r\n left: number\r\n right: number\r\n}\r\n\r\ninterface Props {\r\n width?: string\r\n height?: string\r\n mapStyleUrl?: string\r\n showCountryLayer?: boolean\r\n padding?: PaddingOptions\r\n}\r\n\r\nconst ROTATION_SPEED = 0.1 // degrees longitude per frame\r\n\r\n// Empirically tuned so the whole sphere fits inside the container.\r\n// Globe diameter ≈ FIT_DIVISOR * 2^zoom, so larger values yield more margin.\r\nconst FIT_DIVISOR = 160\r\n\r\nexport default function SimpleMap({\r\n width = '100vw',\r\n height = '100vh',\r\n mapStyleUrl,\r\n showCountryLayer = true,\r\n padding,\r\n}: Props) {\r\n const containerRef = React.useRef<HTMLDivElement>(null)\r\n const [zoom, setZoom] = React.useState(2.8)\r\n const mapRef = React.useRef<MapRef>(null)\r\n const paddingRef = React.useRef<PaddingOptions | undefined>(padding)\r\n const userInteracting = React.useRef(false)\r\n const animationRef = React.useRef<number>(0)\r\n const resumeTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)\r\n\r\n React.useEffect(() => {\r\n paddingRef.current = padding\r\n }, [padding])\r\n\r\n React.useEffect(() => {\r\n const el = containerRef.current\r\n if (!el) return\r\n\r\n const computeZoom = () => {\r\n const { clientWidth, clientHeight } = el\r\n const minDim = Math.min(clientWidth, clientHeight)\r\n if (minDim <= 0) return\r\n const next = Math.log2(minDim / FIT_DIVISOR)\r\n setZoom(Math.max(-1, Math.min(3.5, next)))\r\n }\r\n\r\n computeZoom()\r\n const observer = new ResizeObserver(computeZoom)\r\n observer.observe(el)\r\n return () => observer.disconnect()\r\n }, [])\r\n\r\n // Cleanup animation on unmount\r\n React.useEffect(() => {\r\n return () => {\r\n cancelAnimationFrame(animationRef.current)\r\n if (resumeTimeoutRef.current) clearTimeout(resumeTimeoutRef.current)\r\n }\r\n }, [])\r\n\r\n // Apply min/max zoom safely — lower the floor first so maxZoom can never\r\n // be set below the current minZoom (which maplibre rejects).\r\n const applyZoomBounds = React.useCallback((map: maplibregl.Map, target: number) => {\r\n map.setMinZoom(-2)\r\n map.setMaxZoom(target + 0.2)\r\n map.setMinZoom(target)\r\n }, [])\r\n\r\n // Keep padding and zoom in sync whenever the prop changes\r\n React.useEffect(() => {\r\n const map = mapRef.current?.getMap()\r\n if (!map) return\r\n applyZoomBounds(map, zoom)\r\n map.setZoom(zoom)\r\n\r\n const currentPadding = paddingRef.current\r\n if (!currentPadding) return\r\n map.setPadding(currentPadding)\r\n }, [padding, zoom, applyZoomBounds])\r\n\r\n const viewState = {\r\n longitude: -75.74,\r\n latitude: 0,\r\n zoom\r\n }\r\n\r\n const resolvedStyle = React.useMemo(() => {\r\n if (!mapStyleUrl) return undefined\r\n\r\n const isTileTemplate = mapStyleUrl.includes('{x}') && mapStyleUrl.includes('{y}') && mapStyleUrl.includes('{z}')\r\n if (!isTileTemplate) return mapStyleUrl\r\n\r\n return {\r\n version: 8 as const,\r\n sources: {\r\n rasterTiles: {\r\n type: 'raster' as const,\r\n tiles: [mapStyleUrl],\r\n tileSize: 256,\r\n },\r\n },\r\n layers: [\r\n {\r\n id: 'raster-tiles',\r\n type: 'raster' as const,\r\n source: 'rasterTiles',\r\n },\r\n ],\r\n }\r\n }, [mapStyleUrl])\r\n\r\n const handleMapLoad = React.useCallback(() => {\r\n const map = mapRef.current?.getMap()\r\n if (!map) return\r\n\r\n applyZoomBounds(map, zoom)\r\n\r\n const applyCurrentPadding = () => {\r\n const currentPadding = paddingRef.current\r\n if (!currentPadding) return\r\n map.setPadding(currentPadding)\r\n }\r\n\r\n applyCurrentPadding()\r\n map.on('styledata', applyCurrentPadding)\r\n\r\n const onInteractionStart = () => {\r\n userInteracting.current = true\r\n if (resumeTimeoutRef.current) clearTimeout(resumeTimeoutRef.current)\r\n }\r\n\r\n const onInteractionEnd = () => {\r\n resumeTimeoutRef.current = setTimeout(() => {\r\n userInteracting.current = false\r\n }, 1500)\r\n }\r\n\r\n map.on('mousedown', onInteractionStart)\r\n map.on('mouseup', onInteractionEnd)\r\n map.on('touchstart', onInteractionStart)\r\n map.on('touchend', onInteractionEnd)\r\n map.on('dragstart', onInteractionStart)\r\n map.on('dragend', onInteractionEnd)\r\n\r\n function rotate() {\r\n if (!userInteracting.current) {\r\n const center = map.getCenter()\r\n center.lng -= ROTATION_SPEED\r\n map.jumpTo({\r\n center: { lng: center.lng, lat: center.lat },\r\n padding: map.getPadding(),\r\n })\r\n }\r\n animationRef.current = requestAnimationFrame(rotate)\r\n }\r\n\r\n animationRef.current = requestAnimationFrame(rotate)\r\n\r\n }, [])\r\n\r\n return (\r\n <div ref={containerRef} className=\"pointer-events-auto relative z-10 h-full w-full\">\r\n <Map\r\n ref={mapRef}\r\n mapStyle={resolvedStyle}\r\n mapLib={maplibregl}\r\n style={{ width, height, position: 'absolute', inset: 0, top: 0 }}\r\n initialViewState={viewState}\r\n projection=\"globe\"\r\n onLoad={handleMapLoad}\r\n attributionControl={false}\r\n >\r\n <NavigationControl visualizePitch />\r\n {showCountryLayer ? <CountryLayer /> : null}\r\n </Map>\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { Building, Site } from '../../../../../types/dbTypes';
2
+ import type { Building, Site } from '../../../../../types/dbTypes';
3
3
  interface AddItemProps {
4
4
  handleAddBuilding: (building: Building) => void;
5
5
  handleAddSite?: (site: Site) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"AddItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/src/compare/AddItem.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAE9D,UAAU,YAAY;IACpB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC/C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,YAAY,qBA2IrI"}
1
+ {"version":3,"file":"AddItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/src/compare/AddItem.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEnE,UAAU,YAAY;IACpB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC/C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,YAAY,qBA2IrI"}
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
3
+ import * as LR from "lucide-react";
4
4
  import { useTranslations } from "next-intl";
5
- import { usePermissions } from "../../../../../store";
6
- import { useBuildings } from "../../../../../hooks/buildings/buildings";
7
- import { useSites } from "../../../../../hooks/sites/sites";
5
+ import * as React from "react";
6
+ import { Button, Input } from "../../../../../components/ui/";
8
7
  import {
9
8
  DropdownMenu,
10
9
  DropdownMenuContent,
11
10
  DropdownMenuItem,
12
11
  DropdownMenuTrigger
13
12
  } from "../../../../../components/ui/DropdownMenu";
14
- import { Button, Input } from "../../../../../components/ui/";
15
- import * as LR from "lucide-react";
13
+ import { useBuildings } from "../../../../../hooks/buildings/buildings";
14
+ import { useSites } from "../../../../../hooks/sites/sites";
15
+ import { usePermissions } from "../../../../../store";
16
16
  function AddItem({ handleAddBuilding, handleAddSite, isComparingSites = false, icon, className, variant }) {
17
17
  const t = useTranslations("AddItem");
18
18
  const { ability } = usePermissions();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/core/components/viewers/map/src/compare/AddItem.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\n// Dependencies\r\nimport * as React from \"react\";\r\nimport { useTranslations } from 'next-intl'\r\nimport { usePermissions } from '../../../../../store'\r\nimport { useBuildings } from '../../../../../hooks/buildings/buildings'\r\nimport { useSites } from '../../../../../hooks/sites/sites'\r\n\r\n// Data\r\n\r\n\r\n// Shadcn Components\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuTrigger,\r\n} from '../../../../../components/ui/DropdownMenu'\r\nimport { Button, Input } from '../../../../../components/ui/'\r\n\r\n// Icons\r\nimport * as LR from 'lucide-react'\r\nimport { Building, Site } from '../../../../../types/dbTypes';\r\n\r\ninterface AddItemProps {\r\n handleAddBuilding: (building: Building) => void\r\n handleAddSite?: (site: Site) => void\r\n isComparingSites?: boolean\r\n icon?: React.ReactNode\r\n className?: string\r\n variant?: 'secondary' | 'ghost'\r\n}\r\n\r\nexport default function AddItem({ handleAddBuilding, handleAddSite, isComparingSites = false, icon, className, variant }: AddItemProps) {\r\n // Translation\r\n const t = useTranslations('AddItem')\r\n\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n const [searchTerm, setSearchTerm] = React.useState('')\r\n\r\n const { buildings, isLoading: buildingsLoading, isError: buildingsError } = useBuildings()\r\n const { sites, isLoading: sitesLoading, isError: sitesError } = useSites()\r\n\r\n const filteredData = searchTerm.trim() === ''\r\n ? [] // Return empty array when search is empty\r\n : (isComparingSites\r\n ? sites\r\n .filter((site) => {\r\n // Check if any of the fields match\r\n return site.siteName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n || site.siteAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n })\r\n .sort((a, b) => {\r\n // Sort by relevance (name > address)\r\n const aNameMatch = a.siteName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n const bNameMatch = b.siteName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n if (aNameMatch && !bNameMatch) return -1\r\n if (!aNameMatch && bNameMatch) return 1\r\n\r\n const aAddressMatch = a.siteAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n const bAddressMatch = b.siteAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n if (aAddressMatch && !bAddressMatch) return -1\r\n if (!aAddressMatch && bAddressMatch) return 1\r\n\r\n return 0\r\n })\r\n .slice(0, 3) // Limit to 3 results\r\n : buildings\r\n .filter((building) => {\r\n // Check if any of the fields match\r\n return building.buildingName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n || building.buildingAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n })\r\n .sort((a, b) => {\r\n // Sort by relevance (name > address > site)\r\n const aNameMatch = a.buildingName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n const bNameMatch = b.buildingName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n if (aNameMatch && !bNameMatch) return -1\r\n if (!aNameMatch && bNameMatch) return 1\r\n\r\n const aAddressMatch = a.buildingAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n const bAddressMatch = b.buildingAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n if (aAddressMatch && !bAddressMatch) return -1\r\n if (!aAddressMatch && bAddressMatch) return 1\r\n\r\n return 0\r\n })\r\n .slice(0, 3)) // Limit to 3 results\r\n\r\n return (\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n variant={variant}\r\n className={`dropdown-menu-trigger ${className}`}\r\n onClick={e => e.stopPropagation()}\r\n disabled={buildings && !ability.can('read', 'Building') || sites && !ability.can('read', 'Site')}\r\n >\r\n {icon || <LR.PlusCircle className=\"!w-5 !h-5\" />}\r\n {t('add')}\r\n {' '}\r\n {isComparingSites ? t('siteCap') : t('buildingCap')}\r\n </Button>\r\n </DropdownMenuTrigger>\r\n\r\n <DropdownMenuContent align=\"end\" side=\"top\">\r\n\r\n {/* Search for building */}\r\n <div className=\"relative\">\r\n <LR.Search className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n <Input\r\n placeholder={`${t('searchPlaceholder')} ${isComparingSites ? t('site') : t('building')}`}\r\n className=\"pl-8 w-[250px]\"\r\n value={searchTerm}\r\n autoFocus\r\n onChange={e => setSearchTerm(e.target.value)}\r\n onKeyDown={(e) => {\r\n e.stopPropagation() // This disables Randix UI's default behavior for dropdown menu navigation\r\n }}\r\n />\r\n </div>\r\n\r\n {/* Search results */}\r\n\r\n {filteredData.length > 0 ? (\r\n // When we have results, map through them\r\n filteredData.map((item, index) => (\r\n <DropdownMenuItem\r\n key={index}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n // function to add item to compare\r\n if (isComparingSites && handleAddSite) {\r\n handleAddSite(item as Site)\r\n }\r\n else {\r\n handleAddBuilding(item as Building)\r\n }\r\n setSearchTerm('')\r\n }}\r\n tabIndex={0}\r\n >\r\n <div className=\"flex flex-col\">\r\n <span className=\"flex items-center\">\r\n {isComparingSites ? (item as Site).siteName : (item as Building).buildingName}\r\n </span>\r\n {(isComparingSites ? (item as Site).siteAddress : (item as Building).buildingAddress) && (\r\n <span className={`${(isComparingSites ? (item as Site).siteName : (item as Building).buildingName) ? 'text-muted-foreground' : 'text-foreground'} `}>\r\n {isComparingSites ? (item as Site).siteAddress : (item as Building).buildingAddress}\r\n </span>\r\n )}\r\n </div>\r\n </DropdownMenuItem>\r\n ))\r\n ) : (\r\n // When no results but user has typed something\r\n searchTerm.trim() !== '' && (\r\n <DropdownMenuItem disabled>\r\n <span className=\"text-muted-foreground\">{t('noneFound')}</span>\r\n </DropdownMenuItem>\r\n )\r\n )}\r\n\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n )\r\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../../src/core/components/viewers/map/src/compare/AddItem.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\n// Dependencies\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from \"react\";\r\n\r\nimport { Button, Input } from '../../../../../components/ui/'\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuTrigger,\r\n} from '../../../../../components/ui/DropdownMenu'\r\nimport { useBuildings } from '../../../../../hooks/buildings/buildings'\r\nimport { useSites } from '../../../../../hooks/sites/sites'\r\nimport { usePermissions } from '../../../../../store'\r\n\r\n// Data\r\n\r\n\r\n// Shadcn Components\r\n\r\n// Icons\r\n\r\nimport type { Building, Site } from '../../../../../types/dbTypes';\r\n\r\ninterface AddItemProps {\r\n handleAddBuilding: (building: Building) => void\r\n handleAddSite?: (site: Site) => void\r\n isComparingSites?: boolean\r\n icon?: React.ReactNode\r\n className?: string\r\n variant?: 'secondary' | 'ghost'\r\n}\r\n\r\nexport default function AddItem({ handleAddBuilding, handleAddSite, isComparingSites = false, icon, className, variant }: AddItemProps) {\r\n // Translation\r\n const t = useTranslations('AddItem')\r\n\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n const [searchTerm, setSearchTerm] = React.useState('')\r\n\r\n const { buildings, isLoading: buildingsLoading, isError: buildingsError } = useBuildings()\r\n const { sites, isLoading: sitesLoading, isError: sitesError } = useSites()\r\n\r\n const filteredData = searchTerm.trim() === ''\r\n ? [] // Return empty array when search is empty\r\n : (isComparingSites\r\n ? sites\r\n .filter((site) => {\r\n // Check if any of the fields match\r\n return site.siteName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n || site.siteAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n })\r\n .sort((a, b) => {\r\n // Sort by relevance (name > address)\r\n const aNameMatch = a.siteName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n const bNameMatch = b.siteName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n if (aNameMatch && !bNameMatch) return -1\r\n if (!aNameMatch && bNameMatch) return 1\r\n\r\n const aAddressMatch = a.siteAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n const bAddressMatch = b.siteAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n if (aAddressMatch && !bAddressMatch) return -1\r\n if (!aAddressMatch && bAddressMatch) return 1\r\n\r\n return 0\r\n })\r\n .slice(0, 3) // Limit to 3 results\r\n : buildings\r\n .filter((building) => {\r\n // Check if any of the fields match\r\n return building.buildingName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n || building.buildingAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n })\r\n .sort((a, b) => {\r\n // Sort by relevance (name > address > site)\r\n const aNameMatch = a.buildingName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n const bNameMatch = b.buildingName?.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n if (aNameMatch && !bNameMatch) return -1\r\n if (!aNameMatch && bNameMatch) return 1\r\n\r\n const aAddressMatch = a.buildingAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n const bAddressMatch = b.buildingAddress?.toLowerCase().includes(searchTerm.toLowerCase())\r\n\r\n if (aAddressMatch && !bAddressMatch) return -1\r\n if (!aAddressMatch && bAddressMatch) return 1\r\n\r\n return 0\r\n })\r\n .slice(0, 3)) // Limit to 3 results\r\n\r\n return (\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n variant={variant}\r\n className={`dropdown-menu-trigger ${className}`}\r\n onClick={e => e.stopPropagation()}\r\n disabled={buildings && !ability.can('read', 'Building') || sites && !ability.can('read', 'Site')}\r\n >\r\n {icon || <LR.PlusCircle className=\"!w-5 !h-5\" />}\r\n {t('add')}\r\n {' '}\r\n {isComparingSites ? t('siteCap') : t('buildingCap')}\r\n </Button>\r\n </DropdownMenuTrigger>\r\n\r\n <DropdownMenuContent align=\"end\" side=\"top\">\r\n\r\n {/* Search for building */}\r\n <div className=\"relative\">\r\n <LR.Search className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n <Input\r\n placeholder={`${t('searchPlaceholder')} ${isComparingSites ? t('site') : t('building')}`}\r\n className=\"pl-8 w-[250px]\"\r\n value={searchTerm}\r\n autoFocus\r\n onChange={e => setSearchTerm(e.target.value)}\r\n onKeyDown={(e) => {\r\n e.stopPropagation() // This disables Randix UI's default behavior for dropdown menu navigation\r\n }}\r\n />\r\n </div>\r\n\r\n {/* Search results */}\r\n\r\n {filteredData.length > 0 ? (\r\n // When we have results, map through them\r\n filteredData.map((item, index) => (\r\n <DropdownMenuItem\r\n key={index}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n // function to add item to compare\r\n if (isComparingSites && handleAddSite) {\r\n handleAddSite(item as Site)\r\n }\r\n else {\r\n handleAddBuilding(item as Building)\r\n }\r\n setSearchTerm('')\r\n }}\r\n tabIndex={0}\r\n >\r\n <div className=\"flex flex-col\">\r\n <span className=\"flex items-center\">\r\n {isComparingSites ? (item as Site).siteName : (item as Building).buildingName}\r\n </span>\r\n {(isComparingSites ? (item as Site).siteAddress : (item as Building).buildingAddress) && (\r\n <span className={`${(isComparingSites ? (item as Site).siteName : (item as Building).buildingName) ? 'text-muted-foreground' : 'text-foreground'} `}>\r\n {isComparingSites ? (item as Site).siteAddress : (item as Building).buildingAddress}\r\n </span>\r\n )}\r\n </div>\r\n </DropdownMenuItem>\r\n ))\r\n ) : (\r\n // When no results but user has typed something\r\n searchTerm.trim() !== '' && (\r\n <DropdownMenuItem disabled>\r\n <span className=\"text-muted-foreground\">{t('noneFound')}</span>\r\n </DropdownMenuItem>\r\n )\r\n )}\r\n\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n )\r\n}"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { CompareItem } from '../../../../../store';
3
- import { Building, Site } from '../../../../../types/dbTypes';
2
+ import type { CompareItem } from '../../../../../store';
3
+ import type { Building, Site } from '../../../../../types/dbTypes';
4
4
  type CompareDialogProps = {
5
5
  toggleOpen: () => void;
6
6
  compareItems: CompareItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"CompareDialog.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/src/compare/CompareDialog.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,EAAmC,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAqBnF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AAE7D,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAC/C,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC/C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,EAAE,kBAAkB,qBAuPxI"}
1
+ {"version":3,"file":"CompareDialog.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/src/compare/CompareDialog.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAA;AA4BzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AAElE,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAC/C,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC/C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,EAAE,kBAAkB,qBAuPxI"}
@@ -20,10 +20,8 @@ var __spreadValues = (a, b) => {
20
20
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
21
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
22
  import * as LR from "lucide-react";
23
- import React from "react";
24
23
  import { useTranslations } from "next-intl";
25
- import { MapContext, useBuildingsContext } from "../../../../../store";
26
- import { useBuildingHeaders, useSiteHeaders } from "../../../Data/utils/Headers";
24
+ import React from "react";
27
25
  import { Button, ExportData, ColorCircle } from "../../../../../components/ui/";
28
26
  import {
29
27
  Dialog,
@@ -34,12 +32,14 @@ import {
34
32
  DialogTitle,
35
33
  DialogTrigger
36
34
  } from "../../../../../components/ui/Dialog";
35
+ import { MapContext, useBuildingsContext } from "../../../../../store";
36
+ import { useBuildingHeaders, useSiteHeaders } from "../../../Data/utils/Headers";
37
+ import { fitBuildingsBounds } from "../../utils/fitBuildingsBounds";
38
+ import { stringToColour } from "../../utils/stringToColour";
37
39
  import AddItem from "./AddItem";
38
40
  import {
39
41
  DescriptionListItem
40
42
  } from "./description-list";
41
- import { fitBuildingsBounds } from "../../utils/fitBuildingsBounds";
42
- import { stringToColour } from "../../utils/stringToColour";
43
43
  function CompareDialog({ toggleOpen, compareItems, setCompareItems, handleAddBuilding, handleAddSite }) {
44
44
  const t = useTranslations("CompareDialog");
45
45
  const { comparing, setComparing } = useBuildingsContext();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/core/components/viewers/map/src/compare/CompareDialog.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\n// Icons\r\nimport * as LR from 'lucide-react'\r\nimport React from 'react'\r\nimport { useTranslations } from 'next-intl'\r\n\r\n// Dependencies\r\n\r\n\r\nimport { MapContext, useBuildingsContext, CompareItem } from '../../../../../store'\r\nimport { useBuildingHeaders, useSiteHeaders } from '../../../Data/utils/Headers'\r\nimport { Button, ExportData, ColorCircle } from '../../../../../components/ui/'\r\n// Shadcn components\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogHeader,\r\n DialogTitle,\r\n DialogTrigger,\r\n} from '../../../../../components/ui/Dialog'\r\n\r\n// Custom Components\r\nimport AddItem from './AddItem'\r\nimport {\r\n DescriptionListItem,\r\n} from './description-list'\r\nimport { fitBuildingsBounds } from '../../utils/fitBuildingsBounds'\r\nimport { stringToColour } from '../../utils/stringToColour'\r\nimport { Building, Site } from '../../../../../types/dbTypes'\r\n\r\ntype CompareDialogProps = {\r\n toggleOpen: () => void\r\n compareItems: CompareItem[]\r\n setCompareItems: (items: CompareItem[]) => void\r\n handleAddBuilding: (building: Building) => void\r\n handleAddSite?: (site: Site) => void\r\n}\r\n\r\nexport default function CompareDialog({ toggleOpen, compareItems, setCompareItems, handleAddBuilding, handleAddSite }: CompareDialogProps) {\r\n // Translation\r\n const t = useTranslations('CompareDialog')\r\n\r\n const { comparing, setComparing } = useBuildingsContext()\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n const [dialogOpen, setDialogOpen] = React.useState(false)\r\n\r\n // Determine if we're comparing buildings or sites\r\n const isComparingSites = compareItems.some(item =>\r\n item.siteName !== undefined || item.siteAddress !== undefined,\r\n )\r\n\r\n // Choose the appropriate headers\r\n const headers = isComparingSites ? useSiteHeaders() : useBuildingHeaders()\r\n const excludedKeys = new Set([\r\n 'id',\r\n 'buildingId',\r\n 'siteId',\r\n 'organizationIds',\r\n 'buildingOwnerIds',\r\n 'buildingName', // Shown in header\r\n 'buildingAddress', // Shown in header\r\n 'siteName', // Shown in header\r\n 'siteAddress', // Shown in header\r\n ])\r\n\r\n const removeBuilding = (index: number) => {\r\n const updatedBuildings = [...compareItems]\r\n updatedBuildings.splice(index, 1)\r\n setCompareItems(updatedBuildings)\r\n }\r\n\r\n const onCloseDialog = () => {\r\n setDialogOpen(false)\r\n // Call the parent's toggleOpen to reset comparing state and clear items\r\n toggleOpen()\r\n }\r\n\r\n const onCompare = () => {\r\n setDialogOpen(true)\r\n if (map) {\r\n // Filter items that have building coordinates\r\n const buildingsWithCoords = compareItems.filter(item =>\r\n item.buildingLongitude != null && item.buildingLatitude != null,\r\n )\r\n if (buildingsWithCoords.length > 0) {\r\n const buildings: Building[] = buildingsWithCoords.map(item => ({\r\n ...item,\r\n id: parseInt(item.id),\r\n buildingEmail: item.buildingEmail || '',\r\n buildingPhoneNumber: item.buildingPhoneNumber || '',\r\n buildingAddress: item.buildingAddress || '',\r\n buildingStreetNumber: item.buildingStreetNumber || '',\r\n buildingStreetName: item.buildingStreetName || '',\r\n buildingStreetType: item.buildingStreetType || '',\r\n buildingStreetDirection: item.buildingStreetDirection || '',\r\n } as Building))\r\n fitBuildingsBounds(buildings, map)\r\n }\r\n }\r\n }\r\n\r\n // Render properties organized by header sections\r\n const renderComparisonContent = () => {\r\n if (compareItems.length === 0)\r\n return null\r\n\r\n return headers.map((section, sectionIndex) => (\r\n <div key={sectionIndex} className=\"mb-6\">\r\n {/* Section Title */}\r\n <div className=\"grid grid-cols-1 md:grid-cols-12 gap-x-6 gap-y-0 border-b border-border\">\r\n <div className=\"col-span-12 py-3 px-2\">\r\n <h3 className=\"text-lg font-semibold text-foreground\">{section.title}</h3>\r\n </div>\r\n </div>\r\n\r\n {/* Properties in this section */}\r\n {section.subsections.map((subsection, subsectionIndex) =>\r\n subsection.fields\r\n .filter(field => !excludedKeys.has(field.property))\r\n .map((field, fieldIndex) => (\r\n <DescriptionListItem key={`${subsectionIndex}-${fieldIndex}`} label={field.label as string}>\r\n <div className=\"grid grid-cols-1 grid-flow-col auto-cols-fr\">\r\n {compareItems.map((item, itemIndex) => (\r\n <div key={itemIndex} className={`py-3 px-2 relative pointer-events-none ${itemIndex === 1 ? 'md:bg-[#f9f9fa]' : ''}`}>\r\n <div\r\n className={`pointer-events-none ${itemIndex === 1 ? `bg-[#f9f9fa] md:bg-transparent absolute h-full w-full top-0 left-0 origin-bottom scale-y-[2] -z-10` : ''}`}\r\n >\r\n </div>\r\n <span className=\"text-sm text-muted-foreground break-words\">\r\n {(() => {\r\n const value = item[field.property]\r\n if (value === null\r\n || value === undefined\r\n || value === 'null'\r\n || value === ''\r\n || (Array.isArray(value) && value.length === 0)) {\r\n return <span className=\"italic\">---</span>\r\n }\r\n\r\n // Handle arrays by joining with commas\r\n if (Array.isArray(value)) {\r\n return value.join(', ')\r\n }\r\n\r\n if (value === true) return 'Yes'\r\n if (value === false) return 'No'\r\n\r\n // Handle other objects\r\n return typeof value === 'object'\r\n ? JSON.stringify(value)\r\n : String(value)\r\n })()}\r\n </span>\r\n </div>\r\n ))}\r\n </div>\r\n </DescriptionListItem>\r\n )),\r\n )}\r\n </div>\r\n ))\r\n }\r\n\r\n return (\r\n <>\r\n <Dialog\r\n open={dialogOpen}\r\n onOpenChange={(open) => {\r\n setDialogOpen(open)\r\n // When dialog closes, reset everything\r\n if (!open) {\r\n toggleOpen()\r\n }\r\n }}\r\n >\r\n <DialogTrigger asChild>\r\n <Button onClick={onCompare}>\r\n {t('compareNow')}\r\n </Button>\r\n </DialogTrigger>\r\n <DialogContent className=\"w-screen h-screen max-w-screen sm:h-auto sm:max-w-[95vw] xl:max-w-[1200px] pb-0\" closeClass=\"hidden\">\r\n <DialogHeader className=\"flex flex-row justify-between items-center\">\r\n {/* Title & Description */}\r\n <div className=\"flex flex-col gap-1.5\">\r\n <DialogTitle>{t('compare')}</DialogTitle>\r\n <DialogDescription>\r\n {t('description1')}\r\n {' '}\r\n {isComparingSites ? t('sites') : t('buildings')}\r\n {' '}\r\n {t('description2')}\r\n </DialogDescription>\r\n </div>\r\n {/* Export & Add buttons */}\r\n <div className=\"flex flex-row gap-2.5 h-full !m-0\">\r\n <ExportData\r\n data={\r\n isComparingSites\r\n ? compareItems.map(item => ({\r\n ...item,\r\n id: Number(item.id),\r\n })) as Site[]\r\n : compareItems.map(item => ({\r\n ...item,\r\n id: Number(item.id),\r\n })) as Building[]\r\n }\r\n variant=\"secondary\"\r\n type={isComparingSites ? \"site\" : \"building\"}\r\n />\r\n {/* Add buildings */}\r\n {compareItems.length < 3 && (\r\n <AddItem\r\n handleAddBuilding={handleAddBuilding}\r\n handleAddSite={handleAddSite}\r\n isComparingSites={isComparingSites}\r\n icon={<LR.GitCompare />}\r\n variant=\"secondary\"\r\n />\r\n )}\r\n\r\n <DialogClose onClick={onCloseDialog} asChild>\r\n <Button\r\n variant=\"ghost\"\r\n className=\"h-9 w-9 rounded-xl text-muted-foreground hover:bg-transparent focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-background focus:ring-primary\"\r\n >\r\n <LR.X className=\"!h-6 !w-6\" />\r\n </Button>\r\n </DialogClose>\r\n </div>\r\n </DialogHeader>\r\n\r\n {/* Compare Layout */}\r\n <div className=\"max-h-[60vh] overflow-y-auto\">\r\n <div className=\"flex flex-col w-full\">\r\n {/* Building headers row */}\r\n <div className=\"grid grid-cols-1 md:grid-cols-12 gap-x-6 gap-y-0 border-y border-border sticky top-0 z-10 bg-background\">\r\n <div className=\"col-span-4 py-0 px-2 text-sm font-semibold text-foreground sticky left-0 bg-background\">\r\n {/* Empty space for property labels column */}\r\n </div>\r\n <div className=\"col-span-8 p-0\">\r\n <div className=\"grid grid-cols-1 grid-flow-col auto-cols-fr h-full\">\r\n {compareItems.map((item, index) => (\r\n <div key={index} className={`flex flex-row justify-between py-3 px-2 ${index === 1 ? 'bg-[#f9f9fa]' : 'bg-background'}`}>\r\n {/* text */}\r\n <div className=\"flex-1\">\r\n <h3 className=\"text-xl text-card-foreground break-words top-4\">\r\n <ColorCircle color={stringToColour(\r\n item.buildingName || item.buildingAddress\r\n || item.siteName || item.siteAddress || t('unknown'),\r\n )}\r\n />\r\n {item.buildingName || item.buildingAddress\r\n || item.siteName || item.siteAddress || t('unknown')}\r\n </h3>\r\n <p className=\"text-xs text-muted-foreground break-words\">\r\n {(item.buildingName && item.buildingAddress)\r\n || (item.siteName && item.siteAddress)}\r\n </p>\r\n </div>\r\n\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent ml-2\"\r\n onClick={() => removeBuilding(index)}\r\n >\r\n <LR.CircleMinus className=\"\" />\r\n </Button>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Render comparison content organized by sections */}\r\n {renderComparisonContent()}\r\n </div>\r\n </div>\r\n\r\n </DialogContent>\r\n </Dialog>\r\n </>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../../src/core/components/viewers/map/src/compare/CompareDialog.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\n// Icons\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport React from 'react'\r\n\r\n// Dependencies\r\n\r\n\r\nimport { Button, ExportData, ColorCircle } from '../../../../../components/ui/'\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogHeader,\r\n DialogTitle,\r\n DialogTrigger,\r\n} from '../../../../../components/ui/Dialog'\r\nimport { MapContext, useBuildingsContext } from '../../../../../store'\r\nimport { useBuildingHeaders, useSiteHeaders } from '../../../Data/utils/Headers'\r\n// Shadcn components\r\n\r\n// Custom Components\r\nimport { fitBuildingsBounds } from '../../utils/fitBuildingsBounds'\r\nimport { stringToColour } from '../../utils/stringToColour'\r\n\r\nimport AddItem from './AddItem'\r\nimport {\r\n DescriptionListItem,\r\n} from './description-list'\r\n\r\nimport type { CompareItem } from '../../../../../store';\r\nimport type { Building, Site } from '../../../../../types/dbTypes'\r\n\r\ntype CompareDialogProps = {\r\n toggleOpen: () => void\r\n compareItems: CompareItem[]\r\n setCompareItems: (items: CompareItem[]) => void\r\n handleAddBuilding: (building: Building) => void\r\n handleAddSite?: (site: Site) => void\r\n}\r\n\r\nexport default function CompareDialog({ toggleOpen, compareItems, setCompareItems, handleAddBuilding, handleAddSite }: CompareDialogProps) {\r\n // Translation\r\n const t = useTranslations('CompareDialog')\r\n\r\n const { comparing, setComparing } = useBuildingsContext()\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n const [dialogOpen, setDialogOpen] = React.useState(false)\r\n\r\n // Determine if we're comparing buildings or sites\r\n const isComparingSites = compareItems.some(item =>\r\n item.siteName !== undefined || item.siteAddress !== undefined,\r\n )\r\n\r\n // Choose the appropriate headers\r\n const headers = isComparingSites ? useSiteHeaders() : useBuildingHeaders()\r\n const excludedKeys = new Set([\r\n 'id',\r\n 'buildingId',\r\n 'siteId',\r\n 'organizationIds',\r\n 'buildingOwnerIds',\r\n 'buildingName', // Shown in header\r\n 'buildingAddress', // Shown in header\r\n 'siteName', // Shown in header\r\n 'siteAddress', // Shown in header\r\n ])\r\n\r\n const removeBuilding = (index: number) => {\r\n const updatedBuildings = [...compareItems]\r\n updatedBuildings.splice(index, 1)\r\n setCompareItems(updatedBuildings)\r\n }\r\n\r\n const onCloseDialog = () => {\r\n setDialogOpen(false)\r\n // Call the parent's toggleOpen to reset comparing state and clear items\r\n toggleOpen()\r\n }\r\n\r\n const onCompare = () => {\r\n setDialogOpen(true)\r\n if (map) {\r\n // Filter items that have building coordinates\r\n const buildingsWithCoords = compareItems.filter(item =>\r\n item.buildingLongitude != null && item.buildingLatitude != null,\r\n )\r\n if (buildingsWithCoords.length > 0) {\r\n const buildings: Building[] = buildingsWithCoords.map(item => ({\r\n ...item,\r\n id: parseInt(item.id),\r\n buildingEmail: item.buildingEmail || '',\r\n buildingPhoneNumber: item.buildingPhoneNumber || '',\r\n buildingAddress: item.buildingAddress || '',\r\n buildingStreetNumber: item.buildingStreetNumber || '',\r\n buildingStreetName: item.buildingStreetName || '',\r\n buildingStreetType: item.buildingStreetType || '',\r\n buildingStreetDirection: item.buildingStreetDirection || '',\r\n } as Building))\r\n fitBuildingsBounds(buildings, map)\r\n }\r\n }\r\n }\r\n\r\n // Render properties organized by header sections\r\n const renderComparisonContent = () => {\r\n if (compareItems.length === 0)\r\n return null\r\n\r\n return headers.map((section, sectionIndex) => (\r\n <div key={sectionIndex} className=\"mb-6\">\r\n {/* Section Title */}\r\n <div className=\"grid grid-cols-1 md:grid-cols-12 gap-x-6 gap-y-0 border-b border-border\">\r\n <div className=\"col-span-12 py-3 px-2\">\r\n <h3 className=\"text-lg font-semibold text-foreground\">{section.title}</h3>\r\n </div>\r\n </div>\r\n\r\n {/* Properties in this section */}\r\n {section.subsections.map((subsection, subsectionIndex) =>\r\n subsection.fields\r\n .filter(field => !excludedKeys.has(field.property))\r\n .map((field, fieldIndex) => (\r\n <DescriptionListItem key={`${subsectionIndex}-${fieldIndex}`} label={field.label as string}>\r\n <div className=\"grid grid-cols-1 grid-flow-col auto-cols-fr\">\r\n {compareItems.map((item, itemIndex) => (\r\n <div key={itemIndex} className={`py-3 px-2 relative pointer-events-none ${itemIndex === 1 ? 'md:bg-[#f9f9fa]' : ''}`}>\r\n <div\r\n className={`pointer-events-none ${itemIndex === 1 ? `bg-[#f9f9fa] md:bg-transparent absolute h-full w-full top-0 left-0 origin-bottom scale-y-[2] -z-10` : ''}`}\r\n >\r\n </div>\r\n <span className=\"text-sm text-muted-foreground break-words\">\r\n {(() => {\r\n const value = item[field.property]\r\n if (value === null\r\n || value === undefined\r\n || value === 'null'\r\n || value === ''\r\n || (Array.isArray(value) && value.length === 0)) {\r\n return <span className=\"italic\">---</span>\r\n }\r\n\r\n // Handle arrays by joining with commas\r\n if (Array.isArray(value)) {\r\n return value.join(', ')\r\n }\r\n\r\n if (value === true) return 'Yes'\r\n if (value === false) return 'No'\r\n\r\n // Handle other objects\r\n return typeof value === 'object'\r\n ? JSON.stringify(value)\r\n : String(value)\r\n })()}\r\n </span>\r\n </div>\r\n ))}\r\n </div>\r\n </DescriptionListItem>\r\n )),\r\n )}\r\n </div>\r\n ))\r\n }\r\n\r\n return (\r\n <>\r\n <Dialog\r\n open={dialogOpen}\r\n onOpenChange={(open) => {\r\n setDialogOpen(open)\r\n // When dialog closes, reset everything\r\n if (!open) {\r\n toggleOpen()\r\n }\r\n }}\r\n >\r\n <DialogTrigger asChild>\r\n <Button onClick={onCompare}>\r\n {t('compareNow')}\r\n </Button>\r\n </DialogTrigger>\r\n <DialogContent className=\"w-screen h-screen max-w-screen sm:h-auto sm:max-w-[95vw] xl:max-w-[1200px] pb-0\" closeClass=\"hidden\">\r\n <DialogHeader className=\"flex flex-row justify-between items-center\">\r\n {/* Title & Description */}\r\n <div className=\"flex flex-col gap-1.5\">\r\n <DialogTitle>{t('compare')}</DialogTitle>\r\n <DialogDescription>\r\n {t('description1')}\r\n {' '}\r\n {isComparingSites ? t('sites') : t('buildings')}\r\n {' '}\r\n {t('description2')}\r\n </DialogDescription>\r\n </div>\r\n {/* Export & Add buttons */}\r\n <div className=\"flex flex-row gap-2.5 h-full !m-0\">\r\n <ExportData\r\n data={\r\n isComparingSites\r\n ? compareItems.map(item => ({\r\n ...item,\r\n id: Number(item.id),\r\n })) as Site[]\r\n : compareItems.map(item => ({\r\n ...item,\r\n id: Number(item.id),\r\n })) as Building[]\r\n }\r\n variant=\"secondary\"\r\n type={isComparingSites ? \"site\" : \"building\"}\r\n />\r\n {/* Add buildings */}\r\n {compareItems.length < 3 && (\r\n <AddItem\r\n handleAddBuilding={handleAddBuilding}\r\n handleAddSite={handleAddSite}\r\n isComparingSites={isComparingSites}\r\n icon={<LR.GitCompare />}\r\n variant=\"secondary\"\r\n />\r\n )}\r\n\r\n <DialogClose onClick={onCloseDialog} asChild>\r\n <Button\r\n variant=\"ghost\"\r\n className=\"h-9 w-9 rounded-xl text-muted-foreground hover:bg-transparent focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-background focus:ring-primary\"\r\n >\r\n <LR.X className=\"!h-6 !w-6\" />\r\n </Button>\r\n </DialogClose>\r\n </div>\r\n </DialogHeader>\r\n\r\n {/* Compare Layout */}\r\n <div className=\"max-h-[60vh] overflow-y-auto\">\r\n <div className=\"flex flex-col w-full\">\r\n {/* Building headers row */}\r\n <div className=\"grid grid-cols-1 md:grid-cols-12 gap-x-6 gap-y-0 border-y border-border sticky top-0 z-10 bg-background\">\r\n <div className=\"col-span-4 py-0 px-2 text-sm font-semibold text-foreground sticky left-0 bg-background\">\r\n {/* Empty space for property labels column */}\r\n </div>\r\n <div className=\"col-span-8 p-0\">\r\n <div className=\"grid grid-cols-1 grid-flow-col auto-cols-fr h-full\">\r\n {compareItems.map((item, index) => (\r\n <div key={index} className={`flex flex-row justify-between py-3 px-2 ${index === 1 ? 'bg-[#f9f9fa]' : 'bg-background'}`}>\r\n {/* text */}\r\n <div className=\"flex-1\">\r\n <h3 className=\"text-xl text-card-foreground break-words top-4\">\r\n <ColorCircle color={stringToColour(\r\n item.buildingName || item.buildingAddress\r\n || item.siteName || item.siteAddress || t('unknown'),\r\n )}\r\n />\r\n {item.buildingName || item.buildingAddress\r\n || item.siteName || item.siteAddress || t('unknown')}\r\n </h3>\r\n <p className=\"text-xs text-muted-foreground break-words\">\r\n {(item.buildingName && item.buildingAddress)\r\n || (item.siteName && item.siteAddress)}\r\n </p>\r\n </div>\r\n\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent ml-2\"\r\n onClick={() => removeBuilding(index)}\r\n >\r\n <LR.CircleMinus className=\"\" />\r\n </Button>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Render comparison content organized by sections */}\r\n {renderComparisonContent()}\r\n </div>\r\n </div>\r\n\r\n </DialogContent>\r\n </Dialog>\r\n </>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
+ import type { Building } from '../../../../../types/dbTypes';
2
3
  import type { Tool } from '../../../../../types/tools';
3
- import { Building } from '../../../../../types/dbTypes';
4
4
  type CompareProps = {
5
5
  tool: Tool;
6
6
  building?: Building;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/src/compare/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAuBtD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAEvD,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,YAAY,qBA0K/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/src/compare/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA4B9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAEtD,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,YAAY,qBA0K/D"}
@@ -20,10 +20,8 @@ var __spreadValues = (a, b) => {
20
20
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
21
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
22
  import * as LR from "lucide-react";
23
- import * as React from "react";
24
23
  import { useTranslations } from "next-intl";
25
- import { usePermissions } from "../../../../../store";
26
- import { MapContext, useBuildingsContext } from "../../../../../store";
24
+ import * as React from "react";
27
25
  import { Button } from "../../../../../components/ui/Button";
28
26
  import {
29
27
  Card,
@@ -32,11 +30,13 @@ import {
32
30
  CardHeader,
33
31
  CardTitle
34
32
  } from "../../../../../components/ui/Card";
35
- import AddBuildings from "./AddItem";
36
- import CompareDialog from "./CompareDialog";
33
+ import ColorCircle from "../../../../../components/ui/ColorCircle";
34
+ import { usePermissions } from "../../../../../store";
35
+ import { MapContext, useBuildingsContext } from "../../../../../store";
37
36
  import { MarkerManager } from "../../utils/MarkerManager";
38
37
  import { stringToColour } from "../../utils/stringToColour";
39
- import ColorCircle from "../../../../../components/ui/ColorCircle";
38
+ import AddBuildings from "./AddItem";
39
+ import CompareDialog from "./CompareDialog";
40
40
  function Compare({ tool, building }) {
41
41
  const t = useTranslations("Compare");
42
42
  const { ability } = usePermissions();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/core/components/viewers/map/src/compare/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\n// Icons\r\nimport * as LR from 'lucide-react'\r\n// Dependencies\r\nimport * as React from 'react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { usePermissions } from '../../../../../store'\r\n\r\nimport type { Tool } from '../../../../../types/tools'\r\n// Data\r\n\r\n\r\nimport { MapContext, useBuildingsContext } from '../../../../../store'\r\nimport { Button } from '../../../../../components/ui/Button'\r\n// Shadcn Components\r\nimport {\r\n Card,\r\n CardContent,\r\n CardDescription,\r\n CardFooter,\r\n CardHeader,\r\n CardTitle,\r\n} from '../../../../../components/ui/Card'\r\n\r\n\r\n// Custom Components\r\nimport AddBuildings from './AddItem'\r\nimport CompareDialog from './CompareDialog'\r\nimport { MarkerManager } from '../../utils/MarkerManager'\r\nimport { stringToColour } from '../../utils/stringToColour'\r\nimport ColorCircle from '../../../../../components/ui/ColorCircle'\r\nimport { Building } from '../../../../../types/dbTypes'\r\n\r\ntype CompareProps = {\r\n tool: Tool\r\n building?: Building\r\n}\r\n\r\nexport default function Compare({ tool, building }: CompareProps) {\r\n // Translation\r\n const t = useTranslations('Compare')\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n\r\n const { compareItems, setCompareItems, comparing, setComparing } = useBuildingsContext()\r\n\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n\r\n const toggleOpen = () => {\r\n setIsOpen(!isOpen)\r\n }\r\n\r\n const onCloseDialog = () => {\r\n setComparing(false)\r\n }\r\n\r\n const handleClearAll = () => {\r\n setComparing(false)\r\n setCompareItems([])\r\n }\r\n\r\n const markerManager = new MarkerManager()\r\n\r\n // This useEffect was causing issues with building marker click events, removing for now\r\n\r\n // Effect to handle building prop if provided\r\n React.useEffect(() => {\r\n\r\n if (!map) return;\r\n\r\n if (building && !compareItems.some(b => b.id === String(building.id))) {\r\n setCompareItems([...compareItems, { ...building, id: String(building.id) }]);\r\n\r\n if (!comparing) return\r\n markerManager.create(\r\n [building.buildingLongitude, building.buildingLatitude],\r\n map,\r\n {\r\n allowMultiple: true, layerColor: stringToColour(building.buildingName || building.buildingAddress)\r\n }\r\n );\r\n }\r\n\r\n }, [building, compareItems, map, comparing]);\r\n\r\n const handleAddBuilding = (building: Building) => {\r\n // Convert building to compareItem format with string ID\r\n const compareItem = { ...building, id: String(building.id) }\r\n setCompareItems([...compareItems, compareItem])\r\n markerManager.create(\r\n [building.buildingLongitude, building.buildingLatitude],\r\n map,\r\n {\r\n allowMultiple: true,\r\n layerColor: stringToColour(building.buildingName || building.buildingAddress),\r\n },\r\n )\r\n }\r\n\r\n const cardAnimationClasses = `pointer-events-auto fixed left-1/2 transform -translate-x-1/2 bottom-0 transition-all duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 ${isOpen ? '' : 'opacity-0 pointer-events-none'}`\r\n\r\n // Close dialog and reset compareItems on Escape key\r\n React.useEffect(() => {\r\n const handleEsc = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n setIsOpen(false)\r\n setComparing(false)\r\n }\r\n }\r\n window.addEventListener('keydown', handleEsc)\r\n return () => window.removeEventListener('keydown', handleEsc)\r\n }, [setComparing])\r\n\r\n return (\r\n <>\r\n <Button\r\n size=\"icon\"\r\n variant=\"ghost\"\r\n className=\"flex justify-center items-center h-9 w-9 pointer-events-auto\"\r\n onClick={toggleOpen}\r\n title={tool.title}\r\n disabled={!ability.can('read', 'Building')}\r\n >\r\n <LR.Columns3 />\r\n </Button>\r\n\r\n <Card className={`${cardAnimationClasses} z-20 w-[80vw] max-w-[900px]`} data-state={isOpen ? 'open' : 'closed'}>\r\n <CardHeader className=\"flex flex-row justify-between items-center py-0\">\r\n <CardTitle>\r\n {t('compareBuildings')}\r\n </CardTitle>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n onClick={toggleOpen}\r\n className=\"opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n >\r\n <span className=\"sr-only\">{t('close')}</span>\r\n <LR.X size={18} />\r\n </Button>\r\n </CardHeader>\r\n\r\n <CardContent className=\"p-0\">\r\n <div className=\"flex flex-row p-6 gap-8 items-center border-2 border-dashed border-[#E3E1E4] border-opacity-50 bg-[#E3E1E4] bg-opacity-10 rounded-xl\">\r\n {/* Building cards */}\r\n <div className=\"flex flex-row gap-2 items-stretch justify-center min-h-20\">\r\n\r\n {/* map over selected buildings and populate with building card */}\r\n {compareItems.map((item, index) => (\r\n <Card key={index} className=\"flex flex-col relative\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"absolute top-2 right-2 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent h-6 w-6\"\r\n onClick={() => {\r\n const updatedItems = [...compareItems]\r\n updatedItems.splice(index, 1)\r\n setCompareItems(updatedItems)\r\n }}\r\n >\r\n <LR.CircleMinus className=\"h-4 w-4\" />\r\n </Button>\r\n <CardHeader className=\"flex flex-col justify-center\">\r\n <div className=\"flex items-center mb-2\">\r\n <ColorCircle color={stringToColour(item.buildingName || item.buildingAddress || item.siteName || item.siteAddress)} />\r\n <CardTitle>\r\n {item.buildingName || item.buildingAddress || item.siteName || item.siteAddress}\r\n </CardTitle>\r\n </div>\r\n <CardDescription>\r\n {(item.buildingName && item.buildingAddress) || (item.siteName && item.siteAddress)}\r\n </CardDescription>\r\n </CardHeader>\r\n </Card>\r\n ))}\r\n\r\n {/* Add building button */}\r\n {compareItems.length < 3 && (\r\n <Card className=\"flex flex-col\">\r\n <CardHeader className=\"text-muted-foreground flex-1 flex justify-center items-center p-0\">\r\n <AddBuildings handleAddBuilding={handleAddBuilding} className=\"w-full h-full rounded-xl\" variant=\"ghost\" />\r\n </CardHeader>\r\n </Card>\r\n )}\r\n\r\n </div>\r\n\r\n {/* Compare Button */}\r\n <div className=\"flex flex-col gap-2\">\r\n <CompareDialog\r\n toggleOpen={onCloseDialog}\r\n compareItems={compareItems}\r\n setCompareItems={setCompareItems}\r\n handleAddBuilding={handleAddBuilding}\r\n />\r\n <Button variant=\"outline\" onClick={handleClearAll} disabled={compareItems.length === 0}>\r\n {t('clearAll')}\r\n </Button>\r\n </div>\r\n </div>\r\n </CardContent>\r\n\r\n </Card>\r\n </>\r\n )\r\n}\r\n"],"mappings":"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","names":["building"]}
1
+ {"version":3,"sources":["../../../../../../../src/core/components/viewers/map/src/compare/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\n// Icons\r\nimport * as LR from 'lucide-react'\r\n// Dependencies\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '../../../../../components/ui/Button'\r\nimport {\r\n Card,\r\n CardContent,\r\n CardDescription,\r\n CardFooter,\r\n CardHeader,\r\n CardTitle,\r\n} from '../../../../../components/ui/Card'\r\nimport ColorCircle from '../../../../../components/ui/ColorCircle'\r\nimport { usePermissions } from '../../../../../store'\r\n\r\n// Data\r\n\r\n\r\nimport { MapContext, useBuildingsContext } from '../../../../../store'\r\n// Shadcn Components\r\n\r\n\r\n// Custom Components\r\nimport { MarkerManager } from '../../utils/MarkerManager'\r\nimport { stringToColour } from '../../utils/stringToColour'\r\n\r\nimport AddBuildings from './AddItem'\r\nimport CompareDialog from './CompareDialog'\r\n\r\nimport type { Building } from '../../../../../types/dbTypes'\r\nimport type { Tool } from '../../../../../types/tools'\r\n\r\ntype CompareProps = {\r\n tool: Tool\r\n building?: Building\r\n}\r\n\r\nexport default function Compare({ tool, building }: CompareProps) {\r\n // Translation\r\n const t = useTranslations('Compare')\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n const { state: mapState } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n\r\n const { compareItems, setCompareItems, comparing, setComparing } = useBuildingsContext()\r\n\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n\r\n const toggleOpen = () => {\r\n setIsOpen(!isOpen)\r\n }\r\n\r\n const onCloseDialog = () => {\r\n setComparing(false)\r\n }\r\n\r\n const handleClearAll = () => {\r\n setComparing(false)\r\n setCompareItems([])\r\n }\r\n\r\n const markerManager = new MarkerManager()\r\n\r\n // This useEffect was causing issues with building marker click events, removing for now\r\n\r\n // Effect to handle building prop if provided\r\n React.useEffect(() => {\r\n\r\n if (!map) return;\r\n\r\n if (building && !compareItems.some(b => b.id === String(building.id))) {\r\n setCompareItems([...compareItems, { ...building, id: String(building.id) }]);\r\n\r\n if (!comparing) return\r\n markerManager.create(\r\n [building.buildingLongitude, building.buildingLatitude],\r\n map,\r\n {\r\n allowMultiple: true, layerColor: stringToColour(building.buildingName || building.buildingAddress)\r\n }\r\n );\r\n }\r\n\r\n }, [building, compareItems, map, comparing]);\r\n\r\n const handleAddBuilding = (building: Building) => {\r\n // Convert building to compareItem format with string ID\r\n const compareItem = { ...building, id: String(building.id) }\r\n setCompareItems([...compareItems, compareItem])\r\n markerManager.create(\r\n [building.buildingLongitude, building.buildingLatitude],\r\n map,\r\n {\r\n allowMultiple: true,\r\n layerColor: stringToColour(building.buildingName || building.buildingAddress),\r\n },\r\n )\r\n }\r\n\r\n const cardAnimationClasses = `pointer-events-auto fixed left-1/2 transform -translate-x-1/2 bottom-0 transition-all duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 ${isOpen ? '' : 'opacity-0 pointer-events-none'}`\r\n\r\n // Close dialog and reset compareItems on Escape key\r\n React.useEffect(() => {\r\n const handleEsc = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n setIsOpen(false)\r\n setComparing(false)\r\n }\r\n }\r\n window.addEventListener('keydown', handleEsc)\r\n return () => window.removeEventListener('keydown', handleEsc)\r\n }, [setComparing])\r\n\r\n return (\r\n <>\r\n <Button\r\n size=\"icon\"\r\n variant=\"ghost\"\r\n className=\"flex justify-center items-center h-9 w-9 pointer-events-auto\"\r\n onClick={toggleOpen}\r\n title={tool.title}\r\n disabled={!ability.can('read', 'Building')}\r\n >\r\n <LR.Columns3 />\r\n </Button>\r\n\r\n <Card className={`${cardAnimationClasses} z-20 w-[80vw] max-w-[900px]`} data-state={isOpen ? 'open' : 'closed'}>\r\n <CardHeader className=\"flex flex-row justify-between items-center py-0\">\r\n <CardTitle>\r\n {t('compareBuildings')}\r\n </CardTitle>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n onClick={toggleOpen}\r\n className=\"opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n >\r\n <span className=\"sr-only\">{t('close')}</span>\r\n <LR.X size={18} />\r\n </Button>\r\n </CardHeader>\r\n\r\n <CardContent className=\"p-0\">\r\n <div className=\"flex flex-row p-6 gap-8 items-center border-2 border-dashed border-[#E3E1E4] border-opacity-50 bg-[#E3E1E4] bg-opacity-10 rounded-xl\">\r\n {/* Building cards */}\r\n <div className=\"flex flex-row gap-2 items-stretch justify-center min-h-20\">\r\n\r\n {/* map over selected buildings and populate with building card */}\r\n {compareItems.map((item, index) => (\r\n <Card key={index} className=\"flex flex-col relative\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"absolute top-2 right-2 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent h-6 w-6\"\r\n onClick={() => {\r\n const updatedItems = [...compareItems]\r\n updatedItems.splice(index, 1)\r\n setCompareItems(updatedItems)\r\n }}\r\n >\r\n <LR.CircleMinus className=\"h-4 w-4\" />\r\n </Button>\r\n <CardHeader className=\"flex flex-col justify-center\">\r\n <div className=\"flex items-center mb-2\">\r\n <ColorCircle color={stringToColour(item.buildingName || item.buildingAddress || item.siteName || item.siteAddress)} />\r\n <CardTitle>\r\n {item.buildingName || item.buildingAddress || item.siteName || item.siteAddress}\r\n </CardTitle>\r\n </div>\r\n <CardDescription>\r\n {(item.buildingName && item.buildingAddress) || (item.siteName && item.siteAddress)}\r\n </CardDescription>\r\n </CardHeader>\r\n </Card>\r\n ))}\r\n\r\n {/* Add building button */}\r\n {compareItems.length < 3 && (\r\n <Card className=\"flex flex-col\">\r\n <CardHeader className=\"text-muted-foreground flex-1 flex justify-center items-center p-0\">\r\n <AddBuildings handleAddBuilding={handleAddBuilding} className=\"w-full h-full rounded-xl\" variant=\"ghost\" />\r\n </CardHeader>\r\n </Card>\r\n )}\r\n\r\n </div>\r\n\r\n {/* Compare Button */}\r\n <div className=\"flex flex-col gap-2\">\r\n <CompareDialog\r\n toggleOpen={onCloseDialog}\r\n compareItems={compareItems}\r\n setCompareItems={setCompareItems}\r\n handleAddBuilding={handleAddBuilding}\r\n />\r\n <Button variant=\"outline\" onClick={handleClearAll} disabled={compareItems.length === 0}>\r\n {t('clearAll')}\r\n </Button>\r\n </div>\r\n </div>\r\n </CardContent>\r\n\r\n </Card>\r\n </>\r\n )\r\n}\r\n"],"mappings":"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","names":["building"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetAdder.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAsD9B,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GAAI,aAAa,iBAAiB,sBAwR1D,CAAA"}
1
+ {"version":3,"file":"DatasetAdder.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAsD9B,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GAAI,aAAa,iBAAiB,sBAwR1D,CAAA"}