@collabdt/core 0.0.50 → 0.0.53
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/NOTICE +1021 -0
- package/README.md +32 -4
- package/dist/core/components/AppSidebarContent.d.ts.map +1 -1
- package/dist/core/components/AppSidebarContent.js.map +1 -1
- package/dist/core/components/ConfirmDialog.d.ts.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.map +1 -1
- package/dist/core/components/Logo.d.ts.map +1 -1
- package/dist/core/components/Logo.js.map +1 -1
- package/dist/core/components/Toolbar.d.ts.map +1 -1
- package/dist/core/components/Toolbar.js.map +1 -1
- package/dist/core/components/ToolbarBody.d.ts.map +1 -1
- package/dist/core/components/ToolbarBody.js.map +1 -1
- package/dist/core/components/ToolbarSubmenu.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/authentication/AuthPage.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/authentication/PasswordError.d.ts.map +1 -1
- package/dist/core/components/authentication/PasswordError.js.map +1 -1
- package/dist/core/components/authentication/Signin.d.ts.map +1 -1
- package/dist/core/components/authentication/Signin.js.map +1 -1
- package/dist/core/components/authentication/SigninEmail.d.ts.map +1 -1
- package/dist/core/components/authentication/SigninEmail.js.map +1 -1
- package/dist/core/components/authentication/Signup.d.ts.map +1 -1
- package/dist/core/components/authentication/Signup.js.map +1 -1
- package/dist/core/components/authentication/VerifyEmail.d.ts.map +1 -1
- package/dist/core/components/authentication/VerifyEmail.js.map +1 -1
- package/dist/core/components/authentication/index.d.ts.map +1 -1
- package/dist/core/components/authentication/index.js.map +1 -1
- package/dist/core/components/index.d.ts +1 -0
- package/dist/core/components/index.d.ts.map +1 -1
- package/dist/core/components/index.js +1 -0
- package/dist/core/components/index.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.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.map +1 -1
- package/dist/core/components/organizationConfig/index.d.ts +2 -0
- package/dist/core/components/organizationConfig/index.d.ts.map +1 -0
- package/dist/core/components/organizationConfig/index.js +66 -0
- package/dist/core/components/organizationConfig/index.js.map +1 -0
- package/dist/core/components/organizationConfig/src/organizationConfigContent.d.ts +2 -0
- package/dist/core/components/organizationConfig/src/organizationConfigContent.d.ts.map +1 -0
- package/dist/core/components/organizationConfig/src/organizationConfigContent.js +229 -0
- package/dist/core/components/organizationConfig/src/organizationConfigContent.js.map +1 -0
- package/dist/core/components/settings/index.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/settings/src/ChangePassword.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/settings/src/OrganizationSkeleton.d.ts.map +1 -1
- package/dist/core/components/settings/src/OrganizationSkeleton.js.map +1 -1
- package/dist/core/components/settings/src/SettingsContent.d.ts.map +1 -1
- package/dist/core/components/settings/src/SettingsContent.js.map +1 -1
- package/dist/core/components/settings/src/SettingsHeader.d.ts.map +1 -1
- package/dist/core/components/settings/src/SettingsHeader.js.map +1 -1
- package/dist/core/components/settings/src/SettingsSidebar.d.ts.map +1 -1
- package/dist/core/components/settings/src/SettingsSidebar.js.map +1 -1
- package/dist/core/components/settings/src/SettingsSkeleton.d.ts.map +1 -1
- package/dist/core/components/settings/src/SettingsSkeleton.js.map +1 -1
- package/dist/core/components/settings/src/UsersSettingsPanel.d.ts.map +1 -1
- package/dist/core/components/settings/src/UsersSettingsPanel.js.map +1 -1
- package/dist/core/components/settings/src/types.d.ts.map +1 -1
- package/dist/core/components/ui/Accordion.d.ts.map +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.map +1 -1
- package/dist/core/components/ui/AlertDialog.d.ts.map +1 -1
- package/dist/core/components/ui/AlertDialog.js.map +1 -1
- package/dist/core/components/ui/AnimatedBackground.d.ts.map +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 +30 -15
- package/dist/core/components/ui/AppSidebar.js.map +1 -1
- package/dist/core/components/ui/Avatar.d.ts.map +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.map +1 -1
- package/dist/core/components/ui/Button.d.ts.map +1 -1
- package/dist/core/components/ui/Button.js.map +1 -1
- package/dist/core/components/ui/Calendar.d.ts.map +1 -1
- package/dist/core/components/ui/Calendar.js.map +1 -1
- package/dist/core/components/ui/Card.d.ts.map +1 -1
- package/dist/core/components/ui/Card.js.map +1 -1
- package/dist/core/components/ui/Checkbox.d.ts.map +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.map +1 -1
- package/dist/core/components/ui/ColorCircle.d.ts.map +1 -1
- package/dist/core/components/ui/ColorCircle.js.map +1 -1
- package/dist/core/components/ui/Command.d.ts.map +1 -1
- package/dist/core/components/ui/Command.js.map +1 -1
- package/dist/core/components/ui/Comments/CollapsibleCommentItem.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/CollapsibleCommentItem.js.map +1 -1
- package/dist/core/components/ui/Comments/Comment.d.ts.map +1 -1
- package/dist/core/components/ui/Comments/Comment.js.map +1 -1
- package/dist/core/components/ui/Comments/CommentInput.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/ui/Comments/commentUtils.d.ts.map +1 -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.map +1 -1
- package/dist/core/components/ui/DataTable.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/ui/DescriptionList.d.ts.map +1 -1
- package/dist/core/components/ui/DescriptionList.js.map +1 -1
- package/dist/core/components/ui/Dialog.d.ts.map +1 -1
- package/dist/core/components/ui/Dialog.js.map +1 -1
- package/dist/core/components/ui/DropdownMenu.d.ts.map +1 -1
- package/dist/core/components/ui/DropdownMenu.js.map +1 -1
- package/dist/core/components/ui/ExportData.d.ts.map +1 -1
- package/dist/core/components/ui/ExportData.js.map +1 -1
- package/dist/core/components/ui/FilesManager/index.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/index.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.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.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.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.map +1 -1
- package/dist/core/components/ui/FilesManager/src/downloadUtils.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useCommonFileUpload.d.ts.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.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileActions.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.d.ts.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileDeleteHandler.js.map +1 -1
- package/dist/core/components/ui/FilesManager/src/useFileUploadHandler.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/ui/Footer.d.ts.map +1 -1
- package/dist/core/components/ui/Footer.js.map +1 -1
- package/dist/core/components/ui/GenericTool.d.ts.map +1 -1
- package/dist/core/components/ui/GenericTool.js.map +1 -1
- package/dist/core/components/ui/Icons/BcfIcon.d.ts.map +1 -1
- package/dist/core/components/ui/Icons/BcfIcon.js.map +1 -1
- package/dist/core/components/ui/Icons/CdtIcon.d.ts.map +1 -1
- package/dist/core/components/ui/Icons/CdtIcon.js.map +1 -1
- package/dist/core/components/ui/Icons/FloorPlanIcon.d.ts.map +1 -1
- package/dist/core/components/ui/Icons/FloorPlanIcon.js.map +1 -1
- package/dist/core/components/ui/Icons/GoogleIcon.d.ts.map +1 -1
- package/dist/core/components/ui/Icons/GoogleIcon.js.map +1 -1
- package/dist/core/components/ui/Icons/IdsIcon.d.ts.map +1 -1
- package/dist/core/components/ui/Icons/IdsIcon.js.map +1 -1
- package/dist/core/components/ui/Icons/IfcIcon.d.ts.map +1 -1
- package/dist/core/components/ui/Icons/IfcIcon.js.map +1 -1
- package/dist/core/components/ui/Icons/index.d.ts.map +1 -1
- package/dist/core/components/ui/Icons/index.js.map +1 -1
- package/dist/core/components/ui/InfoSidebar/Container.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/ui/InfoSidebar/index.d.ts.map +1 -1
- package/dist/core/components/ui/InfoSidebar/index.js.map +1 -1
- package/dist/core/components/ui/Input.d.ts.map +1 -1
- package/dist/core/components/ui/Input.js.map +1 -1
- package/dist/core/components/ui/Label.d.ts.map +1 -1
- package/dist/core/components/ui/Label.js.map +1 -1
- package/dist/core/components/ui/LanguageToggle.d.ts.map +1 -1
- package/dist/core/components/ui/LanguageToggle.js.map +1 -1
- package/dist/core/components/ui/LoadingSpinner.d.ts.map +1 -1
- package/dist/core/components/ui/LoadingSpinner.js.map +1 -1
- package/dist/core/components/ui/Menubar.d.ts.map +1 -1
- package/dist/core/components/ui/Menubar.js.map +1 -1
- package/dist/core/components/ui/NavUser.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/ui/Popover.d.ts.map +1 -1
- package/dist/core/components/ui/Popover.js.map +1 -1
- package/dist/core/components/ui/Progress.d.ts.map +1 -1
- package/dist/core/components/ui/Progress.js.map +1 -1
- package/dist/core/components/ui/ScrollArea.d.ts.map +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.map +1 -1
- package/dist/core/components/ui/Select.d.ts.map +1 -1
- package/dist/core/components/ui/Select.js.map +1 -1
- package/dist/core/components/ui/Sensors/CollapsibleSensorItem.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/CollapsibleSensorItem.js.map +1 -1
- package/dist/core/components/ui/Sensors/Sensor.d.ts.map +1 -1
- package/dist/core/components/ui/Sensors/Sensor.js.map +1 -1
- package/dist/core/components/ui/Sensors/SensorChart.d.ts.map +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.map +1 -1
- package/dist/core/components/ui/Sensors/SensorTagsSection.d.ts.map +1 -1
- 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.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.map +1 -1
- package/dist/core/components/ui/Sensors/sensorUtils.js.map +1 -1
- package/dist/core/components/ui/Separator.d.ts.map +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.map +1 -1
- package/dist/core/components/ui/ShareFeature/QRCodeWithLink.d.ts.map +1 -1
- package/dist/core/components/ui/ShareFeature/QRCodeWithLink.js.map +1 -1
- package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.d.ts.map +1 -1
- package/dist/core/components/ui/ShareFeature/ShareToolSubmenu.js.map +1 -1
- package/dist/core/components/ui/ShareFeature/index.d.ts.map +1 -1
- package/dist/core/components/ui/ShareFeature/index.js.map +1 -1
- package/dist/core/components/ui/Sheet.d.ts.map +1 -1
- package/dist/core/components/ui/Sheet.js.map +1 -1
- package/dist/core/components/ui/Sidebar.d.ts.map +1 -1
- package/dist/core/components/ui/Sidebar.js.map +1 -1
- package/dist/core/components/ui/Skeleton.d.ts.map +1 -1
- package/dist/core/components/ui/Skeleton.js.map +1 -1
- package/dist/core/components/ui/Slider.d.ts.map +1 -1
- package/dist/core/components/ui/Slider.js.map +1 -1
- package/dist/core/components/ui/Sonner.d.ts.map +1 -1
- package/dist/core/components/ui/Sonner.js.map +1 -1
- package/dist/core/components/ui/Switch.d.ts.map +1 -1
- package/dist/core/components/ui/Switch.js.map +1 -1
- package/dist/core/components/ui/Table.d.ts.map +1 -1
- package/dist/core/components/ui/Table.js.map +1 -1
- package/dist/core/components/ui/Tabs.d.ts.map +1 -1
- package/dist/core/components/ui/Tabs.js.map +1 -1
- package/dist/core/components/ui/Textarea.d.ts.map +1 -1
- package/dist/core/components/ui/Textarea.js.map +1 -1
- package/dist/core/components/ui/Toggle.d.ts.map +1 -1
- package/dist/core/components/ui/Toggle.js.map +1 -1
- package/dist/core/components/ui/ToggleGroup.d.ts.map +1 -1
- package/dist/core/components/ui/ToggleGroup.js.map +1 -1
- package/dist/core/components/ui/ToolbarButton.d.ts.map +1 -1
- package/dist/core/components/ui/ToolbarButton.js.map +1 -1
- package/dist/core/components/ui/Tooltip.d.ts.map +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.map +1 -1
- package/dist/core/components/ui/chart.d.ts.map +1 -1
- package/dist/core/components/ui/chart.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/index.d.ts.map +1 -1
- package/dist/core/components/ui/index.js.map +1 -1
- package/dist/core/components/ui/openPopupWindow.d.ts.map +1 -1
- package/dist/core/components/ui/openPopupWindow.js.map +1 -1
- package/dist/core/components/ui/openPopupWindowLCA.d.ts.map +1 -1
- package/dist/core/components/ui/openPopupWindowLCA.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.d.ts.map +1 -1
- package/dist/core/components/ui/uploadFile.js.map +1 -1
- package/dist/core/components/viewers/Data/DataMenu.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/DataMenu.js.map +1 -1
- package/dist/core/components/viewers/Data/FilterButtons.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/FilterButtons.js.map +1 -1
- package/dist/core/components/viewers/Data/HeaderButtons.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/HeaderButtons.js.map +1 -1
- package/dist/core/components/viewers/Data/MoreOptions.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/MoreOptions.js.map +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/Filters.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/Filters.js.map +1 -1
- package/dist/core/components/viewers/Data/advancedFilter/FiltersDialog.d.ts.map +1 -1
- 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.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.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.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.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.map +1 -1
- package/dist/core/components/viewers/Data/details/AttachedFiles.js.map +1 -1
- package/dist/core/components/viewers/Data/details/CheckboxGroup.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/CheckboxGroup.js.map +1 -1
- package/dist/core/components/viewers/Data/details/DetailActions.d.ts.map +1 -1
- 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.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.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.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.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.map +1 -1
- package/dist/core/components/viewers/Data/details/UnitsGrid.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/UnitsGrid.js.map +1 -1
- package/dist/core/components/viewers/Data/details/getAttachmentFileName.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/details/getAttachmentFileName.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 -0
- 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.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.map +1 -1
- package/dist/core/components/viewers/Data/files/FilePreview.d.ts.map +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.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.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.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.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.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.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.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.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.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.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.map +1 -1
- package/dist/core/components/viewers/Data/utils/Columns.d.ts.map +1 -1
- 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/convertDate.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/utils/convertDate.js.map +1 -1
- package/dist/core/components/viewers/Data/utils/csvUtils.d.ts.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.map +1 -1
- package/dist/core/components/viewers/Data/utils/positionParser.d.ts.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.map +1 -1
- package/dist/core/components/viewers/Data/utils/useViewerData.js.map +1 -1
- package/dist/core/components/viewers/Data/utils/viewerConfig.d.ts.map +1 -1
- package/dist/core/components/viewers/Data/utils/viewerConfig.js.map +1 -1
- package/dist/core/components/viewers/Viewer.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/viewers/bim/BimViewer.d.ts.map +1 -1
- 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.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.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.map +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.map +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.map +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.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.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.map +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.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.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.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.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.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.map +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.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.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.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.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.map +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.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.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.map +1 -1
- package/dist/core/components/viewers/bim/src/CurrentCamera.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/CurrentCamera.js.map +1 -1
- package/dist/core/components/viewers/bim/src/CurrentWorld.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/CurrentWorld.js.map +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.map +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.map +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.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.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.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/index.d.ts.map +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.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.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.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/types.js.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/utils.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/FloorplanTool/src/utils.js.map +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.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.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.map +1 -1
- package/dist/core/components/viewers/bim/src/IfcToFragments.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/IfcToFragments.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.map +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.map +1 -1
- package/dist/core/components/viewers/bim/src/ModelManager/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/SimpleBimViewer.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/SimpleBimViewer.js.map +1 -1
- package/dist/core/components/viewers/bim/src/SpatialStructure.d.ts.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.map +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/CategoryHighlighter.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/CategoryHighlighter.js.map +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.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.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ViewModeCoordinator.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ViewModeCoordinator.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ViewSectionList.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/ViewSectionList.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/drawingLayers.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/drawingLayers.js.map +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/exportDrawingToDxf.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/exportDrawingToDxf.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/safeRun.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/safeRun.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.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/useFriendlyIfcClassName.js.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/viewSection.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/lib/viewSection.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.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.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.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.map +1 -1
- 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.map +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.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.map +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.map +1 -1
- 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.map +1 -1
- 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.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.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.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/index.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/index.js.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/markerUtils.d.ts.map +1 -1
- package/dist/core/components/viewers/bim/src/tools/AddToBim/src/markerUtils.js.map +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.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.map +1 -1
- 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.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.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.map +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.map +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.map +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.map +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.map +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.map +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.map +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.map +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.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.map +1 -1
- package/dist/core/components/viewers/bim/utils/setCameraLookAt.js.map +1 -1
- package/dist/core/components/viewers/index.d.ts.map +1 -1
- package/dist/core/components/viewers/index.js.map +1 -1
- package/dist/core/components/viewers/map/MapViewer.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/core/components/viewers/map/datasets/DatasetDetails.d.ts.map +1 -1
- 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.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.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.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.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.map +1 -1
- package/dist/core/components/viewers/map/datasets/data.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/data.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/index.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/index.js.map +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.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/arcgisFetch.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/arcgisFetch.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.d.ts.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.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/ckanDatasets.js.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/geojsonFile.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/geojsonFile.js.map +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.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.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/opendatasoftDatasets.js.map +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.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/urlSources.d.ts.map +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.map +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/src/wmsTime.d.ts +0 -8
- package/dist/core/components/viewers/map/datasets/src/wmsTime.d.ts.map +1 -1
- package/dist/core/components/viewers/map/datasets/src/wmsTime.js.map +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.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.map +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.map +1 -1
- 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.map +1 -1
- 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.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.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.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.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.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.map +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.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/countryLayerUtils.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/CountryLayer/countryLayerUtils.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.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.map +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.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.map +1 -1
- 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.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.map +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.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.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.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.map +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/disposeThreeScene.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/disposeThreeScene.js.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/mapLayersUtils.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/MapLayers/src/mapLayersUtils.js.map +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.map +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.map +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.map +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.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.map +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.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.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.map +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.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.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.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.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.map +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.map +1 -1
- package/dist/core/components/viewers/map/src/compare/CompareDialog.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/compare/CompareDialog.js.map +1 -1
- package/dist/core/components/viewers/map/src/compare/description-list.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/compare/description-list.js.map +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.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.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.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/ProgressBar.d.ts.map +1 -1
- package/dist/core/components/viewers/map/src/tools/AddTools/AddFile/ProgressBar.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.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.map +1 -1
- 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.map +1 -1
- package/dist/core/components/viewers/map/src/tools/DatasetMapTool.d.ts.map +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.map +1 -1
- package/dist/core/components/viewers/map/src/tools/mapTools.js.map +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.map +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.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.map +1 -1
- package/dist/core/components/viewers/map/utils/MapEventManager/MapHoverManager.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/MapEventManager/MapHoverManager.js.map +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/dateName.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/dateName.js.map +1 -1
- package/dist/core/components/viewers/map/utils/extractCoordinates.d.ts.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.map +1 -1
- package/dist/core/components/viewers/map/utils/fitBuildingsBounds.js.map +1 -1
- package/dist/core/components/viewers/map/utils/fitGeojsonBounds.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/fitGeojsonBounds.js.map +1 -1
- package/dist/core/components/viewers/map/utils/flyToEach.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/flyToEach.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoder.d.ts.map +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.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/adapters.js.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/config.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/geocoding/config.js.map +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.map +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.map +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.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.map +1 -1
- package/dist/core/components/viewers/map/utils/mapStyleCatalog.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/mapStyleCatalog.js.map +1 -1
- package/dist/core/components/viewers/map/utils/stringToColour.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/stringToColour.js.map +1 -1
- package/dist/core/components/viewers/map/utils/toggleBimToMap.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/toggleBimToMap.js.map +1 -1
- package/dist/core/components/viewers/map/utils/updateBuildingOsmId.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/updateBuildingOsmId.js.map +1 -1
- package/dist/core/components/viewers/map/utils/validateBounds.d.ts.map +1 -1
- package/dist/core/components/viewers/map/utils/validateBounds.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/PointCloudToolbar.d.ts.map +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.map +1 -1
- package/dist/core/components/viewers/pointcloud/define.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/define.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.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.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.map +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.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.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.map +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.map +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.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.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.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.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.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/ViewportGizmo.d.ts.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.map +1 -1
- 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.map +1 -1
- 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.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.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.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.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.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.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.map +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.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/src/getCameraPosition.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/SharePointCloudTool/src/getCameraPosition.js.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/index.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/src/tools/index.js.map +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.map +1 -1
- package/dist/core/components/viewers/pointcloud/utils/potreeLoader.d.ts.map +1 -1
- package/dist/core/components/viewers/pointcloud/utils/potreeLoader.js.map +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/components/viewers/useCoordinateSystem.d.ts.map +1 -1
- package/dist/core/components/viewers/useCoordinateSystem.js.map +1 -1
- package/dist/core/hooks/buildings/buildings.d.ts.map +1 -1
- package/dist/core/hooks/buildings/buildings.js.map +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.map +1 -1
- package/dist/core/hooks/comments/comments.js.map +1 -1
- package/dist/core/hooks/comments/createCommentHooks.d.ts.map +1 -1
- package/dist/core/hooks/comments/createCommentHooks.js.map +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.map +1 -1
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/index.js.map +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/infrastructures/infrastructures.d.ts.map +1 -1
- package/dist/core/hooks/infrastructures/infrastructures.js.map +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/openDataPortals/openDataPortals.d.ts.map +1 -1
- package/dist/core/hooks/openDataPortals/openDataPortals.js.map +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/organizations/organizations.d.ts.map +1 -1
- package/dist/core/hooks/organizations/organizations.js.map +1 -1
- package/dist/core/hooks/ports/apiAdapter.d.ts.map +1 -1
- package/dist/core/hooks/provider.d.ts.map +1 -1
- package/dist/core/hooks/provider.js.map +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/sensorTypes/sensorTypes.d.ts.map +1 -1
- package/dist/core/hooks/sensorTypes/sensorTypes.js.map +1 -1
- package/dist/core/hooks/sensors/createSensorHooks.d.ts.map +1 -1
- package/dist/core/hooks/sensors/createSensorHooks.js.map +1 -1
- package/dist/core/hooks/sensors/sensors.d.ts.map +1 -1
- package/dist/core/hooks/sensors/sensors.js.map +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/sites/sites.js.map +1 -1
- package/dist/core/hooks/ui/use-mobile.d.ts.map +1 -1
- package/dist/core/hooks/ui/use-mobile.js.map +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/hooks/users/users.d.ts.map +1 -1
- package/dist/core/hooks/users/users.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +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/errors.d.ts.map +1 -1
- package/dist/core/plugins/host/errors.js.map +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.map +1 -1
- package/dist/core/plugins/host/registry.d.ts.map +1 -1
- package/dist/core/plugins/host/registry.js.map +1 -1
- package/dist/core/plugins/installed.d.ts.map +1 -1
- package/dist/core/plugins/installed.js.map +1 -1
- package/dist/core/plugins/sdk/components.d.ts.map +1 -1
- package/dist/core/plugins/sdk/components.js.map +1 -1
- package/dist/core/plugins/sdk/index.d.ts.map +1 -1
- package/dist/core/plugins/sdk/index.js.map +1 -1
- package/dist/core/plugins/sdk/types.d.ts.map +1 -1
- package/dist/core/plugins/sdk/types.js.map +1 -1
- package/dist/core/store/ActionMap.d.ts.map +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.map +1 -1
- package/dist/core/store/AppConfig/reducer.js.map +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.map +1 -1
- package/dist/core/store/BIM/reducer.js.map +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.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.map +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.map +1 -1
- package/dist/core/store/Datasets/context.js.map +1 -1
- package/dist/core/store/Datasets/reducer.d.ts.map +1 -1
- package/dist/core/store/Datasets/reducer.js.map +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.map +1 -1
- package/dist/core/store/Files/reducer.js.map +1 -1
- package/dist/core/store/Map/context.d.ts.map +1 -1
- package/dist/core/store/Map/context.js.map +1 -1
- 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/Menus/context.d.ts.map +1 -1
- package/dist/core/store/Menus/context.js.map +1 -1
- package/dist/core/store/Menus/reducer.d.ts.map +1 -1
- package/dist/core/store/Menus/reducer.js.map +1 -1
- package/dist/core/store/Permissions/context.d.ts.map +1 -1
- package/dist/core/store/Permissions/context.js.map +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.map +1 -1
- package/dist/core/store/PointCloud/reducer.js.map +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.map +1 -1
- package/dist/core/store/Tools/reducer.js.map +1 -1
- package/dist/core/store/index.d.ts.map +1 -1
- package/dist/core/store/index.js.map +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/bim.d.ts.map +1 -1
- package/dist/core/types/datasetTypes.d.ts.map +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.map +1 -1
- package/dist/core/types/global.d.ts.map +1 -1
- package/dist/core/types/global.js.map +1 -1
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/map.d.ts.map +1 -1
- package/dist/core/types/martinTypes.d.ts.map +1 -1
- package/dist/core/types/martinTypes.js.map +1 -1
- package/dist/core/types/next-auth.d.ts.map +1 -1
- package/dist/core/types/tools.d.ts.map +1 -1
- package/dist/core/types/users.d.ts.map +1 -1
- package/dist/core/utils/acceptedFiles.d.ts.map +1 -1
- package/dist/core/utils/acceptedFiles.js.map +1 -1
- package/dist/core/utils/errorHandler.d.ts.map +1 -1
- package/dist/core/utils/errorHandler.js.map +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/imageUtils.d.ts.map +1 -1
- package/dist/core/utils/imageUtils.js.map +1 -1
- package/dist/core/utils/index.d.ts.map +1 -1
- package/dist/core/utils/index.js.map +1 -1
- package/dist/core/utils/markerUtils.d.ts.map +1 -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.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.d.ts.map +1 -1
- package/dist/core/utils/timeUtils.js.map +1 -1
- package/dist/core/utils/utils.d.ts.map +1 -1
- package/dist/core/utils/utils.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/core/components/viewers/bim/src/BimMeasurements/LenghtMeasurement.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as OBC from '@thatopen/components'\r\nimport * as OBF from '@thatopen/components-front'\r\nimport { CurrentWorld } from '../CurrentWorld'\r\nimport * as THREE from 'three'\r\n\r\nexport class LengthMeasurement extends OBC.Component {\r\n\r\n static readonly uuid = \"5f8da1b7-6023-4a21-acc7-569127cdde54\" as const\r\n\r\n enabled = false\r\n\r\n private measurer: OBF.LengthMeasurement | null = null\r\n\r\n private world: OBC.World | null = null\r\n\r\n readonly onDimensionCreate = new OBC.Event<{ length: number }>()\r\n\r\n constructor(components: OBC.Components) {\r\n super(components)\r\n components.add(LengthMeasurement.uuid, this)\r\n this.measurer = components.get(OBF.LengthMeasurement)\r\n this.world = components.get(CurrentWorld).world\r\n\r\n if (this.measurer && this.world) {\r\n this.measurer.world = this.world\r\n this.measurer.color = new THREE.Color(0x73cee2)\r\n this.setupEventListeners()\r\n }\r\n this.enabled = true\r\n }\r\n\r\n private setupEventListeners() {\r\n if (!this.measurer) return\r\n\r\n // Listen for when measurements are created\r\n this.measurer.list.onItemAdded.add((dimension) => {\r\n this.onDimensionCreate.trigger({ length: dimension.value })\r\n })\r\n\r\n // Set up double-click event for creating measurements\r\n this.setupDoubleClickListener()\r\n }\r\n\r\n private setupDoubleClickListener() {\r\n if (!this.world) return\r\n\r\n const container = this.world.renderer?.three.domElement\r\n if (!container) return\r\n\r\n container.ondblclick = () => {\r\n if (this.measurer?.enabled) {\r\n this.measurer.create()\r\n }\r\n }\r\n }\r\n\r\n createFreeMeasurements() {\r\n if (!this.measurer || !this.world) return\r\n\r\n \r\n this.enabled = true\r\n this.measurer.enabled = true\r\n this.measurer.mode = 'free'\r\n }\r\n\r\n createEdgeMeasurements() {\r\n if (!this.measurer || !this.world) return\r\n\r\n // Enable the component and edge measurement mode with snapping\r\n this.enabled = true\r\n this.measurer.enabled = true\r\n this.measurer.mode = 'edge'\r\n }\r\n\r\n create() {\r\n if (!this.measurer) return\r\n \r\n // Create a measurement programmatically \r\n // This will start the measurement creation process\r\n this.measurer.create()\r\n }\r\n\r\n delete() {\r\n if (!this.measurer) return\r\n \r\n // Delete the last created measurement\r\n this.measurer.delete()\r\n this.measurer.endCreation()\r\n }\r\n\r\n deleteAll() {\r\n if (!this.measurer) return\r\n \r\n // Delete all measurements using the list\r\n this.measurer.list.clear()\r\n this.measurer.endCreation()\r\n this.measurer.enabled = false\r\n }\r\n\r\n getAllValues() {\r\n if (!this.measurer) return []\r\n \r\n const lengths: number[] = []\r\n for (const line of this.measurer.list) {\r\n lengths.push(line.value)\r\n }\r\n return lengths\r\n }\r\n\r\n dispose() {\r\n if (this.measurer) {\r\n this.measurer.enabled = false\r\n this.measurer.list.clear()\r\n }\r\n this.enabled = false\r\n this.measurer = null\r\n this.world = null\r\n this.onDimensionCreate.reset()\r\n }\r\n}"],"mappings":"AAGA,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,SAAS,oBAAoB;AAC7B,YAAY,WAAW;AAEhB,MAAM,qBAAN,MAAM,2BAA0B,IAAI,UAAU;AAAA,EAYjD,YAAY,YAA4B;AACpC,UAAM,UAAU;AATpB,mBAAU;AAEV,SAAQ,WAAyC;AAEjD,SAAQ,QAA0B;AAElC,SAAS,oBAAoB,IAAI,IAAI,MAA0B;AAI3D,eAAW,IAAI,mBAAkB,MAAM,IAAI;AAC3C,SAAK,WAAW,WAAW,IAAI,IAAI,iBAAiB;AACpD,SAAK,QAAQ,WAAW,IAAI,YAAY,EAAE;AAE1C,QAAI,KAAK,YAAY,KAAK,OAAO;AAC7B,WAAK,SAAS,QAAQ,KAAK;AAC3B,WAAK,SAAS,QAAQ,IAAI,MAAM,MAAM,OAAQ;AAC9C,WAAK,oBAAoB;AAAA,IAC7B;AACA,SAAK,UAAU;AAAA,EACnB;AAAA,EAEQ,sBAAsB;AAC1B,QAAI,CAAC,KAAK,SAAU;AAGpB,SAAK,SAAS,KAAK,YAAY,IAAI,CAAC,cAAc;AAC9C,WAAK,kBAAkB,QAAQ,EAAE,QAAQ,UAAU,MAAM,CAAC;AAAA,IAC9D,CAAC;AAGD,SAAK,yBAAyB;AAAA,EAClC;AAAA,EAEQ,2BAA2B;AA9CvC;AA+CQ,QAAI,CAAC,KAAK,MAAO;AAEjB,UAAM,aAAY,UAAK,MAAM,aAAX,mBAAqB,MAAM;AAC7C,QAAI,CAAC,UAAW;AAEhB,cAAU,aAAa,MAAM;AApDrC,UAAAA;AAqDY,WAAIA,MAAA,KAAK,aAAL,gBAAAA,IAAe,SAAS;AACxB,aAAK,SAAS,OAAO;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,yBAAyB;AACrB,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,MAAO;AAGnC,SAAK,UAAU;AACf,SAAK,SAAS,UAAU;AACxB,SAAK,SAAS,OAAO;AAAA,EACzB;AAAA,EAEA,yBAAyB;AACrB,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,MAAO;AAGnC,SAAK,UAAU;AACf,SAAK,SAAS,UAAU;AACxB,SAAK,SAAS,OAAO;AAAA,EACzB;AAAA,EAEA,SAAS;AACL,QAAI,CAAC,KAAK,SAAU;AAIpB,SAAK,SAAS,OAAO;AAAA,EACzB;AAAA,EAEA,SAAS;AACL,QAAI,CAAC,KAAK,SAAU;AAGpB,SAAK,SAAS,OAAO;AACrB,SAAK,SAAS,YAAY;AAAA,EAC9B;AAAA,EAEA,YAAY;AACR,QAAI,CAAC,KAAK,SAAU;AAGpB,SAAK,SAAS,KAAK,MAAM;AACzB,SAAK,SAAS,YAAY;AAC1B,SAAK,SAAS,UAAU;AAAA,EAC5B;AAAA,EAEA,eAAe;AACX,QAAI,CAAC,KAAK,SAAU,QAAO,CAAC;AAE5B,UAAM,UAAoB,CAAC;AAC3B,eAAW,QAAQ,KAAK,SAAS,MAAM;AACnC,cAAQ,KAAK,KAAK,KAAK;AAAA,IAC3B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU;AACN,QAAI,KAAK,UAAU;AACf,WAAK,SAAS,UAAU;AACxB,WAAK,SAAS,KAAK,MAAM;AAAA,IAC7B;AACA,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,QAAQ;AACb,SAAK,kBAAkB,MAAM;AAAA,EACjC;AACJ;AAlHa,mBAEO,OAAO;AAFpB,IAAM,oBAAN;","names":["_a"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAA;AAE3D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,CAAC,WAAW,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,gBAAgB,sBAO/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\nimport { TopicsSection } from './src/TopicsSection'\r\nimport { DbFile } from '../../../../../../../types/dbTypes'\r\nimport { CommentsSection } from '../../../../../../ui/Comments/CommentsSection'\r\nexport interface FileItem {\r\n task: DbFile\r\n icon: React.ElementType\r\n visible: boolean\r\n}\r\n\r\nexport function CommunicationTab() {\r\n return (\r\n <div className=\"flex-1 flex flex-col space-y-6 py-4 overflow-hidden\">\r\n <TopicsSection />\r\n <CommentsSection />\r\n </div>\r\n )\r\n}\r\n"],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/index.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from 'react'\r\nimport { TopicsSection } from './src/TopicsSection'\r\nimport { DbFile } from '../../../../../../../types/dbTypes'\r\nimport { CommentsSection } from '../../../../../../ui/Comments/CommentsSection'\r\nexport interface FileItem {\r\n task: DbFile\r\n icon: React.ElementType\r\n visible: boolean\r\n}\r\n\r\nexport function CommunicationTab() {\r\n return (\r\n <div className=\"flex-1 flex flex-col space-y-6 py-4 overflow-hidden\">\r\n <TopicsSection />\r\n <CommentsSection />\r\n </div>\r\n )\r\n}\r\n"],"mappings":";AAiBI,SACE,KADF;AAXJ,SAAS,qBAAqB;AAE9B,SAAS,uBAAuB;AAOzB,SAAS,mBAAmB;AACjC,SACE,qBAAC,SAAI,WAAU,uDACb;AAAA,wBAAC,iBAAc;AAAA,IACf,oBAAC,mBAAgB;AAAA,KACnB;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleTopicItem.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CollapsibleTopicItem.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAA;AAE3C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE7C,UAAU,yBAAyB;IACjC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CACpD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,yBAAyB,qBAqNlF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\nimport { Button } from '../../../../../../../ui/Button'\r\nimport { Badge } from '../../../../../../../ui/Badge'\r\nimport { Separator } from '../../../../../../../ui/Separator'\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { format } from 'date-fns'\r\nimport { cn } from '../../../../../../../../utils/utils'\r\nimport * as OBC from '@thatopen/components'\r\n\r\ntype TopicAction = 'view' | 'edit' | 'delete'\r\n\r\ninterface CollapsibleTopicItemProps {\r\n topic: OBC.Topic\r\n onAction: (action: TopicAction, id: string) => void\r\n}\r\n\r\nexport function CollapsibleTopicItem({ topic, onAction }: CollapsibleTopicItemProps) {\r\n const t = useTranslations('TopicsSection')\r\n const [isExpanded, setIsExpanded] = React.useState(false)\r\n\r\n const getPriorityColor = (priority?: string) => {\r\n switch (priority?.toLowerCase()) {\r\n case 'critical':\r\n case 'high':\r\n return 'destructive'\r\n case 'major':\r\n return 'default'\r\n case 'normal':\r\n return 'secondary'\r\n case 'minor':\r\n case 'low':\r\n return 'outline'\r\n default:\r\n return 'secondary'\r\n }\r\n }\r\n\r\n const getStatusColor = (status?: string) => {\r\n switch (status?.toLowerCase()) {\r\n case 'active':\r\n case 'open':\r\n return 'default'\r\n case 'in progress':\r\n return 'secondary'\r\n case 'resolved':\r\n case 'done':\r\n return 'outline'\r\n case 'closed':\r\n return 'destructive'\r\n default:\r\n return 'secondary'\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"border rounded-md overflow-hidden\">\r\n {/* Collapsed Header */}\r\n <div className=\"flex items-center justify-between p-3 hover:bg-accent/50 transition-colors\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"h-6 w-6 p-0\"\r\n onClick={() => setIsExpanded(!isExpanded)}\r\n >\r\n <LR.ChevronRight \r\n className={cn(\r\n \"h-4 w-4 transition-transform\",\r\n isExpanded && \"rotate-90\"\r\n )} \r\n />\r\n </Button>\r\n \r\n <div className=\"flex-1 min-w-0\">\r\n <h4 className=\"text-sm font-medium text-foreground truncate\">\r\n {topic.title}\r\n </h4>\r\n <div className=\"flex items-center gap-2 mt-1\">\r\n <Badge variant={getStatusColor(topic.status)} className=\"text-xs\">\r\n {topic.status}\r\n </Badge>\r\n <Badge variant={getPriorityColor(topic.priority)} className=\"text-xs\">\r\n {topic.priority || 'Normal'}\r\n </Badge>\r\n <span className=\"text-xs text-muted-foreground\">\r\n {topic.type}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Action Buttons - Always Visible */}\r\n <div className=\"flex items-center gap-1 flex-shrink-0\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"h-8 w-8 p-0\"\r\n onClick={() => onAction('view', topic.guid)}\r\n title={t('viewTopicTitle')}\r\n >\r\n <LR.Eye className=\"h-4 w-4\" />\r\n </Button>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"h-8 w-8 p-0\"\r\n onClick={() => onAction('edit', topic.guid)}\r\n title={t('editTopicTitle')}\r\n >\r\n <LR.Pencil className=\"h-4 w-4\" />\r\n </Button>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"h-8 w-8 p-0\"\r\n onClick={() => onAction('delete', topic.guid)}\r\n title={t('deleteTopicTitle')}\r\n >\r\n <LR.Trash2 className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n {/* Expanded Content */}\r\n {isExpanded && (\r\n <div className=\"border-t bg-muted/30\">\r\n <div className=\"p-4 space-y-4\">\r\n {/* Description */}\r\n {topic.description && (\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2\">\r\n {t('topicDescription')}\r\n </h5>\r\n <p className=\"text-sm text-foreground whitespace-pre-wrap\">\r\n {topic.description}\r\n </p>\r\n </div>\r\n )}\r\n\r\n {/* Topic Details Grid */}\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\r\n {/* Basic Info */}\r\n <div className=\"space-y-3\">\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicType')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">{topic.type}</p>\r\n </div>\r\n\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicStage')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">{topic.stage || t('notSpecified')}</p>\r\n </div>\r\n\r\n {topic.assignedTo && (\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicAssignedTo')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">{topic.assignedTo}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Dates and Status */}\r\n <div className=\"space-y-3\">\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicCreationDate')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">\r\n {topic.creationDate ? format(topic.creationDate, 'PPP') : t('notSpecified')}\r\n </p>\r\n </div>\r\n\r\n {topic.dueDate && (\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicDueDate')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">\r\n {format(topic.dueDate, 'PPP')}\r\n </p>\r\n </div>\r\n )}\r\n\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicCreationAuthor')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">{topic.creationAuthor || t('notSpecified')}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Labels */}\r\n {topic.labels && topic.labels.size > 0 && (\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2\">\r\n {t('topicLabels')}\r\n </h5>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {Array.from(topic.labels).map((label) => (\r\n <Badge key={label} variant=\"outline\" className=\"text-xs\">\r\n {label}\r\n </Badge>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Topic GUID (for debugging/reference) */}\r\n <Separator />\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicDescription')}\r\n </h5>\r\n <p className=\"text-xs text-muted-foreground font-mono\">\r\n {topic.description || t('notSpecified')}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CollapsibleTopicItem.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from 'react'\r\nimport { Button } from '../../../../../../../ui/Button'\r\nimport { Badge } from '../../../../../../../ui/Badge'\r\nimport { Separator } from '../../../../../../../ui/Separator'\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { format } from 'date-fns'\r\nimport { cn } from '../../../../../../../../utils/utils'\r\nimport * as OBC from '@thatopen/components'\r\n\r\ntype TopicAction = 'view' | 'edit' | 'delete'\r\n\r\ninterface CollapsibleTopicItemProps {\r\n topic: OBC.Topic\r\n onAction: (action: TopicAction, id: string) => void\r\n}\r\n\r\nexport function CollapsibleTopicItem({ topic, onAction }: CollapsibleTopicItemProps) {\r\n const t = useTranslations('TopicsSection')\r\n const [isExpanded, setIsExpanded] = React.useState(false)\r\n\r\n const getPriorityColor = (priority?: string) => {\r\n switch (priority?.toLowerCase()) {\r\n case 'critical':\r\n case 'high':\r\n return 'destructive'\r\n case 'major':\r\n return 'default'\r\n case 'normal':\r\n return 'secondary'\r\n case 'minor':\r\n case 'low':\r\n return 'outline'\r\n default:\r\n return 'secondary'\r\n }\r\n }\r\n\r\n const getStatusColor = (status?: string) => {\r\n switch (status?.toLowerCase()) {\r\n case 'active':\r\n case 'open':\r\n return 'default'\r\n case 'in progress':\r\n return 'secondary'\r\n case 'resolved':\r\n case 'done':\r\n return 'outline'\r\n case 'closed':\r\n return 'destructive'\r\n default:\r\n return 'secondary'\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"border rounded-md overflow-hidden\">\r\n {/* Collapsed Header */}\r\n <div className=\"flex items-center justify-between p-3 hover:bg-accent/50 transition-colors\">\r\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"h-6 w-6 p-0\"\r\n onClick={() => setIsExpanded(!isExpanded)}\r\n >\r\n <LR.ChevronRight \r\n className={cn(\r\n \"h-4 w-4 transition-transform\",\r\n isExpanded && \"rotate-90\"\r\n )} \r\n />\r\n </Button>\r\n \r\n <div className=\"flex-1 min-w-0\">\r\n <h4 className=\"text-sm font-medium text-foreground truncate\">\r\n {topic.title}\r\n </h4>\r\n <div className=\"flex items-center gap-2 mt-1\">\r\n <Badge variant={getStatusColor(topic.status)} className=\"text-xs\">\r\n {topic.status}\r\n </Badge>\r\n <Badge variant={getPriorityColor(topic.priority)} className=\"text-xs\">\r\n {topic.priority || 'Normal'}\r\n </Badge>\r\n <span className=\"text-xs text-muted-foreground\">\r\n {topic.type}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Action Buttons - Always Visible */}\r\n <div className=\"flex items-center gap-1 flex-shrink-0\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"h-8 w-8 p-0\"\r\n onClick={() => onAction('view', topic.guid)}\r\n title={t('viewTopicTitle')}\r\n >\r\n <LR.Eye className=\"h-4 w-4\" />\r\n </Button>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"h-8 w-8 p-0\"\r\n onClick={() => onAction('edit', topic.guid)}\r\n title={t('editTopicTitle')}\r\n >\r\n <LR.Pencil className=\"h-4 w-4\" />\r\n </Button>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"h-8 w-8 p-0\"\r\n onClick={() => onAction('delete', topic.guid)}\r\n title={t('deleteTopicTitle')}\r\n >\r\n <LR.Trash2 className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n {/* Expanded Content */}\r\n {isExpanded && (\r\n <div className=\"border-t bg-muted/30\">\r\n <div className=\"p-4 space-y-4\">\r\n {/* Description */}\r\n {topic.description && (\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2\">\r\n {t('topicDescription')}\r\n </h5>\r\n <p className=\"text-sm text-foreground whitespace-pre-wrap\">\r\n {topic.description}\r\n </p>\r\n </div>\r\n )}\r\n\r\n {/* Topic Details Grid */}\r\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\r\n {/* Basic Info */}\r\n <div className=\"space-y-3\">\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicType')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">{topic.type}</p>\r\n </div>\r\n\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicStage')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">{topic.stage || t('notSpecified')}</p>\r\n </div>\r\n\r\n {topic.assignedTo && (\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicAssignedTo')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">{topic.assignedTo}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Dates and Status */}\r\n <div className=\"space-y-3\">\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicCreationDate')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">\r\n {topic.creationDate ? format(topic.creationDate, 'PPP') : t('notSpecified')}\r\n </p>\r\n </div>\r\n\r\n {topic.dueDate && (\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicDueDate')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">\r\n {format(topic.dueDate, 'PPP')}\r\n </p>\r\n </div>\r\n )}\r\n\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicCreationAuthor')}\r\n </h5>\r\n <p className=\"text-sm text-foreground\">{topic.creationAuthor || t('notSpecified')}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Labels */}\r\n {topic.labels && topic.labels.size > 0 && (\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2\">\r\n {t('topicLabels')}\r\n </h5>\r\n <div className=\"flex flex-wrap gap-2\">\r\n {Array.from(topic.labels).map((label) => (\r\n <Badge key={label} variant=\"outline\" className=\"text-xs\">\r\n {label}\r\n </Badge>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Topic GUID (for debugging/reference) */}\r\n <Separator />\r\n <div>\r\n <h5 className=\"text-xs font-medium text-muted-foreground uppercase tracking-wide mb-1\">\r\n {t('topicDescription')}\r\n </h5>\r\n <p className=\"text-xs text-muted-foreground font-mono\">\r\n {topic.description || t('notSpecified')}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateTopicDialog.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CreateTopicDialog.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAA;AAgB3C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC1C,aAAa,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;CACtD;AA6DD,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,sBAAsB,qBAsZxG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as OBC from '@thatopen/components'\r\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '../../../../../../../ui/Dialog'\r\nimport { Button } from '../../../../../../../ui/Button'\r\nimport { Input } from '../../../../../../../ui/Input'\r\nimport { Label } from '../../../../../../../ui/Label'\r\nimport { Textarea } from '../../../../../../../ui/Textarea'\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../../../../../ui/Select'\r\nimport { Calendar } from '../../../../../../../ui/Calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../../../../../../ui/Popover'\r\nimport { Checkbox } from '../../../../../../../ui/Checkbox'\r\nimport { Badge } from '../../../../../../../ui/Badge'\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { format } from 'date-fns'\r\nimport { cn } from '../../../../../../../../utils/utils'\r\n\r\nexport interface BCFTopicFormData {\r\n title: string\r\n description: string\r\n topicType: string\r\n topicStatus: string\r\n priority: string\r\n stage: string\r\n assignedTo: string\r\n dueDate: Date | null\r\n labels: string[]\r\n referenceLinks: string[]\r\n}\r\n\r\ninterface CreateTopicDialogProps {\r\n open: boolean\r\n onOpenChange: (open: boolean) => void\r\n onSubmit: (data: BCFTopicFormData) => void\r\n existingTopic?: OBC.Topic | Partial<OBC.Topic> | null // Optional topic for edit mode\r\n}\r\n\r\n// Predefined options based on BCF standards and common usage\r\nconst TOPIC_TYPES = [\r\n 'Clash',\r\n 'Issue',\r\n 'Request',\r\n 'Information',\r\n 'Coordination',\r\n 'Design',\r\n 'Error',\r\n 'Remark',\r\n 'Question',\r\n 'Warning'\r\n]\r\n\r\nconst TOPIC_STATUSES = [\r\n 'Active',\r\n 'Open',\r\n 'In Progress',\r\n 'Resolved',\r\n 'Closed',\r\n 'Done',\r\n 'In Review',\r\n 'Rejected'\r\n]\r\n\r\nconst PRIORITIES = [\r\n 'Low',\r\n 'Normal',\r\n 'High',\r\n 'Critical',\r\n 'Major',\r\n 'Minor'\r\n]\r\n\r\nconst STAGES = [\r\n 'Design',\r\n 'Construction',\r\n 'Operations',\r\n 'Planning',\r\n 'Tender',\r\n 'Preconstruction',\r\n 'Handover'\r\n]\r\n\r\nconst COMMON_LABELS = [\r\n 'Architecture',\r\n 'Structure',\r\n 'MEP',\r\n 'Electrical',\r\n 'Plumbing',\r\n 'HVAC',\r\n 'Cost Estimation',\r\n 'Safety',\r\n 'Quality',\r\n 'Schedule',\r\n 'Coordination',\r\n 'RFI'\r\n]\r\n\r\nexport function CreateTopicDialog({ open, onOpenChange, onSubmit, existingTopic }: CreateTopicDialogProps) {\r\n const t = useTranslations('TopicsSection')\r\n \r\n const [formData, setFormData] = React.useState<BCFTopicFormData>({\r\n title: '',\r\n description: '',\r\n topicType: 'Issue',\r\n topicStatus: 'Active',\r\n priority: 'Normal',\r\n stage: 'Design',\r\n assignedTo: '',\r\n dueDate: null,\r\n labels: [],\r\n referenceLinks: []\r\n })\r\n\r\n const [newLabel, setNewLabel] = React.useState('')\r\n const [newReferenceLink, setNewReferenceLink] = React.useState('')\r\n const [dueDateOpen, setDueDateOpen] = React.useState(false)\r\n\r\n // Pre-populate form data when editing\r\n React.useEffect(() => {\r\n if (existingTopic) {\r\n const topic = existingTopic\r\n \r\n // Handle date conversion more robustly\r\n let parsedDueDate: Date | null = null\r\n if (topic.dueDate) {\r\n try {\r\n if (topic.dueDate instanceof Date) {\r\n parsedDueDate = topic.dueDate\r\n } else if (typeof topic.dueDate === 'string') {\r\n parsedDueDate = new Date(topic.dueDate)\r\n } else {\r\n parsedDueDate = new Date(topic.dueDate as any)\r\n }\r\n // Check if date is valid\r\n if (isNaN(parsedDueDate.getTime())) {\r\n parsedDueDate = null\r\n }\r\n } catch (error) {\r\n parsedDueDate = null\r\n }\r\n }\r\n\r\n setFormData({\r\n title: String(topic.title || ''),\r\n description: String(topic.description || ''),\r\n topicType: String(topic.type || 'Issue'),\r\n topicStatus: String(topic.status || 'Active'),\r\n priority: String(topic.priority || 'Normal'),\r\n stage: String(topic.stage || 'Design'),\r\n assignedTo: String(topic.assignedTo || ''),\r\n dueDate: parsedDueDate,\r\n labels: topic.labels ? (Array.isArray(topic.labels) ? topic.labels : Array.from(topic.labels)) : [],\r\n referenceLinks: []\r\n })\r\n } else {\r\n // Reset form for create mode\r\n setFormData({\r\n title: '',\r\n description: '',\r\n topicType: 'Issue',\r\n topicStatus: 'Active',\r\n priority: 'Normal',\r\n stage: 'Design',\r\n assignedTo: '',\r\n dueDate: null,\r\n labels: [],\r\n referenceLinks: []\r\n })\r\n }\r\n }, [existingTopic, open])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n \r\n // Validate required fields - ensure title is a string before calling trim\r\n const title = String(formData.title || '')\r\n if (!title.trim()) {\r\n return\r\n }\r\n\r\n onSubmit(formData)\r\n \r\n // Reset form\r\n setFormData({\r\n title: '',\r\n description: '',\r\n topicType: 'Issue',\r\n topicStatus: 'Active',\r\n priority: 'Normal',\r\n stage: 'Design',\r\n assignedTo: '',\r\n dueDate: null,\r\n labels: [],\r\n referenceLinks: []\r\n })\r\n setNewLabel('')\r\n setNewReferenceLink('')\r\n onOpenChange(false)\r\n }\r\n\r\n const handleInputChange = (field: keyof BCFTopicFormData, value: any) => {\r\n setFormData(prev => ({\r\n ...prev,\r\n [field]: value\r\n }))\r\n }\r\n\r\n const addLabel = (label: string) => {\r\n if (label && !formData.labels.includes(label)) {\r\n handleInputChange('labels', [...formData.labels, label])\r\n }\r\n }\r\n\r\n const removeLabel = (labelToRemove: string) => {\r\n handleInputChange('labels', formData.labels.filter(label => label !== labelToRemove))\r\n }\r\n\r\n const addReferenceLink = () => {\r\n if (newReferenceLink && !formData.referenceLinks.includes(newReferenceLink)) {\r\n handleInputChange('referenceLinks', [...formData.referenceLinks, newReferenceLink])\r\n setNewReferenceLink('')\r\n }\r\n }\r\n\r\n const removeReferenceLink = (linkToRemove: string) => {\r\n handleInputChange('referenceLinks', formData.referenceLinks.filter(link => link !== linkToRemove))\r\n }\r\n\r\n return (\r\n <Dialog open={open} onOpenChange={onOpenChange}>\r\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\r\n <DialogHeader>\r\n <DialogTitle>\r\n {existingTopic ? t('editTopicTitle') : t('createTopicTitle')}\r\n </DialogTitle>\r\n </DialogHeader>\r\n \r\n <form onSubmit={handleSubmit} className=\"space-y-6\">\r\n {/* Required Fields */}\r\n <div className=\"space-y-4\">\r\n <h3 className=\"text-sm font-medium text-foreground\">{t('requiredFields')}</h3>\r\n \r\n {/* Title - Required */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"title\">{t('topicTitle')} *</Label>\r\n <Input\r\n id=\"title\"\r\n value={formData.title}\r\n onChange={(e) => handleInputChange('title', e.target.value)}\r\n placeholder={t('topicTitlePlaceholder')}\r\n required\r\n />\r\n </div>\r\n\r\n {/* Type - Required */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"type\">{t('topicType')} *</Label>\r\n <Select value={formData.topicType} onValueChange={(value) => handleInputChange('topicType', value)}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {TOPIC_TYPES.map(type => (\r\n <SelectItem key={type} value={type}>{type}</SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n\r\n {/* Status - Required */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"status\">{t('topicStatus')} *</Label>\r\n <Select value={formData.topicStatus} onValueChange={(value) => handleInputChange('topicStatus', value)}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {TOPIC_STATUSES.map(status => (\r\n <SelectItem key={status} value={status}>{status}</SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n </div>\r\n\r\n {/* Optional Fields */}\r\n <div className=\"space-y-4\">\r\n <h3 className=\"text-sm font-medium text-foreground\">{t('optionalFields')}</h3>\r\n \r\n {/* Description */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"description\">{t('topicDescription')}</Label>\r\n <Textarea\r\n id=\"description\"\r\n value={formData.description}\r\n onChange={(e) => handleInputChange('description', e.target.value)}\r\n placeholder={t('topicDescriptionPlaceholder')}\r\n rows={3}\r\n />\r\n </div>\r\n\r\n {/* Priority */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"priority\">{t('topicPriority')}</Label>\r\n <Select value={formData.priority} onValueChange={(value) => handleInputChange('priority', value)}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {PRIORITIES.map(priority => (\r\n <SelectItem key={priority} value={priority}>{priority}</SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n\r\n {/* Stage */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"stage\">{t('topicStage')}</Label>\r\n <Select value={formData.stage} onValueChange={(value) => handleInputChange('stage', value)}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {STAGES.map(stage => (\r\n <SelectItem key={stage} value={stage}>{stage}</SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n\r\n {/* Assigned To */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"assignedTo\">{t('topicAssignedTo')}</Label>\r\n <Input\r\n id=\"assignedTo\"\r\n type=\"email\"\r\n value={formData.assignedTo}\r\n onChange={(e) => handleInputChange('assignedTo', e.target.value)}\r\n placeholder={t('topicAssignedToPlaceholder')}\r\n />\r\n </div>\r\n\r\n {/* Due Date */}\r\n <div className=\"space-y-2\">\r\n <Label>{t('topicDueDate')}</Label>\r\n <Popover open={dueDateOpen} onOpenChange={setDueDateOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className={cn(\r\n \"w-full justify-start text-left font-normal\",\r\n !formData.dueDate && \"text-muted-foreground\"\r\n )}\r\n >\r\n <LR.Calendar className=\"mr-2 h-4 w-4\" />\r\n {formData.dueDate ? format(formData.dueDate, 'PPP') : t('topicDueDatePlaceholder')}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n mode=\"single\"\r\n selected={formData.dueDate || undefined}\r\n onSelect={(date) => {\r\n handleInputChange('dueDate', date || null)\r\n setDueDateOpen(false)\r\n }}\r\n initialFocus\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n\r\n {/* Labels */}\r\n <div className=\"space-y-2\">\r\n <Label>{t('topicLabels')}</Label>\r\n <div className=\"space-y-2\">\r\n {/* Current labels */}\r\n {formData.labels.length > 0 && (\r\n <div className=\"flex flex-wrap gap-2\">\r\n {formData.labels.map((label) => (\r\n <Badge key={label} variant=\"secondary\" className=\"flex items-center gap-1\">\r\n {label}\r\n <button\r\n type=\"button\"\r\n onClick={() => removeLabel(label)}\r\n className=\"ml-1 hover:text-destructive\"\r\n >\r\n <LR.X className=\"h-3 w-3\" />\r\n </button>\r\n </Badge>\r\n ))}\r\n </div>\r\n )}\r\n \r\n {/* Quick add common labels */}\r\n <div className=\"flex flex-wrap gap-2\">\r\n {COMMON_LABELS\r\n .filter(label => !formData.labels.includes(label))\r\n .slice(0, 6)\r\n .map((label) => (\r\n <Button\r\n key={label}\r\n type=\"button\"\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={() => addLabel(label)}\r\n >\r\n <LR.Plus className=\"h-3 w-3 mr-1\" />\r\n {label}\r\n </Button>\r\n ))}\r\n </div>\r\n\r\n {/* Custom label input */}\r\n <div className=\"flex gap-2\">\r\n <Input\r\n value={newLabel}\r\n onChange={(e) => setNewLabel(e.target.value)}\r\n placeholder={t('topicLabelsPlaceholder')}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault()\r\n addLabel(newLabel)\r\n setNewLabel('')\r\n }\r\n }}\r\n />\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n onClick={() => {\r\n addLabel(newLabel)\r\n setNewLabel('')\r\n }}\r\n >\r\n <LR.Plus className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Reference Links */}\r\n <div className=\"space-y-2\">\r\n <Label>{t('topicReferenceLinks')}</Label>\r\n <div className=\"space-y-2\">\r\n {/* Current links */}\r\n {formData.referenceLinks.length > 0 && (\r\n <div className=\"space-y-2\">\r\n {formData.referenceLinks.map((link, index) => (\r\n <div key={index} className=\"flex items-center gap-2 p-2 border rounded\">\r\n <LR.Link className=\"h-4 w-4 text-muted-foreground\" />\r\n <span className=\"flex-1 text-sm truncate\">{link}</span>\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n onClick={() => removeReferenceLink(link)}\r\n >\r\n <LR.X className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {/* Add new link */}\r\n <div className=\"flex gap-2\">\r\n <Input\r\n value={newReferenceLink}\r\n onChange={(e) => setNewReferenceLink(e.target.value)}\r\n placeholder={t('topicReferenceLinksPlaceholder')}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault()\r\n addReferenceLink()\r\n }\r\n }}\r\n />\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n onClick={addReferenceLink}\r\n >\r\n <LR.Plus className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <DialogFooter>\r\n <Button type=\"button\" variant=\"outline\" onClick={() => onOpenChange(false)}>\r\n {t('cancel')}\r\n </Button>\r\n <Button type=\"submit\" disabled={!String(formData.title || '').trim()}>\r\n {existingTopic ? t('updateTopic') : t('createTopic')}\r\n </Button>\r\n </DialogFooter>\r\n </form>\r\n </DialogContent>\r\n </Dialog>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/CreateTopicDialog.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from 'react'\r\nimport * as OBC from '@thatopen/components'\r\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '../../../../../../../ui/Dialog'\r\nimport { Button } from '../../../../../../../ui/Button'\r\nimport { Input } from '../../../../../../../ui/Input'\r\nimport { Label } from '../../../../../../../ui/Label'\r\nimport { Textarea } from '../../../../../../../ui/Textarea'\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../../../../../ui/Select'\r\nimport { Calendar } from '../../../../../../../ui/Calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../../../../../../ui/Popover'\r\nimport { Checkbox } from '../../../../../../../ui/Checkbox'\r\nimport { Badge } from '../../../../../../../ui/Badge'\r\nimport * as LR from 'lucide-react'\r\nimport { useTranslations } from 'next-intl'\r\nimport { format } from 'date-fns'\r\nimport { cn } from '../../../../../../../../utils/utils'\r\n\r\nexport interface BCFTopicFormData {\r\n title: string\r\n description: string\r\n topicType: string\r\n topicStatus: string\r\n priority: string\r\n stage: string\r\n assignedTo: string\r\n dueDate: Date | null\r\n labels: string[]\r\n referenceLinks: string[]\r\n}\r\n\r\ninterface CreateTopicDialogProps {\r\n open: boolean\r\n onOpenChange: (open: boolean) => void\r\n onSubmit: (data: BCFTopicFormData) => void\r\n existingTopic?: OBC.Topic | Partial<OBC.Topic> | null // Optional topic for edit mode\r\n}\r\n\r\n// Predefined options based on BCF standards and common usage\r\nconst TOPIC_TYPES = [\r\n 'Clash',\r\n 'Issue',\r\n 'Request',\r\n 'Information',\r\n 'Coordination',\r\n 'Design',\r\n 'Error',\r\n 'Remark',\r\n 'Question',\r\n 'Warning'\r\n]\r\n\r\nconst TOPIC_STATUSES = [\r\n 'Active',\r\n 'Open',\r\n 'In Progress',\r\n 'Resolved',\r\n 'Closed',\r\n 'Done',\r\n 'In Review',\r\n 'Rejected'\r\n]\r\n\r\nconst PRIORITIES = [\r\n 'Low',\r\n 'Normal',\r\n 'High',\r\n 'Critical',\r\n 'Major',\r\n 'Minor'\r\n]\r\n\r\nconst STAGES = [\r\n 'Design',\r\n 'Construction',\r\n 'Operations',\r\n 'Planning',\r\n 'Tender',\r\n 'Preconstruction',\r\n 'Handover'\r\n]\r\n\r\nconst COMMON_LABELS = [\r\n 'Architecture',\r\n 'Structure',\r\n 'MEP',\r\n 'Electrical',\r\n 'Plumbing',\r\n 'HVAC',\r\n 'Cost Estimation',\r\n 'Safety',\r\n 'Quality',\r\n 'Schedule',\r\n 'Coordination',\r\n 'RFI'\r\n]\r\n\r\nexport function CreateTopicDialog({ open, onOpenChange, onSubmit, existingTopic }: CreateTopicDialogProps) {\r\n const t = useTranslations('TopicsSection')\r\n \r\n const [formData, setFormData] = React.useState<BCFTopicFormData>({\r\n title: '',\r\n description: '',\r\n topicType: 'Issue',\r\n topicStatus: 'Active',\r\n priority: 'Normal',\r\n stage: 'Design',\r\n assignedTo: '',\r\n dueDate: null,\r\n labels: [],\r\n referenceLinks: []\r\n })\r\n\r\n const [newLabel, setNewLabel] = React.useState('')\r\n const [newReferenceLink, setNewReferenceLink] = React.useState('')\r\n const [dueDateOpen, setDueDateOpen] = React.useState(false)\r\n\r\n // Pre-populate form data when editing\r\n React.useEffect(() => {\r\n if (existingTopic) {\r\n const topic = existingTopic\r\n \r\n // Handle date conversion more robustly\r\n let parsedDueDate: Date | null = null\r\n if (topic.dueDate) {\r\n try {\r\n if (topic.dueDate instanceof Date) {\r\n parsedDueDate = topic.dueDate\r\n } else if (typeof topic.dueDate === 'string') {\r\n parsedDueDate = new Date(topic.dueDate)\r\n } else {\r\n parsedDueDate = new Date(topic.dueDate as any)\r\n }\r\n // Check if date is valid\r\n if (isNaN(parsedDueDate.getTime())) {\r\n parsedDueDate = null\r\n }\r\n } catch (error) {\r\n parsedDueDate = null\r\n }\r\n }\r\n\r\n setFormData({\r\n title: String(topic.title || ''),\r\n description: String(topic.description || ''),\r\n topicType: String(topic.type || 'Issue'),\r\n topicStatus: String(topic.status || 'Active'),\r\n priority: String(topic.priority || 'Normal'),\r\n stage: String(topic.stage || 'Design'),\r\n assignedTo: String(topic.assignedTo || ''),\r\n dueDate: parsedDueDate,\r\n labels: topic.labels ? (Array.isArray(topic.labels) ? topic.labels : Array.from(topic.labels)) : [],\r\n referenceLinks: []\r\n })\r\n } else {\r\n // Reset form for create mode\r\n setFormData({\r\n title: '',\r\n description: '',\r\n topicType: 'Issue',\r\n topicStatus: 'Active',\r\n priority: 'Normal',\r\n stage: 'Design',\r\n assignedTo: '',\r\n dueDate: null,\r\n labels: [],\r\n referenceLinks: []\r\n })\r\n }\r\n }, [existingTopic, open])\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault()\r\n \r\n // Validate required fields - ensure title is a string before calling trim\r\n const title = String(formData.title || '')\r\n if (!title.trim()) {\r\n return\r\n }\r\n\r\n onSubmit(formData)\r\n \r\n // Reset form\r\n setFormData({\r\n title: '',\r\n description: '',\r\n topicType: 'Issue',\r\n topicStatus: 'Active',\r\n priority: 'Normal',\r\n stage: 'Design',\r\n assignedTo: '',\r\n dueDate: null,\r\n labels: [],\r\n referenceLinks: []\r\n })\r\n setNewLabel('')\r\n setNewReferenceLink('')\r\n onOpenChange(false)\r\n }\r\n\r\n const handleInputChange = (field: keyof BCFTopicFormData, value: any) => {\r\n setFormData(prev => ({\r\n ...prev,\r\n [field]: value\r\n }))\r\n }\r\n\r\n const addLabel = (label: string) => {\r\n if (label && !formData.labels.includes(label)) {\r\n handleInputChange('labels', [...formData.labels, label])\r\n }\r\n }\r\n\r\n const removeLabel = (labelToRemove: string) => {\r\n handleInputChange('labels', formData.labels.filter(label => label !== labelToRemove))\r\n }\r\n\r\n const addReferenceLink = () => {\r\n if (newReferenceLink && !formData.referenceLinks.includes(newReferenceLink)) {\r\n handleInputChange('referenceLinks', [...formData.referenceLinks, newReferenceLink])\r\n setNewReferenceLink('')\r\n }\r\n }\r\n\r\n const removeReferenceLink = (linkToRemove: string) => {\r\n handleInputChange('referenceLinks', formData.referenceLinks.filter(link => link !== linkToRemove))\r\n }\r\n\r\n return (\r\n <Dialog open={open} onOpenChange={onOpenChange}>\r\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\r\n <DialogHeader>\r\n <DialogTitle>\r\n {existingTopic ? t('editTopicTitle') : t('createTopicTitle')}\r\n </DialogTitle>\r\n </DialogHeader>\r\n \r\n <form onSubmit={handleSubmit} className=\"space-y-6\">\r\n {/* Required Fields */}\r\n <div className=\"space-y-4\">\r\n <h3 className=\"text-sm font-medium text-foreground\">{t('requiredFields')}</h3>\r\n \r\n {/* Title - Required */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"title\">{t('topicTitle')} *</Label>\r\n <Input\r\n id=\"title\"\r\n value={formData.title}\r\n onChange={(e) => handleInputChange('title', e.target.value)}\r\n placeholder={t('topicTitlePlaceholder')}\r\n required\r\n />\r\n </div>\r\n\r\n {/* Type - Required */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"type\">{t('topicType')} *</Label>\r\n <Select value={formData.topicType} onValueChange={(value) => handleInputChange('topicType', value)}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {TOPIC_TYPES.map(type => (\r\n <SelectItem key={type} value={type}>{type}</SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n\r\n {/* Status - Required */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"status\">{t('topicStatus')} *</Label>\r\n <Select value={formData.topicStatus} onValueChange={(value) => handleInputChange('topicStatus', value)}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {TOPIC_STATUSES.map(status => (\r\n <SelectItem key={status} value={status}>{status}</SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n </div>\r\n\r\n {/* Optional Fields */}\r\n <div className=\"space-y-4\">\r\n <h3 className=\"text-sm font-medium text-foreground\">{t('optionalFields')}</h3>\r\n \r\n {/* Description */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"description\">{t('topicDescription')}</Label>\r\n <Textarea\r\n id=\"description\"\r\n value={formData.description}\r\n onChange={(e) => handleInputChange('description', e.target.value)}\r\n placeholder={t('topicDescriptionPlaceholder')}\r\n rows={3}\r\n />\r\n </div>\r\n\r\n {/* Priority */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"priority\">{t('topicPriority')}</Label>\r\n <Select value={formData.priority} onValueChange={(value) => handleInputChange('priority', value)}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {PRIORITIES.map(priority => (\r\n <SelectItem key={priority} value={priority}>{priority}</SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n\r\n {/* Stage */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"stage\">{t('topicStage')}</Label>\r\n <Select value={formData.stage} onValueChange={(value) => handleInputChange('stage', value)}>\r\n <SelectTrigger>\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {STAGES.map(stage => (\r\n <SelectItem key={stage} value={stage}>{stage}</SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </div>\r\n\r\n {/* Assigned To */}\r\n <div className=\"space-y-2\">\r\n <Label htmlFor=\"assignedTo\">{t('topicAssignedTo')}</Label>\r\n <Input\r\n id=\"assignedTo\"\r\n type=\"email\"\r\n value={formData.assignedTo}\r\n onChange={(e) => handleInputChange('assignedTo', e.target.value)}\r\n placeholder={t('topicAssignedToPlaceholder')}\r\n />\r\n </div>\r\n\r\n {/* Due Date */}\r\n <div className=\"space-y-2\">\r\n <Label>{t('topicDueDate')}</Label>\r\n <Popover open={dueDateOpen} onOpenChange={setDueDateOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n className={cn(\r\n \"w-full justify-start text-left font-normal\",\r\n !formData.dueDate && \"text-muted-foreground\"\r\n )}\r\n >\r\n <LR.Calendar className=\"mr-2 h-4 w-4\" />\r\n {formData.dueDate ? format(formData.dueDate, 'PPP') : t('topicDueDatePlaceholder')}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n mode=\"single\"\r\n selected={formData.dueDate || undefined}\r\n onSelect={(date) => {\r\n handleInputChange('dueDate', date || null)\r\n setDueDateOpen(false)\r\n }}\r\n initialFocus\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n\r\n {/* Labels */}\r\n <div className=\"space-y-2\">\r\n <Label>{t('topicLabels')}</Label>\r\n <div className=\"space-y-2\">\r\n {/* Current labels */}\r\n {formData.labels.length > 0 && (\r\n <div className=\"flex flex-wrap gap-2\">\r\n {formData.labels.map((label) => (\r\n <Badge key={label} variant=\"secondary\" className=\"flex items-center gap-1\">\r\n {label}\r\n <button\r\n type=\"button\"\r\n onClick={() => removeLabel(label)}\r\n className=\"ml-1 hover:text-destructive\"\r\n >\r\n <LR.X className=\"h-3 w-3\" />\r\n </button>\r\n </Badge>\r\n ))}\r\n </div>\r\n )}\r\n \r\n {/* Quick add common labels */}\r\n <div className=\"flex flex-wrap gap-2\">\r\n {COMMON_LABELS\r\n .filter(label => !formData.labels.includes(label))\r\n .slice(0, 6)\r\n .map((label) => (\r\n <Button\r\n key={label}\r\n type=\"button\"\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={() => addLabel(label)}\r\n >\r\n <LR.Plus className=\"h-3 w-3 mr-1\" />\r\n {label}\r\n </Button>\r\n ))}\r\n </div>\r\n\r\n {/* Custom label input */}\r\n <div className=\"flex gap-2\">\r\n <Input\r\n value={newLabel}\r\n onChange={(e) => setNewLabel(e.target.value)}\r\n placeholder={t('topicLabelsPlaceholder')}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault()\r\n addLabel(newLabel)\r\n setNewLabel('')\r\n }\r\n }}\r\n />\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n onClick={() => {\r\n addLabel(newLabel)\r\n setNewLabel('')\r\n }}\r\n >\r\n <LR.Plus className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Reference Links */}\r\n <div className=\"space-y-2\">\r\n <Label>{t('topicReferenceLinks')}</Label>\r\n <div className=\"space-y-2\">\r\n {/* Current links */}\r\n {formData.referenceLinks.length > 0 && (\r\n <div className=\"space-y-2\">\r\n {formData.referenceLinks.map((link, index) => (\r\n <div key={index} className=\"flex items-center gap-2 p-2 border rounded\">\r\n <LR.Link className=\"h-4 w-4 text-muted-foreground\" />\r\n <span className=\"flex-1 text-sm truncate\">{link}</span>\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n onClick={() => removeReferenceLink(link)}\r\n >\r\n <LR.X className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {/* Add new link */}\r\n <div className=\"flex gap-2\">\r\n <Input\r\n value={newReferenceLink}\r\n onChange={(e) => setNewReferenceLink(e.target.value)}\r\n placeholder={t('topicReferenceLinksPlaceholder')}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault()\r\n addReferenceLink()\r\n }\r\n }}\r\n />\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n onClick={addReferenceLink}\r\n >\r\n <LR.Plus className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <DialogFooter>\r\n <Button type=\"button\" variant=\"outline\" onClick={() => onOpenChange(false)}>\r\n {t('cancel')}\r\n </Button>\r\n <Button type=\"submit\" disabled={!String(formData.title || '').trim()}>\r\n {existingTopic ? t('updateTopic') : t('createTopic')}\r\n </Button>\r\n </DialogFooter>\r\n </form>\r\n </DialogContent>\r\n </Dialog>\r\n )\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopicsSection.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TopicsSection.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAe9B,wBAAgB,aAAa,sBAgO5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as OBC from '@thatopen/components'\r\nimport { Button } from '../../../../../../../ui/Button'\r\nimport * as LR from 'lucide-react'\r\nimport { BimContext, BuildingsContext, usePermissions } from '../../../../../../../../store'\r\nimport { CollapsibleSection } from '../../../../../../../ui/CollapsibleSection'\r\nimport { useTranslations } from 'next-intl'\r\nimport { useSession } from 'next-auth/react'\r\nimport { BCFTopicsManager } from '../../../../BCFTopicsManager'\r\nimport { CreateTopicDialog, BCFTopicFormData } from './CreateTopicDialog'\r\nimport { CollapsibleTopicItem } from './CollapsibleTopicItem'\r\nimport { BcfIcon } from '../../../../../../../ui/Icons'\r\n\r\ntype TopicAction = 'view' | 'edit' | 'delete'\r\n\r\nexport function TopicsSection() {\r\n // Translation\r\n const t = useTranslations('TopicsSection')\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n // Get user session\r\n const { data: session } = useSession()\r\n const user = session?.user\r\n\r\n // Get BIM context\r\n const { state: bimState, dispatch: bimDispatch } = React.useContext(BimContext)\r\n const { bimComponents, bcfTopics } = bimState.bim\r\n const bcfTopicsManager = bimComponents?.get(BCFTopicsManager)\r\n\r\n // Get Buildings context\r\n const { state: buildingState } = React.useContext(BuildingsContext)\r\n const { building } = buildingState.buildings\r\n\r\n // Local state for dialog management\r\n const [createDialogOpen, setCreateDialogOpen] = React.useState(false)\r\n const [editingTopic, setEditingTopic] = React.useState<OBC.Topic | Partial<OBC.Topic> | null>(null)\r\n\r\n const handleAction = React.useCallback((action: TopicAction, id: string) => {\r\n const topic = bcfTopics.find(t => t.guid === id)\r\n if (!topic) {\r\n return\r\n }\r\n\r\n if (action === 'view') {\r\n bcfTopicsManager?.view(topic.guid)\r\n }\r\n else if (action === 'edit') {\r\n setEditingTopic(topic)\r\n setCreateDialogOpen(true)\r\n }\r\n else if (action === 'delete') {\r\n bcfTopicsManager?.remove(topic.guid)\r\n // Remove from BIM state\r\n bimDispatch({ \r\n type: 'REMOVE_BCF_TOPIC', \r\n payload: { bcfTopicId: id } \r\n })\r\n }\r\n }, [bcfTopics, bcfTopicsManager, bimDispatch])\r\n\r\n const handleAddTopic = React.useCallback(() => {\r\n setEditingTopic(null)\r\n setCreateDialogOpen(true)\r\n }, [])\r\n\r\n const handleCreateTopic = React.useCallback((formData: BCFTopicFormData) => {\r\n // Create BCF Topic using OBC.Topic interface\r\n const newTopic: OBC.Topic | Partial<OBC.Topic> = {\r\n guid: crypto.randomUUID(),\r\n title: formData.title,\r\n description: formData.description,\r\n status: formData.topicStatus,\r\n type: formData.topicType,\r\n priority: formData.priority,\r\n stage: formData.stage,\r\n assignedTo: formData.assignedTo || undefined,\r\n dueDate: formData.dueDate || undefined,\r\n creationDate: new Date(),\r\n creationAuthor: user?.email || 'anonymous@example.com',\r\n labels: new Set(formData.labels)\r\n }\r\n \r\n // Add to BCF manager\r\n const createdTopic = bcfTopicsManager?.create({\r\n ...newTopic,\r\n creationAuthor: user?.email || 'anonymous@example.com'\r\n })\r\n\r\n const topicToAdd = createdTopic || newTopic\r\n\r\n console.log('New topic to add:', topicToAdd)\r\n \r\n // Check if topic already exists in global state before adding\r\n const existingTopic = bcfTopics.find(existingTopic => existingTopic.guid === topicToAdd.guid)\r\n if (!existingTopic) {\r\n // Add to BIM state (use the created topic or fallback to newTopic)\r\n bimDispatch({ \r\n type: 'ADD_BCF_TOPIC', \r\n payload: { bcfTopic: topicToAdd } \r\n })\r\n } else {\r\n console.log(`BCF topic with ID ${topicToAdd.guid} already exists, skipping...`)\r\n }\r\n\r\n }, [bcfTopicsManager, bimDispatch, user?.email, bcfTopics])\r\n\r\n const handleEditTopic = React.useCallback((formData: BCFTopicFormData) => {\r\n if (!editingTopic) return\r\n\r\n try {\r\n // Update the existing topic with new data\r\n const updatedTopic: OBC.Topic | Partial<OBC.Topic> = {\r\n ...editingTopic,\r\n title: formData.title,\r\n description: formData.description,\r\n status: formData.topicStatus,\r\n type: formData.topicType,\r\n priority: formData.priority,\r\n stage: formData.stage,\r\n assignedTo: formData.assignedTo || undefined,\r\n dueDate: formData.dueDate || undefined,\r\n labels: new Set(formData.labels),\r\n modifiedDate: new Date(),\r\n modifiedAuthor: user?.email || 'anonymous@example.com'\r\n }\r\n\r\n // Update in BCF Manager first\r\n bcfTopicsManager?.edit(updatedTopic)\r\n\r\n // Update in BIM state\r\n bimDispatch({ \r\n type: 'EDIT_BCF_TOPIC', \r\n payload: { bcfTopic: updatedTopic } \r\n })\r\n\r\n // Clear editing state\r\n setEditingTopic(null)\r\n } catch (error) {\r\n console.error('Error editing topic:', error)\r\n }\r\n }, [editingTopic, bimDispatch, bcfTopicsManager, user?.email])\r\n\r\n const handleDialogSubmit = React.useCallback((formData: BCFTopicFormData) => {\r\n if (editingTopic) {\r\n handleEditTopic(formData)\r\n } else {\r\n handleCreateTopic(formData)\r\n }\r\n }, [editingTopic, handleEditTopic, handleCreateTopic])\r\n\r\n const handleDialogClose = React.useCallback((open: boolean) => {\r\n setCreateDialogOpen(open)\r\n if (!open) {\r\n setEditingTopic(null)\r\n }\r\n }, [])\r\n\r\n const handleExportBCF = React.useCallback(async () => {\r\n try {\r\n const buildingName = building?.buildingName || building?.buildingAddress || String(building.id) || 'Unknown Building'\r\n await bcfTopicsManager?.downloadBCF(buildingName)\r\n } catch (error) {\r\n console.error('Failed to export BCF:', error)\r\n }\r\n }, [bcfTopicsManager, building])\r\n\r\n const handleImportBCF = React.useCallback(async () => {\r\n try {\r\n const result = await bcfTopicsManager?.uploadBCF()\r\n const {topics, viewpoints} = result || {topics: [], viewpoints: []}\r\n topics.map((topic: OBC.Topic, index) => {\r\n // topic.viewpoints.add(viewpoints[index].guid) // I AM NOT GETTING THE VIEWPOINTS\r\n // console.log('Imported topic:', topic)\r\n bimDispatch({ \r\n type: 'ADD_BCF_TOPIC', \r\n payload: { bcfTopic: topic } \r\n })\r\n })\r\n } catch (error) {\r\n console.error('Failed to import BCF:', error)\r\n }\r\n }, [bcfTopicsManager, bimDispatch, bcfTopics])\r\n\r\n return (\r\n <>\r\n <CollapsibleSection\r\n title={t('topicsTitle')}\r\n icon={BcfIcon}\r\n className=\"overflow-y-auto\"\r\n itemCount={bcfTopics.length}\r\n onAddItem={handleAddTopic}\r\n addItemTitle={t('addTopicTitle')}\r\n >\r\n {/* BCF Operations */}\r\n <div className=\"flex gap-2 mb-3 mx-2 overflow-x-hidden \">\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={handleExportBCF}\r\n className=\"text-xs\"\r\n title={t('exportBCFTitle')}\r\n disabled={!ability.can('read', 'File')}\r\n >\r\n <LR.Download className=\"h-3 w-3 mr-1\" />\r\n {t('exportBCF')}\r\n </Button>\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={handleImportBCF}\r\n className=\"text-xs\"\r\n title={t('importBCFTitle')}\r\n disabled={!ability.can('create', 'File')}\r\n >\r\n <LR.Upload className=\"h-3 w-3 mr-1\" />\r\n {t('importBCF')}\r\n </Button>\r\n </div>\r\n\r\n <div className=\"space-y-2 mx-2 pr-2\">\r\n {bcfTopics.map((topic) => (\r\n <CollapsibleTopicItem\r\n key={topic.guid}\r\n topic={topic}\r\n onAction={handleAction}\r\n />\r\n ))}\r\n </div>\r\n </CollapsibleSection>\r\n\r\n <CreateTopicDialog\r\n open={createDialogOpen}\r\n onOpenChange={handleDialogClose}\r\n onSubmit={handleDialogSubmit}\r\n existingTopic={editingTopic}\r\n />\r\n </>\r\n )\r\n}"],"mappings":"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","names":["t","existingTopic"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/CommunicationTab/src/TopicsSection.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from 'react'\r\nimport * as OBC from '@thatopen/components'\r\nimport { Button } from '../../../../../../../ui/Button'\r\nimport * as LR from 'lucide-react'\r\nimport { BimContext, BuildingsContext, usePermissions } from '../../../../../../../../store'\r\nimport { CollapsibleSection } from '../../../../../../../ui/CollapsibleSection'\r\nimport { useTranslations } from 'next-intl'\r\nimport { useSession } from 'next-auth/react'\r\nimport { BCFTopicsManager } from '../../../../BCFTopicsManager'\r\nimport { CreateTopicDialog, BCFTopicFormData } from './CreateTopicDialog'\r\nimport { CollapsibleTopicItem } from './CollapsibleTopicItem'\r\nimport { BcfIcon } from '../../../../../../../ui/Icons'\r\n\r\ntype TopicAction = 'view' | 'edit' | 'delete'\r\n\r\nexport function TopicsSection() {\r\n // Translation\r\n const t = useTranslations('TopicsSection')\r\n // Permissions\r\n const { ability } = usePermissions()\r\n\r\n // Get user session\r\n const { data: session } = useSession()\r\n const user = session?.user\r\n\r\n // Get BIM context\r\n const { state: bimState, dispatch: bimDispatch } = React.useContext(BimContext)\r\n const { bimComponents, bcfTopics } = bimState.bim\r\n const bcfTopicsManager = bimComponents?.get(BCFTopicsManager)\r\n\r\n // Get Buildings context\r\n const { state: buildingState } = React.useContext(BuildingsContext)\r\n const { building } = buildingState.buildings\r\n\r\n // Local state for dialog management\r\n const [createDialogOpen, setCreateDialogOpen] = React.useState(false)\r\n const [editingTopic, setEditingTopic] = React.useState<OBC.Topic | Partial<OBC.Topic> | null>(null)\r\n\r\n const handleAction = React.useCallback((action: TopicAction, id: string) => {\r\n const topic = bcfTopics.find(t => t.guid === id)\r\n if (!topic) {\r\n return\r\n }\r\n\r\n if (action === 'view') {\r\n bcfTopicsManager?.view(topic.guid)\r\n }\r\n else if (action === 'edit') {\r\n setEditingTopic(topic)\r\n setCreateDialogOpen(true)\r\n }\r\n else if (action === 'delete') {\r\n bcfTopicsManager?.remove(topic.guid)\r\n // Remove from BIM state\r\n bimDispatch({ \r\n type: 'REMOVE_BCF_TOPIC', \r\n payload: { bcfTopicId: id } \r\n })\r\n }\r\n }, [bcfTopics, bcfTopicsManager, bimDispatch])\r\n\r\n const handleAddTopic = React.useCallback(() => {\r\n setEditingTopic(null)\r\n setCreateDialogOpen(true)\r\n }, [])\r\n\r\n const handleCreateTopic = React.useCallback((formData: BCFTopicFormData) => {\r\n // Create BCF Topic using OBC.Topic interface\r\n const newTopic: OBC.Topic | Partial<OBC.Topic> = {\r\n guid: crypto.randomUUID(),\r\n title: formData.title,\r\n description: formData.description,\r\n status: formData.topicStatus,\r\n type: formData.topicType,\r\n priority: formData.priority,\r\n stage: formData.stage,\r\n assignedTo: formData.assignedTo || undefined,\r\n dueDate: formData.dueDate || undefined,\r\n creationDate: new Date(),\r\n creationAuthor: user?.email || 'anonymous@example.com',\r\n labels: new Set(formData.labels)\r\n }\r\n \r\n // Add to BCF manager\r\n const createdTopic = bcfTopicsManager?.create({\r\n ...newTopic,\r\n creationAuthor: user?.email || 'anonymous@example.com'\r\n })\r\n\r\n const topicToAdd = createdTopic || newTopic\r\n\r\n console.log('New topic to add:', topicToAdd)\r\n \r\n // Check if topic already exists in global state before adding\r\n const existingTopic = bcfTopics.find(existingTopic => existingTopic.guid === topicToAdd.guid)\r\n if (!existingTopic) {\r\n // Add to BIM state (use the created topic or fallback to newTopic)\r\n bimDispatch({ \r\n type: 'ADD_BCF_TOPIC', \r\n payload: { bcfTopic: topicToAdd } \r\n })\r\n } else {\r\n console.log(`BCF topic with ID ${topicToAdd.guid} already exists, skipping...`)\r\n }\r\n\r\n }, [bcfTopicsManager, bimDispatch, user?.email, bcfTopics])\r\n\r\n const handleEditTopic = React.useCallback((formData: BCFTopicFormData) => {\r\n if (!editingTopic) return\r\n\r\n try {\r\n // Update the existing topic with new data\r\n const updatedTopic: OBC.Topic | Partial<OBC.Topic> = {\r\n ...editingTopic,\r\n title: formData.title,\r\n description: formData.description,\r\n status: formData.topicStatus,\r\n type: formData.topicType,\r\n priority: formData.priority,\r\n stage: formData.stage,\r\n assignedTo: formData.assignedTo || undefined,\r\n dueDate: formData.dueDate || undefined,\r\n labels: new Set(formData.labels),\r\n modifiedDate: new Date(),\r\n modifiedAuthor: user?.email || 'anonymous@example.com'\r\n }\r\n\r\n // Update in BCF Manager first\r\n bcfTopicsManager?.edit(updatedTopic)\r\n\r\n // Update in BIM state\r\n bimDispatch({ \r\n type: 'EDIT_BCF_TOPIC', \r\n payload: { bcfTopic: updatedTopic } \r\n })\r\n\r\n // Clear editing state\r\n setEditingTopic(null)\r\n } catch (error) {\r\n console.error('Error editing topic:', error)\r\n }\r\n }, [editingTopic, bimDispatch, bcfTopicsManager, user?.email])\r\n\r\n const handleDialogSubmit = React.useCallback((formData: BCFTopicFormData) => {\r\n if (editingTopic) {\r\n handleEditTopic(formData)\r\n } else {\r\n handleCreateTopic(formData)\r\n }\r\n }, [editingTopic, handleEditTopic, handleCreateTopic])\r\n\r\n const handleDialogClose = React.useCallback((open: boolean) => {\r\n setCreateDialogOpen(open)\r\n if (!open) {\r\n setEditingTopic(null)\r\n }\r\n }, [])\r\n\r\n const handleExportBCF = React.useCallback(async () => {\r\n try {\r\n const buildingName = building?.buildingName || building?.buildingAddress || String(building.id) || 'Unknown Building'\r\n await bcfTopicsManager?.downloadBCF(buildingName)\r\n } catch (error) {\r\n console.error('Failed to export BCF:', error)\r\n }\r\n }, [bcfTopicsManager, building])\r\n\r\n const handleImportBCF = React.useCallback(async () => {\r\n try {\r\n const result = await bcfTopicsManager?.uploadBCF()\r\n const {topics, viewpoints} = result || {topics: [], viewpoints: []}\r\n topics.map((topic: OBC.Topic, index) => {\r\n // topic.viewpoints.add(viewpoints[index].guid) // I AM NOT GETTING THE VIEWPOINTS\r\n // console.log('Imported topic:', topic)\r\n bimDispatch({ \r\n type: 'ADD_BCF_TOPIC', \r\n payload: { bcfTopic: topic } \r\n })\r\n })\r\n } catch (error) {\r\n console.error('Failed to import BCF:', error)\r\n }\r\n }, [bcfTopicsManager, bimDispatch, bcfTopics])\r\n\r\n return (\r\n <>\r\n <CollapsibleSection\r\n title={t('topicsTitle')}\r\n icon={BcfIcon}\r\n className=\"overflow-y-auto\"\r\n itemCount={bcfTopics.length}\r\n onAddItem={handleAddTopic}\r\n addItemTitle={t('addTopicTitle')}\r\n >\r\n {/* BCF Operations */}\r\n <div className=\"flex gap-2 mb-3 mx-2 overflow-x-hidden \">\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={handleExportBCF}\r\n className=\"text-xs\"\r\n title={t('exportBCFTitle')}\r\n disabled={!ability.can('read', 'File')}\r\n >\r\n <LR.Download className=\"h-3 w-3 mr-1\" />\r\n {t('exportBCF')}\r\n </Button>\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={handleImportBCF}\r\n className=\"text-xs\"\r\n title={t('importBCFTitle')}\r\n disabled={!ability.can('create', 'File')}\r\n >\r\n <LR.Upload className=\"h-3 w-3 mr-1\" />\r\n {t('importBCF')}\r\n </Button>\r\n </div>\r\n\r\n <div className=\"space-y-2 mx-2 pr-2\">\r\n {bcfTopics.map((topic) => (\r\n <CollapsibleTopicItem\r\n key={topic.guid}\r\n topic={topic}\r\n onAction={handleAction}\r\n />\r\n ))}\r\n </div>\r\n </CollapsibleSection>\r\n\r\n <CreateTopicDialog\r\n open={createDialogOpen}\r\n onOpenChange={handleDialogClose}\r\n onSubmit={handleDialogSubmit}\r\n existingTopic={editingTopic}\r\n />\r\n </>\r\n )\r\n}"],"mappings":"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","names":["t","existingTopic"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS5B,wBAAgB,OAAO,sBA2CxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\nimport { ModelsSection } from './src/ModelsSection'\r\nimport { FilesSection } from './src/FilesSection'\r\nimport { BuildingsContext } from '../../../../../../../store'\r\nimport { useSearchParams } from 'next/navigation'\r\nimport { useFilesByBuildingId } from '../../../../../../../hooks/files/files'\r\nimport { DbFile } from '../../../../../../../types/dbTypes'\r\nimport { SearchInput } from '../../../../../../ui'\r\n \r\n export function FileTab() {\r\n const { state: buildingState } = React.useContext(BuildingsContext)\r\n const { building } = buildingState.buildings\r\n let buildingId:number;\r\n const [searchQuery, setSearchQuery] = React.useState('')\r\n\r\n const urlBuildingId = useSearchParams().get('buildingId')\r\n\r\n if (building) buildingId = building.id\r\n else if (urlBuildingId) buildingId = Number(urlBuildingId)\r\n\r\n const filesData: DbFile[] = useFilesByBuildingId(buildingId).files || []\r\n\r\n const bimFiles: DbFile[] = []\r\n const nonBimFiles: DbFile[] = []\r\n\r\n // single .map pass to populate both arrays\r\n filesData.map((file) => {\r\n const {extension} = file\r\n if (!extension) return\r\n const isBim = extension.toLowerCase() === 'ifc' || extension.toLowerCase() === 'frag'\r\n\r\n if (isBim) {\r\n bimFiles.push(file)\r\n } else {\r\n nonBimFiles.push(file)\r\n }\r\n })\r\n\r\n\r\n return (\r\n <div className=\"flex-1 flex flex-col space-y-6 py-4 overflow-hidden\">\r\n <div className=\"px-4\">\r\n <SearchInput\r\n placeholder=\"Search...\"\r\n value={searchQuery}\r\n onChange={e => setSearchQuery(e.target.value)}\r\n />\r\n </div>\r\n <ModelsSection files={bimFiles} query={searchQuery} />\r\n <FilesSection files={nonBimFiles} query={searchQuery} />\r\n </div>\r\n )\r\n}\r\n"],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/FileTab/index.tsx"],"sourcesContent":["'use client'\r\n\r\n// SPDX-License-Identifier: AGPL-3.0-or-later\r\n// Copyright (C) 2025 Collab Digital Twins\r\n\r\nimport * as React from 'react'\r\nimport { ModelsSection } from './src/ModelsSection'\r\nimport { FilesSection } from './src/FilesSection'\r\nimport { BuildingsContext } from '../../../../../../../store'\r\nimport { useSearchParams } from 'next/navigation'\r\nimport { useFilesByBuildingId } from '../../../../../../../hooks/files/files'\r\nimport { DbFile } from '../../../../../../../types/dbTypes'\r\nimport { SearchInput } from '../../../../../../ui'\r\n \r\n export function FileTab() {\r\n const { state: buildingState } = React.useContext(BuildingsContext)\r\n const { building } = buildingState.buildings\r\n let buildingId:number;\r\n const [searchQuery, setSearchQuery] = React.useState('')\r\n\r\n const urlBuildingId = useSearchParams().get('buildingId')\r\n\r\n if (building) buildingId = building.id\r\n else if (urlBuildingId) buildingId = Number(urlBuildingId)\r\n\r\n const filesData: DbFile[] = useFilesByBuildingId(buildingId).files || []\r\n\r\n const bimFiles: DbFile[] = []\r\n const nonBimFiles: DbFile[] = []\r\n\r\n // single .map pass to populate both arrays\r\n filesData.map((file) => {\r\n const {extension} = file\r\n if (!extension) return\r\n const isBim = extension.toLowerCase() === 'ifc' || extension.toLowerCase() === 'frag'\r\n\r\n if (isBim) {\r\n bimFiles.push(file)\r\n } else {\r\n nonBimFiles.push(file)\r\n }\r\n })\r\n\r\n\r\n return (\r\n <div className=\"flex-1 flex flex-col space-y-6 py-4 overflow-hidden\">\r\n <div className=\"px-4\">\r\n <SearchInput\r\n placeholder=\"Search...\"\r\n value={searchQuery}\r\n onChange={e => setSearchQuery(e.target.value)}\r\n />\r\n </div>\r\n <ModelsSection files={bimFiles} query={searchQuery} />\r\n <FilesSection files={nonBimFiles} query={searchQuery} />\r\n </div>\r\n )\r\n}\r\n"],"mappings":";AA6CI,SAEI,KAFJ;AAxCJ,YAAY,WAAW;AACvB,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AAErC,SAAS,mBAAmB;AAEnB,SAAS,UAAU;AACxB,QAAM,EAAE,OAAO,cAAc,IAAI,MAAM,WAAW,gBAAgB;AAClE,QAAM,EAAE,SAAS,IAAI,cAAc;AACnC,MAAI;AACJ,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAS,EAAE;AAEzD,QAAM,gBAAgB,gBAAgB,EAAE,IAAI,YAAY;AAExD,MAAI,SAAU,cAAa,SAAS;AAAA,WAC3B,cAAe,cAAa,OAAO,aAAa;AAEzD,QAAM,YAAsB,qBAAqB,UAAU,EAAE,SAAS,CAAC;AAEvE,QAAM,WAAqB,CAAC;AAC5B,QAAM,cAAwB,CAAC;AAG/B,YAAU,IAAI,CAAC,SAAS;AACtB,UAAM,EAAC,UAAS,IAAI;AACpB,QAAI,CAAC,UAAW;AAChB,UAAM,QAAQ,UAAU,YAAY,MAAM,SAAS,UAAU,YAAY,MAAM;AAE/E,QAAI,OAAO;AACT,eAAS,KAAK,IAAI;AAAA,IACpB,OAAO;AACL,kBAAY,KAAK,IAAI;AAAA,IACvB;AAAA,EACF,CAAC;AAGD,SACE,qBAAC,SAAI,WAAU,uDACb;AAAA,wBAAC,SAAI,WAAU,QACb;AAAA,MAAC;AAAA;AAAA,QACC,aAAY;AAAA,QACZ,OAAO;AAAA,QACP,UAAU,OAAK,eAAe,EAAE,OAAO,KAAK;AAAA;AAAA,IAC9C,GACF;AAAA,IACA,oBAAC,iBAAc,OAAO,UAAU,OAAO,aAAa;AAAA,IACpD,oBAAC,gBAAa,OAAO,aAAa,OAAO,aAAa;AAAA,KACxD;AAEJ;","names":[]}
|
package/dist/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilesSection.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilesSection.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/core/components/viewers/bim/src/BimSidebar/src/FileTab/src/FilesSection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmB9B,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,uCAAuC,CAAA;AAQvE,UAAU,iBAAiB;IACzB,KAAK,EAAE,KAAK,EAAE,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAUD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE,iBAAiB,qBA+jBpE"}
|