@collabdt/core 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1286) hide show
  1. package/dist/core/components/AppSidebarContent.d.ts +1 -1
  2. package/dist/core/components/AppSidebarContent.d.ts.map +1 -1
  3. package/dist/core/components/AppSidebarContent.js +9 -9
  4. package/dist/core/components/AppSidebarContent.js.map +1 -1
  5. package/dist/core/components/ConfirmDialog.js.map +1 -1
  6. package/dist/core/components/DataTableSkeleton.d.ts.map +1 -1
  7. package/dist/core/components/DataTableSkeleton.js.map +1 -1
  8. package/dist/core/components/LanguageSwitch.d.ts.map +1 -1
  9. package/dist/core/components/LanguageSwitch.js +4 -4
  10. package/dist/core/components/LanguageSwitch.js.map +1 -1
  11. package/dist/core/components/Logo.js +1 -1
  12. package/dist/core/components/Logo.js.map +1 -1
  13. package/dist/core/components/Toolbar.d.ts +1 -1
  14. package/dist/core/components/Toolbar.d.ts.map +1 -1
  15. package/dist/core/components/Toolbar.js +1 -1
  16. package/dist/core/components/Toolbar.js.map +1 -1
  17. package/dist/core/components/ToolbarBody.d.ts +1 -1
  18. package/dist/core/components/ToolbarBody.d.ts.map +1 -1
  19. package/dist/core/components/ToolbarBody.js +1 -1
  20. package/dist/core/components/ToolbarBody.js.map +1 -1
  21. package/dist/core/components/ToolbarSubmenu.d.ts +1 -1
  22. package/dist/core/components/ToolbarSubmenu.d.ts.map +1 -1
  23. package/dist/core/components/ToolbarSubmenu.js +2 -2
  24. package/dist/core/components/ToolbarSubmenu.js.map +1 -1
  25. package/dist/core/components/TopNavigationBar.d.ts.map +1 -1
  26. package/dist/core/components/TopNavigationBar.js +5 -5
  27. package/dist/core/components/TopNavigationBar.js.map +1 -1
  28. package/dist/core/components/authentication/AuthPage.d.ts.map +1 -1
  29. package/dist/core/components/authentication/AuthPage.js +5 -5
  30. package/dist/core/components/authentication/AuthPage.js.map +1 -1
  31. package/dist/core/components/authentication/ForgotPassword.d.ts.map +1 -1
  32. package/dist/core/components/authentication/ForgotPassword.js +3 -3
  33. package/dist/core/components/authentication/ForgotPassword.js.map +1 -1
  34. package/dist/core/components/authentication/Signin.d.ts.map +1 -1
  35. package/dist/core/components/authentication/Signin.js +5 -5
  36. package/dist/core/components/authentication/Signin.js.map +1 -1
  37. package/dist/core/components/authentication/Signup.d.ts.map +1 -1
  38. package/dist/core/components/authentication/Signup.js +7 -7
  39. package/dist/core/components/authentication/Signup.js.map +1 -1
  40. package/dist/core/components/instance-not-found/index.d.ts.map +1 -1
  41. package/dist/core/components/instance-not-found/index.js +4 -4
  42. package/dist/core/components/instance-not-found/index.js.map +1 -1
  43. package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.d.ts.map +1 -1
  44. package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.js +3 -3
  45. package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.js.map +1 -1
  46. package/dist/core/components/organizationConfig/index.d.ts.map +1 -1
  47. package/dist/core/components/organizationConfig/index.js +4 -4
  48. package/dist/core/components/organizationConfig/index.js.map +1 -1
  49. package/dist/core/components/organizationConfig/src/organizationConfigContent.js +2 -2
  50. package/dist/core/components/organizationConfig/src/organizationConfigContent.js.map +1 -1
  51. package/dist/core/components/settings/index.d.ts.map +1 -1
  52. package/dist/core/components/settings/index.js +2 -2
  53. package/dist/core/components/settings/index.js.map +1 -1
  54. package/dist/core/components/settings/src/AccountSettingsPanel.d.ts.map +1 -1
  55. package/dist/core/components/settings/src/AccountSettingsPanel.js +8 -8
  56. package/dist/core/components/settings/src/AccountSettingsPanel.js.map +1 -1
  57. package/dist/core/components/settings/src/ChangePassword.d.ts.map +1 -1
  58. package/dist/core/components/settings/src/ChangePassword.js +5 -5
  59. package/dist/core/components/settings/src/ChangePassword.js.map +1 -1
  60. package/dist/core/components/settings/src/OrganizationSettingsPanel.d.ts.map +1 -1
  61. package/dist/core/components/settings/src/OrganizationSettingsPanel.js +7 -7
  62. package/dist/core/components/settings/src/OrganizationSettingsPanel.js.map +1 -1
  63. package/dist/core/components/settings/src/SettingsContent.d.ts.map +1 -1
  64. package/dist/core/components/settings/src/SettingsContent.js +1 -1
  65. package/dist/core/components/settings/src/SettingsContent.js.map +1 -1
  66. package/dist/core/components/settings/src/SettingsSidebar.d.ts.map +1 -1
  67. package/dist/core/components/settings/src/SettingsSidebar.js +3 -3
  68. package/dist/core/components/settings/src/SettingsSidebar.js.map +1 -1
  69. package/dist/core/components/settings/src/UsersSettingsPanel.js +1 -1
  70. package/dist/core/components/settings/src/UsersSettingsPanel.js.map +1 -1
  71. package/dist/core/components/support/BugReportDialog.d.ts.map +1 -1
  72. package/dist/core/components/support/BugReportDialog.js +8 -8
  73. package/dist/core/components/support/BugReportDialog.js.map +1 -1
  74. package/dist/core/components/support/FeatureRequestDialog.d.ts.map +1 -1
  75. package/dist/core/components/support/FeatureRequestDialog.js +6 -6
  76. package/dist/core/components/support/FeatureRequestDialog.js.map +1 -1
  77. package/dist/core/components/support/SupportMenu.d.ts.map +1 -1
  78. package/dist/core/components/support/SupportMenu.js +1 -1
  79. package/dist/core/components/support/SupportMenu.js.map +1 -1
  80. package/dist/core/components/ui/Accordion.d.ts +1 -1
  81. package/dist/core/components/ui/Accordion.d.ts.map +1 -1
  82. package/dist/core/components/ui/Accordion.js +1 -1
  83. package/dist/core/components/ui/Accordion.js.map +1 -1
  84. package/dist/core/components/ui/AddItemDialog.d.ts.map +1 -1
  85. package/dist/core/components/ui/AddItemDialog.js +1 -1
  86. package/dist/core/components/ui/AddItemDialog.js.map +1 -1
  87. package/dist/core/components/ui/AlertDialog.d.ts +1 -1
  88. package/dist/core/components/ui/AlertDialog.d.ts.map +1 -1
  89. package/dist/core/components/ui/AlertDialog.js +1 -1
  90. package/dist/core/components/ui/AlertDialog.js.map +1 -1
  91. package/dist/core/components/ui/AnimatedBackground.js +1 -1
  92. package/dist/core/components/ui/AnimatedBackground.js.map +1 -1
  93. package/dist/core/components/ui/AppSidebar.d.ts.map +1 -1
  94. package/dist/core/components/ui/AppSidebar.js +7 -7
  95. package/dist/core/components/ui/AppSidebar.js.map +1 -1
  96. package/dist/core/components/ui/Avatar.d.ts +1 -1
  97. package/dist/core/components/ui/Avatar.d.ts.map +1 -1
  98. package/dist/core/components/ui/Avatar.js +1 -1
  99. package/dist/core/components/ui/Avatar.js.map +1 -1
  100. package/dist/core/components/ui/Badge.d.ts.map +1 -1
  101. package/dist/core/components/ui/Badge.js.map +1 -1
  102. package/dist/core/components/ui/Breadcrumb.d.ts.map +1 -1
  103. package/dist/core/components/ui/Breadcrumb.js +2 -2
  104. package/dist/core/components/ui/Breadcrumb.js.map +1 -1
  105. package/dist/core/components/ui/Button.d.ts.map +1 -1
  106. package/dist/core/components/ui/Button.js +1 -1
  107. package/dist/core/components/ui/Button.js.map +1 -1
  108. package/dist/core/components/ui/Calendar.d.ts +2 -1
  109. package/dist/core/components/ui/Calendar.d.ts.map +1 -1
  110. package/dist/core/components/ui/Calendar.js +1 -1
  111. package/dist/core/components/ui/Calendar.js.map +1 -1
  112. package/dist/core/components/ui/Checkbox.d.ts +1 -1
  113. package/dist/core/components/ui/Checkbox.d.ts.map +1 -1
  114. package/dist/core/components/ui/Checkbox.js +1 -1
  115. package/dist/core/components/ui/Checkbox.js.map +1 -1
  116. package/dist/core/components/ui/CollapsibleSection.d.ts.map +1 -1
  117. package/dist/core/components/ui/CollapsibleSection.js +2 -2
  118. package/dist/core/components/ui/CollapsibleSection.js.map +1 -1
  119. package/dist/core/components/ui/Command.d.ts +8 -8
  120. package/dist/core/components/ui/Command.d.ts.map +1 -1
  121. package/dist/core/components/ui/Command.js +1 -1
  122. package/dist/core/components/ui/Command.js.map +1 -1
  123. package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts +1 -1
  124. package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts.map +1 -1
  125. package/dist/core/components/ui/Comments/CollapsibleCommentItem.js +9 -9
  126. package/dist/core/components/ui/Comments/CollapsibleCommentItem.js.map +1 -1
  127. package/dist/core/components/ui/Comments/Comment.d.ts.map +1 -1
  128. package/dist/core/components/ui/Comments/Comment.js +4 -4
  129. package/dist/core/components/ui/Comments/Comment.js.map +1 -1
  130. package/dist/core/components/ui/Comments/CommentInput.d.ts.map +1 -1
  131. package/dist/core/components/ui/Comments/CommentInput.js +6 -6
  132. package/dist/core/components/ui/Comments/CommentInput.js.map +1 -1
  133. package/dist/core/components/ui/Comments/CommentsSection.d.ts.map +1 -1
  134. package/dist/core/components/ui/Comments/CommentsSection.js +4 -4
  135. package/dist/core/components/ui/Comments/CommentsSection.js.map +1 -1
  136. package/dist/core/components/ui/Comments/commentUtils.d.ts +1 -1
  137. package/dist/core/components/ui/Comments/commentUtils.d.ts.map +1 -1
  138. package/dist/core/components/ui/Comments/commentUtils.js.map +1 -1
  139. package/dist/core/components/ui/Countdown.d.ts.map +1 -1
  140. package/dist/core/components/ui/Countdown.js +1 -1
  141. package/dist/core/components/ui/Countdown.js.map +1 -1
  142. package/dist/core/components/ui/DataTable.d.ts +1 -1
  143. package/dist/core/components/ui/DataTable.d.ts.map +1 -1
  144. package/dist/core/components/ui/DataTable.js +17 -17
  145. package/dist/core/components/ui/DataTable.js.map +1 -1
  146. package/dist/core/components/ui/DatePicker.d.ts.map +1 -1
  147. package/dist/core/components/ui/DatePicker.js +2 -2
  148. package/dist/core/components/ui/DatePicker.js.map +1 -1
  149. package/dist/core/components/ui/DescriptionList.d.ts.map +1 -1
  150. package/dist/core/components/ui/DescriptionList.js +2 -2
  151. package/dist/core/components/ui/DescriptionList.js.map +1 -1
  152. package/dist/core/components/ui/Dialog.d.ts +1 -1
  153. package/dist/core/components/ui/Dialog.d.ts.map +1 -1
  154. package/dist/core/components/ui/Dialog.js +1 -1
  155. package/dist/core/components/ui/Dialog.js.map +1 -1
  156. package/dist/core/components/ui/DropdownMenu.d.ts +1 -1
  157. package/dist/core/components/ui/DropdownMenu.d.ts.map +1 -1
  158. package/dist/core/components/ui/DropdownMenu.js +1 -1
  159. package/dist/core/components/ui/DropdownMenu.js.map +1 -1
  160. package/dist/core/components/ui/ExportData.d.ts +2 -2
  161. package/dist/core/components/ui/ExportData.d.ts.map +1 -1
  162. package/dist/core/components/ui/ExportData.js +5 -5
  163. package/dist/core/components/ui/ExportData.js.map +1 -1
  164. package/dist/core/components/ui/FilesManager/src/FileItemComponent.d.ts.map +1 -1
  165. package/dist/core/components/ui/FilesManager/src/FileItemComponent.js +3 -3
  166. package/dist/core/components/ui/FilesManager/src/FileItemComponent.js.map +1 -1
  167. package/dist/core/components/ui/FilesManager/src/FileMarker.d.ts.map +1 -1
  168. package/dist/core/components/ui/FilesManager/src/FileMarker.js +2 -2
  169. package/dist/core/components/ui/FilesManager/src/FileMarker.js.map +1 -1
  170. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.d.ts.map +1 -1
  171. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.js +1 -1
  172. package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.js.map +1 -1
  173. package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.d.ts.map +1 -1
  174. package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.js.map +1 -1
  175. package/dist/core/components/ui/FilesManager/src/downloadUtils.d.ts +1 -1
  176. package/dist/core/components/ui/FilesManager/src/downloadUtils.d.ts.map +1 -1
  177. package/dist/core/components/ui/FilesManager/src/downloadUtils.js.map +1 -1
  178. package/dist/core/components/ui/FilesManager/src/useCommonFileUpload.js.map +1 -1
  179. package/dist/core/components/ui/FilesManager/src/useFileActions.d.ts +2 -2
  180. package/dist/core/components/ui/FilesManager/src/useFileActions.d.ts.map +1 -1
  181. package/dist/core/components/ui/FilesManager/src/useFileActions.js +2 -2
  182. package/dist/core/components/ui/FilesManager/src/useFileActions.js.map +1 -1
  183. package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js +1 -1
  184. package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js.map +1 -1
  185. package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js +3 -3
  186. package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js.map +1 -1
  187. package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.d.ts.map +1 -1
  188. package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.js.map +1 -1
  189. package/dist/core/components/ui/GenericTool.d.ts +1 -1
  190. package/dist/core/components/ui/GenericTool.d.ts.map +1 -1
  191. package/dist/core/components/ui/GenericTool.js +2 -2
  192. package/dist/core/components/ui/GenericTool.js.map +1 -1
  193. package/dist/core/components/ui/Icons/FloorPlanIcon.js +1 -1
  194. package/dist/core/components/ui/Icons/FloorPlanIcon.js.map +1 -1
  195. package/dist/core/components/ui/InfoSidebar/Container.d.ts.map +1 -1
  196. package/dist/core/components/ui/InfoSidebar/Container.js.map +1 -1
  197. package/dist/core/components/ui/InfoSidebar/Header.d.ts.map +1 -1
  198. package/dist/core/components/ui/InfoSidebar/Header.js +4 -4
  199. package/dist/core/components/ui/InfoSidebar/Header.js.map +1 -1
  200. package/dist/core/components/ui/InfoSidebar/index.d.ts +1 -1
  201. package/dist/core/components/ui/InfoSidebar/index.d.ts.map +1 -1
  202. package/dist/core/components/ui/InfoSidebar/index.js +1 -1
  203. package/dist/core/components/ui/InfoSidebar/index.js.map +1 -1
  204. package/dist/core/components/ui/Label.d.ts +1 -1
  205. package/dist/core/components/ui/Label.d.ts.map +1 -1
  206. package/dist/core/components/ui/Label.js +1 -1
  207. package/dist/core/components/ui/Label.js.map +1 -1
  208. package/dist/core/components/ui/LanguageToggle.d.ts +1 -1
  209. package/dist/core/components/ui/LanguageToggle.d.ts.map +1 -1
  210. package/dist/core/components/ui/LanguageToggle.js +1 -1
  211. package/dist/core/components/ui/LanguageToggle.js.map +1 -1
  212. package/dist/core/components/ui/Menubar.d.ts +1 -1
  213. package/dist/core/components/ui/Menubar.d.ts.map +1 -1
  214. package/dist/core/components/ui/Menubar.js +1 -1
  215. package/dist/core/components/ui/Menubar.js.map +1 -1
  216. package/dist/core/components/ui/NavUser.js +7 -7
  217. package/dist/core/components/ui/NavUser.js.map +1 -1
  218. package/dist/core/components/ui/Navbar.d.ts.map +1 -1
  219. package/dist/core/components/ui/Navbar.js +2 -2
  220. package/dist/core/components/ui/Navbar.js.map +1 -1
  221. package/dist/core/components/ui/Popover.d.ts +1 -1
  222. package/dist/core/components/ui/Popover.d.ts.map +1 -1
  223. package/dist/core/components/ui/Popover.js +1 -1
  224. package/dist/core/components/ui/Popover.js.map +1 -1
  225. package/dist/core/components/ui/Progress.d.ts +1 -1
  226. package/dist/core/components/ui/Progress.d.ts.map +1 -1
  227. package/dist/core/components/ui/Progress.js +1 -1
  228. package/dist/core/components/ui/Progress.js.map +1 -1
  229. package/dist/core/components/ui/ScrollArea.d.ts +1 -1
  230. package/dist/core/components/ui/ScrollArea.d.ts.map +1 -1
  231. package/dist/core/components/ui/ScrollArea.js +1 -1
  232. package/dist/core/components/ui/ScrollArea.js.map +1 -1
  233. package/dist/core/components/ui/SearchInput.d.ts.map +1 -1
  234. package/dist/core/components/ui/SearchInput.js +2 -2
  235. package/dist/core/components/ui/SearchInput.js.map +1 -1
  236. package/dist/core/components/ui/Select.d.ts +1 -1
  237. package/dist/core/components/ui/Select.d.ts.map +1 -1
  238. package/dist/core/components/ui/Select.js +3 -3
  239. package/dist/core/components/ui/Select.js.map +1 -1
  240. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts +1 -1
  241. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts.map +1 -1
  242. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js +10 -10
  243. package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js.map +1 -1
  244. package/dist/core/components/ui/Sensors/Sensor.d.ts +2 -1
  245. package/dist/core/components/ui/Sensors/Sensor.d.ts.map +1 -1
  246. package/dist/core/components/ui/Sensors/Sensor.js +3 -3
  247. package/dist/core/components/ui/Sensors/Sensor.js.map +1 -1
  248. package/dist/core/components/ui/Sensors/SensorChart.d.ts +1 -1
  249. package/dist/core/components/ui/Sensors/SensorChart.d.ts.map +1 -1
  250. package/dist/core/components/ui/Sensors/SensorChart.js +1 -1
  251. package/dist/core/components/ui/Sensors/SensorChart.js.map +1 -1
  252. package/dist/core/components/ui/Sensors/SensorInput.d.ts.map +1 -1
  253. package/dist/core/components/ui/Sensors/SensorInput.js +9 -9
  254. package/dist/core/components/ui/Sensors/SensorInput.js.map +1 -1
  255. package/dist/core/components/ui/Sensors/SensorTagsSection.d.ts.map +1 -1
  256. package/dist/core/components/ui/Sensors/SensorTagsSection.js +3 -3
  257. package/dist/core/components/ui/Sensors/SensorTagsSection.js.map +1 -1
  258. package/dist/core/components/ui/Sensors/SensorsSection.d.ts.map +1 -1
  259. package/dist/core/components/ui/Sensors/SensorsSection.js +7 -7
  260. package/dist/core/components/ui/Sensors/SensorsSection.js.map +1 -1
  261. package/dist/core/components/ui/Sensors/SensorsSectionSkeleton.d.ts.map +1 -1
  262. package/dist/core/components/ui/Sensors/SensorsSectionSkeleton.js.map +1 -1
  263. package/dist/core/components/ui/Sensors/sensorUtils.d.ts +1 -1
  264. package/dist/core/components/ui/Sensors/sensorUtils.d.ts.map +1 -1
  265. package/dist/core/components/ui/Sensors/sensorUtils.js.map +1 -1
  266. package/dist/core/components/ui/Separator.d.ts +1 -1
  267. package/dist/core/components/ui/Separator.d.ts.map +1 -1
  268. package/dist/core/components/ui/Separator.js +1 -1
  269. package/dist/core/components/ui/Separator.js.map +1 -1
  270. package/dist/core/components/ui/SettingsButton.d.ts.map +1 -1
  271. package/dist/core/components/ui/SettingsButton.js +4 -4
  272. package/dist/core/components/ui/SettingsButton.js.map +1 -1
  273. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts +1 -1
  274. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts.map +1 -1
  275. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js +14 -14
  276. package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js.map +1 -1
  277. package/dist/core/components/ui/Sheet.d.ts +1 -1
  278. package/dist/core/components/ui/Sheet.d.ts.map +1 -1
  279. package/dist/core/components/ui/Sheet.js +1 -1
  280. package/dist/core/components/ui/Sheet.js.map +1 -1
  281. package/dist/core/components/ui/Sidebar.d.ts +1 -1
  282. package/dist/core/components/ui/Sidebar.d.ts.map +1 -1
  283. package/dist/core/components/ui/Sidebar.js +6 -6
  284. package/dist/core/components/ui/Sidebar.js.map +1 -1
  285. package/dist/core/components/ui/Slider.d.ts +1 -1
  286. package/dist/core/components/ui/Slider.d.ts.map +1 -1
  287. package/dist/core/components/ui/Slider.js +1 -1
  288. package/dist/core/components/ui/Slider.js.map +1 -1
  289. package/dist/core/components/ui/Switch.d.ts +1 -1
  290. package/dist/core/components/ui/Switch.d.ts.map +1 -1
  291. package/dist/core/components/ui/Switch.js +1 -1
  292. package/dist/core/components/ui/Switch.js.map +1 -1
  293. package/dist/core/components/ui/Tabs.d.ts +1 -1
  294. package/dist/core/components/ui/Tabs.d.ts.map +1 -1
  295. package/dist/core/components/ui/Tabs.js +1 -1
  296. package/dist/core/components/ui/Tabs.js.map +1 -1
  297. package/dist/core/components/ui/Toggle.d.ts +1 -1
  298. package/dist/core/components/ui/Toggle.d.ts.map +1 -1
  299. package/dist/core/components/ui/Toggle.js +1 -1
  300. package/dist/core/components/ui/Toggle.js.map +1 -1
  301. package/dist/core/components/ui/ToggleGroup.d.ts +1 -1
  302. package/dist/core/components/ui/ToggleGroup.d.ts.map +1 -1
  303. package/dist/core/components/ui/ToggleGroup.js +1 -1
  304. package/dist/core/components/ui/ToggleGroup.js.map +1 -1
  305. package/dist/core/components/ui/ToolbarButton.d.ts +1 -1
  306. package/dist/core/components/ui/ToolbarButton.d.ts.map +1 -1
  307. package/dist/core/components/ui/ToolbarButton.js +1 -1
  308. package/dist/core/components/ui/ToolbarButton.js.map +1 -1
  309. package/dist/core/components/ui/Tooltip.d.ts +1 -1
  310. package/dist/core/components/ui/Tooltip.d.ts.map +1 -1
  311. package/dist/core/components/ui/Tooltip.js +1 -1
  312. package/dist/core/components/ui/Tooltip.js.map +1 -1
  313. package/dist/core/components/ui/UserAvatar.d.ts.map +1 -1
  314. package/dist/core/components/ui/UserAvatar.js +1 -1
  315. package/dist/core/components/ui/UserAvatar.js.map +1 -1
  316. package/dist/core/components/ui/downloadUtils.d.ts.map +1 -1
  317. package/dist/core/components/ui/downloadUtils.js.map +1 -1
  318. package/dist/core/components/ui/stats.d.ts.map +1 -1
  319. package/dist/core/components/ui/stats.js.map +1 -1
  320. package/dist/core/components/ui/uploadFile.js +1 -1
  321. package/dist/core/components/ui/uploadFile.js.map +1 -1
  322. package/dist/core/components/viewers/Data/DataMenu.d.ts +1 -1
  323. package/dist/core/components/viewers/Data/DataMenu.d.ts.map +1 -1
  324. package/dist/core/components/viewers/Data/DataMenu.js +11 -11
  325. package/dist/core/components/viewers/Data/DataMenu.js.map +1 -1
  326. package/dist/core/components/viewers/Data/FilterButtons.d.ts +1 -1
  327. package/dist/core/components/viewers/Data/FilterButtons.d.ts.map +1 -1
  328. package/dist/core/components/viewers/Data/FilterButtons.js +7 -7
  329. package/dist/core/components/viewers/Data/FilterButtons.js.map +1 -1
  330. package/dist/core/components/viewers/Data/HeaderButtons.d.ts +1 -1
  331. package/dist/core/components/viewers/Data/HeaderButtons.d.ts.map +1 -1
  332. package/dist/core/components/viewers/Data/HeaderButtons.js +9 -9
  333. package/dist/core/components/viewers/Data/HeaderButtons.js.map +1 -1
  334. package/dist/core/components/viewers/Data/MoreOptions.d.ts +1 -1
  335. package/dist/core/components/viewers/Data/MoreOptions.d.ts.map +1 -1
  336. package/dist/core/components/viewers/Data/MoreOptions.js +16 -16
  337. package/dist/core/components/viewers/Data/MoreOptions.js.map +1 -1
  338. package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts +1 -1
  339. package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts.map +1 -1
  340. package/dist/core/components/viewers/Data/advancedFilter/Filters.js +2 -2
  341. package/dist/core/components/viewers/Data/advancedFilter/Filters.js.map +1 -1
  342. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts +1 -1
  343. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts.map +1 -1
  344. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.js +6 -6
  345. package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.js.map +1 -1
  346. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.d.ts.map +1 -1
  347. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.js +3 -3
  348. package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.js.map +1 -1
  349. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.d.ts.map +1 -1
  350. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.js +10 -10
  351. package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.js.map +1 -1
  352. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.d.ts.map +1 -1
  353. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.js +11 -11
  354. package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.js.map +1 -1
  355. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.d.ts.map +1 -1
  356. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.js +10 -10
  357. package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.js.map +1 -1
  358. package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.d.ts.map +1 -1
  359. package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.js.map +1 -1
  360. package/dist/core/components/viewers/Data/buildingDetails/buildingSchemaTemplate.d.ts.map +1 -1
  361. package/dist/core/components/viewers/Data/buildingDetails/buildingSchemaTemplate.js.map +1 -1
  362. package/dist/core/components/viewers/Data/details/AttachedFiles.d.ts +1 -1
  363. package/dist/core/components/viewers/Data/details/AttachedFiles.d.ts.map +1 -1
  364. package/dist/core/components/viewers/Data/details/AttachedFiles.js +3 -3
  365. package/dist/core/components/viewers/Data/details/AttachedFiles.js.map +1 -1
  366. package/dist/core/components/viewers/Data/details/DetailActions.d.ts +1 -1
  367. package/dist/core/components/viewers/Data/details/DetailActions.d.ts.map +1 -1
  368. package/dist/core/components/viewers/Data/details/DetailActions.js +2 -2
  369. package/dist/core/components/viewers/Data/details/DetailActions.js.map +1 -1
  370. package/dist/core/components/viewers/Data/details/DetailHeader.d.ts.map +1 -1
  371. package/dist/core/components/viewers/Data/details/DetailHeader.js.map +1 -1
  372. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.d.ts.map +1 -1
  373. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.js +4 -4
  374. package/dist/core/components/viewers/Data/details/EnergySourcesGrid.js.map +1 -1
  375. package/dist/core/components/viewers/Data/details/FieldValue.d.ts.map +1 -1
  376. package/dist/core/components/viewers/Data/details/FieldValue.js +2 -2
  377. package/dist/core/components/viewers/Data/details/FieldValue.js.map +1 -1
  378. package/dist/core/components/viewers/Data/details/FileUpload.d.ts.map +1 -1
  379. package/dist/core/components/viewers/Data/details/FileUpload.js +2 -2
  380. package/dist/core/components/viewers/Data/details/FileUpload.js.map +1 -1
  381. package/dist/core/components/viewers/Data/details/FilterFiles.d.ts.map +1 -1
  382. package/dist/core/components/viewers/Data/details/FilterFiles.js +2 -2
  383. package/dist/core/components/viewers/Data/details/FilterFiles.js.map +1 -1
  384. package/dist/core/components/viewers/Data/details/TabSidebar.d.ts.map +1 -1
  385. package/dist/core/components/viewers/Data/details/TabSidebar.js +3 -3
  386. package/dist/core/components/viewers/Data/details/TabSidebar.js.map +1 -1
  387. package/dist/core/components/viewers/Data/files/DatatableFileAdder.d.ts.map +1 -1
  388. package/dist/core/components/viewers/Data/files/DatatableFileAdder.js +3 -3
  389. package/dist/core/components/viewers/Data/files/DatatableFileAdder.js.map +1 -1
  390. package/dist/core/components/viewers/Data/files/FileDetails.d.ts.map +1 -1
  391. package/dist/core/components/viewers/Data/files/FileDetails.js +8 -8
  392. package/dist/core/components/viewers/Data/files/FileDetails.js.map +1 -1
  393. package/dist/core/components/viewers/Data/files/FileMoreOptions.d.ts.map +1 -1
  394. package/dist/core/components/viewers/Data/files/FileMoreOptions.js +8 -8
  395. package/dist/core/components/viewers/Data/files/FileMoreOptions.js.map +1 -1
  396. package/dist/core/components/viewers/Data/files/FilePreview.d.ts +1 -1
  397. package/dist/core/components/viewers/Data/files/FilePreview.d.ts.map +1 -1
  398. package/dist/core/components/viewers/Data/files/FilePreview.js +1 -1
  399. package/dist/core/components/viewers/Data/files/FilePreview.js.map +1 -1
  400. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.d.ts.map +1 -1
  401. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.js +3 -3
  402. package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.js.map +1 -1
  403. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.d.ts.map +1 -1
  404. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js +2 -2
  405. package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js.map +1 -1
  406. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.d.ts.map +1 -1
  407. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.js +6 -6
  408. package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.js.map +1 -1
  409. package/dist/core/components/viewers/Data/siteDetails/AddSite.d.ts.map +1 -1
  410. package/dist/core/components/viewers/Data/siteDetails/AddSite.js +5 -5
  411. package/dist/core/components/viewers/Data/siteDetails/AddSite.js.map +1 -1
  412. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.d.ts.map +1 -1
  413. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js +10 -10
  414. package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js.map +1 -1
  415. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.d.ts.map +1 -1
  416. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.js +9 -9
  417. package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.js.map +1 -1
  418. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.d.ts.map +1 -1
  419. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.js +11 -11
  420. package/dist/core/components/viewers/Data/siteDetails/SiteDetails.js.map +1 -1
  421. package/dist/core/components/viewers/Data/userDetails/AddUser.d.ts.map +1 -1
  422. package/dist/core/components/viewers/Data/userDetails/AddUser.js +3 -3
  423. package/dist/core/components/viewers/Data/userDetails/AddUser.js.map +1 -1
  424. package/dist/core/components/viewers/Data/userDetails/UserDetails.d.ts.map +1 -1
  425. package/dist/core/components/viewers/Data/userDetails/UserDetails.js +12 -12
  426. package/dist/core/components/viewers/Data/userDetails/UserDetails.js.map +1 -1
  427. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.d.ts.map +1 -1
  428. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.js +12 -12
  429. package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.js.map +1 -1
  430. package/dist/core/components/viewers/Data/utils/Columns.d.ts +2 -2
  431. package/dist/core/components/viewers/Data/utils/Columns.d.ts.map +1 -1
  432. package/dist/core/components/viewers/Data/utils/Columns.js +7 -7
  433. package/dist/core/components/viewers/Data/utils/Columns.js.map +1 -1
  434. package/dist/core/components/viewers/Data/utils/Headers.d.ts.map +1 -1
  435. package/dist/core/components/viewers/Data/utils/Headers.js.map +1 -1
  436. package/dist/core/components/viewers/Data/utils/csvUtils.js.map +1 -1
  437. package/dist/core/components/viewers/Data/utils/positionParser.js.map +1 -1
  438. package/dist/core/components/viewers/Data/utils/useViewerData.d.ts +2 -2
  439. package/dist/core/components/viewers/Data/utils/useViewerData.d.ts.map +1 -1
  440. package/dist/core/components/viewers/Data/utils/useViewerData.js.map +1 -1
  441. package/dist/core/components/viewers/Viewer.d.ts +1 -1
  442. package/dist/core/components/viewers/Viewer.d.ts.map +1 -1
  443. package/dist/core/components/viewers/Viewer.js +6 -6
  444. package/dist/core/components/viewers/Viewer.js.map +1 -1
  445. package/dist/core/components/viewers/bim/BimToolbar.d.ts.map +1 -1
  446. package/dist/core/components/viewers/bim/BimToolbar.js +1 -1
  447. package/dist/core/components/viewers/bim/BimToolbar.js.map +1 -1
  448. package/dist/core/components/viewers/bim/BimViewer.d.ts.map +1 -1
  449. package/dist/core/components/viewers/bim/BimViewer.js +7 -7
  450. package/dist/core/components/viewers/bim/BimViewer.js.map +1 -1
  451. package/dist/core/components/viewers/bim/src/BCFTopicsManager.d.ts.map +1 -1
  452. package/dist/core/components/viewers/bim/src/BCFTopicsManager.js.map +1 -1
  453. package/dist/core/components/viewers/bim/src/BIMManager/index.d.ts +2 -2
  454. package/dist/core/components/viewers/bim/src/BIMManager/index.d.ts.map +1 -1
  455. package/dist/core/components/viewers/bim/src/BIMManager/index.js.map +1 -1
  456. package/dist/core/components/viewers/bim/src/BimLoadingState/index.d.ts.map +1 -1
  457. package/dist/core/components/viewers/bim/src/BimLoadingState/index.js +9 -9
  458. package/dist/core/components/viewers/bim/src/BimLoadingState/index.js.map +1 -1
  459. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.d.ts.map +1 -1
  460. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.js +1 -1
  461. package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.js.map +1 -1
  462. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.d.ts +1 -1
  463. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.d.ts.map +1 -1
  464. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.js +1 -1
  465. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.js.map +1 -1
  466. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.d.ts +1 -1
  467. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.d.ts.map +1 -1
  468. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.js +5 -5
  469. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.js.map +1 -1
  470. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.d.ts +1 -1
  471. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.d.ts.map +1 -1
  472. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.js +9 -9
  473. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.js.map +1 -1
  474. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.d.ts.map +1 -1
  475. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.js +6 -6
  476. package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.js.map +1 -1
  477. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.d.ts.map +1 -1
  478. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.js +4 -4
  479. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.js.map +1 -1
  480. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  481. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  482. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js +10 -10
  483. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  484. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
  485. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js +9 -9
  486. package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
  487. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.d.ts.map +1 -1
  488. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.js +1 -1
  489. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.js.map +1 -1
  490. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.d.ts.map +1 -1
  491. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.js +2 -2
  492. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.js.map +1 -1
  493. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.d.ts.map +1 -1
  494. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js +1 -1
  495. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js.map +1 -1
  496. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.d.ts.map +1 -1
  497. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.js +6 -6
  498. package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.js.map +1 -1
  499. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.d.ts +1 -1
  500. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.d.ts.map +1 -1
  501. package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.js.map +1 -1
  502. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.d.ts.map +1 -1
  503. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.js +2 -2
  504. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.js.map +1 -1
  505. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.d.ts.map +1 -1
  506. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.js +5 -5
  507. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.js.map +1 -1
  508. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.d.ts.map +1 -1
  509. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.js +3 -3
  510. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.js.map +1 -1
  511. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.d.ts.map +1 -1
  512. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.js +3 -3
  513. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.js.map +1 -1
  514. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.d.ts.map +1 -1
  515. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.js +4 -4
  516. package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.js.map +1 -1
  517. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.d.ts +1 -1
  518. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.d.ts.map +1 -1
  519. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.js +1 -1
  520. package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.js.map +1 -1
  521. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.d.ts.map +1 -1
  522. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.js +5 -5
  523. package/dist/core/components/viewers/bim/src/BimSidebar/src/index.js.map +1 -1
  524. package/dist/core/components/viewers/bim/src/CameraProjection.d.ts.map +1 -1
  525. package/dist/core/components/viewers/bim/src/CameraProjection.js.map +1 -1
  526. package/dist/core/components/viewers/bim/src/ClippingPlane.d.ts.map +1 -1
  527. package/dist/core/components/viewers/bim/src/ClippingPlane.js +1 -1
  528. package/dist/core/components/viewers/bim/src/ClippingPlane.js.map +1 -1
  529. package/dist/core/components/viewers/bim/src/Cursor.d.ts +1 -1
  530. package/dist/core/components/viewers/bim/src/Cursor.d.ts.map +1 -1
  531. package/dist/core/components/viewers/bim/src/Cursor.js.map +1 -1
  532. package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts +1 -1
  533. package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts.map +1 -1
  534. package/dist/core/components/viewers/bim/src/DXFLoader/index.js +1 -1
  535. package/dist/core/components/viewers/bim/src/DXFLoader/index.js.map +1 -1
  536. package/dist/core/components/viewers/bim/src/ElevationsTool/index.d.ts +1 -1
  537. package/dist/core/components/viewers/bim/src/ElevationsTool/index.d.ts.map +1 -1
  538. package/dist/core/components/viewers/bim/src/ElevationsTool/index.js +1 -1
  539. package/dist/core/components/viewers/bim/src/ElevationsTool/index.js.map +1 -1
  540. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.d.ts +1 -1
  541. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.d.ts.map +1 -1
  542. package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.js.map +1 -1
  543. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.d.ts +4 -4
  544. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.d.ts.map +1 -1
  545. package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.js.map +1 -1
  546. package/dist/core/components/viewers/bim/src/FitCamera.d.ts.map +1 -1
  547. package/dist/core/components/viewers/bim/src/FitCamera.js +1 -1
  548. package/dist/core/components/viewers/bim/src/FitCamera.js.map +1 -1
  549. package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts +3 -3
  550. package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts.map +1 -1
  551. package/dist/core/components/viewers/bim/src/FloorplanTool/index.js +1 -1
  552. package/dist/core/components/viewers/bim/src/FloorplanTool/index.js.map +1 -1
  553. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.d.ts +3 -3
  554. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.d.ts.map +1 -1
  555. package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.js.map +1 -1
  556. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.d.ts +1 -1
  557. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.d.ts.map +1 -1
  558. package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.js.map +1 -1
  559. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.d.ts +2 -2
  560. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.d.ts.map +1 -1
  561. package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.js.map +1 -1
  562. package/dist/core/components/viewers/bim/src/GhostMode.d.ts +1 -1
  563. package/dist/core/components/viewers/bim/src/GhostMode.d.ts.map +1 -1
  564. package/dist/core/components/viewers/bim/src/GhostMode.js.map +1 -1
  565. package/dist/core/components/viewers/bim/src/Highlighter/index.d.ts.map +1 -1
  566. package/dist/core/components/viewers/bim/src/Highlighter/index.js +1 -1
  567. package/dist/core/components/viewers/bim/src/Highlighter/index.js.map +1 -1
  568. package/dist/core/components/viewers/bim/src/IDSManager/index.d.ts.map +1 -1
  569. package/dist/core/components/viewers/bim/src/IDSManager/index.js +3 -3
  570. package/dist/core/components/viewers/bim/src/IDSManager/index.js.map +1 -1
  571. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.d.ts.map +1 -1
  572. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.js +2 -2
  573. package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.js.map +1 -1
  574. package/dist/core/components/viewers/bim/src/LoadIfcAsFragments.d.ts.map +1 -1
  575. package/dist/core/components/viewers/bim/src/LoadIfcAsFragments.js.map +1 -1
  576. package/dist/core/components/viewers/bim/src/LoadModels.d.ts +1 -1
  577. package/dist/core/components/viewers/bim/src/LoadModels.d.ts.map +1 -1
  578. package/dist/core/components/viewers/bim/src/LoadModels.js +1 -1
  579. package/dist/core/components/viewers/bim/src/LoadModels.js.map +1 -1
  580. package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts +1 -1
  581. package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts.map +1 -1
  582. package/dist/core/components/viewers/bim/src/ModelManager/index.js +4 -4
  583. package/dist/core/components/viewers/bim/src/ModelManager/index.js.map +1 -1
  584. package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts +1 -1
  585. package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts.map +1 -1
  586. package/dist/core/components/viewers/bim/src/SimpleBimViewer.js +8 -8
  587. package/dist/core/components/viewers/bim/src/SimpleBimViewer.js.map +1 -1
  588. package/dist/core/components/viewers/bim/src/SpatialStructure.js.map +1 -1
  589. package/dist/core/components/viewers/bim/src/ViewportGizmo.d.ts.map +1 -1
  590. package/dist/core/components/viewers/bim/src/ViewportGizmo.js +2 -2
  591. package/dist/core/components/viewers/bim/src/ViewportGizmo.js.map +1 -1
  592. package/dist/core/components/viewers/bim/src/lib/CameraController.d.ts +1 -1
  593. package/dist/core/components/viewers/bim/src/lib/CameraController.d.ts.map +1 -1
  594. package/dist/core/components/viewers/bim/src/lib/CameraController.js.map +1 -1
  595. package/dist/core/components/viewers/bim/src/lib/ChromeController.d.ts +1 -1
  596. package/dist/core/components/viewers/bim/src/lib/ChromeController.d.ts.map +1 -1
  597. package/dist/core/components/viewers/bim/src/lib/ChromeController.js.map +1 -1
  598. package/dist/core/components/viewers/bim/src/lib/ClipController.d.ts +1 -1
  599. package/dist/core/components/viewers/bim/src/lib/ClipController.d.ts.map +1 -1
  600. package/dist/core/components/viewers/bim/src/lib/ClipController.js.map +1 -1
  601. package/dist/core/components/viewers/bim/src/lib/GridController.d.ts.map +1 -1
  602. package/dist/core/components/viewers/bim/src/lib/GridController.js.map +1 -1
  603. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.d.ts.map +1 -1
  604. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js +1 -1
  605. package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js.map +1 -1
  606. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts +2 -2
  607. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts.map +1 -1
  608. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js +1 -1
  609. package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js.map +1 -1
  610. package/dist/core/components/viewers/bim/src/lib/drawingProjection.d.ts +1 -1
  611. package/dist/core/components/viewers/bim/src/lib/drawingProjection.d.ts.map +1 -1
  612. package/dist/core/components/viewers/bim/src/lib/drawingProjection.js.map +1 -1
  613. package/dist/core/components/viewers/bim/src/lib/useBuildingName.d.ts.map +1 -1
  614. package/dist/core/components/viewers/bim/src/lib/useBuildingName.js.map +1 -1
  615. package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js +1 -1
  616. package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js.map +1 -1
  617. package/dist/core/components/viewers/bim/src/propertiesMenu/index.d.ts.map +1 -1
  618. package/dist/core/components/viewers/bim/src/propertiesMenu/index.js +4 -4
  619. package/dist/core/components/viewers/bim/src/propertiesMenu/index.js.map +1 -1
  620. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.d.ts.map +1 -1
  621. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.js +1 -1
  622. package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.js.map +1 -1
  623. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.d.ts.map +1 -1
  624. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.js +2 -2
  625. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.js.map +1 -1
  626. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertyGroup.d.ts.map +1 -1
  627. package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertyGroup.js.map +1 -1
  628. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.d.ts +1 -1
  629. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.d.ts.map +1 -1
  630. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.js +2 -2
  631. package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.js.map +1 -1
  632. package/dist/core/components/viewers/bim/src/propertiesMenu/src/utils.d.ts.map +1 -1
  633. package/dist/core/components/viewers/bim/src/propertiesMenu/src/utils.js.map +1 -1
  634. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.d.ts.map +1 -1
  635. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js +9 -9
  636. package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js.map +1 -1
  637. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts +1 -1
  638. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts.map +1 -1
  639. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js +2 -2
  640. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js.map +1 -1
  641. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.d.ts.map +1 -1
  642. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.js +2 -2
  643. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.js.map +1 -1
  644. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts +1 -1
  645. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts.map +1 -1
  646. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.js.map +1 -1
  647. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.d.ts.map +1 -1
  648. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.js +3 -3
  649. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.js.map +1 -1
  650. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.d.ts +1 -1
  651. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.d.ts.map +1 -1
  652. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.js.map +1 -1
  653. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.d.ts +2 -2
  654. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.d.ts.map +1 -1
  655. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.js.map +1 -1
  656. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts +5 -5
  657. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts.map +1 -1
  658. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.js.map +1 -1
  659. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.d.ts.map +1 -1
  660. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js +2 -2
  661. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js.map +1 -1
  662. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.d.ts.map +1 -1
  663. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js +1 -1
  664. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js.map +1 -1
  665. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.d.ts +1 -1
  666. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.d.ts.map +1 -1
  667. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.js +1 -1
  668. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.js.map +1 -1
  669. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.d.ts.map +1 -1
  670. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.js +4 -4
  671. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.js.map +1 -1
  672. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts +2 -2
  673. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts.map +1 -1
  674. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js +4 -4
  675. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js.map +1 -1
  676. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.d.ts.map +1 -1
  677. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.js +6 -6
  678. package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.js.map +1 -1
  679. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.d.ts.map +1 -1
  680. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.js +2 -2
  681. package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.js.map +1 -1
  682. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.d.ts +1 -1
  683. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.d.ts.map +1 -1
  684. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.js +6 -6
  685. package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.js.map +1 -1
  686. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.d.ts +1 -1
  687. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.d.ts.map +1 -1
  688. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.js +3 -3
  689. package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.js.map +1 -1
  690. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.d.ts +1 -1
  691. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.d.ts.map +1 -1
  692. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.js +2 -2
  693. package/dist/core/components/viewers/bim/src/tools/FitCameraTool.js.map +1 -1
  694. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.d.ts +1 -1
  695. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.d.ts.map +1 -1
  696. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.js +4 -4
  697. package/dist/core/components/viewers/bim/src/tools/InspectBimTool.js.map +1 -1
  698. package/dist/core/components/viewers/bim/src/tools/bimToolbar.d.ts +1 -1
  699. package/dist/core/components/viewers/bim/src/tools/bimToolbar.d.ts.map +1 -1
  700. package/dist/core/components/viewers/bim/src/tools/bimToolbar.js +4 -4
  701. package/dist/core/components/viewers/bim/src/tools/bimToolbar.js.map +1 -1
  702. package/dist/core/components/viewers/bim/src/tools/measureBimTool.d.ts +1 -1
  703. package/dist/core/components/viewers/bim/src/tools/measureBimTool.d.ts.map +1 -1
  704. package/dist/core/components/viewers/bim/src/tools/measureBimTool.js +5 -5
  705. package/dist/core/components/viewers/bim/src/tools/measureBimTool.js.map +1 -1
  706. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.d.ts +1 -1
  707. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.d.ts.map +1 -1
  708. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.js +5 -5
  709. package/dist/core/components/viewers/bim/src/tools/selectionBimTool.js.map +1 -1
  710. package/dist/core/components/viewers/bim/src/tools/shareBimTool.d.ts +1 -1
  711. package/dist/core/components/viewers/bim/src/tools/shareBimTool.d.ts.map +1 -1
  712. package/dist/core/components/viewers/bim/src/tools/shareBimTool.js.map +1 -1
  713. package/dist/core/components/viewers/bim/utils/GizmoController.d.ts +1 -1
  714. package/dist/core/components/viewers/bim/utils/GizmoController.d.ts.map +1 -1
  715. package/dist/core/components/viewers/bim/utils/GizmoController.js.map +1 -1
  716. package/dist/core/components/viewers/bim/utils/setCameraLookAt.d.ts +1 -1
  717. package/dist/core/components/viewers/bim/utils/setCameraLookAt.d.ts.map +1 -1
  718. package/dist/core/components/viewers/bim/utils/setCameraLookAt.js.map +1 -1
  719. package/dist/core/components/viewers/map/MapViewer.d.ts +1 -1
  720. package/dist/core/components/viewers/map/MapViewer.d.ts.map +1 -1
  721. package/dist/core/components/viewers/map/MapViewer.js +7 -7
  722. package/dist/core/components/viewers/map/MapViewer.js.map +1 -1
  723. package/dist/core/components/viewers/map/datasets/AddPortalDialog.d.ts.map +1 -1
  724. package/dist/core/components/viewers/map/datasets/AddPortalDialog.js +4 -4
  725. package/dist/core/components/viewers/map/datasets/AddPortalDialog.js.map +1 -1
  726. package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts +1 -1
  727. package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts.map +1 -1
  728. package/dist/core/components/viewers/map/datasets/DatasetDetails.js +4 -4
  729. package/dist/core/components/viewers/map/datasets/DatasetDetails.js.map +1 -1
  730. package/dist/core/components/viewers/map/datasets/DatasetManager/index.d.ts.map +1 -1
  731. package/dist/core/components/viewers/map/datasets/DatasetManager/index.js +13 -13
  732. package/dist/core/components/viewers/map/datasets/DatasetManager/index.js.map +1 -1
  733. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.d.ts.map +1 -1
  734. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.js +2 -2
  735. package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.js.map +1 -1
  736. package/dist/core/components/viewers/map/datasets/DatasetSkeleton.d.ts.map +1 -1
  737. package/dist/core/components/viewers/map/datasets/DatasetSkeleton.js.map +1 -1
  738. package/dist/core/components/viewers/map/datasets/Filters.d.ts.map +1 -1
  739. package/dist/core/components/viewers/map/datasets/Filters.js +2 -2
  740. package/dist/core/components/viewers/map/datasets/Filters.js.map +1 -1
  741. package/dist/core/components/viewers/map/datasets/NestedFilter.d.ts.map +1 -1
  742. package/dist/core/components/viewers/map/datasets/NestedFilter.js +1 -1
  743. package/dist/core/components/viewers/map/datasets/NestedFilter.js.map +1 -1
  744. package/dist/core/components/viewers/map/datasets/RowActions.d.ts.map +1 -1
  745. package/dist/core/components/viewers/map/datasets/RowActions.js +3 -3
  746. package/dist/core/components/viewers/map/datasets/RowActions.js.map +1 -1
  747. package/dist/core/components/viewers/map/datasets/data.d.ts +1 -1
  748. package/dist/core/components/viewers/map/datasets/data.d.ts.map +1 -1
  749. package/dist/core/components/viewers/map/datasets/data.js +2 -2
  750. package/dist/core/components/viewers/map/datasets/data.js.map +1 -1
  751. package/dist/core/components/viewers/map/datasets/index.d.ts +1 -1
  752. package/dist/core/components/viewers/map/datasets/index.d.ts.map +1 -1
  753. package/dist/core/components/viewers/map/datasets/index.js +11 -11
  754. package/dist/core/components/viewers/map/datasets/index.js.map +1 -1
  755. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.d.ts +1 -1
  756. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.d.ts.map +1 -1
  757. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.js +2 -2
  758. package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.js.map +1 -1
  759. package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.d.ts.map +1 -1
  760. package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.js.map +1 -1
  761. package/dist/core/components/viewers/map/datasets/src/cache.js.map +1 -1
  762. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.d.ts +1 -1
  763. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.d.ts.map +1 -1
  764. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js +1 -1
  765. package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js.map +1 -1
  766. package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts +1 -1
  767. package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts.map +1 -1
  768. package/dist/core/components/viewers/map/datasets/src/localDatasets.js +3 -3
  769. package/dist/core/components/viewers/map/datasets/src/localDatasets.js.map +1 -1
  770. package/dist/core/components/viewers/map/datasets/src/minioDatasets.d.ts.map +1 -1
  771. package/dist/core/components/viewers/map/datasets/src/minioDatasets.js.map +1 -1
  772. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.d.ts +1 -1
  773. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.d.ts.map +1 -1
  774. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js +1 -1
  775. package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js.map +1 -1
  776. package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts +1 -1
  777. package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts.map +1 -1
  778. package/dist/core/components/viewers/map/datasets/src/publishedTiles.js.map +1 -1
  779. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.d.ts.map +1 -1
  780. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.js +1 -1
  781. package/dist/core/components/viewers/map/datasets/src/socrataDatasets.js.map +1 -1
  782. package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts +1 -12
  783. package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts.map +1 -1
  784. package/dist/core/components/viewers/map/datasets/src/urlSources.js +1 -1
  785. package/dist/core/components/viewers/map/datasets/src/urlSources.js.map +1 -1
  786. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.d.ts.map +1 -1
  787. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.js +1 -1
  788. package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.js.map +1 -1
  789. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.d.ts +1 -1
  790. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.d.ts.map +1 -1
  791. package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.js.map +1 -1
  792. package/dist/core/components/viewers/map/datasets/utils.d.ts +1 -1
  793. package/dist/core/components/viewers/map/datasets/utils.d.ts.map +1 -1
  794. package/dist/core/components/viewers/map/datasets/utils.js.map +1 -1
  795. package/dist/core/components/viewers/map/legends/MapLegendHost.d.ts.map +1 -1
  796. package/dist/core/components/viewers/map/legends/MapLegendHost.js +3 -3
  797. package/dist/core/components/viewers/map/legends/MapLegendHost.js.map +1 -1
  798. package/dist/core/components/viewers/map/src/Geocoder.d.ts.map +1 -1
  799. package/dist/core/components/viewers/map/src/Geocoder.js +8 -8
  800. package/dist/core/components/viewers/map/src/Geocoder.js.map +1 -1
  801. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.d.ts +1 -1
  802. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.d.ts.map +1 -1
  803. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.js.map +1 -1
  804. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.d.ts +1 -1
  805. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.d.ts.map +1 -1
  806. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.js +3 -3
  807. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.js.map +1 -1
  808. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.d.ts +1 -1
  809. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.d.ts.map +1 -1
  810. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.js +11 -10
  811. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.js.map +1 -1
  812. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.d.ts.map +1 -1
  813. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js +23 -55
  814. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js.map +1 -1
  815. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.d.ts.map +1 -1
  816. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.js +4 -4
  817. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.js.map +1 -1
  818. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.d.ts.map +1 -1
  819. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.js +2 -2
  820. package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.js.map +1 -1
  821. package/dist/core/components/viewers/map/src/MapLayers/index.d.ts.map +1 -1
  822. package/dist/core/components/viewers/map/src/MapLayers/index.js +5 -5
  823. package/dist/core/components/viewers/map/src/MapLayers/index.js.map +1 -1
  824. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.d.ts.map +1 -1
  825. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js +5 -5
  826. package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js.map +1 -1
  827. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.d.ts.map +1 -1
  828. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.js +4 -4
  829. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.js.map +1 -1
  830. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.d.ts +1 -1
  831. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.d.ts.map +1 -1
  832. package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.js.map +1 -1
  833. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.d.ts.map +1 -1
  834. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.js +9 -9
  835. package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.js.map +1 -1
  836. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.d.ts.map +1 -1
  837. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js +1 -1
  838. package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js.map +1 -1
  839. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.d.ts.map +1 -1
  840. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.js +3 -3
  841. package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.js.map +1 -1
  842. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts +1 -1
  843. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts.map +1 -1
  844. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js +1 -1
  845. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js.map +1 -1
  846. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileIcon.d.ts.map +1 -1
  847. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileIcon.js.map +1 -1
  848. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.d.ts +1 -1
  849. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.d.ts.map +1 -1
  850. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.js +3 -3
  851. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.js.map +1 -1
  852. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.d.ts.map +1 -1
  853. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.js +2 -2
  854. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.js.map +1 -1
  855. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileMarker.d.ts.map +1 -1
  856. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileMarker.js.map +1 -1
  857. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.d.ts.map +1 -1
  858. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.js +6 -6
  859. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.js.map +1 -1
  860. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts +1 -1
  861. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts.map +1 -1
  862. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.js.map +1 -1
  863. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.d.ts +1 -1
  864. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.d.ts.map +1 -1
  865. package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.js.map +1 -1
  866. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.d.ts.map +1 -1
  867. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.js.map +1 -1
  868. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.d.ts.map +1 -1
  869. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js +3 -3
  870. package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js.map +1 -1
  871. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.d.ts.map +1 -1
  872. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.js +3 -3
  873. package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.js.map +1 -1
  874. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.d.ts.map +1 -1
  875. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.js +11 -11
  876. package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.js.map +1 -1
  877. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.d.ts.map +1 -1
  878. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.js +2 -2
  879. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.js.map +1 -1
  880. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.d.ts.map +1 -1
  881. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.js +4 -4
  882. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.js.map +1 -1
  883. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.d.ts +1 -1
  884. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.d.ts.map +1 -1
  885. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.js.map +1 -1
  886. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/siteGeometry.d.ts.map +1 -1
  887. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/siteGeometry.js.map +1 -1
  888. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/useShowSitesOnMap.d.ts.map +1 -1
  889. package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/useShowSitesOnMap.js.map +1 -1
  890. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.d.ts +1 -1
  891. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.d.ts.map +1 -1
  892. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.js +1 -1
  893. package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.js.map +1 -1
  894. package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts +1 -1
  895. package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts.map +1 -1
  896. package/dist/core/components/viewers/map/src/MapSidebar/index.js +4 -4
  897. package/dist/core/components/viewers/map/src/MapSidebar/index.js.map +1 -1
  898. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.d.ts +1 -1
  899. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.d.ts.map +1 -1
  900. package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.js.map +1 -1
  901. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.d.ts.map +1 -1
  902. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.js +2 -2
  903. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.js.map +1 -1
  904. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  905. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  906. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js +5 -5
  907. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  908. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
  909. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js +5 -5
  910. package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
  911. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.d.ts +1 -1
  912. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.d.ts.map +1 -1
  913. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.js +4 -4
  914. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.js.map +1 -1
  915. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.d.ts.map +1 -1
  916. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.js +4 -4
  917. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.js.map +1 -1
  918. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.d.ts.map +1 -1
  919. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.js +2 -2
  920. package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.js.map +1 -1
  921. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.d.ts +1 -1
  922. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.d.ts.map +1 -1
  923. package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.js.map +1 -1
  924. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/index.d.ts.map +1 -1
  925. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/index.js.map +1 -1
  926. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.d.ts.map +1 -1
  927. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.js +3 -3
  928. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.js.map +1 -1
  929. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.d.ts.map +1 -1
  930. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.js +3 -3
  931. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.js.map +1 -1
  932. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.d.ts.map +1 -1
  933. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js +3 -3
  934. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js.map +1 -1
  935. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.d.ts.map +1 -1
  936. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js +3 -3
  937. package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js.map +1 -1
  938. package/dist/core/components/viewers/map/src/SimpleMap.d.ts.map +1 -1
  939. package/dist/core/components/viewers/map/src/SimpleMap.js +1 -1
  940. package/dist/core/components/viewers/map/src/SimpleMap.js.map +1 -1
  941. package/dist/core/components/viewers/map/src/compare/AddItem.d.ts +1 -1
  942. package/dist/core/components/viewers/map/src/compare/AddItem.d.ts.map +1 -1
  943. package/dist/core/components/viewers/map/src/compare/AddItem.js +6 -6
  944. package/dist/core/components/viewers/map/src/compare/AddItem.js.map +1 -1
  945. package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts +2 -2
  946. package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts.map +1 -1
  947. package/dist/core/components/viewers/map/src/compare/CompareDialog.js +5 -5
  948. package/dist/core/components/viewers/map/src/compare/CompareDialog.js.map +1 -1
  949. package/dist/core/components/viewers/map/src/compare/index.d.ts +1 -1
  950. package/dist/core/components/viewers/map/src/compare/index.d.ts.map +1 -1
  951. package/dist/core/components/viewers/map/src/compare/index.js +6 -6
  952. package/dist/core/components/viewers/map/src/compare/index.js.map +1 -1
  953. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.d.ts.map +1 -1
  954. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.js +3 -3
  955. package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.js.map +1 -1
  956. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.d.ts.map +1 -1
  957. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.js +5 -5
  958. package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.js.map +1 -1
  959. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.d.ts.map +1 -1
  960. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.js +3 -3
  961. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.js.map +1 -1
  962. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.d.ts.map +1 -1
  963. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.js +7 -7
  964. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.js.map +1 -1
  965. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.d.ts.map +1 -1
  966. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.js +1 -1
  967. package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.js.map +1 -1
  968. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.d.ts +2 -2
  969. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.d.ts.map +1 -1
  970. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.js +8 -8
  971. package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.js.map +1 -1
  972. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts +2 -2
  973. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts.map +1 -1
  974. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.js +1 -1
  975. package/dist/core/components/viewers/map/src/tools/DatasetMapTool.js.map +1 -1
  976. package/dist/core/components/viewers/map/src/tools/mapTools.d.ts +2 -2
  977. package/dist/core/components/viewers/map/src/tools/mapTools.d.ts.map +1 -1
  978. package/dist/core/components/viewers/map/src/tools/mapTools.js +4 -4
  979. package/dist/core/components/viewers/map/src/tools/mapTools.js.map +1 -1
  980. package/dist/core/components/viewers/map/src/tools/measureMapTool.d.ts +1 -1
  981. package/dist/core/components/viewers/map/src/tools/measureMapTool.d.ts.map +1 -1
  982. package/dist/core/components/viewers/map/src/tools/measureMapTool.js +3 -3
  983. package/dist/core/components/viewers/map/src/tools/measureMapTool.js.map +1 -1
  984. package/dist/core/components/viewers/map/src/tools/shareMapTool.d.ts +1 -1
  985. package/dist/core/components/viewers/map/src/tools/shareMapTool.d.ts.map +1 -1
  986. package/dist/core/components/viewers/map/src/tools/shareMapTool.js.map +1 -1
  987. package/dist/core/components/viewers/map/utils/ClusterManager.d.ts +1 -1
  988. package/dist/core/components/viewers/map/utils/ClusterManager.d.ts.map +1 -1
  989. package/dist/core/components/viewers/map/utils/ClusterManager.js.map +1 -1
  990. package/dist/core/components/viewers/map/utils/MarkerManager.d.ts +1 -1
  991. package/dist/core/components/viewers/map/utils/MarkerManager.d.ts.map +1 -1
  992. package/dist/core/components/viewers/map/utils/MarkerManager.js.map +1 -1
  993. package/dist/core/components/viewers/map/utils/extractCoordinates.js.map +1 -1
  994. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.d.ts +1 -1
  995. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.d.ts.map +1 -1
  996. package/dist/core/components/viewers/map/utils/fitBuildingsBounds.js.map +1 -1
  997. package/dist/core/components/viewers/map/utils/flyToEach.d.ts +1 -1
  998. package/dist/core/components/viewers/map/utils/flyToEach.d.ts.map +1 -1
  999. package/dist/core/components/viewers/map/utils/flyToEach.js.map +1 -1
  1000. package/dist/core/components/viewers/map/utils/geocoder.d.ts +1 -1
  1001. package/dist/core/components/viewers/map/utils/geocoder.d.ts.map +1 -1
  1002. package/dist/core/components/viewers/map/utils/geocoder.js +1 -1
  1003. package/dist/core/components/viewers/map/utils/geocoder.js.map +1 -1
  1004. package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts +1 -1
  1005. package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts.map +1 -1
  1006. package/dist/core/components/viewers/map/utils/geocoding/adapters.js.map +1 -1
  1007. package/dist/core/components/viewers/map/utils/geocoding/index.d.ts +1 -1
  1008. package/dist/core/components/viewers/map/utils/geocoding/index.d.ts.map +1 -1
  1009. package/dist/core/components/viewers/map/utils/geocoding/index.js +1 -1
  1010. package/dist/core/components/viewers/map/utils/geocoding/index.js.map +1 -1
  1011. package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts +1 -1
  1012. package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts.map +1 -1
  1013. package/dist/core/components/viewers/map/utils/geocoding/osm.js +1 -1
  1014. package/dist/core/components/viewers/map/utils/geocoding/osm.js.map +1 -1
  1015. package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts +1 -1
  1016. package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts.map +1 -1
  1017. package/dist/core/components/viewers/map/utils/geocoding/pelias.js.map +1 -1
  1018. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.d.ts +1 -1
  1019. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.d.ts.map +1 -1
  1020. package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.js.map +1 -1
  1021. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.d.ts.map +1 -1
  1022. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js +1 -1
  1023. package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js.map +1 -1
  1024. package/dist/core/components/viewers/pointcloud/PointCloudViewer.d.ts.map +1 -1
  1025. package/dist/core/components/viewers/pointcloud/PointCloudViewer.js +5 -5
  1026. package/dist/core/components/viewers/pointcloud/PointCloudViewer.js.map +1 -1
  1027. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.d.ts.map +1 -1
  1028. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.js +7 -7
  1029. package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.js.map +1 -1
  1030. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudManagementTable.d.ts.map +1 -1
  1031. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudManagementTable.js.map +1 -1
  1032. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.d.ts.map +1 -1
  1033. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.js +15 -15
  1034. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.js.map +1 -1
  1035. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.d.ts.map +1 -1
  1036. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.js +3 -3
  1037. package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.js.map +1 -1
  1038. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.d.ts +1 -1
  1039. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.d.ts.map +1 -1
  1040. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.js +1 -1
  1041. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.js.map +1 -1
  1042. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.d.ts.map +1 -1
  1043. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.js +2 -2
  1044. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.js.map +1 -1
  1045. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.d.ts.map +1 -1
  1046. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js +3 -3
  1047. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js.map +1 -1
  1048. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
  1049. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
  1050. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js +4 -4
  1051. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js.map +1 -1
  1052. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts +1 -1
  1053. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts.map +1 -1
  1054. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js +5 -5
  1055. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js.map +1 -1
  1056. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.d.ts.map +1 -1
  1057. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.js +1 -1
  1058. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.js.map +1 -1
  1059. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.d.ts.map +1 -1
  1060. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.js +3 -3
  1061. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.js.map +1 -1
  1062. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.d.ts.map +1 -1
  1063. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.js +4 -4
  1064. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.js.map +1 -1
  1065. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.d.ts.map +1 -1
  1066. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.js +10 -10
  1067. package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.js.map +1 -1
  1068. package/dist/core/components/viewers/pointcloud/src/ViewportGizmo.js.map +1 -1
  1069. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.d.ts +1 -1
  1070. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.d.ts.map +1 -1
  1071. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.js +3 -3
  1072. package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.js.map +1 -1
  1073. package/dist/core/components/viewers/pointcloud/src/tools/FitToScreen.d.ts.map +1 -1
  1074. package/dist/core/components/viewers/pointcloud/src/tools/FitToScreen.js.map +1 -1
  1075. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AngleMeasurement.d.ts.map +1 -1
  1076. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AngleMeasurement.js.map +1 -1
  1077. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AreaMeasurement.d.ts.map +1 -1
  1078. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AreaMeasurement.js.map +1 -1
  1079. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/LineMeasurement.d.ts.map +1 -1
  1080. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/LineMeasurement.js.map +1 -1
  1081. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.d.ts +1 -1
  1082. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.d.ts.map +1 -1
  1083. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.js +6 -6
  1084. package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.js.map +1 -1
  1085. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.d.ts.map +1 -1
  1086. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.js +2 -2
  1087. package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.js.map +1 -1
  1088. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.d.ts.map +1 -1
  1089. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js +2 -2
  1090. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js.map +1 -1
  1091. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.d.ts.map +1 -1
  1092. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.js +3 -3
  1093. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.js.map +1 -1
  1094. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.d.ts.map +1 -1
  1095. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.js +1 -1
  1096. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.js.map +1 -1
  1097. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.d.ts.map +1 -1
  1098. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.js +1 -1
  1099. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.js.map +1 -1
  1100. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.d.ts.map +1 -1
  1101. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.js +1 -1
  1102. package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.js.map +1 -1
  1103. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.d.ts.map +1 -1
  1104. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.js +4 -4
  1105. package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.js.map +1 -1
  1106. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.d.ts +1 -1
  1107. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.d.ts.map +1 -1
  1108. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.js +1 -1
  1109. package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.js.map +1 -1
  1110. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.d.ts +1 -1
  1111. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.d.ts.map +1 -1
  1112. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.js +2 -2
  1113. package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.js.map +1 -1
  1114. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.d.ts +1 -1
  1115. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.d.ts.map +1 -1
  1116. package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.js.map +1 -1
  1117. package/dist/core/hooks/buildings/createBuildingHooks.d.ts +1 -1
  1118. package/dist/core/hooks/buildings/createBuildingHooks.d.ts.map +1 -1
  1119. package/dist/core/hooks/buildings/createBuildingHooks.js.map +1 -1
  1120. package/dist/core/hooks/comments/createCommentHooks.d.ts +1 -1
  1121. package/dist/core/hooks/comments/createCommentHooks.d.ts.map +1 -1
  1122. package/dist/core/hooks/comments/createCommentHooks.js +1 -1
  1123. package/dist/core/hooks/comments/createCommentHooks.js.map +1 -1
  1124. package/dist/core/hooks/files/createFileHooks.d.ts +1 -1
  1125. package/dist/core/hooks/files/createFileHooks.d.ts.map +1 -1
  1126. package/dist/core/hooks/files/createFileHooks.js.map +1 -1
  1127. package/dist/core/hooks/files/files.d.ts.map +1 -1
  1128. package/dist/core/hooks/files/files.js +1 -1
  1129. package/dist/core/hooks/files/files.js.map +1 -1
  1130. package/dist/core/hooks/infrastructures/createInfrastructureHooks.d.ts +1 -1
  1131. package/dist/core/hooks/infrastructures/createInfrastructureHooks.d.ts.map +1 -1
  1132. package/dist/core/hooks/infrastructures/createInfrastructureHooks.js.map +1 -1
  1133. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.d.ts +1 -1
  1134. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.d.ts.map +1 -1
  1135. package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.js.map +1 -1
  1136. package/dist/core/hooks/organizations/createOrganizationHooks.d.ts +1 -1
  1137. package/dist/core/hooks/organizations/createOrganizationHooks.d.ts.map +1 -1
  1138. package/dist/core/hooks/organizations/createOrganizationHooks.js.map +1 -1
  1139. package/dist/core/hooks/provider.d.ts +5 -5
  1140. package/dist/core/hooks/provider.d.ts.map +1 -1
  1141. package/dist/core/hooks/provider.js +4 -4
  1142. package/dist/core/hooks/provider.js.map +1 -1
  1143. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.d.ts +1 -1
  1144. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.d.ts.map +1 -1
  1145. package/dist/core/hooks/sensorTypes/createSensorTypeHooks.js.map +1 -1
  1146. package/dist/core/hooks/sensors/createSensorHooks.d.ts +1 -1
  1147. package/dist/core/hooks/sensors/createSensorHooks.d.ts.map +1 -1
  1148. package/dist/core/hooks/sensors/createSensorHooks.js +1 -1
  1149. package/dist/core/hooks/sensors/createSensorHooks.js.map +1 -1
  1150. package/dist/core/hooks/sites/createSiteHooks.d.ts +1 -1
  1151. package/dist/core/hooks/sites/createSiteHooks.d.ts.map +1 -1
  1152. package/dist/core/hooks/sites/createSiteHooks.js.map +1 -1
  1153. package/dist/core/hooks/sites/sites.d.ts.map +1 -1
  1154. package/dist/core/hooks/useCaptureScreenshot.d.ts.map +1 -1
  1155. package/dist/core/hooks/useCaptureScreenshot.js.map +1 -1
  1156. package/dist/core/hooks/useCurrentViewerPosition.d.ts.map +1 -1
  1157. package/dist/core/hooks/useCurrentViewerPosition.js +1 -1
  1158. package/dist/core/hooks/useCurrentViewerPosition.js.map +1 -1
  1159. package/dist/core/hooks/useGeocodingRuntimeConfig.d.ts +1 -1
  1160. package/dist/core/hooks/useGeocodingRuntimeConfig.d.ts.map +1 -1
  1161. package/dist/core/hooks/useGeocodingRuntimeConfig.js.map +1 -1
  1162. package/dist/core/hooks/useShareUrl.d.ts.map +1 -1
  1163. package/dist/core/hooks/useShareUrl.js +1 -1
  1164. package/dist/core/hooks/useShareUrl.js.map +1 -1
  1165. package/dist/core/hooks/users/createUserHooks.d.ts +1 -1
  1166. package/dist/core/hooks/users/createUserHooks.d.ts.map +1 -1
  1167. package/dist/core/hooks/users/createUserHooks.js.map +1 -1
  1168. package/dist/core/i18n/index.d.ts +8 -0
  1169. package/dist/core/i18n/index.d.ts.map +1 -0
  1170. package/dist/core/i18n/index.js +8 -0
  1171. package/dist/core/i18n/index.js.map +1 -0
  1172. package/dist/core/i18n/messages/en.json +1873 -0
  1173. package/dist/core/i18n/messages/es.json +1870 -0
  1174. package/dist/core/i18n/messages/fr.json +1870 -0
  1175. package/dist/core/plugins/host/context.d.ts +1 -1
  1176. package/dist/core/plugins/host/context.d.ts.map +1 -1
  1177. package/dist/core/plugins/host/context.js.map +1 -1
  1178. package/dist/core/plugins/host/host.d.ts +1 -1
  1179. package/dist/core/plugins/host/host.d.ts.map +1 -1
  1180. package/dist/core/plugins/host/host.js.map +1 -1
  1181. package/dist/core/plugins/host/provider.d.ts.map +1 -1
  1182. package/dist/core/plugins/host/provider.js +2 -2
  1183. package/dist/core/plugins/host/provider.js.map +1 -1
  1184. package/dist/core/store/AppConfig/context.d.ts +1 -1
  1185. package/dist/core/store/AppConfig/context.d.ts.map +1 -1
  1186. package/dist/core/store/AppConfig/context.js.map +1 -1
  1187. package/dist/core/store/AppConfig/reducer.d.ts +2 -2
  1188. package/dist/core/store/AppConfig/reducer.d.ts.map +1 -1
  1189. package/dist/core/store/AppConfig/reducer.js.map +1 -1
  1190. package/dist/core/store/BIM/context.d.ts +1 -1
  1191. package/dist/core/store/BIM/context.d.ts.map +1 -1
  1192. package/dist/core/store/BIM/context.js.map +1 -1
  1193. package/dist/core/store/BIM/reducer.d.ts +3 -3
  1194. package/dist/core/store/BIM/reducer.d.ts.map +1 -1
  1195. package/dist/core/store/BIM/reducer.js.map +1 -1
  1196. package/dist/core/store/Buildings/context.d.ts +1 -1
  1197. package/dist/core/store/Buildings/context.d.ts.map +1 -1
  1198. package/dist/core/store/Buildings/context.js.map +1 -1
  1199. package/dist/core/store/Buildings/reducer.d.ts +2 -2
  1200. package/dist/core/store/Buildings/reducer.d.ts.map +1 -1
  1201. package/dist/core/store/Buildings/reducer.js.map +1 -1
  1202. package/dist/core/store/CombineProviders.d.ts.map +1 -1
  1203. package/dist/core/store/CombineProviders.js +7 -7
  1204. package/dist/core/store/CombineProviders.js.map +1 -1
  1205. package/dist/core/store/Content/context.d.ts +1 -1
  1206. package/dist/core/store/Content/context.d.ts.map +1 -1
  1207. package/dist/core/store/Content/context.js.map +1 -1
  1208. package/dist/core/store/Datasets/context.d.ts +1 -1
  1209. package/dist/core/store/Datasets/context.d.ts.map +1 -1
  1210. package/dist/core/store/Datasets/context.js.map +1 -1
  1211. package/dist/core/store/Datasets/reducer.d.ts +1 -1
  1212. package/dist/core/store/Datasets/reducer.d.ts.map +1 -1
  1213. package/dist/core/store/Datasets/reducer.js.map +1 -1
  1214. package/dist/core/store/Files/context.d.ts +1 -1
  1215. package/dist/core/store/Files/context.d.ts.map +1 -1
  1216. package/dist/core/store/Files/context.js.map +1 -1
  1217. package/dist/core/store/Files/reducer.d.ts +3 -3
  1218. package/dist/core/store/Files/reducer.d.ts.map +1 -1
  1219. package/dist/core/store/Files/reducer.js.map +1 -1
  1220. package/dist/core/store/Map/context.d.ts +1 -1
  1221. package/dist/core/store/Map/context.d.ts.map +1 -1
  1222. package/dist/core/store/Map/context.js +1 -1
  1223. package/dist/core/store/Map/context.js.map +1 -1
  1224. package/dist/core/store/Map/reducer.d.ts +6 -5
  1225. package/dist/core/store/Map/reducer.d.ts.map +1 -1
  1226. package/dist/core/store/Map/reducer.js.map +1 -1
  1227. package/dist/core/store/MapSites/context.d.ts +1 -1
  1228. package/dist/core/store/MapSites/context.d.ts.map +1 -1
  1229. package/dist/core/store/MapSites/context.js.map +1 -1
  1230. package/dist/core/store/MapSites/reducer.d.ts +1 -1
  1231. package/dist/core/store/MapSites/reducer.d.ts.map +1 -1
  1232. package/dist/core/store/MapSites/reducer.js.map +1 -1
  1233. package/dist/core/store/Menus/context.d.ts +1 -1
  1234. package/dist/core/store/Menus/context.d.ts.map +1 -1
  1235. package/dist/core/store/Menus/context.js +2 -2
  1236. package/dist/core/store/Menus/context.js.map +1 -1
  1237. package/dist/core/store/Menus/reducer.d.ts +1 -1
  1238. package/dist/core/store/Menus/reducer.d.ts.map +1 -1
  1239. package/dist/core/store/Menus/reducer.js.map +1 -1
  1240. package/dist/core/store/Permissions/context.d.ts +1 -1
  1241. package/dist/core/store/Permissions/context.d.ts.map +1 -1
  1242. package/dist/core/store/Permissions/context.js +2 -2
  1243. package/dist/core/store/Permissions/context.js.map +1 -1
  1244. package/dist/core/store/PointCloud/context.d.ts +1 -1
  1245. package/dist/core/store/PointCloud/context.d.ts.map +1 -1
  1246. package/dist/core/store/PointCloud/context.js.map +1 -1
  1247. package/dist/core/store/PointCloud/reducer.d.ts +1 -1
  1248. package/dist/core/store/PointCloud/reducer.d.ts.map +1 -1
  1249. package/dist/core/store/PointCloud/reducer.js.map +1 -1
  1250. package/dist/core/store/Tools/context.d.ts +1 -1
  1251. package/dist/core/store/Tools/context.d.ts.map +1 -1
  1252. package/dist/core/store/Tools/context.js.map +1 -1
  1253. package/dist/core/store/Tools/reducer.d.ts +1 -1
  1254. package/dist/core/store/Tools/reducer.d.ts.map +1 -1
  1255. package/dist/core/store/Tools/reducer.js.map +1 -1
  1256. package/dist/core/styles/globals.css +17 -16
  1257. package/dist/core/styles/tailwindMerge.d.ts +1 -1
  1258. package/dist/core/styles/tailwindMerge.d.ts.map +1 -1
  1259. package/dist/core/styles/tailwindMerge.js.map +1 -1
  1260. package/dist/core/types/datasetTypes.d.ts +2 -2
  1261. package/dist/core/types/datasetTypes.d.ts.map +1 -1
  1262. package/dist/core/types/dbTypes.d.ts +1 -1
  1263. package/dist/core/types/dbTypes.d.ts.map +1 -1
  1264. package/dist/core/types/dbTypes.js.map +1 -1
  1265. package/dist/core/types/files.d.ts +2 -2
  1266. package/dist/core/types/files.d.ts.map +1 -1
  1267. package/dist/core/types/global.d.ts +3 -3
  1268. package/dist/core/types/global.d.ts.map +1 -1
  1269. package/dist/core/types/global.js.map +1 -1
  1270. package/dist/core/types/map.d.ts +2 -2
  1271. package/dist/core/types/map.d.ts.map +1 -1
  1272. package/dist/core/types/tools.d.ts +3 -3
  1273. package/dist/core/types/tools.d.ts.map +1 -1
  1274. package/dist/core/types/users.d.ts +2 -2
  1275. package/dist/core/types/users.d.ts.map +1 -1
  1276. package/dist/core/utils/getFileIcon.d.ts +1 -1
  1277. package/dist/core/utils/getFileIcon.d.ts.map +1 -1
  1278. package/dist/core/utils/getFileIcon.js.map +1 -1
  1279. package/dist/core/utils/memcache.js.map +1 -1
  1280. package/dist/core/utils/roles.d.ts.map +1 -1
  1281. package/dist/core/utils/roles.js.map +1 -1
  1282. package/dist/core/utils/timeUtils.js.map +1 -1
  1283. package/dist/core/utils/utils.d.ts +1 -1
  1284. package/dist/core/utils/utils.d.ts.map +1 -1
  1285. package/dist/core/utils/utils.js.map +1 -1
  1286. package/package.json +13 -6
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import Map, { NavigationControl } from "react-map-gl/maplibre";
4
- import React from "react";
5
3
  import maplibregl from "maplibre-gl";
