@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
|
@@ -17,10 +17,10 @@ var __spreadValues = (a, b) => {
|
|
|
17
17
|
return a;
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
import { formatName, stripHtml } from "../utils";
|
|
21
20
|
import { DataManagementSystem } from "../../../../../types/dbTypes";
|
|
22
|
-
import { buildValidationKey, getCache, setCache, withCache } from "./cache";
|
|
23
21
|
import { layerColorByName } from "../../utils/stringToColour";
|
|
22
|
+
import { formatName, stripHtml } from "../utils";
|
|
23
|
+
import { buildValidationKey, getCache, setCache, withCache } from "./cache";
|
|
24
24
|
const inFlightFeatureRequests = /* @__PURE__ */ new Map();
|
|
25
25
|
async function fetchWithTimeout(url, timeout = 1e4) {
|
|
26
26
|
const controller = new AbortController();
|
|
@@ -53,19 +53,16 @@ async function withConcurrencyLimit(items, limit, fn) {
|
|
|
53
53
|
return results;
|
|
54
54
|
}
|
|
55
55
|
async function fetchArcGISDatasets(portal, rowsPerPage) {
|
|
56
|
-
var _a, _b;
|
|
57
56
|
const { apiUrl, countrySubdivision, municipality, group } = portal;
|
|
58
57
|
try {
|
|
59
58
|
const baseUrl = (apiUrl || "").replace(/\/+$/, "");
|
|
60
59
|
const servicesUrl = `${baseUrl}/services?f=pjson`;
|
|
61
|
-
console.log(`[ArcGIS] Fetching services for portal "${portal.name}": ${servicesUrl}`);
|
|
62
60
|
const response = await fetchWithTimeout(servicesUrl);
|
|
63
61
|
if (!response.ok) {
|
|
64
62
|
console.error(`[ArcGIS] "${portal.name}" services request failed \u2014 status ${response.status}`);
|
|
65
63
|
throw new Error(`HTTP error! status: ${response.status}`);
|
|
66
64
|
}
|
|
67
65
|
const data = await response.json();
|
|
68
|
-
console.log(`[ArcGIS] "${portal.name}" \u2014 ${(_b = (_a = data.services) == null ? void 0 : _a.length) != null ? _b : 0} services found`);
|
|
69
66
|
const transformedDatasets = [];
|
|
70
67
|
const processService = async (service) => {
|
|
71
68
|
const url = `${baseUrl}/services/${service.name}/${service.type}`;
|
|
@@ -82,12 +79,12 @@ async function fetchArcGISDatasets(portal, rowsPerPage) {
|
|
|
82
79
|
serviceInfo = await serviceRes.value.json();
|
|
83
80
|
const layers = serviceInfo.layers && serviceInfo.layers.length > 0 ? serviceInfo.layers.filter((l) => l.type === "Feature Layer") : [{ id: 0, name: null, geometryType: null }];
|
|
84
81
|
const hasNonNullGeometry = (featuresUrl, cacheKey) => withCache(cacheKey, 24 * 60 * 60 * 1e3, async () => {
|
|
85
|
-
var
|
|
82
|
+
var _a, _b;
|
|
86
83
|
try {
|
|
87
84
|
const res = await fetchWithTimeout(`${featuresUrl}&resultRecordCount=1`);
|
|
88
85
|
if (!res.ok) return false;
|
|
89
86
|
const d = await res.json();
|
|
90
|
-
if (((
|
|
87
|
+
if (((_a = d == null ? void 0 : d.error) == null ? void 0 : _a.code) || ((_b = d == null ? void 0 : d.error) == null ? void 0 : _b.message)) return false;
|
|
91
88
|
if (!d || d.type !== "FeatureCollection" || !Array.isArray(d.features)) return false;
|
|
92
89
|
return d.features.some((f) => f && f.geometry);
|
|
93
90
|
} catch (e) {
|
|
@@ -96,21 +93,21 @@ async function fetchArcGISDatasets(portal, rowsPerPage) {
|
|
|
96
93
|
});
|
|
97
94
|
const layerResults = await Promise.allSettled(
|
|
98
95
|
layers.map(async (layer) => {
|
|
99
|
-
var
|
|
96
|
+
var _a, _b, _c;
|
|
100
97
|
const layerIndex = layer.id;
|
|
101
98
|
const featuresUrl = `${url}/${layerIndex}/query?outFields=*&where=1%3D1&f=geojson`;
|
|
102
99
|
const featureInfoUrl = `${url}/${layerIndex}?f=pjson`;
|
|
103
100
|
const validKey = buildValidationKey(
|
|
104
101
|
"arcgis",
|
|
105
102
|
`${service.name}_${layerIndex}`,
|
|
106
|
-
((
|
|
103
|
+
((_a = serviceInfo == null ? void 0 : serviceInfo.documentInfo) == null ? void 0 : _a.ModifiedTime) || (extraInfo == null ? void 0 : extraInfo.modified) || void 0
|
|
107
104
|
);
|
|
108
105
|
const hasGeom = await hasNonNullGeometry(featuresUrl, validKey);
|
|
109
106
|
if (!hasGeom) return null;
|
|
110
|
-
const modTime = ((
|
|
107
|
+
const modTime = ((_b = serviceInfo == null ? void 0 : serviceInfo.documentInfo) == null ? void 0 : _b.ModifiedTime) || (extraInfo == null ? void 0 : extraInfo.modified) || "";
|
|
111
108
|
const getFeatures = async (options) => {
|
|
112
|
-
var
|
|
113
|
-
const zoom = (
|
|
109
|
+
var _a2;
|
|
110
|
+
const zoom = (_a2 = options == null ? void 0 : options.zoom) != null ? _a2 : 10;
|
|
114
111
|
const bbox = options == null ? void 0 : options.bbox;
|
|
115
112
|
const pageSize = zoom < 6 ? 500 : zoom < 10 ? 1e3 : 2e3;
|
|
116
113
|
let spatialFilter = "";
|
|
@@ -150,8 +147,8 @@ async function fetchArcGISDatasets(portal, rowsPerPage) {
|
|
|
150
147
|
`${baseQuery}&resultOffset=${pageSize * (i + 1)}&resultRecordCount=${pageSize}`,
|
|
151
148
|
15e3
|
|
152
149
|
).then((r) => r.ok ? r.json() : null).then((p) => {
|
|
153
|
-
var
|
|
154
|
-
return (
|
|
150
|
+
var _a3;
|
|
151
|
+
return (_a3 = p == null ? void 0 : p.features) != null ? _a3 : [];
|
|
155
152
|
}).catch(() => [])
|
|
156
153
|
)
|
|
157
154
|
);
|
|
@@ -209,9 +206,9 @@ async function fetchArcGISDatasets(portal, rowsPerPage) {
|
|
|
209
206
|
return "string";
|
|
210
207
|
};
|
|
211
208
|
const mapped = featureData.fields.map((field) => {
|
|
212
|
-
var
|
|
209
|
+
var _a2;
|
|
213
210
|
const rawEsriType = field.type;
|
|
214
|
-
const inferred = nameBasedType(field) || ((
|
|
211
|
+
const inferred = nameBasedType(field) || ((_a2 = typeMap[rawEsriType]) == null ? void 0 : _a2.type) || inferFieldType(field);
|
|
215
212
|
return __spreadProps(__spreadValues({}, field), { esriType: rawEsriType, type: inferred });
|
|
216
213
|
});
|
|
217
214
|
setCache(fieldsKey, mapped, 24 * 60 * 60 * 1e3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/src/arcGISDatasets.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport type { Dataset, FieldType } from '../../../../../types/datasetTypes'\r\nimport { formatName, stripHtml } from '../utils'\r\nimport { type AllGeoJSON } from '@turf/turf'\r\nimport { DataManagementSystem, type OpenDataPortal } from '../../../../../types/dbTypes'\r\nimport { buildValidationKey, getCache, setCache, withCache } from './cache'\r\nimport { layerColorByName } from '../../utils/stringToColour'\r\n\r\nconst inFlightFeatureRequests = new Map<string, Promise<AllGeoJSON>>()\r\n\r\nexport type ViewportOptions = {\r\n bbox?: [number, number, number, number] // [west, south, east, north]\r\n zoom?: number\r\n}\r\n\r\nasync function fetchWithTimeout(url: string, timeout = 10_000): Promise<Response> {\r\n const controller = new AbortController()\r\n const timeoutId = setTimeout(() => controller.abort(), timeout)\r\n try {\r\n const response = await fetch(url, { signal: controller.signal })\r\n clearTimeout(timeoutId)\r\n return response\r\n }\r\n catch (error) {\r\n clearTimeout(timeoutId)\r\n throw error\r\n }\r\n}\r\n\r\n/**\r\n * Run `fn` over `items` with at most `limit` concurrent executions.\r\n * Preserves order of results matching input order.\r\n */\r\nasync function withConcurrencyLimit<T, R>(\r\n items: T[],\r\n limit: number,\r\n fn: (item: T) => Promise<R>,\r\n): Promise<PromiseSettledResult<R>[]> {\r\n const results: PromiseSettledResult<R>[] = new Array(items.length)\r\n let next = 0\r\n\r\n async function worker() {\r\n while (next < items.length) {\r\n const i = next++\r\n try {\r\n results[i] = { status: 'fulfilled', value: await fn(items[i]) }\r\n }\r\n catch (reason) {\r\n results[i] = { status: 'rejected', reason }\r\n }\r\n }\r\n }\r\n\r\n await Promise.all(\r\n Array.from({ length: Math.min(limit, items.length) }, worker),\r\n )\r\n return results\r\n}\r\n\r\nexport async function fetchArcGISDatasets(\r\n portal: OpenDataPortal,\r\n rowsPerPage: number,\r\n): Promise<Dataset[]> {\r\n const { apiUrl, countrySubdivision, municipality, group } = portal\r\n\r\n try {\r\n const baseUrl = (apiUrl || '').replace(/\\/+$/, '')\r\n const servicesUrl = `${baseUrl}/services?f=pjson`\r\n console.log(`[ArcGIS] Fetching services for portal \"${portal.name}\": ${servicesUrl}`)\r\n\r\n const response = await fetchWithTimeout(servicesUrl)\r\n if (!response.ok) {\r\n console.error(`[ArcGIS] \"${portal.name}\" services request failed — status ${response.status}`)\r\n throw new Error(`HTTP error! status: ${response.status}`)\r\n }\r\n\r\n const data = await response.json()\r\n console.log(`[ArcGIS] \"${portal.name}\" — ${data.services?.length ?? 0} services found`)\r\n\r\n const transformedDatasets: Dataset[] = []\r\n\r\n const processService = async (service: any): Promise<Dataset[]> => {\r\n const url = `${baseUrl}/services/${service.name}/${service.type}`\r\n const infoUrl = `${url}/info/itemInfo?f=pjson`\r\n\r\n const [infoRes, serviceRes] = await Promise.allSettled([\r\n fetchWithTimeout(infoUrl),\r\n fetchWithTimeout(`${url}?f=pjson`),\r\n ])\r\n\r\n let extraInfo: any = {}\r\n let serviceInfo: any = {}\r\n\r\n if (infoRes.status === 'fulfilled' && infoRes.value.ok)\r\n extraInfo = await infoRes.value.json()\r\n if (serviceRes.status === 'fulfilled' && serviceRes.value.ok)\r\n serviceInfo = await serviceRes.value.json()\r\n\r\n const layers = serviceInfo.layers && serviceInfo.layers.length > 0\r\n ? serviceInfo.layers.filter((l: any) => l.type === 'Feature Layer')\r\n : [{ id: 0, name: null, geometryType: null }]\r\n\r\n const hasNonNullGeometry = (featuresUrl: string, cacheKey: string): Promise<boolean> =>\r\n withCache<boolean>(cacheKey, 24 * 60 * 60 * 1000, async () => {\r\n try {\r\n const res = await fetchWithTimeout(`${featuresUrl}&resultRecordCount=1`)\r\n if (!res.ok) return false\r\n const d = await res.json()\r\n if (d?.error?.code || d?.error?.message) return false\r\n if (!d || d.type !== 'FeatureCollection' || !Array.isArray(d.features)) return false\r\n return d.features.some((f: any) => f && f.geometry)\r\n }\r\n catch { return false }\r\n })\r\n\r\n // Layers within a service are few (2-5 typically) — parallel is fine here\r\n const layerResults = await Promise.allSettled(\r\n layers.map(async (layer: any): Promise<Dataset | null> => {\r\n const layerIndex = layer.id\r\n const featuresUrl = `${url}/${layerIndex}/query?outFields=*&where=1%3D1&f=geojson`\r\n const featureInfoUrl = `${url}/${layerIndex}?f=pjson`\r\n\r\n const validKey = buildValidationKey(\r\n 'arcgis',\r\n `${service.name}_${layerIndex}`,\r\n serviceInfo?.documentInfo?.ModifiedTime || extraInfo?.modified || undefined,\r\n )\r\n const hasGeom = await hasNonNullGeometry(featuresUrl, validKey)\r\n if (!hasGeom) return null\r\n\r\n const modTime = serviceInfo?.documentInfo?.ModifiedTime || extraInfo?.modified || ''\r\n\r\n /**\r\n * getFeatures — viewport-aware, paginated.\r\n * If `bbox` is provided, only features intersecting the viewport are fetched.\r\n * Automatically paginates beyond the per-page limit.\r\n */\r\n const getFeatures = async (options?: ViewportOptions): Promise<AllGeoJSON> => {\r\n const zoom = options?.zoom ?? 10\r\n const bbox = options?.bbox\r\n\r\n // Page size scales with zoom: fewer records at low zoom (overview), more at high zoom (detail)\r\n const pageSize = zoom < 6 ? 500 : zoom < 10 ? 1000 : 2000\r\n\r\n // Build spatial filter string for ArcGIS when viewport is available\r\n let spatialFilter = ''\r\n if (bbox) {\r\n const [west, south, east, north] = bbox\r\n const geomStr = encodeURIComponent(\r\n JSON.stringify({ xmin: west, ymin: south, xmax: east, ymax: north, spatialReference: { wkid: 4326 } }),\r\n )\r\n spatialFilter = `&geometry=${geomStr}&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects&inSR=4326`\r\n }\r\n\r\n // Round bbox to 0.1° grid to maximise cache hits while panning\r\n const bboxKey = bbox\r\n ? bbox.map(n => (Math.round(n * 10) / 10).toFixed(1)).join(',')\r\n : 'global'\r\n const zoomBucket = Math.floor(zoom / 2)\r\n const featuresKey = `features:arcgis:${service.name}_${layerIndex}:${bboxKey}:z${zoomBucket}:${modTime}`\r\n\r\n const cached = getCache<AllGeoJSON>(featuresKey)\r\n if (cached) return cached\r\n\r\n const inFlight = inFlightFeatureRequests.get(featuresKey)\r\n if (inFlight) return inFlight\r\n\r\n const baseQuery = `${url}/${layerIndex}/query?outFields=*&where=1%3D1&f=geojson${spatialFilter}`\r\n\r\n const request = (async () => {\r\n try {\r\n const firstRes = await fetchWithTimeout(`${baseQuery}&resultOffset=0&resultRecordCount=${pageSize}`, 15_000)\r\n if (!firstRes.ok) return { type: 'FeatureCollection', features: [] } as AllGeoJSON\r\n\r\n const firstPage = await firstRes.json()\r\n if (!firstPage?.features) return { type: 'FeatureCollection', features: [] } as AllGeoJSON\r\n\r\n const allFeatures = [...firstPage.features]\r\n\r\n // If the server returned fewer features than the requested page size, the first page is complete.\r\n // This avoids an unnecessary count request for small datasets that have already finished loading.\r\n if (firstPage.exceededTransferLimit && firstPage.features.length >= pageSize) {\r\n try {\r\n const countRes = await fetchWithTimeout(`${baseQuery}&returnCountOnly=true&f=json`, 5_000)\r\n if (countRes.ok) {\r\n const { count: total } = await countRes.json()\r\n if (total > pageSize) {\r\n // Cap at 10 additional pages (~20 000 records max) to avoid browser memory issues\r\n const numPages = Math.min(Math.ceil((total - pageSize) / pageSize), 10)\r\n const morePages = await Promise.all(\r\n Array.from({ length: numPages }, (_, i) =>\r\n fetchWithTimeout(\r\n `${baseQuery}&resultOffset=${pageSize * (i + 1)}&resultRecordCount=${pageSize}`,\r\n 15_000,\r\n )\r\n .then(r => r.ok ? r.json() : null)\r\n .then(p => p?.features ?? [])\r\n .catch(() => []),\r\n ),\r\n )\r\n for (const page of morePages) allFeatures.push(...page)\r\n }\r\n }\r\n }\r\n catch { /* use first page only */ }\r\n }\r\n\r\n const result = { type: 'FeatureCollection', features: allFeatures } as AllGeoJSON\r\n // Viewport-constrained results cached for 15 min; global results for 1 hr\r\n setCache(featuresKey, result, bbox ? 15 * 60 * 1000 : 60 * 60 * 1000)\r\n return result\r\n }\r\n catch (error) {\r\n console.error(`ArcGIS: Error fetching features for layer ${layerIndex}:`, error)\r\n return { type: 'FeatureCollection', features: [] } as AllGeoJSON\r\n }\r\n finally {\r\n inFlightFeatureRequests.delete(featuresKey)\r\n }\r\n })()\r\n\r\n inFlightFeatureRequests.set(featuresKey, request)\r\n return request\r\n }\r\n\r\n const getFeaturesData = async () => {\r\n try {\r\n const res = await fetchWithTimeout(`${url}/${layerIndex}?f=pjson`)\r\n return res.ok ? res.json() : undefined\r\n }\r\n catch { return undefined }\r\n }\r\n\r\n const getFields = async () => {\r\n try {\r\n const fieldsKey = `fields:arcgis:${service.name}:${layerIndex}:${modTime}`\r\n const cached = getCache<any[]>(fieldsKey)\r\n if (cached) return cached\r\n\r\n const res = await fetchWithTimeout(featureInfoUrl)\r\n if (!res.ok) return []\r\n const featureData = await res.json()\r\n if (!featureData.fields) return []\r\n\r\n const typeMap = esriFieldTypes()\r\n\r\n const nameBasedType = (raw: any): FieldType | undefined => {\r\n const lc = (raw.name || '').toLowerCase()\r\n if (/(percentage|percent|ratio|average)/.test(lc)) return 'number'\r\n if (/(date|year|month|day|time)/.test(lc)) return 'datetime'\r\n return undefined\r\n }\r\n\r\n const inferFieldType = (raw: any): FieldType => {\r\n const norm = ([raw.type, raw.actualType, raw.sqlType, raw.esriType] as (string | undefined)[])\r\n .filter(Boolean).map(v => String(v).toLowerCase())\r\n if (norm.some(v => v.includes('boolean') || v === 'bool' || v === 'esrifieldtypeboolean')) return 'boolean'\r\n if (norm.some(v => /(double|float|integer|smallint|single|numeric|number|decimal)/.test(v)\r\n || ['esrifieldtypeinteger', 'esrifieldtypesmallinteger', 'esrifieldtypedouble', 'esrifieldtypefloat', 'esrifieldtypesingle'].includes(v))) return 'number'\r\n if (norm.some(v => /(date|time|timestamp)/.test(v))) return 'datetime'\r\n if (norm.some(v => /(globalid|guid|objectid|^oid$|_id$|id$)/.test(v))) return 'id'\r\n if (norm.some(v => v.includes('blob'))) return 'blob'\r\n if (norm.some(v => v.includes('raster') || v.includes('geometry'))) return 'object'\r\n return 'string'\r\n }\r\n\r\n const mapped = featureData.fields.map((field: any) => {\r\n const rawEsriType = field.type\r\n const inferred = nameBasedType(field) || typeMap[rawEsriType]?.type || inferFieldType(field)\r\n return { ...field, esriType: rawEsriType, type: inferred }\r\n })\r\n setCache(fieldsKey, mapped, 24 * 60 * 60 * 1000)\r\n return mapped\r\n }\r\n catch { return [] }\r\n }\r\n\r\n const baseName = formatName(service.name)\r\n const layerName = layer.name || `Layer ${layerIndex}`\r\n const name = layers.length > 1 ? `${baseName} - ${layerName}` : baseName\r\n\r\n return {\r\n id: extraInfo.id ? `${extraInfo.id}_${layerIndex}` : `${service.name}_${layerIndex}`,\r\n name,\r\n type: Array.isArray(service.layers) && service.layers[0]?.geometryType\r\n ? service.layers[0].geometryType\r\n : extraInfo.type || 'Feature Layer',\r\n datasetType: 'GeoJSON',\r\n dataManagementSystem: DataManagementSystem.Arcgis,\r\n url,\r\n license: extraInfo.licenseInfo || 'Unknown',\r\n description: extraInfo.description ? stripHtml(extraInfo.description) : 'No description available',\r\n publisher: extraInfo.owner || 'Unknown',\r\n contact: extraInfo.contact || 'Unknown',\r\n keywords: extraInfo.tags || extraInfo.typedKeywords || [],\r\n subject: extraInfo.subject || [],\r\n countrySubdivision,\r\n municipality,\r\n getFields,\r\n getFeatures,\r\n getFeaturesData,\r\n group,\r\n portal,\r\n layerColor: layerColorByName(name),\r\n } satisfies Dataset\r\n }),\r\n )\r\n\r\n return layerResults\r\n .filter((r): r is PromiseFulfilledResult<Dataset> => r.status === 'fulfilled' && r.value !== null)\r\n .map(r => r.value)\r\n }\r\n\r\n // Process at most 5 services concurrently — prevents ArcGIS rate-limiting\r\n const serviceResults = await withConcurrencyLimit(data.services, 5, processService)\r\n\r\n for (const result of serviceResults) {\r\n if (result.status === 'fulfilled') transformedDatasets.push(...result.value)\r\n }\r\n\r\n return transformedDatasets\r\n }\r\n catch (error) {\r\n console.error(`[ArcGIS] Failed to fetch datasets for portal \"${portal.name}\":`, error)\r\n return []\r\n }\r\n}\r\n\r\nexport interface EsriFieldTypes {\r\n [key: string]: { description: string, type: FieldType }\r\n}\r\n\r\nexport function esriFieldTypes(): EsriFieldTypes {\r\n return {\r\n esriFieldTypeString: { description: 'Text Field', type: 'string' },\r\n esriFieldTypeGlobalID: { description: 'Global ID', type: 'id' },\r\n esriFieldTypeGUID: { description: 'Global UID', type: 'id' },\r\n esriFieldTypeSmallInteger: { description: '16-bit Integer', type: 'number' },\r\n esriFieldTypeInteger: { description: '32-bit Integer', type: 'number' },\r\n esriFieldTypeSingle: { description: 'Single Precision Float', type: 'number' },\r\n esriFieldTypeDouble: { description: 'Double Precision Float', type: 'number' },\r\n esriFieldTypeDate: { description: 'Date/Time', type: 'datetime' },\r\n esriFieldTypedOnly: { description: 'Date', type: 'datetime' },\r\n esriFieldTypeTimeOnly: { description: 'Time', type: 'string' },\r\n esriFieldTypeTimestampOffset: { description: 'Timestamp', type: 'string' },\r\n esriFieldTypeBlob: { description: 'Binary', type: 'blob' },\r\n esriFieldTypeRaster: { description: 'Raster', type: 'object' },\r\n esriFieldTypeXML: { description: 'XML', type: 'string' },\r\n esriFieldTypeGeometry: { description: 'Spatial Geometry', type: 'object' },\r\n esriFieldTypeOID: { description: 'Object ID', type: 'id' },\r\n }\r\n}\r\n"],"mappings":"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","names":["_a","_b"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/src/arcGISDatasets.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport { type AllGeoJSON } from '@turf/turf'\r\n\r\nimport { DataManagementSystem, type OpenDataPortal } from '../../../../../types/dbTypes'\r\nimport { layerColorByName } from '../../utils/stringToColour'\r\nimport { formatName, stripHtml } from '../utils'\r\n\r\nimport { buildValidationKey, getCache, setCache, withCache } from './cache'\r\n\r\nimport type { Dataset, FieldType } from '../../../../../types/datasetTypes'\r\n\r\nconst inFlightFeatureRequests = new Map<string, Promise<AllGeoJSON>>()\r\n\r\nexport type ViewportOptions = {\r\n bbox?: [number, number, number, number] // [west, south, east, north]\r\n zoom?: number\r\n}\r\n\r\nasync function fetchWithTimeout(url: string, timeout = 10_000): Promise<Response> {\r\n const controller = new AbortController()\r\n const timeoutId = setTimeout(() => controller.abort(), timeout)\r\n try {\r\n const response = await fetch(url, { signal: controller.signal })\r\n clearTimeout(timeoutId)\r\n return response\r\n }\r\n catch (error) {\r\n clearTimeout(timeoutId)\r\n throw error\r\n }\r\n}\r\n\r\n/**\r\n * Run `fn` over `items` with at most `limit` concurrent executions.\r\n * Preserves order of results matching input order.\r\n */\r\nasync function withConcurrencyLimit<T, R>(\r\n items: T[],\r\n limit: number,\r\n fn: (item: T) => Promise<R>,\r\n): Promise<PromiseSettledResult<R>[]> {\r\n const results: PromiseSettledResult<R>[] = new Array(items.length)\r\n let next = 0\r\n\r\n async function worker() {\r\n while (next < items.length) {\r\n const i = next++\r\n try {\r\n results[i] = { status: 'fulfilled', value: await fn(items[i]) }\r\n }\r\n catch (reason) {\r\n results[i] = { status: 'rejected', reason }\r\n }\r\n }\r\n }\r\n\r\n await Promise.all(\r\n Array.from({ length: Math.min(limit, items.length) }, worker),\r\n )\r\n return results\r\n}\r\n\r\nexport async function fetchArcGISDatasets(\r\n portal: OpenDataPortal,\r\n rowsPerPage: number,\r\n): Promise<Dataset[]> {\r\n const { apiUrl, countrySubdivision, municipality, group } = portal\r\n\r\n try {\r\n const baseUrl = (apiUrl || '').replace(/\\/+$/, '')\r\n const servicesUrl = `${baseUrl}/services?f=pjson`\r\n\r\n const response = await fetchWithTimeout(servicesUrl)\r\n if (!response.ok) {\r\n console.error(`[ArcGIS] \"${portal.name}\" services request failed — status ${response.status}`)\r\n throw new Error(`HTTP error! status: ${response.status}`)\r\n }\r\n\r\n const data = await response.json()\r\n\r\n const transformedDatasets: Dataset[] = []\r\n\r\n const processService = async (service: any): Promise<Dataset[]> => {\r\n const url = `${baseUrl}/services/${service.name}/${service.type}`\r\n const infoUrl = `${url}/info/itemInfo?f=pjson`\r\n\r\n const [infoRes, serviceRes] = await Promise.allSettled([\r\n fetchWithTimeout(infoUrl),\r\n fetchWithTimeout(`${url}?f=pjson`),\r\n ])\r\n\r\n let extraInfo: any = {}\r\n let serviceInfo: any = {}\r\n\r\n if (infoRes.status === 'fulfilled' && infoRes.value.ok)\r\n extraInfo = await infoRes.value.json()\r\n if (serviceRes.status === 'fulfilled' && serviceRes.value.ok)\r\n serviceInfo = await serviceRes.value.json()\r\n\r\n const layers = serviceInfo.layers && serviceInfo.layers.length > 0\r\n ? serviceInfo.layers.filter((l: any) => l.type === 'Feature Layer')\r\n : [{ id: 0, name: null, geometryType: null }]\r\n\r\n const hasNonNullGeometry = (featuresUrl: string, cacheKey: string): Promise<boolean> =>\r\n withCache<boolean>(cacheKey, 24 * 60 * 60 * 1000, async () => {\r\n try {\r\n const res = await fetchWithTimeout(`${featuresUrl}&resultRecordCount=1`)\r\n if (!res.ok) return false\r\n const d = await res.json()\r\n if (d?.error?.code || d?.error?.message) return false\r\n if (!d || d.type !== 'FeatureCollection' || !Array.isArray(d.features)) return false\r\n return d.features.some((f: any) => f && f.geometry)\r\n }\r\n catch { return false }\r\n })\r\n\r\n // Layers within a service are few (2-5 typically) — parallel is fine here\r\n const layerResults = await Promise.allSettled(\r\n layers.map(async (layer: any): Promise<Dataset | null> => {\r\n const layerIndex = layer.id\r\n const featuresUrl = `${url}/${layerIndex}/query?outFields=*&where=1%3D1&f=geojson`\r\n const featureInfoUrl = `${url}/${layerIndex}?f=pjson`\r\n\r\n const validKey = buildValidationKey(\r\n 'arcgis',\r\n `${service.name}_${layerIndex}`,\r\n serviceInfo?.documentInfo?.ModifiedTime || extraInfo?.modified || undefined,\r\n )\r\n const hasGeom = await hasNonNullGeometry(featuresUrl, validKey)\r\n if (!hasGeom) return null\r\n\r\n const modTime = serviceInfo?.documentInfo?.ModifiedTime || extraInfo?.modified || ''\r\n\r\n /**\r\n * getFeatures — viewport-aware, paginated.\r\n * If `bbox` is provided, only features intersecting the viewport are fetched.\r\n * Automatically paginates beyond the per-page limit.\r\n */\r\n const getFeatures = async (options?: ViewportOptions): Promise<AllGeoJSON> => {\r\n const zoom = options?.zoom ?? 10\r\n const bbox = options?.bbox\r\n\r\n // Page size scales with zoom: fewer records at low zoom (overview), more at high zoom (detail)\r\n const pageSize = zoom < 6 ? 500 : zoom < 10 ? 1000 : 2000\r\n\r\n // Build spatial filter string for ArcGIS when viewport is available\r\n let spatialFilter = ''\r\n if (bbox) {\r\n const [west, south, east, north] = bbox\r\n const geomStr = encodeURIComponent(\r\n JSON.stringify({ xmin: west, ymin: south, xmax: east, ymax: north, spatialReference: { wkid: 4326 } }),\r\n )\r\n spatialFilter = `&geometry=${geomStr}&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects&inSR=4326`\r\n }\r\n\r\n // Round bbox to 0.1° grid to maximise cache hits while panning\r\n const bboxKey = bbox\r\n ? bbox.map(n => (Math.round(n * 10) / 10).toFixed(1)).join(',')\r\n : 'global'\r\n const zoomBucket = Math.floor(zoom / 2)\r\n const featuresKey = `features:arcgis:${service.name}_${layerIndex}:${bboxKey}:z${zoomBucket}:${modTime}`\r\n\r\n const cached = getCache<AllGeoJSON>(featuresKey)\r\n if (cached) return cached\r\n\r\n const inFlight = inFlightFeatureRequests.get(featuresKey)\r\n if (inFlight) return inFlight\r\n\r\n const baseQuery = `${url}/${layerIndex}/query?outFields=*&where=1%3D1&f=geojson${spatialFilter}`\r\n\r\n const request = (async () => {\r\n try {\r\n const firstRes = await fetchWithTimeout(`${baseQuery}&resultOffset=0&resultRecordCount=${pageSize}`, 15_000)\r\n if (!firstRes.ok) return { type: 'FeatureCollection', features: [] } as AllGeoJSON\r\n\r\n const firstPage = await firstRes.json()\r\n if (!firstPage?.features) return { type: 'FeatureCollection', features: [] } as AllGeoJSON\r\n\r\n const allFeatures = [...firstPage.features]\r\n\r\n // If the server returned fewer features than the requested page size, the first page is complete.\r\n // This avoids an unnecessary count request for small datasets that have already finished loading.\r\n if (firstPage.exceededTransferLimit && firstPage.features.length >= pageSize) {\r\n try {\r\n const countRes = await fetchWithTimeout(`${baseQuery}&returnCountOnly=true&f=json`, 5_000)\r\n if (countRes.ok) {\r\n const { count: total } = await countRes.json()\r\n if (total > pageSize) {\r\n // Cap at 10 additional pages (~20 000 records max) to avoid browser memory issues\r\n const numPages = Math.min(Math.ceil((total - pageSize) / pageSize), 10)\r\n const morePages = await Promise.all(\r\n Array.from({ length: numPages }, (_, i) =>\r\n fetchWithTimeout(\r\n `${baseQuery}&resultOffset=${pageSize * (i + 1)}&resultRecordCount=${pageSize}`,\r\n 15_000,\r\n )\r\n .then(r => r.ok ? r.json() : null)\r\n .then(p => p?.features ?? [])\r\n .catch(() => []),\r\n ),\r\n )\r\n for (const page of morePages) allFeatures.push(...page)\r\n }\r\n }\r\n }\r\n catch { /* use first page only */ }\r\n }\r\n\r\n const result = { type: 'FeatureCollection', features: allFeatures } as AllGeoJSON\r\n // Viewport-constrained results cached for 15 min; global results for 1 hr\r\n setCache(featuresKey, result, bbox ? 15 * 60 * 1000 : 60 * 60 * 1000)\r\n return result\r\n }\r\n catch (error) {\r\n console.error(`ArcGIS: Error fetching features for layer ${layerIndex}:`, error)\r\n return { type: 'FeatureCollection', features: [] } as AllGeoJSON\r\n }\r\n finally {\r\n inFlightFeatureRequests.delete(featuresKey)\r\n }\r\n })()\r\n\r\n inFlightFeatureRequests.set(featuresKey, request)\r\n return request\r\n }\r\n\r\n const getFeaturesData = async () => {\r\n try {\r\n const res = await fetchWithTimeout(`${url}/${layerIndex}?f=pjson`)\r\n return res.ok ? res.json() : undefined\r\n }\r\n catch { return undefined }\r\n }\r\n\r\n const getFields = async () => {\r\n try {\r\n const fieldsKey = `fields:arcgis:${service.name}:${layerIndex}:${modTime}`\r\n const cached = getCache<any[]>(fieldsKey)\r\n if (cached) return cached\r\n\r\n const res = await fetchWithTimeout(featureInfoUrl)\r\n if (!res.ok) return []\r\n const featureData = await res.json()\r\n if (!featureData.fields) return []\r\n\r\n const typeMap = esriFieldTypes()\r\n\r\n const nameBasedType = (raw: any): FieldType | undefined => {\r\n const lc = (raw.name || '').toLowerCase()\r\n if (/(percentage|percent|ratio|average)/.test(lc)) return 'number'\r\n if (/(date|year|month|day|time)/.test(lc)) return 'datetime'\r\n return undefined\r\n }\r\n\r\n const inferFieldType = (raw: any): FieldType => {\r\n const norm = ([raw.type, raw.actualType, raw.sqlType, raw.esriType] as (string | undefined)[])\r\n .filter(Boolean).map(v => String(v).toLowerCase())\r\n if (norm.some(v => v.includes('boolean') || v === 'bool' || v === 'esrifieldtypeboolean')) return 'boolean'\r\n if (norm.some(v => /(double|float|integer|smallint|single|numeric|number|decimal)/.test(v)\r\n || ['esrifieldtypeinteger', 'esrifieldtypesmallinteger', 'esrifieldtypedouble', 'esrifieldtypefloat', 'esrifieldtypesingle'].includes(v))) return 'number'\r\n if (norm.some(v => /(date|time|timestamp)/.test(v))) return 'datetime'\r\n if (norm.some(v => /(globalid|guid|objectid|^oid$|_id$|id$)/.test(v))) return 'id'\r\n if (norm.some(v => v.includes('blob'))) return 'blob'\r\n if (norm.some(v => v.includes('raster') || v.includes('geometry'))) return 'object'\r\n return 'string'\r\n }\r\n\r\n const mapped = featureData.fields.map((field: any) => {\r\n const rawEsriType = field.type\r\n const inferred = nameBasedType(field) || typeMap[rawEsriType]?.type || inferFieldType(field)\r\n return { ...field, esriType: rawEsriType, type: inferred }\r\n })\r\n setCache(fieldsKey, mapped, 24 * 60 * 60 * 1000)\r\n return mapped\r\n }\r\n catch { return [] }\r\n }\r\n\r\n const baseName = formatName(service.name)\r\n const layerName = layer.name || `Layer ${layerIndex}`\r\n const name = layers.length > 1 ? `${baseName} - ${layerName}` : baseName\r\n\r\n return {\r\n id: extraInfo.id ? `${extraInfo.id}_${layerIndex}` : `${service.name}_${layerIndex}`,\r\n name,\r\n type: Array.isArray(service.layers) && service.layers[0]?.geometryType\r\n ? service.layers[0].geometryType\r\n : extraInfo.type || 'Feature Layer',\r\n datasetType: 'GeoJSON',\r\n dataManagementSystem: DataManagementSystem.Arcgis,\r\n url,\r\n license: extraInfo.licenseInfo || 'Unknown',\r\n description: extraInfo.description ? stripHtml(extraInfo.description) : 'No description available',\r\n publisher: extraInfo.owner || 'Unknown',\r\n contact: extraInfo.contact || 'Unknown',\r\n keywords: extraInfo.tags || extraInfo.typedKeywords || [],\r\n subject: extraInfo.subject || [],\r\n countrySubdivision,\r\n municipality,\r\n getFields,\r\n getFeatures,\r\n getFeaturesData,\r\n group,\r\n portal,\r\n layerColor: layerColorByName(name),\r\n } satisfies Dataset\r\n }),\r\n )\r\n\r\n return layerResults\r\n .filter((r): r is PromiseFulfilledResult<Dataset> => r.status === 'fulfilled' && r.value !== null)\r\n .map(r => r.value)\r\n }\r\n\r\n // Process at most 5 services concurrently — prevents ArcGIS rate-limiting\r\n const serviceResults = await withConcurrencyLimit(data.services, 5, processService)\r\n\r\n for (const result of serviceResults) {\r\n if (result.status === 'fulfilled') transformedDatasets.push(...result.value)\r\n }\r\n\r\n return transformedDatasets\r\n }\r\n catch (error) {\r\n console.error(`[ArcGIS] Failed to fetch datasets for portal \"${portal.name}\":`, error)\r\n return []\r\n }\r\n}\r\n\r\nexport interface EsriFieldTypes {\r\n [key: string]: { description: string, type: FieldType }\r\n}\r\n\r\nexport function esriFieldTypes(): EsriFieldTypes {\r\n return {\r\n esriFieldTypeString: { description: 'Text Field', type: 'string' },\r\n esriFieldTypeGlobalID: { description: 'Global ID', type: 'id' },\r\n esriFieldTypeGUID: { description: 'Global UID', type: 'id' },\r\n esriFieldTypeSmallInteger: { description: '16-bit Integer', type: 'number' },\r\n esriFieldTypeInteger: { description: '32-bit Integer', type: 'number' },\r\n esriFieldTypeSingle: { description: 'Single Precision Float', type: 'number' },\r\n esriFieldTypeDouble: { description: 'Double Precision Float', type: 'number' },\r\n esriFieldTypeDate: { description: 'Date/Time', type: 'datetime' },\r\n esriFieldTypedOnly: { description: 'Date', type: 'datetime' },\r\n esriFieldTypeTimeOnly: { description: 'Time', type: 'string' },\r\n esriFieldTypeTimestampOffset: { description: 'Timestamp', type: 'string' },\r\n esriFieldTypeBlob: { description: 'Binary', type: 'blob' },\r\n esriFieldTypeRaster: { description: 'Raster', type: 'object' },\r\n esriFieldTypeXML: { description: 'XML', type: 'string' },\r\n esriFieldTypeGeometry: { description: 'Spatial Geometry', type: 'object' },\r\n esriFieldTypeOID: { description: 'Object ID', type: 'id' },\r\n }\r\n}\r\n"],"mappings":"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","names":["_a"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtinLiveDatasets.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/src/builtinLiveDatasets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builtinLiveDatasets.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/src/builtinLiveDatasets.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAyDhE,+FAA+F;AAC/F,eAAO,MAAM,mBAAmB,EAAE,OAAO,EAAmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/src/builtinLiveDatasets.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/src/builtinLiveDatasets.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport { DatasetGroup, type OpenDataPortal } from '../../../../../types/dbTypes'\r\nimport { layerColorByName } from '../../utils/stringToColour'\r\n\r\nimport { buildWmsTileUrl } from './urlSources'\r\n\r\nimport type { Dataset } from '../../../../../types/datasetTypes'\r\nimport type { AllGeoJSON } from '@turf/turf'\r\n\r\n/**\r\n * Curated \"live\" datasets surfaced in the dataset manager's Live Data tab.\r\n *\r\n * Unlike portal-fetched datasets these are defined in code: a small, known set\r\n * of always-current federated feeds. The first is Environment and Climate Change\r\n * Canada's precipitation radar (MSC GeoMet) — a WMS raster of rain rate, the\r\n * server always serving the latest frame (refreshed ~every 6 minutes). Federated\r\n * and Canadian-governed: nothing of ours egresses, the browser fetches GeoMet\r\n * raster tiles directly.\r\n *\r\n * Each entry carries `portal.live === true` — the only thing the Live Data tab\r\n * filters on — and renders through the WMS branch of OpenDataLayer.\r\n */\r\n\r\nconst GEOMET_WMS_URL =\r\n process.env.NEXT_PUBLIC_GEOMET_WMS_URL || 'https://geo.weather.gc.ca/geomet'\r\n\r\nconst liveWeatherPortal: OpenDataPortal = {\r\n id: -1001, // synthetic — built-in, never persisted\r\n name: 'ECCC · MSC GeoMet',\r\n group: DatasetGroup.National,\r\n dataManagementSystem: 'Other',\r\n apiUrl: GEOMET_WMS_URL,\r\n country: 'Canada',\r\n live: true,\r\n}\r\n\r\nconst emptyFeatures = async (): Promise<AllGeoJSON> =>\r\n ({ type: 'FeatureCollection', features: [] } as AllGeoJSON)\r\n\r\nconst weatherRadar: Dataset = {\r\n id: 'live-weather-radar',\r\n name: 'Live Weather Radar (Canada)',\r\n publisher: 'Environment and Climate Change Canada · MSC GeoMet',\r\n description: 'Live precipitation radar (RADAR_1KM_RRAI) — rain rate, latest frame served ~every 6 minutes.',\r\n dataManagementSystem: 'other',\r\n datasetType: 'WMS',\r\n type: 'WMS',\r\n countrySubdivision: '',\r\n municipality: '',\r\n group: DatasetGroup.National,\r\n clickable: false,\r\n // MapLibre raster tile template; {bbox-epsg-3857} stays literal (substituted per tile).\r\n url: buildWmsTileUrl(GEOMET_WMS_URL, 'RADAR_1KM_RRAI'),\r\n // Time-enabled: WMSDatasetLayer animates the WMS TIME dimension via the scrub/play control.\r\n timeEnabled: true,\r\n wms: { baseUrl: GEOMET_WMS_URL, layers: 'RADAR_1KM_RRAI' },\r\n information: 'https://eccc-msc.github.io/open-data/msc-geomet/readme_en/',\r\n portal: liveWeatherPortal,\r\n layerColor: layerColorByName('Live Weather Radar'),\r\n getFields: async () => [],\r\n getFeatures: emptyFeatures,\r\n}\r\n\r\n/** Built-in live datasets, injected into the manager so the Live Data tab has real content. */\r\nexport const builtinLiveDatasets: Dataset[] = [weatherRadar]\r\n"],"mappings":"AAGA,SAAS,oBAAyC;AAClD,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAmBhC,MAAM,iBACJ,QAAQ,IAAI,8BAA8B;AAE5C,MAAM,oBAAoC;AAAA,EACxC,IAAI;AAAA;AAAA,EACJ,MAAM;AAAA,EACN,OAAO,aAAa;AAAA,EACpB,sBAAsB;AAAA,EACtB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AACR;AAEA,MAAM,gBAAgB,aACnB,EAAE,MAAM,qBAAqB,UAAU,CAAC,EAAE;AAE7C,MAAM,eAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,WAAW;AAAA,EACX,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,aAAa;AAAA,EACb,MAAM;AAAA,EACN,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,OAAO,aAAa;AAAA,EACpB,WAAW;AAAA;AAAA,EAEX,KAAK,gBAAgB,gBAAgB,gBAAgB;AAAA;AAAA,EAErD,aAAa;AAAA,EACb,KAAK,EAAE,SAAS,gBAAgB,QAAQ,iBAAiB;AAAA,EACzD,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY,iBAAiB,oBAAoB;AAAA,EACjD,WAAW,YAAY,CAAC;AAAA,EACxB,aAAa;AACf;AAGO,MAAM,sBAAiC,CAAC,YAAY;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/src/cache.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\ntype CacheValue<T> = {\r\n v: T\r\n e: number\r\n}\r\n\r\nconst NS = 'datasetCache:'\r\nconst mem = new Map<string, CacheValue<any>>()\r\n\r\nfunction now() {\r\n return Date.now()\r\n}\r\n\r\nexport function makeKey(parts: Array<string | number | null | undefined>) {\r\n return NS + parts.map((p) => String(p ?? '')).join('|')\r\n}\r\n\r\nexport function setCache<T>(key: string, value: T, ttlMs: number) {\r\n const rec: CacheValue<T> = { v: value, e: now() + ttlMs }\r\n try {\r\n mem.set(key, rec)\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n window.localStorage.setItem(key, JSON.stringify(rec))\r\n }\r\n } catch {}\r\n}\r\n\r\nexport function getCache<T>(key: string): T | undefined {\r\n try {\r\n const inMem = mem.get(key)\r\n if (inMem) {\r\n if (inMem.e > now()) return inMem.v as T\r\n mem.delete(key)\r\n }\r\n\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n const raw = window.localStorage.getItem(key)\r\n if (!raw) return undefined\r\n const parsed = JSON.parse(raw) as CacheValue<T>\r\n if (parsed?.e && parsed.e > now()) {\r\n mem.set(key, parsed)\r\n return parsed.v\r\n }\r\n // expired\r\n window.localStorage.removeItem(key)\r\n }\r\n } catch {}\r\n return undefined\r\n}\r\n\r\nexport function withCache<T>(key: string, ttlMs: number, fn: () => Promise<T>): Promise<T> {\r\n const existing = getCache<T>(key)\r\n if (existing !== undefined) return Promise.resolve(existing)\r\n return fn().then((res) => {\r\n setCache(key, res, ttlMs)\r\n return res\r\n })\r\n}\r\n\r\nexport async function withServerCache<T>(key: string, ttlMs: number, fn: () => Promise<T>): Promise<T> {\r\n if (typeof window === 'undefined') {\r\n const ttlSeconds = Math.floor(ttlMs / 1000)\r\n try {\r\n const { getMemcache, setMemcache } = await import('../../../../../utils/memcache')\r\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/src/cache.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\ntype CacheValue<T> = {\r\n v: T\r\n e: number\r\n}\r\n\r\nconst NS = 'datasetCache:'\r\nconst mem = new Map<string, CacheValue<any>>()\r\n\r\nfunction now() {\r\n return Date.now()\r\n}\r\n\r\nexport function makeKey(parts: Array<string | number | null | undefined>) {\r\n return NS + parts.map((p) => String(p ?? '')).join('|')\r\n}\r\n\r\nexport function setCache<T>(key: string, value: T, ttlMs: number) {\r\n const rec: CacheValue<T> = { v: value, e: now() + ttlMs }\r\n try {\r\n mem.set(key, rec)\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n window.localStorage.setItem(key, JSON.stringify(rec))\r\n }\r\n } catch {}\r\n}\r\n\r\nexport function getCache<T>(key: string): T | undefined {\r\n try {\r\n const inMem = mem.get(key)\r\n if (inMem) {\r\n if (inMem.e > now()) return inMem.v as T\r\n mem.delete(key)\r\n }\r\n\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n const raw = window.localStorage.getItem(key)\r\n if (!raw) return undefined\r\n const parsed = JSON.parse(raw) as CacheValue<T>\r\n if (parsed?.e && parsed.e > now()) {\r\n mem.set(key, parsed)\r\n return parsed.v\r\n }\r\n // expired\r\n window.localStorage.removeItem(key)\r\n }\r\n } catch {}\r\n return undefined\r\n}\r\n\r\nexport function withCache<T>(key: string, ttlMs: number, fn: () => Promise<T>): Promise<T> {\r\n const existing = getCache<T>(key)\r\n if (existing !== undefined) return Promise.resolve(existing)\r\n return fn().then((res) => {\r\n setCache(key, res, ttlMs)\r\n return res\r\n })\r\n}\r\n\r\nexport async function withServerCache<T>(key: string, ttlMs: number, fn: () => Promise<T>): Promise<T> {\r\n if (typeof window === 'undefined') {\r\n const ttlSeconds = Math.floor(ttlMs / 1000)\r\n try {\r\n const { getMemcache, setMemcache } = await import('../../../../../utils/memcache')\r\n\r\n const cached = await getMemcache<T>(key)\r\n if (cached !== null) {\r\n setCache(key, cached, ttlMs)\r\n return cached\r\n }\r\n\r\n const localCached = getCache<T>(key)\r\n if (localCached !== undefined) {\r\n return localCached\r\n }\r\n\r\n const result = await fn()\r\n\r\n try {\r\n await setMemcache(key, result, ttlSeconds)\r\n } catch (error) {\r\n console.warn('Memcache write failed:', error)\r\n }\r\n setCache(key, result, ttlMs)\r\n\r\n return result\r\n } catch (error) {\r\n console.warn('Memcache operations failed, falling back to local cache:', error)\r\n\r\n const localCached = getCache<T>(key)\r\n if (localCached !== undefined) {\r\n return localCached\r\n }\r\n\r\n const result = await fn()\r\n setCache(key, result, ttlMs)\r\n return result\r\n }\r\n }\r\n\r\n return withCache(key, ttlMs, fn)\r\n}\r\n\r\nexport function buildValidationKey(source: string, id: string | number | undefined, version?: string | number | null) {\r\n return makeKey(['valid', source, id ?? '', version ?? ''])\r\n}\r\n"],"mappings":"AAQA,MAAM,KAAK;AACX,MAAM,MAAM,oBAAI,IAA6B;AAE7C,SAAS,MAAM;AACb,SAAO,KAAK,IAAI;AAClB;AAEO,SAAS,QAAQ,OAAkD;AACxE,SAAO,KAAK,MAAM,IAAI,CAAC,MAAM,OAAO,gBAAK,EAAE,CAAC,EAAE,KAAK,GAAG;AACxD;AAEO,SAAS,SAAY,KAAa,OAAU,OAAe;AAChE,QAAM,MAAqB,EAAE,GAAG,OAAO,GAAG,IAAI,IAAI,MAAM;AACxD,MAAI;AACF,QAAI,IAAI,KAAK,GAAG;AAChB,QAAI,OAAO,WAAW,eAAe,OAAO,cAAc;AACxD,aAAO,aAAa,QAAQ,KAAK,KAAK,UAAU,GAAG,CAAC;AAAA,IACtD;AAAA,EACF,SAAQ;AAAA,EAAC;AACX;AAEO,SAAS,SAAY,KAA4B;AACtD,MAAI;AACF,UAAM,QAAQ,IAAI,IAAI,GAAG;AACzB,QAAI,OAAO;AACT,UAAI,MAAM,IAAI,IAAI,EAAG,QAAO,MAAM;AAClC,UAAI,OAAO,GAAG;AAAA,IAChB;AAEA,QAAI,OAAO,WAAW,eAAe,OAAO,cAAc;AACxD,YAAM,MAAM,OAAO,aAAa,QAAQ,GAAG;AAC3C,UAAI,CAAC,IAAK,QAAO;AACjB,YAAM,SAAS,KAAK,MAAM,GAAG;AAC7B,WAAI,iCAAQ,MAAK,OAAO,IAAI,IAAI,GAAG;AACjC,YAAI,IAAI,KAAK,MAAM;AACnB,eAAO,OAAO;AAAA,MAChB;AAEA,aAAO,aAAa,WAAW,GAAG;AAAA,IACpC;AAAA,EACF,SAAQ;AAAA,EAAC;AACT,SAAO;AACT;AAEO,SAAS,UAAa,KAAa,OAAe,IAAkC;AACzF,QAAM,WAAW,SAAY,GAAG;AAChC,MAAI,aAAa,OAAW,QAAO,QAAQ,QAAQ,QAAQ;AAC3D,SAAO,GAAG,EAAE,KAAK,CAAC,QAAQ;AACxB,aAAS,KAAK,KAAK,KAAK;AACxB,WAAO;AAAA,EACT,CAAC;AACH;AAEA,eAAsB,gBAAmB,KAAa,OAAe,IAAkC;AACrG,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,aAAa,KAAK,MAAM,QAAQ,GAAI;AAC1C,QAAI;AACF,YAAM,EAAE,aAAa,YAAY,IAAI,MAAM,OAAO,+BAA+B;AAEjF,YAAM,SAAS,MAAM,YAAe,GAAG;AACvC,UAAI,WAAW,MAAM;AACnB,iBAAS,KAAK,QAAQ,KAAK;AAC3B,eAAO;AAAA,MACT;AAEA,YAAM,cAAc,SAAY,GAAG;AACnC,UAAI,gBAAgB,QAAW;AAC7B,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,MAAM,GAAG;AAExB,UAAI;AACF,cAAM,YAAY,KAAK,QAAQ,UAAU;AAAA,MAC3C,SAAS,OAAO;AACd,gBAAQ,KAAK,0BAA0B,KAAK;AAAA,MAC9C;AACA,eAAS,KAAK,QAAQ,KAAK;AAE3B,aAAO;AAAA,IACT,SAAS,OAAO;AACd,cAAQ,KAAK,4DAA4D,KAAK;AAE9E,YAAM,cAAc,SAAY,GAAG;AACnC,UAAI,gBAAgB,QAAW;AAC7B,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,MAAM,GAAG;AACxB,eAAS,KAAK,QAAQ,KAAK;AAC3B,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO,UAAU,KAAK,OAAO,EAAE;AACjC;AAEO,SAAS,mBAAmB,QAAgB,IAAiC,SAAkC;AACpH,SAAO,QAAQ,CAAC,SAAS,QAAQ,kBAAM,IAAI,4BAAW,EAAE,CAAC;AAC3D;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Dataset, FieldType } from '../../../../../types/datasetTypes';
|
|
2
|
-
import { OpenDataPortal } from '../../../../../types/dbTypes';
|
|
2
|
+
import type { OpenDataPortal } from '../../../../../types/dbTypes';
|
|
3
3
|
export declare function fetchCkanDatasets(portal: OpenDataPortal): Promise<Dataset[]>;
|
|
4
4
|
export interface CkanFieldTypes {
|
|
5
5
|
[key: string]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ckanDatasets.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/src/ckanDatasets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ckanDatasets.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/src/ckanDatasets.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAOlE,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,EAAE,CAAC,CA4QpB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAA;CACxD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { layerColorByName } from "../../utils/stringToColour";
|
|
1
2
|
import { formatName, stripHtml } from "../utils";
|
|
2
3
|
import { buildValidationKey, getCache, setCache, withCache } from "./cache";
|
|
3
|
-
import { layerColorByName } from "../../utils/stringToColour";
|
|
4
4
|
async function fetchCkanDatasets(portal) {
|
|
5
5
|
const { apiUrl, countrySubdivision, municipality, group } = portal;
|
|
6
6
|
const isServer = typeof window === "undefined";
|
|
@@ -122,12 +122,9 @@ async function fetchCkanDatasets(portal) {
|
|
|
122
122
|
return [];
|
|
123
123
|
};
|
|
124
124
|
const getFeatures = async () => {
|
|
125
|
-
var _a2, _b2;
|
|
126
125
|
const featuresKey = `features:ckan:${geoJsonResource.id}:${pkg.metadata_modified || pkg.metadata_created || ""}`;
|
|
127
126
|
const cached = getCache(featuresKey);
|
|
128
127
|
if (cached) {
|
|
129
|
-
const cachedCount = "features" in cached ? (_b2 = (_a2 = cached.features) == null ? void 0 : _a2.length) != null ? _b2 : 0 : 0;
|
|
130
|
-
console.log(`\u2705 CKAN getFeatures: Returning ${cachedCount} cached features for "${pkg.name}"`);
|
|
131
128
|
return cached;
|
|
132
129
|
}
|
|
133
130
|
const limit = 5e3;
|
|
@@ -145,10 +142,10 @@ async function fetchCkanDatasets(portal) {
|
|
|
145
142
|
let featuresCollection;
|
|
146
143
|
if (data2.result && Array.isArray(data2.result.records)) {
|
|
147
144
|
const features = data2.result.records.map((properties) => {
|
|
148
|
-
var
|
|
145
|
+
var _a2;
|
|
149
146
|
try {
|
|
150
147
|
let geometry;
|
|
151
|
-
geometry = ((
|
|
148
|
+
geometry = ((_a2 = properties.geometry) == null ? void 0 : _a2.type) ? properties.geometry : JSON.parse(properties.geometry);
|
|
152
149
|
return {
|
|
153
150
|
type: "Feature",
|
|
154
151
|
geometry,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/src/ckanDatasets.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport type { Dataset, FieldType } from '../../../../../types/datasetTypes'\r\nimport { formatName, stripHtml } from '../utils'\r\nimport type { AllGeoJSON } from '@turf/turf'\r\nimport { buildValidationKey, getCache, setCache, withCache } from './cache'\r\nimport { layerColorByName } from '../../utils/stringToColour'\r\nimport { OpenDataPortal } from '../../../../../types/dbTypes'\r\n\r\n// Fetch CKAN GeoJSON datasets and transform to Dataset array\r\nexport async function fetchCkanDatasets(\r\n portal: OpenDataPortal,\r\n): Promise<Dataset[]> {\r\n const { apiUrl, countrySubdivision, municipality, group } = portal\r\n const isServer = typeof window === 'undefined'\r\n\r\n const buildUrl = (target: string) => {\r\n if (isServer) {\r\n return target\r\n }\r\n\r\n const proxied = `/api/ckanProxy?url=${encodeURIComponent(target)}`\r\n return proxied\r\n }\r\n\r\n // https://www.donneesquebec.ca/recherche/dataset/?sort=metadata_created+desc&_organization_limit=0&res_format=GeoJSON\r\n\r\n try {\r\n // Use your local API route to proxy the CKAN request when on the client\r\n const geoJsonListTarget = `${apiUrl}/api/3/action/package_search?fq=res_format:(geojson OR GeoJSON)&rows=100000`\r\n const response = await fetch(buildUrl(geoJsonListTarget))\r\n\r\n if (!response.ok) {\r\n return []\r\n }\r\n\r\n const data = await response.json()\r\n\r\n if (!data.success || !data.result || !Array.isArray(data.result.results)) {\r\n throw new Error('Invalid CKAN response structure')\r\n }\r\n\r\n const transformedDatasets: Dataset[] = (\r\n await Promise.all(\r\n data.result.results.map(async (pkg: any) => {\r\n // Find first GeoJSON resource\r\n const geoJsonResource = pkg.resources?.find(\r\n (resource: any) => resource.format?.toLowerCase() === 'geojson',\r\n )\r\n\r\n // Exclude if no GeoJSON resource\r\n if (!geoJsonResource) return\r\n\r\n // Exclude if not active\r\n const datastore = geoJsonResource.datastore_active?.toString().toLowerCase() === 'true'\r\n const isActive = datastore || geoJsonResource.state === 'active'\r\n if (!(datastore && geoJsonResource.url && isActive)) return\r\n\r\n // Determine the correct URL based on your working method\r\n let resourceUrl: string | null = null\r\n let resourceTarget: string | null = null\r\n let fieldsUrl: string | null = null\r\n\r\n if (datastore) {\r\n resourceTarget = `${apiUrl}/api/3/action/datastore_search?resource_id=${geoJsonResource.id}&limit=1000000`\r\n resourceUrl = buildUrl(resourceTarget)\r\n fieldsUrl = buildUrl(`${apiUrl}/api/3/action/datastore_search?resource_id=${geoJsonResource.id}&limit=0`)\r\n }\r\n else {\r\n resourceTarget = geoJsonResource.url\r\n resourceUrl = resourceTarget ? buildUrl(resourceTarget) : null\r\n }\r\n\r\n try {\r\n const sampleTarget = resourceTarget?.includes('datastore_search')\r\n ? resourceTarget.replace('limit=1000000', 'limit=1')\r\n : resourceTarget\r\n const sampleUrl = sampleTarget\r\n ? (sampleTarget.includes('limit=') ? buildUrl(sampleTarget) : buildUrl(`${sampleTarget}?limit=1`))\r\n : null\r\n\r\n if (sampleUrl) {\r\n const validKey = buildValidationKey('ckan', pkg.id, pkg.metadata_modified || pkg.metadata_created || undefined)\r\n const isValid = await withCache<boolean>(validKey, 24 * 60 * 60 * 1000, async () => {\r\n const sampleRes = await fetch(sampleUrl)\r\n if (sampleRes.ok) {\r\n const sample = await sampleRes.json()\r\n if (sample?.error) {\r\n const code = sample.error.code\r\n const msg = `${sample.error.message || ''} ${sample.error.messageCode || ''}`\r\n if (code === 499 || code === 504 || /token required|unauthorized|forbidden|timed out/i.test(msg)) return false\r\n }\r\n let hasGeom = true\r\n if (sample?.result?.records) {\r\n const rec = sample.result.records[0]\r\n const geom = rec?.geometry || (typeof rec?.geometry === 'string' ? JSON.parse(rec.geometry) : undefined)\r\n hasGeom = !!geom\r\n }\r\n else if (Array.isArray(sample?.features)) {\r\n hasGeom = sample.features.some((f: any) => f && f.geometry)\r\n }\r\n return !!hasGeom\r\n } else if ([401, 403, 504].includes(sampleRes.status)) {\r\n return false\r\n }\r\n return false\r\n })\r\n if (!isValid) return\r\n }\r\n }\r\n catch {\r\n }\r\n\r\n const getFeaturesData = async () => {\r\n if (resourceUrl) {\r\n try {\r\n const response = await fetch(fieldsUrl ?? resourceUrl)\r\n if (!response.ok) {\r\n console.error('Network response was not ok:', response.status)\r\n return\r\n }\r\n return await response.json()\r\n }\r\n catch (error) {\r\n console.error('Error fetching features data:', error)\r\n return\r\n }\r\n }\r\n }\r\n\r\n const getFields = async () => {\r\n if (fieldsUrl) {\r\n try {\r\n const fieldsKey = `fields:ckan:${geoJsonResource.id}:${pkg.metadata_modified || pkg.metadata_created || ''}`\r\n const cached = getCache<any[]>(fieldsKey)\r\n if (cached) return cached\r\n const dsRes = await fetch(fieldsUrl)\r\n if (dsRes.ok) {\r\n const dsData = await dsRes.json()\r\n const fields = (\r\n dsData.result.fields?.map((field: any) => ({\r\n name: field.id,\r\n type: ckanFieldTypes[field.type]?.type || field.type,\r\n ckanType: field.type,\r\n description: field.info || '',\r\n })) || []\r\n )\r\n setCache(fieldsKey, fields, 24 * 60 * 60 * 1000)\r\n return fields\r\n }\r\n }\r\n catch {\r\n return []\r\n }\r\n }\r\n return []\r\n }\r\n\r\n const getFeatures: () => Promise<AllGeoJSON> = async () => {\r\n // Check cache first\r\n const featuresKey = `features:ckan:${geoJsonResource.id}:${pkg.metadata_modified || pkg.metadata_created || ''}`\r\n const cached = getCache<AllGeoJSON>(featuresKey)\r\n if (cached) {\r\n const cachedCount = 'features' in cached ? cached.features?.length ?? 0 : 0\r\n console.log(`✅ CKAN getFeatures: Returning ${cachedCount} cached features for \"${pkg.name}\"`)\r\n return cached\r\n }\r\n\r\n const limit = 5_000\r\n const url2 = resourceUrl?.includes('datastore_search')\r\n ? `${resourceUrl}&limit=${limit}`\r\n : resourceUrl\r\n\r\n try {\r\n const response = await fetch(url2)\r\n if (!response.ok) {\r\n console.error('CKAN: Network response was not ok:', response.status)\r\n return {\r\n type: 'FeatureCollection',\r\n features: [],\r\n } as AllGeoJSON\r\n }\r\n const data = await response.json()\r\n let featuresCollection: AllGeoJSON | undefined\r\n\r\n if (data.result && Array.isArray(data.result.records)) {\r\n // CKAN Datastore: build FeatureCollection from records\r\n const features = data.result.records\r\n .map((properties: any) => {\r\n try {\r\n let geometry\r\n geometry = properties.geometry?.type ? properties.geometry : JSON.parse(properties.geometry)\r\n\r\n return {\r\n type: 'Feature',\r\n geometry,\r\n properties,\r\n }\r\n }\r\n catch {\r\n return null\r\n }\r\n })\r\n .filter((f: any) => f !== null)\r\n\r\n featuresCollection = {\r\n type: 'FeatureCollection',\r\n features,\r\n }\r\n }\r\n else if (\r\n data.type === 'FeatureCollection'\r\n && Array.isArray(data.features)\r\n ) {\r\n // Already a FeatureCollection\r\n featuresCollection = data\r\n }\r\n else {\r\n console.error(\r\n 'CKAN: No features available or unexpected response:',\r\n data,\r\n )\r\n return {\r\n type: 'FeatureCollection',\r\n features: [],\r\n } as AllGeoJSON\r\n }\r\n\r\n // Cache the result for 1 hour\r\n if (featuresCollection) {\r\n setCache(featuresKey, featuresCollection, 60 * 60 * 1000)\r\n }\r\n\r\n return featuresCollection\r\n }\r\n catch (error) {\r\n console.error('CKAN: Error processing dataset:', error)\r\n return {\r\n type: 'FeatureCollection',\r\n features: [],\r\n } as AllGeoJSON\r\n }\r\n }\r\n\r\n const name = formatName(pkg.title || pkg.name)\r\n\r\n return {\r\n id: pkg.id,\r\n name,\r\n url: fieldsUrl,\r\n publisher:\r\n pkg.organization?.title || pkg.organization?.name || 'Unknown',\r\n dataManagementSystem: 'ckan',\r\n license: pkg.license_title || pkg.license_id || 'Unknown',\r\n contact: pkg.author || pkg.maintainer || 'Unknown',\r\n keywords: pkg.tags?.map((tag: any) => tag.name) || [],\r\n description: pkg.notes\r\n ? stripHtml(pkg.notes)\r\n : 'No description available',\r\n dateReleased: pkg.metadata_created || '',\r\n dateUpdated: pkg.metadata_modified || '',\r\n information: pkg.information_url || '',\r\n countrySubdivision,\r\n municipality,\r\n type: pkg.type || 'GeoJSON',\r\n portal,\r\n getFields,\r\n getFeatures,\r\n getFeaturesData,\r\n group,\r\n layerColor: layerColorByName(name),\r\n }\r\n }),\r\n )\r\n ).filter(Boolean) // Remove nulls (excluded datasets)\r\n\r\n return transformedDatasets\r\n }\r\n catch (error) {\r\n console.error('Error fetching CKAN GeoJSON datasets:', error)\r\n return []\r\n }\r\n}\r\n\r\nexport interface CkanFieldTypes {\r\n [key: string]: { description: string, type: FieldType }\r\n}\r\n\r\nfunction ckanFieldTypes(): CkanFieldTypes {\r\n return {\r\n text: { description: 'Text', type: 'string' },\r\n int: { description: 'Integer', type: 'number' },\r\n float: { description: 'Float', type: 'number' },\r\n bool: { description: 'Boolean', type: 'boolean' },\r\n date: { description: 'Date', type: 'datetime' },\r\n timestamp: { description: 'Timestamp', type: 'datetime' },\r\n json: { description: 'JSON', type: 'object' },\r\n // Add more CKAN field types as needed\r\n }\r\n}\r\n"],"mappings":"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","names":["_a","response","_b","data"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/core/components/viewers/map/datasets/src/ckanDatasets.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport { layerColorByName } from '../../utils/stringToColour'\r\nimport { formatName, stripHtml } from '../utils'\r\n\r\nimport { buildValidationKey, getCache, setCache, withCache } from './cache'\r\n\r\nimport type { Dataset, FieldType } from '../../../../../types/datasetTypes'\r\nimport type { OpenDataPortal } from '../../../../../types/dbTypes'\r\nimport type { AllGeoJSON } from '@turf/turf'\r\n\r\n\r\n\r\n\r\n// Fetch CKAN GeoJSON datasets and transform to Dataset array\r\nexport async function fetchCkanDatasets(\r\n portal: OpenDataPortal,\r\n): Promise<Dataset[]> {\r\n const { apiUrl, countrySubdivision, municipality, group } = portal\r\n const isServer = typeof window === 'undefined'\r\n\r\n const buildUrl = (target: string) => {\r\n if (isServer) {\r\n return target\r\n }\r\n\r\n const proxied = `/api/ckanProxy?url=${encodeURIComponent(target)}`\r\n return proxied\r\n }\r\n\r\n // https://www.donneesquebec.ca/recherche/dataset/?sort=metadata_created+desc&_organization_limit=0&res_format=GeoJSON\r\n\r\n try {\r\n // Use your local API route to proxy the CKAN request when on the client\r\n const geoJsonListTarget = `${apiUrl}/api/3/action/package_search?fq=res_format:(geojson OR GeoJSON)&rows=100000`\r\n const response = await fetch(buildUrl(geoJsonListTarget))\r\n\r\n if (!response.ok) {\r\n return []\r\n }\r\n\r\n const data = await response.json()\r\n\r\n if (!data.success || !data.result || !Array.isArray(data.result.results)) {\r\n throw new Error('Invalid CKAN response structure')\r\n }\r\n\r\n const transformedDatasets: Dataset[] = (\r\n await Promise.all(\r\n data.result.results.map(async (pkg: any) => {\r\n // Find first GeoJSON resource\r\n const geoJsonResource = pkg.resources?.find(\r\n (resource: any) => resource.format?.toLowerCase() === 'geojson',\r\n )\r\n\r\n // Exclude if no GeoJSON resource\r\n if (!geoJsonResource) return\r\n\r\n // Exclude if not active\r\n const datastore = geoJsonResource.datastore_active?.toString().toLowerCase() === 'true'\r\n const isActive = datastore || geoJsonResource.state === 'active'\r\n if (!(datastore && geoJsonResource.url && isActive)) return\r\n\r\n // Determine the correct URL based on your working method\r\n let resourceUrl: string | null = null\r\n let resourceTarget: string | null = null\r\n let fieldsUrl: string | null = null\r\n\r\n if (datastore) {\r\n resourceTarget = `${apiUrl}/api/3/action/datastore_search?resource_id=${geoJsonResource.id}&limit=1000000`\r\n resourceUrl = buildUrl(resourceTarget)\r\n fieldsUrl = buildUrl(`${apiUrl}/api/3/action/datastore_search?resource_id=${geoJsonResource.id}&limit=0`)\r\n }\r\n else {\r\n resourceTarget = geoJsonResource.url\r\n resourceUrl = resourceTarget ? buildUrl(resourceTarget) : null\r\n }\r\n\r\n try {\r\n const sampleTarget = resourceTarget?.includes('datastore_search')\r\n ? resourceTarget.replace('limit=1000000', 'limit=1')\r\n : resourceTarget\r\n const sampleUrl = sampleTarget\r\n ? (sampleTarget.includes('limit=') ? buildUrl(sampleTarget) : buildUrl(`${sampleTarget}?limit=1`))\r\n : null\r\n\r\n if (sampleUrl) {\r\n const validKey = buildValidationKey('ckan', pkg.id, pkg.metadata_modified || pkg.metadata_created || undefined)\r\n const isValid = await withCache<boolean>(validKey, 24 * 60 * 60 * 1000, async () => {\r\n const sampleRes = await fetch(sampleUrl)\r\n if (sampleRes.ok) {\r\n const sample = await sampleRes.json()\r\n if (sample?.error) {\r\n const code = sample.error.code\r\n const msg = `${sample.error.message || ''} ${sample.error.messageCode || ''}`\r\n if (code === 499 || code === 504 || /token required|unauthorized|forbidden|timed out/i.test(msg)) return false\r\n }\r\n let hasGeom = true\r\n if (sample?.result?.records) {\r\n const rec = sample.result.records[0]\r\n const geom = rec?.geometry || (typeof rec?.geometry === 'string' ? JSON.parse(rec.geometry) : undefined)\r\n hasGeom = !!geom\r\n }\r\n else if (Array.isArray(sample?.features)) {\r\n hasGeom = sample.features.some((f: any) => f && f.geometry)\r\n }\r\n return !!hasGeom\r\n } else if ([401, 403, 504].includes(sampleRes.status)) {\r\n return false\r\n }\r\n return false\r\n })\r\n if (!isValid) return\r\n }\r\n }\r\n catch {\r\n }\r\n\r\n const getFeaturesData = async () => {\r\n if (resourceUrl) {\r\n try {\r\n const response = await fetch(fieldsUrl ?? resourceUrl)\r\n if (!response.ok) {\r\n console.error('Network response was not ok:', response.status)\r\n return\r\n }\r\n return await response.json()\r\n }\r\n catch (error) {\r\n console.error('Error fetching features data:', error)\r\n return\r\n }\r\n }\r\n }\r\n\r\n const getFields = async () => {\r\n if (fieldsUrl) {\r\n try {\r\n const fieldsKey = `fields:ckan:${geoJsonResource.id}:${pkg.metadata_modified || pkg.metadata_created || ''}`\r\n const cached = getCache<any[]>(fieldsKey)\r\n if (cached) return cached\r\n const dsRes = await fetch(fieldsUrl)\r\n if (dsRes.ok) {\r\n const dsData = await dsRes.json()\r\n const fields = (\r\n dsData.result.fields?.map((field: any) => ({\r\n name: field.id,\r\n type: ckanFieldTypes[field.type]?.type || field.type,\r\n ckanType: field.type,\r\n description: field.info || '',\r\n })) || []\r\n )\r\n setCache(fieldsKey, fields, 24 * 60 * 60 * 1000)\r\n return fields\r\n }\r\n }\r\n catch {\r\n return []\r\n }\r\n }\r\n return []\r\n }\r\n\r\n const getFeatures: () => Promise<AllGeoJSON> = async () => {\r\n // Check cache first\r\n const featuresKey = `features:ckan:${geoJsonResource.id}:${pkg.metadata_modified || pkg.metadata_created || ''}`\r\n const cached = getCache<AllGeoJSON>(featuresKey)\r\n if (cached) {\r\n return cached\r\n }\r\n\r\n const limit = 5_000\r\n const url2 = resourceUrl?.includes('datastore_search')\r\n ? `${resourceUrl}&limit=${limit}`\r\n : resourceUrl\r\n\r\n try {\r\n const response = await fetch(url2)\r\n if (!response.ok) {\r\n console.error('CKAN: Network response was not ok:', response.status)\r\n return {\r\n type: 'FeatureCollection',\r\n features: [],\r\n } as AllGeoJSON\r\n }\r\n const data = await response.json()\r\n let featuresCollection: AllGeoJSON | undefined\r\n\r\n if (data.result && Array.isArray(data.result.records)) {\r\n // CKAN Datastore: build FeatureCollection from records\r\n const features = data.result.records\r\n .map((properties: any) => {\r\n try {\r\n let geometry\r\n geometry = properties.geometry?.type ? properties.geometry : JSON.parse(properties.geometry)\r\n\r\n return {\r\n type: 'Feature',\r\n geometry,\r\n properties,\r\n }\r\n }\r\n catch {\r\n return null\r\n }\r\n })\r\n .filter((f: any) => f !== null)\r\n\r\n featuresCollection = {\r\n type: 'FeatureCollection',\r\n features,\r\n }\r\n }\r\n else if (\r\n data.type === 'FeatureCollection'\r\n && Array.isArray(data.features)\r\n ) {\r\n // Already a FeatureCollection\r\n featuresCollection = data\r\n }\r\n else {\r\n console.error(\r\n 'CKAN: No features available or unexpected response:',\r\n data,\r\n )\r\n return {\r\n type: 'FeatureCollection',\r\n features: [],\r\n } as AllGeoJSON\r\n }\r\n\r\n // Cache the result for 1 hour\r\n if (featuresCollection) {\r\n setCache(featuresKey, featuresCollection, 60 * 60 * 1000)\r\n }\r\n\r\n return featuresCollection\r\n }\r\n catch (error) {\r\n console.error('CKAN: Error processing dataset:', error)\r\n return {\r\n type: 'FeatureCollection',\r\n features: [],\r\n } as AllGeoJSON\r\n }\r\n }\r\n\r\n const name = formatName(pkg.title || pkg.name)\r\n\r\n return {\r\n id: pkg.id,\r\n name,\r\n url: fieldsUrl,\r\n publisher:\r\n pkg.organization?.title || pkg.organization?.name || 'Unknown',\r\n dataManagementSystem: 'ckan',\r\n license: pkg.license_title || pkg.license_id || 'Unknown',\r\n contact: pkg.author || pkg.maintainer || 'Unknown',\r\n keywords: pkg.tags?.map((tag: any) => tag.name) || [],\r\n description: pkg.notes\r\n ? stripHtml(pkg.notes)\r\n : 'No description available',\r\n dateReleased: pkg.metadata_created || '',\r\n dateUpdated: pkg.metadata_modified || '',\r\n information: pkg.information_url || '',\r\n countrySubdivision,\r\n municipality,\r\n type: pkg.type || 'GeoJSON',\r\n portal,\r\n getFields,\r\n getFeatures,\r\n getFeaturesData,\r\n group,\r\n layerColor: layerColorByName(name),\r\n }\r\n }),\r\n )\r\n ).filter(Boolean) // Remove nulls (excluded datasets)\r\n\r\n return transformedDatasets\r\n }\r\n catch (error) {\r\n console.error('Error fetching CKAN GeoJSON datasets:', error)\r\n return []\r\n }\r\n}\r\n\r\nexport interface CkanFieldTypes {\r\n [key: string]: { description: string, type: FieldType }\r\n}\r\n\r\nfunction ckanFieldTypes(): CkanFieldTypes {\r\n return {\r\n text: { description: 'Text', type: 'string' },\r\n int: { description: 'Integer', type: 'number' },\r\n float: { description: 'Float', type: 'number' },\r\n bool: { description: 'Boolean', type: 'boolean' },\r\n date: { description: 'Date', type: 'datetime' },\r\n timestamp: { description: 'Timestamp', type: 'datetime' },\r\n json: { description: 'JSON', type: 'object' },\r\n // Add more CKAN field types as needed\r\n }\r\n}\r\n"],"mappings":"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","names":["_a","response","data"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Dataset } from '../../../../../types/datasetTypes';
|
|
2
1
|
import { type OpenDataPortal } from '../../../../../types/dbTypes';
|
|
2
|
+
import type { Dataset } from '../../../../../types/datasetTypes';
|
|
3
3
|
export declare function fetchLocalDatasets(portal: OpenDataPortal): Promise<Dataset[]>;
|
|
4
4
|
//# sourceMappingURL=localDatasets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localDatasets.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/src/localDatasets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"localDatasets.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/components/viewers/map/datasets/src/localDatasets.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAOhF,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,mCAAmC,CAAA;AAuZ9F,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,EAAE,CAAC,CA+LpB"}
|
|
@@ -17,11 +17,11 @@ var __spreadValues = (a, b) => {
|
|
|
17
17
|
return a;
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
import {
|
|
20
|
+
import { VectorTile } from "@mapbox/vector-tile";
|
|
21
|
+
import Pbf from "pbf";
|
|
21
22
|
import { DatasetGroup } from "../../../../../types/dbTypes";
|
|
22
23
|
import { layerColorByName } from "../../utils/stringToColour";
|
|
23
|
-
import
|
|
24
|
-
import { VectorTile } from "@mapbox/vector-tile";
|
|
24
|
+
import { formatName } from "../utils";
|
|
25
25
|
import { getCache, setCache } from "./cache";
|
|
26
26
|
import { isPublishedOrgTable, buildPublishedTileDatasets } from "./publishedTiles";
|
|
27
27
|
const ORGANIZATION_FIELD = "organization";
|
|
@@ -185,7 +185,6 @@ async function fetchMartinServerDatasets(portal) {
|
|
|
185
185
|
return [];
|
|
186
186
|
}
|
|
187
187
|
try {
|
|
188
|
-
console.log("Fetching Martin server catalog from:", martinServerUrl);
|
|
189
188
|
const { indexUrl, tileBaseUrl, fallbackCatalogUrl } = resolveMartinUrls(martinServerUrl);
|
|
190
189
|
const publishedLabels = await fetchPublishedTileLabels();
|
|
191
190
|
let response = await fetch(indexUrl);
|
|
@@ -198,7 +197,6 @@ async function fetchMartinServerDatasets(portal) {
|
|
|
198
197
|
}
|
|
199
198
|
const catalog = await response.json();
|
|
200
199
|
const tiles = normalizeMartinCatalog(catalog, tileBaseUrl).filter((t) => !isPublishedOrgTable(t.tileName) && t.tileName !== "cdt_tiles");
|
|
201
|
-
console.log("Martin catalog received:", tiles.length, "tiles");
|
|
202
200
|
const datasets = await Promise.all(tiles.map(async (tileInfo) => {
|
|
203
201
|
const publishedLabel = publishedLabels.get(tileInfo.tileName);
|
|
204
202
|
const cleanName = publishedLabel != null ? publishedLabel : formatName(
|
|
@@ -263,7 +261,6 @@ async function fetchMartinServerDatasets(portal) {
|
|
|
263
261
|
};
|
|
264
262
|
return dataset;
|
|
265
263
|
}));
|
|
266
|
-
console.log(`Transformed ${datasets.length} Martin datasets`);
|
|
267
264
|
let publishedDatasets = [];
|
|
268
265
|
try {
|
|
269
266
|
const fileRes = await fetch("/api/files");
|