@collabdt/core 0.3.0 → 0.3.2

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 (1338) 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 -4
  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 +13 -3
  124. package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts.map +1 -1
  125. package/dist/core/components/ui/Comments/CollapsibleCommentItem.js +144 -146
  126. package/dist/core/components/ui/Comments/CollapsibleCommentItem.js.map +1 -1
  127. package/dist/core/components/ui/Comments/Comment.d.ts +18 -1
  128. package/dist/core/components/ui/Comments/Comment.d.ts.map +1 -1
  129. package/dist/core/components/ui/Comments/Comment.js +97 -26
  130. package/dist/core/components/ui/Comments/Comment.js.map +1 -1
  131. package/dist/core/components/ui/Comments/CommentActionButtons.d.ts +34 -0
  132. package/dist/core/components/ui/Comments/CommentActionButtons.d.ts.map +1 -0
  133. package/dist/core/components/ui/Comments/CommentActionButtons.js +106 -0
  134. package/dist/core/components/ui/Comments/CommentActionButtons.js.map +1 -0
  135. package/dist/core/components/ui/Comments/CommentInput.d.ts.map +1 -1
  136. package/dist/core/components/ui/Comments/CommentInput.js +11 -8
  137. package/dist/core/components/ui/Comments/CommentInput.js.map +1 -1
  138. package/dist/core/components/ui/Comments/CommentsSection.d.ts.map +1 -1
  139. package/dist/core/components/ui/Comments/CommentsSection.js +89 -45
  140. package/dist/core/components/ui/Comments/CommentsSection.js.map +1 -1
  141. package/dist/core/components/ui/Comments/commentUtils.d.ts +1 -1
  142. package/dist/core/components/ui/Comments/commentUtils.d.ts.map +1 -1
  143. package/dist/core/components/ui/Comments/commentUtils.js +2 -1
  144. package/dist/core/components/ui/Comments/commentUtils.js.map +1 -1
  145. package/dist/core/components/ui/Countdown.d.ts.map +1 -1
  146. package/dist/core/components/ui/Countdown.js +1 -1
  147. package/dist/core/components/ui/Countdown.js.map +1 -1
  148. package/dist/core/components/ui/DataTable.d.ts +1 -1
  149. package/dist/core/components/ui/DataTable.d.ts.map +1 -1
  150. package/dist/core/components/ui/DataTable.js +17 -17
  151. package/dist/core/components/ui/DataTable.js.map +1 -1
  152. package/dist/core/components/ui/DatePicker.d.ts.map +1 -1
  153. package/dist/core/components/ui/DatePicker.js +2 -2
  154. package/dist/core/components/ui/DatePicker.js.map +1 -1
  155. package/dist/core/components/ui/DescriptionList.d.ts.map +1 -1
  156. package/dist/core/components/ui/DescriptionList.js +2 -2
  157. package/dist/core/components/ui/DescriptionList.js.map +1 -1
  158. package/dist/core/components/ui/Dialog.d.ts +1 -1
  159. package/dist/core/components/ui/Dialog.d.ts.map +1 -1
  160. package/dist/core/components/ui/Dialog.js +1 -1
  161. package/dist/core/components/ui/Dialog.js.map +1 -1
  162. package/dist/core/components/ui/DropdownMenu.d.ts +1 -1
  163. package/dist/core/components/ui/DropdownMenu.d.ts.map +1 -1
  164. package/dist/core/components/ui/DropdownMenu.js +1 -1
  165. package/dist/core/components/ui/DropdownMenu.js.map +1 -1
  166. package/dist/core/components/ui/ExportData.d.ts +2 -2
  167. package/dist/core/components/ui/ExportData.d.ts.map +1 -1
  168. package/dist/core/components/ui/ExportData.js +5 -5
  169. package/dist/core/components/ui/ExportData.js.map +1 -1
  170. package/dist/core/components/ui/FilesManager/src/FileItemComponent.d.ts.map +1 -1
  171. package/dist/core/components/ui/FilesManager/src/FileItemComponent.js +3 -3
  172. package/dist/core/components/ui/FilesManager/src/FileItemComponent.js.map +1 -1
  173. package/dist/core/components/ui/FilesManager/src/FileMarker.d.ts.map +1 -1
  174. package/dist/core/components/ui/FilesManager/src/FileMarker.js +2 -2
  175. package/dist/core/components/ui/FilesManager/src/FileMarker.js.map +1 -1
  176. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.d.ts.map +1 -1
  177. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.js +1 -1
  178. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.js.map +1 -1
  179. package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.d.ts.map +1 -1
  180. package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.js.map +1 -1
  181. package/dist/core/components/ui/FilesManager/src/downloadUtils.d.ts +1 -1
  182. package/dist/core/components/ui/FilesManager/src/downloadUtils.d.ts.map +1 -1
  183. package/dist/core/components/ui/FilesManager/src/downloadUtils.js.map +1 -1
  184. package/dist/core/components/ui/FilesManager/src/useCommonFileUpload.js.map +1 -1
  185. package/dist/core/components/ui/FilesManager/src/useFileActions.d.ts +2 -2
  186. package/dist/core/components/ui/FilesManager/src/useFileActions.d.ts.map +1 -1
  187. package/dist/core/components/ui/FilesManager/src/useFileActions.js +2 -2
  188. package/dist/core/components/ui/FilesManager/src/useFileActions.js.map +1 -1
  189. package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js +1 -1
  190. package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js.map +1 -1
  191. package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js +3 -3
  192. package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js.map +1 -1
  193. package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.d.ts.map +1 -1
  194. package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.js +0 -1
  195. package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.js.map +1 -1
  196. package/dist/core/components/ui/GenericTool.d.ts +1 -1
  197. package/dist/core/components/ui/GenericTool.d.ts.map +1 -1
  198. package/dist/core/components/ui/GenericTool.js +2 -2
  199. package/dist/core/components/ui/GenericTool.js.map +1 -1
  200. package/dist/core/components/ui/Icons/FloorPlanIcon.js +1 -1
  201. package/dist/core/components/ui/Icons/FloorPlanIcon.js.map +1 -1
  202. package/dist/core/components/ui/InfoSidebar/Container.d.ts.map +1 -1
  203. package/dist/core/components/ui/InfoSidebar/Container.js +16 -12
  204. package/dist/core/components/ui/InfoSidebar/Container.js.map +1 -1
  205. package/dist/core/components/ui/InfoSidebar/Header.d.ts.map +1 -1
  206. package/dist/core/components/ui/InfoSidebar/Header.js +4 -4
  207. package/dist/core/components/ui/InfoSidebar/Header.js.map +1 -1
  208. package/dist/core/components/ui/InfoSidebar/index.d.ts +1 -1
  209. package/dist/core/components/ui/InfoSidebar/index.d.ts.map +1 -1
  210. package/dist/core/components/ui/InfoSidebar/index.js +1 -1
  211. package/dist/core/components/ui/InfoSidebar/index.js.map +1 -1
  212. package/dist/core/components/ui/Label.d.ts +1 -1
  213. package/dist/core/components/ui/Label.d.ts.map +1 -1
  214. package/dist/core/components/ui/Label.js +1 -1
  215. package/dist/core/components/ui/Label.js.map +1 -1
  216. package/dist/core/components/ui/LanguageToggle.d.ts +1 -1
  217. package/dist/core/components/ui/LanguageToggle.d.ts.map +1 -1
  218. package/dist/core/components/ui/LanguageToggle.js +1 -1
  219. package/dist/core/components/ui/LanguageToggle.js.map +1 -1
  220. package/dist/core/components/ui/Menubar.d.ts +1 -1
  221. package/dist/core/components/ui/Menubar.d.ts.map +1 -1
  222. package/dist/core/components/ui/Menubar.js +1 -1
  223. package/dist/core/components/ui/Menubar.js.map +1 -1
  224. package/dist/core/components/ui/NavUser.js +7 -7
  225. package/dist/core/components/ui/NavUser.js.map +1 -1
  226. package/dist/core/components/ui/Navbar.d.ts.map +1 -1
  227. package/dist/core/components/ui/Navbar.js +2 -2
  228. package/dist/core/components/ui/Navbar.js.map +1 -1
  229. package/dist/core/components/ui/Popover.d.ts +1 -1
  230. package/dist/core/components/ui/Popover.d.ts.map +1 -1
  231. package/dist/core/components/ui/Popover.js +1 -1
  232. package/dist/core/components/ui/Popover.js.map +1 -1
  233. package/dist/core/components/ui/Progress.d.ts +1 -1
  234. package/dist/core/components/ui/Progress.d.ts.map +1 -1
  235. package/dist/core/components/ui/Progress.js +1 -1
  236. package/dist/core/components/ui/Progress.js.map +1 -1
  237. package/dist/core/components/ui/ScrollArea.d.ts +1 -1
  238. package/dist/core/components/ui/ScrollArea.d.ts.map +1 -1
  239. package/dist/core/components/ui/ScrollArea.js +1 -1
  240. package/dist/core/components/ui/ScrollArea.js.map +1 -1
  241. package/dist/core/components/ui/SearchInput.d.ts.map +1 -1
  242. package/dist/core/components/ui/SearchInput.js +2 -2
  243. package/dist/core/components/ui/SearchInput.js.map +1 -1
  244. package/dist/core/components/ui/Select.d.ts +1 -1
  245. package/dist/core/components/ui/Select.d.ts.map +1 -1
  246. package/dist/core/components/ui/Select.js +3 -3
  247. package/dist/core/components/ui/Select.js.map +1 -1
  248. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts +1 -1
  249. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts.map +1 -1
  250. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js +10 -10
  251. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js.map +1 -1
  252. package/dist/core/components/ui/Sensors/Sensor.d.ts +2 -1
  253. package/dist/core/components/ui/Sensors/Sensor.d.ts.map +1 -1
  254. package/dist/core/components/ui/Sensors/Sensor.js +3 -3
  255. package/dist/core/components/ui/Sensors/Sensor.js.map +1 -1
  256. package/dist/core/components/ui/Sensors/SensorChart.d.ts +1 -1
  257. package/dist/core/components/ui/Sensors/SensorChart.d.ts.map +1 -1
  258. package/dist/core/components/ui/Sensors/SensorChart.js +1 -1
  259. package/dist/core/components/ui/Sensors/SensorChart.js.map +1 -1
  260. package/dist/core/components/ui/Sensors/SensorInput.d.ts.map +1 -1
  261. package/dist/core/components/ui/Sensors/SensorInput.js +9 -10
  262. package/dist/core/components/ui/Sensors/SensorInput.js.map +1 -1
  263. package/dist/core/components/ui/Sensors/SensorTagsSection.d.ts.map +1 -1
  264. package/dist/core/components/ui/Sensors/SensorTagsSection.js +3 -3
  265. package/dist/core/components/ui/Sensors/SensorTagsSection.js.map +1 -1
  266. package/dist/core/components/ui/Sensors/SensorsSection.d.ts.map +1 -1
  267. package/dist/core/components/ui/Sensors/SensorsSection.js +7 -9
  268. package/dist/core/components/ui/Sensors/SensorsSection.js.map +1 -1
  269. package/dist/core/components/ui/Sensors/SensorsSectionSkeleton.d.ts.map +1 -1
  270. package/dist/core/components/ui/Sensors/SensorsSectionSkeleton.js.map +1 -1
  271. package/dist/core/components/ui/Sensors/sensorUtils.d.ts +1 -1
  272. package/dist/core/components/ui/Sensors/sensorUtils.d.ts.map +1 -1
  273. package/dist/core/components/ui/Sensors/sensorUtils.js.map +1 -1
  274. package/dist/core/components/ui/Separator.d.ts +1 -1
  275. package/dist/core/components/ui/Separator.d.ts.map +1 -1
  276. package/dist/core/components/ui/Separator.js +1 -1
  277. package/dist/core/components/ui/Separator.js.map +1 -1
  278. package/dist/core/components/ui/SettingsButton.d.ts.map +1 -1
  279. package/dist/core/components/ui/SettingsButton.js +4 -4
  280. package/dist/core/components/ui/SettingsButton.js.map +1 -1
  281. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts +1 -1
  282. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts.map +1 -1
  283. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js +14 -14
  284. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js.map +1 -1
  285. package/dist/core/components/ui/Sheet.d.ts +1 -1
  286. package/dist/core/components/ui/Sheet.d.ts.map +1 -1
  287. package/dist/core/components/ui/Sheet.js +1 -1
  288. package/dist/core/components/ui/Sheet.js.map +1 -1
  289. package/dist/core/components/ui/Sidebar.d.ts +1 -1
  290. package/dist/core/components/ui/Sidebar.d.ts.map +1 -1
  291. package/dist/core/components/ui/Sidebar.js +33 -10
  292. package/dist/core/components/ui/Sidebar.js.map +1 -1
  293. package/dist/core/components/ui/Slider.d.ts +1 -1
  294. package/dist/core/components/ui/Slider.d.ts.map +1 -1
  295. package/dist/core/components/ui/Slider.js +1 -1
  296. package/dist/core/components/ui/Slider.js.map +1 -1
  297. package/dist/core/components/ui/Switch.d.ts +1 -1
  298. package/dist/core/components/ui/Switch.d.ts.map +1 -1
  299. package/dist/core/components/ui/Switch.js +1 -1
  300. package/dist/core/components/ui/Switch.js.map +1 -1
  301. package/dist/core/components/ui/Tabs.d.ts +1 -1
  302. package/dist/core/components/ui/Tabs.d.ts.map +1 -1
  303. package/dist/core/components/ui/Tabs.js +1 -1
  304. package/dist/core/components/ui/Tabs.js.map +1 -1
  305. package/dist/core/components/ui/Toggle.d.ts +1 -1
  306. package/dist/core/components/ui/Toggle.d.ts.map +1 -1
  307. package/dist/core/components/ui/Toggle.js +1 -1
  308. package/dist/core/components/ui/Toggle.js.map +1 -1
  309. package/dist/core/components/ui/ToggleGroup.d.ts +1 -1
  310. package/dist/core/components/ui/ToggleGroup.d.ts.map +1 -1
  311. package/dist/core/components/ui/ToggleGroup.js +1 -1
  312. package/dist/core/components/ui/ToggleGroup.js.map +1 -1
  313. package/dist/core/components/ui/ToolbarButton.d.ts +1 -1
  314. package/dist/core/components/ui/ToolbarButton.d.ts.map +1 -1
  315. package/dist/core/components/ui/ToolbarButton.js +1 -2
  316. package/dist/core/components/ui/ToolbarButton.js.map +1 -1
  317. package/dist/core/components/ui/Tooltip.d.ts +1 -1
  318. package/dist/core/components/ui/Tooltip.d.ts.map +1 -1
  319. package/dist/core/components/ui/Tooltip.js +1 -1
  320. package/dist/core/components/ui/Tooltip.js.map +1 -1
  321. package/dist/core/components/ui/UserAvatar.d.ts.map +1 -1
  322. package/dist/core/components/ui/UserAvatar.js +1 -1
  323. package/dist/core/components/ui/UserAvatar.js.map +1 -1
  324. package/dist/core/components/ui/downloadUtils.d.ts.map +1 -1
  325. package/dist/core/components/ui/downloadUtils.js.map +1 -1
  326. package/dist/core/components/ui/stats.d.ts.map +1 -1
  327. package/dist/core/components/ui/stats.js.map +1 -1
  328. package/dist/core/components/ui/uploadFile.js +1 -1
  329. package/dist/core/components/ui/uploadFile.js.map +1 -1
  330. package/dist/core/components/viewers/Data/DataMenu.d.ts +1 -1
  331. package/dist/core/components/viewers/Data/DataMenu.d.ts.map +1 -1
  332. package/dist/core/components/viewers/Data/DataMenu.js +11 -11
  333. package/dist/core/components/viewers/Data/DataMenu.js.map +1 -1
  334. package/dist/core/components/viewers/Data/FilterButtons.d.ts +1 -1
  335. package/dist/core/components/viewers/Data/FilterButtons.d.ts.map +1 -1
  336. package/dist/core/components/viewers/Data/FilterButtons.js +7 -7
  337. package/dist/core/components/viewers/Data/FilterButtons.js.map +1 -1
  338. package/dist/core/components/viewers/Data/HeaderButtons.d.ts +1 -1
  339. package/dist/core/components/viewers/Data/HeaderButtons.d.ts.map +1 -1
  340. package/dist/core/components/viewers/Data/HeaderButtons.js +9 -9
  341. package/dist/core/components/viewers/Data/HeaderButtons.js.map +1 -1
  342. package/dist/core/components/viewers/Data/MoreOptions.d.ts +1 -1
  343. package/dist/core/components/viewers/Data/MoreOptions.d.ts.map +1 -1
  344. package/dist/core/components/viewers/Data/MoreOptions.js +16 -16
  345. package/dist/core/components/viewers/Data/MoreOptions.js.map +1 -1
  346. package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts +1 -1
  347. package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts.map +1 -1
  348. package/dist/core/components/viewers/Data/advancedFilter/Filters.js +2 -2
  349. package/dist/core/components/viewers/Data/advancedFilter/Filters.js.map +1 -1
  350. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts +1 -1
  351. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts.map +1 -1
  352. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.js +6 -8
  353. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.js.map +1 -1
  354. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.d.ts.map +1 -1
  355. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.js +3 -3
  356. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.js.map +1 -1
  357. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.d.ts.map +1 -1
  358. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.js +10 -10
  359. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.js.map +1 -1
  360. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.d.ts.map +1 -1
  361. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.js +11 -11
  362. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.js.map +1 -1
  363. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.d.ts.map +1 -1
  364. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.js +10 -10
  365. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.js.map +1 -1
  366. package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.d.ts.map +1 -1
  367. package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.js.map +1 -1
  368. package/dist/core/components/viewers/Data/buildingDetails/buildingSchemaTemplate.d.ts.map +1 -1
  369. package/dist/core/components/viewers/Data/buildingDetails/buildingSchemaTemplate.js.map +1 -1
  370. package/dist/core/components/viewers/Data/details/AttachedFiles.d.ts +1 -1
  371. package/dist/core/components/viewers/Data/details/AttachedFiles.d.ts.map +1 -1
  372. package/dist/core/components/viewers/Data/details/AttachedFiles.js +3 -3
  373. package/dist/core/components/viewers/Data/details/AttachedFiles.js.map +1 -1
  374. package/dist/core/components/viewers/Data/details/DetailActions.d.ts +1 -1
  375. package/dist/core/components/viewers/Data/details/DetailActions.d.ts.map +1 -1
  376. package/dist/core/components/viewers/Data/details/DetailActions.js +2 -2
  377. package/dist/core/components/viewers/Data/details/DetailActions.js.map +1 -1
  378. package/dist/core/components/viewers/Data/details/DetailHeader.d.ts.map +1 -1
  379. package/dist/core/components/viewers/Data/details/DetailHeader.js.map +1 -1
  380. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.d.ts.map +1 -1
  381. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.js +4 -14
  382. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.js.map +1 -1
  383. package/dist/core/components/viewers/Data/details/FieldValue.d.ts.map +1 -1
  384. package/dist/core/components/viewers/Data/details/FieldValue.js +2 -2
  385. package/dist/core/components/viewers/Data/details/FieldValue.js.map +1 -1
  386. package/dist/core/components/viewers/Data/details/FileUpload.d.ts.map +1 -1
  387. package/dist/core/components/viewers/Data/details/FileUpload.js +2 -2
  388. package/dist/core/components/viewers/Data/details/FileUpload.js.map +1 -1
  389. package/dist/core/components/viewers/Data/details/FilterFiles.d.ts.map +1 -1
  390. package/dist/core/components/viewers/Data/details/FilterFiles.js +2 -2
  391. package/dist/core/components/viewers/Data/details/FilterFiles.js.map +1 -1
  392. package/dist/core/components/viewers/Data/details/TabSidebar.d.ts.map +1 -1
  393. package/dist/core/components/viewers/Data/details/TabSidebar.js +3 -3
  394. package/dist/core/components/viewers/Data/details/TabSidebar.js.map +1 -1
  395. package/dist/core/components/viewers/Data/files/DatatableFileAdder.d.ts.map +1 -1
  396. package/dist/core/components/viewers/Data/files/DatatableFileAdder.js +3 -4
  397. package/dist/core/components/viewers/Data/files/DatatableFileAdder.js.map +1 -1
  398. package/dist/core/components/viewers/Data/files/FileDetails.d.ts.map +1 -1
  399. package/dist/core/components/viewers/Data/files/FileDetails.js +8 -8
  400. package/dist/core/components/viewers/Data/files/FileDetails.js.map +1 -1
  401. package/dist/core/components/viewers/Data/files/FileMoreOptions.d.ts.map +1 -1
  402. package/dist/core/components/viewers/Data/files/FileMoreOptions.js +8 -8
  403. package/dist/core/components/viewers/Data/files/FileMoreOptions.js.map +1 -1
  404. package/dist/core/components/viewers/Data/files/FilePreview.d.ts +1 -1
  405. package/dist/core/components/viewers/Data/files/FilePreview.d.ts.map +1 -1
  406. package/dist/core/components/viewers/Data/files/FilePreview.js +1 -1
  407. package/dist/core/components/viewers/Data/files/FilePreview.js.map +1 -1
  408. package/dist/core/components/viewers/Data/files/utils/fuzzySearch.d.ts.map +1 -1
  409. package/dist/core/components/viewers/Data/files/utils/fuzzySearch.js +0 -1
  410. package/dist/core/components/viewers/Data/files/utils/fuzzySearch.js.map +1 -1
  411. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.d.ts.map +1 -1
  412. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.js +3 -3
  413. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.js.map +1 -1
  414. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.d.ts.map +1 -1
  415. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js +2 -2
  416. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js.map +1 -1
  417. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.d.ts.map +1 -1
  418. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.js +6 -6
  419. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.js.map +1 -1
  420. package/dist/core/components/viewers/Data/siteDetails/AddSite.d.ts.map +1 -1
  421. package/dist/core/components/viewers/Data/siteDetails/AddSite.js +5 -5
  422. package/dist/core/components/viewers/Data/siteDetails/AddSite.js.map +1 -1
  423. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.d.ts.map +1 -1
  424. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js +10 -10
  425. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js.map +1 -1
  426. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.d.ts.map +1 -1
  427. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.js +9 -9
  428. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.js.map +1 -1
  429. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.d.ts.map +1 -1
  430. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.js +11 -11
  431. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.js.map +1 -1
  432. package/dist/core/components/viewers/Data/userDetails/AddUser.d.ts.map +1 -1
  433. package/dist/core/components/viewers/Data/userDetails/AddUser.js +3 -3
  434. package/dist/core/components/viewers/Data/userDetails/AddUser.js.map +1 -1
  435. package/dist/core/components/viewers/Data/userDetails/UserDetails.d.ts.map +1 -1
  436. package/dist/core/components/viewers/Data/userDetails/UserDetails.js +12 -12
  437. package/dist/core/components/viewers/Data/userDetails/UserDetails.js.map +1 -1
  438. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.d.ts.map +1 -1
  439. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.js +12 -13
  440. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.js.map +1 -1
  441. package/dist/core/components/viewers/Data/utils/Columns.d.ts +2 -2
  442. package/dist/core/components/viewers/Data/utils/Columns.d.ts.map +1 -1
  443. package/dist/core/components/viewers/Data/utils/Columns.js +7 -7
  444. package/dist/core/components/viewers/Data/utils/Columns.js.map +1 -1
  445. package/dist/core/components/viewers/Data/utils/Headers.d.ts.map +1 -1
  446. package/dist/core/components/viewers/Data/utils/Headers.js.map +1 -1
  447. package/dist/core/components/viewers/Data/utils/csvUtils.js.map +1 -1
  448. package/dist/core/components/viewers/Data/utils/filterHelper.d.ts.map +1 -1
  449. package/dist/core/components/viewers/Data/utils/filterHelper.js +0 -2
  450. package/dist/core/components/viewers/Data/utils/filterHelper.js.map +1 -1
  451. package/dist/core/components/viewers/Data/utils/positionParser.js.map +1 -1
  452. package/dist/core/components/viewers/Data/utils/useViewerData.d.ts +2 -2
  453. package/dist/core/components/viewers/Data/utils/useViewerData.d.ts.map +1 -1
  454. package/dist/core/components/viewers/Data/utils/useViewerData.js.map +1 -1
  455. package/dist/core/components/viewers/Viewer.d.ts +1 -1
  456. package/dist/core/components/viewers/Viewer.d.ts.map +1 -1
  457. package/dist/core/components/viewers/Viewer.js +6 -6
  458. package/dist/core/components/viewers/Viewer.js.map +1 -1
  459. package/dist/core/components/viewers/bim/BimToolbar.d.ts.map +1 -1
  460. package/dist/core/components/viewers/bim/BimToolbar.js +1 -1
  461. package/dist/core/components/viewers/bim/BimToolbar.js.map +1 -1
  462. package/dist/core/components/viewers/bim/BimViewer.d.ts.map +1 -1
  463. package/dist/core/components/viewers/bim/BimViewer.js +7 -7
  464. package/dist/core/components/viewers/bim/BimViewer.js.map +1 -1
  465. package/dist/core/components/viewers/bim/src/BCFTopicsManager.d.ts.map +1 -1
  466. package/dist/core/components/viewers/bim/src/BCFTopicsManager.js.map +1 -1
  467. package/dist/core/components/viewers/bim/src/BIMManager/index.d.ts +2 -2
  468. package/dist/core/components/viewers/bim/src/BIMManager/index.d.ts.map +1 -1
  469. package/dist/core/components/viewers/bim/src/BIMManager/index.js.map +1 -1
  470. package/dist/core/components/viewers/bim/src/BimLoadingState/index.d.ts.map +1 -1
  471. package/dist/core/components/viewers/bim/src/BimLoadingState/index.js +9 -9
  472. package/dist/core/components/viewers/bim/src/BimLoadingState/index.js.map +1 -1
  473. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.d.ts.map +1 -1
  474. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.js +1 -1
  475. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.js.map +1 -1
  476. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.d.ts +1 -1
  477. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.d.ts.map +1 -1
  478. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.js +1 -1
  479. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.js.map +1 -1
  480. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.d.ts +1 -1
  481. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.d.ts.map +1 -1
  482. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.js +5 -5
  483. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.js.map +1 -1
  484. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.d.ts +1 -1
  485. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.d.ts.map +1 -1
  486. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.js +9 -9
  487. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.js.map +1 -1
  488. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.d.ts.map +1 -1
  489. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.js +6 -9
  490. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.js.map +1 -1
  491. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.d.ts.map +1 -1
  492. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.js +4 -4
  493. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.js.map +1 -1
  494. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  495. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  496. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js +11 -17
  497. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  498. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
  499. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js +10 -18
  500. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
  501. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.d.ts.map +1 -1
  502. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.js +1 -1
  503. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.js.map +1 -1
  504. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.d.ts.map +1 -1
  505. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.js +2 -2
  506. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.js.map +1 -1
  507. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.d.ts.map +1 -1
  508. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js +1 -1
  509. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js.map +1 -1
  510. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.d.ts.map +1 -1
  511. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.js +6 -6
  512. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.js.map +1 -1
  513. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.d.ts +1 -1
  514. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.d.ts.map +1 -1
  515. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.js.map +1 -1
  516. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.d.ts.map +1 -1
  517. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.js +2 -2
  518. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.js.map +1 -1
  519. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.d.ts.map +1 -1
  520. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.js +5 -5
  521. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.js.map +1 -1
  522. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.d.ts.map +1 -1
  523. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.js +3 -3
  524. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.js.map +1 -1
  525. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.d.ts.map +1 -1
  526. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.js +3 -3
  527. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.js.map +1 -1
  528. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.d.ts.map +1 -1
  529. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.js +4 -4
  530. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.js.map +1 -1
  531. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.d.ts +1 -1
  532. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.d.ts.map +1 -1
  533. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.js +5 -4
  534. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.js.map +1 -1
  535. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.d.ts.map +1 -1
  536. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.js +5 -5
  537. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.js.map +1 -1
  538. package/dist/core/components/viewers/bim/src/CameraProjection.d.ts.map +1 -1
  539. package/dist/core/components/viewers/bim/src/CameraProjection.js.map +1 -1
  540. package/dist/core/components/viewers/bim/src/ClippingPlane.d.ts.map +1 -1
  541. package/dist/core/components/viewers/bim/src/ClippingPlane.js +1 -2
  542. package/dist/core/components/viewers/bim/src/ClippingPlane.js.map +1 -1
  543. package/dist/core/components/viewers/bim/src/Cursor.d.ts +1 -1
  544. package/dist/core/components/viewers/bim/src/Cursor.d.ts.map +1 -1
  545. package/dist/core/components/viewers/bim/src/Cursor.js.map +1 -1
  546. package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts +1 -1
  547. package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts.map +1 -1
  548. package/dist/core/components/viewers/bim/src/DXFLoader/index.js +1 -1
  549. package/dist/core/components/viewers/bim/src/DXFLoader/index.js.map +1 -1
  550. package/dist/core/components/viewers/bim/src/ElevationsTool/index.d.ts +1 -1
  551. package/dist/core/components/viewers/bim/src/ElevationsTool/index.d.ts.map +1 -1
  552. package/dist/core/components/viewers/bim/src/ElevationsTool/index.js +1 -1
  553. package/dist/core/components/viewers/bim/src/ElevationsTool/index.js.map +1 -1
  554. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.d.ts +1 -1
  555. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.d.ts.map +1 -1
  556. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.js.map +1 -1
  557. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.d.ts +4 -4
  558. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.d.ts.map +1 -1
  559. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.js.map +1 -1
  560. package/dist/core/components/viewers/bim/src/FitCamera.d.ts.map +1 -1
  561. package/dist/core/components/viewers/bim/src/FitCamera.js +1 -1
  562. package/dist/core/components/viewers/bim/src/FitCamera.js.map +1 -1
  563. package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts +3 -3
  564. package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts.map +1 -1
  565. package/dist/core/components/viewers/bim/src/FloorplanTool/index.js +1 -1
  566. package/dist/core/components/viewers/bim/src/FloorplanTool/index.js.map +1 -1
  567. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.d.ts +3 -3
  568. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.d.ts.map +1 -1
  569. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.js.map +1 -1
  570. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.d.ts +1 -1
  571. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.d.ts.map +1 -1
  572. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.js.map +1 -1
  573. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.d.ts +2 -2
  574. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.d.ts.map +1 -1
  575. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.js.map +1 -1
  576. package/dist/core/components/viewers/bim/src/GhostMode.d.ts +1 -1
  577. package/dist/core/components/viewers/bim/src/GhostMode.d.ts.map +1 -1
  578. package/dist/core/components/viewers/bim/src/GhostMode.js.map +1 -1
  579. package/dist/core/components/viewers/bim/src/Highlighter/index.d.ts.map +1 -1
  580. package/dist/core/components/viewers/bim/src/Highlighter/index.js +1 -1
  581. package/dist/core/components/viewers/bim/src/Highlighter/index.js.map +1 -1
  582. package/dist/core/components/viewers/bim/src/IDSManager/index.d.ts.map +1 -1
  583. package/dist/core/components/viewers/bim/src/IDSManager/index.js +3 -3
  584. package/dist/core/components/viewers/bim/src/IDSManager/index.js.map +1 -1
  585. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.d.ts.map +1 -1
  586. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.js +2 -2
  587. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.js.map +1 -1
  588. package/dist/core/components/viewers/bim/src/LoadIfcAsFragments.d.ts.map +1 -1
  589. package/dist/core/components/viewers/bim/src/LoadIfcAsFragments.js.map +1 -1
  590. package/dist/core/components/viewers/bim/src/LoadModels.d.ts +1 -1
  591. package/dist/core/components/viewers/bim/src/LoadModels.d.ts.map +1 -1
  592. package/dist/core/components/viewers/bim/src/LoadModels.js +1 -1
  593. package/dist/core/components/viewers/bim/src/LoadModels.js.map +1 -1
  594. package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts +1 -1
  595. package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts.map +1 -1
  596. package/dist/core/components/viewers/bim/src/ModelManager/index.js +4 -4
  597. package/dist/core/components/viewers/bim/src/ModelManager/index.js.map +1 -1
  598. package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts +1 -1
  599. package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts.map +1 -1
  600. package/dist/core/components/viewers/bim/src/SimpleBimViewer.js +8 -8
  601. package/dist/core/components/viewers/bim/src/SimpleBimViewer.js.map +1 -1
  602. package/dist/core/components/viewers/bim/src/SpatialStructure.js.map +1 -1
  603. package/dist/core/components/viewers/bim/src/ViewportGizmo.d.ts.map +1 -1
  604. package/dist/core/components/viewers/bim/src/ViewportGizmo.js +2 -2
  605. package/dist/core/components/viewers/bim/src/ViewportGizmo.js.map +1 -1
  606. package/dist/core/components/viewers/bim/src/lib/CameraController.d.ts +1 -1
  607. package/dist/core/components/viewers/bim/src/lib/CameraController.d.ts.map +1 -1
  608. package/dist/core/components/viewers/bim/src/lib/CameraController.js.map +1 -1
  609. package/dist/core/components/viewers/bim/src/lib/ChromeController.d.ts +1 -1
  610. package/dist/core/components/viewers/bim/src/lib/ChromeController.d.ts.map +1 -1
  611. package/dist/core/components/viewers/bim/src/lib/ChromeController.js.map +1 -1
  612. package/dist/core/components/viewers/bim/src/lib/ClipController.d.ts +1 -1
  613. package/dist/core/components/viewers/bim/src/lib/ClipController.d.ts.map +1 -1
  614. package/dist/core/components/viewers/bim/src/lib/ClipController.js.map +1 -1
  615. package/dist/core/components/viewers/bim/src/lib/GridController.d.ts.map +1 -1
  616. package/dist/core/components/viewers/bim/src/lib/GridController.js.map +1 -1
  617. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.d.ts.map +1 -1
  618. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js +1 -1
  619. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js.map +1 -1
  620. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts +2 -2
  621. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts.map +1 -1
  622. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js +1 -1
  623. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js.map +1 -1
  624. package/dist/core/components/viewers/bim/src/lib/drawingProjection.d.ts +1 -1
  625. package/dist/core/components/viewers/bim/src/lib/drawingProjection.d.ts.map +1 -1
  626. package/dist/core/components/viewers/bim/src/lib/drawingProjection.js.map +1 -1
  627. package/dist/core/components/viewers/bim/src/lib/useBuildingName.d.ts.map +1 -1
  628. package/dist/core/components/viewers/bim/src/lib/useBuildingName.js.map +1 -1
  629. package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js +1 -1
  630. package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js.map +1 -1
  631. package/dist/core/components/viewers/bim/src/propertiesMenu/index.d.ts.map +1 -1
  632. package/dist/core/components/viewers/bim/src/propertiesMenu/index.js +4 -4
  633. package/dist/core/components/viewers/bim/src/propertiesMenu/index.js.map +1 -1
  634. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.d.ts.map +1 -1
  635. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.js +1 -1
  636. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.js.map +1 -1
  637. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.d.ts.map +1 -1
  638. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.js +2 -2
  639. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.js.map +1 -1
  640. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertyGroup.d.ts.map +1 -1
  641. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertyGroup.js.map +1 -1
  642. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.d.ts +1 -1
  643. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.d.ts.map +1 -1
  644. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.js +2 -2
  645. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.js.map +1 -1
  646. package/dist/core/components/viewers/bim/src/propertiesMenu/src/utils.d.ts.map +1 -1
  647. package/dist/core/components/viewers/bim/src/propertiesMenu/src/utils.js.map +1 -1
  648. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.d.ts.map +1 -1
  649. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js +9 -9
  650. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js.map +1 -1
  651. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts +1 -1
  652. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts.map +1 -1
  653. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js +2 -2
  654. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js.map +1 -1
  655. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.d.ts.map +1 -1
  656. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.js +2 -2
  657. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.js.map +1 -1
  658. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts +1 -1
  659. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts.map +1 -1
  660. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.js.map +1 -1
  661. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.d.ts.map +1 -1
  662. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.js +3 -3
  663. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.js.map +1 -1
  664. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.d.ts +16 -10
  665. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.d.ts.map +1 -1
  666. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.js +26 -6
  667. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.js.map +1 -1
  668. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimCommentCluster.d.ts +23 -0
  669. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimCommentCluster.d.ts.map +1 -0
  670. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimCommentCluster.js +108 -0
  671. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimCommentCluster.js.map +1 -0
  672. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.d.ts +2 -2
  673. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.d.ts.map +1 -1
  674. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.js.map +1 -1
  675. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts +5 -5
  676. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts.map +1 -1
  677. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.js.map +1 -1
  678. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.d.ts.map +1 -1
  679. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js +2 -2
  680. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js.map +1 -1
  681. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.d.ts.map +1 -1
  682. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js +1 -1
  683. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js.map +1 -1
  684. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/clusterMarkersByScreenSpace.d.ts +44 -0
  685. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/clusterMarkersByScreenSpace.d.ts.map +1 -0
  686. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/clusterMarkersByScreenSpace.js +77 -0
  687. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/clusterMarkersByScreenSpace.js.map +1 -0
  688. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/commentCameraUtils.d.ts +24 -0
  689. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/commentCameraUtils.d.ts.map +1 -0
  690. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/commentCameraUtils.js +27 -0
  691. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/commentCameraUtils.js.map +1 -0
  692. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.d.ts +1 -1
  693. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.d.ts.map +1 -1
  694. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.js +3 -3
  695. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.js.map +1 -1
  696. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.d.ts.map +1 -1
  697. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.js +244 -63
  698. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.js.map +1 -1
  699. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts +2 -2
  700. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts.map +1 -1
  701. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js +4 -4
  702. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js.map +1 -1
  703. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.d.ts.map +1 -1
  704. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.js +6 -6
  705. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.js.map +1 -1
  706. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.d.ts.map +1 -1
  707. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.js +2 -2
  708. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.js.map +1 -1
  709. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.d.ts +1 -1
  710. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.d.ts.map +1 -1
  711. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.js +6 -10
  712. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.js.map +1 -1
  713. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.d.ts +1 -1
  714. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.d.ts.map +1 -1
  715. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.js +3 -4
  716. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.js.map +1 -1
  717. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.d.ts +1 -1
  718. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.d.ts.map +1 -1
  719. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.js +2 -2
  720. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.js.map +1 -1
  721. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.d.ts +1 -1
  722. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.d.ts.map +1 -1
  723. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.js +4 -4
  724. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.js.map +1 -1
  725. package/dist/core/components/viewers/bim/src/tools/bimToolbar.d.ts +1 -1
  726. package/dist/core/components/viewers/bim/src/tools/bimToolbar.d.ts.map +1 -1
  727. package/dist/core/components/viewers/bim/src/tools/bimToolbar.js +4 -4
  728. package/dist/core/components/viewers/bim/src/tools/bimToolbar.js.map +1 -1
  729. package/dist/core/components/viewers/bim/src/tools/measureBimTool.d.ts +1 -1
  730. package/dist/core/components/viewers/bim/src/tools/measureBimTool.d.ts.map +1 -1
  731. package/dist/core/components/viewers/bim/src/tools/measureBimTool.js +6 -7
  732. package/dist/core/components/viewers/bim/src/tools/measureBimTool.js.map +1 -1
  733. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.d.ts +1 -1
  734. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.d.ts.map +1 -1
  735. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.js +5 -5
  736. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.js.map +1 -1
  737. package/dist/core/components/viewers/bim/src/tools/shareBimTool.d.ts +1 -1
  738. package/dist/core/components/viewers/bim/src/tools/shareBimTool.d.ts.map +1 -1
  739. package/dist/core/components/viewers/bim/src/tools/shareBimTool.js.map +1 -1
  740. package/dist/core/components/viewers/bim/utils/GizmoController.d.ts +1 -1
  741. package/dist/core/components/viewers/bim/utils/GizmoController.d.ts.map +1 -1
  742. package/dist/core/components/viewers/bim/utils/GizmoController.js.map +1 -1
  743. package/dist/core/components/viewers/bim/utils/setCameraLookAt.d.ts +1 -1
  744. package/dist/core/components/viewers/bim/utils/setCameraLookAt.d.ts.map +1 -1
  745. package/dist/core/components/viewers/bim/utils/setCameraLookAt.js.map +1 -1
  746. package/dist/core/components/viewers/map/MapViewer.d.ts +1 -1
  747. package/dist/core/components/viewers/map/MapViewer.d.ts.map +1 -1
  748. package/dist/core/components/viewers/map/MapViewer.js +7 -7
  749. package/dist/core/components/viewers/map/MapViewer.js.map +1 -1
  750. package/dist/core/components/viewers/map/datasets/AddPortalDialog.d.ts.map +1 -1
  751. package/dist/core/components/viewers/map/datasets/AddPortalDialog.js +4 -4
  752. package/dist/core/components/viewers/map/datasets/AddPortalDialog.js.map +1 -1
  753. package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts +1 -1
  754. package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts.map +1 -1
  755. package/dist/core/components/viewers/map/datasets/DatasetDetails.js +4 -4
  756. package/dist/core/components/viewers/map/datasets/DatasetDetails.js.map +1 -1
  757. package/dist/core/components/viewers/map/datasets/DatasetManager/index.d.ts.map +1 -1
  758. package/dist/core/components/viewers/map/datasets/DatasetManager/index.js +13 -13
  759. package/dist/core/components/viewers/map/datasets/DatasetManager/index.js.map +1 -1
  760. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.d.ts.map +1 -1
  761. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.js +2 -2
  762. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.js.map +1 -1
  763. package/dist/core/components/viewers/map/datasets/DatasetSkeleton.d.ts.map +1 -1
  764. package/dist/core/components/viewers/map/datasets/DatasetSkeleton.js.map +1 -1
  765. package/dist/core/components/viewers/map/datasets/Filters.d.ts.map +1 -1
  766. package/dist/core/components/viewers/map/datasets/Filters.js +2 -2
  767. package/dist/core/components/viewers/map/datasets/Filters.js.map +1 -1
  768. package/dist/core/components/viewers/map/datasets/NestedFilter.d.ts.map +1 -1
  769. package/dist/core/components/viewers/map/datasets/NestedFilter.js +1 -1
  770. package/dist/core/components/viewers/map/datasets/NestedFilter.js.map +1 -1
  771. package/dist/core/components/viewers/map/datasets/RowActions.d.ts.map +1 -1
  772. package/dist/core/components/viewers/map/datasets/RowActions.js +3 -3
  773. package/dist/core/components/viewers/map/datasets/RowActions.js.map +1 -1
  774. package/dist/core/components/viewers/map/datasets/data.d.ts +1 -1
  775. package/dist/core/components/viewers/map/datasets/data.d.ts.map +1 -1
  776. package/dist/core/components/viewers/map/datasets/data.js +2 -2
  777. package/dist/core/components/viewers/map/datasets/data.js.map +1 -1
  778. package/dist/core/components/viewers/map/datasets/index.d.ts +1 -1
  779. package/dist/core/components/viewers/map/datasets/index.d.ts.map +1 -1
  780. package/dist/core/components/viewers/map/datasets/index.js +11 -11
  781. package/dist/core/components/viewers/map/datasets/index.js.map +1 -1
  782. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.d.ts +1 -1
  783. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.d.ts.map +1 -1
  784. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.js +13 -16
  785. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.js.map +1 -1
  786. package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.d.ts.map +1 -1
  787. package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.js.map +1 -1
  788. package/dist/core/components/viewers/map/datasets/src/cache.js.map +1 -1
  789. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.d.ts +1 -1
  790. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.d.ts.map +1 -1
  791. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js +3 -6
  792. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js.map +1 -1
  793. package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts +1 -1
  794. package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts.map +1 -1
  795. package/dist/core/components/viewers/map/datasets/src/localDatasets.js +3 -6
  796. package/dist/core/components/viewers/map/datasets/src/localDatasets.js.map +1 -1
  797. package/dist/core/components/viewers/map/datasets/src/minioDatasets.d.ts.map +1 -1
  798. package/dist/core/components/viewers/map/datasets/src/minioDatasets.js.map +1 -1
  799. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.d.ts +1 -1
  800. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.d.ts.map +1 -1
  801. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js +1 -12
  802. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js.map +1 -1
  803. package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts +1 -1
  804. package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts.map +1 -1
  805. package/dist/core/components/viewers/map/datasets/src/publishedTiles.js.map +1 -1
  806. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.d.ts.map +1 -1
  807. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.js +1 -1
  808. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.js.map +1 -1
  809. package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts +1 -12
  810. package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts.map +1 -1
  811. package/dist/core/components/viewers/map/datasets/src/urlSources.js +1 -1
  812. package/dist/core/components/viewers/map/datasets/src/urlSources.js.map +1 -1
  813. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.d.ts.map +1 -1
  814. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.js +1 -1
  815. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.js.map +1 -1
  816. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.d.ts +1 -1
  817. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.d.ts.map +1 -1
  818. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.js.map +1 -1
  819. package/dist/core/components/viewers/map/datasets/utils.d.ts +1 -1
  820. package/dist/core/components/viewers/map/datasets/utils.d.ts.map +1 -1
  821. package/dist/core/components/viewers/map/datasets/utils.js.map +1 -1
  822. package/dist/core/components/viewers/map/legends/MapLegendHost.d.ts.map +1 -1
  823. package/dist/core/components/viewers/map/legends/MapLegendHost.js +3 -3
  824. package/dist/core/components/viewers/map/legends/MapLegendHost.js.map +1 -1
  825. package/dist/core/components/viewers/map/src/Geocoder.d.ts.map +1 -1
  826. package/dist/core/components/viewers/map/src/Geocoder.js +8 -8
  827. package/dist/core/components/viewers/map/src/Geocoder.js.map +1 -1
  828. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.d.ts +1 -1
  829. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.d.ts.map +1 -1
  830. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.js.map +1 -1
  831. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.d.ts +1 -1
  832. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.d.ts.map +1 -1
  833. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.js +3 -3
  834. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.js.map +1 -1
  835. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.d.ts +1 -1
  836. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.d.ts.map +1 -1
  837. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.js +11 -11
  838. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.js.map +1 -1
  839. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.d.ts.map +1 -1
  840. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js +23 -56
  841. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js.map +1 -1
  842. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.d.ts.map +1 -1
  843. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.js +4 -5
  844. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.js.map +1 -1
  845. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.d.ts.map +1 -1
  846. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.js +2 -2
  847. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.js.map +1 -1
  848. package/dist/core/components/viewers/map/src/MapLayers/index.d.ts.map +1 -1
  849. package/dist/core/components/viewers/map/src/MapLayers/index.js +5 -5
  850. package/dist/core/components/viewers/map/src/MapLayers/index.js.map +1 -1
  851. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.d.ts.map +1 -1
  852. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js +5 -5
  853. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js.map +1 -1
  854. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.d.ts.map +1 -1
  855. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.js +4 -4
  856. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.js.map +1 -1
  857. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.d.ts +1 -1
  858. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.d.ts.map +1 -1
  859. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.js.map +1 -1
  860. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.d.ts.map +1 -1
  861. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.js +182 -61
  862. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.js.map +1 -1
  863. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.d.ts.map +1 -1
  864. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js +1 -1
  865. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js.map +1 -1
  866. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.d.ts.map +1 -1
  867. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.js +3 -3
  868. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.js.map +1 -1
  869. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts +1 -1
  870. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts.map +1 -1
  871. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js +1 -1
  872. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js.map +1 -1
  873. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileIcon.d.ts.map +1 -1
  874. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileIcon.js.map +1 -1
  875. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.d.ts +1 -1
  876. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.d.ts.map +1 -1
  877. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.js +3 -3
  878. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.js.map +1 -1
  879. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.d.ts.map +1 -1
  880. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.js +4 -3
  881. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.js.map +1 -1
  882. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileMarker.d.ts.map +1 -1
  883. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileMarker.js.map +1 -1
  884. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.d.ts.map +1 -1
  885. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.js +6 -6
  886. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.js.map +1 -1
  887. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts +1 -1
  888. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts.map +1 -1
  889. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.js.map +1 -1
  890. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.d.ts +1 -1
  891. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.d.ts.map +1 -1
  892. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.js.map +1 -1
  893. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.d.ts.map +1 -1
  894. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.js.map +1 -1
  895. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.d.ts.map +1 -1
  896. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js +3 -3
  897. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js.map +1 -1
  898. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.d.ts.map +1 -1
  899. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.js +3 -3
  900. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.js.map +1 -1
  901. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.d.ts.map +1 -1
  902. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.js +11 -14
  903. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.js.map +1 -1
  904. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.d.ts.map +1 -1
  905. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.js +2 -2
  906. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.js.map +1 -1
  907. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.d.ts.map +1 -1
  908. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.js +4 -4
  909. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.js.map +1 -1
  910. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.d.ts +1 -1
  911. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.d.ts.map +1 -1
  912. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.js.map +1 -1
  913. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/siteGeometry.d.ts.map +1 -1
  914. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/siteGeometry.js.map +1 -1
  915. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/useShowSitesOnMap.d.ts.map +1 -1
  916. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/useShowSitesOnMap.js.map +1 -1
  917. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.d.ts +1 -1
  918. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.d.ts.map +1 -1
  919. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.js +5 -4
  920. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.js.map +1 -1
  921. package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts +1 -1
  922. package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts.map +1 -1
  923. package/dist/core/components/viewers/map/src/MapSidebar/index.js +4 -4
  924. package/dist/core/components/viewers/map/src/MapSidebar/index.js.map +1 -1
  925. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.d.ts +1 -1
  926. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.d.ts.map +1 -1
  927. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.js.map +1 -1
  928. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.d.ts.map +1 -1
  929. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.js +2 -2
  930. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.js.map +1 -1
  931. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  932. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  933. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js +5 -6
  934. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  935. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
  936. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js +6 -10
  937. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
  938. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.d.ts +1 -1
  939. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.d.ts.map +1 -1
  940. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.js +4 -4
  941. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.js.map +1 -1
  942. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.d.ts.map +1 -1
  943. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.js +4 -4
  944. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.js.map +1 -1
  945. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.d.ts.map +1 -1
  946. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.js +2 -2
  947. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.js.map +1 -1
  948. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.d.ts +1 -1
  949. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.d.ts.map +1 -1
  950. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.js.map +1 -1
  951. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/index.d.ts.map +1 -1
  952. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/index.js.map +1 -1
  953. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.d.ts.map +1 -1
  954. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.js +3 -3
  955. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.js.map +1 -1
  956. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.d.ts.map +1 -1
  957. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.js +3 -3
  958. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.js.map +1 -1
  959. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.d.ts.map +1 -1
  960. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js +3 -3
  961. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js.map +1 -1
  962. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.d.ts.map +1 -1
  963. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js +3 -3
  964. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js.map +1 -1
  965. package/dist/core/components/viewers/map/src/SimpleMap.d.ts.map +1 -1
  966. package/dist/core/components/viewers/map/src/SimpleMap.js +1 -1
  967. package/dist/core/components/viewers/map/src/SimpleMap.js.map +1 -1
  968. package/dist/core/components/viewers/map/src/compare/AddItem.d.ts +1 -1
  969. package/dist/core/components/viewers/map/src/compare/AddItem.d.ts.map +1 -1
  970. package/dist/core/components/viewers/map/src/compare/AddItem.js +6 -6
  971. package/dist/core/components/viewers/map/src/compare/AddItem.js.map +1 -1
  972. package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts +2 -2
  973. package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts.map +1 -1
  974. package/dist/core/components/viewers/map/src/compare/CompareDialog.js +5 -5
  975. package/dist/core/components/viewers/map/src/compare/CompareDialog.js.map +1 -1
  976. package/dist/core/components/viewers/map/src/compare/index.d.ts +1 -1
  977. package/dist/core/components/viewers/map/src/compare/index.d.ts.map +1 -1
  978. package/dist/core/components/viewers/map/src/compare/index.js +6 -6
  979. package/dist/core/components/viewers/map/src/compare/index.js.map +1 -1
  980. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.d.ts.map +1 -1
  981. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.js +3 -3
  982. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.js.map +1 -1
  983. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.d.ts.map +1 -1
  984. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.js +5 -5
  985. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.js.map +1 -1
  986. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/utils/uploadToPresignedURLS.d.ts.map +1 -1
  987. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/utils/uploadToPresignedURLS.js +1 -3
  988. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/utils/uploadToPresignedURLS.js.map +1 -1
  989. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.d.ts.map +1 -1
  990. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.js +3 -3
  991. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.js.map +1 -1
  992. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.d.ts.map +1 -1
  993. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.js +7 -7
  994. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.js.map +1 -1
  995. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.d.ts.map +1 -1
  996. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.js +1 -1
  997. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.js.map +1 -1
  998. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.d.ts +2 -2
  999. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.d.ts.map +1 -1
  1000. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.js +8 -8
  1001. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.js.map +1 -1
  1002. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts +2 -2
  1003. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts.map +1 -1
  1004. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.js +1 -1
  1005. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.js.map +1 -1
  1006. package/dist/core/components/viewers/map/src/tools/mapTools.d.ts +2 -2
  1007. package/dist/core/components/viewers/map/src/tools/mapTools.d.ts.map +1 -1
  1008. package/dist/core/components/viewers/map/src/tools/mapTools.js +4 -4
  1009. package/dist/core/components/viewers/map/src/tools/mapTools.js.map +1 -1
  1010. package/dist/core/components/viewers/map/src/tools/measureMapTool.d.ts +1 -1
  1011. package/dist/core/components/viewers/map/src/tools/measureMapTool.d.ts.map +1 -1
  1012. package/dist/core/components/viewers/map/src/tools/measureMapTool.js +3 -3
  1013. package/dist/core/components/viewers/map/src/tools/measureMapTool.js.map +1 -1
  1014. package/dist/core/components/viewers/map/src/tools/shareMapTool.d.ts +1 -1
  1015. package/dist/core/components/viewers/map/src/tools/shareMapTool.d.ts.map +1 -1
  1016. package/dist/core/components/viewers/map/src/tools/shareMapTool.js.map +1 -1
  1017. package/dist/core/components/viewers/map/utils/ClusterManager.d.ts +1 -1
  1018. package/dist/core/components/viewers/map/utils/ClusterManager.d.ts.map +1 -1
  1019. package/dist/core/components/viewers/map/utils/ClusterManager.js.map +1 -1
  1020. package/dist/core/components/viewers/map/utils/MapEventManager/MapClickManager.d.ts.map +1 -1
  1021. package/dist/core/components/viewers/map/utils/MapEventManager/MapClickManager.js +0 -1
  1022. package/dist/core/components/viewers/map/utils/MapEventManager/MapClickManager.js.map +1 -1
  1023. package/dist/core/components/viewers/map/utils/MarkerManager.d.ts +1 -1
  1024. package/dist/core/components/viewers/map/utils/MarkerManager.d.ts.map +1 -1
  1025. package/dist/core/components/viewers/map/utils/MarkerManager.js.map +1 -1
  1026. package/dist/core/components/viewers/map/utils/extractCoordinates.js.map +1 -1
  1027. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.d.ts +1 -1
  1028. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.d.ts.map +1 -1
  1029. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.js.map +1 -1
  1030. package/dist/core/components/viewers/map/utils/flyToEach.d.ts +1 -1
  1031. package/dist/core/components/viewers/map/utils/flyToEach.d.ts.map +1 -1
  1032. package/dist/core/components/viewers/map/utils/flyToEach.js +0 -1
  1033. package/dist/core/components/viewers/map/utils/flyToEach.js.map +1 -1
  1034. package/dist/core/components/viewers/map/utils/geocoder.d.ts +1 -1
  1035. package/dist/core/components/viewers/map/utils/geocoder.d.ts.map +1 -1
  1036. package/dist/core/components/viewers/map/utils/geocoder.js +1 -1
  1037. package/dist/core/components/viewers/map/utils/geocoder.js.map +1 -1
  1038. package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts +1 -1
  1039. package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts.map +1 -1
  1040. package/dist/core/components/viewers/map/utils/geocoding/adapters.js.map +1 -1
  1041. package/dist/core/components/viewers/map/utils/geocoding/index.d.ts +1 -1
  1042. package/dist/core/components/viewers/map/utils/geocoding/index.d.ts.map +1 -1
  1043. package/dist/core/components/viewers/map/utils/geocoding/index.js +1 -1
  1044. package/dist/core/components/viewers/map/utils/geocoding/index.js.map +1 -1
  1045. package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts +1 -1
  1046. package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts.map +1 -1
  1047. package/dist/core/components/viewers/map/utils/geocoding/osm.js +1 -1
  1048. package/dist/core/components/viewers/map/utils/geocoding/osm.js.map +1 -1
  1049. package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts +1 -1
  1050. package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts.map +1 -1
  1051. package/dist/core/components/viewers/map/utils/geocoding/pelias.js.map +1 -1
  1052. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.d.ts +1 -1
  1053. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.d.ts.map +1 -1
  1054. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.js.map +1 -1
  1055. package/dist/core/components/viewers/map/utils/getOsmIdbyCoordinates.d.ts.map +1 -1
  1056. package/dist/core/components/viewers/map/utils/getOsmIdbyCoordinates.js +0 -2
  1057. package/dist/core/components/viewers/map/utils/getOsmIdbyCoordinates.js.map +1 -1
  1058. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.d.ts.map +1 -1
  1059. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js +1 -1
  1060. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js.map +1 -1
  1061. package/dist/core/components/viewers/pointcloud/PointCloudViewer.d.ts.map +1 -1
  1062. package/dist/core/components/viewers/pointcloud/PointCloudViewer.js +5 -5
  1063. package/dist/core/components/viewers/pointcloud/PointCloudViewer.js.map +1 -1
  1064. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.d.ts.map +1 -1
  1065. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.js +7 -7
  1066. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.js.map +1 -1
  1067. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudManagementTable.d.ts.map +1 -1
  1068. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudManagementTable.js.map +1 -1
  1069. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.d.ts.map +1 -1
  1070. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.js +15 -15
  1071. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.js.map +1 -1
  1072. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.d.ts.map +1 -1
  1073. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.js +3 -3
  1074. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.js.map +1 -1
  1075. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.d.ts +1 -1
  1076. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.d.ts.map +1 -1
  1077. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.js +1 -1
  1078. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.js.map +1 -1
  1079. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.d.ts.map +1 -1
  1080. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.js +2 -2
  1081. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.js.map +1 -1
  1082. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.d.ts.map +1 -1
  1083. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js +3 -3
  1084. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js.map +1 -1
  1085. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  1086. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  1087. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js +4 -4
  1088. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  1089. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts +1 -1
  1090. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts.map +1 -1
  1091. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js +5 -5
  1092. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js.map +1 -1
  1093. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.d.ts.map +1 -1
  1094. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.js +1 -1
  1095. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.js.map +1 -1
  1096. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.d.ts.map +1 -1
  1097. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.js +3 -3
  1098. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.js.map +1 -1
  1099. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.d.ts.map +1 -1
  1100. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.js +4 -4
  1101. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.js.map +1 -1
  1102. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.d.ts.map +1 -1
  1103. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.js +10 -10
  1104. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.js.map +1 -1
  1105. package/dist/core/components/viewers/pointcloud/src/ViewportGizmo.js.map +1 -1
  1106. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.d.ts +1 -1
  1107. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.d.ts.map +1 -1
  1108. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.js +3 -3
  1109. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.js.map +1 -1
  1110. package/dist/core/components/viewers/pointcloud/src/tools/FitToScreen.d.ts.map +1 -1
  1111. package/dist/core/components/viewers/pointcloud/src/tools/FitToScreen.js.map +1 -1
  1112. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AngleMeasurement.d.ts.map +1 -1
  1113. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AngleMeasurement.js.map +1 -1
  1114. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AreaMeasurement.d.ts.map +1 -1
  1115. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AreaMeasurement.js.map +1 -1
  1116. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/LineMeasurement.d.ts.map +1 -1
  1117. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/LineMeasurement.js.map +1 -1
  1118. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.d.ts +1 -1
  1119. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.d.ts.map +1 -1
  1120. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.js +6 -6
  1121. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.js.map +1 -1
  1122. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.d.ts.map +1 -1
  1123. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.js +2 -2
  1124. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.js.map +1 -1
  1125. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.d.ts.map +1 -1
  1126. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js +2 -2
  1127. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js.map +1 -1
  1128. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.d.ts.map +1 -1
  1129. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.js +3 -3
  1130. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.js.map +1 -1
  1131. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.d.ts.map +1 -1
  1132. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.js +1 -1
  1133. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.js.map +1 -1
  1134. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.d.ts.map +1 -1
  1135. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.js +1 -1
  1136. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.js.map +1 -1
  1137. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.d.ts.map +1 -1
  1138. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.js +1 -1
  1139. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.js.map +1 -1
  1140. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.d.ts.map +1 -1
  1141. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.js +4 -4
  1142. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.js.map +1 -1
  1143. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.d.ts +1 -1
  1144. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.d.ts.map +1 -1
  1145. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.js +1 -1
  1146. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.js.map +1 -1
  1147. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.d.ts +1 -1
  1148. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.d.ts.map +1 -1
  1149. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.js +2 -2
  1150. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.js.map +1 -1
  1151. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.d.ts +1 -1
  1152. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.d.ts.map +1 -1
  1153. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.js.map +1 -1
  1154. package/dist/core/hooks/buildings/createBuildingHooks.d.ts +1 -1
  1155. package/dist/core/hooks/buildings/createBuildingHooks.d.ts.map +1 -1
  1156. package/dist/core/hooks/buildings/createBuildingHooks.js.map +1 -1
  1157. package/dist/core/hooks/comments/comments.d.ts +11 -0
  1158. package/dist/core/hooks/comments/comments.d.ts.map +1 -1
  1159. package/dist/core/hooks/comments/comments.js +3 -1
  1160. package/dist/core/hooks/comments/comments.js.map +1 -1
  1161. package/dist/core/hooks/comments/createCommentHooks.d.ts +12 -1
  1162. package/dist/core/hooks/comments/createCommentHooks.d.ts.map +1 -1
  1163. package/dist/core/hooks/comments/createCommentHooks.js +31 -2
  1164. package/dist/core/hooks/comments/createCommentHooks.js.map +1 -1
  1165. package/dist/core/hooks/files/createFileHooks.d.ts +1 -1
  1166. package/dist/core/hooks/files/createFileHooks.d.ts.map +1 -1
  1167. package/dist/core/hooks/files/createFileHooks.js.map +1 -1
  1168. package/dist/core/hooks/files/files.d.ts.map +1 -1
  1169. package/dist/core/hooks/files/files.js +1 -2
  1170. package/dist/core/hooks/files/files.js.map +1 -1
  1171. package/dist/core/hooks/infrastructures/createInfrastructureHooks.d.ts +1 -1
  1172. package/dist/core/hooks/infrastructures/createInfrastructureHooks.d.ts.map +1 -1
  1173. package/dist/core/hooks/infrastructures/createInfrastructureHooks.js.map +1 -1
  1174. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.d.ts +1 -1
  1175. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.d.ts.map +1 -1
  1176. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.js.map +1 -1
  1177. package/dist/core/hooks/organizations/createOrganizationHooks.d.ts +1 -1
  1178. package/dist/core/hooks/organizations/createOrganizationHooks.d.ts.map +1 -1
  1179. package/dist/core/hooks/organizations/createOrganizationHooks.js.map +1 -1
  1180. package/dist/core/hooks/provider.d.ts +5 -5
  1181. package/dist/core/hooks/provider.d.ts.map +1 -1
  1182. package/dist/core/hooks/provider.js +4 -4
  1183. package/dist/core/hooks/provider.js.map +1 -1
  1184. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.d.ts +1 -1
  1185. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.d.ts.map +1 -1
  1186. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.js.map +1 -1
  1187. package/dist/core/hooks/sensors/createSensorHooks.d.ts +1 -1
  1188. package/dist/core/hooks/sensors/createSensorHooks.d.ts.map +1 -1
  1189. package/dist/core/hooks/sensors/createSensorHooks.js +1 -1
  1190. package/dist/core/hooks/sensors/createSensorHooks.js.map +1 -1
  1191. package/dist/core/hooks/sites/createSiteHooks.d.ts +1 -1
  1192. package/dist/core/hooks/sites/createSiteHooks.d.ts.map +1 -1
  1193. package/dist/core/hooks/sites/createSiteHooks.js.map +1 -1
  1194. package/dist/core/hooks/sites/sites.d.ts.map +1 -1
  1195. package/dist/core/hooks/ui/useResizableSidebarWidth.d.ts +30 -0
  1196. package/dist/core/hooks/ui/useResizableSidebarWidth.d.ts.map +1 -0
  1197. package/dist/core/hooks/ui/useResizableSidebarWidth.js +75 -0
  1198. package/dist/core/hooks/ui/useResizableSidebarWidth.js.map +1 -0
  1199. package/dist/core/hooks/useCaptureScreenshot.d.ts.map +1 -1
  1200. package/dist/core/hooks/useCaptureScreenshot.js.map +1 -1
  1201. package/dist/core/hooks/useCurrentViewerPosition.d.ts.map +1 -1
  1202. package/dist/core/hooks/useCurrentViewerPosition.js +1 -1
  1203. package/dist/core/hooks/useCurrentViewerPosition.js.map +1 -1
  1204. package/dist/core/hooks/useGeocodingRuntimeConfig.d.ts +1 -1
  1205. package/dist/core/hooks/useGeocodingRuntimeConfig.d.ts.map +1 -1
  1206. package/dist/core/hooks/useGeocodingRuntimeConfig.js.map +1 -1
  1207. package/dist/core/hooks/useShareUrl.d.ts.map +1 -1
  1208. package/dist/core/hooks/useShareUrl.js +1 -1
  1209. package/dist/core/hooks/useShareUrl.js.map +1 -1
  1210. package/dist/core/hooks/users/createUserHooks.d.ts +1 -1
  1211. package/dist/core/hooks/users/createUserHooks.d.ts.map +1 -1
  1212. package/dist/core/hooks/users/createUserHooks.js.map +1 -1
  1213. package/dist/core/i18n/index.js +1 -1
  1214. package/dist/core/i18n/index.js.map +1 -1
  1215. package/dist/core/i18n/messages/en.json +1877 -1872
  1216. package/dist/core/i18n/messages/es.json +1875 -1870
  1217. package/dist/core/i18n/messages/fr.json +1875 -1870
  1218. package/dist/core/plugins/host/context.d.ts +1 -1
  1219. package/dist/core/plugins/host/context.d.ts.map +1 -1
  1220. package/dist/core/plugins/host/context.js.map +1 -1
  1221. package/dist/core/plugins/host/host.d.ts +1 -1
  1222. package/dist/core/plugins/host/host.d.ts.map +1 -1
  1223. package/dist/core/plugins/host/host.js.map +1 -1
  1224. package/dist/core/plugins/host/provider.d.ts.map +1 -1
  1225. package/dist/core/plugins/host/provider.js +2 -2
  1226. package/dist/core/plugins/host/provider.js.map +1 -1
  1227. package/dist/core/store/AppConfig/context.d.ts +1 -1
  1228. package/dist/core/store/AppConfig/context.d.ts.map +1 -1
  1229. package/dist/core/store/AppConfig/context.js.map +1 -1
  1230. package/dist/core/store/AppConfig/reducer.d.ts +2 -2
  1231. package/dist/core/store/AppConfig/reducer.d.ts.map +1 -1
  1232. package/dist/core/store/AppConfig/reducer.js.map +1 -1
  1233. package/dist/core/store/BIM/context.d.ts +1 -1
  1234. package/dist/core/store/BIM/context.d.ts.map +1 -1
  1235. package/dist/core/store/BIM/context.js.map +1 -1
  1236. package/dist/core/store/BIM/reducer.d.ts +3 -3
  1237. package/dist/core/store/BIM/reducer.d.ts.map +1 -1
  1238. package/dist/core/store/BIM/reducer.js.map +1 -1
  1239. package/dist/core/store/Buildings/context.d.ts +1 -1
  1240. package/dist/core/store/Buildings/context.d.ts.map +1 -1
  1241. package/dist/core/store/Buildings/context.js.map +1 -1
  1242. package/dist/core/store/Buildings/reducer.d.ts +2 -2
  1243. package/dist/core/store/Buildings/reducer.d.ts.map +1 -1
  1244. package/dist/core/store/Buildings/reducer.js.map +1 -1
  1245. package/dist/core/store/CombineProviders.d.ts.map +1 -1
  1246. package/dist/core/store/CombineProviders.js +7 -7
  1247. package/dist/core/store/CombineProviders.js.map +1 -1
  1248. package/dist/core/store/Content/context.d.ts +1 -1
  1249. package/dist/core/store/Content/context.d.ts.map +1 -1
  1250. package/dist/core/store/Content/context.js.map +1 -1
  1251. package/dist/core/store/Datasets/context.d.ts +1 -1
  1252. package/dist/core/store/Datasets/context.d.ts.map +1 -1
  1253. package/dist/core/store/Datasets/context.js.map +1 -1
  1254. package/dist/core/store/Datasets/reducer.d.ts +1 -1
  1255. package/dist/core/store/Datasets/reducer.d.ts.map +1 -1
  1256. package/dist/core/store/Datasets/reducer.js +0 -2
  1257. package/dist/core/store/Datasets/reducer.js.map +1 -1
  1258. package/dist/core/store/Files/context.d.ts +1 -1
  1259. package/dist/core/store/Files/context.d.ts.map +1 -1
  1260. package/dist/core/store/Files/context.js.map +1 -1
  1261. package/dist/core/store/Files/reducer.d.ts +3 -3
  1262. package/dist/core/store/Files/reducer.d.ts.map +1 -1
  1263. package/dist/core/store/Files/reducer.js +0 -1
  1264. package/dist/core/store/Files/reducer.js.map +1 -1
  1265. package/dist/core/store/Map/context.d.ts +1 -1
  1266. package/dist/core/store/Map/context.d.ts.map +1 -1
  1267. package/dist/core/store/Map/context.js +1 -1
  1268. package/dist/core/store/Map/context.js.map +1 -1
  1269. package/dist/core/store/Map/reducer.d.ts +6 -5
  1270. package/dist/core/store/Map/reducer.d.ts.map +1 -1
  1271. package/dist/core/store/Map/reducer.js.map +1 -1
  1272. package/dist/core/store/MapSites/context.d.ts +1 -1
  1273. package/dist/core/store/MapSites/context.d.ts.map +1 -1
  1274. package/dist/core/store/MapSites/context.js.map +1 -1
  1275. package/dist/core/store/MapSites/reducer.d.ts +1 -1
  1276. package/dist/core/store/MapSites/reducer.d.ts.map +1 -1
  1277. package/dist/core/store/MapSites/reducer.js.map +1 -1
  1278. package/dist/core/store/Menus/context.d.ts +1 -1
  1279. package/dist/core/store/Menus/context.d.ts.map +1 -1
  1280. package/dist/core/store/Menus/context.js +6 -3
  1281. package/dist/core/store/Menus/context.js.map +1 -1
  1282. package/dist/core/store/Menus/reducer.d.ts +21 -1
  1283. package/dist/core/store/Menus/reducer.d.ts.map +1 -1
  1284. package/dist/core/store/Menus/reducer.js +21 -3
  1285. package/dist/core/store/Menus/reducer.js.map +1 -1
  1286. package/dist/core/store/Permissions/context.d.ts +1 -1
  1287. package/dist/core/store/Permissions/context.d.ts.map +1 -1
  1288. package/dist/core/store/Permissions/context.js +2 -2
  1289. package/dist/core/store/Permissions/context.js.map +1 -1
  1290. package/dist/core/store/PointCloud/context.d.ts +1 -1
  1291. package/dist/core/store/PointCloud/context.d.ts.map +1 -1
  1292. package/dist/core/store/PointCloud/context.js.map +1 -1
  1293. package/dist/core/store/PointCloud/reducer.d.ts +1 -1
  1294. package/dist/core/store/PointCloud/reducer.d.ts.map +1 -1
  1295. package/dist/core/store/PointCloud/reducer.js.map +1 -1
  1296. package/dist/core/store/Tools/context.d.ts +1 -1
  1297. package/dist/core/store/Tools/context.d.ts.map +1 -1
  1298. package/dist/core/store/Tools/context.js.map +1 -1
  1299. package/dist/core/store/Tools/reducer.d.ts +1 -1
  1300. package/dist/core/store/Tools/reducer.d.ts.map +1 -1
  1301. package/dist/core/store/Tools/reducer.js.map +1 -1
  1302. package/dist/core/styles/globals.css +17 -16
  1303. package/dist/core/styles/tailwindMerge.d.ts +1 -1
  1304. package/dist/core/styles/tailwindMerge.d.ts.map +1 -1
  1305. package/dist/core/styles/tailwindMerge.js.map +1 -1
  1306. package/dist/core/types/datasetTypes.d.ts +2 -2
  1307. package/dist/core/types/datasetTypes.d.ts.map +1 -1
  1308. package/dist/core/types/dbTypes.d.ts +1 -1
  1309. package/dist/core/types/dbTypes.d.ts.map +1 -1
  1310. package/dist/core/types/dbTypes.js.map +1 -1
  1311. package/dist/core/types/files.d.ts +2 -2
  1312. package/dist/core/types/files.d.ts.map +1 -1
  1313. package/dist/core/types/global.d.ts +3 -3
  1314. package/dist/core/types/global.d.ts.map +1 -1
  1315. package/dist/core/types/global.js.map +1 -1
  1316. package/dist/core/types/map.d.ts +2 -2
  1317. package/dist/core/types/map.d.ts.map +1 -1
  1318. package/dist/core/types/tools.d.ts +3 -3
  1319. package/dist/core/types/tools.d.ts.map +1 -1
  1320. package/dist/core/types/users.d.ts +2 -2
  1321. package/dist/core/types/users.d.ts.map +1 -1
  1322. package/dist/core/utils/getFileIcon.d.ts +1 -1
  1323. package/dist/core/utils/getFileIcon.d.ts.map +1 -1
  1324. package/dist/core/utils/getFileIcon.js.map +1 -1
  1325. package/dist/core/utils/markerUtils.d.ts +10 -0
  1326. package/dist/core/utils/markerUtils.d.ts.map +1 -1
  1327. package/dist/core/utils/markerUtils.js +9 -1
  1328. package/dist/core/utils/markerUtils.js.map +1 -1
  1329. package/dist/core/utils/memcache.d.ts.map +1 -1
  1330. package/dist/core/utils/memcache.js +0 -7
  1331. package/dist/core/utils/memcache.js.map +1 -1
  1332. package/dist/core/utils/roles.d.ts.map +1 -1
  1333. package/dist/core/utils/roles.js.map +1 -1
  1334. package/dist/core/utils/timeUtils.js.map +1 -1
  1335. package/dist/core/utils/utils.d.ts +1 -1
  1336. package/dist/core/utils/utils.d.ts.map +1 -1
  1337. package/dist/core/utils/utils.js.map +1 -1
  1338. package/package.json +8 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/NestedFilter.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 {\r\n ArrowLeft,\r\n Search,\r\n} from 'lucide-react'\r\n// Dependencies\r\nimport * as React from \"react\";\r\nimport { useTranslations } from 'next-intl'\r\n\r\nimport { Button, Checkbox, Input } from '../../../../components/ui/'\r\n// Shadcn Components\r\nimport {\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuSeparator,\r\n} from '../../../../components/ui/DropdownMenu'\r\n\r\ntype NestedFilterProps = {\r\n label: string\r\n handleContent: (event: React.MouseEvent) => void\r\n setContent: (value: boolean) => void\r\n availableValues: string[]\r\n selectedValues: string[]\r\n onSelectionChange: (selectedValues: string[]) => void\r\n}\r\n\r\nexport default function NestedFilter({\r\n label,\r\n handleContent,\r\n setContent,\r\n availableValues,\r\n selectedValues,\r\n onSelectionChange,\r\n}: NestedFilterProps) {\r\n // Translation\r\n const t = useTranslations('NestedFilter')\r\n\r\n const [searchTerm, setSearchTerm] = React.useState('')\r\n\r\n const handleCheckboxChange = (value: string, checked: boolean) => {\r\n let newSelectedValues\r\n\r\n newSelectedValues = checked ? [...selectedValues, value] : selectedValues.filter(v => v !== value)\r\n\r\n onSelectionChange(newSelectedValues)\r\n }\r\n\r\n // Filter available values based on search term\r\n const filteredValues = availableValues.filter(value =>\r\n value.toLowerCase().includes(searchTerm.toLowerCase()),\r\n )\r\n\r\n return (\r\n <>\r\n <DropdownMenuContent align=\"end\" onCloseAutoFocus={() => setContent(true)}>\r\n <DropdownMenuItem className=\"p-0 m-0 w-0\">\r\n <Button onClick={handleContent} variant=\"ghost\" className=\"capitalize font-semibold px-2 justify-start opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\">\r\n <ArrowLeft />\r\n {label}\r\n </Button>\r\n </DropdownMenuItem>\r\n <div className=\"my-2 relative\">\r\n <Search className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n <Input\r\n placeholder={`${t('searchPlaceholder')} ${label}`}\r\n value={searchTerm}\r\n onChange={e => setSearchTerm(e.target.value)}\r\n className=\"pl-8 border-none shadow-none\"\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 <DropdownMenuSeparator />\r\n\r\n {filteredValues.length === 0 ? (\r\n <DropdownMenuItem disabled>\r\n {t('no')}\r\n {' '}\r\n {label}\r\n {' '}\r\n {t('valuesFound')}\r\n </DropdownMenuItem>\r\n ) : (\r\n filteredValues.map(value => (\r\n <DropdownMenuItem\r\n key={value}\r\n onSelect={(e) => {\r\n e.preventDefault()\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n // Toggle the checkbox when clicking anywhere on the item\r\n handleCheckboxChange(value, !selectedValues.includes(value))\r\n }}\r\n >\r\n <Checkbox\r\n checked={selectedValues.includes(value)}\r\n onCheckedChange={(checked) => {\r\n handleCheckboxChange(value, checked === true)\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n }}\r\n />\r\n {value}\r\n </DropdownMenuItem>\r\n ))\r\n )}\r\n </DropdownMenuContent>\r\n </>\r\n )\r\n}"],"mappings":";AA0DI,mBAIQ,KADF,YAHN;AApDJ;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAEhC,SAAS,QAAQ,UAAU,aAAa;AAExC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWQ,SAAR,aAA8B;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AAEpB,QAAM,IAAI,gBAAgB,cAAc;AAExC,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,EAAE;AAErD,QAAM,uBAAuB,CAAC,OAAe,YAAqB;AAChE,QAAI;AAEJ,wBAAoB,UAAU,CAAC,GAAG,gBAAgB,KAAK,IAAI,eAAe,OAAO,OAAK,MAAM,KAAK;AAEjG,sBAAkB,iBAAiB;AAAA,EACrC;AAGA,QAAM,iBAAiB,gBAAgB;AAAA,IAAO,WAC5C,MAAM,YAAY,EAAE,SAAS,WAAW,YAAY,CAAC;AAAA,EACvD;AAEA,SACE,gCACE,+BAAC,uBAAoB,OAAM,OAAM,kBAAkB,MAAM,WAAW,IAAI,GACtE;AAAA,wBAAC,oBAAiB,WAAU,eAC1B,+BAAC,UAAO,SAAS,eAAe,SAAQ,SAAQ,WAAU,iIACxD;AAAA,0BAAC,aAAU;AAAA,MACV;AAAA,OACH,GACF;AAAA,IACA,qBAAC,SAAI,WAAU,iBACb;AAAA,0BAAC,UAAO,WAAU,yDAAwD;AAAA,MAC1E;AAAA,QAAC;AAAA;AAAA,UACC,aAAa,GAAG,EAAE,mBAAmB,CAAC,IAAI,KAAK;AAAA,UAC/C,OAAO;AAAA,UACP,UAAU,OAAK,cAAc,EAAE,OAAO,KAAK;AAAA,UAC3C,WAAU;AAAA,UACV,WAAW,CAAC,MAAM;AAChB,cAAE,gBAAgB;AAAA,UACpB;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IACA,oBAAC,yBAAsB;AAAA,IAEtB,eAAe,WAAW,IACzB,qBAAC,oBAAiB,UAAQ,MACvB;AAAA,QAAE,IAAI;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA,EAAE,aAAa;AAAA,OAClB,IAEA,eAAe,IAAI,WACjB;AAAA,MAAC;AAAA;AAAA,QAEC,UAAU,CAAC,MAAM;AACf,YAAE,eAAe;AAAA,QACnB;AAAA,QACA,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AAElB,+BAAqB,OAAO,CAAC,eAAe,SAAS,KAAK,CAAC;AAAA,QAC7D;AAAA,QAEA;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,SAAS,eAAe,SAAS,KAAK;AAAA,cACtC,iBAAiB,CAAC,YAAY;AAC5B,qCAAqB,OAAO,YAAY,IAAI;AAAA,cAC9C;AAAA,cACA,SAAS,CAAC,MAAM;AACd,kBAAE,gBAAgB;AAAA,cACpB;AAAA;AAAA,UACF;AAAA,UACC;AAAA;AAAA;AAAA,MAnBI;AAAA,IAoBP,CACD;AAAA,KAEL,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/NestedFilter.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 {\r\n ArrowLeft,\r\n Search,\r\n} from 'lucide-react'\r\n// Dependencies\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from \"react\";\r\n\r\nimport { Button, Checkbox, Input } from '../../../../components/ui/'\r\n// Shadcn Components\r\nimport {\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuSeparator,\r\n} from '../../../../components/ui/DropdownMenu'\r\n\r\ntype NestedFilterProps = {\r\n label: string\r\n handleContent: (event: React.MouseEvent) => void\r\n setContent: (value: boolean) => void\r\n availableValues: string[]\r\n selectedValues: string[]\r\n onSelectionChange: (selectedValues: string[]) => void\r\n}\r\n\r\nexport default function NestedFilter({\r\n label,\r\n handleContent,\r\n setContent,\r\n availableValues,\r\n selectedValues,\r\n onSelectionChange,\r\n}: NestedFilterProps) {\r\n // Translation\r\n const t = useTranslations('NestedFilter')\r\n\r\n const [searchTerm, setSearchTerm] = React.useState('')\r\n\r\n const handleCheckboxChange = (value: string, checked: boolean) => {\r\n let newSelectedValues\r\n\r\n newSelectedValues = checked ? [...selectedValues, value] : selectedValues.filter(v => v !== value)\r\n\r\n onSelectionChange(newSelectedValues)\r\n }\r\n\r\n // Filter available values based on search term\r\n const filteredValues = availableValues.filter(value =>\r\n value.toLowerCase().includes(searchTerm.toLowerCase()),\r\n )\r\n\r\n return (\r\n <>\r\n <DropdownMenuContent align=\"end\" onCloseAutoFocus={() => setContent(true)}>\r\n <DropdownMenuItem className=\"p-0 m-0 w-0\">\r\n <Button onClick={handleContent} variant=\"ghost\" className=\"capitalize font-semibold px-2 justify-start opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\">\r\n <ArrowLeft />\r\n {label}\r\n </Button>\r\n </DropdownMenuItem>\r\n <div className=\"my-2 relative\">\r\n <Search className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n <Input\r\n placeholder={`${t('searchPlaceholder')} ${label}`}\r\n value={searchTerm}\r\n onChange={e => setSearchTerm(e.target.value)}\r\n className=\"pl-8 border-none shadow-none\"\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 <DropdownMenuSeparator />\r\n\r\n {filteredValues.length === 0 ? (\r\n <DropdownMenuItem disabled>\r\n {t('no')}\r\n {' '}\r\n {label}\r\n {' '}\r\n {t('valuesFound')}\r\n </DropdownMenuItem>\r\n ) : (\r\n filteredValues.map(value => (\r\n <DropdownMenuItem\r\n key={value}\r\n onSelect={(e) => {\r\n e.preventDefault()\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n // Toggle the checkbox when clicking anywhere on the item\r\n handleCheckboxChange(value, !selectedValues.includes(value))\r\n }}\r\n >\r\n <Checkbox\r\n checked={selectedValues.includes(value)}\r\n onCheckedChange={(checked) => {\r\n handleCheckboxChange(value, checked === true)\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n }}\r\n />\r\n {value}\r\n </DropdownMenuItem>\r\n ))\r\n )}\r\n </DropdownMenuContent>\r\n </>\r\n )\r\n}"],"mappings":";AA0DI,mBAIQ,KADF,YAHN;AApDJ;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP,SAAS,uBAAuB;AAChC,YAAY,WAAW;AAEvB,SAAS,QAAQ,UAAU,aAAa;AAExC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWQ,SAAR,aAA8B;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AAEpB,QAAM,IAAI,gBAAgB,cAAc;AAExC,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,EAAE;AAErD,QAAM,uBAAuB,CAAC,OAAe,YAAqB;AAChE,QAAI;AAEJ,wBAAoB,UAAU,CAAC,GAAG,gBAAgB,KAAK,IAAI,eAAe,OAAO,OAAK,MAAM,KAAK;AAEjG,sBAAkB,iBAAiB;AAAA,EACrC;AAGA,QAAM,iBAAiB,gBAAgB;AAAA,IAAO,WAC5C,MAAM,YAAY,EAAE,SAAS,WAAW,YAAY,CAAC;AAAA,EACvD;AAEA,SACE,gCACE,+BAAC,uBAAoB,OAAM,OAAM,kBAAkB,MAAM,WAAW,IAAI,GACtE;AAAA,wBAAC,oBAAiB,WAAU,eAC1B,+BAAC,UAAO,SAAS,eAAe,SAAQ,SAAQ,WAAU,iIACxD;AAAA,0BAAC,aAAU;AAAA,MACV;AAAA,OACH,GACF;AAAA,IACA,qBAAC,SAAI,WAAU,iBACb;AAAA,0BAAC,UAAO,WAAU,yDAAwD;AAAA,MAC1E;AAAA,QAAC;AAAA;AAAA,UACC,aAAa,GAAG,EAAE,mBAAmB,CAAC,IAAI,KAAK;AAAA,UAC/C,OAAO;AAAA,UACP,UAAU,OAAK,cAAc,EAAE,OAAO,KAAK;AAAA,UAC3C,WAAU;AAAA,UACV,WAAW,CAAC,MAAM;AAChB,cAAE,gBAAgB;AAAA,UACpB;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IACA,oBAAC,yBAAsB;AAAA,IAEtB,eAAe,WAAW,IACzB,qBAAC,oBAAiB,UAAQ,MACvB;AAAA,QAAE,IAAI;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA,EAAE,aAAa;AAAA,OAClB,IAEA,eAAe,IAAI,WACjB;AAAA,MAAC;AAAA;AAAA,QAEC,UAAU,CAAC,MAAM;AACf,YAAE,eAAe;AAAA,QACnB;AAAA,QACA,SAAS,CAAC,MAAM;AACd,YAAE,gBAAgB;AAElB,+BAAqB,OAAO,CAAC,eAAe,SAAS,KAAK,CAAC;AAAA,QAC7D;AAAA,QAEA;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,SAAS,eAAe,SAAS,KAAK;AAAA,cACtC,iBAAiB,CAAC,YAAY;AAC5B,qCAAqB,OAAO,YAAY,IAAI;AAAA,cAC9C;AAAA,cACA,SAAS,CAAC,MAAM;AACd,kBAAE,gBAAgB;AAAA,cACpB;AAAA;AAAA,UACF;AAAA,UACC;AAAA;AAAA;AAAA,MAnBI;AAAA,IAoBP,CACD;AAAA,KAEL,GACF;AAEJ;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/RowActions.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAG7D,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC5B,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,OAAO,EACP,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,EAAE,eAAe,qBAoQjB"}
