@collabdt/core 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/components/AppSidebarContent.d.ts +1 -1
- package/dist/core/components/AppSidebarContent.d.ts.map +1 -1
- package/dist/core/components/AppSidebarContent.js +9 -9
- package/dist/core/components/AppSidebarContent.js.map +1 -1
- package/dist/core/components/ConfirmDialog.js.map +1 -1
- package/dist/core/components/DataTableSkeleton.d.ts.map +1 -1
- package/dist/core/components/DataTableSkeleton.js.map +1 -1
- package/dist/core/components/LanguageSwitch.d.ts.map +1 -1
- package/dist/core/components/LanguageSwitch.js +4 -4
- package/dist/core/components/LanguageSwitch.js.map +1 -1
- package/dist/core/components/Logo.js +1 -1
- package/dist/core/components/Logo.js.map +1 -1
- package/dist/core/components/Toolbar.d.ts +1 -1
- package/dist/core/components/Toolbar.d.ts.map +1 -1
- package/dist/core/components/Toolbar.js +1 -1
- package/dist/core/components/Toolbar.js.map +1 -1
- package/dist/core/components/ToolbarBody.d.ts +1 -1
- package/dist/core/components/ToolbarBody.d.ts.map +1 -1
- package/dist/core/components/ToolbarBody.js +1 -1
- package/dist/core/components/ToolbarBody.js.map +1 -1
- package/dist/core/components/ToolbarSubmenu.d.ts +1 -1
- package/dist/core/components/ToolbarSubmenu.d.ts.map +1 -1
- package/dist/core/components/ToolbarSubmenu.js +2 -2
- package/dist/core/components/ToolbarSubmenu.js.map +1 -1
- package/dist/core/components/TopNavigationBar.d.ts.map +1 -1
- package/dist/core/components/TopNavigationBar.js +5 -5
- package/dist/core/components/TopNavigationBar.js.map +1 -1
- package/dist/core/components/authentication/AuthPage.d.ts.map +1 -1
- package/dist/core/components/authentication/AuthPage.js +5 -5
- package/dist/core/components/authentication/AuthPage.js.map +1 -1
- package/dist/core/components/authentication/ForgotPassword.d.ts.map +1 -1
- package/dist/core/components/authentication/ForgotPassword.js +3 -4
- package/dist/core/components/authentication/ForgotPassword.js.map +1 -1
- package/dist/core/components/authentication/Signin.d.ts.map +1 -1
- package/dist/core/components/authentication/Signin.js +5 -5
- package/dist/core/components/authentication/Signin.js.map +1 -1
- package/dist/core/components/authentication/Signup.d.ts.map +1 -1
- package/dist/core/components/authentication/Signup.js +7 -7
- package/dist/core/components/authentication/Signup.js.map +1 -1
- package/dist/core/components/instance-not-found/index.d.ts.map +1 -1
- package/dist/core/components/instance-not-found/index.js +4 -4
- package/dist/core/components/instance-not-found/index.js.map +1 -1
- package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.d.ts.map +1 -1
- package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.js +3 -3
- package/dist/core/components/instance-not-found/src/OrganizationNotFoundSection.js.map +1 -1
- package/dist/core/components/organizationConfig/index.d.ts.map +1 -1
- package/dist/core/components/organizationConfig/index.js +4 -4
- package/dist/core/components/organizationConfig/index.js.map +1 -1
- package/dist/core/components/organizationConfig/src/organizationConfigContent.js +2 -2
- package/dist/core/components/organizationConfig/src/organizationConfigContent.js.map +1 -1
- package/dist/core/components/settings/index.d.ts.map +1 -1
- package/dist/core/components/settings/index.js +2 -2
- package/dist/core/components/settings/index.js.map +1 -1
- package/dist/core/components/settings/src/AccountSettingsPanel.d.ts.map +1 -1
- package/dist/core/components/settings/src/AccountSettingsPanel.js +8 -8
- package/dist/core/components/settings/src/AccountSettingsPanel.js.map +1 -1
- package/dist/core/components/settings/src/ChangePassword.d.ts.map +1 -1
- package/dist/core/components/settings/src/ChangePassword.js +5 -5
- package/dist/core/components/settings/src/ChangePassword.js.map +1 -1
- package/dist/core/components/settings/src/OrganizationSettingsPanel.d.ts.map +1 -1
- package/dist/core/components/settings/src/OrganizationSettingsPanel.js +7 -7
- package/dist/core/components/settings/src/OrganizationSettingsPanel.js.map +1 -1
- package/dist/core/components/settings/src/SettingsContent.d.ts.map +1 -1
- package/dist/core/components/settings/src/SettingsContent.js +1 -1
- package/dist/core/components/settings/src/SettingsContent.js.map +1 -1
- package/dist/core/components/settings/src/SettingsSidebar.d.ts.map +1 -1
- package/dist/core/components/settings/src/SettingsSidebar.js +3 -3
- package/dist/core/components/settings/src/SettingsSidebar.js.map +1 -1
- package/dist/core/components/settings/src/UsersSettingsPanel.js +1 -1
- package/dist/core/components/settings/src/UsersSettingsPanel.js.map +1 -1
- package/dist/core/components/support/BugReportDialog.d.ts.map +1 -1
- package/dist/core/components/support/BugReportDialog.js +8 -8
- package/dist/core/components/support/BugReportDialog.js.map +1 -1
- package/dist/core/components/support/FeatureRequestDialog.d.ts.map +1 -1
- package/dist/core/components/support/FeatureRequestDialog.js +6 -6
- package/dist/core/components/support/FeatureRequestDialog.js.map +1 -1
- package/dist/core/components/support/SupportMenu.d.ts.map +1 -1
- package/dist/core/components/support/SupportMenu.js +1 -1
- package/dist/core/components/support/SupportMenu.js.map +1 -1
- package/dist/core/components/ui/Accordion.d.ts +1 -1
- package/dist/core/components/ui/Accordion.d.ts.map +1 -1
- package/dist/core/components/ui/Accordion.js +1 -1
- package/dist/core/components/ui/Accordion.js.map +1 -1
- package/dist/core/components/ui/AddItemDialog.d.ts.map +1 -1
- package/dist/core/components/ui/AddItemDialog.js +1 -1
- package/dist/core/components/ui/AddItemDialog.js.map +1 -1
- package/dist/core/components/ui/AlertDialog.d.ts +1 -1
- package/dist/core/components/ui/AlertDialog.d.ts.map +1 -1
- package/dist/core/components/ui/AlertDialog.js +1 -1
- package/dist/core/components/ui/AlertDialog.js.map +1 -1
- package/dist/core/components/ui/AnimatedBackground.js +1 -1
- package/dist/core/components/ui/AnimatedBackground.js.map +1 -1
- package/dist/core/components/ui/AppSidebar.d.ts.map +1 -1
- package/dist/core/components/ui/AppSidebar.js +7 -7
- package/dist/core/components/ui/AppSidebar.js.map +1 -1
- package/dist/core/components/ui/Avatar.d.ts +1 -1
- package/dist/core/components/ui/Avatar.d.ts.map +1 -1
- package/dist/core/components/ui/Avatar.js +1 -1
- package/dist/core/components/ui/Avatar.js.map +1 -1
- package/dist/core/components/ui/Badge.d.ts.map +1 -1
- package/dist/core/components/ui/Badge.js.map +1 -1
- package/dist/core/components/ui/Breadcrumb.d.ts.map +1 -1
- package/dist/core/components/ui/Breadcrumb.js +2 -2
- package/dist/core/components/ui/Breadcrumb.js.map +1 -1
- package/dist/core/components/ui/Button.d.ts.map +1 -1
- package/dist/core/components/ui/Button.js +1 -1
- package/dist/core/components/ui/Button.js.map +1 -1
- package/dist/core/components/ui/Calendar.d.ts +2 -1
- package/dist/core/components/ui/Calendar.d.ts.map +1 -1
- package/dist/core/components/ui/Calendar.js +1 -1
- package/dist/core/components/ui/Calendar.js.map +1 -1
- package/dist/core/components/ui/Checkbox.d.ts +1 -1
- package/dist/core/components/ui/Checkbox.d.ts.map +1 -1
- package/dist/core/components/ui/Checkbox.js +1 -1
- package/dist/core/components/ui/Checkbox.js.map +1 -1
- package/dist/core/components/ui/CollapsibleSection.d.ts.map +1 -1
- package/dist/core/components/ui/CollapsibleSection.js +2 -2
- package/dist/core/components/ui/CollapsibleSection.js.map +1 -1
- package/dist/core/components/ui/Command.d.ts +8 -8
- package/dist/core/components/ui/Command.d.ts.map +1 -1
- package/dist/core/components/ui/Command.js +1 -1
- package/dist/core/components/ui/Command.js.map +1 -1
- package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts +13 -3
- package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/CollapsibleCommentItem.js +144 -146
- package/dist/core/components/ui/Comments/CollapsibleCommentItem.js.map +1 -1
- package/dist/core/components/ui/Comments/Comment.d.ts +18 -1
- package/dist/core/components/ui/Comments/Comment.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/Comment.js +97 -26
- package/dist/core/components/ui/Comments/Comment.js.map +1 -1
- package/dist/core/components/ui/Comments/CommentActionButtons.d.ts +34 -0
- package/dist/core/components/ui/Comments/CommentActionButtons.d.ts.map +1 -0
- package/dist/core/components/ui/Comments/CommentActionButtons.js +106 -0
- package/dist/core/components/ui/Comments/CommentActionButtons.js.map +1 -0
- package/dist/core/components/ui/Comments/CommentInput.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/CommentInput.js +11 -8
- package/dist/core/components/ui/Comments/CommentInput.js.map +1 -1
- package/dist/core/components/ui/Comments/CommentsSection.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/CommentsSection.js +89 -45
- package/dist/core/components/ui/Comments/CommentsSection.js.map +1 -1
- package/dist/core/components/ui/Comments/commentUtils.d.ts +1 -1
- package/dist/core/components/ui/Comments/commentUtils.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/commentUtils.js +2 -1
- package/dist/core/components/ui/Comments/commentUtils.js.map +1 -1
- package/dist/core/components/ui/Countdown.d.ts.map +1 -1
- package/dist/core/components/ui/Countdown.js +1 -1
- package/dist/core/components/ui/Countdown.js.map +1 -1
- package/dist/core/components/ui/DataTable.d.ts +1 -1
- package/dist/core/components/ui/DataTable.d.ts.map +1 -1
- package/dist/core/components/ui/DataTable.js +17 -17
- package/dist/core/components/ui/DataTable.js.map +1 -1
- package/dist/core/components/ui/DatePicker.d.ts.map +1 -1
- package/dist/core/components/ui/DatePicker.js +2 -2
- package/dist/core/components/ui/DatePicker.js.map +1 -1
- package/dist/core/components/ui/DescriptionList.d.ts.map +1 -1
- package/dist/core/components/ui/DescriptionList.js +2 -2
- package/dist/core/components/ui/DescriptionList.js.map +1 -1
- package/dist/core/components/ui/Dialog.d.ts +1 -1
- package/dist/core/components/ui/Dialog.d.ts.map +1 -1
- package/dist/core/components/ui/Dialog.js +1 -1
- package/dist/core/components/ui/Dialog.js.map +1 -1
- package/dist/core/components/ui/DropdownMenu.d.ts +1 -1
- package/dist/core/components/ui/DropdownMenu.d.ts.map +1 -1
- package/dist/core/components/ui/DropdownMenu.js +1 -1
- package/dist/core/components/ui/DropdownMenu.js.map +1 -1
- package/dist/core/components/ui/ExportData.d.ts +2 -2
- package/dist/core/components/ui/ExportData.d.ts.map +1 -1
- package/dist/core/components/ui/ExportData.js +5 -5
- package/dist/core/components/ui/ExportData.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/FileItemComponent.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/FileItemComponent.js +3 -3
- package/dist/core/components/ui/FilesManager/src/FileItemComponent.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/FileMarker.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/FileMarker.js +2 -2
- package/dist/core/components/ui/FilesManager/src/FileMarker.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.js +1 -1
- package/dist/core/components/ui/FilesManager/src/ViewerContextMenu.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/convertIfcToFragmentsFile.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/downloadUtils.d.ts +1 -1
- package/dist/core/components/ui/FilesManager/src/downloadUtils.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/downloadUtils.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useCommonFileUpload.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileActions.d.ts +2 -2
- package/dist/core/components/ui/FilesManager/src/useFileActions.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileActions.js +2 -2
- package/dist/core/components/ui/FilesManager/src/useFileActions.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js +3 -3
- package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.js +0 -1
- package/dist/core/components/ui/FilesManager/src/useFileUploadWithProgress.js.map +1 -1
- package/dist/core/components/ui/GenericTool.d.ts +1 -1
- package/dist/core/components/ui/GenericTool.d.ts.map +1 -1
- package/dist/core/components/ui/GenericTool.js +2 -2
- package/dist/core/components/ui/GenericTool.js.map +1 -1
- package/dist/core/components/ui/Icons/FloorPlanIcon.js +1 -1
- package/dist/core/components/ui/Icons/FloorPlanIcon.js.map +1 -1
- package/dist/core/components/ui/InfoSidebar/Container.d.ts.map +1 -1
- package/dist/core/components/ui/InfoSidebar/Container.js +16 -12
- package/dist/core/components/ui/InfoSidebar/Container.js.map +1 -1
- package/dist/core/components/ui/InfoSidebar/Header.d.ts.map +1 -1
- package/dist/core/components/ui/InfoSidebar/Header.js +4 -4
- package/dist/core/components/ui/InfoSidebar/Header.js.map +1 -1
- package/dist/core/components/ui/InfoSidebar/index.d.ts +1 -1
- package/dist/core/components/ui/InfoSidebar/index.d.ts.map +1 -1
- package/dist/core/components/ui/InfoSidebar/index.js +1 -1
- package/dist/core/components/ui/InfoSidebar/index.js.map +1 -1
- package/dist/core/components/ui/Label.d.ts +1 -1
- package/dist/core/components/ui/Label.d.ts.map +1 -1
- package/dist/core/components/ui/Label.js +1 -1
- package/dist/core/components/ui/Label.js.map +1 -1
- package/dist/core/components/ui/LanguageToggle.d.ts +1 -1
- package/dist/core/components/ui/LanguageToggle.d.ts.map +1 -1
- package/dist/core/components/ui/LanguageToggle.js +1 -1
- package/dist/core/components/ui/LanguageToggle.js.map +1 -1
- package/dist/core/components/ui/Menubar.d.ts +1 -1
- package/dist/core/components/ui/Menubar.d.ts.map +1 -1
- package/dist/core/components/ui/Menubar.js +1 -1
- package/dist/core/components/ui/Menubar.js.map +1 -1
- package/dist/core/components/ui/NavUser.js +7 -7
- package/dist/core/components/ui/NavUser.js.map +1 -1
- package/dist/core/components/ui/Navbar.d.ts.map +1 -1
- package/dist/core/components/ui/Navbar.js +2 -2
- package/dist/core/components/ui/Navbar.js.map +1 -1
- package/dist/core/components/ui/Popover.d.ts +1 -1
- package/dist/core/components/ui/Popover.d.ts.map +1 -1
- package/dist/core/components/ui/Popover.js +1 -1
- package/dist/core/components/ui/Popover.js.map +1 -1
- package/dist/core/components/ui/Progress.d.ts +1 -1
- package/dist/core/components/ui/Progress.d.ts.map +1 -1
- package/dist/core/components/ui/Progress.js +1 -1
- package/dist/core/components/ui/Progress.js.map +1 -1
- package/dist/core/components/ui/ScrollArea.d.ts +1 -1
- package/dist/core/components/ui/ScrollArea.d.ts.map +1 -1
- package/dist/core/components/ui/ScrollArea.js +1 -1
- package/dist/core/components/ui/ScrollArea.js.map +1 -1
- package/dist/core/components/ui/SearchInput.d.ts.map +1 -1
- package/dist/core/components/ui/SearchInput.js +2 -2
- package/dist/core/components/ui/SearchInput.js.map +1 -1
- package/dist/core/components/ui/Select.d.ts +1 -1
- package/dist/core/components/ui/Select.d.ts.map +1 -1
- package/dist/core/components/ui/Select.js +3 -3
- package/dist/core/components/ui/Select.js.map +1 -1
- package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts +1 -1
- package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js +10 -10
- package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js.map +1 -1
- package/dist/core/components/ui/Sensors/Sensor.d.ts +2 -1
- package/dist/core/components/ui/Sensors/Sensor.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/Sensor.js +3 -3
- package/dist/core/components/ui/Sensors/Sensor.js.map +1 -1
- package/dist/core/components/ui/Sensors/SensorChart.d.ts +1 -1
- package/dist/core/components/ui/Sensors/SensorChart.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/SensorChart.js +1 -1
- package/dist/core/components/ui/Sensors/SensorChart.js.map +1 -1
- package/dist/core/components/ui/Sensors/SensorInput.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/SensorInput.js +9 -10
- package/dist/core/components/ui/Sensors/SensorInput.js.map +1 -1
- package/dist/core/components/ui/Sensors/SensorTagsSection.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/SensorTagsSection.js +3 -3
- package/dist/core/components/ui/Sensors/SensorTagsSection.js.map +1 -1
- package/dist/core/components/ui/Sensors/SensorsSection.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/SensorsSection.js +7 -9
- package/dist/core/components/ui/Sensors/SensorsSection.js.map +1 -1
- package/dist/core/components/ui/Sensors/SensorsSectionSkeleton.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/SensorsSectionSkeleton.js.map +1 -1
- package/dist/core/components/ui/Sensors/sensorUtils.d.ts +1 -1
- package/dist/core/components/ui/Sensors/sensorUtils.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/sensorUtils.js.map +1 -1
- package/dist/core/components/ui/Separator.d.ts +1 -1
- package/dist/core/components/ui/Separator.d.ts.map +1 -1
- package/dist/core/components/ui/Separator.js +1 -1
- package/dist/core/components/ui/Separator.js.map +1 -1
- package/dist/core/components/ui/SettingsButton.d.ts.map +1 -1
- package/dist/core/components/ui/SettingsButton.js +4 -4
- package/dist/core/components/ui/SettingsButton.js.map +1 -1
- package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts +1 -1
- package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts.map +1 -1
- package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js +14 -14
- package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js.map +1 -1
- package/dist/core/components/ui/Sheet.d.ts +1 -1
- package/dist/core/components/ui/Sheet.d.ts.map +1 -1
- package/dist/core/components/ui/Sheet.js +1 -1
- package/dist/core/components/ui/Sheet.js.map +1 -1
- package/dist/core/components/ui/Sidebar.d.ts +1 -1
- package/dist/core/components/ui/Sidebar.d.ts.map +1 -1
- package/dist/core/components/ui/Sidebar.js +33 -10
- package/dist/core/components/ui/Sidebar.js.map +1 -1
- package/dist/core/components/ui/Slider.d.ts +1 -1
- package/dist/core/components/ui/Slider.d.ts.map +1 -1
- package/dist/core/components/ui/Slider.js +1 -1
- package/dist/core/components/ui/Slider.js.map +1 -1
- package/dist/core/components/ui/Switch.d.ts +1 -1
- package/dist/core/components/ui/Switch.d.ts.map +1 -1
- package/dist/core/components/ui/Switch.js +1 -1
- package/dist/core/components/ui/Switch.js.map +1 -1
- package/dist/core/components/ui/Tabs.d.ts +1 -1
- package/dist/core/components/ui/Tabs.d.ts.map +1 -1
- package/dist/core/components/ui/Tabs.js +1 -1
- package/dist/core/components/ui/Tabs.js.map +1 -1
- package/dist/core/components/ui/Toggle.d.ts +1 -1
- package/dist/core/components/ui/Toggle.d.ts.map +1 -1
- package/dist/core/components/ui/Toggle.js +1 -1
- package/dist/core/components/ui/Toggle.js.map +1 -1
- package/dist/core/components/ui/ToggleGroup.d.ts +1 -1
- package/dist/core/components/ui/ToggleGroup.d.ts.map +1 -1
- package/dist/core/components/ui/ToggleGroup.js +1 -1
- package/dist/core/components/ui/ToggleGroup.js.map +1 -1
- package/dist/core/components/ui/ToolbarButton.d.ts +1 -1
- package/dist/core/components/ui/ToolbarButton.d.ts.map +1 -1
- package/dist/core/components/ui/ToolbarButton.js +1 -2
- package/dist/core/components/ui/ToolbarButton.js.map +1 -1
- package/dist/core/components/ui/Tooltip.d.ts +1 -1
- package/dist/core/components/ui/Tooltip.d.ts.map +1 -1
- package/dist/core/components/ui/Tooltip.js +1 -1
- package/dist/core/components/ui/Tooltip.js.map +1 -1
- package/dist/core/components/ui/UserAvatar.d.ts.map +1 -1
- package/dist/core/components/ui/UserAvatar.js +1 -1
- package/dist/core/components/ui/UserAvatar.js.map +1 -1
- package/dist/core/components/ui/downloadUtils.d.ts.map +1 -1
- package/dist/core/components/ui/downloadUtils.js.map +1 -1
- package/dist/core/components/ui/stats.d.ts.map +1 -1
- package/dist/core/components/ui/stats.js.map +1 -1
- package/dist/core/components/ui/uploadFile.js +1 -1
- package/dist/core/components/ui/uploadFile.js.map +1 -1
- package/dist/core/components/viewers/Data/DataMenu.d.ts +1 -1
- package/dist/core/components/viewers/Data/DataMenu.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/DataMenu.js +11 -11
- package/dist/core/components/viewers/Data/DataMenu.js.map +1 -1
- package/dist/core/components/viewers/Data/FilterButtons.d.ts +1 -1
- package/dist/core/components/viewers/Data/FilterButtons.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/FilterButtons.js +7 -7
- package/dist/core/components/viewers/Data/FilterButtons.js.map +1 -1
- package/dist/core/components/viewers/Data/HeaderButtons.d.ts +1 -1
- package/dist/core/components/viewers/Data/HeaderButtons.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/HeaderButtons.js +9 -9
- package/dist/core/components/viewers/Data/HeaderButtons.js.map +1 -1
- package/dist/core/components/viewers/Data/MoreOptions.d.ts +1 -1
- package/dist/core/components/viewers/Data/MoreOptions.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/MoreOptions.js +16 -16
- package/dist/core/components/viewers/Data/MoreOptions.js.map +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/Filters.js +2 -2
- package/dist/core/components/viewers/Data/advancedFilter/Filters.js.map +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.js +6 -8
- package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.js.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.js +3 -3
- package/dist/core/components/viewers/Data/buildingDetails/AddBuilding.js.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.js +10 -10
- package/dist/core/components/viewers/Data/buildingDetails/BuildingDetails.js.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.js +11 -11
- package/dist/core/components/viewers/Data/buildingDetails/BuildingsMoreOptions.js.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.js +10 -10
- package/dist/core/components/viewers/Data/buildingDetails/FieldRenderer.js.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/GeocoderInput.js.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/buildingSchemaTemplate.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/buildingDetails/buildingSchemaTemplate.js.map +1 -1
- package/dist/core/components/viewers/Data/details/AttachedFiles.d.ts +1 -1
- package/dist/core/components/viewers/Data/details/AttachedFiles.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/AttachedFiles.js +3 -3
- package/dist/core/components/viewers/Data/details/AttachedFiles.js.map +1 -1
- package/dist/core/components/viewers/Data/details/DetailActions.d.ts +1 -1
- package/dist/core/components/viewers/Data/details/DetailActions.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/DetailActions.js +2 -2
- package/dist/core/components/viewers/Data/details/DetailActions.js.map +1 -1
- package/dist/core/components/viewers/Data/details/DetailHeader.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/DetailHeader.js.map +1 -1
- package/dist/core/components/viewers/Data/details/EnergySourcesGrid.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/EnergySourcesGrid.js +4 -14
- package/dist/core/components/viewers/Data/details/EnergySourcesGrid.js.map +1 -1
- package/dist/core/components/viewers/Data/details/FieldValue.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/FieldValue.js +2 -2
- package/dist/core/components/viewers/Data/details/FieldValue.js.map +1 -1
- package/dist/core/components/viewers/Data/details/FileUpload.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/FileUpload.js +2 -2
- package/dist/core/components/viewers/Data/details/FileUpload.js.map +1 -1
- package/dist/core/components/viewers/Data/details/FilterFiles.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/FilterFiles.js +2 -2
- package/dist/core/components/viewers/Data/details/FilterFiles.js.map +1 -1
- package/dist/core/components/viewers/Data/details/TabSidebar.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/TabSidebar.js +3 -3
- package/dist/core/components/viewers/Data/details/TabSidebar.js.map +1 -1
- package/dist/core/components/viewers/Data/files/DatatableFileAdder.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/files/DatatableFileAdder.js +3 -4
- package/dist/core/components/viewers/Data/files/DatatableFileAdder.js.map +1 -1
- package/dist/core/components/viewers/Data/files/FileDetails.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/files/FileDetails.js +8 -8
- package/dist/core/components/viewers/Data/files/FileDetails.js.map +1 -1
- package/dist/core/components/viewers/Data/files/FileMoreOptions.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/files/FileMoreOptions.js +8 -8
- package/dist/core/components/viewers/Data/files/FileMoreOptions.js.map +1 -1
- package/dist/core/components/viewers/Data/files/FilePreview.d.ts +1 -1
- package/dist/core/components/viewers/Data/files/FilePreview.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/files/FilePreview.js +1 -1
- package/dist/core/components/viewers/Data/files/FilePreview.js.map +1 -1
- package/dist/core/components/viewers/Data/files/utils/fuzzySearch.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/files/utils/fuzzySearch.js +0 -1
- package/dist/core/components/viewers/Data/files/utils/fuzzySearch.js.map +1 -1
- package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.js +3 -3
- package/dist/core/components/viewers/Data/infrastructureDetails/AddInfrastructure.js.map +1 -1
- package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js +2 -2
- package/dist/core/components/viewers/Data/infrastructureDetails/FieldRenderer.js.map +1 -1
- package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.js +6 -6
- package/dist/core/components/viewers/Data/infrastructureDetails/InfrastructureDetails.js.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/AddSite.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/AddSite.js +5 -5
- package/dist/core/components/viewers/Data/siteDetails/AddSite.js.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js +10 -10
- package/dist/core/components/viewers/Data/siteDetails/AssociatedBuildings.js.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.js +9 -9
- package/dist/core/components/viewers/Data/siteDetails/FieldRenderer.js.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/SiteDetails.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/siteDetails/SiteDetails.js +11 -11
- package/dist/core/components/viewers/Data/siteDetails/SiteDetails.js.map +1 -1
- package/dist/core/components/viewers/Data/userDetails/AddUser.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/userDetails/AddUser.js +3 -3
- package/dist/core/components/viewers/Data/userDetails/AddUser.js.map +1 -1
- package/dist/core/components/viewers/Data/userDetails/UserDetails.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/userDetails/UserDetails.js +12 -12
- package/dist/core/components/viewers/Data/userDetails/UserDetails.js.map +1 -1
- package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.js +12 -13
- package/dist/core/components/viewers/Data/userDetails/UserMoreOptions.js.map +1 -1
- package/dist/core/components/viewers/Data/utils/Columns.d.ts +2 -2
- package/dist/core/components/viewers/Data/utils/Columns.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/utils/Columns.js +7 -7
- package/dist/core/components/viewers/Data/utils/Columns.js.map +1 -1
- package/dist/core/components/viewers/Data/utils/Headers.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/utils/Headers.js.map +1 -1
- package/dist/core/components/viewers/Data/utils/csvUtils.js.map +1 -1
- package/dist/core/components/viewers/Data/utils/filterHelper.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/utils/filterHelper.js +0 -2
- package/dist/core/components/viewers/Data/utils/filterHelper.js.map +1 -1
- package/dist/core/components/viewers/Data/utils/positionParser.js.map +1 -1
- package/dist/core/components/viewers/Data/utils/useViewerData.d.ts +2 -2
- package/dist/core/components/viewers/Data/utils/useViewerData.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/utils/useViewerData.js.map +1 -1
- package/dist/core/components/viewers/Viewer.d.ts +1 -1
- package/dist/core/components/viewers/Viewer.d.ts.map +1 -1
- package/dist/core/components/viewers/Viewer.js +6 -6
- package/dist/core/components/viewers/Viewer.js.map +1 -1
- package/dist/core/components/viewers/bim/BimToolbar.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/BimToolbar.js +1 -1
- package/dist/core/components/viewers/bim/BimToolbar.js.map +1 -1
- package/dist/core/components/viewers/bim/BimViewer.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/BimViewer.js +7 -7
- package/dist/core/components/viewers/bim/BimViewer.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BCFTopicsManager.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BCFTopicsManager.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BIMManager/index.d.ts +2 -2
- package/dist/core/components/viewers/bim/src/BIMManager/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BIMManager/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimLoadingState/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimLoadingState/index.js +9 -9
- package/dist/core/components/viewers/bim/src/BimLoadingState/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.js +1 -1
- package/dist/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.js +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.js +5 -5
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.js +9 -9
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.js +6 -9
- package/dist/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.js +4 -4
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js +11 -17
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js +10 -18
- package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.js +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.js +2 -2
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/ElevationsSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/FloorplanSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.js +6 -6
- package/dist/core/components/viewers/bim/src/BimSidebar/src/LayersTab/src/SpatialStructureSection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SensorsTab/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.js +2 -2
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.js +5 -5
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/GridManagement.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.js +3 -3
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/LightingManagement.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.js +3 -3
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/RenderMode.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.js +4 -4
- package/dist/core/components/viewers/bim/src/BimSidebar/src/SettingsTab/src/ToggleProjection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.js +5 -4
- package/dist/core/components/viewers/bim/src/BimSidebar/src/TabSelector.js.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/BimSidebar/src/index.js +5 -5
- package/dist/core/components/viewers/bim/src/BimSidebar/src/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/CameraProjection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/CameraProjection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/ClippingPlane.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/ClippingPlane.js +1 -2
- package/dist/core/components/viewers/bim/src/ClippingPlane.js.map +1 -1
- package/dist/core/components/viewers/bim/src/Cursor.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/Cursor.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/Cursor.js.map +1 -1
- package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/DXFLoader/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/DXFLoader/index.js +1 -1
- package/dist/core/components/viewers/bim/src/DXFLoader/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/index.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/index.js +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/src/ElevationProjector.js.map +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.d.ts +4 -4
- package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/ElevationsTool/src/types.js.map +1 -1
- package/dist/core/components/viewers/bim/src/FitCamera.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/FitCamera.js +1 -1
- package/dist/core/components/viewers/bim/src/FitCamera.js.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts +3 -3
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.js +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.d.ts +3 -3
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/FloorplanRenderer.js.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/StoreyProjector.js.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.d.ts +2 -2
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.js.map +1 -1
- package/dist/core/components/viewers/bim/src/GhostMode.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/GhostMode.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/GhostMode.js.map +1 -1
- package/dist/core/components/viewers/bim/src/Highlighter/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/Highlighter/index.js +1 -1
- package/dist/core/components/viewers/bim/src/Highlighter/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/IDSManager/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/IDSManager/index.js +3 -3
- package/dist/core/components/viewers/bim/src/IDSManager/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.js +2 -2
- package/dist/core/components/viewers/bim/src/IDSManager/src/IDSLegend.js.map +1 -1
- package/dist/core/components/viewers/bim/src/LoadIfcAsFragments.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/LoadIfcAsFragments.js.map +1 -1
- package/dist/core/components/viewers/bim/src/LoadModels.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/LoadModels.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/LoadModels.js +1 -1
- package/dist/core/components/viewers/bim/src/LoadModels.js.map +1 -1
- package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/ModelManager/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/ModelManager/index.js +4 -4
- package/dist/core/components/viewers/bim/src/ModelManager/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/SimpleBimViewer.js +8 -8
- package/dist/core/components/viewers/bim/src/SimpleBimViewer.js.map +1 -1
- package/dist/core/components/viewers/bim/src/SpatialStructure.js.map +1 -1
- package/dist/core/components/viewers/bim/src/ViewportGizmo.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/ViewportGizmo.js +2 -2
- package/dist/core/components/viewers/bim/src/ViewportGizmo.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/CameraController.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/lib/CameraController.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/CameraController.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ChromeController.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/lib/ChromeController.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ChromeController.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ClipController.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/lib/ClipController.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ClipController.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/GridController.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/GridController.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js +1 -1
- package/dist/core/components/viewers/bim/src/lib/TrueNorthPopover.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts +2 -2
- package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js +1 -1
- package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/drawingProjection.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/lib/drawingProjection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/drawingProjection.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/useBuildingName.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/useBuildingName.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js +1 -1
- package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/index.js +4 -4
- package/dist/core/components/viewers/bim/src/propertiesMenu/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.js +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/ElementList.js.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.js +2 -2
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertiesMenuHeader.js.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertyGroup.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/PropertyGroup.js.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.js +2 -2
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/useElementProperties.js.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/utils.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/propertiesMenu/src/utils.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js +9 -9
- package/dist/core/components/viewers/bim/src/tools/AddToBim/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js +2 -2
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddDxf.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.js +2 -2
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddFile.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddSensor.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.js +3 -3
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/AddToBimToolbar.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.d.ts +16 -10
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.js +26 -6
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimComment.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimCommentCluster.d.ts +23 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimCommentCluster.d.ts.map +1 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimCommentCluster.js +108 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimCommentCluster.js.map +1 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.d.ts +2 -2
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/BimSensor.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts +5 -5
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileHandler.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js +2 -2
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/FileMarkerUtils.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/Position3DCard.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/clusterMarkersByScreenSpace.d.ts +44 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/clusterMarkersByScreenSpace.d.ts.map +1 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/clusterMarkersByScreenSpace.js +77 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/clusterMarkersByScreenSpace.js.map +1 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/commentCameraUtils.d.ts +24 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/commentCameraUtils.d.ts.map +1 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/commentCameraUtils.js +27 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/commentCameraUtils.js.map +1 -0
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.js +3 -3
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/renderCSS2DMarkers.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.js +244 -63
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useCommentMarkers.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts +2 -2
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js +4 -4
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useFilePlacement.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.js +6 -6
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/useSensorMarkers.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.js +2 -2
- package/dist/core/components/viewers/bim/src/tools/BIMSearchTool.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.js +6 -10
- package/dist/core/components/viewers/bim/src/tools/ClippingTool/ClippingTool.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.js +3 -4
- package/dist/core/components/viewers/bim/src/tools/ExplodeByLevelTool.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/FitCameraTool.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/FitCameraTool.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/FitCameraTool.js +2 -2
- package/dist/core/components/viewers/bim/src/tools/FitCameraTool.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/InspectBimTool.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/InspectBimTool.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/InspectBimTool.js +4 -4
- package/dist/core/components/viewers/bim/src/tools/InspectBimTool.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/bimToolbar.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/bimToolbar.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/bimToolbar.js +4 -4
- package/dist/core/components/viewers/bim/src/tools/bimToolbar.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/measureBimTool.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/measureBimTool.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/measureBimTool.js +6 -7
- package/dist/core/components/viewers/bim/src/tools/measureBimTool.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/selectionBimTool.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/selectionBimTool.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/selectionBimTool.js +5 -5
- package/dist/core/components/viewers/bim/src/tools/selectionBimTool.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/shareBimTool.d.ts +1 -1
- package/dist/core/components/viewers/bim/src/tools/shareBimTool.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/shareBimTool.js.map +1 -1
- package/dist/core/components/viewers/bim/utils/GizmoController.d.ts +1 -1
- package/dist/core/components/viewers/bim/utils/GizmoController.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/utils/GizmoController.js.map +1 -1
- package/dist/core/components/viewers/bim/utils/setCameraLookAt.d.ts +1 -1
- package/dist/core/components/viewers/bim/utils/setCameraLookAt.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/utils/setCameraLookAt.js.map +1 -1
- package/dist/core/components/viewers/map/MapViewer.d.ts +1 -1
- package/dist/core/components/viewers/map/MapViewer.d.ts.map +1 -1
- package/dist/core/components/viewers/map/MapViewer.js +7 -7
- package/dist/core/components/viewers/map/MapViewer.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/AddPortalDialog.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/AddPortalDialog.js +4 -4
- package/dist/core/components/viewers/map/datasets/AddPortalDialog.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetDetails.js +4 -4
- package/dist/core/components/viewers/map/datasets/DatasetDetails.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetManager/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetManager/index.js +13 -13
- package/dist/core/components/viewers/map/datasets/DatasetManager/index.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.js +2 -2
- package/dist/core/components/viewers/map/datasets/DatasetManager/src/FieldsTable.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetSkeleton.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetSkeleton.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/Filters.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/Filters.js +2 -2
- package/dist/core/components/viewers/map/datasets/Filters.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/NestedFilter.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/NestedFilter.js +1 -1
- package/dist/core/components/viewers/map/datasets/NestedFilter.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/RowActions.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/RowActions.js +3 -3
- package/dist/core/components/viewers/map/datasets/RowActions.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/data.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/data.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/data.js +2 -2
- package/dist/core/components/viewers/map/datasets/data.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/index.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/index.js +11 -11
- package/dist/core/components/viewers/map/datasets/index.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.js +13 -16
- package/dist/core/components/viewers/map/datasets/src/arcGISDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/builtinLiveDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/cache.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/ckanDatasets.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/src/ckanDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js +3 -6
- package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/src/localDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/localDatasets.js +3 -6
- package/dist/core/components/viewers/map/datasets/src/localDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/minioDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/minioDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js +1 -12
- package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/src/publishedTiles.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/publishedTiles.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/socrataDatasets.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/socrataDatasets.js +1 -1
- package/dist/core/components/viewers/map/datasets/src/socrataDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts +1 -12
- package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/urlSources.js +1 -1
- package/dist/core/components/viewers/map/datasets/src/urlSources.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.js +1 -1
- package/dist/core/components/viewers/map/datasets/src/useDatasetsForPortals.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/useFastDatasetCache.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/utils.d.ts +1 -1
- package/dist/core/components/viewers/map/datasets/utils.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/utils.js.map +1 -1
- package/dist/core/components/viewers/map/legends/MapLegendHost.d.ts.map +1 -1
- package/dist/core/components/viewers/map/legends/MapLegendHost.js +3 -3
- package/dist/core/components/viewers/map/legends/MapLegendHost.js.map +1 -1
- package/dist/core/components/viewers/map/src/Geocoder.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/Geocoder.js +8 -8
- package/dist/core/components/viewers/map/src/Geocoder.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.js +3 -3
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.js +11 -11
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/DatabaseBuildingPopover/src/BuildingsTools.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js +23 -56
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/NonDatabaseBuildingPopover.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.js +4 -5
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/OpenDataFeaturePopover.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.js +2 -2
- package/dist/core/components/viewers/map/src/MapFeaturePopoverMenu/src/PopoverSkeleton.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/index.js +5 -5
- package/dist/core/components/viewers/map/src/MapLayers/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js +5 -5
- package/dist/core/components/viewers/map/src/MapLayers/src/BimLayer/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.js +4 -4
- package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/BuildingLayers/src/databaseBuildings.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.js +182 -61
- package/dist/core/components/viewers/map/src/MapLayers/src/CommentLayer/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.js +3 -3
- package/dist/core/components/viewers/map/src/MapLayers/src/EditPosition.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/FileModelLayer/FileModelLayer.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileIcon.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileIcon.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.js +3 -3
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/FileManagerRow.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.js +4 -3
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileManager.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileMarker.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/components/MapFileMarker.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.js +6 -6
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/CustomModelLayer.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/FileLayer/utils/openFileInPopUpWindow.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/WmsTimeControl.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js +3 -3
- package/dist/core/components/viewers/map/src/MapLayers/src/OpenDataLayer/src/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.js +3 -3
- package/dist/core/components/viewers/map/src/MapLayers/src/PlaceOnMap.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.js +11 -14
- package/dist/core/components/viewers/map/src/MapLayers/src/SensorsLayer/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.js +2 -2
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteContextMenu.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.js +4 -4
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/SiteLayer.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/siteGeometry.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/siteGeometry.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/useShowSitesOnMap.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/SiteLayer/useShowSitesOnMap.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.js +5 -4
- package/dist/core/components/viewers/map/src/MapSidebar/TabSelector.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/index.js +4 -4
- package/dist/core/components/viewers/map/src/MapSidebar/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/CommunicationTab/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.js +2 -2
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js +5 -6
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/FilesSection.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js +6 -10
- package/dist/core/components/viewers/map/src/MapSidebar/src/FileTab/src/ModelsSection.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.js +4 -4
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.js +4 -4
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AppliedDatasetsSection.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.js +2 -2
- package/dist/core/components/viewers/map/src/MapSidebar/src/LayersTab/src/AvailableDatasetsSection.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.d.ts +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SensorsTab/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.js +3 -3
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/LocationSettings.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.js +3 -3
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapCustomization.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js +3 -3
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/MapProjection.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js +3 -3
- package/dist/core/components/viewers/map/src/MapSidebar/src/SettingsTab/src/TerrainLevel.js.map +1 -1
- package/dist/core/components/viewers/map/src/SimpleMap.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/SimpleMap.js +1 -1
- package/dist/core/components/viewers/map/src/SimpleMap.js.map +1 -1
- package/dist/core/components/viewers/map/src/compare/AddItem.d.ts +1 -1
- package/dist/core/components/viewers/map/src/compare/AddItem.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/compare/AddItem.js +6 -6
- package/dist/core/components/viewers/map/src/compare/AddItem.js.map +1 -1
- package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts +2 -2
- package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/compare/CompareDialog.js +5 -5
- package/dist/core/components/viewers/map/src/compare/CompareDialog.js.map +1 -1
- package/dist/core/components/viewers/map/src/compare/index.d.ts +1 -1
- package/dist/core/components/viewers/map/src/compare/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/compare/index.js +6 -6
- package/dist/core/components/viewers/map/src/compare/index.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.js +3 -3
- package/dist/core/components/viewers/map/src/tools/AddTools/AddDataset/DatasetAdder.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.js +5 -5
- package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/FileAdder.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/utils/uploadToPresignedURLS.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/utils/uploadToPresignedURLS.js +1 -3
- package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/utils/uploadToPresignedURLS.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.js +3 -3
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/AssociateBuildingsDialog.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.js +7 -7
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/SiteAdder.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.js +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddSite/persistSite.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.d.ts +2 -2
- package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.js +8 -8
- package/dist/core/components/viewers/map/src/tools/AddTools/AddToMap.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts +2 -2
- package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/DatasetMapTool.js +1 -1
- package/dist/core/components/viewers/map/src/tools/DatasetMapTool.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/mapTools.d.ts +2 -2
- package/dist/core/components/viewers/map/src/tools/mapTools.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/mapTools.js +4 -4
- package/dist/core/components/viewers/map/src/tools/mapTools.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/measureMapTool.d.ts +1 -1
- package/dist/core/components/viewers/map/src/tools/measureMapTool.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/measureMapTool.js +3 -3
- package/dist/core/components/viewers/map/src/tools/measureMapTool.js.map +1 -1
- package/dist/core/components/viewers/map/src/tools/shareMapTool.d.ts +1 -1
- package/dist/core/components/viewers/map/src/tools/shareMapTool.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/shareMapTool.js.map +1 -1
- package/dist/core/components/viewers/map/utils/ClusterManager.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/ClusterManager.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/ClusterManager.js.map +1 -1
- package/dist/core/components/viewers/map/utils/MapEventManager/MapClickManager.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/MapEventManager/MapClickManager.js +0 -1
- package/dist/core/components/viewers/map/utils/MapEventManager/MapClickManager.js.map +1 -1
- package/dist/core/components/viewers/map/utils/MarkerManager.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/MarkerManager.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/MarkerManager.js.map +1 -1
- package/dist/core/components/viewers/map/utils/extractCoordinates.js.map +1 -1
- package/dist/core/components/viewers/map/utils/fitBuildingsBounds.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/fitBuildingsBounds.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/fitBuildingsBounds.js.map +1 -1
- package/dist/core/components/viewers/map/utils/flyToEach.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/flyToEach.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/flyToEach.js +0 -1
- package/dist/core/components/viewers/map/utils/flyToEach.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoder.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/geocoder.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoder.js +1 -1
- package/dist/core/components/viewers/map/utils/geocoder.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/adapters.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/adapters.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/index.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/index.js +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/index.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/osm.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/osm.js +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/osm.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/pelias.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/pelias.js.map +1 -1
- package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.d.ts +1 -1
- package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/getOsmIdFromMartin.js.map +1 -1
- package/dist/core/components/viewers/map/utils/getOsmIdbyCoordinates.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/getOsmIdbyCoordinates.js +0 -2
- package/dist/core/components/viewers/map/utils/getOsmIdbyCoordinates.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/PointCloudToolbar.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js +1 -1
- package/dist/core/components/viewers/pointcloud/PointCloudToolbar.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/PointCloudViewer.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/PointCloudViewer.js +5 -5
- package/dist/core/components/viewers/pointcloud/PointCloudViewer.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.js +7 -7
- package/dist/core/components/viewers/pointcloud/src/PointCloudLoadingState/index.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudManagementTable.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudManagementTable.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.js +15 -15
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudTable.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.js +3 -3
- package/dist/core/components/viewers/pointcloud/src/PointCloudManagement/PointCloudUploadPanel.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.d.ts +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.js +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/TabSelector.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.js +2 -2
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/index.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js +3 -3
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/index.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js +4 -4
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/FilesSection.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js +5 -5
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/FileTab/src/PointCloudSection.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.js +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/index.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.js +3 -3
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/CameraSettings.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.js +4 -4
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/GridManagement.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.js +10 -10
- package/dist/core/components/viewers/pointcloud/src/PointCloudSidebar/src/SettingsTab/src/PerformanceSettings.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/ViewportGizmo.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.d.ts +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.js +3 -3
- package/dist/core/components/viewers/pointcloud/src/tools/ClippingTools/ClippingTool.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/FitToScreen.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/FitToScreen.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AngleMeasurement.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AngleMeasurement.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AreaMeasurement.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/AreaMeasurement.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/LineMeasurement.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/LineMeasurement.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.d.ts +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.js +6 -6
- package/dist/core/components/viewers/pointcloud/src/tools/MeasureTools/MeasurePointCloudTool.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.js +2 -2
- package/dist/core/components/viewers/pointcloud/src/tools/PCSearchTool.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js +2 -2
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/NodeSizeSelectionTool.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.js +3 -3
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PerformanceSettingTools.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.js +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/PointBudgetTool.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.js +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/ShowOctreeBoxTool.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.js +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/PerformanceSettingsTools/SplatQualitySelection.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.js +4 -4
- package/dist/core/components/viewers/pointcloud/src/tools/SetCameraOption.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.d.ts +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.js +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/index.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.d.ts +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.js +2 -2
- package/dist/core/components/viewers/pointcloud/src/tools/pointcloudToolbarTools.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.d.ts +1 -1
- package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/utils/restoreCameraFromUrl.js.map +1 -1
- package/dist/core/hooks/buildings/createBuildingHooks.d.ts +1 -1
- package/dist/core/hooks/buildings/createBuildingHooks.d.ts.map +1 -1
- package/dist/core/hooks/buildings/createBuildingHooks.js.map +1 -1
- package/dist/core/hooks/comments/comments.d.ts +11 -0
- package/dist/core/hooks/comments/comments.d.ts.map +1 -1
- package/dist/core/hooks/comments/comments.js +3 -1
- package/dist/core/hooks/comments/comments.js.map +1 -1
- package/dist/core/hooks/comments/createCommentHooks.d.ts +12 -1
- package/dist/core/hooks/comments/createCommentHooks.d.ts.map +1 -1
- package/dist/core/hooks/comments/createCommentHooks.js +31 -2
- package/dist/core/hooks/comments/createCommentHooks.js.map +1 -1
- package/dist/core/hooks/files/createFileHooks.d.ts +1 -1
- package/dist/core/hooks/files/createFileHooks.d.ts.map +1 -1
- package/dist/core/hooks/files/createFileHooks.js.map +1 -1
- package/dist/core/hooks/files/files.d.ts.map +1 -1
- package/dist/core/hooks/files/files.js +1 -2
- package/dist/core/hooks/files/files.js.map +1 -1
- package/dist/core/hooks/infrastructures/createInfrastructureHooks.d.ts +1 -1
- package/dist/core/hooks/infrastructures/createInfrastructureHooks.d.ts.map +1 -1
- package/dist/core/hooks/infrastructures/createInfrastructureHooks.js.map +1 -1
- package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.d.ts +1 -1
- package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.d.ts.map +1 -1
- package/dist/core/hooks/openDataPortals/createOpenDataPortalHooks.js.map +1 -1
- package/dist/core/hooks/organizations/createOrganizationHooks.d.ts +1 -1
- package/dist/core/hooks/organizations/createOrganizationHooks.d.ts.map +1 -1
- package/dist/core/hooks/organizations/createOrganizationHooks.js.map +1 -1
- package/dist/core/hooks/provider.d.ts +5 -5
- package/dist/core/hooks/provider.d.ts.map +1 -1
- package/dist/core/hooks/provider.js +4 -4
- package/dist/core/hooks/provider.js.map +1 -1
- package/dist/core/hooks/sensorTypes/createSensorTypeHooks.d.ts +1 -1
- package/dist/core/hooks/sensorTypes/createSensorTypeHooks.d.ts.map +1 -1
- package/dist/core/hooks/sensorTypes/createSensorTypeHooks.js.map +1 -1
- package/dist/core/hooks/sensors/createSensorHooks.d.ts +1 -1
- package/dist/core/hooks/sensors/createSensorHooks.d.ts.map +1 -1
- package/dist/core/hooks/sensors/createSensorHooks.js +1 -1
- package/dist/core/hooks/sensors/createSensorHooks.js.map +1 -1
- package/dist/core/hooks/sites/createSiteHooks.d.ts +1 -1
- package/dist/core/hooks/sites/createSiteHooks.d.ts.map +1 -1
- package/dist/core/hooks/sites/createSiteHooks.js.map +1 -1
- package/dist/core/hooks/sites/sites.d.ts.map +1 -1
- package/dist/core/hooks/ui/useResizableSidebarWidth.d.ts +30 -0
- package/dist/core/hooks/ui/useResizableSidebarWidth.d.ts.map +1 -0
- package/dist/core/hooks/ui/useResizableSidebarWidth.js +75 -0
- package/dist/core/hooks/ui/useResizableSidebarWidth.js.map +1 -0
- package/dist/core/hooks/useCaptureScreenshot.d.ts.map +1 -1
- package/dist/core/hooks/useCaptureScreenshot.js.map +1 -1
- package/dist/core/hooks/useCurrentViewerPosition.d.ts.map +1 -1
- package/dist/core/hooks/useCurrentViewerPosition.js +1 -1
- package/dist/core/hooks/useCurrentViewerPosition.js.map +1 -1
- package/dist/core/hooks/useGeocodingRuntimeConfig.d.ts +1 -1
- package/dist/core/hooks/useGeocodingRuntimeConfig.d.ts.map +1 -1
- package/dist/core/hooks/useGeocodingRuntimeConfig.js.map +1 -1
- package/dist/core/hooks/useShareUrl.d.ts.map +1 -1
- package/dist/core/hooks/useShareUrl.js +1 -1
- package/dist/core/hooks/useShareUrl.js.map +1 -1
- package/dist/core/hooks/users/createUserHooks.d.ts +1 -1
- package/dist/core/hooks/users/createUserHooks.d.ts.map +1 -1
- package/dist/core/hooks/users/createUserHooks.js.map +1 -1
- package/dist/core/i18n/index.js +1 -1
- package/dist/core/i18n/index.js.map +1 -1
- package/dist/core/i18n/messages/en.json +1877 -1872
- package/dist/core/i18n/messages/es.json +1875 -1870
- package/dist/core/i18n/messages/fr.json +1875 -1870
- package/dist/core/plugins/host/context.d.ts +1 -1
- package/dist/core/plugins/host/context.d.ts.map +1 -1
- package/dist/core/plugins/host/context.js.map +1 -1
- package/dist/core/plugins/host/host.d.ts +1 -1
- package/dist/core/plugins/host/host.d.ts.map +1 -1
- package/dist/core/plugins/host/host.js.map +1 -1
- package/dist/core/plugins/host/provider.d.ts.map +1 -1
- package/dist/core/plugins/host/provider.js +2 -2
- package/dist/core/plugins/host/provider.js.map +1 -1
- package/dist/core/store/AppConfig/context.d.ts +1 -1
- package/dist/core/store/AppConfig/context.d.ts.map +1 -1
- package/dist/core/store/AppConfig/context.js.map +1 -1
- package/dist/core/store/AppConfig/reducer.d.ts +2 -2
- package/dist/core/store/AppConfig/reducer.d.ts.map +1 -1
- package/dist/core/store/AppConfig/reducer.js.map +1 -1
- package/dist/core/store/BIM/context.d.ts +1 -1
- package/dist/core/store/BIM/context.d.ts.map +1 -1
- package/dist/core/store/BIM/context.js.map +1 -1
- package/dist/core/store/BIM/reducer.d.ts +3 -3
- package/dist/core/store/BIM/reducer.d.ts.map +1 -1
- package/dist/core/store/BIM/reducer.js.map +1 -1
- package/dist/core/store/Buildings/context.d.ts +1 -1
- package/dist/core/store/Buildings/context.d.ts.map +1 -1
- package/dist/core/store/Buildings/context.js.map +1 -1
- package/dist/core/store/Buildings/reducer.d.ts +2 -2
- package/dist/core/store/Buildings/reducer.d.ts.map +1 -1
- package/dist/core/store/Buildings/reducer.js.map +1 -1
- package/dist/core/store/CombineProviders.d.ts.map +1 -1
- package/dist/core/store/CombineProviders.js +7 -7
- package/dist/core/store/CombineProviders.js.map +1 -1
- package/dist/core/store/Content/context.d.ts +1 -1
- package/dist/core/store/Content/context.d.ts.map +1 -1
- package/dist/core/store/Content/context.js.map +1 -1
- package/dist/core/store/Datasets/context.d.ts +1 -1
- package/dist/core/store/Datasets/context.d.ts.map +1 -1
- package/dist/core/store/Datasets/context.js.map +1 -1
- package/dist/core/store/Datasets/reducer.d.ts +1 -1
- package/dist/core/store/Datasets/reducer.d.ts.map +1 -1
- package/dist/core/store/Datasets/reducer.js +0 -2
- package/dist/core/store/Datasets/reducer.js.map +1 -1
- package/dist/core/store/Files/context.d.ts +1 -1
- package/dist/core/store/Files/context.d.ts.map +1 -1
- package/dist/core/store/Files/context.js.map +1 -1
- package/dist/core/store/Files/reducer.d.ts +3 -3
- package/dist/core/store/Files/reducer.d.ts.map +1 -1
- package/dist/core/store/Files/reducer.js +0 -1
- package/dist/core/store/Files/reducer.js.map +1 -1
- package/dist/core/store/Map/context.d.ts +1 -1
- package/dist/core/store/Map/context.d.ts.map +1 -1
- package/dist/core/store/Map/context.js +1 -1
- package/dist/core/store/Map/context.js.map +1 -1
- package/dist/core/store/Map/reducer.d.ts +6 -5
- package/dist/core/store/Map/reducer.d.ts.map +1 -1
- package/dist/core/store/Map/reducer.js.map +1 -1
- package/dist/core/store/MapSites/context.d.ts +1 -1
- package/dist/core/store/MapSites/context.d.ts.map +1 -1
- package/dist/core/store/MapSites/context.js.map +1 -1
- package/dist/core/store/MapSites/reducer.d.ts +1 -1
- package/dist/core/store/MapSites/reducer.d.ts.map +1 -1
- package/dist/core/store/MapSites/reducer.js.map +1 -1
- package/dist/core/store/Menus/context.d.ts +1 -1
- package/dist/core/store/Menus/context.d.ts.map +1 -1
- package/dist/core/store/Menus/context.js +6 -3
- package/dist/core/store/Menus/context.js.map +1 -1
- package/dist/core/store/Menus/reducer.d.ts +21 -1
- package/dist/core/store/Menus/reducer.d.ts.map +1 -1
- package/dist/core/store/Menus/reducer.js +21 -3
- package/dist/core/store/Menus/reducer.js.map +1 -1
- package/dist/core/store/Permissions/context.d.ts +1 -1
- package/dist/core/store/Permissions/context.d.ts.map +1 -1
- package/dist/core/store/Permissions/context.js +2 -2
- package/dist/core/store/Permissions/context.js.map +1 -1
- package/dist/core/store/PointCloud/context.d.ts +1 -1
- package/dist/core/store/PointCloud/context.d.ts.map +1 -1
- package/dist/core/store/PointCloud/context.js.map +1 -1
- package/dist/core/store/PointCloud/reducer.d.ts +1 -1
- package/dist/core/store/PointCloud/reducer.d.ts.map +1 -1
- package/dist/core/store/PointCloud/reducer.js.map +1 -1
- package/dist/core/store/Tools/context.d.ts +1 -1
- package/dist/core/store/Tools/context.d.ts.map +1 -1
- package/dist/core/store/Tools/context.js.map +1 -1
- package/dist/core/store/Tools/reducer.d.ts +1 -1
- package/dist/core/store/Tools/reducer.d.ts.map +1 -1
- package/dist/core/store/Tools/reducer.js.map +1 -1
- package/dist/core/styles/globals.css +17 -16
- package/dist/core/styles/tailwindMerge.d.ts +1 -1
- package/dist/core/styles/tailwindMerge.d.ts.map +1 -1
- package/dist/core/styles/tailwindMerge.js.map +1 -1
- package/dist/core/types/datasetTypes.d.ts +2 -2
- package/dist/core/types/datasetTypes.d.ts.map +1 -1
- package/dist/core/types/dbTypes.d.ts +1 -1
- package/dist/core/types/dbTypes.d.ts.map +1 -1
- package/dist/core/types/dbTypes.js.map +1 -1
- package/dist/core/types/files.d.ts +2 -2
- package/dist/core/types/files.d.ts.map +1 -1
- package/dist/core/types/global.d.ts +3 -3
- package/dist/core/types/global.d.ts.map +1 -1
- package/dist/core/types/global.js.map +1 -1
- package/dist/core/types/map.d.ts +2 -2
- package/dist/core/types/map.d.ts.map +1 -1
- package/dist/core/types/tools.d.ts +3 -3
- package/dist/core/types/tools.d.ts.map +1 -1
- package/dist/core/types/users.d.ts +2 -2
- package/dist/core/types/users.d.ts.map +1 -1
- package/dist/core/utils/getFileIcon.d.ts +1 -1
- package/dist/core/utils/getFileIcon.d.ts.map +1 -1
- package/dist/core/utils/getFileIcon.js.map +1 -1
- package/dist/core/utils/markerUtils.d.ts +10 -0
- package/dist/core/utils/markerUtils.d.ts.map +1 -1
- package/dist/core/utils/markerUtils.js +9 -1
- package/dist/core/utils/markerUtils.js.map +1 -1
- package/dist/core/utils/memcache.d.ts.map +1 -1
- package/dist/core/utils/memcache.js +0 -7
- package/dist/core/utils/memcache.js.map +1 -1
- package/dist/core/utils/roles.d.ts.map +1 -1
- package/dist/core/utils/roles.js.map +1 -1
- package/dist/core/utils/timeUtils.js.map +1 -1
- package/dist/core/utils/utils.d.ts +1 -1
- package/dist/core/utils/utils.d.ts.map +1 -1
- package/dist/core/utils/utils.js.map +1 -1
- package/package.json +8 -2
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetails.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetDetails.tsx"],"names":[],"mappings":"
|
|
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":"
|
|
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":"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","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":"
|
|
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":"
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetSkeleton.tsx"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { Skeleton } from '../../../ui/'\r\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../../../ui/Table'\r\n\r\nexport default function DatasetSkeleton() {\r\n const t = useTranslations('Datasets')\r\n\r\n return (\r\n <div className=\"flex flex-col h-full px-6\">\r\n <div className=\"flex justify-center items-center py-4\">\r\n <LR.Loader2 className=\"h-5 w-5 animate-spin mr-2\" />\r\n <span className=\"text-sm text-muted-foreground\">{t('fetchingDatasets')}</span>\r\n </div>\r\n <div className=\"flex-1 overflow-auto\">\r\n <Table>\r\n <TableHeader>\r\n <TableRow>\r\n {/* Leading cell - actions column header */}\r\n <TableHead className=\"w-10 p-2\">\r\n </TableHead>\r\n {/* Name column */}\r\n <TableHead className=\"max-w-md\">\r\n <Skeleton className=\"h-4 w-16\" />\r\n </TableHead>\r\n {/* Subdivision column */}\r\n <TableHead className=\"!hidden md:!table-cell whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-20\" />\r\n </TableHead>\r\n {/* Municipality column */}\r\n <TableHead className=\"!hidden md:!table-cell whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-24\" />\r\n </TableHead>\r\n {/* Type column */}\r\n <TableHead className=\"whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-12\" />\r\n </TableHead>\r\n {/* Trailing cell - actions */}\r\n <TableHead className=\"w-10\"></TableHead>\r\n </TableRow>\r\n </TableHeader>\r\n <TableBody>\r\n {Array.from({ length: 9 }).map((_, index) => (\r\n <TableRow key={index}>\r\n {/* Leading cell - checkbox and star */}\r\n <TableCell className=\"w-10 p-2\">\r\n <div className=\"flex items-center gap-2\">\r\n <Skeleton className=\"h-4 w-4\" /> {/* Checkbox */}\r\n <Skeleton className=\"h-4 w-4\" /> {/* Star */}\r\n </div>\r\n </TableCell>\r\n {/* Name column */}\r\n <TableCell className=\"max-w-md\">\r\n <Skeleton className=\"h-4 w-48\" />\r\n </TableCell>\r\n {/* Province column */}\r\n <TableCell className=\"!hidden md:!table-cell whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-16\" />\r\n </TableCell>\r\n {/* Municipality column */}\r\n <TableCell className=\"!hidden md:!table-cell whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-20\" />\r\n </TableCell>\r\n {/* Type column */}\r\n <TableCell className=\"whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-14\" />\r\n </TableCell>\r\n {/* Trailing cell - chevron */}\r\n <TableCell className=\"w-10 p-2\">\r\n <Skeleton className=\"h-4 w-4\" />\r\n </TableCell>\r\n </TableRow>\r\n ))}\r\n </TableBody>\r\n </Table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/DatasetSkeleton.tsx"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\n\r\nimport { Skeleton } from '../../../ui/'\r\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../../../ui/Table'\r\n\r\nexport default function DatasetSkeleton() {\r\n const t = useTranslations('Datasets')\r\n\r\n return (\r\n <div className=\"flex flex-col h-full px-6\">\r\n <div className=\"flex justify-center items-center py-4\">\r\n <LR.Loader2 className=\"h-5 w-5 animate-spin mr-2\" />\r\n <span className=\"text-sm text-muted-foreground\">{t('fetchingDatasets')}</span>\r\n </div>\r\n <div className=\"flex-1 overflow-auto\">\r\n <Table>\r\n <TableHeader>\r\n <TableRow>\r\n {/* Leading cell - actions column header */}\r\n <TableHead className=\"w-10 p-2\">\r\n </TableHead>\r\n {/* Name column */}\r\n <TableHead className=\"max-w-md\">\r\n <Skeleton className=\"h-4 w-16\" />\r\n </TableHead>\r\n {/* Subdivision column */}\r\n <TableHead className=\"!hidden md:!table-cell whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-20\" />\r\n </TableHead>\r\n {/* Municipality column */}\r\n <TableHead className=\"!hidden md:!table-cell whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-24\" />\r\n </TableHead>\r\n {/* Type column */}\r\n <TableHead className=\"whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-12\" />\r\n </TableHead>\r\n {/* Trailing cell - actions */}\r\n <TableHead className=\"w-10\"></TableHead>\r\n </TableRow>\r\n </TableHeader>\r\n <TableBody>\r\n {Array.from({ length: 9 }).map((_, index) => (\r\n <TableRow key={index}>\r\n {/* Leading cell - checkbox and star */}\r\n <TableCell className=\"w-10 p-2\">\r\n <div className=\"flex items-center gap-2\">\r\n <Skeleton className=\"h-4 w-4\" /> {/* Checkbox */}\r\n <Skeleton className=\"h-4 w-4\" /> {/* Star */}\r\n </div>\r\n </TableCell>\r\n {/* Name column */}\r\n <TableCell className=\"max-w-md\">\r\n <Skeleton className=\"h-4 w-48\" />\r\n </TableCell>\r\n {/* Province column */}\r\n <TableCell className=\"!hidden md:!table-cell whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-16\" />\r\n </TableCell>\r\n {/* Municipality column */}\r\n <TableCell className=\"!hidden md:!table-cell whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-20\" />\r\n </TableCell>\r\n {/* Type column */}\r\n <TableCell className=\"whitespace-nowrap\">\r\n <Skeleton className=\"h-4 w-14\" />\r\n </TableCell>\r\n {/* Trailing cell - chevron */}\r\n <TableCell className=\"w-10 p-2\">\r\n <Skeleton className=\"h-4 w-4\" />\r\n </TableCell>\r\n </TableRow>\r\n ))}\r\n </TableBody>\r\n </Table>\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"mappings":"AAcM,SACE,KADF;AAXN,YAAY,QAAQ;AACpB,SAAS,uBAAuB;AAEhC,SAAS,gBAAgB;AACzB,SAAS,OAAO,WAAW,WAAW,WAAW,aAAa,gBAAgB;AAE/D,SAAR,kBAAmC;AACxC,QAAM,IAAI,gBAAgB,UAAU;AAEpC,SACE,qBAAC,SAAI,WAAU,6BACb;AAAA,yBAAC,SAAI,WAAU,yCACb;AAAA,0BAAC,GAAG,SAAH,EAAW,WAAU,6BAA4B;AAAA,MAClD,oBAAC,UAAK,WAAU,iCAAiC,YAAE,kBAAkB,GAAE;AAAA,OACzE;AAAA,IACA,oBAAC,SAAI,WAAU,wBACb,+BAAC,SACC;AAAA,0BAAC,eACC,+BAAC,YAEC;AAAA,4BAAC,aAAU,WAAU,YACrB;AAAA,QAEA,oBAAC,aAAU,WAAU,YACnB,8BAAC,YAAS,WAAU,YAAW,GACjC;AAAA,QAEA,oBAAC,aAAU,WAAU,4CACnB,8BAAC,YAAS,WAAU,YAAW,GACjC;AAAA,QAEA,oBAAC,aAAU,WAAU,4CACnB,8BAAC,YAAS,WAAU,YAAW,GACjC;AAAA,QAEA,oBAAC,aAAU,WAAU,qBACnB,8BAAC,YAAS,WAAU,YAAW,GACjC;AAAA,QAEA,oBAAC,aAAU,WAAU,QAAO;AAAA,SAC9B,GACF;AAAA,MACA,oBAAC,aACE,gBAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,UACjC,qBAAC,YAEC;AAAA,4BAAC,aAAU,WAAU,YACnB,+BAAC,SAAI,WAAU,2BACb;AAAA,8BAAC,YAAS,WAAU,WAAU;AAAA,UAAE;AAAA,UAChC,oBAAC,YAAS,WAAU,WAAU;AAAA,UAAE;AAAA,WAClC,GACF;AAAA,QAEA,oBAAC,aAAU,WAAU,YACnB,8BAAC,YAAS,WAAU,YAAW,GACjC;AAAA,QAEA,oBAAC,aAAU,WAAU,4CACnB,8BAAC,YAAS,WAAU,YAAW,GACjC;AAAA,QAEA,oBAAC,aAAU,WAAU,4CACnB,8BAAC,YAAS,WAAU,YAAW,GACjC;AAAA,QAEA,oBAAC,aAAU,WAAU,qBACnB,8BAAC,YAAS,WAAU,YAAW,GACjC;AAAA,QAEA,oBAAC,aAAU,WAAU,YACnB,8BAAC,YAAS,WAAU,WAAU,GAChC;AAAA,WA3Ba,KA4Bf,CACD,GACH;AAAA,OACF,GACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/Filters.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Filters.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/Filters.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAA;IACf,cAAc,EAAE;QACd,mBAAmB,EAAE,MAAM,EAAE,CAAA;QAC7B,cAAc,EAAE,MAAM,EAAE,CAAA;QACxB,KAAK,EAAE,MAAM,EAAE,CAAA;QACf,OAAO,EAAE,MAAM,EAAE,CAAA;KAClB,CAAA;IACD,eAAe,EAAE,CAAC,OAAO,EAAE;QAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAA;CACpI,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,YAAY,qBA8I1F"}
|
|
@@ -17,9 +17,8 @@ var __spreadValues = (a, b) => {
|
|
|
17
17
|
};
|
|
18
18
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
19
19
|
import * as LR from "lucide-react";
|
|
20
|
-
import * as React from "react";
|
|
21
20
|
import { useTranslations } from "next-intl";
|
|
22
|
-
import
|
|
21
|
+
import * as React from "react";
|
|
23
22
|
import { Badge, Button } from "../../../../components/ui/";
|
|
24
23
|
import {
|
|
25
24
|
DropdownMenu,
|
|
@@ -29,6 +28,7 @@ import {
|
|
|
29
28
|
DropdownMenuSeparator,
|
|
30
29
|
DropdownMenuTrigger
|
|
31
30
|
} from "../../../../components/ui/DropdownMenu";
|
|
31
|
+
import { usePermissions } from "../../../../store";
|
|
32
32
|
import NestedFilter from "./NestedFilter";
|
|
33
33
|
function Filters({ datasets, appliedFilters, onFiltersChange }) {
|
|
34
34
|
const t = useTranslations("Filters");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/Filters.tsx"],"sourcesContent":["\"use client\"\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\n// Icons\r\nimport * as LR from 'lucide-react'\r\n// Dependencies\r\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/core/components/viewers/map/datasets/Filters.tsx"],"sourcesContent":["\"use client\"\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\n// Icons\r\nimport * as LR from 'lucide-react'\r\n// Dependencies\r\nimport { useTranslations } from 'next-intl'\r\nimport * as React from 'react'\r\n\r\nimport { Badge, Button } from '../../../../components/ui/'\r\n// Shadcn Components\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from '../../../../components/ui/DropdownMenu'\r\nimport { usePermissions } from '../../../../store'\r\n\r\n// Custom Components\r\nimport NestedFilter from './NestedFilter'\r\n\r\ntype FiltersProps = {\r\n datasets: any[]\r\n appliedFilters: {\r\n countrySubdivisions: string[]\r\n municipalities: string[]\r\n types: string[]\r\n sources: string[]\r\n }\r\n onFiltersChange: (filters: { countrySubdivisions: string[], municipalities: string[], types: string[], sources: string[] }) => void\r\n}\r\n\r\nexport default function Filters({ datasets, appliedFilters, onFiltersChange }: FiltersProps) {\r\n // Translation\r\n const t = useTranslations('Filters')\r\n\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n // State to control which view is displayed\r\n const [content, setContent] = React.useState(true)\r\n const [label, setLabel] = React.useState('')\r\n\r\n const totalAppliedFilters = Object.values(appliedFilters).reduce((total, filterArray) => {\r\n return total + filterArray.length\r\n }, 0)\r\n\r\n const handleContent = (e: React.MouseEvent, label?: string) => {\r\n // Prevent default behavior and stop propagation\r\n e.stopPropagation()\r\n e.preventDefault()\r\n // Update content state\r\n setContent(!content)\r\n\r\n // Update label\r\n if (label) {\r\n setLabel(label)\r\n }\r\n\r\n // TODO: Update data source to propagate nested menu items\r\n }\r\n\r\n // Get unique values for each filter type from datasets\r\n const getUniqueValues = (field: string) => {\r\n const values = new Set<string>()\r\n const isSource = field === t('sourceLower')\r\n for (const dataset of datasets) {\r\n const value = isSource ? (dataset.portal?.name ?? dataset.publisher) : dataset[field]\r\n if (value && value !== '') {\r\n values.add(value)\r\n }\r\n }\r\n return [...values].sort()\r\n }\r\n\r\n const handleFilterChange = (filterType: string, selectedValues: string[]) => {\r\n const newFilters = { ...appliedFilters }\r\n\r\n switch (filterType) {\r\n case 'subdivision': {\r\n newFilters.countrySubdivisions = selectedValues\r\n\r\n break\r\n }\r\n case 'municipality': {\r\n newFilters.municipalities = selectedValues\r\n\r\n break\r\n }\r\n case 'type': {\r\n newFilters.types = selectedValues\r\n\r\n break\r\n }\r\n case 'source': {\r\n newFilters.sources = selectedValues\r\n\r\n break\r\n }\r\n // No default\r\n }\r\n\r\n onFiltersChange(newFilters)\r\n }\r\n\r\n return (\r\n <>\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className=\"dropdown-menu-trigger\"\r\n onClick={e => e.stopPropagation()}\r\n disabled={!ability.can('read', 'File')}\r\n >\r\n {totalAppliedFilters > 0\r\n ? <Badge variant=\"default\" className=\"\">{totalAppliedFilters}</Badge>\r\n : <LR.ListFilter />}\r\n\r\n <span>{t('filters')}</span>\r\n </Button>\r\n </DropdownMenuTrigger>\r\n\r\n {content\r\n\r\n ? (\r\n <DropdownMenuContent align=\"end\">\r\n <DropdownMenuLabel>{t('filters')}</DropdownMenuLabel>\r\n <DropdownMenuSeparator />\r\n <DropdownMenuItem\r\n onClick={(e) => { handleContent(e, t('countrySubdivisionLower')) }}\r\n >\r\n {t('countrySubdivision')}\r\n </DropdownMenuItem>\r\n <DropdownMenuItem\r\n onClick={(e) => { handleContent(e, t('municipalityLower')) }}\r\n >\r\n {t('municipality')}\r\n </DropdownMenuItem>\r\n <DropdownMenuItem\r\n onClick={(e) => { handleContent(e, t('typeLower')) }}\r\n >\r\n {t('type')}\r\n </DropdownMenuItem>\r\n <DropdownMenuItem\r\n onClick={(e) => { handleContent(e, t('sourceLower')) }}\r\n >\r\n {t('source')}\r\n </DropdownMenuItem>\r\n\r\n </DropdownMenuContent>\r\n )\r\n\r\n : (\r\n <NestedFilter\r\n label={label}\r\n handleContent={handleContent}\r\n setContent={setContent}\r\n availableValues={getUniqueValues(label)}\r\n selectedValues={\r\n label === t('countrySubdivisionLower')\r\n ? appliedFilters.countrySubdivisions\r\n : label === t('municipalityLower')\r\n ? appliedFilters.municipalities\r\n : label === t('typeLower')\r\n ? appliedFilters.types\r\n : label === t('sourceLower') ? appliedFilters.sources : []\r\n }\r\n onSelectionChange={selectedValues => handleFilterChange(label, selectedValues)}\r\n />\r\n )}\r\n </DropdownMenu>\r\n </>\r\n )\r\n}\r\n"],"mappings":"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","names":["label"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestedFilter.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/NestedFilter.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NestedFilter.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/viewers/map/datasets/NestedFilter.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IAChD,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,iBAAiB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,KAAK,EACL,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,EAAE,iBAAiB,qBA+EnB"}
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
ArrowLeft,
|
|
5
5
|
Search
|
|
6
6
|
} from "lucide-react";
|
|
7
|
-
import * as React from "react";
|
|
8
7
|
import { useTranslations } from "next-intl";
|
|
8
|
+
import * as React from "react";
|
|
9
9
|
import { Button, Checkbox, Input } from "../../../../components/ui/";
|
|
10
10
|
import {
|
|
11
11
|
DropdownMenuContent,
|