6
4
  import { useSearchParams } from "next/navigation";
5
+ import React from "react";
6
+ import Map, { NavigationControl } from "react-map-gl/maplibre";
7
7
  import { MapContext } from "../../../store";
8
- import { resolveBounds } from "./utils/validateBounds";
9
- import { MapClickManager } from "./utils/MapEventManager/MapClickManager";
8
+ import SettingsButton from "../../ui/SettingsButton";
9
+ import { StatsOverlay } from "../../ui/stats";
10
10
  import DatasetManagerMenu from "./datasets/DatasetManager";
11
11
  import { MapLegendHost } from "./legends/MapLegendHost";
12
- import { StatsOverlay } from "../../ui/stats";
13
- import { MapHoverManager } from "./utils/MapEventManager/MapHoverManager";
14
12
  import { MapLayers } from "./src/MapLayers";
15
- import SettingsButton from "../../ui/SettingsButton";
13
+ import { MapClickManager } from "./utils/MapEventManager/MapClickManager";
14
+ import { MapHoverManager } from "./utils/MapEventManager/MapHoverManager";
15
+ import { resolveBounds } from "./utils/validateBounds";
16
16
  const CANADA_DEFAULTS = {
17
17
  zoom: 3,
18
18
  lat: 56.415,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/core/components/viewers/map/MapViewer.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport Map, { MapRef, NavigationControl } from 'react-map-gl/maplibre'\r\nimport React from 'react'\r\n\r\nimport maplibregl from 'maplibre-gl'\r\nimport { useSearchParams } from 'next/navigation'\r\n\r\nimport { MapContext } from '../../../store'\r\nimport { resolveBounds } from './utils/validateBounds'\r\n\r\nimport { MapClickManager } from './utils/MapEventManager/MapClickManager'\r\nimport DatasetManagerMenu from './datasets/DatasetManager'\r\nimport { MapLegendHost } from './legends/MapLegendHost'\r\nimport { StatsOverlay } from '../../ui/stats'\r\nimport { MapHoverManager } from './utils/MapEventManager/MapHoverManager'\r\nimport { Organization } from '../../../types/dbTypes'\r\nimport { CurrentLocation } from '../../../types/map'\r\nimport { MapLayers } from './src/MapLayers'\r\nimport SettingsButton from '../../ui/SettingsButton'\r\n\r\nconst CANADA_DEFAULTS = {\r\n zoom: 3,\r\n lat: 56.415,\r\n long: -98.74,\r\n} as const\r\n\r\nconst DEFAULT_MAP_STYLE = { name: 'Satellite', url: 'mapStyles/satellite.json' } as const\r\nconst MAX_GLOBE_ZOOM = 5\r\n\r\ninterface Props {\r\n width?: string\r\n height?: string\r\n organization: Organization\r\n minioBaseUrl?: string\r\n maptilerKey?: string\r\n}\r\n\r\nexport function MapViewer({ width = '100%', height = '100%', organization, minioBaseUrl, maptilerKey }: Props) {\r\n\r\n const searchParams = useSearchParams()\r\n\r\n // Add state to track if map is loaded\r\n const [isMapLoaded, setIsMapLoaded] = React.useState(false)\r\n\r\n const viewState = React.useMemo(() => {\r\n return searchParams.size === 0\r\n ? {\r\n zoom: organization.zoom ?? CANADA_DEFAULTS.zoom,\r\n bearing: organization.bearing ?? 0,\r\n pitch: organization.pitch ?? 0,\r\n longitude: organization.long ?? CANADA_DEFAULTS.long,\r\n latitude: organization.lat ?? CANADA_DEFAULTS.lat,\r\n }\r\n : {\r\n latitude: searchParams.has('lat') ? Number.parseFloat(searchParams.get('lat')) : organization.lat ?? CANADA_DEFAULTS.lat,\r\n longitude: searchParams.has('lng') ? Number.parseFloat(searchParams.get('lng')) : organization.long ?? CANADA_DEFAULTS.long,\r\n bearing: searchParams.has('bearing') ? Number.parseFloat(searchParams.get('bearing')) : organization.bearing ?? 0,\r\n pitch: searchParams.has('pitch') ? Number.parseFloat(searchParams.get('pitch')) : organization.pitch ?? 0,\r\n zoom: searchParams.has('zoom') ? Number.parseFloat(searchParams.get('zoom')) : organization.zoom ?? CANADA_DEFAULTS.zoom,\r\n }\r\n }, [searchParams, organization])\r\n\r\n const initialProjection = viewState.zoom > MAX_GLOBE_ZOOM ? 'mercator' : 'globe'\r\n\r\n // Memoize the inline style object that gets passed to <Map> for a stable prop identity.\r\n const mapContainerStyle = React.useMemo(\r\n () => ({ width, height, backgroundColor: 'black' }),\r\n [width, height],\r\n )\r\n\r\n // Adaptive pixel ratio. A hardcoded 2 doubled fragment-shader cost on 1× DPR\r\n // desktops for zero visual gain; capping at 2 keeps phones (DPR 3-4) effective.\r\n const pixelRatio = React.useMemo(\r\n () => Math.min(typeof window !== 'undefined' ? window.devicePixelRatio : 1, 2),\r\n [],\r\n )\r\n\r\n const mapRef = React.useRef<MapRef>(null)\r\n const { dispatch: mapDispatch, state: mapState } = React.useContext(MapContext)\r\n\r\n // Keep the projection in sync with zoom at all times — not only while the\r\n // map-settings sidebar is mounted. The globe projection degrades past\r\n // MAX_GLOBE_ZOOM, so we force mercator regardless of which panels are open.\r\n const activeMap = mapState?.map?.map\r\n\r\n React.useEffect(() => {\r\n if (!activeMap) return\r\n\r\n const enforceProjectionForZoom = () => {\r\n if (activeMap.getZoom() <= MAX_GLOBE_ZOOM) return\r\n\r\n const projection = activeMap.getProjection()\r\n const currentType =\r\n typeof projection === 'string'\r\n ? projection\r\n : (projection as { type?: string; name?: string })?.type ?? (projection as { type?: string; name?: string })?.name\r\n\r\n if (currentType !== 'mercator') {\r\n activeMap.setProjection({ type: 'mercator' })\r\n }\r\n }\r\n\r\n enforceProjectionForZoom()\r\n activeMap.on('zoom', enforceProjectionForZoom)\r\n\r\n return () => {\r\n activeMap.off('zoom', enforceProjectionForZoom)\r\n }\r\n }, [activeMap])\r\n\r\n const handleMapLoad = () => {\r\n const map = mapRef.current.getMap()\r\n\r\n if (map.getZoom() > MAX_GLOBE_ZOOM) {\r\n map.setProjection({ type: 'mercator' })\r\n }\r\n\r\n // Only dispatch SET_MAP after map is fully loaded\r\n if (mapRef.current) {\r\n mapDispatch({\r\n type: 'SET_MAP',\r\n payload: { map },\r\n })\r\n }\r\n // initilize a new click manager\r\n const mapClickManager = new MapClickManager(map)\r\n mapDispatch({\r\n type: 'ADD_MAP_CLICK_MANAGER',\r\n payload: { mapClickManager },\r\n })\r\n\r\n const mapHoverManager = new MapHoverManager(map)\r\n mapDispatch({\r\n type: 'ADD_MAP_HOVER_MANAGER',\r\n payload: { mapHoverManager },\r\n })\r\n\r\n // update current Location with URL params or fallback to theme location\r\n const updatedLocation: CurrentLocation = {\r\n // Then override with URL params (this ensures URL params take precedence)\r\n lat: searchParams.has('lat') ? Number.parseFloat(searchParams.get('lat')) : organization.lat ?? CANADA_DEFAULTS.lat,\r\n lng: searchParams.has('lng') ? Number.parseFloat(searchParams.get('lng')) : organization.long ?? CANADA_DEFAULTS.long,\r\n bearing: searchParams.has('bearing') ? Number.parseFloat(searchParams.get('bearing')) : organization.bearing ?? 0,\r\n pitch: searchParams.has('pitch') ? Number.parseFloat(searchParams.get('pitch')) : organization.pitch ?? 0,\r\n zoom: searchParams.has('zoom') ? Number.parseFloat(searchParams.get('zoom')) : organization.zoom ?? CANADA_DEFAULTS.zoom,\r\n // Add location details from URL params if available\r\n countrySubdivision: searchParams.has('countrySubdivision') ? searchParams.get('countrySubdivision') : (organization.countrySubdivision ?? ''),\r\n municipality: searchParams.has('municipality') ? searchParams.get('municipality') : (organization.municipality ?? ''),\r\n address: searchParams.has('address') ? searchParams.get('address') : '', // organization.address,\r\n site: searchParams.has('site') ? searchParams.get('site') : String(organization.locationSiteId ?? ''),\r\n id: String(organization.id),\r\n }\r\n\r\n mapDispatch({\r\n type: 'UPDATE_LOCATION',\r\n payload: { currentLocation: updatedLocation },\r\n })\r\n\r\n // Set map as loaded after all dispatches are complete\r\n setIsMapLoaded(true)\r\n }\r\n\r\n // Enable the perf HUD by appending ?debug=1 to the URL. Never reaches\r\n // production users unless they explicitly opt in.\r\n const isDebug = searchParams.get('debug') === '1'\r\n\r\n // useCallback so the onDblClick prop identity is stable across renders of\r\n // MapViewer; a new function each render caused react-map-gl to detach/re-attach\r\n // the listener. The console.log is gated behind a dev-mode check.\r\n const onDblClick = React.useCallback((e) => {\r\n if (process.env.NODE_ENV === 'production') return\r\n const { lng, lat } = e.lngLat\r\n const elevation = mapRef.current?.queryTerrainElevation([lng, lat]) || 0\r\n const coordinates = { lng, lat, elevation, zoom: mapRef.current?.getZoom() }\r\n console.log('📍 Map coordinates:', coordinates)\r\n }, [])\r\n\r\n const mapStyle = mapState?.map.mapStyle ?? DEFAULT_MAP_STYLE;\r\n\r\n return (\r\n <>\r\n <Map\r\n id=\"map-component\"\r\n mapStyle={mapStyle.url}\r\n mapLib={maplibregl}\r\n onLoad={handleMapLoad}\r\n ref={mapRef}\r\n style={mapContainerStyle}\r\n initialViewState={viewState}\r\n maxPitch={60}\r\n minZoom={organization?.minZoom ?? CANADA_DEFAULTS.zoom}\r\n maxBounds={resolveBounds(organization?.maxBounds)}\r\n projection={initialProjection}\r\n doubleClickZoom={false}\r\n onDblClick={onDblClick}\r\n pixelRatio={pixelRatio}\r\n >\r\n <NavigationControl visualizePitch />\r\n <SettingsButton />\r\n {isMapLoaded\r\n && (\r\n <>\r\n <MapLayers minioBaseUrl={minioBaseUrl} organization={organization} maptilerKey={maptilerKey} />\r\n {/* Bottom-left stack: legend above the layers/styling card, gap auto-managed by flex. */}\r\n <div className=\"absolute bottom-[10px] left-3 z-10 flex flex-col gap-2 pointer-events-none\">\r\n {/* Portal slot for on-map WMS time controls; display:contents so an\r\n empty slot adds no flex item / gap, but a mounted control stacks\r\n above the legend + dataset-manager cards. */}\r\n <div id=\"wms-time-slot\" style={{ display: 'contents' }} />\r\n <MapLegendHost />\r\n <DatasetManagerMenu />\r\n </div>\r\n </>\r\n )}\r\n </Map>\r\n <StatsOverlay mapRef={mapRef} enabled={isDebug} />\r\n </>\r\n\r\n )\r\n}\r\n"],"mappings":"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","names":["_a","_b","_c"]}
1
+ {"version":3,"sources":["../../../../../src/core/components/viewers/map/MapViewer.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport maplibregl from 'maplibre-gl'\r\nimport { useSearchParams } from 'next/navigation'\r\nimport React from 'react'\r\nimport Map, { NavigationControl } from 'react-map-gl/maplibre'\r\n\r\n\r\nimport { MapContext } from '../../../store'\r\nimport SettingsButton from '../../ui/SettingsButton'\r\nimport { StatsOverlay } from '../../ui/stats'\r\n\r\nimport DatasetManagerMenu from './datasets/DatasetManager'\r\nimport { MapLegendHost } from './legends/MapLegendHost'\r\nimport { MapLayers } from './src/MapLayers'\r\nimport { MapClickManager } from './utils/MapEventManager/MapClickManager'\r\nimport { MapHoverManager } from './utils/MapEventManager/MapHoverManager'\r\nimport { resolveBounds } from './utils/validateBounds'\r\n\r\n\r\n\r\n\r\nimport type { Organization } from '../../../types/dbTypes'\r\nimport type { CurrentLocation } from '../../../types/map'\r\nimport type { MapRef} from 'react-map-gl/maplibre';\r\n\r\nconst CANADA_DEFAULTS = {\r\n zoom: 3,\r\n lat: 56.415,\r\n long: -98.74,\r\n} as const\r\n\r\nconst DEFAULT_MAP_STYLE = { name: 'Satellite', url: 'mapStyles/satellite.json' } as const\r\nconst MAX_GLOBE_ZOOM = 5\r\n\r\ninterface Props {\r\n width?: string\r\n height?: string\r\n organization: Organization\r\n minioBaseUrl?: string\r\n maptilerKey?: string\r\n}\r\n\r\nexport function MapViewer({ width = '100%', height = '100%', organization, minioBaseUrl, maptilerKey }: Props) {\r\n\r\n const searchParams = useSearchParams()\r\n\r\n // Add state to track if map is loaded\r\n const [isMapLoaded, setIsMapLoaded] = React.useState(false)\r\n\r\n const viewState = React.useMemo(() => {\r\n return searchParams.size === 0\r\n ? {\r\n zoom: organization.zoom ?? CANADA_DEFAULTS.zoom,\r\n bearing: organization.bearing ?? 0,\r\n pitch: organization.pitch ?? 0,\r\n longitude: organization.long ?? CANADA_DEFAULTS.long,\r\n latitude: organization.lat ?? CANADA_DEFAULTS.lat,\r\n }\r\n : {\r\n latitude: searchParams.has('lat') ? Number.parseFloat(searchParams.get('lat')) : organization.lat ?? CANADA_DEFAULTS.lat,\r\n longitude: searchParams.has('lng') ? Number.parseFloat(searchParams.get('lng')) : organization.long ?? CANADA_DEFAULTS.long,\r\n bearing: searchParams.has('bearing') ? Number.parseFloat(searchParams.get('bearing')) : organization.bearing ?? 0,\r\n pitch: searchParams.has('pitch') ? Number.parseFloat(searchParams.get('pitch')) : organization.pitch ?? 0,\r\n zoom: searchParams.has('zoom') ? Number.parseFloat(searchParams.get('zoom')) : organization.zoom ?? CANADA_DEFAULTS.zoom,\r\n }\r\n }, [searchParams, organization])\r\n\r\n const initialProjection = viewState.zoom > MAX_GLOBE_ZOOM ? 'mercator' : 'globe'\r\n\r\n // Memoize the inline style object that gets passed to <Map> for a stable prop identity.\r\n const mapContainerStyle = React.useMemo(\r\n () => ({ width, height, backgroundColor: 'black' }),\r\n [width, height],\r\n )\r\n\r\n // Adaptive pixel ratio. A hardcoded 2 doubled fragment-shader cost on 1× DPR\r\n // desktops for zero visual gain; capping at 2 keeps phones (DPR 3-4) effective.\r\n const pixelRatio = React.useMemo(\r\n () => Math.min(typeof window !== 'undefined' ? window.devicePixelRatio : 1, 2),\r\n [],\r\n )\r\n\r\n const mapRef = React.useRef<MapRef>(null)\r\n const { dispatch: mapDispatch, state: mapState } = React.useContext(MapContext)\r\n\r\n // Keep the projection in sync with zoom at all times — not only while the\r\n // map-settings sidebar is mounted. The globe projection degrades past\r\n // MAX_GLOBE_ZOOM, so we force mercator regardless of which panels are open.\r\n const activeMap = mapState?.map?.map\r\n\r\n React.useEffect(() => {\r\n if (!activeMap) return\r\n\r\n const enforceProjectionForZoom = () => {\r\n if (activeMap.getZoom() <= MAX_GLOBE_ZOOM) return\r\n\r\n const projection = activeMap.getProjection()\r\n const currentType =\r\n typeof projection === 'string'\r\n ? projection\r\n : (projection as { type?: string; name?: string })?.type ?? (projection as { type?: string; name?: string })?.name\r\n\r\n if (currentType !== 'mercator') {\r\n activeMap.setProjection({ type: 'mercator' })\r\n }\r\n }\r\n\r\n enforceProjectionForZoom()\r\n activeMap.on('zoom', enforceProjectionForZoom)\r\n\r\n return () => {\r\n activeMap.off('zoom', enforceProjectionForZoom)\r\n }\r\n }, [activeMap])\r\n\r\n const handleMapLoad = () => {\r\n const map = mapRef.current.getMap()\r\n\r\n if (map.getZoom() > MAX_GLOBE_ZOOM) {\r\n map.setProjection({ type: 'mercator' })\r\n }\r\n\r\n // Only dispatch SET_MAP after map is fully loaded\r\n if (mapRef.current) {\r\n mapDispatch({\r\n type: 'SET_MAP',\r\n payload: { map },\r\n })\r\n }\r\n // initilize a new click manager\r\n const mapClickManager = new MapClickManager(map)\r\n mapDispatch({\r\n type: 'ADD_MAP_CLICK_MANAGER',\r\n payload: { mapClickManager },\r\n })\r\n\r\n const mapHoverManager = new MapHoverManager(map)\r\n mapDispatch({\r\n type: 'ADD_MAP_HOVER_MANAGER',\r\n payload: { mapHoverManager },\r\n })\r\n\r\n // update current Location with URL params or fallback to theme location\r\n const updatedLocation: CurrentLocation = {\r\n // Then override with URL params (this ensures URL params take precedence)\r\n lat: searchParams.has('lat') ? Number.parseFloat(searchParams.get('lat')) : organization.lat ?? CANADA_DEFAULTS.lat,\r\n lng: searchParams.has('lng') ? Number.parseFloat(searchParams.get('lng')) : organization.long ?? CANADA_DEFAULTS.long,\r\n bearing: searchParams.has('bearing') ? Number.parseFloat(searchParams.get('bearing')) : organization.bearing ?? 0,\r\n pitch: searchParams.has('pitch') ? Number.parseFloat(searchParams.get('pitch')) : organization.pitch ?? 0,\r\n zoom: searchParams.has('zoom') ? Number.parseFloat(searchParams.get('zoom')) : organization.zoom ?? CANADA_DEFAULTS.zoom,\r\n // Add location details from URL params if available\r\n countrySubdivision: searchParams.has('countrySubdivision') ? searchParams.get('countrySubdivision') : (organization.countrySubdivision ?? ''),\r\n municipality: searchParams.has('municipality') ? searchParams.get('municipality') : (organization.municipality ?? ''),\r\n address: searchParams.has('address') ? searchParams.get('address') : '', // organization.address,\r\n site: searchParams.has('site') ? searchParams.get('site') : String(organization.locationSiteId ?? ''),\r\n id: String(organization.id),\r\n }\r\n\r\n mapDispatch({\r\n type: 'UPDATE_LOCATION',\r\n payload: { currentLocation: updatedLocation },\r\n })\r\n\r\n // Set map as loaded after all dispatches are complete\r\n setIsMapLoaded(true)\r\n }\r\n\r\n // Enable the perf HUD by appending ?debug=1 to the URL. Never reaches\r\n // production users unless they explicitly opt in.\r\n const isDebug = searchParams.get('debug') === '1'\r\n\r\n // useCallback so the onDblClick prop identity is stable across renders of\r\n // MapViewer; a new function each render caused react-map-gl to detach/re-attach\r\n // the listener. The console.log is gated behind a dev-mode check.\r\n const onDblClick = React.useCallback((e) => {\r\n if (process.env.NODE_ENV === 'production') return\r\n const { lng, lat } = e.lngLat\r\n const elevation = mapRef.current?.queryTerrainElevation([lng, lat]) || 0\r\n const coordinates = { lng, lat, elevation, zoom: mapRef.current?.getZoom() }\r\n console.log('📍 Map coordinates:', coordinates)\r\n }, [])\r\n\r\n const mapStyle = mapState?.map.mapStyle ?? DEFAULT_MAP_STYLE;\r\n\r\n return (\r\n <>\r\n <Map\r\n id=\"map-component\"\r\n mapStyle={mapStyle.url}\r\n mapLib={maplibregl}\r\n onLoad={handleMapLoad}\r\n ref={mapRef}\r\n style={mapContainerStyle}\r\n initialViewState={viewState}\r\n maxPitch={60}\r\n minZoom={organization?.minZoom ?? CANADA_DEFAULTS.zoom}\r\n maxBounds={resolveBounds(organization?.maxBounds)}\r\n projection={initialProjection}\r\n doubleClickZoom={false}\r\n onDblClick={onDblClick}\r\n pixelRatio={pixelRatio}\r\n >\r\n <NavigationControl visualizePitch />\r\n <SettingsButton />\r\n {isMapLoaded\r\n && (\r\n <>\r\n <MapLayers minioBaseUrl={minioBaseUrl} organization={organization} maptilerKey={maptilerKey} />\r\n {/* Bottom-left stack: legend above the layers/styling card, gap auto-managed by flex. */}\r\n <div className=\"absolute bottom-[10px] left-3 z-10 flex flex-col gap-2 pointer-events-none\">\r\n {/* Portal slot for on-map WMS time controls; display:contents so an\r\n empty slot adds no flex item / gap, but a mounted control stacks\r\n above the legend + dataset-manager cards. */}\r\n <div id=\"wms-time-slot\" style={{ display: 'contents' }} />\r\n <MapLegendHost />\r\n <DatasetManagerMenu />\r\n </div>\r\n </>\r\n )}\r\n </Map>\r\n <StatsOverlay mapRef={mapRef} enabled={isDebug} />\r\n </>\r\n\r\n )\r\n}\r\n"],"mappings":"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","names":["_a","_b","_c"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AddPortalDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/AddPortalDialog.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAgB9B,UAAU,oBAAoB;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACtC;AAeD,eAAO,MAAM,eAAe,GAAI,wBAAwB,oBAAoB,sBAwL3E,CAAA"}
1
+ {"version":3,"file":"AddPortalDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/AddPortalDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,UAAU,oBAAoB;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACtC;AAeD,eAAO,MAAM,eAAe,GAAI,wBAAwB,oBAAoB,sBAwL3E,CAAA"}
@@ -19,8 +19,11 @@ var __spreadValues = (a, b) => {
19
19
  };
20
20
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
21
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
- import * as React from "react";
23
22
  import * as LR from "lucide-react";
23
+ import * as React from "react";
24
+ import { useCreateOpenDataPortal } from "../../../../hooks/openDataPortals/openDataPortals";
25
+ import { DatasetGroup, DataManagementSystem } from "../../../../types/dbTypes";
26
+ import { Button } from "../../../ui/Button";
24
27
  import {
25
28
  Dialog,
26
29
  DialogContent,
@@ -28,11 +31,8 @@ import {
28
31
  DialogHeader,
29
32
  DialogTitle
30
33
  } from "../../../ui/Dialog";
31
- import { Button } from "../../../ui/Button";
32
34
  import { Input } from "../../../ui/Input";
33
35
  import { Label } from "../../../ui/Label";
34
- import { useCreateOpenDataPortal } from "../../../../hooks/openDataPortals/openDataPortals";
35
- import { DatasetGroup, DataManagementSystem } from "../../../../types/dbTypes";
36
36
  const EMPTY_FORM = {
37
37
  name: "",
38
38
  group: DatasetGroup.Municipal,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/AddPortalDialog.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from 'react'\r\nimport * as LR from 'lucide-react'\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogHeader,\r\n DialogTitle,\r\n} from '../../../ui/Dialog'\r\nimport { Button } from '../../../ui/Button'\r\nimport { Input } from '../../../ui/Input'\r\nimport { Label } from '../../../ui/Label'\r\nimport { useCreateOpenDataPortal } from '../../../../hooks/openDataPortals/openDataPortals'\r\nimport { DatasetGroup, DataManagementSystem } from '../../../../types/dbTypes'\r\nimport type { OpenDataPortal } from '../../../../types/dbTypes'\r\n\r\ninterface AddPortalDialogProps {\r\n open: boolean\r\n onOpenChange: (open: boolean) => void\r\n}\r\n\r\ntype FormState = Omit<OpenDataPortal, 'id'>\r\n\r\nconst EMPTY_FORM: FormState = {\r\n name: '',\r\n group: DatasetGroup.Municipal,\r\n portalUrl: '',\r\n dataManagementSystem: undefined,\r\n apiUrl: '',\r\n countrySubdivision: '',\r\n municipality: '',\r\n country: '',\r\n}\r\n\r\nexport const AddPortalDialog = ({ open, onOpenChange }: AddPortalDialogProps) => {\r\n const [form, setForm] = React.useState<FormState>(EMPTY_FORM)\r\n const [submitError, setSubmitError] = React.useState<string | null>(null)\r\n const { createOpenDataPortal, isMutating } = useCreateOpenDataPortal()\r\n\r\n const update = <K extends keyof FormState>(field: K, value: FormState[K]) => {\r\n setForm(prev => ({ ...prev, [field]: value }))\r\n }\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n setSubmitError(null)\r\n if (!form.name.trim()) {\r\n setSubmitError('Name is required')\r\n return\r\n }\r\n\r\n // Strip empty optionals so the row doesn't carry literal empty strings.\r\n const payload: FormState = {\r\n name: form.name.trim(),\r\n group: form.group,\r\n portalUrl: form.portalUrl?.trim() || undefined,\r\n dataManagementSystem: form.dataManagementSystem || undefined,\r\n apiUrl: form.apiUrl?.trim() || undefined,\r\n countrySubdivision: form.countrySubdivision?.trim() || undefined,\r\n municipality: form.municipality?.trim() || undefined,\r\n country: form.country?.trim() || undefined,\r\n }\r\n\r\n try {\r\n await createOpenDataPortal(payload)\r\n setForm(EMPTY_FORM)\r\n onOpenChange(false)\r\n }\r\n catch (err) {\r\n setSubmitError(err instanceof Error ? err.message : 'Failed to create portal')\r\n }\r\n }\r\n\r\n return (\r\n <Dialog open={open} onOpenChange={onOpenChange}>\r\n <DialogContent className=\"sm:max-w-[520px]\">\r\n <DialogHeader>\r\n <DialogTitle>Add Open Data Portal</DialogTitle>\r\n <DialogDescription>\r\n Register a new external data portal. Only Name and Group are required.\r\n </DialogDescription>\r\n </DialogHeader>\r\n\r\n <form onSubmit={handleSubmit} className=\"flex flex-col gap-3\">\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-name\">\r\n Name\r\n <span className=\"text-destructive ml-0.5\">*</span>\r\n </Label>\r\n <Input\r\n id=\"portal-name\"\r\n value={form.name}\r\n onChange={e => update('name', e.target.value)}\r\n disabled={isMutating}\r\n required\r\n />\r\n </div>\r\n\r\n <div className=\"grid grid-cols-2 gap-3\">\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-group\">\r\n Group\r\n <span className=\"text-destructive ml-0.5\">*</span>\r\n </Label>\r\n <select\r\n id=\"portal-group\"\r\n className=\"h-9 rounded-md border border-input bg-transparent px-3 text-sm\"\r\n value={form.group as string}\r\n onChange={e => update('group', e.target.value as DatasetGroup)}\r\n disabled={isMutating}\r\n >\r\n {Object.values(DatasetGroup).map(g => (\r\n <option key={g} value={g}>{g}</option>\r\n ))}\r\n </select>\r\n </div>\r\n\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-dms\">Data Management System</Label>\r\n <select\r\n id=\"portal-dms\"\r\n className=\"h-9 rounded-md border border-input bg-transparent px-3 text-sm\"\r\n value={(form.dataManagementSystem as string) ?? ''}\r\n onChange={e => update('dataManagementSystem', (e.target.value || undefined) as DataManagementSystem | undefined)}\r\n disabled={isMutating}\r\n >\r\n <option value=\"\">(none)</option>\r\n {Object.values(DataManagementSystem).map(d => (\r\n <option key={d} value={d}>{d}</option>\r\n ))}\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-portalUrl\">Portal URL</Label>\r\n <Input\r\n id=\"portal-portalUrl\"\r\n type=\"url\"\r\n value={form.portalUrl ?? ''}\r\n onChange={e => update('portalUrl', e.target.value)}\r\n disabled={isMutating}\r\n placeholder=\"https://example.com/open-data\"\r\n />\r\n </div>\r\n\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-apiUrl\">API URL</Label>\r\n <Input\r\n id=\"portal-apiUrl\"\r\n type=\"url\"\r\n value={form.apiUrl ?? ''}\r\n onChange={e => update('apiUrl', e.target.value)}\r\n disabled={isMutating}\r\n placeholder=\"https://example.com/api\"\r\n />\r\n </div>\r\n\r\n <div className=\"grid grid-cols-3 gap-3\">\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-municipality\">Municipality</Label>\r\n <Input\r\n id=\"portal-municipality\"\r\n value={form.municipality ?? ''}\r\n onChange={e => update('municipality', e.target.value)}\r\n disabled={isMutating}\r\n />\r\n </div>\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-countrySubdivision\">Subdivision</Label>\r\n <Input\r\n id=\"portal-countrySubdivision\"\r\n value={form.countrySubdivision ?? ''}\r\n onChange={e => update('countrySubdivision', e.target.value)}\r\n disabled={isMutating}\r\n placeholder=\"CA-ON\"\r\n />\r\n </div>\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-country\">Country</Label>\r\n <Input\r\n id=\"portal-country\"\r\n value={form.country ?? ''}\r\n onChange={e => update('country', e.target.value)}\r\n disabled={isMutating}\r\n placeholder=\"CA\"\r\n />\r\n </div>\r\n </div>\r\n\r\n {submitError && (\r\n <p className=\"text-sm text-destructive\">{submitError}</p>\r\n )}\r\n\r\n <div className=\"flex justify-end gap-2 pt-2\">\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n onClick={() => onOpenChange(false)}\r\n disabled={isMutating}\r\n >\r\n Cancel\r\n </Button>\r\n <Button type=\"submit\" disabled={isMutating}>\r\n {isMutating\r\n ? (\r\n <>\r\n <LR.Loader2 className=\"mr-1 h-4 w-4 animate-spin\" />\r\n Adding…\r\n </>\r\n )\r\n : 'Add Portal'}\r\n </Button>\r\n </div>\r\n </form>\r\n </DialogContent>\r\n </Dialog>\r\n )\r\n}\r\n"],"mappings":"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","names":["_a","_b","_c","_d","_e"]}
1
+ {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/AddPortalDialog.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as LR from 'lucide-react'\r\nimport * as React from 'react'\r\n\r\nimport { useCreateOpenDataPortal } from '../../../../hooks/openDataPortals/openDataPortals'\r\nimport { DatasetGroup, DataManagementSystem } from '../../../../types/dbTypes'\r\nimport { Button } from '../../../ui/Button'\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogHeader,\r\n DialogTitle,\r\n} from '../../../ui/Dialog'\r\nimport { Input } from '../../../ui/Input'\r\nimport { Label } from '../../../ui/Label'\r\n\r\nimport type { OpenDataPortal } from '../../../../types/dbTypes'\r\n\r\ninterface AddPortalDialogProps {\r\n open: boolean\r\n onOpenChange: (open: boolean) => void\r\n}\r\n\r\ntype FormState = Omit<OpenDataPortal, 'id'>\r\n\r\nconst EMPTY_FORM: FormState = {\r\n name: '',\r\n group: DatasetGroup.Municipal,\r\n portalUrl: '',\r\n dataManagementSystem: undefined,\r\n apiUrl: '',\r\n countrySubdivision: '',\r\n municipality: '',\r\n country: '',\r\n}\r\n\r\nexport const AddPortalDialog = ({ open, onOpenChange }: AddPortalDialogProps) => {\r\n const [form, setForm] = React.useState<FormState>(EMPTY_FORM)\r\n const [submitError, setSubmitError] = React.useState<string | null>(null)\r\n const { createOpenDataPortal, isMutating } = useCreateOpenDataPortal()\r\n\r\n const update = <K extends keyof FormState>(field: K, value: FormState[K]) => {\r\n setForm(prev => ({ ...prev, [field]: value }))\r\n }\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n setSubmitError(null)\r\n if (!form.name.trim()) {\r\n setSubmitError('Name is required')\r\n return\r\n }\r\n\r\n // Strip empty optionals so the row doesn't carry literal empty strings.\r\n const payload: FormState = {\r\n name: form.name.trim(),\r\n group: form.group,\r\n portalUrl: form.portalUrl?.trim() || undefined,\r\n dataManagementSystem: form.dataManagementSystem || undefined,\r\n apiUrl: form.apiUrl?.trim() || undefined,\r\n countrySubdivision: form.countrySubdivision?.trim() || undefined,\r\n municipality: form.municipality?.trim() || undefined,\r\n country: form.country?.trim() || undefined,\r\n }\r\n\r\n try {\r\n await createOpenDataPortal(payload)\r\n setForm(EMPTY_FORM)\r\n onOpenChange(false)\r\n }\r\n catch (err) {\r\n setSubmitError(err instanceof Error ? err.message : 'Failed to create portal')\r\n }\r\n }\r\n\r\n return (\r\n <Dialog open={open} onOpenChange={onOpenChange}>\r\n <DialogContent className=\"sm:max-w-[520px]\">\r\n <DialogHeader>\r\n <DialogTitle>Add Open Data Portal</DialogTitle>\r\n <DialogDescription>\r\n Register a new external data portal. Only Name and Group are required.\r\n </DialogDescription>\r\n </DialogHeader>\r\n\r\n <form onSubmit={handleSubmit} className=\"flex flex-col gap-3\">\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-name\">\r\n Name\r\n <span className=\"text-destructive ml-0.5\">*</span>\r\n </Label>\r\n <Input\r\n id=\"portal-name\"\r\n value={form.name}\r\n onChange={e => update('name', e.target.value)}\r\n disabled={isMutating}\r\n required\r\n />\r\n </div>\r\n\r\n <div className=\"grid grid-cols-2 gap-3\">\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-group\">\r\n Group\r\n <span className=\"text-destructive ml-0.5\">*</span>\r\n </Label>\r\n <select\r\n id=\"portal-group\"\r\n className=\"h-9 rounded-md border border-input bg-transparent px-3 text-sm\"\r\n value={form.group as string}\r\n onChange={e => update('group', e.target.value as DatasetGroup)}\r\n disabled={isMutating}\r\n >\r\n {Object.values(DatasetGroup).map(g => (\r\n <option key={g} value={g}>{g}</option>\r\n ))}\r\n </select>\r\n </div>\r\n\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-dms\">Data Management System</Label>\r\n <select\r\n id=\"portal-dms\"\r\n className=\"h-9 rounded-md border border-input bg-transparent px-3 text-sm\"\r\n value={(form.dataManagementSystem as string) ?? ''}\r\n onChange={e => update('dataManagementSystem', (e.target.value || undefined) as DataManagementSystem | undefined)}\r\n disabled={isMutating}\r\n >\r\n <option value=\"\">(none)</option>\r\n {Object.values(DataManagementSystem).map(d => (\r\n <option key={d} value={d}>{d}</option>\r\n ))}\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-portalUrl\">Portal URL</Label>\r\n <Input\r\n id=\"portal-portalUrl\"\r\n type=\"url\"\r\n value={form.portalUrl ?? ''}\r\n onChange={e => update('portalUrl', e.target.value)}\r\n disabled={isMutating}\r\n placeholder=\"https://example.com/open-data\"\r\n />\r\n </div>\r\n\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-apiUrl\">API URL</Label>\r\n <Input\r\n id=\"portal-apiUrl\"\r\n type=\"url\"\r\n value={form.apiUrl ?? ''}\r\n onChange={e => update('apiUrl', e.target.value)}\r\n disabled={isMutating}\r\n placeholder=\"https://example.com/api\"\r\n />\r\n </div>\r\n\r\n <div className=\"grid grid-cols-3 gap-3\">\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-municipality\">Municipality</Label>\r\n <Input\r\n id=\"portal-municipality\"\r\n value={form.municipality ?? ''}\r\n onChange={e => update('municipality', e.target.value)}\r\n disabled={isMutating}\r\n />\r\n </div>\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-countrySubdivision\">Subdivision</Label>\r\n <Input\r\n id=\"portal-countrySubdivision\"\r\n value={form.countrySubdivision ?? ''}\r\n onChange={e => update('countrySubdivision', e.target.value)}\r\n disabled={isMutating}\r\n placeholder=\"CA-ON\"\r\n />\r\n </div>\r\n <div className=\"flex flex-col gap-1\">\r\n <Label htmlFor=\"portal-country\">Country</Label>\r\n <Input\r\n id=\"portal-country\"\r\n value={form.country ?? ''}\r\n onChange={e => update('country', e.target.value)}\r\n disabled={isMutating}\r\n placeholder=\"CA\"\r\n />\r\n </div>\r\n </div>\r\n\r\n {submitError && (\r\n <p className=\"text-sm text-destructive\">{submitError}</p>\r\n )}\r\n\r\n <div className=\"flex justify-end gap-2 pt-2\">\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n onClick={() => onOpenChange(false)}\r\n disabled={isMutating}\r\n >\r\n Cancel\r\n </Button>\r\n <Button type=\"submit\" disabled={isMutating}>\r\n {isMutating\r\n ? (\r\n <>\r\n <LR.Loader2 className=\"mr-1 h-4 w-4 animate-spin\" />\r\n Adding…\r\n </>\r\n )\r\n : 'Add Portal'}\r\n </Button>\r\n </div>\r\n </form>\r\n </DialogContent>\r\n </Dialog>\r\n )\r\n}\r\n"],"mappings":"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","names":["_a","_b","_c","_d","_e"]}
@@ -1,5 +1,5 @@
1
- import type { Dataset } from '../../../../types/datasetTypes';
2
1
  import * as React from 'react';
2
+ import type { Dataset } from '../../../../types/datasetTypes';
3
3
  interface DatasetDetailsProps {
4
4
  selectedDataset?: Dataset;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetDetails.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetDetails.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAE7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,UAAU,mBAAmB;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,eAAe,EAAE,EAAE,mBAAmB,qBAiK9E"}
1
+ {"version":3,"file":"DatasetDetails.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetDetails.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAE7D,UAAU,mBAAmB;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,eAAe,EAAE,EAAE,mBAAmB,qBAiK9E"}
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { DescriptionListItem } from "../../../../components/ui/DescriptionList";
4
- import { Button, Badge, Separator } from "../../../../components/ui/";
5
- import { Card, CardContent } from "../../../../components/ui/Card";
6
3
  import * as LR from "lucide-react";
7
4
  import Link from "next/link";
8
- import * as React from "react";
9
5
  import { useTranslations } from "next-intl";
6
+ import * as React from "react";
7
+ import { Button, Badge, Separator } from "../../../../components/ui/";
8
+ import { Card, CardContent } from "../../../../components/ui/Card";
9
+ import { DescriptionListItem } from "../../../../components/ui/DescriptionList";
10
10
  import { useFastDatasetCache } from "./src/useFastDatasetCache";
11
11
  function DatasetDetails({ selectedDataset }) {
12
12
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetDetails.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// Shadcn Components\r\nimport { DescriptionListItem } from '../../../../components/ui/DescriptionList'\r\nimport { Button, Badge, Separator } from '../../../../components/ui/'\r\nimport { Card, CardContent } from '../../../../components/ui/Card'\r\nimport * as LR from 'lucide-react'\r\nimport type { Dataset } from '../../../../types/datasetTypes'\r\nimport Link from 'next/link'\r\nimport * as React from 'react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { useFastDatasetCache } from './src/useFastDatasetCache'\r\n\r\ninterface DatasetDetailsProps {\r\n selectedDataset?: Dataset\r\n}\r\n\r\nexport default function DatasetDetails({ selectedDataset }: DatasetDetailsProps) {\r\n // Translation\r\n const t = useTranslations('DatasetDetails')\r\n\r\n const [featuresData, setFeaturesData] = React.useState<any>(null)\r\n const [featuresLoading, setFeaturesLoading] = React.useState(false)\r\n const { getFromCache } = useFastDatasetCache()\r\n\r\n React.useEffect(() => {\r\n let isMounted = true\r\n \r\n if (!selectedDataset) {\r\n setFeaturesData(null)\r\n return\r\n }\r\n\r\n setFeaturesLoading(true)\r\n \r\n getFromCache(selectedDataset).then((data) => {\r\n if (isMounted) {\r\n setFeaturesData(data)\r\n }\r\n }).catch(err => {\r\n console.error('Failed to load dataset features:', err)\r\n if (isMounted) setFeaturesData(null)\r\n }).finally(() => {\r\n if (isMounted) setFeaturesLoading(false)\r\n })\r\n\r\n return () => { isMounted = false }\r\n }, [selectedDataset, getFromCache])\r\n\r\n // console.log(\"Features Data:\", featuresData);\r\n\r\n return (\r\n <div className=\"flex flex-col p-6 sm:h-[718px] overflow-y-auto max-h-[80vh]\">\r\n {/* 2 column headers */}\r\n <div className=\"grid grid-cols-1 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label=\"Url\">\r\n <Link\r\n href={selectedDataset.url}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"underline text-blue-600\"\r\n >\r\n {selectedDataset.url}\r\n </Link>\r\n </DescriptionListItem>\r\n </div>\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('publisherLabel')}>\r\n {selectedDataset.publisher || t('noPublisher')}\r\n </DescriptionListItem>\r\n <Separator className=\"md:hidden\" />\r\n <DescriptionListItem label={t('licenseLabel')}>\r\n {selectedDataset.license\r\n ? (\r\n getLicense(selectedDataset.license)\r\n )\r\n : t('noLicense')}\r\n </DescriptionListItem>\r\n </div>\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('email')} className={`${selectedDataset.contact ? 'underline' : ''}`}>\r\n {selectedDataset.contact || t('noEmail')}\r\n </DescriptionListItem>\r\n <Separator className=\"md:hidden\" />\r\n <DescriptionListItem label={t('typeLabel')}>\r\n {selectedDataset.type}\r\n </DescriptionListItem>\r\n </div>\r\n\r\n {(selectedDataset.dateReleased || selectedDataset.dateUpdated) && (\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('dateReleasedLabel')}>\r\n {formatDate(selectedDataset.dateReleased) || t('noDateReleased')}\r\n </DescriptionListItem>\r\n <Separator className=\"md:hidden\" />\r\n <DescriptionListItem label={t('dateUpdatedLabel')}>\r\n {formatDate(selectedDataset.dateUpdated) || t('noDateUpdated')}\r\n </DescriptionListItem>\r\n </div>\r\n )}\r\n\r\n {featuresData && featuresData.editingInfo && (\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('lastEditDateLabel')}>\r\n {featuresLoading\r\n ? t('loading')\r\n : (featuresData?.editingInfo?.lastEditDate\r\n ? formatDate(featuresData.editingInfo.lastEditDate)\r\n : t('unknown'))}\r\n </DescriptionListItem>\r\n <Separator className=\"md:hidden\" />\r\n <DescriptionListItem label={t('dataLastEditDateLabel')}>\r\n {featuresLoading\r\n ? t('loading')\r\n : (featuresData?.editingInfo?.dataLastEditDate\r\n ? formatDate(featuresData.editingInfo.dataLastEditDate)\r\n : t('unknown'))}\r\n </DescriptionListItem>\r\n </div>\r\n )}\r\n\r\n {/* Full width headers */}\r\n <div className=\"grid grid-cols-1 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('keywordsLabel')} className=\"flex gap-2\">\r\n {selectedDataset.keywords && selectedDataset.keywords.length > 0\r\n ? (\r\n selectedDataset.keywords.map((keyword, index) => (\r\n <Badge className=\"max-h-10 flex cursor-pointer items-start max-w-[120px] truncate\" title={keyword} key={index}>\r\n {keyword}\r\n </Badge>\r\n ))\r\n )\r\n : (\r\n <Badge>\r\n Keyword\r\n </Badge>\r\n )}\r\n </DescriptionListItem>\r\n </div>\r\n <div className=\"grid grid-cols-1 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('descriptionLabel')}>\r\n {selectedDataset.description || t('noDescription')}\r\n </DescriptionListItem>\r\n </div>\r\n\r\n {/* Files */}\r\n {selectedDataset.files && selectedDataset.files.length > 0 && (\r\n <div className=\"grid grid-cols-1 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label=\"Data and Resources\">\r\n <div className=\"flex flex-col md:flex-row gap-2 md:gap-6 w-full\">\r\n <Card className=\"w-full\">\r\n <CardContent className=\"p-4 md:p-6 flex items-center gap-3\">\r\n <LR.File className=\"w-4 h-4 text-foreground shrink-0\" />\r\n <div className=\"flex items-center justify-between w-full\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-sm font-semibold text-card-foreground underline\">\r\n Placeholder\r\n </span>\r\n </div>\r\n <Button variant=\"outline\" className=\"hidden md:!flex\">\r\n Explore\r\n </Button>\r\n <Button\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"md:hidden\"\r\n >\r\n <LR.Download />\r\n </Button>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n </div>\r\n </DescriptionListItem>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nfunction formatDate(dateString: string): string {\r\n if (!dateString) return 'Unknown'\r\n // Parse ISO string and format as YYYY-MM-DD\r\n const date = new Date(dateString)\r\n if (isNaN(date.getTime())) return dateString\r\n return date.toISOString().slice(0, 10)\r\n}\r\n\r\nfunction getLicense(license: string) {\r\n // Extract URL from HTML or use as is\r\n const htmlRegex = /<a[^>]+href=['\"]([^'\"]+)['\"][^>]*>(.*?)<\\/a>/i\r\n const match = htmlRegex.exec(license)\r\n if (match) {\r\n return (\r\n <a\r\n href={match[1]}\r\n target=\"_blank\"\r\n rel=\"nofollow ugc noopener noreferrer\"\r\n className=\"underline text-blue-600\"\r\n >\r\n {match[2] || match[1]}\r\n </a>\r\n )\r\n }\r\n // If it's a plain URL string\r\n const urlRegex = /^https?:\\/\\/[^\\s]+$/i\r\n if (urlRegex.test(license)) {\r\n return (\r\n <a\r\n href={license}\r\n target=\"_blank\"\r\n rel=\"nofollow ugc noopener noreferrer\"\r\n className=\"underline text-blue-600\"\r\n >\r\n {license}\r\n </a>\r\n )\r\n }\r\n // Otherwise, just show as text\r\n return license\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetDetails.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// Shadcn Components\r\nimport * as LR from 'lucide-react'\r\nimport Link from 'next/link'\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from 'react'\r\n\r\nimport { Button, Badge, Separator } from '../../../../components/ui/'\r\nimport { Card, CardContent } from '../../../../components/ui/Card'\r\nimport { DescriptionListItem } from '../../../../components/ui/DescriptionList'\r\n\r\nimport { useFastDatasetCache } from './src/useFastDatasetCache'\r\n\r\nimport type { Dataset } from '../../../../types/datasetTypes'\r\n\r\ninterface DatasetDetailsProps {\r\n selectedDataset?: Dataset\r\n}\r\n\r\nexport default function DatasetDetails({ selectedDataset }: DatasetDetailsProps) {\r\n // Translation\r\n const t = useTranslations('DatasetDetails')\r\n\r\n const [featuresData, setFeaturesData] = React.useState<any>(null)\r\n const [featuresLoading, setFeaturesLoading] = React.useState(false)\r\n const { getFromCache } = useFastDatasetCache()\r\n\r\n React.useEffect(() => {\r\n let isMounted = true\r\n\r\n if (!selectedDataset) {\r\n setFeaturesData(null)\r\n return\r\n }\r\n\r\n setFeaturesLoading(true)\r\n\r\n getFromCache(selectedDataset).then((data) => {\r\n if (isMounted) {\r\n setFeaturesData(data)\r\n }\r\n }).catch(err => {\r\n console.error('Failed to load dataset features:', err)\r\n if (isMounted) setFeaturesData(null)\r\n }).finally(() => {\r\n if (isMounted) setFeaturesLoading(false)\r\n })\r\n\r\n return () => { isMounted = false }\r\n }, [selectedDataset, getFromCache])\r\n\r\n // console.log(\"Features Data:\", featuresData);\r\n\r\n return (\r\n <div className=\"flex flex-col p-6 sm:h-[718px] overflow-y-auto max-h-[80vh]\">\r\n {/* 2 column headers */}\r\n <div className=\"grid grid-cols-1 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label=\"Url\">\r\n <Link\r\n href={selectedDataset.url}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"underline text-blue-600\"\r\n >\r\n {selectedDataset.url}\r\n </Link>\r\n </DescriptionListItem>\r\n </div>\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('publisherLabel')}>\r\n {selectedDataset.publisher || t('noPublisher')}\r\n </DescriptionListItem>\r\n <Separator className=\"md:hidden\" />\r\n <DescriptionListItem label={t('licenseLabel')}>\r\n {selectedDataset.license\r\n ? (\r\n getLicense(selectedDataset.license)\r\n )\r\n : t('noLicense')}\r\n </DescriptionListItem>\r\n </div>\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('email')} className={`${selectedDataset.contact ? 'underline' : ''}`}>\r\n {selectedDataset.contact || t('noEmail')}\r\n </DescriptionListItem>\r\n <Separator className=\"md:hidden\" />\r\n <DescriptionListItem label={t('typeLabel')}>\r\n {selectedDataset.type}\r\n </DescriptionListItem>\r\n </div>\r\n\r\n {(selectedDataset.dateReleased || selectedDataset.dateUpdated) && (\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('dateReleasedLabel')}>\r\n {formatDate(selectedDataset.dateReleased) || t('noDateReleased')}\r\n </DescriptionListItem>\r\n <Separator className=\"md:hidden\" />\r\n <DescriptionListItem label={t('dateUpdatedLabel')}>\r\n {formatDate(selectedDataset.dateUpdated) || t('noDateUpdated')}\r\n </DescriptionListItem>\r\n </div>\r\n )}\r\n\r\n {featuresData && featuresData.editingInfo && (\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('lastEditDateLabel')}>\r\n {featuresLoading\r\n ? t('loading')\r\n : (featuresData?.editingInfo?.lastEditDate\r\n ? formatDate(featuresData.editingInfo.lastEditDate)\r\n : t('unknown'))}\r\n </DescriptionListItem>\r\n <Separator className=\"md:hidden\" />\r\n <DescriptionListItem label={t('dataLastEditDateLabel')}>\r\n {featuresLoading\r\n ? t('loading')\r\n : (featuresData?.editingInfo?.dataLastEditDate\r\n ? formatDate(featuresData.editingInfo.dataLastEditDate)\r\n : t('unknown'))}\r\n </DescriptionListItem>\r\n </div>\r\n )}\r\n\r\n {/* Full width headers */}\r\n <div className=\"grid grid-cols-1 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('keywordsLabel')} className=\"flex gap-2\">\r\n {selectedDataset.keywords && selectedDataset.keywords.length > 0\r\n ? (\r\n selectedDataset.keywords.map((keyword, index) => (\r\n <Badge className=\"max-h-10 flex cursor-pointer items-start max-w-[120px] truncate\" title={keyword} key={index}>\r\n {keyword}\r\n </Badge>\r\n ))\r\n )\r\n : (\r\n <Badge>\r\n Keyword\r\n </Badge>\r\n )}\r\n </DescriptionListItem>\r\n </div>\r\n <div className=\"grid grid-cols-1 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label={t('descriptionLabel')}>\r\n {selectedDataset.description || t('noDescription')}\r\n </DescriptionListItem>\r\n </div>\r\n\r\n {/* Files */}\r\n {selectedDataset.files && selectedDataset.files.length > 0 && (\r\n <div className=\"grid grid-cols-1 gap-3 md:gap-6 py-3 border-t border-border\">\r\n <DescriptionListItem label=\"Data and Resources\">\r\n <div className=\"flex flex-col md:flex-row gap-2 md:gap-6 w-full\">\r\n <Card className=\"w-full\">\r\n <CardContent className=\"p-4 md:p-6 flex items-center gap-3\">\r\n <LR.File className=\"w-4 h-4 text-foreground shrink-0\" />\r\n <div className=\"flex items-center justify-between w-full\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-sm font-semibold text-card-foreground underline\">\r\n Placeholder\r\n </span>\r\n </div>\r\n <Button variant=\"outline\" className=\"hidden md:!flex\">\r\n Explore\r\n </Button>\r\n <Button\r\n variant=\"outline\"\r\n size=\"icon\"\r\n className=\"md:hidden\"\r\n >\r\n <LR.Download />\r\n </Button>\r\n </div>\r\n </CardContent>\r\n </Card>\r\n </div>\r\n </DescriptionListItem>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nfunction formatDate(dateString: string): string {\r\n if (!dateString) return 'Unknown'\r\n // Parse ISO string and format as YYYY-MM-DD\r\n const date = new Date(dateString)\r\n if (isNaN(date.getTime())) return dateString\r\n return date.toISOString().slice(0, 10)\r\n}\r\n\r\nfunction getLicense(license: string) {\r\n // Extract URL from HTML or use as is\r\n const htmlRegex = /<a[^>]+href=['\"]([^'\"]+)['\"][^>]*>(.*?)<\\/a>/i\r\n const match = htmlRegex.exec(license)\r\n if (match) {\r\n return (\r\n <a\r\n href={match[1]}\r\n target=\"_blank\"\r\n rel=\"nofollow ugc noopener noreferrer\"\r\n className=\"underline text-blue-600\"\r\n >\r\n {match[2] || match[1]}\r\n </a>\r\n )\r\n }\r\n // If it's a plain URL string\r\n const urlRegex = /^https?:\\/\\/[^\\s]+$/i\r\n if (urlRegex.test(license)) {\r\n return (\r\n <a\r\n href={license}\r\n target=\"_blank\"\r\n rel=\"nofollow ugc noopener noreferrer\"\r\n className=\"underline text-blue-600\"\r\n >\r\n {license}\r\n </a>\r\n )\r\n }\r\n // Otherwise, just show as text\r\n return license\r\n}\r\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/DatasetManager/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmI9B,MAAM,CAAC,OAAO,UAAU,kBAAkB,sBA+LzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/DatasetManager/index.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAqH9B,MAAM,CAAC,OAAO,UAAU,kBAAkB,sBA+LzC"}
@@ -19,19 +19,6 @@ var __spreadValues = (a, b) => {
19
19
  };
20
20
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
21
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
- import * as React from "react";
23
- import { useTranslations } from "next-intl";
24
- import { MapContext, DatasetsContext } from "../../../../../store";
25
- import { Command, Menubar, Badge, Button, Switch } from "../../../../../components/ui/";
26
- import {
27
- Table,
28
- TableBody,
29
- TableCell,
30
- TableRow
31
- } from "../../../../../components/ui/Table";
32
- import { FieldsTable } from "./src/FieldsTable";
33
- import * as LR from "lucide-react";
34
- import { ClusterManager } from "../../utils/ClusterManager";
35
22
  import {
36
23
  DndContext,
37
24
  closestCenter,
@@ -50,7 +37,20 @@ import {
50
37
  useSortable
51
38
  } from "@dnd-kit/sortable";
52
39
  import { CSS } from "@dnd-kit/utilities";
40
+ import * as LR from "lucide-react";
41
+ import { useTranslations } from "next-intl";
42
+ import * as React from "react";
43
+ import { Command, Menubar, Badge, Button, Switch } from "../../../../../components/ui/";
44
+ import {
45
+ Table,
46
+ TableBody,
47
+ TableCell,
48
+ TableRow
49
+ } from "../../../../../components/ui/Table";
50
+ import { MapContext, DatasetsContext } from "../../../../../store";
53
51
  import { useSidebar } from "../../../../ui/Sidebar";
52
+ import { ClusterManager } from "../../utils/ClusterManager";
53
+ import { FieldsTable } from "./src/FieldsTable";
54
54
  const isBuildingDataset = (dataset) => dataset.type === "buildings" && "data" in dataset;
55
55
  const SortableTableRow = ({
56
56
  dataset,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/DatasetManager/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// Dependencies\r\nimport * as React from 'react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { MapContext, DatasetsContext } from '../../../../../store'\r\nimport { Command, Menubar, Badge, Button, Switch } from '../../../../../components/ui/'\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n} from '../../../../../components/ui/Table'\r\nimport { FieldsTable } from './src/FieldsTable'\r\nimport * as LR from 'lucide-react'\r\nimport type { Dataset, BuildingDataset as RawBuildingDataset } from '../../../../../types/datasetTypes'\r\nimport { ClusterManager } from '../../utils/ClusterManager'\r\nimport {\r\n DndContext,\r\n closestCenter,\r\n KeyboardSensor,\r\n PointerSensor,\r\n useSensor,\r\n useSensors,\r\n DragEndEvent,\r\n} from '@dnd-kit/core'\r\nimport {\r\n arrayMove,\r\n SortableContext,\r\n sortableKeyboardCoordinates,\r\n verticalListSortingStrategy,\r\n} from '@dnd-kit/sortable'\r\nimport {\r\n useSortable,\r\n} from '@dnd-kit/sortable'\r\nimport { CSS } from '@dnd-kit/utilities'\r\nimport { useSidebar } from '../../../../ui/Sidebar'\r\n\r\ntype BuildingDataset = RawBuildingDataset & Dataset\r\n\r\n// Type guard to check if dataset is a building dataset\r\nconst isBuildingDataset = (dataset: Dataset): dataset is BuildingDataset =>\r\n dataset.type === 'buildings' && 'data' in dataset\r\n\r\ninterface SortableTableRowProps {\r\n dataset: Dataset\r\n onToggleDataset: (dataset: Dataset) => void\r\n openDatasetDetails: (datasetName: string) => void\r\n expandedDatasets: Set<string>\r\n}\r\n\r\nconst SortableTableRow: React.FC<SortableTableRowProps> = ({\r\n dataset,\r\n onToggleDataset,\r\n openDatasetDetails,\r\n expandedDatasets,\r\n}) => {\r\n const {\r\n attributes,\r\n listeners,\r\n setNodeRef,\r\n transform,\r\n transition,\r\n isDragging,\r\n } = useSortable({ id: dataset.name })\r\n\r\n const style = {\r\n transform: CSS.Transform.toString(transform),\r\n transition,\r\n opacity: isDragging ? 0.5 : 1,\r\n }\r\n\r\n // Raster (WMS) layers are server-rendered images with no fields and a server-fixed\r\n // colour ramp, so the field-styling table + colour swatch are meaningless — hide them.\r\n const isRaster = dataset.datasetType === 'WMS' || dataset.type === 'WMS'\r\n\r\n return (\r\n <>\r\n <TableRow ref={setNodeRef} style={style} className=\"hover:bg-muted/50\">\r\n <TableCell>\r\n <div className=\"flex items-center gap-2\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"cursor-grab active:cursor-grabbing\"\r\n {...attributes}\r\n {...listeners}\r\n >\r\n <LR.GripVertical className=\"h-4 w-4\" />\r\n </Button>\r\n <Switch\r\n checked={dataset.visible !== false}\r\n onCheckedChange={() => onToggleDataset(dataset)}\r\n className=\"shrink-0\"\r\n style={dataset.visible === false || isRaster ? {} : { backgroundColor: dataset.layerColor.color }}\r\n />\r\n </div>\r\n </TableCell>\r\n <TableCell className=\"font-medium\">\r\n {dataset.name.replaceAll('_', ' ')}\r\n {dataset.total && (\r\n <Badge variant=\"outline\" className=\"ml-2 text-xs\">\r\n {dataset.total}\r\n </Badge>\r\n )}\r\n </TableCell>\r\n <TableCell>\r\n {!isRaster && (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n onClick={() => openDatasetDetails(dataset.name)}\r\n className=\"shrink-0\"\r\n >\r\n <LR.ChevronDown\r\n className={`h-4 w-4 transition-transform duration-200 ${expandedDatasets.has(dataset.name) ? 'rotate-180' : ''}`}\r\n />\r\n </Button>\r\n )}\r\n </TableCell>\r\n </TableRow>\r\n {!isRaster && expandedDatasets.has(dataset.name) && (\r\n <TableRow>\r\n <TableCell colSpan={4} className=\"p-0 pb-1\">\r\n <FieldsTable\r\n dataset={dataset}\r\n />\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nexport default function DatasetManagerMenu() {\r\n // Translation\r\n const t = useTranslations('DatasetManagerMenu')\r\n\r\n const { state: mapState, dispatch: mapDispatch } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n\r\n const { state: datasetState, dispatch: datasetDispatch } = React.useContext(DatasetsContext)\r\n const { addedDatasets } = datasetState.datasets\r\n\r\n const [open, setOpen] = React.useState(false)\r\n const [menuOpen, setMenuOpen] = React.useState(false)\r\n const [expandedDatasets, setExpandedDatasets] = React.useState<Set<string>>(new Set())\r\n\r\n const sensors = useSensors(\r\n useSensor(PointerSensor),\r\n useSensor(KeyboardSensor, {\r\n coordinateGetter: sortableKeyboardCoordinates,\r\n })\r\n )\r\n\r\n const sortedDatasets = React.useMemo(() => {\r\n const datasetsWithOrder = addedDatasets.map((dataset, index) => ({\r\n ...dataset,\r\n order: dataset.order !== undefined ? dataset.order : addedDatasets.length - 1 - index,\r\n }))\r\n\r\n return datasetsWithOrder.sort((a, b) => (b.order ?? 0) - (a.order ?? 0))\r\n }, [addedDatasets])\r\n\r\n React.useEffect(() => {\r\n if (!map || !addedDatasets) return\r\n\r\n const clusterManager = new ClusterManager(map)\r\n\r\n const sortedDatasets = [...addedDatasets].sort((a, b) => (a.order ?? 0) - (b.order ?? 0))\r\n\r\n for (const dataset of sortedDatasets) {\r\n if (isBuildingDataset(dataset)) {\r\n if (dataset.visible === false) {\r\n clusterManager.remove(dataset.name)\r\n }\r\n else {\r\n clusterManager.create(dataset)\r\n clusterManager.toggleVisibility(dataset.name, true)\r\n }\r\n }\r\n }\r\n }, [map, addedDatasets])\r\n\r\n // Remove clusters for datasets no longer present\r\n const previousNamesRef = React.useRef<Set<string>>(new Set())\r\n\r\n React.useEffect(() => {\r\n if (!map) return\r\n const clusterManager = new ClusterManager(map)\r\n const currentNames = new Set(\r\n addedDatasets.filter(isBuildingDataset).map(ds => ds.name),\r\n )\r\n const removedNames = [...previousNamesRef.current].filter(\r\n name => !currentNames.has(name),\r\n )\r\n for (const datasetName of removedNames) {\r\n clusterManager.remove(datasetName)\r\n }\r\n previousNamesRef.current = currentNames\r\n }, [map, addedDatasets])\r\n\r\n const onToggle = () => setOpen(!open)\r\n\r\n const onToggleDataset = (dataset: Dataset) => {\r\n const datasetId = dataset.id;\r\n datasetDispatch({ type: 'TOGGLE_DATASET_VISIBILITY', payload: { datasetId } })\r\n }\r\n\r\n const toggleDatasetExpansion = (datasetName: string) => {\r\n setExpandedDatasets((prev) => {\r\n const newSet = new Set(prev)\r\n newSet.has(datasetName) ? newSet.delete(datasetName) : newSet.add(datasetName)\r\n return newSet\r\n })\r\n }\r\n\r\n const handleDragEnd = (event: DragEndEvent) => {\r\n const { active, over } = event\r\n\r\n if (over && active.id !== over.id) {\r\n const displayOrder = [...sortedDatasets]\r\n\r\n const oldIndex = displayOrder.findIndex(dataset => dataset.name === active.id)\r\n const newIndex = displayOrder.findIndex(dataset => dataset.name === over.id)\r\n\r\n const reorderedDisplay = arrayMove(displayOrder, oldIndex, newIndex)\r\n const maxOrder = reorderedDisplay.length - 1\r\n const reorderedDatasets = reorderedDisplay.map((dataset, index) => ({\r\n ...dataset,\r\n order: maxOrder - index,\r\n }))\r\n\r\n datasetDispatch({\r\n type: 'REORDER_DATASETS',\r\n payload: { reorderedDatasets }\r\n })\r\n }\r\n }\r\n\r\n const openAnimation = `\r\n pointer-events-auto \r\n transform \r\n transition-all \r\n duration-200\r\n data-[state=open]:animate-in \r\n data-[state=closed]:animate-out \r\n data-[state=closed]:fade-out-0 \r\n data-[state=open]:fade-in-0 \r\n data-[state=closed]:zoom-out-95 \r\n data-[state=open]:zoom-in-95\r\n `\r\n\r\n React.useEffect(() => {\r\n setMenuOpen(addedDatasets.length > 0)\r\n }, [addedDatasets.length])\r\n\r\n const openDatasetDetails = (datasetName: string) => {\r\n toggleDatasetExpansion(datasetName)\r\n }\r\n\r\n const {openInfo} = useSidebar()\r\n\r\n return (\r\n <>\r\n {!openInfo && addedDatasets.length > 0 && (\r\n <div data-state={menuOpen ? 'open' : 'closed'} className={openAnimation}>\r\n <Menubar className=\"pointer-events-auto w-96 h-auto\">\r\n <Command>\r\n <div>\r\n <div className={`flex items-center justify-between gap-3 ${open ? 'p-3' : 'pl-1 py-0'}`}>\r\n <div className=\"flex items-center gap-2\">\r\n <Badge>{addedDatasets.length}</Badge>\r\n <div className=\"text-sm font-medium\">\r\n {t('appliedLayer')}\r\n {addedDatasets.length === 1 ? '' : 's'}\r\n </div>\r\n </div>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n onClick={onToggle}\r\n className=\"opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n >\r\n <LR.ChevronUp\r\n size={14}\r\n className={`transition-transform duration-200 ${open ? 'rotate-180' : ''}`}\r\n />\r\n </Button>\r\n </div>\r\n {open && (\r\n <div className=\"max-h-[40vh] overflow-y-auto\">\r\n <DndContext\r\n sensors={sensors}\r\n collisionDetection={closestCenter}\r\n onDragEnd={handleDragEnd}\r\n >\r\n <SortableContext\r\n items={sortedDatasets.map(dataset => dataset.name)}\r\n strategy={verticalListSortingStrategy}\r\n >\r\n <Table>\r\n <TableBody>\r\n {sortedDatasets.map((dataset) => (\r\n <SortableTableRow\r\n key={dataset.name}\r\n dataset={dataset}\r\n onToggleDataset={onToggleDataset}\r\n openDatasetDetails={openDatasetDetails}\r\n expandedDatasets={expandedDatasets}\r\n />\r\n ))}\r\n </TableBody>\r\n </Table>\r\n </SortableContext>\r\n </DndContext>\r\n </div>\r\n )}\r\n </div>\r\n </Command>\r\n </Menubar>\r\n </div>\r\n )}\r\n </>\r\n )\r\n}\r\n"],"mappings":"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","names":["sortedDatasets"]}
1
+ {"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/DatasetManager/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// Dependencies\r\nimport {\r\n DndContext,\r\n closestCenter,\r\n KeyboardSensor,\r\n PointerSensor,\r\n useSensor,\r\n useSensors\r\n} from '@dnd-kit/core'\r\nimport {\r\n arrayMove,\r\n SortableContext,\r\n sortableKeyboardCoordinates,\r\n verticalListSortingStrategy,\r\n} from '@dnd-kit/sortable'\r\nimport {\r\n useSortable,\r\n} from '@dnd-kit/sortable'\r\nimport { CSS } from '@dnd-kit/utilities'\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from 'react'\r\n\r\nimport { Command, Menubar, Badge, Button, Switch } from '../../../../../components/ui/'\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n} from '../../../../../components/ui/Table'\r\nimport { MapContext, DatasetsContext } from '../../../../../store'\r\nimport { useSidebar } from '../../../../ui/Sidebar'\r\nimport { ClusterManager } from '../../utils/ClusterManager'\r\n\r\nimport { FieldsTable } from './src/FieldsTable'\r\n\r\nimport type { Dataset, BuildingDataset as RawBuildingDataset } from '../../../../../types/datasetTypes'\r\nimport type {\r\n DragEndEvent} from '@dnd-kit/core';\r\n\r\n\r\n\r\ntype BuildingDataset = RawBuildingDataset & Dataset\r\n\r\n// Type guard to check if dataset is a building dataset\r\nconst isBuildingDataset = (dataset: Dataset): dataset is BuildingDataset =>\r\n dataset.type === 'buildings' && 'data' in dataset\r\n\r\ninterface SortableTableRowProps {\r\n dataset: Dataset\r\n onToggleDataset: (dataset: Dataset) => void\r\n openDatasetDetails: (datasetName: string) => void\r\n expandedDatasets: Set<string>\r\n}\r\n\r\nconst SortableTableRow: React.FC<SortableTableRowProps> = ({\r\n dataset,\r\n onToggleDataset,\r\n openDatasetDetails,\r\n expandedDatasets,\r\n}) => {\r\n const {\r\n attributes,\r\n listeners,\r\n setNodeRef,\r\n transform,\r\n transition,\r\n isDragging,\r\n } = useSortable({ id: dataset.name })\r\n\r\n const style = {\r\n transform: CSS.Transform.toString(transform),\r\n transition,\r\n opacity: isDragging ? 0.5 : 1,\r\n }\r\n\r\n // Raster (WMS) layers are server-rendered images with no fields and a server-fixed\r\n // colour ramp, so the field-styling table + colour swatch are meaningless — hide them.\r\n const isRaster = dataset.datasetType === 'WMS' || dataset.type === 'WMS'\r\n\r\n return (\r\n <>\r\n <TableRow ref={setNodeRef} style={style} className=\"hover:bg-muted/50\">\r\n <TableCell>\r\n <div className=\"flex items-center gap-2\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"cursor-grab active:cursor-grabbing\"\r\n {...attributes}\r\n {...listeners}\r\n >\r\n <LR.GripVertical className=\"h-4 w-4\" />\r\n </Button>\r\n <Switch\r\n checked={dataset.visible !== false}\r\n onCheckedChange={() => onToggleDataset(dataset)}\r\n className=\"shrink-0\"\r\n style={dataset.visible === false || isRaster ? {} : { backgroundColor: dataset.layerColor.color }}\r\n />\r\n </div>\r\n </TableCell>\r\n <TableCell className=\"font-medium\">\r\n {dataset.name.replaceAll('_', ' ')}\r\n {dataset.total && (\r\n <Badge variant=\"outline\" className=\"ml-2 text-xs\">\r\n {dataset.total}\r\n </Badge>\r\n )}\r\n </TableCell>\r\n <TableCell>\r\n {!isRaster && (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n onClick={() => openDatasetDetails(dataset.name)}\r\n className=\"shrink-0\"\r\n >\r\n <LR.ChevronDown\r\n className={`h-4 w-4 transition-transform duration-200 ${expandedDatasets.has(dataset.name) ? 'rotate-180' : ''}`}\r\n />\r\n </Button>\r\n )}\r\n </TableCell>\r\n </TableRow>\r\n {!isRaster && expandedDatasets.has(dataset.name) && (\r\n <TableRow>\r\n <TableCell colSpan={4} className=\"p-0 pb-1\">\r\n <FieldsTable\r\n dataset={dataset}\r\n />\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nexport default function DatasetManagerMenu() {\r\n // Translation\r\n const t = useTranslations('DatasetManagerMenu')\r\n\r\n const { state: mapState, dispatch: mapDispatch } = React.useContext(MapContext)\r\n const { map } = mapState.map\r\n\r\n const { state: datasetState, dispatch: datasetDispatch } = React.useContext(DatasetsContext)\r\n const { addedDatasets } = datasetState.datasets\r\n\r\n const [open, setOpen] = React.useState(false)\r\n const [menuOpen, setMenuOpen] = React.useState(false)\r\n const [expandedDatasets, setExpandedDatasets] = React.useState<Set<string>>(new Set())\r\n\r\n const sensors = useSensors(\r\n useSensor(PointerSensor),\r\n useSensor(KeyboardSensor, {\r\n coordinateGetter: sortableKeyboardCoordinates,\r\n })\r\n )\r\n\r\n const sortedDatasets = React.useMemo(() => {\r\n const datasetsWithOrder = addedDatasets.map((dataset, index) => ({\r\n ...dataset,\r\n order: dataset.order !== undefined ? dataset.order : addedDatasets.length - 1 - index,\r\n }))\r\n\r\n return datasetsWithOrder.sort((a, b) => (b.order ?? 0) - (a.order ?? 0))\r\n }, [addedDatasets])\r\n\r\n React.useEffect(() => {\r\n if (!map || !addedDatasets) return\r\n\r\n const clusterManager = new ClusterManager(map)\r\n\r\n const sortedDatasets = [...addedDatasets].sort((a, b) => (a.order ?? 0) - (b.order ?? 0))\r\n\r\n for (const dataset of sortedDatasets) {\r\n if (isBuildingDataset(dataset)) {\r\n if (dataset.visible === false) {\r\n clusterManager.remove(dataset.name)\r\n }\r\n else {\r\n clusterManager.create(dataset)\r\n clusterManager.toggleVisibility(dataset.name, true)\r\n }\r\n }\r\n }\r\n }, [map, addedDatasets])\r\n\r\n // Remove clusters for datasets no longer present\r\n const previousNamesRef = React.useRef<Set<string>>(new Set())\r\n\r\n React.useEffect(() => {\r\n if (!map) return\r\n const clusterManager = new ClusterManager(map)\r\n const currentNames = new Set(\r\n addedDatasets.filter(isBuildingDataset).map(ds => ds.name),\r\n )\r\n const removedNames = [...previousNamesRef.current].filter(\r\n name => !currentNames.has(name),\r\n )\r\n for (const datasetName of removedNames) {\r\n clusterManager.remove(datasetName)\r\n }\r\n previousNamesRef.current = currentNames\r\n }, [map, addedDatasets])\r\n\r\n const onToggle = () => setOpen(!open)\r\n\r\n const onToggleDataset = (dataset: Dataset) => {\r\n const datasetId = dataset.id;\r\n datasetDispatch({ type: 'TOGGLE_DATASET_VISIBILITY', payload: { datasetId } })\r\n }\r\n\r\n const toggleDatasetExpansion = (datasetName: string) => {\r\n setExpandedDatasets((prev) => {\r\n const newSet = new Set(prev)\r\n newSet.has(datasetName) ? newSet.delete(datasetName) : newSet.add(datasetName)\r\n return newSet\r\n })\r\n }\r\n\r\n const handleDragEnd = (event: DragEndEvent) => {\r\n const { active, over } = event\r\n\r\n if (over && active.id !== over.id) {\r\n const displayOrder = [...sortedDatasets]\r\n\r\n const oldIndex = displayOrder.findIndex(dataset => dataset.name === active.id)\r\n const newIndex = displayOrder.findIndex(dataset => dataset.name === over.id)\r\n\r\n const reorderedDisplay = arrayMove(displayOrder, oldIndex, newIndex)\r\n const maxOrder = reorderedDisplay.length - 1\r\n const reorderedDatasets = reorderedDisplay.map((dataset, index) => ({\r\n ...dataset,\r\n order: maxOrder - index,\r\n }))\r\n\r\n datasetDispatch({\r\n type: 'REORDER_DATASETS',\r\n payload: { reorderedDatasets }\r\n })\r\n }\r\n }\r\n\r\n const openAnimation = `\r\n pointer-events-auto \r\n transform \r\n transition-all \r\n duration-200\r\n data-[state=open]:animate-in \r\n data-[state=closed]:animate-out \r\n data-[state=closed]:fade-out-0 \r\n data-[state=open]:fade-in-0 \r\n data-[state=closed]:zoom-out-95 \r\n data-[state=open]:zoom-in-95\r\n `\r\n\r\n React.useEffect(() => {\r\n setMenuOpen(addedDatasets.length > 0)\r\n }, [addedDatasets.length])\r\n\r\n const openDatasetDetails = (datasetName: string) => {\r\n toggleDatasetExpansion(datasetName)\r\n }\r\n\r\n const {openInfo} = useSidebar()\r\n\r\n return (\r\n <>\r\n {!openInfo && addedDatasets.length > 0 && (\r\n <div data-state={menuOpen ? 'open' : 'closed'} className={openAnimation}>\r\n <Menubar className=\"pointer-events-auto w-96 h-auto\">\r\n <Command>\r\n <div>\r\n <div className={`flex items-center justify-between gap-3 ${open ? 'p-3' : 'pl-1 py-0'}`}>\r\n <div className=\"flex items-center gap-2\">\r\n <Badge>{addedDatasets.length}</Badge>\r\n <div className=\"text-sm font-medium\">\r\n {t('appliedLayer')}\r\n {addedDatasets.length === 1 ? '' : 's'}\r\n </div>\r\n </div>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n onClick={onToggle}\r\n className=\"opacity-70 hover:opacity-100 transition-opacity duration-200 hover:bg-transparent\"\r\n >\r\n <LR.ChevronUp\r\n size={14}\r\n className={`transition-transform duration-200 ${open ? 'rotate-180' : ''}`}\r\n />\r\n </Button>\r\n </div>\r\n {open && (\r\n <div className=\"max-h-[40vh] overflow-y-auto\">\r\n <DndContext\r\n sensors={sensors}\r\n collisionDetection={closestCenter}\r\n onDragEnd={handleDragEnd}\r\n >\r\n <SortableContext\r\n items={sortedDatasets.map(dataset => dataset.name)}\r\n strategy={verticalListSortingStrategy}\r\n >\r\n <Table>\r\n <TableBody>\r\n {sortedDatasets.map((dataset) => (\r\n <SortableTableRow\r\n key={dataset.name}\r\n dataset={dataset}\r\n onToggleDataset={onToggleDataset}\r\n openDatasetDetails={openDatasetDetails}\r\n expandedDatasets={expandedDatasets}\r\n />\r\n ))}\r\n </TableBody>\r\n </Table>\r\n </SortableContext>\r\n </DndContext>\r\n </div>\r\n )}\r\n </div>\r\n </Command>\r\n </Menubar>\r\n </div>\r\n )}\r\n </>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsFI,mBAWU,KARJ,YAHN;AAhFJ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,OACK;AACP,SAAS,WAAW;AACpB,YAAY,QAAQ;AACpB,SAAS,uBAAuB;AAChC,YAAY,WAAW;AAEvB,SAAS,SAAS,SAAS,OAAO,QAAQ,cAAc;AACxD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,YAAY,uBAAuB;AAC5C,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAW5B,MAAM,oBAAoB,CAAC,YACzB,QAAQ,SAAS,eAAe,UAAU;AAS5C,MAAM,mBAAoD,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,YAAY,EAAE,IAAI,QAAQ,KAAK,CAAC;AAEpC,QAAM,QAAQ;AAAA,IACZ,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,IACA,SAAS,aAAa,MAAM;AAAA,EAC9B;AAIA,QAAM,WAAW,QAAQ,gBAAgB,SAAS,QAAQ,SAAS;AAEnE,SACE,iCACE;AAAA,yBAAC,YAAS,KAAK,YAAY,OAAc,WAAU,qBACjD;AAAA,0BAAC,aACC,+BAAC,SAAI,WAAU,2BACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,aACN,aACA,YALL;AAAA,YAOC,8BAAC,GAAG,cAAH,EAAgB,WAAU,WAAU;AAAA;AAAA,QACvC;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAS,QAAQ,YAAY;AAAA,YAC7B,iBAAiB,MAAM,gBAAgB,OAAO;AAAA,YAC9C,WAAU;AAAA,YACV,OAAO,QAAQ,YAAY,SAAS,WAAW,CAAC,IAAI,EAAE,iBAAiB,QAAQ,WAAW,MAAM;AAAA;AAAA,QAClG;AAAA,SACF,GACF;AAAA,MACA,qBAAC,aAAU,WAAU,eAClB;AAAA,gBAAQ,KAAK,WAAW,KAAK,GAAG;AAAA,QAChC,QAAQ,SACP,oBAAC,SAAM,SAAQ,WAAU,WAAU,gBAChC,kBAAQ,OACX;AAAA,SAEJ;AAAA,MACA,oBAAC,aACE,WAAC,YACA;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,SAAS,MAAM,mBAAmB,QAAQ,IAAI;AAAA,UAC9C,WAAU;AAAA,UAEV;AAAA,YAAC,GAAG;AAAA,YAAH;AAAA,cACC,WAAW,6CAA6C,iBAAiB,IAAI,QAAQ,IAAI,IAAI,eAAe,EAAE;AAAA;AAAA,UAChH;AAAA;AAAA,MACF,GAEJ;AAAA,OACF;AAAA,IACC,CAAC,YAAY,iBAAiB,IAAI,QAAQ,IAAI,KAC7C,oBAAC,YACC,8BAAC,aAAU,SAAS,GAAG,WAAU,YAC/B;AAAA,MAAC;AAAA;AAAA,QACC;AAAA;AAAA,IACF,GACF,GACF;AAAA,KAEJ;AAEJ;AAEe,SAAR,qBAAsC;AAE3C,QAAM,IAAI,gBAAgB,oBAAoB;AAE9C,QAAM,EAAE,OAAO,UAAU,UAAU,YAAY,IAAI,MAAM,WAAW,UAAU;AAC9E,QAAM,EAAE,IAAI,IAAI,SAAS;AAEzB,QAAM,EAAE,OAAO,cAAc,UAAU,gBAAgB,IAAI,MAAM,WAAW,eAAe;AAC3F,QAAM,EAAE,cAAc,IAAI,aAAa;AAEvC,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,KAAK;AAC5C,QAAM,CAAC,UAAU,WAAW,IAAI,MAAM,SAAS,KAAK;AACpD,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAAsB,oBAAI,IAAI,CAAC;AAErF,QAAM,UAAU;AAAA,IACd,UAAU,aAAa;AAAA,IACvB,UAAU,gBAAgB;AAAA,MACxB,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAEA,QAAM,iBAAiB,MAAM,QAAQ,MAAM;AACzC,UAAM,oBAAoB,cAAc,IAAI,CAAC,SAAS,UAAW,iCAC5D,UAD4D;AAAA,MAE/D,OAAO,QAAQ,UAAU,SAAY,QAAQ,QAAQ,cAAc,SAAS,IAAI;AAAA,IAClF,EAAE;AAEF,WAAO,kBAAkB,KAAK,CAAC,GAAG,MAAG;AA1KzC;AA0K6C,sBAAE,UAAF,YAAW,OAAM,OAAE,UAAF,YAAW;AAAA,KAAE;AAAA,EACzE,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,OAAO,CAAC,cAAe;AAE5B,UAAM,iBAAiB,IAAI,eAAe,GAAG;AAE7C,UAAMA,kBAAiB,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,GAAG,MAAG;AAlL1D;AAkL8D,sBAAE,UAAF,YAAW,OAAM,OAAE,UAAF,YAAW;AAAA,KAAE;AAExF,eAAW,WAAWA,iBAAgB;AACpC,UAAI,kBAAkB,OAAO,GAAG;AAC9B,YAAI,QAAQ,YAAY,OAAO;AAC7B,yBAAe,OAAO,QAAQ,IAAI;AAAA,QACpC,OACK;AACH,yBAAe,OAAO,OAAO;AAC7B,yBAAe,iBAAiB,QAAQ,MAAM,IAAI;AAAA,QACpD;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,aAAa,CAAC;AAGvB,QAAM,mBAAmB,MAAM,OAAoB,oBAAI,IAAI,CAAC;AAE5D,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,IAAK;AACV,UAAM,iBAAiB,IAAI,eAAe,GAAG;AAC7C,UAAM,eAAe,IAAI;AAAA,MACvB,cAAc,OAAO,iBAAiB,EAAE,IAAI,QAAM,GAAG,IAAI;AAAA,IAC3D;AACA,UAAM,eAAe,CAAC,GAAG,iBAAiB,OAAO,EAAE;AAAA,MACjD,UAAQ,CAAC,aAAa,IAAI,IAAI;AAAA,IAChC;AACA,eAAW,eAAe,cAAc;AACtC,qBAAe,OAAO,WAAW;AAAA,IACnC;AACA,qBAAiB,UAAU;AAAA,EAC7B,GAAG,CAAC,KAAK,aAAa,CAAC;AAEvB,QAAM,WAAW,MAAM,QAAQ,CAAC,IAAI;AAEpC,QAAM,kBAAkB,CAAC,YAAqB;AAC5C,UAAM,YAAY,QAAQ;AAC1B,oBAAgB,EAAE,MAAM,6BAA6B,SAAS,EAAE,UAAU,EAAE,CAAC;AAAA,EAC/E;AAEA,QAAM,yBAAyB,CAAC,gBAAwB;AACtD,wBAAoB,CAAC,SAAS;AAC5B,YAAM,SAAS,IAAI,IAAI,IAAI;AAC3B,aAAO,IAAI,WAAW,IAAI,OAAO,OAAO,WAAW,IAAI,OAAO,IAAI,WAAW;AAC7E,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,QAAM,gBAAgB,CAAC,UAAwB;AAC7C,UAAM,EAAE,QAAQ,KAAK,IAAI;AAEzB,QAAI,QAAQ,OAAO,OAAO,KAAK,IAAI;AACjC,YAAM,eAAe,CAAC,GAAG,cAAc;AAEvC,YAAM,WAAW,aAAa,UAAU,aAAW,QAAQ,SAAS,OAAO,EAAE;AAC7E,YAAM,WAAW,aAAa,UAAU,aAAW,QAAQ,SAAS,KAAK,EAAE;AAE3E,YAAM,mBAAmB,UAAU,cAAc,UAAU,QAAQ;AACnE,YAAM,WAAW,iBAAiB,SAAS;AAC3C,YAAM,oBAAoB,iBAAiB,IAAI,CAAC,SAAS,UAAW,iCAC/D,UAD+D;AAAA,QAElE,OAAO,WAAW;AAAA,MACpB,EAAE;AAEF,sBAAgB;AAAA,QACd,MAAM;AAAA,QACN,SAAS,EAAE,kBAAkB;AAAA,MAC/B,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAatB,QAAM,UAAU,MAAM;AACpB,gBAAY,cAAc,SAAS,CAAC;AAAA,EACtC,GAAG,CAAC,cAAc,MAAM,CAAC;AAEzB,QAAM,qBAAqB,CAAC,gBAAwB;AAClD,2BAAuB,WAAW;AAAA,EACpC;AAEA,QAAM,EAAC,SAAQ,IAAI,WAAW;AAE9B,SACE,gCACG,WAAC,YAAY,cAAc,SAAS,KACnC,oBAAC,SAAI,cAAY,WAAW,SAAS,UAAU,WAAW,eACxD,8BAAC,WAAQ,WAAU,mCACjB,8BAAC,WACC,+BAAC,SACC;AAAA,yBAAC,SAAI,WAAW,2CAA2C,OAAO,QAAQ,WAAW,IACnF;AAAA,2BAAC,SAAI,WAAU,2BACb;AAAA,4BAAC,SAAO,wBAAc,QAAO;AAAA,QAC7B,qBAAC,SAAI,WAAU,uBACZ;AAAA,YAAE,cAAc;AAAA,UAChB,cAAc,WAAW,IAAI,KAAK;AAAA,WACrC;AAAA,SACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,SAAS;AAAA,UACT,WAAU;AAAA,UAEV;AAAA,YAAC,GAAG;AAAA,YAAH;AAAA,cACC,MAAM;AAAA,cACN,WAAW,qCAAqC,OAAO,eAAe,EAAE;AAAA;AAAA,UAC1E;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IACC,QACC,oBAAC,SAAI,WAAU,gCACb;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,oBAAoB;AAAA,QACpB,WAAW;AAAA,QAEX;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,eAAe,IAAI,aAAW,QAAQ,IAAI;AAAA,YACjD,UAAU;AAAA,YAEV,8BAAC,SACC,8BAAC,aACE,yBAAe,IAAI,CAAC,YACnB;AAAA,cAAC;AAAA;AAAA,gBAEC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA;AAAA,cAJK,QAAQ;AAAA,YAKf,CACD,GACH,GACF;AAAA;AAAA,QACF;AAAA;AAAA,IACF,GACF;AAAA,KAEJ,GACF,GACF,GACF,GAEJ;AAEJ;","names":["sortedDatasets"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldsTable.d.ts","sourceRoot":"","sources":["../../../../../../../../src/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,OAAO,KAAK,EAAa,OAAO,EAAgB,MAAM,sCAAsC,CAAA;AAG5F,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,gBAAgB,qBA2OxD"}
1
+ {"version":3,"file":"FieldsTable.d.ts","sourceRoot":"","sources":["../../../../../../../../src/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,KAAK,EAAa,OAAO,EAAgB,MAAM,sCAAsC,CAAA;AAE5F,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,gBAAgB,qBA2OxD"}
@@ -19,12 +19,12 @@ var __spreadValues = (a, b) => {
19
19
  };
20
20
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
21
  import { jsx, jsxs } from "react/jsx-runtime";
22
- import * as React from "react";
23
22
  import { useTranslations, useLocale } from "next-intl";
23
+ import * as React from "react";
24
24
  import { Checkbox, Input, LoadingSpinner } from "../../../../../../components/ui/";
25
25
  import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "../../../../../../components/ui/Table";
26
- import { formatName } from "../../utils";
27
26
  import { DatasetsContext } from "../../../../../../store";
27
+ import { formatName } from "../../utils";
28
28
  function FieldsTable({ dataset }) {
29
29
  const t = useTranslations("FieldsTable");
30
30
  const locale = useLocale();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.tsx"],"sourcesContent":["\"use client\"\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\n// Dependencies\r\nimport * as React from 'react'\r\nimport { useTranslations, useLocale } from 'next-intl'\r\n\r\n// Shadcn components\r\nimport { Checkbox, Input, LoadingSpinner } from '../../../../../../components/ui/'\r\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../../../../../../components/ui/Table'\r\nimport { formatName } from '../../utils'\r\nimport type { ColorType, Dataset, DatasetField } from '../../../../../../types/datasetTypes'\r\nimport { DatasetsContext } from '../../../../../../store'\r\n\r\ninterface FieldsTableProps {\r\n dataset: Dataset\r\n}\r\n\r\nexport function FieldsTable({ dataset }: FieldsTableProps) {\r\n const t = useTranslations('FieldsTable')\r\n const locale = useLocale()\r\n const datasetId = dataset.id\r\n const { dispatch: datasetDispatch } = React.useContext(DatasetsContext)\r\n\r\n const [fields, setFields] = React.useState<DatasetField[]>([])\r\n const [loading, setLoading] = React.useState(false)\r\n const [fieldColors, setFieldColors] = React.useState<Record<string, { single?: string; min?: string; max?: string }>>({})\r\n const [selectedField, setSelectedField] = React.useState<string>('All features')\r\n\r\n const getEffectiveColor = (fieldName: string, colorType: 'min' | 'max' | 'single') => {\r\n const userColor = fieldColors[fieldName]?.[colorType]\r\n if (userColor) return userColor\r\n if (colorType === 'single') return dataset.layerColor.color\r\n if (colorType === 'min') return dataset.layerColor.minColor || dataset.layerColor.color\r\n if (colorType === 'max') return dataset.layerColor.maxColor || dataset.layerColor.color\r\n return '#cccccc'\r\n }\r\n\r\n const onSelectingField = (field: DatasetField) => {\r\n datasetDispatch({ type: 'SET_SELECTED_FIELD', payload: { datasetName: dataset.name, fieldName: field.name } })\r\n setSelectedField(field.name)\r\n }\r\n\r\n const debouncedDispatchRef = React.useRef<NodeJS.Timeout | null>(null)\r\n const handleColorChange = React.useCallback((fieldName: string, color: string, colorType: 'single' | 'min' | 'max') => {\r\n setFieldColors(prev => ({\r\n ...prev,\r\n [fieldName]: { ...prev[fieldName], [colorType]: color },\r\n }))\r\n if (fieldName === selectedField) {\r\n if (debouncedDispatchRef.current) clearTimeout(debouncedDispatchRef.current)\r\n debouncedDispatchRef.current = setTimeout(() => {\r\n const layerColor = {\r\n ...dataset.layerColor,\r\n ...(colorType === 'single' && { color }),\r\n ...(colorType === 'min' && { minColor: color }),\r\n ...(colorType === 'max' && { maxColor: color }),\r\n }\r\n datasetDispatch({ type: 'DATASET_COLOR', payload: { datasetId, layerColor } })\r\n datasetDispatch({ type: 'SET_FIELD_COLOR', payload: { datasetName: dataset.name, fieldName: fieldName, layerColor } })\r\n }, 200)\r\n }\r\n }, [selectedField, dataset.layerColor, datasetId, datasetDispatch])\r\n\r\n React.useEffect(() => () => { if (debouncedDispatchRef.current) clearTimeout(debouncedDispatchRef.current) }, [])\r\n\r\n const filteredFields = React.useMemo<DatasetField[]>(() => {\r\n const result: DatasetField[] = fields.filter(field => {\r\n const t = (field as any).type\r\n if (t === 'id') return false\r\n const key = field.name || 'unnamed'\r\n const lowerKey = key.toLowerCase()\r\n const coordinateKeys = ['globalid', 'latitude', 'lat', 'longitude', 'lng', 'lon', 'coordinates', 'coordina', 'x', 'y', 'z']\r\n if (coordinateKeys.includes(lowerKey)) return false\r\n const hasIdWord = /(^|[\\s_-])id($|[\\s_-])/i.test(lowerKey) || lowerKey.endsWith('id')\r\n if (hasIdWord) return false\r\n if (locale === 'En') {\r\n const fr = ['fr', 'fre', 'french']\r\n const es = ['es', 'esp', 'spanish']\r\n if (fr.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n if (es.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n } else if (locale === 'Fr') {\r\n const en = ['en', 'eng', 'engl', 'english']\r\n const es = ['es', 'esp', 'spanish']\r\n if (en.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n if (es.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n } else if (locale === 'Es') {\r\n const en = ['en', 'eng', 'engl', 'english']\r\n const fr = ['fr', 'fre', 'french']\r\n if (en.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n if (fr.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n }\r\n return true\r\n })\r\n if (!result.some(f => (f as any).name === 'All features')) {\r\n // Insert All features synthetic row with explicit colorType so it can show a single color picker\r\n result.unshift({ name: 'All features', type: 'single', colorType: 'single' } as any)\r\n }\r\n return result\r\n }, [fields, locale])\r\n\r\n // Simple categorization relying solely on pre-inferred field.type (includes 'datetime')\r\n const colorType = (field: DatasetField): 'single' | 'minMax' | 'boolean' => {\r\n const t = typeof field.type === 'string' ? field.type.toLowerCase() : field.type\r\n if (t === 'number' || t === 'datetime') return 'minMax'\r\n if (t === 'boolean') return 'boolean'\r\n return 'single'\r\n }\r\n\r\n interface RowConfig {\r\n showMinMax?: boolean\r\n showSingleColor?: boolean\r\n selectable: boolean\r\n minLabel?: string\r\n maxLabel?: string\r\n }\r\n\r\n const buildConfig = (rowCat: ColorType): RowConfig => {\r\n switch (rowCat) {\r\n case 'single': return { showSingleColor: true, selectable: true }\r\n case 'minMax': return { showMinMax: true, selectable: true, minLabel: 'min', maxLabel: 'max' }\r\n case 'boolean': return { showMinMax: true, selectable: true, minLabel: 'No', maxLabel: 'Yes' }\r\n default: return { selectable: true }\r\n }\r\n }\r\n\r\n const renderColorControls = (field: DatasetField, rowConfig: RowConfig, isSelected: boolean) => {\r\n if (!isSelected) return null\r\n if (rowConfig.showSingleColor) {\r\n return (\r\n <div className=\"flex gap-1\">\r\n <div className=\"w-5 h-5 rounded-md overflow-hidden border border-gray-300 shadow-sm\">\r\n <Input\r\n type=\"color\"\r\n value={getEffectiveColor(field.name, 'single')}\r\n onChange={e => handleColorChange(field.name, e.target.value, 'single')}\r\n className=\"w-full h-full p-0 border-0 cursor-pointer [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:border-0 [&::-webkit-color-swatch]:rounded-none\"\r\n title={t('fieldColor')}\r\n />\r\n </div>\r\n </div>\r\n )\r\n }\r\n if (rowConfig.showMinMax) {\r\n return (\r\n <div className=\"flex gap-2 items-center\">\r\n <div className=\"flex items-center gap-1\">\r\n {rowConfig.minLabel && <span className=\"text-xs text-muted-foreground\">{rowConfig.minLabel}</span>}\r\n <div className=\"w-5 h-5 rounded-sm overflow-hidden border border-gray-300 shadow-sm\">\r\n <Input\r\n type=\"color\"\r\n value={getEffectiveColor(field.name, 'min')}\r\n onChange={e => handleColorChange(field.name, e.target.value, 'min')}\r\n className=\"w-full h-full p-0 border-0 cursor-pointer [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:border-0 [&::-webkit-color-swatch]:rounded-none\"\r\n title={rowConfig.minLabel}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"flex items-center gap-1\">\r\n {rowConfig.maxLabel && <span className=\"text-xs text-muted-foreground\">{rowConfig.maxLabel}</span>}\r\n <div className=\"w-5 h-5 rounded-sm overflow-hidden border border-gray-300 shadow-sm\">\r\n <Input\r\n type=\"color\"\r\n value={getEffectiveColor(field.name, 'max')}\r\n onChange={e => handleColorChange(field.name, e.target.value, 'max')}\r\n className=\"w-full h-full p-0 border-0 cursor-pointer [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:border-0 [&::-webkit-color-swatch]:rounded-none\"\r\n title={rowConfig.maxLabel}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n }\r\n return null\r\n }\r\n\r\n React.useEffect(() => {\r\n let mounted = true\r\n if (!dataset.getFields) setFields(dataset.fields || [])\r\n async function fetchFields() {\r\n setLoading(true)\r\n if (dataset && typeof dataset.getFields === 'function') {\r\n const result = await dataset.getFields()\r\n const datasetFields: DatasetField[] = result.map(f => ({\r\n name: f.name,\r\n datasetName: dataset.name,\r\n colorType: colorType(f),\r\n type: f.type,\r\n layerColor: dataset.layerColor,\r\n selected: false\r\n }))\r\n datasetDispatch({ type: 'SET_DATASET_FIELDS', payload: { datasetName: dataset.name, datasetFields } })\r\n if (mounted && Array.isArray(result)) setFields(datasetFields)\r\n }\r\n if (mounted) setLoading(false)\r\n }\r\n fetchFields()\r\n return () => { mounted = false }\r\n }, [dataset.name])\r\n\r\n React.useEffect(() => {\r\n if (selectedField === 'All features') {\r\n const allField = filteredFields.find(f => f.name === 'All features')\r\n if (allField) onSelectingField(allField as DatasetField)\r\n }\r\n }, [filteredFields, selectedField, dataset.name])\r\n\r\n return (\r\n <div className=\"mt-4\">\r\n {loading ? (\r\n <div className=\"flex items-center gap-2 py-4 justify-center\">\r\n <LoadingSpinner />\r\n <span className=\"text-sm\">{t('loadingText')}</span>\r\n </div>\r\n ) : (\r\n <Table>\r\n <TableHeader>\r\n <TableRow className=\"h-8\">\r\n <TableHead className=\"w-16 text-xs\"></TableHead>\r\n <TableHead className=\"text-xs\">{t('fieldName')}</TableHead>\r\n <TableHead className=\"text-xs\">{t('color')}</TableHead>\r\n </TableRow>\r\n </TableHeader>\r\n <TableBody>\r\n {filteredFields.map(field => {\r\n const fieldColorType = field.colorType\r\n const rowConfig = buildConfig(fieldColorType as any)\r\n // Override: only show single color picker for the synthetic 'All features' row\r\n if (fieldColorType === 'single') {\r\n rowConfig.showSingleColor = field.name === 'All features'\r\n }\r\n const isSelected = selectedField === field.name\r\n const colorControls = renderColorControls(field, rowConfig, isSelected)\r\n return (\r\n <TableRow key={field.name} className=\"h-8\">\r\n <TableCell className=\"py-2\">\r\n {rowConfig.selectable && (\r\n <Checkbox\r\n checked={isSelected}\r\n onCheckedChange={() => onSelectingField(field)}\r\n />\r\n )}\r\n </TableCell>\r\n <TableCell className=\"py-2 text-sm\">{formatName(field.name)}</TableCell>\r\n <TableCell className=\"py-2\">{colorControls}</TableCell>\r\n </TableRow>\r\n )\r\n })}\r\n </TableBody>\r\n </Table>\r\n )}\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":["colorType","t"]}
1
+ {"version":3,"sources":["../../../../../../../../src/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.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 { useTranslations, useLocale } from 'next-intl'\r\nimport * as React from 'react'\r\n\r\n// Shadcn components\r\nimport { Checkbox, Input, LoadingSpinner } from '../../../../../../components/ui/'\r\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../../../../../../components/ui/Table'\r\nimport { DatasetsContext } from '../../../../../../store'\r\nimport { formatName } from '../../utils'\r\n\r\nimport type { ColorType, Dataset, DatasetField } from '../../../../../../types/datasetTypes'\r\n\r\ninterface FieldsTableProps {\r\n dataset: Dataset\r\n}\r\n\r\nexport function FieldsTable({ dataset }: FieldsTableProps) {\r\n const t = useTranslations('FieldsTable')\r\n const locale = useLocale()\r\n const datasetId = dataset.id\r\n const { dispatch: datasetDispatch } = React.useContext(DatasetsContext)\r\n\r\n const [fields, setFields] = React.useState<DatasetField[]>([])\r\n const [loading, setLoading] = React.useState(false)\r\n const [fieldColors, setFieldColors] = React.useState<Record<string, { single?: string; min?: string; max?: string }>>({})\r\n const [selectedField, setSelectedField] = React.useState<string>('All features')\r\n\r\n const getEffectiveColor = (fieldName: string, colorType: 'min' | 'max' | 'single') => {\r\n const userColor = fieldColors[fieldName]?.[colorType]\r\n if (userColor) return userColor\r\n if (colorType === 'single') return dataset.layerColor.color\r\n if (colorType === 'min') return dataset.layerColor.minColor || dataset.layerColor.color\r\n if (colorType === 'max') return dataset.layerColor.maxColor || dataset.layerColor.color\r\n return '#cccccc'\r\n }\r\n\r\n const onSelectingField = (field: DatasetField) => {\r\n datasetDispatch({ type: 'SET_SELECTED_FIELD', payload: { datasetName: dataset.name, fieldName: field.name } })\r\n setSelectedField(field.name)\r\n }\r\n\r\n const debouncedDispatchRef = React.useRef<NodeJS.Timeout | null>(null)\r\n const handleColorChange = React.useCallback((fieldName: string, color: string, colorType: 'single' | 'min' | 'max') => {\r\n setFieldColors(prev => ({\r\n ...prev,\r\n [fieldName]: { ...prev[fieldName], [colorType]: color },\r\n }))\r\n if (fieldName === selectedField) {\r\n if (debouncedDispatchRef.current) clearTimeout(debouncedDispatchRef.current)\r\n debouncedDispatchRef.current = setTimeout(() => {\r\n const layerColor = {\r\n ...dataset.layerColor,\r\n ...(colorType === 'single' && { color }),\r\n ...(colorType === 'min' && { minColor: color }),\r\n ...(colorType === 'max' && { maxColor: color }),\r\n }\r\n datasetDispatch({ type: 'DATASET_COLOR', payload: { datasetId, layerColor } })\r\n datasetDispatch({ type: 'SET_FIELD_COLOR', payload: { datasetName: dataset.name, fieldName: fieldName, layerColor } })\r\n }, 200)\r\n }\r\n }, [selectedField, dataset.layerColor, datasetId, datasetDispatch])\r\n\r\n React.useEffect(() => () => { if (debouncedDispatchRef.current) clearTimeout(debouncedDispatchRef.current) }, [])\r\n\r\n const filteredFields = React.useMemo<DatasetField[]>(() => {\r\n const result: DatasetField[] = fields.filter(field => {\r\n const t = (field as any).type\r\n if (t === 'id') return false\r\n const key = field.name || 'unnamed'\r\n const lowerKey = key.toLowerCase()\r\n const coordinateKeys = ['globalid', 'latitude', 'lat', 'longitude', 'lng', 'lon', 'coordinates', 'coordina', 'x', 'y', 'z']\r\n if (coordinateKeys.includes(lowerKey)) return false\r\n const hasIdWord = /(^|[\\s_-])id($|[\\s_-])/i.test(lowerKey) || lowerKey.endsWith('id')\r\n if (hasIdWord) return false\r\n if (locale === 'En') {\r\n const fr = ['fr', 'fre', 'french']\r\n const es = ['es', 'esp', 'spanish']\r\n if (fr.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n if (es.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n } else if (locale === 'Fr') {\r\n const en = ['en', 'eng', 'engl', 'english']\r\n const es = ['es', 'esp', 'spanish']\r\n if (en.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n if (es.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n } else if (locale === 'Es') {\r\n const en = ['en', 'eng', 'engl', 'english']\r\n const fr = ['fr', 'fre', 'french']\r\n if (en.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n if (fr.some(ind => lowerKey === ind || lowerKey.endsWith(`_${ind}`) || lowerKey.startsWith(`${ind}_`))) return false\r\n }\r\n return true\r\n })\r\n if (!result.some(f => (f as any).name === 'All features')) {\r\n // Insert All features synthetic row with explicit colorType so it can show a single color picker\r\n result.unshift({ name: 'All features', type: 'single', colorType: 'single' } as any)\r\n }\r\n return result\r\n }, [fields, locale])\r\n\r\n // Simple categorization relying solely on pre-inferred field.type (includes 'datetime')\r\n const colorType = (field: DatasetField): 'single' | 'minMax' | 'boolean' => {\r\n const t = typeof field.type === 'string' ? field.type.toLowerCase() : field.type\r\n if (t === 'number' || t === 'datetime') return 'minMax'\r\n if (t === 'boolean') return 'boolean'\r\n return 'single'\r\n }\r\n\r\n interface RowConfig {\r\n showMinMax?: boolean\r\n showSingleColor?: boolean\r\n selectable: boolean\r\n minLabel?: string\r\n maxLabel?: string\r\n }\r\n\r\n const buildConfig = (rowCat: ColorType): RowConfig => {\r\n switch (rowCat) {\r\n case 'single': return { showSingleColor: true, selectable: true }\r\n case 'minMax': return { showMinMax: true, selectable: true, minLabel: 'min', maxLabel: 'max' }\r\n case 'boolean': return { showMinMax: true, selectable: true, minLabel: 'No', maxLabel: 'Yes' }\r\n default: return { selectable: true }\r\n }\r\n }\r\n\r\n const renderColorControls = (field: DatasetField, rowConfig: RowConfig, isSelected: boolean) => {\r\n if (!isSelected) return null\r\n if (rowConfig.showSingleColor) {\r\n return (\r\n <div className=\"flex gap-1\">\r\n <div className=\"w-5 h-5 rounded-md overflow-hidden border border-gray-300 shadow-sm\">\r\n <Input\r\n type=\"color\"\r\n value={getEffectiveColor(field.name, 'single')}\r\n onChange={e => handleColorChange(field.name, e.target.value, 'single')}\r\n className=\"w-full h-full p-0 border-0 cursor-pointer [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:border-0 [&::-webkit-color-swatch]:rounded-none\"\r\n title={t('fieldColor')}\r\n />\r\n </div>\r\n </div>\r\n )\r\n }\r\n if (rowConfig.showMinMax) {\r\n return (\r\n <div className=\"flex gap-2 items-center\">\r\n <div className=\"flex items-center gap-1\">\r\n {rowConfig.minLabel && <span className=\"text-xs text-muted-foreground\">{rowConfig.minLabel}</span>}\r\n <div className=\"w-5 h-5 rounded-sm overflow-hidden border border-gray-300 shadow-sm\">\r\n <Input\r\n type=\"color\"\r\n value={getEffectiveColor(field.name, 'min')}\r\n onChange={e => handleColorChange(field.name, e.target.value, 'min')}\r\n className=\"w-full h-full p-0 border-0 cursor-pointer [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:border-0 [&::-webkit-color-swatch]:rounded-none\"\r\n title={rowConfig.minLabel}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"flex items-center gap-1\">\r\n {rowConfig.maxLabel && <span className=\"text-xs text-muted-foreground\">{rowConfig.maxLabel}</span>}\r\n <div className=\"w-5 h-5 rounded-sm overflow-hidden border border-gray-300 shadow-sm\">\r\n <Input\r\n type=\"color\"\r\n value={getEffectiveColor(field.name, 'max')}\r\n onChange={e => handleColorChange(field.name, e.target.value, 'max')}\r\n className=\"w-full h-full p-0 border-0 cursor-pointer [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:border-0 [&::-webkit-color-swatch]:rounded-none\"\r\n title={rowConfig.maxLabel}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n }\r\n return null\r\n }\r\n\r\n React.useEffect(() => {\r\n let mounted = true\r\n if (!dataset.getFields) setFields(dataset.fields || [])\r\n async function fetchFields() {\r\n setLoading(true)\r\n if (dataset && typeof dataset.getFields === 'function') {\r\n const result = await dataset.getFields()\r\n const datasetFields: DatasetField[] = result.map(f => ({\r\n name: f.name,\r\n datasetName: dataset.name,\r\n colorType: colorType(f),\r\n type: f.type,\r\n layerColor: dataset.layerColor,\r\n selected: false\r\n }))\r\n datasetDispatch({ type: 'SET_DATASET_FIELDS', payload: { datasetName: dataset.name, datasetFields } })\r\n if (mounted && Array.isArray(result)) setFields(datasetFields)\r\n }\r\n if (mounted) setLoading(false)\r\n }\r\n fetchFields()\r\n return () => { mounted = false }\r\n }, [dataset.name])\r\n\r\n React.useEffect(() => {\r\n if (selectedField === 'All features') {\r\n const allField = filteredFields.find(f => f.name === 'All features')\r\n if (allField) onSelectingField(allField as DatasetField)\r\n }\r\n }, [filteredFields, selectedField, dataset.name])\r\n\r\n return (\r\n <div className=\"mt-4\">\r\n {loading ? (\r\n <div className=\"flex items-center gap-2 py-4 justify-center\">\r\n <LoadingSpinner />\r\n <span className=\"text-sm\">{t('loadingText')}</span>\r\n </div>\r\n ) : (\r\n <Table>\r\n <TableHeader>\r\n <TableRow className=\"h-8\">\r\n <TableHead className=\"w-16 text-xs\"></TableHead>\r\n <TableHead className=\"text-xs\">{t('fieldName')}</TableHead>\r\n <TableHead className=\"text-xs\">{t('color')}</TableHead>\r\n </TableRow>\r\n </TableHeader>\r\n <TableBody>\r\n {filteredFields.map(field => {\r\n const fieldColorType = field.colorType\r\n const rowConfig = buildConfig(fieldColorType as any)\r\n // Override: only show single color picker for the synthetic 'All features' row\r\n if (fieldColorType === 'single') {\r\n rowConfig.showSingleColor = field.name === 'All features'\r\n }\r\n const isSelected = selectedField === field.name\r\n const colorControls = renderColorControls(field, rowConfig, isSelected)\r\n return (\r\n <TableRow key={field.name} className=\"h-8\">\r\n <TableCell className=\"py-2\">\r\n {rowConfig.selectable && (\r\n <Checkbox\r\n checked={isSelected}\r\n onCheckedChange={() => onSelectingField(field)}\r\n />\r\n )}\r\n </TableCell>\r\n <TableCell className=\"py-2 text-sm\">{formatName(field.name)}</TableCell>\r\n <TableCell className=\"py-2\">{colorControls}</TableCell>\r\n </TableRow>\r\n )\r\n })}\r\n </TableBody>\r\n </Table>\r\n )}\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":["colorType","t"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetSkeleton.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetSkeleton.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,eAAe,gCAyEtC"}
1
+ {"version":3,"file":"DatasetSkeleton.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetSkeleton.tsx"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,UAAU,eAAe,gCAyEtC"}