1
+ {"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/RowActions.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAG7D,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC5B,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,OAAO,EACP,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,GACd,EAAE,eAAe,qBAoQjB"}
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as LR from "lucide-react";
3
4
  import React from "react";
4
5
  import { usePermissions } from "../../../../store";
5
- import { handleFavouriteDataset } from "./utils";
6
- import { Checkbox, Button } from "../../../ui/";
7
- import * as LR from "lucide-react";
8
6
  import { DatasetsContext } from "../../../../store";
7
+ import { Checkbox, Button } from "../../../ui/";
9
8
  import { buildPublishedTileDatasets } from "./src/publishedTiles";
9
+ import { handleFavouriteDataset } from "./utils";
10
10
  function RowActions({
11
11
  dataset,
12
12
  favouriteDatasets,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/RowActions.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 React from 'react'\r\nimport { usePermissions } from '../../../../store'\r\n// Utility functions\r\nimport { handleFavouriteDataset } from './utils'\r\n\r\n// Shadcn Components\r\nimport { Checkbox, Button } from '../../../ui/'\r\n\r\n// Icons\r\nimport * as LR from 'lucide-react'\r\nimport { DatasetsContext } from '../../../../store'\r\nimport type { Dataset } from '../../../../types/datasetTypes'\r\nimport { buildPublishedTileDatasets } from './src/publishedTiles'\r\n\r\ninterface RowActionsProps {\r\n dataset: Dataset\r\n favouriteDatasets: Dataset[]\r\n setFavouriteDatasets: React.Dispatch<React.SetStateAction<Dataset[]>>\r\n martinBaseUrl?: string\r\n}\r\n\r\nexport default function RowActions({\r\n dataset,\r\n favouriteDatasets,\r\n setFavouriteDatasets,\r\n martinBaseUrl,\r\n}: RowActionsProps) {\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n\r\n const { state: datasetsState, dispatch: datasetsDispatch } = React.useContext(DatasetsContext)\r\n const { addedDatasets } = datasetsState.datasets\r\n const orgDatasets = datasetsState.datasets.datasets\r\n\r\n // const [checked, setChecked] = useState(false);\r\n\r\n // Check if this specific dataset is in favourites\r\n const isFavourite = favouriteDatasets.some(item => item.name === dataset.name)\r\n\r\n // \"Checked\" means the dataset is applied to the map. All dataset types —\r\n // including Organizational (MinIO/Martin-hydrated uploads) — toggle their\r\n // membership in addedDatasets, which is the only list OpenDataLayers renders.\r\n // (Previously Organizational datasets toggled a `visible` flag on the\r\n // available list, which nothing renders from, so they never appeared.)\r\n const checked = addedDatasets.some(d => d.name === dataset.name)\r\n\r\n const handleApplyDataset = () => {\r\n if (!dataset) {\r\n console.error('No dataset provided in RowActions')\r\n return\r\n }\r\n\r\n const isAdded = addedDatasets.some(d => d.name === dataset.name)\r\n\r\n if (isAdded) {\r\n datasetsDispatch({\r\n type: 'REMOVE_DATASET_FROM_MAP',\r\n payload: { datasetId: dataset.id },\r\n })\r\n }\r\n else {\r\n datasetsDispatch({\r\n type: 'ADD_DATASET_TO_MAP',\r\n payload: { dataset: dataset },\r\n })\r\n }\r\n }\r\n\r\n const handleFavourite = handleFavouriteDataset(dataset, favouriteDatasets, setFavouriteDatasets)\r\n\r\n const [publishing, setPublishing] = React.useState(false)\r\n const [published, setPublished] = React.useState(false)\r\n\r\n const isOrgMinio = typeof dataset.id === 'string' && dataset.id.startsWith('org-minio-')\r\n const fileId = isOrgMinio\r\n ? Number(String(dataset.id).slice('org-minio-'.length))\r\n : null\r\n\r\n const tiledMatch = typeof dataset.id === 'string'\r\n ? /^org_(\\d+)_file_(\\d+)$/.exec(dataset.id)\r\n : null\r\n // A row is \"converted\" either because it IS the org_<orgId>_file_<fileId> tile\r\n // entry (organizational tab), or because it's the original open-data dataset\r\n // stamped with the published File it resolves to (every other tab). Either way\r\n // we show the un-publish action and drive it with this fileId.\r\n const tiledFileId = tiledMatch\r\n ? Number(tiledMatch[2])\r\n : (typeof dataset.publishedFileId === 'number' ? dataset.publishedFileId : null)\r\n\r\n const [unpublishing, setUnpublishing] = React.useState(false)\r\n const [unpublished, setUnpublished] = React.useState(false)\r\n\r\n const onUnpublish = async () => {\r\n if (tiledFileId == null) return\r\n if (!window.confirm(`Un-publish \"${dataset.name}\"? The Martin table will be dropped; the original GeoJSON in MinIO is untouched.`)) return\r\n setUnpublishing(true)\r\n try {\r\n const res = await fetch('/api/datasets/publish-tiles', {\r\n method: 'DELETE',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ fileId: tiledFileId }),\r\n })\r\n if (!res.ok) {\r\n const body = await res.json().catch(() => ({}))\r\n console.error('un-publish failed', res.status, body)\r\n window.alert(`Un-publish failed: ${body?.error ?? res.status}`)\r\n return\r\n }\r\n setUnpublished(true)\r\n datasetsDispatch({ type: 'REFRESH_ORG_DATASETS' })\r\n window.alert(`Un-published. The dataset list has been refreshed.`)\r\n }\r\n finally {\r\n setUnpublishing(false)\r\n }\r\n }\r\n\r\n const onPublish = async () => {\r\n if (fileId == null || Number.isNaN(fileId)) return\r\n setPublishing(true)\r\n try {\r\n const res = await fetch('/api/datasets/publish-tiles', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ fileId }),\r\n })\r\n if (!res.ok) {\r\n const body = await res.json().catch(() => ({}))\r\n console.error('publish-tiles failed', res.status, body)\r\n window.alert(`Publish failed: ${body?.error ?? res.status}`)\r\n return\r\n }\r\n const result = await res.json()\r\n setPublished(true)\r\n\r\n // Optimistically swap the MinIO upload row for its published-tile form so the\r\n // un-publish (CloudOff) icon shows immediately. The full org refetch below\r\n // (REFRESH_ORG_DATASETS) re-samples a vector tile per dataset to detect geometry,\r\n // which can take several seconds; without this the row only flips after that lands\r\n // (or after the dialog is reopened). The refetch reconciles this swap when it finishes.\r\n const tileBaseUrl = (martinBaseUrl ?? '').replace(/\\/+$/, '')\r\n const minioId = `org-minio-${fileId}`\r\n const [optimistic] = buildPublishedTileDatasets(\r\n [{\r\n name: dataset.name,\r\n description: JSON.stringify({ tiledTable: result.table, geometryType: result.geometryType }),\r\n }],\r\n tileBaseUrl,\r\n { countrySubdivision: dataset.countrySubdivision ?? '', municipality: dataset.municipality ?? '' } as any,\r\n )\r\n if (optimistic) {\r\n const current = orgDatasets ?? []\r\n const swapped = current.some(d => d.id === minioId)\r\n ? current.map(d => (d.id === minioId ? optimistic : d))\r\n : [...current, optimistic]\r\n datasetsDispatch({ type: 'SET_DATASETS', payload: { datasets: swapped } })\r\n // Keep the map layer in sync if this dataset was already applied.\r\n if (addedDatasets.some(d => d.id === minioId)) {\r\n datasetsDispatch({ type: 'REMOVE_DATASET_FROM_MAP', payload: { datasetId: minioId } })\r\n datasetsDispatch({ type: 'ADD_DATASET_TO_MAP', payload: { dataset: optimistic } })\r\n }\r\n }\r\n\r\n datasetsDispatch({ type: 'REFRESH_ORG_DATASETS' })\r\n window.alert(\r\n `Tiled as ${result.table}. The dataset list has been refreshed.\\n\\n`\r\n + `Features ingested: ${result.featuresIngested}, skipped: ${result.featuresSkipped}.`,\r\n )\r\n }\r\n finally {\r\n setPublishing(false)\r\n }\r\n }\r\n\r\n // Catalog (open-data-portal) GeoJSON datasets: not a MinIO upload, not an already-tiled\r\n // table, carry a portal + are typed GeoJSON. MVT catalog datasets are already tiles.\r\n const isCatalogGeoJson =\r\n !isOrgMinio\r\n && tiledFileId == null\r\n && dataset.datasetType === 'GeoJSON'\r\n && !!dataset.portal\r\n && dataset.id != null\r\n\r\n const [publishingCatalog, setPublishingCatalog] = React.useState(false)\r\n const [publishedCatalog, setPublishedCatalog] = React.useState(false)\r\n\r\n const onPublishCatalog = async () => {\r\n if (!dataset.portal || dataset.id == null) return\r\n setPublishingCatalog(true)\r\n try {\r\n const res = await fetch('/api/datasets/publish-catalog-tiles', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ portal: dataset.portal, datasetId: dataset.id }),\r\n })\r\n if (!res.ok) {\r\n const body = await res.json().catch(() => ({}))\r\n console.error('publish-catalog-tiles failed', res.status, body)\r\n window.alert(`Publish failed: ${body?.error ?? res.status}`)\r\n return\r\n }\r\n const result = await res.json()\r\n setPublishedCatalog(true)\r\n datasetsDispatch({ type: 'REFRESH_ORG_DATASETS' })\r\n window.alert(\r\n `Tiled as ${result.table}. The dataset list has been refreshed.\\n\\n`\r\n + `Features ingested: ${result.featuresIngested}, skipped: ${result.featuresSkipped}.`,\r\n )\r\n }\r\n finally {\r\n setPublishingCatalog(false)\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"flex items-center flex-nowrap gap-0.5 sm:gap-1\">\r\n <Button\r\n size=\"icon\"\r\n variant=\"ghost\"\r\n // onClick={handleApplyDataset}\r\n className=\"h-8 w-8 sm:h-9 sm:w-9 hover:bg-transparent\"\r\n disabled={!ability.can('read', 'File')}\r\n >\r\n <Checkbox\r\n checked={checked}\r\n onCheckedChange={() => {\r\n handleApplyDataset()\r\n }}\r\n className=\"opacity-70 hover:opacity-100 data-[state=checked]:opacity-100 transition-opacity duration-200\"\r\n />\r\n </Button>\r\n\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={`h-8 w-8 sm:h-9 sm:w-9 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent ${isFavourite ? 'opacity-100' : ''}`}\r\n onClick={handleFavourite}\r\n disabled={!ability.can('read', 'File')}\r\n >\r\n <LR.Star\r\n color={`${isFavourite ? 'hsl(var(--chart-5))' : 'black'} `}\r\n fill={`${isFavourite ? 'hsl(var(--chart-5))' : 'none'} `}\r\n />\r\n </Button>\r\n\r\n {isOrgMinio && (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n title={published ? 'Tiled' : 'Publish as vector tiles'}\r\n className=\"h-8 w-8 sm:h-9 sm:w-9 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n onClick={onPublish}\r\n disabled={publishing || published || !ability.can('update', 'File')}\r\n >\r\n <LR.UploadCloud color={published ? 'hsl(var(--chart-2))' : 'black'} />\r\n </Button>\r\n )}\r\n\r\n {isCatalogGeoJson && (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n title={publishedCatalog ? 'Tiled' : 'Publish open-data dataset as vector tiles'}\r\n className=\"h-8 w-8 sm:h-9 sm:w-9 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n onClick={onPublishCatalog}\r\n disabled={publishingCatalog || publishedCatalog || !ability.can('update', 'File')}\r\n >\r\n <LR.CloudDownload color={publishedCatalog ? 'hsl(var(--chart-2))' : 'black'} />\r\n </Button>\r\n )}\r\n\r\n {tiledFileId != null && (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n title={unpublished ? 'Un-published' : 'Un-publish vector tiles'}\r\n className=\"h-8 w-8 sm:h-9 sm:w-9 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n onClick={onUnpublish}\r\n disabled={unpublishing || unpublished || !ability.can('update', 'File')}\r\n >\r\n <LR.CloudOff color={unpublished ? 'hsl(var(--chart-5))' : 'black'} />\r\n </Button>\r\n )}\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/RowActions.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 React from 'react'\r\n\r\nimport { usePermissions } from '../../../../store'\r\n\r\n// Utility functions\r\nimport { DatasetsContext } from '../../../../store'\r\nimport { Checkbox, Button } from '../../../ui/'\r\n\r\nimport { buildPublishedTileDatasets } from './src/publishedTiles'\r\nimport { handleFavouriteDataset } from './utils'\r\n\r\n// Shadcn Components\r\n\r\n// Icons\r\n\r\nimport type { Dataset } from '../../../../types/datasetTypes'\r\n\r\n\r\ninterface RowActionsProps {\r\n dataset: Dataset\r\n favouriteDatasets: Dataset[]\r\n setFavouriteDatasets: React.Dispatch<React.SetStateAction<Dataset[]>>\r\n martinBaseUrl?: string\r\n}\r\n\r\nexport default function RowActions({\r\n dataset,\r\n favouriteDatasets,\r\n setFavouriteDatasets,\r\n martinBaseUrl,\r\n}: RowActionsProps) {\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n\r\n const { state: datasetsState, dispatch: datasetsDispatch } = React.useContext(DatasetsContext)\r\n const { addedDatasets } = datasetsState.datasets\r\n const orgDatasets = datasetsState.datasets.datasets\r\n\r\n // const [checked, setChecked] = useState(false);\r\n\r\n // Check if this specific dataset is in favourites\r\n const isFavourite = favouriteDatasets.some(item => item.name === dataset.name)\r\n\r\n // \"Checked\" means the dataset is applied to the map. All dataset types —\r\n // including Organizational (MinIO/Martin-hydrated uploads) — toggle their\r\n // membership in addedDatasets, which is the only list OpenDataLayers renders.\r\n // (Previously Organizational datasets toggled a `visible` flag on the\r\n // available list, which nothing renders from, so they never appeared.)\r\n const checked = addedDatasets.some(d => d.name === dataset.name)\r\n\r\n const handleApplyDataset = () => {\r\n if (!dataset) {\r\n console.error('No dataset provided in RowActions')\r\n return\r\n }\r\n\r\n const isAdded = addedDatasets.some(d => d.name === dataset.name)\r\n\r\n if (isAdded) {\r\n datasetsDispatch({\r\n type: 'REMOVE_DATASET_FROM_MAP',\r\n payload: { datasetId: dataset.id },\r\n })\r\n }\r\n else {\r\n datasetsDispatch({\r\n type: 'ADD_DATASET_TO_MAP',\r\n payload: { dataset: dataset },\r\n })\r\n }\r\n }\r\n\r\n const handleFavourite = handleFavouriteDataset(dataset, favouriteDatasets, setFavouriteDatasets)\r\n\r\n const [publishing, setPublishing] = React.useState(false)\r\n const [published, setPublished] = React.useState(false)\r\n\r\n const isOrgMinio = typeof dataset.id === 'string' && dataset.id.startsWith('org-minio-')\r\n const fileId = isOrgMinio\r\n ? Number(String(dataset.id).slice('org-minio-'.length))\r\n : null\r\n\r\n const tiledMatch = typeof dataset.id === 'string'\r\n ? /^org_(\\d+)_file_(\\d+)$/.exec(dataset.id)\r\n : null\r\n // A row is \"converted\" either because it IS the org_<orgId>_file_<fileId> tile\r\n // entry (organizational tab), or because it's the original open-data dataset\r\n // stamped with the published File it resolves to (every other tab). Either way\r\n // we show the un-publish action and drive it with this fileId.\r\n const tiledFileId = tiledMatch\r\n ? Number(tiledMatch[2])\r\n : (typeof dataset.publishedFileId === 'number' ? dataset.publishedFileId : null)\r\n\r\n const [unpublishing, setUnpublishing] = React.useState(false)\r\n const [unpublished, setUnpublished] = React.useState(false)\r\n\r\n const onUnpublish = async () => {\r\n if (tiledFileId == null) return\r\n if (!window.confirm(`Un-publish \"${dataset.name}\"? The Martin table will be dropped; the original GeoJSON in MinIO is untouched.`)) return\r\n setUnpublishing(true)\r\n try {\r\n const res = await fetch('/api/datasets/publish-tiles', {\r\n method: 'DELETE',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ fileId: tiledFileId }),\r\n })\r\n if (!res.ok) {\r\n const body = await res.json().catch(() => ({}))\r\n console.error('un-publish failed', res.status, body)\r\n window.alert(`Un-publish failed: ${body?.error ?? res.status}`)\r\n return\r\n }\r\n setUnpublished(true)\r\n datasetsDispatch({ type: 'REFRESH_ORG_DATASETS' })\r\n window.alert(`Un-published. The dataset list has been refreshed.`)\r\n }\r\n finally {\r\n setUnpublishing(false)\r\n }\r\n }\r\n\r\n const onPublish = async () => {\r\n if (fileId == null || Number.isNaN(fileId)) return\r\n setPublishing(true)\r\n try {\r\n const res = await fetch('/api/datasets/publish-tiles', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ fileId }),\r\n })\r\n if (!res.ok) {\r\n const body = await res.json().catch(() => ({}))\r\n console.error('publish-tiles failed', res.status, body)\r\n window.alert(`Publish failed: ${body?.error ?? res.status}`)\r\n return\r\n }\r\n const result = await res.json()\r\n setPublished(true)\r\n\r\n // Optimistically swap the MinIO upload row for its published-tile form so the\r\n // un-publish (CloudOff) icon shows immediately. The full org refetch below\r\n // (REFRESH_ORG_DATASETS) re-samples a vector tile per dataset to detect geometry,\r\n // which can take several seconds; without this the row only flips after that lands\r\n // (or after the dialog is reopened). The refetch reconciles this swap when it finishes.\r\n const tileBaseUrl = (martinBaseUrl ?? '').replace(/\\/+$/, '')\r\n const minioId = `org-minio-${fileId}`\r\n const [optimistic] = buildPublishedTileDatasets(\r\n [{\r\n name: dataset.name,\r\n description: JSON.stringify({ tiledTable: result.table, geometryType: result.geometryType }),\r\n }],\r\n tileBaseUrl,\r\n { countrySubdivision: dataset.countrySubdivision ?? '', municipality: dataset.municipality ?? '' } as any,\r\n )\r\n if (optimistic) {\r\n const current = orgDatasets ?? []\r\n const swapped = current.some(d => d.id === minioId)\r\n ? current.map(d => (d.id === minioId ? optimistic : d))\r\n : [...current, optimistic]\r\n datasetsDispatch({ type: 'SET_DATASETS', payload: { datasets: swapped } })\r\n // Keep the map layer in sync if this dataset was already applied.\r\n if (addedDatasets.some(d => d.id === minioId)) {\r\n datasetsDispatch({ type: 'REMOVE_DATASET_FROM_MAP', payload: { datasetId: minioId } })\r\n datasetsDispatch({ type: 'ADD_DATASET_TO_MAP', payload: { dataset: optimistic } })\r\n }\r\n }\r\n\r\n datasetsDispatch({ type: 'REFRESH_ORG_DATASETS' })\r\n window.alert(\r\n `Tiled as ${result.table}. The dataset list has been refreshed.\\n\\n`\r\n + `Features ingested: ${result.featuresIngested}, skipped: ${result.featuresSkipped}.`,\r\n )\r\n }\r\n finally {\r\n setPublishing(false)\r\n }\r\n }\r\n\r\n // Catalog (open-data-portal) GeoJSON datasets: not a MinIO upload, not an already-tiled\r\n // table, carry a portal + are typed GeoJSON. MVT catalog datasets are already tiles.\r\n const isCatalogGeoJson =\r\n !isOrgMinio\r\n && tiledFileId == null\r\n && dataset.datasetType === 'GeoJSON'\r\n && !!dataset.portal\r\n && dataset.id != null\r\n\r\n const [publishingCatalog, setPublishingCatalog] = React.useState(false)\r\n const [publishedCatalog, setPublishedCatalog] = React.useState(false)\r\n\r\n const onPublishCatalog = async () => {\r\n if (!dataset.portal || dataset.id == null) return\r\n setPublishingCatalog(true)\r\n try {\r\n const res = await fetch('/api/datasets/publish-catalog-tiles', {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ portal: dataset.portal, datasetId: dataset.id }),\r\n })\r\n if (!res.ok) {\r\n const body = await res.json().catch(() => ({}))\r\n console.error('publish-catalog-tiles failed', res.status, body)\r\n window.alert(`Publish failed: ${body?.error ?? res.status}`)\r\n return\r\n }\r\n const result = await res.json()\r\n setPublishedCatalog(true)\r\n datasetsDispatch({ type: 'REFRESH_ORG_DATASETS' })\r\n window.alert(\r\n `Tiled as ${result.table}. The dataset list has been refreshed.\\n\\n`\r\n + `Features ingested: ${result.featuresIngested}, skipped: ${result.featuresSkipped}.`,\r\n )\r\n }\r\n finally {\r\n setPublishingCatalog(false)\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"flex items-center flex-nowrap gap-0.5 sm:gap-1\">\r\n <Button\r\n size=\"icon\"\r\n variant=\"ghost\"\r\n // onClick={handleApplyDataset}\r\n className=\"h-8 w-8 sm:h-9 sm:w-9 hover:bg-transparent\"\r\n disabled={!ability.can('read', 'File')}\r\n >\r\n <Checkbox\r\n checked={checked}\r\n onCheckedChange={() => {\r\n handleApplyDataset()\r\n }}\r\n className=\"opacity-70 hover:opacity-100 data-[state=checked]:opacity-100 transition-opacity duration-200\"\r\n />\r\n </Button>\r\n\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={`h-8 w-8 sm:h-9 sm:w-9 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent ${isFavourite ? 'opacity-100' : ''}`}\r\n onClick={handleFavourite}\r\n disabled={!ability.can('read', 'File')}\r\n >\r\n <LR.Star\r\n color={`${isFavourite ? 'hsl(var(--chart-5))' : 'black'} `}\r\n fill={`${isFavourite ? 'hsl(var(--chart-5))' : 'none'} `}\r\n />\r\n </Button>\r\n\r\n {isOrgMinio && (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n title={published ? 'Tiled' : 'Publish as vector tiles'}\r\n className=\"h-8 w-8 sm:h-9 sm:w-9 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n onClick={onPublish}\r\n disabled={publishing || published || !ability.can('update', 'File')}\r\n >\r\n <LR.UploadCloud color={published ? 'hsl(var(--chart-2))' : 'black'} />\r\n </Button>\r\n )}\r\n\r\n {isCatalogGeoJson && (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n title={publishedCatalog ? 'Tiled' : 'Publish open-data dataset as vector tiles'}\r\n className=\"h-8 w-8 sm:h-9 sm:w-9 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n onClick={onPublishCatalog}\r\n disabled={publishingCatalog || publishedCatalog || !ability.can('update', 'File')}\r\n >\r\n <LR.CloudDownload color={publishedCatalog ? 'hsl(var(--chart-2))' : 'black'} />\r\n </Button>\r\n )}\r\n\r\n {tiledFileId != null && (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n title={unpublished ? 'Un-published' : 'Un-publish vector tiles'}\r\n className=\"h-8 w-8 sm:h-9 sm:w-9 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n onClick={onUnpublish}\r\n disabled={unpublishing || unpublished || !ability.can('update', 'File')}\r\n >\r\n <LR.CloudOff color={unpublished ? 'hsl(var(--chart-5))' : 'black'} />\r\n </Button>\r\n )}\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
@@ -1,5 +1,5 @@
1
1
  import type { Dataset } from '../../../../types/datasetTypes';
2
- import { ColumnDef } from '@tanstack/react-table';
2
+ import type { ColumnDef } from '@tanstack/react-table';
3
3
  export interface ColumnMeta {
4
4
  columnClasses: string;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/data.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AASjD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAqGhE"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/data.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAMtD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAqGhE"}
@@ -1,8 +1,8 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
2
+ import { ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react";
3
3
  import { useTranslations } from "next-intl";
4
+ import * as React from "react";
4
5
  import { Button } from "../../../../components/ui/Button";
5
- import { ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react";
6
6
  import { MapContext } from "../../../../store/Map/context";
7
7
  function useColumns() {
8
8
  const t = useTranslations("DataColumns");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/data.tsx"],"sourcesContent":["// 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 type { Dataset } from '../../../../types/datasetTypes'\r\nimport { ColumnDef } from '@tanstack/react-table'\r\nimport { useTranslations } from 'next-intl'\r\n\r\n// Shadcn Components\r\nimport { Button } from '../../../../components/ui/Button'\r\n\r\nimport { ArrowUpDown, ArrowUp, ArrowDown } from 'lucide-react'\r\nimport { MapContext } from '../../../../store/Map/context'\r\n\r\nexport interface ColumnMeta {\r\n columnClasses: string\r\n}\r\n\r\nexport function useColumns<TData = Dataset>(): ColumnDef<TData>[] {\r\n // Translation\r\n const t = useTranslations('DataColumns')\r\n\r\n const { state: mapState } = React.useContext(MapContext)\r\n const countrySubdivisionsData = mapState.map.countrySubdivisionsData\r\n\r\n const getSubdivisionName = (code: string | undefined | null): string => {\r\n if (!code) return ''\r\n if (!countrySubdivisionsData) return code\r\n const exact = countrySubdivisionsData[code] as any\r\n if (exact) return (exact?.name ?? exact) || code\r\n const entry = Object.entries(countrySubdivisionsData).find(([k]) => k.endsWith(`-${code}`))\r\n if (entry) return ((entry[1] as any)?.name ?? entry[1]) || code\r\n return code\r\n }\r\n\r\n return [\r\n {\r\n accessorKey: 'name',\r\n header: ({ column }) => {\r\n const isSorted = column.getIsSorted()\r\n return (\r\n <Button\r\n variant=\"ghost\"\r\n onClick={column.getToggleSortingHandler()}\r\n className=\"hover:bg-transparent p-0\"\r\n >\r\n {t('name')}\r\n {isSorted == false && <ArrowUpDown />}\r\n {isSorted === 'desc' && <ArrowDown className=\"text-black\" />}\r\n {isSorted === 'asc' && <ArrowUp className=\"text-black\" />}\r\n </Button>\r\n )\r\n },\r\n enableSorting: true,\r\n cell: ({ getValue }) => {\r\n const value = getValue() as string\r\n return (\r\n <div className=\"max-w-md truncate\" title={value}>\r\n {value}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: 'max-w-md' } as ColumnMeta,\r\n },\r\n {\r\n accessorKey: 'countrySubdivision',\r\n header: t('countrySubdivision'),\r\n cell: ({ getValue }) => {\r\n const code = getValue() as string\r\n const name = getSubdivisionName(code)\r\n return (\r\n <div className=\"whitespace-nowrap\" title={code}>\r\n {name}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: '!hidden md:!table-cell whitespace-nowrap' } as ColumnMeta,\r\n },\r\n {\r\n accessorKey: 'municipality',\r\n header: t('municipality'),\r\n cell: ({ getValue }) => {\r\n const value = getValue() as string\r\n return (\r\n <div className=\"whitespace-nowrap\" title={value}>\r\n {value}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: '!hidden md:!table-cell whitespace-nowrap' } as ColumnMeta,\r\n },\r\n {\r\n id: 'source',\r\n accessorFn: (row: any) => row?.portal?.name ?? row?.publisher ?? '',\r\n header: t('source'),\r\n cell: ({ getValue }) => {\r\n const value = (getValue() as string) || ''\r\n return (\r\n <div className=\"whitespace-nowrap max-w-[240px] truncate\" title={value}>\r\n {value}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: '!hidden md:!table-cell whitespace-nowrap' } as ColumnMeta,\r\n },\r\n {\r\n accessorKey: 'type',\r\n header: t('type'),\r\n cell: ({ getValue }) => {\r\n const value = getValue() as string\r\n return (\r\n <div className=\"whitespace-nowrap\" title={value}>\r\n {value}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: '!hidden md:!table-cell whitespace-nowrap' } as ColumnMeta,\r\n },\r\n ]\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/data.tsx"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\n// Dependencies\r\nimport { ArrowUpDown, ArrowUp, ArrowDown } from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '../../../../components/ui/Button'\r\nimport { MapContext } from '../../../../store/Map/context'\r\n\r\nimport type { Dataset } from '../../../../types/datasetTypes'\r\nimport type { ColumnDef } from '@tanstack/react-table'\r\n\r\n// Shadcn Components\r\n\r\n\r\n\r\nexport interface ColumnMeta {\r\n columnClasses: string\r\n}\r\n\r\nexport function useColumns<TData = Dataset>(): ColumnDef<TData>[] {\r\n // Translation\r\n const t = useTranslations('DataColumns')\r\n\r\n const { state: mapState } = React.useContext(MapContext)\r\n const countrySubdivisionsData = mapState.map.countrySubdivisionsData\r\n\r\n const getSubdivisionName = (code: string | undefined | null): string => {\r\n if (!code) return ''\r\n if (!countrySubdivisionsData) return code\r\n const exact = countrySubdivisionsData[code] as any\r\n if (exact) return (exact?.name ?? exact) || code\r\n const entry = Object.entries(countrySubdivisionsData).find(([k]) => k.endsWith(`-${code}`))\r\n if (entry) return ((entry[1] as any)?.name ?? entry[1]) || code\r\n return code\r\n }\r\n\r\n return [\r\n {\r\n accessorKey: 'name',\r\n header: ({ column }) => {\r\n const isSorted = column.getIsSorted()\r\n return (\r\n <Button\r\n variant=\"ghost\"\r\n onClick={column.getToggleSortingHandler()}\r\n className=\"hover:bg-transparent p-0\"\r\n >\r\n {t('name')}\r\n {isSorted == false && <ArrowUpDown />}\r\n {isSorted === 'desc' && <ArrowDown className=\"text-black\" />}\r\n {isSorted === 'asc' && <ArrowUp className=\"text-black\" />}\r\n </Button>\r\n )\r\n },\r\n enableSorting: true,\r\n cell: ({ getValue }) => {\r\n const value = getValue() as string\r\n return (\r\n <div className=\"max-w-md truncate\" title={value}>\r\n {value}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: 'max-w-md' } as ColumnMeta,\r\n },\r\n {\r\n accessorKey: 'countrySubdivision',\r\n header: t('countrySubdivision'),\r\n cell: ({ getValue }) => {\r\n const code = getValue() as string\r\n const name = getSubdivisionName(code)\r\n return (\r\n <div className=\"whitespace-nowrap\" title={code}>\r\n {name}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: '!hidden md:!table-cell whitespace-nowrap' } as ColumnMeta,\r\n },\r\n {\r\n accessorKey: 'municipality',\r\n header: t('municipality'),\r\n cell: ({ getValue }) => {\r\n const value = getValue() as string\r\n return (\r\n <div className=\"whitespace-nowrap\" title={value}>\r\n {value}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: '!hidden md:!table-cell whitespace-nowrap' } as ColumnMeta,\r\n },\r\n {\r\n id: 'source',\r\n accessorFn: (row: any) => row?.portal?.name ?? row?.publisher ?? '',\r\n header: t('source'),\r\n cell: ({ getValue }) => {\r\n const value = (getValue() as string) || ''\r\n return (\r\n <div className=\"whitespace-nowrap max-w-[240px] truncate\" title={value}>\r\n {value}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: '!hidden md:!table-cell whitespace-nowrap' } as ColumnMeta,\r\n },\r\n {\r\n accessorKey: 'type',\r\n header: t('type'),\r\n cell: ({ getValue }) => {\r\n const value = getValue() as string\r\n return (\r\n <div className=\"whitespace-nowrap\" title={value}>\r\n {value}\r\n </div>\r\n )\r\n },\r\n meta: { columnClasses: '!hidden md:!table-cell whitespace-nowrap' } as ColumnMeta,\r\n },\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 { Organization } from '../../../../types/dbTypes';
2
+ import type { Organization } from '../../../../types/dbTypes';
3
3
  type DatasetsProps = {
4
4
  isOpen: boolean;
5
5
  setIsOpenAction: (open: boolean) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAM,KAAK,MAAM,OAAO,CAAA;AA8C/B,OAAO,EAAgB,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAyDtE,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,aAAa,qBAulBrH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAM,KAAK,MAAM,OAAO,CAAA;AAiD/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAyD9D,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,aAAa,qBAulBrH"}
@@ -20,12 +20,9 @@ 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
- import { useTranslations } from "next-intl";
25
- import { usePermissions } from "../../../../store";
26
23
  import { usePathname } from "next/navigation";
27
- import { useOpenDataPortalsByCountrySubdivision, useOpenDataPortalsByGroup, useOpenDataPortalsByMunicipality } from "../../../../hooks/openDataPortals/openDataPortals";
28
- import { DatasetsContext, MenusContext, useMapContext } from "../../../../store";
24
+ import { useTranslations } from "next-intl";
25
+ import * as React from "react";
29
26
  import { Badge } from "../../../../components/ui/Badge";
30
27
  import {
31
28
  Breadcrumb,
@@ -46,22 +43,25 @@ import {
46
43
  DialogTitle
47
44
  } from "../../../../components/ui/Dialog";
48
45
  import { Input } from "../../../../components/ui/Input";
49
- import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../../../components/ui/Tabs";
50
46
  import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../../../../components/ui/Select";
47
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../../../components/ui/Tabs";
48
+ import { useOpenDataPortalsByCountrySubdivision, useOpenDataPortalsByGroup, useOpenDataPortalsByMunicipality } from "../../../../hooks/openDataPortals/openDataPortals";
49
+ import { DatasetsContext, MenusContext, useMapContext } from "../../../../store";
50
+ import { usePermissions } from "../../../../store";
51
+ import { DatasetGroup } from "../../../../types/dbTypes";
52
+ import { AddPortalDialog } from "./AddPortalDialog";
51
53
  import { useColumns } from "./data";
52
54
  import DatasetDetails from "./DatasetDetails";
53
- import { AddPortalDialog } from "./AddPortalDialog";
54
55
  import DatasetSkeleton from "./DatasetSkeleton";
55
56
  import Filters from "./Filters";
56
57
  import RowActions from "./RowActions";
57
- import { useDatasetsForPortals } from "./src/useDatasetsForPortals";
58
- import { handleFavouriteDataset } from "./utils";
58
+ import { builtinLiveDatasets } from "./src/builtinLiveDatasets";
59
59
  import { fetchLocalDatasets } from "./src/localDatasets";
60
60
  import { fetchOrganizationalMinioDatasets } from "./src/minioDatasets";
61
61
  import { buildPublishedCatalogMap, stampPublished } from "./src/publishedTiles";
62
- import { builtinLiveDatasets } from "./src/builtinLiveDatasets";
62
+ import { useDatasetsForPortals } from "./src/useDatasetsForPortals";
63
63
  import { useFastDatasetCache } from "./src/useFastDatasetCache";
64
- import { DatasetGroup } from "../../../../types/dbTypes";
64
+ import { handleFavouriteDataset } from "./utils";
65
65
  const ADMIN_ALLOWED_ORGS = [1, 2, 3, 4, 5, 6];
66
66
  const ORG_BY_PATH_PREFIX = {
67
67
  "/envirocentre": 1,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/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\nimport { usePathname } from 'next/navigation'\r\n\r\nimport type { Dataset } from '../../../../types/datasetTypes'\r\nimport { useOpenDataPortalsByCountrySubdivision, useOpenDataPortalsByGroup, useOpenDataPortalsByMunicipality } from '../../../../hooks/openDataPortals/openDataPortals'\r\nimport { DatasetsContext, MenusContext, useMapContext } from '../../../../store'\r\n// import { useAppConfigContext } from '../../../../store/AppConfig/context'\r\nimport { Badge } from '../../../../components/ui/Badge'\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbList,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n} from '../../../../components/ui/Breadcrumb'\r\nimport { Button } from '../../../../components/ui/Button'\r\nimport { DataTable } from '../../../../components/ui/DataTable'\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogHeader,\r\n DialogTitle,\r\n} from '../../../../components/ui/Dialog'\r\nimport { Input } from '../../../../components/ui/Input'\r\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '../../../../components/ui/Tabs'\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../../components/ui/Select'\r\n// Data\r\nimport { useColumns } from './data'\r\nimport DatasetDetails from './DatasetDetails'\r\n// Custom components\r\nimport { AddPortalDialog } from './AddPortalDialog'\r\nimport DatasetSkeleton from './DatasetSkeleton'\r\nimport Filters from './Filters'\r\nimport RowActions from './RowActions'\r\nimport { useDatasetsForPortals } from './src/useDatasetsForPortals'\r\nimport { handleFavouriteDataset } from './utils'\r\nimport { fetchLocalDatasets } from './src/localDatasets'\r\nimport { fetchOrganizationalMinioDatasets } from './src/minioDatasets'\r\nimport { buildPublishedCatalogMap, stampPublished, type PublishedCatalogEntry } from './src/publishedTiles'\r\nimport { builtinLiveDatasets } from './src/builtinLiveDatasets'\r\nimport { useFastDatasetCache } from './src/useFastDatasetCache'\r\nimport { DatasetGroup, Organization } from '../../../../types/dbTypes'\r\n\r\ntype OrgVisibility = {\r\n isAdmin: boolean\r\n currentOrgId: number\r\n allowedOrgIds: number[]\r\n}\r\n\r\nconst ADMIN_ALLOWED_ORGS = [1, 2, 3, 4, 5, 6]\r\nconst ORG_BY_PATH_PREFIX: Record<string, number> = {\r\n '/envirocentre': 1,\r\n '/dnd': 3,\r\n '/canada': 4,\r\n '/gac': 5,\r\n '/carleton': 6,\r\n}\r\n\r\nfunction normalizeOrgId(org?: number | string | null) {\r\n if (org === null || org === undefined) return undefined\r\n const parsed = typeof org === 'number' ? org : Number.parseInt(String(org), 10)\r\n return Number.isFinite(parsed) ? parsed : undefined\r\n}\r\n\r\nfunction getOrgVisibilityFromPath(pathname?: string | null): OrgVisibility {\r\n const normalizedPath = (pathname || '').toLowerCase()\r\n const firstSegment = normalizedPath.split('/').filter(Boolean)[0]\r\n const prefix = firstSegment ? `/${firstSegment}` : ''\r\n\r\n if (prefix === '/cdt') {\r\n return {\r\n isAdmin: true,\r\n currentOrgId: 1,\r\n allowedOrgIds: ADMIN_ALLOWED_ORGS,\r\n }\r\n }\r\n\r\n const currentOrgId = ORG_BY_PATH_PREFIX[prefix] ?? 2\r\n const allowedOrgIds = Array.from(new Set([2, currentOrgId]))\r\n\r\n return {\r\n isAdmin: false,\r\n currentOrgId,\r\n allowedOrgIds,\r\n }\r\n}\r\n\r\nfunction datasetVisibleForOrg(dataset: Dataset, visibility: OrgVisibility) {\r\n if (visibility.isAdmin) return true\r\n if (dataset.group !== DatasetGroup.Organizational) return true\r\n\r\n const orgId = normalizeOrgId(dataset.organization)\r\n if (orgId === undefined) return false\r\n\r\n return visibility.allowedOrgIds.includes(orgId)\r\n}\r\n\r\n\r\ntype DatasetsProps = {\r\n isOpen: boolean\r\n setIsOpenAction: (open: boolean) => void\r\n organization?: Organization\r\n minioBaseUrl?: string\r\n martinBaseUrl?: string\r\n}\r\n\r\nexport default function Datasets({ isOpen, setIsOpenAction, organization, minioBaseUrl, martinBaseUrl }: DatasetsProps) {\r\n // Translation\r\n const t = useTranslations('Datasets')\r\n\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n const datasetColumns = useColumns()\r\n\r\n // Contexts\r\n const { state: mapState } = useMapContext()\r\n const { currentLocation } = mapState.map\r\n const orgCountry = (organization?.country || '').toUpperCase()\r\n const org = organization\r\n // Fall back to org fixed location when currentLocation hasn't been set yet (e.g. before map hover)\r\n const municipality = currentLocation?.municipality ?? org?.municipality ?? null\r\n const countrySubdivision = currentLocation?.countrySubdivision ?? org?.countrySubdivision ?? null\r\n const { state: datasetState, dispatch: datasetDispatch } = React.useContext(DatasetsContext)\r\n const { addedDatasets } = datasetState.datasets\r\n const { state: menusState } = React.useContext(MenusContext)\r\n const { rowsPerPage } = menusState.menus\r\n\r\n const pathname = usePathname()\r\n const orgVisibility = React.useMemo(() => getOrgVisibilityFromPath(pathname), [pathname])\r\n\r\n // UI State\r\n const [view, setView] = React.useState<'table' | 'detail'>('table')\r\n const [selectedDataset, setSelectedDataset] = React.useState<Dataset | null>(null)\r\n const [favouriteDatasets, setFavouriteDatasets] = React.useState<Dataset[]>([])\r\n const [searchTerm, setSearchTerm] = React.useState('')\r\n const [appliedFilters, setAppliedFilters] = React.useState<{ countrySubdivisions: string[], municipalities: string[], types: string[], sources: string[] }>({ countrySubdivisions: [], municipalities: [], types: [], sources: [] })\r\n const [currentTab, setCurrentTab] = React.useState('all')\r\n const [isAddPortalOpen, setIsAddPortalOpen] = React.useState(false)\r\n // Open-data datasets already published to Martin tiles, keyed by\r\n // \"{portalId}:{datasetId}\". Lets the original portal entry (National/Applied/\r\n // All tabs) show as converted, not just the organizational-list copy.\r\n const [publishedCatalog, setPublishedCatalog] = React.useState<Map<string, PublishedCatalogEntry>>(new Map())\r\n const showMunicipalTab = React.useMemo(() => Boolean(municipality), [municipality])\r\n\r\n const { openDataPortals: municipalPortals } = useOpenDataPortalsByMunicipality(municipality)\r\n const { openDataPortals: subdivisionPortals } = useOpenDataPortalsByCountrySubdivision(countrySubdivision)\r\n const { openDataPortals: nationalPortals } = useOpenDataPortalsByGroup(DatasetGroup.National)\r\n\r\n // Belt-and-suspenders country guard: portal.country must match org, or be unset (legacy/global)\r\n const matchesOrgCountry = React.useCallback(\r\n (portalCountry: string | null | undefined) => {\r\n if (!orgCountry) return true // org country unknown — show everything\r\n if (!portalCountry) return true // portal has no country set — treat as global\r\n return portalCountry.toUpperCase() === orgCountry\r\n },\r\n [orgCountry],\r\n )\r\n\r\n const filteredMunicipalPortals = React.useMemo(() => {\r\n if (!Array.isArray(municipalPortals)) return []\r\n const filtered = municipalPortals.filter(p => matchesOrgCountry(p.country))\r\n return filtered\r\n }, [municipalPortals, matchesOrgCountry, municipality])\r\n const filteredSubdivisionPortals = React.useMemo(\r\n () => (Array.isArray(subdivisionPortals)\r\n ? subdivisionPortals.filter(p => p.municipality == null && matchesOrgCountry(p.country))\r\n : []),\r\n [subdivisionPortals, matchesOrgCountry],\r\n )\r\n const filteredNationalPortals = React.useMemo(() => {\r\n if (!Array.isArray(nationalPortals)) return []\r\n const filtered = nationalPortals.filter(p => matchesOrgCountry(p.country))\r\n return filtered\r\n }, [nationalPortals, orgCountry, matchesOrgCountry])\r\n\r\n const municipal = useDatasetsForPortals(filteredMunicipalPortals, { rowsPerPage })\r\n const subdivision = useDatasetsForPortals(filteredSubdivisionPortals, { rowsPerPage })\r\n const national = useDatasetsForPortals(filteredNationalPortals, { rowsPerPage })\r\n React.useEffect(() => {\r\n const loadOrganizationalDatasets = async () => {\r\n // First, refresh the published-catalog lookup (a fast /api/files read) so\r\n // converted open-data datasets flip promptly across every tab — ahead of\r\n // the slower Martin tile-sampling below. Non-fatal on failure.\r\n try {\r\n const filesRes = await fetch('/api/files')\r\n if (filesRes.ok) {\r\n const body = await filesRes.json()\r\n const rows = Array.isArray(body?.files) ? body.files : []\r\n setPublishedCatalog(buildPublishedCatalogMap(rows))\r\n }\r\n }\r\n catch (err) {\r\n console.warn('Failed to refresh published-catalog map:', err)\r\n }\r\n\r\n // Two parallel sources: Martin vector tiles (if configured) and MinIO-\r\n // backed GeoJSON uploads (the \"Add Dataset\" path). Errors from either\r\n // are isolated so a failure on one side does not block the other.\r\n const martinBaseUrlClean = (martinBaseUrl ?? '').replace(/\\/+$/, '')\r\n\r\n const martinPromise: Promise<Dataset[]> = martinBaseUrlClean\r\n ? (async () => {\r\n const datasetsUrl = martinBaseUrlClean.includes('/tiles/index.json')\r\n ? martinBaseUrlClean\r\n : `${martinBaseUrlClean}/tiles/index.json`\r\n\r\n const localPortal = {\r\n id: -1,\r\n name: 'Organizational Datasets',\r\n apiUrl: datasetsUrl,\r\n dataManagementSystem: 'Other' as const,\r\n countrySubdivision: null,\r\n municipality: null,\r\n group: 'Organizational' as const,\r\n }\r\n\r\n try {\r\n return await fetchLocalDatasets(localPortal as any)\r\n }\r\n catch (err) {\r\n console.error('Failed to load Martin organizational datasets:', err)\r\n return []\r\n }\r\n })()\r\n : Promise.resolve([])\r\n\r\n if (!martinBaseUrlClean) {\r\n console.warn('NEXT_PUBLIC_MARTIN_SERVER_URL not configured — skipping Martin pre-load')\r\n }\r\n\r\n // The MinIO key prefix is the *session* organization (set server-side\r\n // by the upload route), not orgVisibility.currentOrgId (which is\r\n // path-derived and hardcoded for admin routes like /cdt).\r\n const sessionOrgId = typeof org?.id === 'number'\r\n ? org.id\r\n : Number.parseInt(String(org?.id ?? ''), 10)\r\n\r\n // Martin must resolve first so MinIO suppression can check live catalog\r\n // membership — prevents \"file disappeared\" during the publish→restart gap.\r\n const martinDatasets = await martinPromise\r\n const publishedTilesInCatalog = new Set<string>(\r\n martinDatasets.map(d => typeof d.id === 'string' ? d.id : '').filter(Boolean),\r\n )\r\n\r\n const minioDatasets: Dataset[] = Number.isFinite(sessionOrgId)\r\n ? await fetchOrganizationalMinioDatasets(sessionOrgId, publishedTilesInCatalog, minioBaseUrl).catch((err) => {\r\n console.error('Failed to load MinIO organizational datasets:', err)\r\n return []\r\n })\r\n : []\r\n\r\n const combined = [...martinDatasets, ...minioDatasets]\r\n const visibleOrgDatasets = combined.filter(ds => datasetVisibleForOrg(ds, orgVisibility))\r\n\r\n if (visibleOrgDatasets.length === 0) {\r\n console.warn('No organizational datasets found')\r\n }\r\n datasetDispatch({\r\n type: 'SET_DATASETS',\r\n payload: { datasets: visibleOrgDatasets },\r\n })\r\n }\r\n\r\n loadOrganizationalDatasets()\r\n }, [datasetDispatch, orgVisibility, org?.id, datasetState.datasets.orgRefreshNonce])\r\n\r\n // Stamp each portal list with published-tile identity so a converted open-data\r\n // dataset shows as converted on its own tab (National/Subdivision/Municipal),\r\n // not only on the organizational tab. No-op for unpublished datasets.\r\n const nationalDatasets = React.useMemo(() => stampPublished(national.datasets, publishedCatalog), [national.datasets, publishedCatalog])\r\n const subdivisionDatasets = React.useMemo(() => stampPublished(subdivision.datasets, publishedCatalog), [subdivision.datasets, publishedCatalog])\r\n const municipalDatasets = React.useMemo(() => stampPublished(municipal.datasets, publishedCatalog), [municipal.datasets, publishedCatalog])\r\n\r\n const isLoadingNational = national.isLoading && nationalDatasets.length === 0\r\n const isLoadingSubdivision = subdivision.isLoading && subdivisionDatasets.length === 0\r\n const isLoadingMunicipal = municipal.isLoading && municipalDatasets.length === 0\r\n\r\n const datasetsError = React.useMemo(() => {\r\n if (currentTab === 'municipal' && municipal.isError && municipalDatasets.length === 0) return t('failedFetchError')\r\n if (currentTab === 'countrySubdivision' && subdivision.isError && subdivisionDatasets.length === 0) return t('failedFetchError')\r\n if (currentTab === 'national' && national.isError && nationalDatasets.length === 0) return t('failedFetchError')\r\n return null\r\n }, [currentTab, municipal.isError, municipalDatasets.length, subdivision.isError, subdivisionDatasets.length, national.isError, nationalDatasets.length, t])\r\n\r\n const allDatasets = React.useMemo(() => {\r\n const unfiltered = [\r\n ...builtinLiveDatasets, // curated live feeds (e.g. GeoMet weather radar) → Live Data tab\r\n ...nationalDatasets,\r\n ...subdivisionDatasets,\r\n ...municipalDatasets,\r\n ...addedDatasets,\r\n ...(datasetState.datasets.datasets || []),\r\n ]\r\n\r\n const filtered = unfiltered.filter(ds => datasetVisibleForOrg(ds, orgVisibility))\r\n\r\n // Also stamp here so the addedDatasets snapshot (applied at add-time, before\r\n // conversion) and any org-list entries pick up published identity on the\r\n // Applied/All tabs. Already-stamped portal entries are unchanged.\r\n return stampPublished(filtered, publishedCatalog)\r\n }, [nationalDatasets, subdivisionDatasets, municipalDatasets, datasetState.datasets.datasets, addedDatasets, orgVisibility, publishedCatalog])\r\n\r\n const currentTabLoading = React.useMemo(() => {\r\n switch (currentTab) {\r\n case 'national':\r\n return isLoadingNational\r\n case 'countrySubdivision':\r\n return isLoadingSubdivision\r\n case 'municipal':\r\n return isLoadingMunicipal\r\n case 'all':\r\n // Show loading for \"all\" if any datasets are loading and we have no data yet\r\n return (isLoadingNational || isLoadingSubdivision || isLoadingMunicipal) && \r\n allDatasets.length === 0\r\n case 'organizational':\r\n // Show loading for \"organizational\" if any datasets are loading and we have no organizational data yet\r\n return (isLoadingNational || isLoadingSubdivision || isLoadingMunicipal) && \r\n allDatasets.filter(ds => ds.group === 'Organizational').length === 0\r\n default:\r\n return false\r\n }\r\n }, [currentTab, isLoadingNational, isLoadingSubdivision, isLoadingMunicipal, allDatasets])\r\n\r\n React.useEffect(() => {\r\n if (!showMunicipalTab && currentTab === 'municipal') {\r\n setCurrentTab('all')\r\n }\r\n }, [showMunicipalTab, currentTab])\r\n\r\n // Memoized datasets for current tab\r\n const currentTabDatasets = React.useMemo(() => {\r\n switch (currentTab) {\r\n case 'applied':\r\n return allDatasets.filter(ds => addedDatasets.some(d => d.name === ds.name))\r\n case 'favourites':\r\n return allDatasets.filter(ds => favouriteDatasets.some(fav => fav.name === ds.name))\r\n case 'organizational':\r\n return allDatasets.filter(ds => ds.group === 'Organizational')\r\n case 'liveData':\r\n return allDatasets.filter(ds => ds.portal?.live === true)\r\n case 'national':\r\n return nationalDatasets\r\n case 'countrySubdivision':\r\n return subdivisionDatasets\r\n case 'municipal':\r\n return municipalDatasets\r\n case 'all':\r\n default:\r\n return allDatasets\r\n }\r\n }, [currentTab, allDatasets, addedDatasets, favouriteDatasets, nationalDatasets, subdivisionDatasets, municipalDatasets])\r\n\r\n // Memoized filtered data\r\n const filteredData = React.useMemo(() => {\r\n return currentTabDatasets.filter((dataset) => {\r\n // Search filter\r\n const matchesSearch = Object.values(dataset).some(value =>\r\n String(value).toLowerCase().includes(searchTerm.toLowerCase()),\r\n )\r\n if (!matchesSearch)\r\n return false\r\n\r\n // Country subdivision filter\r\n const matchesSubdivision\r\n = appliedFilters.countrySubdivisions.length === 0\r\n || !dataset.countrySubdivision\r\n || appliedFilters.countrySubdivisions.includes(dataset.countrySubdivision)\r\n\r\n // Municipality filter\r\n const matchesMunicipality\r\n = appliedFilters.municipalities.length === 0\r\n || !dataset.municipality\r\n || appliedFilters.municipalities.includes(dataset.municipality)\r\n\r\n // Type filter\r\n const matchesType\r\n = appliedFilters.types.length === 0\r\n || appliedFilters.types.includes(dataset.type)\r\n\r\n // Source filter (dataset.portal?.name, falling back to publisher)\r\n const datasetSource = dataset.portal?.name ?? dataset.publisher\r\n const matchesSource\r\n = appliedFilters.sources.length === 0\r\n || (datasetSource ? appliedFilters.sources.includes(datasetSource) : false)\r\n\r\n return matchesSubdivision && matchesMunicipality && matchesType && matchesSource\r\n })\r\n }, [currentTabDatasets, searchTerm, appliedFilters])\r\n\r\n const sortedFilteredData = React.useMemo(() => {\r\n // Remove duplicates by name\r\n const uniqueByName = new Map<string, Dataset>()\r\n for (const ds of filteredData) {\r\n const name = ds.name?.toLowerCase() || ''\r\n if (!uniqueByName.has(name)) {\r\n uniqueByName.set(name, ds)\r\n }\r\n }\r\n\r\n // Filter out unwanted names/types\r\n const filtered = [...uniqueByName.values()].filter((ds) => {\r\n const name = ds.name?.toLowerCase() || ''\r\n const type = ds.type?.toLowerCase() || ''\r\n return !name.includes('basemap') && !type.includes('geocoding')\r\n })\r\n\r\n // HARD CODE BLOCK LIST\r\n const blocklisted = (ds: Dataset) => {\r\n const url = (ds.url || '').toLowerCase()\r\n const name = (ds.name || '').toLowerCase()\r\n return (\r\n url.includes('/2021_statistics_canada_boundaries/featureserver')\r\n || name.includes('2021 statistics canada boundaries')\r\n || url.includes('/limites_du_recensement_de_statistique_canada_(2021)/featureserver')\r\n || name.includes('limites du recensement de statistique canada (2021)')\r\n )\r\n }\r\n\r\n const safe = filtered.filter(ds => !blocklisted(ds))\r\n\r\n // Sort by name\r\n return safe.sort((a, b) =>\r\n (a.name || '').localeCompare(b.name || ''),\r\n )\r\n }, [filteredData])\r\n\r\n const { prefetch } = useFastDatasetCache()\r\n\r\n React.useEffect(() => {\r\n if (isOpen && sortedFilteredData.length > 0) {\r\n const datasetsToPreload = sortedFilteredData.slice(0, 10)\r\n datasetsToPreload.forEach((dataset, index) => {\r\n setTimeout(() => {\r\n prefetch(dataset)\r\n }, index * 200)\r\n })\r\n }\r\n }, [isOpen, sortedFilteredData, prefetch])\r\n\r\n // Handlers\r\n const handleTabChange = React.useCallback((value: string) => setCurrentTab(value), [])\r\n const handleRowClick = React.useCallback((dataset: Dataset) => {\r\n setSelectedDataset(dataset)\r\n setView('detail')\r\n }, [])\r\n const handleRowHover = React.useCallback((dataset: Dataset) => {\r\n prefetch(dataset)\r\n \r\n const currentIndex = sortedFilteredData.indexOf(dataset)\r\n if (currentIndex >= 0 && currentIndex < sortedFilteredData.length - 2) {\r\n setTimeout(() => {\r\n if (sortedFilteredData[currentIndex + 1]) {\r\n prefetch(sortedFilteredData[currentIndex + 1])\r\n }\r\n }, 100)\r\n }\r\n }, [prefetch, sortedFilteredData])\r\n const handleBackToTable = React.useCallback(() => {\r\n setView('table')\r\n setSelectedDataset(null)\r\n }, [])\r\n const handleAddDatasetToMap = React.useCallback(() => {\r\n if (selectedDataset) {\r\n datasetDispatch({ type: 'ADD_DATASET_TO_MAP', payload: { dataset: selectedDataset } })\r\n }\r\n }, [selectedDataset, datasetDispatch])\r\n const handleRemoveDatasetFromMap = React.useCallback(() => {\r\n if (selectedDataset) {\r\n datasetDispatch({ type: 'REMOVE_DATASET_FROM_MAP', payload: { datasetId: selectedDataset.id } })\r\n }\r\n }, [selectedDataset, datasetDispatch])\r\n const handleFavourite = handleFavouriteDataset(selectedDataset, favouriteDatasets, setFavouriteDatasets)\r\n\r\n const handleAddDataset = () => {\r\n // Logic to add a new dataset\r\n }\r\n\r\n // UI\r\n return (\r\n <Dialog open={isOpen} onOpenChange={setIsOpenAction}>\r\n <DialogContent className=\"h-screen sm:h-[90vh] sm:max-h-[90vh] w-full max-w-full sm:w-[88vw] sm:max-w-[88vw] p-0 gap-0 overflow-hidden flex flex-col\">\r\n {view === 'table' ? (\r\n <>\r\n <DialogHeader className=\"bg-background z-50 sticky top-0 p-4 sm:p-6 flex flex-row flex-wrap justify-between items-end gap-2 text-left\">\r\n <div className=\"flex flex-col justify-end p-0\">\r\n <DialogTitle className=\"text-2xl\">{t('dialogTitle')}</DialogTitle>\r\n <DialogDescription className=\"text-sm\">\r\n {t('dialogDescription')}\r\n </DialogDescription>\r\n </div>\r\n <div className=\"flex flex-row flex-wrap justify-between items-center w-full sm:w-auto\">\r\n <div className=\"flex flex-wrap gap-2 font-medium w-full sm:w-auto\">\r\n <div className=\"relative flex-1 min-w-[140px] sm:flex-none\">\r\n <LR.Search className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n <Input\r\n placeholder=\"Search\"\r\n className=\"pl-8 w-full sm:w-[250px]\"\r\n value={searchTerm}\r\n onChange={e => setSearchTerm(e.target.value)}\r\n disabled={!ability.can('read', 'File')}\r\n />\r\n </div>\r\n <div className=\"flex gap-2\">\r\n <Filters\r\n datasets={currentTabDatasets}\r\n appliedFilters={appliedFilters}\r\n onFiltersChange={setAppliedFilters}\r\n />\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={() => setIsAddPortalOpen(true)}\r\n title=\"Register a new open data portal\"\r\n >\r\n <LR.Plus className=\"h-4 w-4 mr-1\" />\r\n Add Portal\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n <DialogClose className=\"absolute right-2 top-2 h-5 w-5 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 <LR.X className=\"!h-4 !w-4\" />\r\n </DialogClose>\r\n </DialogHeader>\r\n <div className=\"relative flex flex-col flex-1 min-h-0\">\r\n <Tabs value={currentTab} className=\"flex flex-col gap-0 h-full\" onValueChange={handleTabChange}>\r\n {/* Mobile: TabsList below doesn't wrap and has no room to render below md,\r\n so it's replaced with a Select driving the same currentTab state. */}\r\n <div className=\"md:hidden px-3 pb-2 flex-shrink-0\">\r\n <Select value={currentTab} onValueChange={handleTabChange}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n <SelectItem value=\"applied\">{t('appliedTab')} ({addedDatasets.length})</SelectItem>\r\n <SelectItem value=\"favourites\">{t('favoritesTab')}</SelectItem>\r\n <SelectItem value=\"organizational\">{t('organizationalTab')}</SelectItem>\r\n <SelectItem value=\"all\">{t('allDataTab')}</SelectItem>\r\n <SelectItem value=\"national\">{t('nationalTab')}</SelectItem>\r\n <SelectItem value=\"countrySubdivision\">{t('countrySubdivisionTab')}</SelectItem>\r\n {showMunicipalTab && (\r\n <SelectItem value=\"municipal\">{t('municipalTab')}</SelectItem>\r\n )}\r\n <SelectItem value=\"liveData\">{t('liveDataTab')}</SelectItem>\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n <div className=\"hidden md:!flex justify-between px-3 flex-shrink-0\">\r\n {' '}\r\n {/* Prevent tabs from shrinking */}\r\n <TabsList className=\"pointer-events-auto sticky flex z-40 top-[100px] bg-transparent\">\r\n <TabsTrigger className=\"hover:text-foreground gap-2\" value=\"applied\">\r\n <Badge variant=\"outline\">{addedDatasets.length}</Badge>\r\n {t('appliedTab')}\r\n </TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground gap-2\" value=\"favourites\">\r\n {t('favoritesTab')}\r\n </TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"organizational\">{t('organizationalTab')}</TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"all\">{t('allDataTab')}</TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"national\">{t('nationalTab')}</TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"countrySubdivision\">{t('countrySubdivisionTab')}</TabsTrigger>\r\n {showMunicipalTab && (\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"municipal\">{t('municipalTab')}</TabsTrigger>\r\n )}\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"liveData\">{t('liveDataTab')}</TabsTrigger>\r\n </TabsList>\r\n </div>\r\n <TabsContent\r\n value={currentTab}\r\n className=\"flex-1 pointer-events-auto mt-0 min-h-0\" // min-h-0 is crucial for flex children\r\n >\r\n {currentTabLoading ? (\r\n <DatasetSkeleton />\r\n ) : (datasetsError ? (\r\n <div className=\"flex flex-col justify-center items-center h-32 text-muted-foreground\">\r\n <LR.AlertCircle className=\"h-6 w-6 mb-2\" />\r\n <span>{datasetsError}</span>\r\n <Button variant=\"outline\" size=\"sm\" onClick={() => window.location.reload()} className=\"mt-2\">\r\n <LR.RefreshCw className=\"h-4 w-4 mr-2\" />\r\n {t('refreshButton')}\r\n </Button>\r\n </div>\r\n ) : (\r\n <DataTable\r\n showPagination={true}\r\n columns={datasetColumns}\r\n data={sortedFilteredData}\r\n tab={currentTab}\r\n onRowClick={handleRowClick}\r\n onRowHover={handleRowHover}\r\n className=\"rounded-none w-auto h-full\" \r\n paginationClasses=\"bg-background z-20 w-full border-t\" \r\n isLoading={currentTabLoading}\r\n leadingCell={props => (\r\n <RowActions\r\n {...props}\r\n favouriteDatasets={favouriteDatasets}\r\n setFavouriteDatasets={setFavouriteDatasets}\r\n martinBaseUrl={martinBaseUrl}\r\n />\r\n )}\r\n trailingCell={({ row, index }) => (\r\n <div>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"pointer-events-none\"\r\n >\r\n <LR.ChevronRight />\r\n </Button>\r\n </div>\r\n )}\r\n />\r\n ))}\r\n </TabsContent>\r\n </Tabs>\r\n </div>\r\n </>\r\n ) : (\r\n // Detail View Content\r\n <>\r\n <DialogHeader className=\"px-6 pt-6\">\r\n <div>\r\n <Breadcrumb>\r\n <BreadcrumbList>\r\n <BreadcrumbItem>\r\n <BreadcrumbLink\r\n href=\"#\"\r\n onClick={() => {\r\n handleBackToTable()\r\n setCurrentTab('all')\r\n }}\r\n >\r\n {t('breadcrumbTitle')}\r\n </BreadcrumbLink>\r\n </BreadcrumbItem>\r\n <BreadcrumbSeparator />\r\n <BreadcrumbItem>\r\n <BreadcrumbLink\r\n href=\"#\"\r\n onClick={() => {\r\n setCurrentTab(currentTab)\r\n handleBackToTable()\r\n }}\r\n >\r\n {currentTab.charAt(0).toUpperCase() + currentTab.slice(1)}\r\n </BreadcrumbLink>\r\n </BreadcrumbItem>\r\n <BreadcrumbSeparator />\r\n <BreadcrumbItem>\r\n <BreadcrumbPage>{selectedDataset?.name}</BreadcrumbPage>\r\n </BreadcrumbItem>\r\n </BreadcrumbList>\r\n </Breadcrumb>\r\n </div>\r\n <div className=\"flex flex-col sm:flex-row sm:justify-between gap-3\">\r\n <div className=\"flex items-center min-w-0 gap-1\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={`shrink-0 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent ${selectedDataset && favouriteDatasets.includes(selectedDataset) ? 'opacity-100' : ''}`}\r\n onClick={handleFavourite}\r\n >\r\n <LR.Star\r\n className=\"!h-5 !w-5\"\r\n size={24}\r\n color={`${selectedDataset && favouriteDatasets.includes(selectedDataset) ? 'hsl(var(--chart-5))' : 'black'} `}\r\n fill={`${selectedDataset && favouriteDatasets.includes(selectedDataset) ? 'hsl(var(--chart-5))' : 'none'} `}\r\n />\r\n </Button>\r\n <DialogTitle className=\"truncate\">{selectedDataset?.name}</DialogTitle>\r\n </div>\r\n <div className=\"flex flex-wrap gap-2 shrink-0\">\r\n <Button\r\n variant=\"secondary\"\r\n onClick={handleBackToTable}\r\n >\r\n <LR.ArrowLeft />\r\n {t('backToDataButton')}\r\n </Button>\r\n {selectedDataset && addedDatasets.some(d => d.name === selectedDataset.name)\r\n ? (\r\n <Button onClick={handleRemoveDatasetFromMap} disabled={!ability.can('read', 'File')}>\r\n <LR.Minus />\r\n {t('removeButton')}\r\n </Button>\r\n )\r\n : (\r\n <Button onClick={handleAddDatasetToMap} disabled={!ability.can('read', 'File')}>\r\n <LR.Plus />\r\n {t('applyButton')}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </DialogHeader>\r\n <DatasetDetails selectedDataset={selectedDataset} />\r\n </>\r\n )}\r\n </DialogContent>\r\n <AddPortalDialog open={isAddPortalOpen} onOpenChange={setIsAddPortalOpen} />\r\n </Dialog>\r\n )\r\n}\r\n"],"mappings":"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","names":["_a","_b"]}
1
+ {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/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 { usePathname } from 'next/navigation'\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from 'react'\r\n\r\n\r\n// import { useAppConfigContext } from '../../../../store/AppConfig/context'\r\nimport { Badge } from '../../../../components/ui/Badge'\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbList,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n} from '../../../../components/ui/Breadcrumb'\r\nimport { Button } from '../../../../components/ui/Button'\r\nimport { DataTable } from '../../../../components/ui/DataTable'\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogHeader,\r\n DialogTitle,\r\n} from '../../../../components/ui/Dialog'\r\nimport { Input } from '../../../../components/ui/Input'\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../../components/ui/Select'\r\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '../../../../components/ui/Tabs'\r\nimport { useOpenDataPortalsByCountrySubdivision, useOpenDataPortalsByGroup, useOpenDataPortalsByMunicipality } from '../../../../hooks/openDataPortals/openDataPortals'\r\nimport { DatasetsContext, MenusContext, useMapContext } from '../../../../store'\r\nimport { usePermissions } from '../../../../store'\r\n\r\n// Data\r\nimport { DatasetGroup } from '../../../../types/dbTypes'\r\n\r\nimport { AddPortalDialog } from './AddPortalDialog'\r\nimport { useColumns } from './data'\r\nimport DatasetDetails from './DatasetDetails'\r\n// Custom components\r\nimport DatasetSkeleton from './DatasetSkeleton'\r\nimport Filters from './Filters'\r\nimport RowActions from './RowActions'\r\nimport { builtinLiveDatasets } from './src/builtinLiveDatasets'\r\nimport { fetchLocalDatasets } from './src/localDatasets'\r\nimport { fetchOrganizationalMinioDatasets } from './src/minioDatasets'\r\nimport { buildPublishedCatalogMap, stampPublished, type PublishedCatalogEntry } from './src/publishedTiles'\r\nimport { useDatasetsForPortals } from './src/useDatasetsForPortals'\r\nimport { useFastDatasetCache } from './src/useFastDatasetCache'\r\nimport { handleFavouriteDataset } from './utils'\r\n\r\nimport type { Dataset } from '../../../../types/datasetTypes'\r\nimport type { Organization } from '../../../../types/dbTypes';\r\n\r\ntype OrgVisibility = {\r\n isAdmin: boolean\r\n currentOrgId: number\r\n allowedOrgIds: number[]\r\n}\r\n\r\nconst ADMIN_ALLOWED_ORGS = [1, 2, 3, 4, 5, 6]\r\nconst ORG_BY_PATH_PREFIX: Record<string, number> = {\r\n '/envirocentre': 1,\r\n '/dnd': 3,\r\n '/canada': 4,\r\n '/gac': 5,\r\n '/carleton': 6,\r\n}\r\n\r\nfunction normalizeOrgId(org?: number | string | null) {\r\n if (org === null || org === undefined) return undefined\r\n const parsed = typeof org === 'number' ? org : Number.parseInt(String(org), 10)\r\n return Number.isFinite(parsed) ? parsed : undefined\r\n}\r\n\r\nfunction getOrgVisibilityFromPath(pathname?: string | null): OrgVisibility {\r\n const normalizedPath = (pathname || '').toLowerCase()\r\n const firstSegment = normalizedPath.split('/').filter(Boolean)[0]\r\n const prefix = firstSegment ? `/${firstSegment}` : ''\r\n\r\n if (prefix === '/cdt') {\r\n return {\r\n isAdmin: true,\r\n currentOrgId: 1,\r\n allowedOrgIds: ADMIN_ALLOWED_ORGS,\r\n }\r\n }\r\n\r\n const currentOrgId = ORG_BY_PATH_PREFIX[prefix] ?? 2\r\n const allowedOrgIds = Array.from(new Set([2, currentOrgId]))\r\n\r\n return {\r\n isAdmin: false,\r\n currentOrgId,\r\n allowedOrgIds,\r\n }\r\n}\r\n\r\nfunction datasetVisibleForOrg(dataset: Dataset, visibility: OrgVisibility) {\r\n if (visibility.isAdmin) return true\r\n if (dataset.group !== DatasetGroup.Organizational) return true\r\n\r\n const orgId = normalizeOrgId(dataset.organization)\r\n if (orgId === undefined) return false\r\n\r\n return visibility.allowedOrgIds.includes(orgId)\r\n}\r\n\r\n\r\ntype DatasetsProps = {\r\n isOpen: boolean\r\n setIsOpenAction: (open: boolean) => void\r\n organization?: Organization\r\n minioBaseUrl?: string\r\n martinBaseUrl?: string\r\n}\r\n\r\nexport default function Datasets({ isOpen, setIsOpenAction, organization, minioBaseUrl, martinBaseUrl }: DatasetsProps) {\r\n // Translation\r\n const t = useTranslations('Datasets')\r\n\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n const datasetColumns = useColumns()\r\n\r\n // Contexts\r\n const { state: mapState } = useMapContext()\r\n const { currentLocation } = mapState.map\r\n const orgCountry = (organization?.country || '').toUpperCase()\r\n const org = organization\r\n // Fall back to org fixed location when currentLocation hasn't been set yet (e.g. before map hover)\r\n const municipality = currentLocation?.municipality ?? org?.municipality ?? null\r\n const countrySubdivision = currentLocation?.countrySubdivision ?? org?.countrySubdivision ?? null\r\n const { state: datasetState, dispatch: datasetDispatch } = React.useContext(DatasetsContext)\r\n const { addedDatasets } = datasetState.datasets\r\n const { state: menusState } = React.useContext(MenusContext)\r\n const { rowsPerPage } = menusState.menus\r\n\r\n const pathname = usePathname()\r\n const orgVisibility = React.useMemo(() => getOrgVisibilityFromPath(pathname), [pathname])\r\n\r\n // UI State\r\n const [view, setView] = React.useState<'table' | 'detail'>('table')\r\n const [selectedDataset, setSelectedDataset] = React.useState<Dataset | null>(null)\r\n const [favouriteDatasets, setFavouriteDatasets] = React.useState<Dataset[]>([])\r\n const [searchTerm, setSearchTerm] = React.useState('')\r\n const [appliedFilters, setAppliedFilters] = React.useState<{ countrySubdivisions: string[], municipalities: string[], types: string[], sources: string[] }>({ countrySubdivisions: [], municipalities: [], types: [], sources: [] })\r\n const [currentTab, setCurrentTab] = React.useState('all')\r\n const [isAddPortalOpen, setIsAddPortalOpen] = React.useState(false)\r\n // Open-data datasets already published to Martin tiles, keyed by\r\n // \"{portalId}:{datasetId}\". Lets the original portal entry (National/Applied/\r\n // All tabs) show as converted, not just the organizational-list copy.\r\n const [publishedCatalog, setPublishedCatalog] = React.useState<Map<string, PublishedCatalogEntry>>(new Map())\r\n const showMunicipalTab = React.useMemo(() => Boolean(municipality), [municipality])\r\n\r\n const { openDataPortals: municipalPortals } = useOpenDataPortalsByMunicipality(municipality)\r\n const { openDataPortals: subdivisionPortals } = useOpenDataPortalsByCountrySubdivision(countrySubdivision)\r\n const { openDataPortals: nationalPortals } = useOpenDataPortalsByGroup(DatasetGroup.National)\r\n\r\n // Belt-and-suspenders country guard: portal.country must match org, or be unset (legacy/global)\r\n const matchesOrgCountry = React.useCallback(\r\n (portalCountry: string | null | undefined) => {\r\n if (!orgCountry) return true // org country unknown — show everything\r\n if (!portalCountry) return true // portal has no country set — treat as global\r\n return portalCountry.toUpperCase() === orgCountry\r\n },\r\n [orgCountry],\r\n )\r\n\r\n const filteredMunicipalPortals = React.useMemo(() => {\r\n if (!Array.isArray(municipalPortals)) return []\r\n const filtered = municipalPortals.filter(p => matchesOrgCountry(p.country))\r\n return filtered\r\n }, [municipalPortals, matchesOrgCountry, municipality])\r\n const filteredSubdivisionPortals = React.useMemo(\r\n () => (Array.isArray(subdivisionPortals)\r\n ? subdivisionPortals.filter(p => p.municipality == null && matchesOrgCountry(p.country))\r\n : []),\r\n [subdivisionPortals, matchesOrgCountry],\r\n )\r\n const filteredNationalPortals = React.useMemo(() => {\r\n if (!Array.isArray(nationalPortals)) return []\r\n const filtered = nationalPortals.filter(p => matchesOrgCountry(p.country))\r\n return filtered\r\n }, [nationalPortals, orgCountry, matchesOrgCountry])\r\n\r\n const municipal = useDatasetsForPortals(filteredMunicipalPortals, { rowsPerPage })\r\n const subdivision = useDatasetsForPortals(filteredSubdivisionPortals, { rowsPerPage })\r\n const national = useDatasetsForPortals(filteredNationalPortals, { rowsPerPage })\r\n React.useEffect(() => {\r\n const loadOrganizationalDatasets = async () => {\r\n // First, refresh the published-catalog lookup (a fast /api/files read) so\r\n // converted open-data datasets flip promptly across every tab — ahead of\r\n // the slower Martin tile-sampling below. Non-fatal on failure.\r\n try {\r\n const filesRes = await fetch('/api/files')\r\n if (filesRes.ok) {\r\n const body = await filesRes.json()\r\n const rows = Array.isArray(body?.files) ? body.files : []\r\n setPublishedCatalog(buildPublishedCatalogMap(rows))\r\n }\r\n }\r\n catch (err) {\r\n console.warn('Failed to refresh published-catalog map:', err)\r\n }\r\n\r\n // Two parallel sources: Martin vector tiles (if configured) and MinIO-\r\n // backed GeoJSON uploads (the \"Add Dataset\" path). Errors from either\r\n // are isolated so a failure on one side does not block the other.\r\n const martinBaseUrlClean = (martinBaseUrl ?? '').replace(/\\/+$/, '')\r\n\r\n const martinPromise: Promise<Dataset[]> = martinBaseUrlClean\r\n ? (async () => {\r\n const datasetsUrl = martinBaseUrlClean.includes('/tiles/index.json')\r\n ? martinBaseUrlClean\r\n : `${martinBaseUrlClean}/tiles/index.json`\r\n\r\n const localPortal = {\r\n id: -1,\r\n name: 'Organizational Datasets',\r\n apiUrl: datasetsUrl,\r\n dataManagementSystem: 'Other' as const,\r\n countrySubdivision: null,\r\n municipality: null,\r\n group: 'Organizational' as const,\r\n }\r\n\r\n try {\r\n return await fetchLocalDatasets(localPortal as any)\r\n }\r\n catch (err) {\r\n console.error('Failed to load Martin organizational datasets:', err)\r\n return []\r\n }\r\n })()\r\n : Promise.resolve([])\r\n\r\n if (!martinBaseUrlClean) {\r\n console.warn('NEXT_PUBLIC_MARTIN_SERVER_URL not configured — skipping Martin pre-load')\r\n }\r\n\r\n // The MinIO key prefix is the *session* organization (set server-side\r\n // by the upload route), not orgVisibility.currentOrgId (which is\r\n // path-derived and hardcoded for admin routes like /cdt).\r\n const sessionOrgId = typeof org?.id === 'number'\r\n ? org.id\r\n : Number.parseInt(String(org?.id ?? ''), 10)\r\n\r\n // Martin must resolve first so MinIO suppression can check live catalog\r\n // membership — prevents \"file disappeared\" during the publish→restart gap.\r\n const martinDatasets = await martinPromise\r\n const publishedTilesInCatalog = new Set<string>(\r\n martinDatasets.map(d => typeof d.id === 'string' ? d.id : '').filter(Boolean),\r\n )\r\n\r\n const minioDatasets: Dataset[] = Number.isFinite(sessionOrgId)\r\n ? await fetchOrganizationalMinioDatasets(sessionOrgId, publishedTilesInCatalog, minioBaseUrl).catch((err) => {\r\n console.error('Failed to load MinIO organizational datasets:', err)\r\n return []\r\n })\r\n : []\r\n\r\n const combined = [...martinDatasets, ...minioDatasets]\r\n const visibleOrgDatasets = combined.filter(ds => datasetVisibleForOrg(ds, orgVisibility))\r\n\r\n if (visibleOrgDatasets.length === 0) {\r\n console.warn('No organizational datasets found')\r\n }\r\n datasetDispatch({\r\n type: 'SET_DATASETS',\r\n payload: { datasets: visibleOrgDatasets },\r\n })\r\n }\r\n\r\n loadOrganizationalDatasets()\r\n }, [datasetDispatch, orgVisibility, org?.id, datasetState.datasets.orgRefreshNonce])\r\n\r\n // Stamp each portal list with published-tile identity so a converted open-data\r\n // dataset shows as converted on its own tab (National/Subdivision/Municipal),\r\n // not only on the organizational tab. No-op for unpublished datasets.\r\n const nationalDatasets = React.useMemo(() => stampPublished(national.datasets, publishedCatalog), [national.datasets, publishedCatalog])\r\n const subdivisionDatasets = React.useMemo(() => stampPublished(subdivision.datasets, publishedCatalog), [subdivision.datasets, publishedCatalog])\r\n const municipalDatasets = React.useMemo(() => stampPublished(municipal.datasets, publishedCatalog), [municipal.datasets, publishedCatalog])\r\n\r\n const isLoadingNational = national.isLoading && nationalDatasets.length === 0\r\n const isLoadingSubdivision = subdivision.isLoading && subdivisionDatasets.length === 0\r\n const isLoadingMunicipal = municipal.isLoading && municipalDatasets.length === 0\r\n\r\n const datasetsError = React.useMemo(() => {\r\n if (currentTab === 'municipal' && municipal.isError && municipalDatasets.length === 0) return t('failedFetchError')\r\n if (currentTab === 'countrySubdivision' && subdivision.isError && subdivisionDatasets.length === 0) return t('failedFetchError')\r\n if (currentTab === 'national' && national.isError && nationalDatasets.length === 0) return t('failedFetchError')\r\n return null\r\n }, [currentTab, municipal.isError, municipalDatasets.length, subdivision.isError, subdivisionDatasets.length, national.isError, nationalDatasets.length, t])\r\n\r\n const allDatasets = React.useMemo(() => {\r\n const unfiltered = [\r\n ...builtinLiveDatasets, // curated live feeds (e.g. GeoMet weather radar) → Live Data tab\r\n ...nationalDatasets,\r\n ...subdivisionDatasets,\r\n ...municipalDatasets,\r\n ...addedDatasets,\r\n ...(datasetState.datasets.datasets || []),\r\n ]\r\n\r\n const filtered = unfiltered.filter(ds => datasetVisibleForOrg(ds, orgVisibility))\r\n\r\n // Also stamp here so the addedDatasets snapshot (applied at add-time, before\r\n // conversion) and any org-list entries pick up published identity on the\r\n // Applied/All tabs. Already-stamped portal entries are unchanged.\r\n return stampPublished(filtered, publishedCatalog)\r\n }, [nationalDatasets, subdivisionDatasets, municipalDatasets, datasetState.datasets.datasets, addedDatasets, orgVisibility, publishedCatalog])\r\n\r\n const currentTabLoading = React.useMemo(() => {\r\n switch (currentTab) {\r\n case 'national':\r\n return isLoadingNational\r\n case 'countrySubdivision':\r\n return isLoadingSubdivision\r\n case 'municipal':\r\n return isLoadingMunicipal\r\n case 'all':\r\n // Show loading for \"all\" if any datasets are loading and we have no data yet\r\n return (isLoadingNational || isLoadingSubdivision || isLoadingMunicipal) &&\r\n allDatasets.length === 0\r\n case 'organizational':\r\n // Show loading for \"organizational\" if any datasets are loading and we have no organizational data yet\r\n return (isLoadingNational || isLoadingSubdivision || isLoadingMunicipal) &&\r\n allDatasets.filter(ds => ds.group === 'Organizational').length === 0\r\n default:\r\n return false\r\n }\r\n }, [currentTab, isLoadingNational, isLoadingSubdivision, isLoadingMunicipal, allDatasets])\r\n\r\n React.useEffect(() => {\r\n if (!showMunicipalTab && currentTab === 'municipal') {\r\n setCurrentTab('all')\r\n }\r\n }, [showMunicipalTab, currentTab])\r\n\r\n // Memoized datasets for current tab\r\n const currentTabDatasets = React.useMemo(() => {\r\n switch (currentTab) {\r\n case 'applied':\r\n return allDatasets.filter(ds => addedDatasets.some(d => d.name === ds.name))\r\n case 'favourites':\r\n return allDatasets.filter(ds => favouriteDatasets.some(fav => fav.name === ds.name))\r\n case 'organizational':\r\n return allDatasets.filter(ds => ds.group === 'Organizational')\r\n case 'liveData':\r\n return allDatasets.filter(ds => ds.portal?.live === true)\r\n case 'national':\r\n return nationalDatasets\r\n case 'countrySubdivision':\r\n return subdivisionDatasets\r\n case 'municipal':\r\n return municipalDatasets\r\n case 'all':\r\n default:\r\n return allDatasets\r\n }\r\n }, [currentTab, allDatasets, addedDatasets, favouriteDatasets, nationalDatasets, subdivisionDatasets, municipalDatasets])\r\n\r\n // Memoized filtered data\r\n const filteredData = React.useMemo(() => {\r\n return currentTabDatasets.filter((dataset) => {\r\n // Search filter\r\n const matchesSearch = Object.values(dataset).some(value =>\r\n String(value).toLowerCase().includes(searchTerm.toLowerCase()),\r\n )\r\n if (!matchesSearch)\r\n return false\r\n\r\n // Country subdivision filter\r\n const matchesSubdivision\r\n = appliedFilters.countrySubdivisions.length === 0\r\n || !dataset.countrySubdivision\r\n || appliedFilters.countrySubdivisions.includes(dataset.countrySubdivision)\r\n\r\n // Municipality filter\r\n const matchesMunicipality\r\n = appliedFilters.municipalities.length === 0\r\n || !dataset.municipality\r\n || appliedFilters.municipalities.includes(dataset.municipality)\r\n\r\n // Type filter\r\n const matchesType\r\n = appliedFilters.types.length === 0\r\n || appliedFilters.types.includes(dataset.type)\r\n\r\n // Source filter (dataset.portal?.name, falling back to publisher)\r\n const datasetSource = dataset.portal?.name ?? dataset.publisher\r\n const matchesSource\r\n = appliedFilters.sources.length === 0\r\n || (datasetSource ? appliedFilters.sources.includes(datasetSource) : false)\r\n\r\n return matchesSubdivision && matchesMunicipality && matchesType && matchesSource\r\n })\r\n }, [currentTabDatasets, searchTerm, appliedFilters])\r\n\r\n const sortedFilteredData = React.useMemo(() => {\r\n // Remove duplicates by name\r\n const uniqueByName = new Map<string, Dataset>()\r\n for (const ds of filteredData) {\r\n const name = ds.name?.toLowerCase() || ''\r\n if (!uniqueByName.has(name)) {\r\n uniqueByName.set(name, ds)\r\n }\r\n }\r\n\r\n // Filter out unwanted names/types\r\n const filtered = [...uniqueByName.values()].filter((ds) => {\r\n const name = ds.name?.toLowerCase() || ''\r\n const type = ds.type?.toLowerCase() || ''\r\n return !name.includes('basemap') && !type.includes('geocoding')\r\n })\r\n\r\n // HARD CODE BLOCK LIST\r\n const blocklisted = (ds: Dataset) => {\r\n const url = (ds.url || '').toLowerCase()\r\n const name = (ds.name || '').toLowerCase()\r\n return (\r\n url.includes('/2021_statistics_canada_boundaries/featureserver')\r\n || name.includes('2021 statistics canada boundaries')\r\n || url.includes('/limites_du_recensement_de_statistique_canada_(2021)/featureserver')\r\n || name.includes('limites du recensement de statistique canada (2021)')\r\n )\r\n }\r\n\r\n const safe = filtered.filter(ds => !blocklisted(ds))\r\n\r\n // Sort by name\r\n return safe.sort((a, b) =>\r\n (a.name || '').localeCompare(b.name || ''),\r\n )\r\n }, [filteredData])\r\n\r\n const { prefetch } = useFastDatasetCache()\r\n\r\n React.useEffect(() => {\r\n if (isOpen && sortedFilteredData.length > 0) {\r\n const datasetsToPreload = sortedFilteredData.slice(0, 10)\r\n datasetsToPreload.forEach((dataset, index) => {\r\n setTimeout(() => {\r\n prefetch(dataset)\r\n }, index * 200)\r\n })\r\n }\r\n }, [isOpen, sortedFilteredData, prefetch])\r\n\r\n // Handlers\r\n const handleTabChange = React.useCallback((value: string) => setCurrentTab(value), [])\r\n const handleRowClick = React.useCallback((dataset: Dataset) => {\r\n setSelectedDataset(dataset)\r\n setView('detail')\r\n }, [])\r\n const handleRowHover = React.useCallback((dataset: Dataset) => {\r\n prefetch(dataset)\r\n\r\n const currentIndex = sortedFilteredData.indexOf(dataset)\r\n if (currentIndex >= 0 && currentIndex < sortedFilteredData.length - 2) {\r\n setTimeout(() => {\r\n if (sortedFilteredData[currentIndex + 1]) {\r\n prefetch(sortedFilteredData[currentIndex + 1])\r\n }\r\n }, 100)\r\n }\r\n }, [prefetch, sortedFilteredData])\r\n const handleBackToTable = React.useCallback(() => {\r\n setView('table')\r\n setSelectedDataset(null)\r\n }, [])\r\n const handleAddDatasetToMap = React.useCallback(() => {\r\n if (selectedDataset) {\r\n datasetDispatch({ type: 'ADD_DATASET_TO_MAP', payload: { dataset: selectedDataset } })\r\n }\r\n }, [selectedDataset, datasetDispatch])\r\n const handleRemoveDatasetFromMap = React.useCallback(() => {\r\n if (selectedDataset) {\r\n datasetDispatch({ type: 'REMOVE_DATASET_FROM_MAP', payload: { datasetId: selectedDataset.id } })\r\n }\r\n }, [selectedDataset, datasetDispatch])\r\n const handleFavourite = handleFavouriteDataset(selectedDataset, favouriteDatasets, setFavouriteDatasets)\r\n\r\n const handleAddDataset = () => {\r\n // Logic to add a new dataset\r\n }\r\n\r\n // UI\r\n return (\r\n <Dialog open={isOpen} onOpenChange={setIsOpenAction}>\r\n <DialogContent className=\"h-screen sm:h-[90vh] sm:max-h-[90vh] w-full max-w-full sm:w-[88vw] sm:max-w-[88vw] p-0 gap-0 overflow-hidden flex flex-col\">\r\n {view === 'table' ? (\r\n <>\r\n <DialogHeader className=\"bg-background z-50 sticky top-0 p-4 sm:p-6 flex flex-row flex-wrap justify-between items-end gap-2 text-left\">\r\n <div className=\"flex flex-col justify-end p-0\">\r\n <DialogTitle className=\"text-2xl\">{t('dialogTitle')}</DialogTitle>\r\n <DialogDescription className=\"text-sm\">\r\n {t('dialogDescription')}\r\n </DialogDescription>\r\n </div>\r\n <div className=\"flex flex-row flex-wrap justify-between items-center w-full sm:w-auto\">\r\n <div className=\"flex flex-wrap gap-2 font-medium w-full sm:w-auto\">\r\n <div className=\"relative flex-1 min-w-[140px] sm:flex-none\">\r\n <LR.Search className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" />\r\n <Input\r\n placeholder=\"Search\"\r\n className=\"pl-8 w-full sm:w-[250px]\"\r\n value={searchTerm}\r\n onChange={e => setSearchTerm(e.target.value)}\r\n disabled={!ability.can('read', 'File')}\r\n />\r\n </div>\r\n <div className=\"flex gap-2\">\r\n <Filters\r\n datasets={currentTabDatasets}\r\n appliedFilters={appliedFilters}\r\n onFiltersChange={setAppliedFilters}\r\n />\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={() => setIsAddPortalOpen(true)}\r\n title=\"Register a new open data portal\"\r\n >\r\n <LR.Plus className=\"h-4 w-4 mr-1\" />\r\n Add Portal\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n <DialogClose className=\"absolute right-2 top-2 h-5 w-5 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 <LR.X className=\"!h-4 !w-4\" />\r\n </DialogClose>\r\n </DialogHeader>\r\n <div className=\"relative flex flex-col flex-1 min-h-0\">\r\n <Tabs value={currentTab} className=\"flex flex-col gap-0 h-full\" onValueChange={handleTabChange}>\r\n {/* Mobile: TabsList below doesn't wrap and has no room to render below md,\r\n so it's replaced with a Select driving the same currentTab state. */}\r\n <div className=\"md:hidden px-3 pb-2 flex-shrink-0\">\r\n <Select value={currentTab} onValueChange={handleTabChange}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n <SelectItem value=\"applied\">{t('appliedTab')} ({addedDatasets.length})</SelectItem>\r\n <SelectItem value=\"favourites\">{t('favoritesTab')}</SelectItem>\r\n <SelectItem value=\"organizational\">{t('organizationalTab')}</SelectItem>\r\n <SelectItem value=\"all\">{t('allDataTab')}</SelectItem>\r\n <SelectItem value=\"national\">{t('nationalTab')}</SelectItem>\r\n <SelectItem value=\"countrySubdivision\">{t('countrySubdivisionTab')}</SelectItem>\r\n {showMunicipalTab && (\r\n <SelectItem value=\"municipal\">{t('municipalTab')}</SelectItem>\r\n )}\r\n <SelectItem value=\"liveData\">{t('liveDataTab')}</SelectItem>\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n <div className=\"hidden md:!flex justify-between px-3 flex-shrink-0\">\r\n {' '}\r\n {/* Prevent tabs from shrinking */}\r\n <TabsList className=\"pointer-events-auto sticky flex z-40 top-[100px] bg-transparent\">\r\n <TabsTrigger className=\"hover:text-foreground gap-2\" value=\"applied\">\r\n <Badge variant=\"outline\">{addedDatasets.length}</Badge>\r\n {t('appliedTab')}\r\n </TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground gap-2\" value=\"favourites\">\r\n {t('favoritesTab')}\r\n </TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"organizational\">{t('organizationalTab')}</TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"all\">{t('allDataTab')}</TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"national\">{t('nationalTab')}</TabsTrigger>\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"countrySubdivision\">{t('countrySubdivisionTab')}</TabsTrigger>\r\n {showMunicipalTab && (\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"municipal\">{t('municipalTab')}</TabsTrigger>\r\n )}\r\n <TabsTrigger className=\"hover:text-foreground\" value=\"liveData\">{t('liveDataTab')}</TabsTrigger>\r\n </TabsList>\r\n </div>\r\n <TabsContent\r\n value={currentTab}\r\n className=\"flex-1 pointer-events-auto mt-0 min-h-0\" // min-h-0 is crucial for flex children\r\n >\r\n {currentTabLoading ? (\r\n <DatasetSkeleton />\r\n ) : (datasetsError ? (\r\n <div className=\"flex flex-col justify-center items-center h-32 text-muted-foreground\">\r\n <LR.AlertCircle className=\"h-6 w-6 mb-2\" />\r\n <span>{datasetsError}</span>\r\n <Button variant=\"outline\" size=\"sm\" onClick={() => window.location.reload()} className=\"mt-2\">\r\n <LR.RefreshCw className=\"h-4 w-4 mr-2\" />\r\n {t('refreshButton')}\r\n </Button>\r\n </div>\r\n ) : (\r\n <DataTable\r\n showPagination={true}\r\n columns={datasetColumns}\r\n data={sortedFilteredData}\r\n tab={currentTab}\r\n onRowClick={handleRowClick}\r\n onRowHover={handleRowHover}\r\n className=\"rounded-none w-auto h-full\"\r\n paginationClasses=\"bg-background z-20 w-full border-t\"\r\n isLoading={currentTabLoading}\r\n leadingCell={props => (\r\n <RowActions\r\n {...props}\r\n favouriteDatasets={favouriteDatasets}\r\n setFavouriteDatasets={setFavouriteDatasets}\r\n martinBaseUrl={martinBaseUrl}\r\n />\r\n )}\r\n trailingCell={({ row, index }) => (\r\n <div>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"pointer-events-none\"\r\n >\r\n <LR.ChevronRight />\r\n </Button>\r\n </div>\r\n )}\r\n />\r\n ))}\r\n </TabsContent>\r\n </Tabs>\r\n </div>\r\n </>\r\n ) : (\r\n // Detail View Content\r\n <>\r\n <DialogHeader className=\"px-6 pt-6\">\r\n <div>\r\n <Breadcrumb>\r\n <BreadcrumbList>\r\n <BreadcrumbItem>\r\n <BreadcrumbLink\r\n href=\"#\"\r\n onClick={() => {\r\n handleBackToTable()\r\n setCurrentTab('all')\r\n }}\r\n >\r\n {t('breadcrumbTitle')}\r\n </BreadcrumbLink>\r\n </BreadcrumbItem>\r\n <BreadcrumbSeparator />\r\n <BreadcrumbItem>\r\n <BreadcrumbLink\r\n href=\"#\"\r\n onClick={() => {\r\n setCurrentTab(currentTab)\r\n handleBackToTable()\r\n }}\r\n >\r\n {currentTab.charAt(0).toUpperCase() + currentTab.slice(1)}\r\n </BreadcrumbLink>\r\n </BreadcrumbItem>\r\n <BreadcrumbSeparator />\r\n <BreadcrumbItem>\r\n <BreadcrumbPage>{selectedDataset?.name}</BreadcrumbPage>\r\n </BreadcrumbItem>\r\n </BreadcrumbList>\r\n </Breadcrumb>\r\n </div>\r\n <div className=\"flex flex-col sm:flex-row sm:justify-between gap-3\">\r\n <div className=\"flex items-center min-w-0 gap-1\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={`shrink-0 opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent ${selectedDataset && favouriteDatasets.includes(selectedDataset) ? 'opacity-100' : ''}`}\r\n onClick={handleFavourite}\r\n >\r\n <LR.Star\r\n className=\"!h-5 !w-5\"\r\n size={24}\r\n color={`${selectedDataset && favouriteDatasets.includes(selectedDataset) ? 'hsl(var(--chart-5))' : 'black'} `}\r\n fill={`${selectedDataset && favouriteDatasets.includes(selectedDataset) ? 'hsl(var(--chart-5))' : 'none'} `}\r\n />\r\n </Button>\r\n <DialogTitle className=\"truncate\">{selectedDataset?.name}</DialogTitle>\r\n </div>\r\n <div className=\"flex flex-wrap gap-2 shrink-0\">\r\n <Button\r\n variant=\"secondary\"\r\n onClick={handleBackToTable}\r\n >\r\n <LR.ArrowLeft />\r\n {t('backToDataButton')}\r\n </Button>\r\n {selectedDataset && addedDatasets.some(d => d.name === selectedDataset.name)\r\n ? (\r\n <Button onClick={handleRemoveDatasetFromMap} disabled={!ability.can('read', 'File')}>\r\n <LR.Minus />\r\n {t('removeButton')}\r\n </Button>\r\n )\r\n : (\r\n <Button onClick={handleAddDatasetToMap} disabled={!ability.can('read', 'File')}>\r\n <LR.Plus />\r\n {t('applyButton')}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </DialogHeader>\r\n <DatasetDetails selectedDataset={selectedDataset} />\r\n </>\r\n )}\r\n </DialogContent>\r\n <AddPortalDialog open={isAddPortalOpen} onOpenChange={setIsAddPortalOpen} />\r\n </Dialog>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqfU,mBAGM,KADF,YAFJ;AA/eV,YAAY,QAAQ;AAEpB,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,YAAa,WAAW;AAIxB,SAAS,aAAa;AACtB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,aAAa;AACtB,SAAS,QAAQ,eAAe,YAAY,eAAe,mBAAmB;AAC9E,SAAS,MAAM,aAAa,UAAU,mBAAmB;AACzD,SAAS,wCAAwC,2BAA2B,wCAAwC;AACpH,SAAS,iBAAiB,cAAc,qBAAqB;AAC7D,SAAS,sBAAsB;AAG/B,SAAS,oBAAoB;AAE7B,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,OAAO,oBAAoB;AAE3B,OAAO,qBAAqB;AAC5B,OAAO,aAAa;AACpB,OAAO,gBAAgB;AACvB,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,wCAAwC;AACjD,SAAS,0BAA0B,sBAAkD;AACrF,SAAS,6BAA6B;AACtC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AAWvC,MAAM,qBAAqB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC5C,MAAM,qBAA6C;AAAA,EACjD,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,SAAS,eAAe,KAA8B;AACpD,MAAI,QAAQ,QAAQ,QAAQ,OAAW,QAAO;AAC9C,QAAM,SAAS,OAAO,QAAQ,WAAW,MAAM,OAAO,SAAS,OAAO,GAAG,GAAG,EAAE;AAC9E,SAAO,OAAO,SAAS,MAAM,IAAI,SAAS;AAC5C;AAEA,SAAS,yBAAyB,UAAyC;AAlF3E;AAmFE,QAAM,kBAAkB,YAAY,IAAI,YAAY;AACpD,QAAM,eAAe,eAAe,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,CAAC;AAChE,QAAM,SAAS,eAAe,IAAI,YAAY,KAAK;AAEnD,MAAI,WAAW,QAAQ;AACrB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,cAAc;AAAA,MACd,eAAe;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,gBAAe,wBAAmB,MAAM,MAAzB,YAA8B;AACnD,QAAM,gBAAgB,MAAM,KAAK,oBAAI,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;AAE3D,SAAO;AAAA,IACL,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,qBAAqB,SAAkB,YAA2B;AACzE,MAAI,WAAW,QAAS,QAAO;AAC/B,MAAI,QAAQ,UAAU,aAAa,eAAgB,QAAO;AAE1D,QAAM,QAAQ,eAAe,QAAQ,YAAY;AACjD,MAAI,UAAU,OAAW,QAAO;AAEhC,SAAO,WAAW,cAAc,SAAS,KAAK;AAChD;AAWe,SAAR,SAA0B,EAAE,QAAQ,iBAAiB,cAAc,cAAc,cAAc,GAAkB;AA5HxH;AA8HE,QAAM,IAAI,gBAAgB,UAAU;AAGpC,QAAM,EAAE,QAAQ,IAAI,eAAe;AAEnC,QAAM,iBAAiB,WAAW;AAGlC,QAAM,EAAE,OAAO,SAAS,IAAI,cAAc;AAC1C,QAAM,EAAE,gBAAgB,IAAI,SAAS;AACrC,QAAM,eAAc,6CAAc,YAAW,IAAI,YAAY;AAC7D,QAAM,MAAM;AAEZ,QAAM,gBAAe,8DAAiB,iBAAjB,YAAiC,2BAAK,iBAAtC,YAAsD;AAC3E,QAAM,sBAAqB,8DAAiB,uBAAjB,YAAuC,2BAAK,uBAA5C,YAAkE;AAC7F,QAAM,EAAE,OAAO,cAAc,UAAU,gBAAgB,IAAI,MAAM,WAAW,eAAe;AAC3F,QAAM,EAAE,cAAc,IAAI,aAAa;AACvC,QAAM,EAAE,OAAO,WAAW,IAAI,MAAM,WAAW,YAAY;AAC3D,QAAM,EAAE,YAAY,IAAI,WAAW;AAEnC,QAAM,WAAW,YAAY;AAC7B,QAAM,gBAAgB,MAAM,QAAQ,MAAM,yBAAyB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAGxF,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAA6B,OAAO;AAClE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM,SAAyB,IAAI;AACjF,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,MAAM,SAAoB,CAAC,CAAC;AAC9E,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,EAAE;AACrD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAA0G,EAAE,qBAAqB,CAAC,GAAG,gBAAgB,CAAC,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;AACnO,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,KAAK;AACxD,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM,SAAS,KAAK;AAIlE,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAA6C,oBAAI,IAAI,CAAC;AAC5G,QAAM,mBAAmB,MAAM,QAAQ,MAAM,QAAQ,YAAY,GAAG,CAAC,YAAY,CAAC;AAElF,QAAM,EAAE,iBAAiB,iBAAiB,IAAI,iCAAiC,YAAY;AAC3F,QAAM,EAAE,iBAAiB,mBAAmB,IAAI,uCAAuC,kBAAkB;AACzG,QAAM,EAAE,iBAAiB,gBAAgB,IAAI,0BAA0B,aAAa,QAAQ;AAG5F,QAAM,oBAAoB,MAAM;AAAA,IAC9B,CAAC,kBAA6C;AAC5C,UAAI,CAAC,WAAY,QAAO;AACxB,UAAI,CAAC,cAAe,QAAO;AAC3B,aAAO,cAAc,YAAY,MAAM;AAAA,IACzC;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,2BAA2B,MAAM,QAAQ,MAAM;AACnD,QAAI,CAAC,MAAM,QAAQ,gBAAgB,EAAG,QAAO,CAAC;AAC9C,UAAM,WAAW,iBAAiB,OAAO,OAAK,kBAAkB,EAAE,OAAO,CAAC;AAC1E,WAAO;AAAA,EACT,GAAG,CAAC,kBAAkB,mBAAmB,YAAY,CAAC;AACtD,QAAM,6BAA6B,MAAM;AAAA,IACvC,MAAO,MAAM,QAAQ,kBAAkB,IACnC,mBAAmB,OAAO,OAAK,EAAE,gBAAgB,QAAQ,kBAAkB,EAAE,OAAO,CAAC,IACrF,CAAC;AAAA,IACL,CAAC,oBAAoB,iBAAiB;AAAA,EACxC;AACA,QAAM,0BAA0B,MAAM,QAAQ,MAAM;AAClD,QAAI,CAAC,MAAM,QAAQ,eAAe,EAAG,QAAO,CAAC;AAC7C,UAAM,WAAW,gBAAgB,OAAO,OAAK,kBAAkB,EAAE,OAAO,CAAC;AACzE,WAAO;AAAA,EACT,GAAG,CAAC,iBAAiB,YAAY,iBAAiB,CAAC;AAEnD,QAAM,YAAY,sBAAsB,0BAA0B,EAAE,YAAY,CAAC;AACjF,QAAM,cAAc,sBAAsB,4BAA4B,EAAE,YAAY,CAAC;AACrF,QAAM,WAAW,sBAAsB,yBAAyB,EAAE,YAAY,CAAC;AAC/E,QAAM,UAAU,MAAM;AACpB,UAAM,6BAA6B,YAAY;AAtMnD,UAAAA;AA0MM,UAAI;AACF,cAAM,WAAW,MAAM,MAAM,YAAY;AACzC,YAAI,SAAS,IAAI;AACf,gBAAM,OAAO,MAAM,SAAS,KAAK;AACjC,gBAAM,OAAO,MAAM,QAAQ,6BAAM,KAAK,IAAI,KAAK,QAAQ,CAAC;AACxD,8BAAoB,yBAAyB,IAAI,CAAC;AAAA,QACpD;AAAA,MACF,SACO,KAAK;AACV,gBAAQ,KAAK,4CAA4C,GAAG;AAAA,MAC9D;AAKA,YAAM,sBAAsB,wCAAiB,IAAI,QAAQ,QAAQ,EAAE;AAEnE,YAAM,gBAAoC,sBACrC,YAAY;AACX,cAAM,cAAc,mBAAmB,SAAS,mBAAmB,IAC/D,qBACA,GAAG,kBAAkB;AAEzB,cAAM,cAAc;AAAA,UAClB,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,sBAAsB;AAAA,UACtB,oBAAoB;AAAA,UACpB,cAAc;AAAA,UACd,OAAO;AAAA,QACT;AAEA,YAAI;AACF,iBAAO,MAAM,mBAAmB,WAAkB;AAAA,QACpD,SACO,KAAK;AACV,kBAAQ,MAAM,kDAAkD,GAAG;AACnE,iBAAO,CAAC;AAAA,QACV;AAAA,MACF,GAAG,IACH,QAAQ,QAAQ,CAAC,CAAC;AAEtB,UAAI,CAAC,oBAAoB;AACvB,gBAAQ,KAAK,8EAAyE;AAAA,MACxF;AAKA,YAAM,eAAe,QAAO,2BAAK,QAAO,WACpC,IAAI,KACJ,OAAO,SAAS,QAAOA,MAAA,2BAAK,OAAL,OAAAA,MAAW,EAAE,GAAG,EAAE;AAI7C,YAAM,iBAAiB,MAAM;AAC7B,YAAM,0BAA0B,IAAI;AAAA,QAClC,eAAe,IAAI,OAAK,OAAO,EAAE,OAAO,WAAW,EAAE,KAAK,EAAE,EAAE,OAAO,OAAO;AAAA,MAC9E;AAEA,YAAM,gBAA2B,OAAO,SAAS,YAAY,IACzD,MAAM,iCAAiC,cAAc,yBAAyB,YAAY,EAAE,MAAM,CAAC,QAAQ;AACzG,gBAAQ,MAAM,iDAAiD,GAAG;AAClE,eAAO,CAAC;AAAA,MACV,CAAC,IACD,CAAC;AAEL,YAAM,WAAW,CAAC,GAAG,gBAAgB,GAAG,aAAa;AACrD,YAAM,qBAAqB,SAAS,OAAO,QAAM,qBAAqB,IAAI,aAAa,CAAC;AAExF,UAAI,mBAAmB,WAAW,GAAG;AACnC,gBAAQ,KAAK,kCAAkC;AAAA,MACjD;AACA,sBAAgB;AAAA,QACd,MAAM;AAAA,QACN,SAAS,EAAE,UAAU,mBAAmB;AAAA,MAC1C,CAAC;AAAA,IACH;AAEA,+BAA2B;AAAA,EAC7B,GAAG,CAAC,iBAAiB,eAAe,2BAAK,IAAI,aAAa,SAAS,eAAe,CAAC;AAKnF,QAAM,mBAAmB,MAAM,QAAQ,MAAM,eAAe,SAAS,UAAU,gBAAgB,GAAG,CAAC,SAAS,UAAU,gBAAgB,CAAC;AACvI,QAAM,sBAAsB,MAAM,QAAQ,MAAM,eAAe,YAAY,UAAU,gBAAgB,GAAG,CAAC,YAAY,UAAU,gBAAgB,CAAC;AAChJ,QAAM,oBAAoB,MAAM,QAAQ,MAAM,eAAe,UAAU,UAAU,gBAAgB,GAAG,CAAC,UAAU,UAAU,gBAAgB,CAAC;AAE1I,QAAM,oBAAoB,SAAS,aAAa,iBAAiB,WAAW;AAC5E,QAAM,uBAAuB,YAAY,aAAa,oBAAoB,WAAW;AACrF,QAAM,qBAAqB,UAAU,aAAa,kBAAkB,WAAW;AAE/E,QAAM,gBAAgB,MAAM,QAAQ,MAAM;AACxC,QAAI,eAAe,eAAe,UAAU,WAAW,kBAAkB,WAAW,EAAG,QAAO,EAAE,kBAAkB;AAClH,QAAI,eAAe,wBAAwB,YAAY,WAAW,oBAAoB,WAAW,EAAG,QAAO,EAAE,kBAAkB;AAC/H,QAAI,eAAe,cAAc,SAAS,WAAW,iBAAiB,WAAW,EAAG,QAAO,EAAE,kBAAkB;AAC/G,WAAO;AAAA,EACT,GAAG,CAAC,YAAY,UAAU,SAAS,kBAAkB,QAAQ,YAAY,SAAS,oBAAoB,QAAQ,SAAS,SAAS,iBAAiB,QAAQ,CAAC,CAAC;AAE3J,QAAM,cAAc,MAAM,QAAQ,MAAM;AACtC,UAAM,aAAa;AAAA,MACjB,GAAG;AAAA;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAI,aAAa,SAAS,YAAY,CAAC;AAAA,IACzC;AAEA,UAAM,WAAW,WAAW,OAAO,QAAM,qBAAqB,IAAI,aAAa,CAAC;AAKhF,WAAO,eAAe,UAAU,gBAAgB;AAAA,EAClD,GAAG,CAAC,kBAAkB,qBAAqB,mBAAmB,aAAa,SAAS,UAAU,eAAe,eAAe,gBAAgB,CAAC;AAE7I,QAAM,oBAAoB,MAAM,QAAQ,MAAM;AAC5C,YAAQ,YAAY;AAAA,MAClB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AAEH,gBAAQ,qBAAqB,wBAAwB,uBAC9C,YAAY,WAAW;AAAA,MAChC,KAAK;AAEH,gBAAQ,qBAAqB,wBAAwB,uBAC9C,YAAY,OAAO,QAAM,GAAG,UAAU,gBAAgB,EAAE,WAAW;AAAA,MAC5E;AACE,eAAO;AAAA,IACX;AAAA,EACF,GAAG,CAAC,YAAY,mBAAmB,sBAAsB,oBAAoB,WAAW,CAAC;AAEzF,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,oBAAoB,eAAe,aAAa;AACnD,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,kBAAkB,UAAU,CAAC;AAGjC,QAAM,qBAAqB,MAAM,QAAQ,MAAM;AAC7C,YAAQ,YAAY;AAAA,MAClB,KAAK;AACH,eAAO,YAAY,OAAO,QAAM,cAAc,KAAK,OAAK,EAAE,SAAS,GAAG,IAAI,CAAC;AAAA,MAC7E,KAAK;AACH,eAAO,YAAY,OAAO,QAAM,kBAAkB,KAAK,SAAO,IAAI,SAAS,GAAG,IAAI,CAAC;AAAA,MACrF,KAAK;AACH,eAAO,YAAY,OAAO,QAAM,GAAG,UAAU,gBAAgB;AAAA,MAC/D,KAAK;AACH,eAAO,YAAY,OAAO,QAAG;AAtWrC,cAAAA;AAsWwC,mBAAAA,MAAA,GAAG,WAAH,gBAAAA,IAAW,UAAS;AAAA,SAAI;AAAA,MAC1D,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AAAA,MACL;AACE,eAAO;AAAA,IACX;AAAA,EACF,GAAG,CAAC,YAAY,aAAa,eAAe,mBAAmB,kBAAkB,qBAAqB,iBAAiB,CAAC;AAGxH,QAAM,eAAe,MAAM,QAAQ,MAAM;AACvC,WAAO,mBAAmB,OAAO,CAAC,YAAY;AArXlD,UAAAA,KAAAC;AAuXM,YAAM,gBAAgB,OAAO,OAAO,OAAO,EAAE;AAAA,QAAK,WAChD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,WAAW,YAAY,CAAC;AAAA,MAC/D;AACA,UAAI,CAAC;AACH,eAAO;AAGT,YAAM,qBACF,eAAe,oBAAoB,WAAW,KAC3C,CAAC,QAAQ,sBACT,eAAe,oBAAoB,SAAS,QAAQ,kBAAkB;AAG7E,YAAM,sBACF,eAAe,eAAe,WAAW,KACtC,CAAC,QAAQ,gBACT,eAAe,eAAe,SAAS,QAAQ,YAAY;AAGlE,YAAM,cACF,eAAe,MAAM,WAAW,KAC7B,eAAe,MAAM,SAAS,QAAQ,IAAI;AAGjD,YAAM,iBAAgBA,OAAAD,MAAA,QAAQ,WAAR,gBAAAA,IAAgB,SAAhB,OAAAC,MAAwB,QAAQ;AACtD,YAAM,gBACF,eAAe,QAAQ,WAAW,MAC9B,gBAAgB,eAAe,QAAQ,SAAS,aAAa,IAAI;AAEzE,aAAO,sBAAsB,uBAAuB,eAAe;AAAA,IACrE,CAAC;AAAA,EACH,GAAG,CAAC,oBAAoB,YAAY,cAAc,CAAC;AAEnD,QAAM,qBAAqB,MAAM,QAAQ,MAAM;AAxZjD,QAAAD;AA0ZI,UAAM,eAAe,oBAAI,IAAqB;AAC9C,eAAW,MAAM,cAAc;AAC7B,YAAM,SAAOA,MAAA,GAAG,SAAH,gBAAAA,IAAS,kBAAiB;AACvC,UAAI,CAAC,aAAa,IAAI,IAAI,GAAG;AAC3B,qBAAa,IAAI,MAAM,EAAE;AAAA,MAC3B;AAAA,IACF;AAGA,UAAM,WAAW,CAAC,GAAG,aAAa,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO;AAna/D,UAAAA,KAAAC;AAoaM,YAAM,SAAOD,MAAA,GAAG,SAAH,gBAAAA,IAAS,kBAAiB;AACvC,YAAM,SAAOC,MAAA,GAAG,SAAH,gBAAAA,IAAS,kBAAiB;AACvC,aAAO,CAAC,KAAK,SAAS,SAAS,KAAK,CAAC,KAAK,SAAS,WAAW;AAAA,IAChE,CAAC;AAGD,UAAM,cAAc,CAAC,OAAgB;AACnC,YAAM,OAAO,GAAG,OAAO,IAAI,YAAY;AACvC,YAAM,QAAQ,GAAG,QAAQ,IAAI,YAAY;AACzC,aACE,IAAI,SAAS,kDAAkD,KAC5D,KAAK,SAAS,mCAAmC,KACjD,IAAI,SAAS,oEAAoE,KACjF,KAAK,SAAS,qDAAqD;AAAA,IAE1E;AAEA,UAAM,OAAO,SAAS,OAAO,QAAM,CAAC,YAAY,EAAE,CAAC;AAGnD,WAAO,KAAK;AAAA,MAAK,CAAC,GAAG,OAClB,EAAE,QAAQ,IAAI,cAAc,EAAE,QAAQ,EAAE;AAAA,IAC3C;AAAA,EACF,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,EAAE,SAAS,IAAI,oBAAoB;AAEzC,QAAM,UAAU,MAAM;AACpB,QAAI,UAAU,mBAAmB,SAAS,GAAG;AAC3C,YAAM,oBAAoB,mBAAmB,MAAM,GAAG,EAAE;AACxD,wBAAkB,QAAQ,CAAC,SAAS,UAAU;AAC5C,mBAAW,MAAM;AACf,mBAAS,OAAO;AAAA,QAClB,GAAG,QAAQ,GAAG;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,QAAQ,oBAAoB,QAAQ,CAAC;AAGzC,QAAM,kBAAkB,MAAM,YAAY,CAAC,UAAkB,cAAc,KAAK,GAAG,CAAC,CAAC;AACrF,QAAM,iBAAiB,MAAM,YAAY,CAAC,YAAqB;AAC7D,uBAAmB,OAAO;AAC1B,YAAQ,QAAQ;AAAA,EAClB,GAAG,CAAC,CAAC;AACL,QAAM,iBAAiB,MAAM,YAAY,CAAC,YAAqB;AAC7D,aAAS,OAAO;AAEhB,UAAM,eAAe,mBAAmB,QAAQ,OAAO;AACvD,QAAI,gBAAgB,KAAK,eAAe,mBAAmB,SAAS,GAAG;AACrE,iBAAW,MAAM;AACf,YAAI,mBAAmB,eAAe,CAAC,GAAG;AACxC,mBAAS,mBAAmB,eAAe,CAAC,CAAC;AAAA,QAC/C;AAAA,MACF,GAAG,GAAG;AAAA,IACR;AAAA,EACF,GAAG,CAAC,UAAU,kBAAkB,CAAC;AACjC,QAAM,oBAAoB,MAAM,YAAY,MAAM;AAChD,YAAQ,OAAO;AACf,uBAAmB,IAAI;AAAA,EACzB,GAAG,CAAC,CAAC;AACL,QAAM,wBAAwB,MAAM,YAAY,MAAM;AACpD,QAAI,iBAAiB;AACnB,sBAAgB,EAAE,MAAM,sBAAsB,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;AAAA,IACvF;AAAA,EACF,GAAG,CAAC,iBAAiB,eAAe,CAAC;AACrC,QAAM,6BAA6B,MAAM,YAAY,MAAM;AACzD,QAAI,iBAAiB;AACnB,sBAAgB,EAAE,MAAM,2BAA2B,SAAS,EAAE,WAAW,gBAAgB,GAAG,EAAE,CAAC;AAAA,IACjG;AAAA,EACF,GAAG,CAAC,iBAAiB,eAAe,CAAC;AACrC,QAAM,kBAAkB,uBAAuB,iBAAiB,mBAAmB,oBAAoB;AAEvG,QAAM,mBAAmB,MAAM;AAAA,EAE/B;AAGA,SACE,qBAAC,UAAO,MAAM,QAAQ,cAAc,iBAClC;AAAA,wBAAC,iBAAc,WAAU,8HACtB,mBAAS,UACR,iCACE;AAAA,2BAAC,gBAAa,WAAU,gHACtB;AAAA,6BAAC,SAAI,WAAU,iCACb;AAAA,8BAAC,eAAY,WAAU,YAAY,YAAE,aAAa,GAAE;AAAA,UACpD,oBAAC,qBAAkB,WAAU,WAC1B,YAAE,mBAAmB,GACxB;AAAA,WACF;AAAA,QACA,oBAAC,SAAI,WAAU,yEACb,+BAAC,SAAI,WAAU,qDACb;AAAA,+BAAC,SAAI,WAAU,8CACb;AAAA,gCAAC,GAAG,QAAH,EAAU,WAAU,yDAAwD;AAAA,YAC7E;AAAA,cAAC;AAAA;AAAA,gBACC,aAAY;AAAA,gBACZ,WAAU;AAAA,gBACV,OAAO;AAAA,gBACP,UAAU,OAAK,cAAc,EAAE,OAAO,KAAK;AAAA,gBAC3C,UAAU,CAAC,QAAQ,IAAI,QAAQ,MAAM;AAAA;AAAA,YACvC;AAAA,aACF;AAAA,UACA,qBAAC,SAAI,WAAU,cACb;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,UAAU;AAAA,gBACV;AAAA,gBACA,iBAAiB;AAAA;AAAA,YACnB;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,SAAS,MAAM,mBAAmB,IAAI;AAAA,gBACtC,OAAM;AAAA,gBAEN;AAAA,sCAAC,GAAG,MAAH,EAAQ,WAAU,gBAAe;AAAA,kBAAE;AAAA;AAAA;AAAA,YAEtC;AAAA,aACF;AAAA,WACF,GACF;AAAA,QACA,oBAAC,eAAY,WAAU,4LACrB,8BAAC,GAAG,GAAH,EAAK,WAAU,aAAY,GAC9B;AAAA,SACF;AAAA,MACA,oBAAC,SAAI,WAAU,yCACb,+BAAC,QAAK,OAAO,YAAY,WAAU,8BAA6B,eAAe,iBAG7E;AAAA,4BAAC,SAAI,WAAU,qCACb,+BAAC,UAAO,OAAO,YAAY,eAAe,iBACxC;AAAA,8BAAC,iBACC,8BAAC,eAAY,GACf;AAAA,UACA,qBAAC,iBACC;AAAA,iCAAC,cAAW,OAAM,WAAW;AAAA,gBAAE,YAAY;AAAA,cAAE;AAAA,cAAG,cAAc;AAAA,cAAO;AAAA,eAAC;AAAA,YACtE,oBAAC,cAAW,OAAM,cAAc,YAAE,cAAc,GAAE;AAAA,YAClD,oBAAC,cAAW,OAAM,kBAAkB,YAAE,mBAAmB,GAAE;AAAA,YAC3D,oBAAC,cAAW,OAAM,OAAO,YAAE,YAAY,GAAE;AAAA,YACzC,oBAAC,cAAW,OAAM,YAAY,YAAE,aAAa,GAAE;AAAA,YAC/C,oBAAC,cAAW,OAAM,sBAAsB,YAAE,uBAAuB,GAAE;AAAA,YAClE,oBACC,oBAAC,cAAW,OAAM,aAAa,YAAE,cAAc,GAAE;AAAA,YAEnD,oBAAC,cAAW,OAAM,YAAY,YAAE,aAAa,GAAE;AAAA,aACjD;AAAA,WACF,GACF;AAAA,QACA,qBAAC,SAAI,WAAU,sDACZ;AAAA;AAAA,UAED,qBAAC,YAAS,WAAU,mEAClB;AAAA,iCAAC,eAAY,WAAU,+BAA8B,OAAM,WACzD;AAAA,kCAAC,SAAM,SAAQ,WAAW,wBAAc,QAAO;AAAA,cAC9C,EAAE,YAAY;AAAA,eACjB;AAAA,YACA,oBAAC,eAAY,WAAU,+BAA8B,OAAM,cACxD,YAAE,cAAc,GACnB;AAAA,YACA,oBAAC,eAAY,WAAU,yBAAwB,OAAM,kBAAkB,YAAE,mBAAmB,GAAE;AAAA,YAC9F,oBAAC,eAAY,WAAU,yBAAwB,OAAM,OAAO,YAAE,YAAY,GAAE;AAAA,YAC5E,oBAAC,eAAY,WAAU,yBAAwB,OAAM,YAAY,YAAE,aAAa,GAAE;AAAA,YAClF,oBAAC,eAAY,WAAU,yBAAwB,OAAM,sBAAsB,YAAE,uBAAuB,GAAE;AAAA,YACrG,oBACC,oBAAC,eAAY,WAAU,yBAAwB,OAAM,aAAa,YAAE,cAAc,GAAE;AAAA,YAEtF,oBAAC,eAAY,WAAU,yBAAwB,OAAM,YAAY,YAAE,aAAa,GAAE;AAAA,aACpF;AAAA,WACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,WAAU;AAAA,YAET,8BACC,oBAAC,mBAAgB,IACd,gBACH,qBAAC,SAAI,WAAU,wEACb;AAAA,kCAAC,GAAG,aAAH,EAAe,WAAU,gBAAe;AAAA,cACzC,oBAAC,UAAM,yBAAc;AAAA,cACrB,qBAAC,UAAO,SAAQ,WAAU,MAAK,MAAK,SAAS,MAAM,OAAO,SAAS,OAAO,GAAG,WAAU,QACrF;AAAA,oCAAC,GAAG,WAAH,EAAa,WAAU,gBAAe;AAAA,gBACtC,EAAE,eAAe;AAAA,iBACpB;AAAA,eACF,IAEA;AAAA,cAAC;AAAA;AAAA,gBACC,gBAAgB;AAAA,gBAChB,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,KAAK;AAAA,gBACL,YAAY;AAAA,gBACZ,YAAY;AAAA,gBACZ,WAAU;AAAA,gBACV,mBAAkB;AAAA,gBAClB,WAAW;AAAA,gBACX,aAAa,WACX;AAAA,kBAAC;AAAA,mDACK,QADL;AAAA,oBAEC;AAAA,oBACA;AAAA,oBACA;AAAA;AAAA,gBACF;AAAA,gBAEF,cAAc,CAAC,EAAE,KAAK,MAAM,MAC1B,oBAAC,SACC;AAAA,kBAAC;AAAA;AAAA,oBACC,SAAQ;AAAA,oBACR,MAAK;AAAA,oBACL,WAAU;AAAA,oBAEV,8BAAC,GAAG,cAAH,EAAgB;AAAA;AAAA,gBACnB,GACF;AAAA;AAAA,YAEJ;AAAA;AAAA,QAEJ;AAAA,SACF,GACF;AAAA,OACF;AAAA;AAAA,MAGA,iCACE;AAAA,6BAAC,gBAAa,WAAU,aACtB;AAAA,8BAAC,SACC,8BAAC,cACC,+BAAC,kBACC;AAAA,gCAAC,kBACC;AAAA,cAAC;AAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM;AACb,oCAAkB;AAClB,gCAAc,KAAK;AAAA,gBACrB;AAAA,gBAEC,YAAE,iBAAiB;AAAA;AAAA,YACtB,GACF;AAAA,YACA,oBAAC,uBAAoB;AAAA,YACrB,oBAAC,kBACC;AAAA,cAAC;AAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM;AACb,gCAAc,UAAU;AACxB,oCAAkB;AAAA,gBACpB;AAAA,gBAEC,qBAAW,OAAO,CAAC,EAAE,YAAY,IAAI,WAAW,MAAM,CAAC;AAAA;AAAA,YAC1D,GACF;AAAA,YACA,oBAAC,uBAAoB;AAAA,YACrB,oBAAC,kBACC,8BAAC,kBAAgB,6DAAiB,MAAK,GACzC;AAAA,aACF,GACF,GACF;AAAA,UACA,qBAAC,SAAI,WAAU,sDACb;AAAA,iCAAC,SAAI,WAAU,mCACb;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,MAAK;AAAA,kBACL,WAAW,8FAA8F,mBAAmB,kBAAkB,SAAS,eAAe,IAAI,gBAAgB,EAAE;AAAA,kBAC5L,SAAS;AAAA,kBAET;AAAA,oBAAC,GAAG;AAAA,oBAAH;AAAA,sBACC,WAAU;AAAA,sBACV,MAAM;AAAA,sBACN,OAAO,GAAG,mBAAmB,kBAAkB,SAAS,eAAe,IAAI,wBAAwB,OAAO;AAAA,sBAC1G,MAAM,GAAG,mBAAmB,kBAAkB,SAAS,eAAe,IAAI,wBAAwB,MAAM;AAAA;AAAA,kBAC1G;AAAA;AAAA,cACF;AAAA,cACA,oBAAC,eAAY,WAAU,YAAY,6DAAiB,MAAK;AAAA,eAC3D;AAAA,YACA,qBAAC,SAAI,WAAU,iCACb;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,SAAS;AAAA,kBAET;AAAA,wCAAC,GAAG,WAAH,EAAa;AAAA,oBACb,EAAE,kBAAkB;AAAA;AAAA;AAAA,cACvB;AAAA,cACC,mBAAmB,cAAc,KAAK,OAAK,EAAE,SAAS,gBAAgB,IAAI,IAErE,qBAAC,UAAO,SAAS,4BAA4B,UAAU,CAAC,QAAQ,IAAI,QAAQ,MAAM,GAChF;AAAA,oCAAC,GAAG,OAAH,EAAS;AAAA,gBACT,EAAE,cAAc;AAAA,iBACnB,IAGA,qBAAC,UAAO,SAAS,uBAAuB,UAAU,CAAC,QAAQ,IAAI,QAAQ,MAAM,GAC3E;AAAA,oCAAC,GAAG,MAAH,EAAQ;AAAA,gBACR,EAAE,aAAa;AAAA,iBAClB;AAAA,eAER;AAAA,aACF;AAAA,WACF;AAAA,QACA,oBAAC,kBAAe,iBAAkC;AAAA,SACpD;AAAA,OAEJ;AAAA,IACA,oBAAC,mBAAgB,MAAM,iBAAiB,cAAc,oBAAoB;AAAA,KAC5E;AAEJ;","names":["_a","_b"]}
@@ -1,5 +1,5 @@
1
- import type { Dataset, FieldType } from '../../../../../types/datasetTypes';
2
1
  import { type OpenDataPortal } from '../../../../../types/dbTypes';
2
+ import type { Dataset, FieldType } from '../../../../../types/datasetTypes';
3
3
  export type ViewportOptions = {
4
4
  bbox?: [number, number, number, number];
5
5
  zoom?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"arcGISDatasets.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/src/arcGISDatasets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAG3E,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAMxF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AA8CD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,EAAE,CAAC,CAwQpB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAA;CACxD;AAED,wBAAgB,cAAc,IAAI,cAAc,CAmB/C"}
1
+ {"version":3,"file":"arcGISDatasets.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/src/arcGISDatasets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAMxF,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAI3E,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AA8CD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,EAAE,CAAC,CAsQpB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAA;CACxD;AAED,wBAAgB,cAAc,IAAI,cAAc,CAmB/C"}