synapse-react-client 4.0.25 → 4.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +3 -2
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +4 -3
- package/dist/SWC.index.js.map +1 -1
- package/dist/assets/icons/FileCopy.d.ts +5 -0
- package/dist/assets/icons/FileCopy.d.ts.map +1 -0
- package/dist/assets/icons/FileCopy.js +13 -0
- package/dist/assets/icons/FileCopy.js.map +1 -0
- package/dist/assets/icons/NIHIcon.d.ts +4 -0
- package/dist/assets/icons/NIHIcon.d.ts.map +1 -0
- package/dist/assets/icons/NIHIcon.js +14 -0
- package/dist/assets/icons/NIHIcon.js.map +1 -0
- package/dist/assets/icons/fileCopy.svg +8 -0
- package/dist/assets/icons/fileCopy2.js +33 -0
- package/dist/assets/icons/fileCopy2.js.map +1 -0
- package/dist/assets/icons/nih.js +35 -0
- package/dist/assets/icons/nih.js.map +1 -0
- package/dist/assets/icons/nih.svg +9 -0
- package/dist/assets/illustrations/compute_illustration.js +485 -0
- package/dist/assets/illustrations/compute_illustration.js.map +1 -0
- package/dist/assets/illustrations/compute_illustration.svg +204 -0
- package/dist/assets/illustrations/curate_data_illustration.js +479 -0
- package/dist/assets/illustrations/curate_data_illustration.js.map +1 -0
- package/dist/assets/illustrations/curate_data_illustration.svg +91 -0
- package/dist/components/AccountLevelBadges/useRevokeCertificationUI.js +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsDialog.js +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.d.ts +1 -0
- package/dist/components/Authentication/AuthenticationMethodSelection.d.ts.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js +17 -10
- package/dist/components/Authentication/AuthenticationMethodSelection.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.d.ts +2 -2
- package/dist/components/Authentication/LoginForm.d.ts +1 -0
- package/dist/components/Authentication/LoginForm.d.ts.map +1 -1
- package/dist/components/Authentication/LoginForm.js +3 -2
- package/dist/components/Authentication/LoginForm.js.map +1 -1
- package/dist/components/Authentication/LoginMethod.d.ts +2 -2
- package/dist/components/Authentication/LoginMethod.d.ts.map +1 -1
- package/dist/components/Authentication/LoginMethod.js +10 -8
- package/dist/components/Authentication/LoginMethod.js.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.d.ts +1 -0
- package/dist/components/Authentication/StandaloneLoginForm.d.ts.map +1 -1
- package/dist/components/Authentication/StandaloneLoginForm.js +16 -15
- package/dist/components/Authentication/StandaloneLoginForm.js.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +0 -2
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js +24 -30
- package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/ChallengeDataDownload/ChallengeDataDownload.js +1 -1
- package/dist/components/ChallengeDetailPage/ChallengeDetailPage.js +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +1 -1
- package/dist/components/ChangePassword/ChangePassword.js +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.d.ts +3 -2
- package/dist/components/CopyToClipboardString/CopyToClipboardString.d.ts.map +1 -1
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js +27 -18
- package/dist/components/CopyToClipboardString/CopyToClipboardString.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.css +1 -1
- package/dist/components/DataExplorer/DataExplorer.d.ts +16 -2
- package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js +82 -75
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
- package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.module.scss +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +2 -5
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts +35 -0
- package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -0
- package/dist/components/DataGrid/SyncGridWithSourceButton.js +115 -0
- package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -0
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +14 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts +2 -0
- package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.d.ts +12 -7
- package/dist/components/DataGrid/useMergeGridWithSource.d.ts.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js +31 -25
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +15 -19
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListTable.js +1 -1
- package/dist/components/DynamicForm/DynamicForm.js +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
- package/dist/components/EntityAclEditor/useNotifyNewACLUsers.js +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.d.ts +1 -0
- package/dist/components/EntityFinder/EntityIdTextField.d.ts.map +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.js +7 -6
- package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.css +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.d.ts.map +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.js +47 -39
- package/dist/components/EntitySidebar/EntitySidebar.js.map +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.module.js +11 -11
- package/dist/components/EntitySidebar/EntitySidebar.module.js.map +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.module.scss +6 -6
- package/dist/components/FieldDescription/FieldDescription.css +1 -0
- package/dist/components/FieldDescription/FieldDescription.d.ts +15 -0
- package/dist/components/FieldDescription/FieldDescription.d.ts.map +1 -0
- package/dist/components/FieldDescription/FieldDescription.js +13 -0
- package/dist/components/FieldDescription/FieldDescription.js.map +1 -0
- package/dist/components/FieldDescription/FieldDescription.module.js +5 -0
- package/dist/components/FieldDescription/FieldDescription.module.js.map +1 -0
- package/dist/components/FieldDescription/FieldDescription.module.scss +8 -0
- package/dist/components/FieldDescription/index.d.ts +3 -0
- package/dist/components/FieldDescription/index.d.ts.map +1 -0
- package/dist/components/FieldDescription/index.js +2 -0
- package/dist/components/GenericCard/TableRowGenericCard.d.ts +2 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +3 -2
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/HeaderCard.d.ts.map +1 -1
- package/dist/components/HeaderCard.js +4 -0
- package/dist/components/HeaderCard.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.d.ts +2 -1
- package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
- package/dist/components/HexGrid/HexGrid.js +13 -13
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.d.ts +1 -1
- package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
- package/dist/components/IconSvg/IconSvg.js +216 -212
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/OAuthClientAclEditor/OAuthAclEditorModal.js +1 -1
- package/dist/components/OAuthClientManagement/OAuthManagement.js +1 -1
- package/dist/components/PortalAclEditor/PortalAclEditorModal.js +1 -1
- package/dist/components/PortalList/CreatePortalModal.js +1 -1
- package/dist/components/PortalList/PortalCard.js +1 -1
- package/dist/components/ProjectInfo/ProjectInfo.css +1 -0
- package/dist/components/ProjectInfo/ProjectInfo.d.ts +5 -0
- package/dist/components/ProjectInfo/ProjectInfo.d.ts.map +1 -0
- package/dist/components/ProjectInfo/ProjectInfo.js +50 -0
- package/dist/components/ProjectInfo/ProjectInfo.js.map +1 -0
- package/dist/components/ProjectInfo/ProjectInfo.module.js +11 -0
- package/dist/components/ProjectInfo/ProjectInfo.module.js.map +1 -0
- package/dist/components/ProjectInfo/ProjectInfo.module.scss +35 -0
- package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts +10 -0
- package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts.map +1 -0
- package/dist/components/ProjectInfo/ProjectInfoPopover.js +94 -0
- package/dist/components/ProjectInfo/ProjectInfoPopover.js.map +1 -0
- package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts +2 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js +67 -75
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts +3 -0
- package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js +140 -85
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +3 -3
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.js +1 -1
- package/dist/components/SynapseChat/SynapseChat.js +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.css +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js +9 -8
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.scss +4 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.d.ts +2 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNews.js +8 -7
- package/dist/components/SynapseHomepageV2/WordPressNews.js.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.d.ts +5 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js +19 -11
- package/dist/components/SynapseHomepageV2/WordPressNewsItem.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
- package/dist/components/TextField/TextField.css +1 -1
- package/dist/components/TextField/TextField.d.ts.map +1 -1
- package/dist/components/TextField/TextField.js +27 -25
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/components/TextField/TextField.module.js +3 -3
- package/dist/components/TextField/TextField.module.js.map +1 -1
- package/dist/components/TextField/TextField.module.scss +2 -5
- package/dist/components/Webhook/WebhookVerificationDialog.js +1 -1
- package/dist/components/WordPress/useWordPressPosts.js +1 -1
- package/dist/components/WordPress/useWordPressPosts.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/ApproveSubmissionConfirmationModal.js +1 -1
- package/dist/components/dataaccess/SubmissionPage/CancelDataAccessRequestConfirmationModal.js +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +66 -49
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/error/SendMessageToEntityOwnerDialog.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/menu/ComplexMenu.d.ts.map +1 -1
- package/dist/components/menu/ComplexMenu.js +1 -4
- package/dist/components/menu/ComplexMenu.js.map +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js +1 -1
- package/dist/features/curator/GridPage/components/UpdateGridPageSearchParamsForm.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.d.ts +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.d.ts.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboard.js +36 -35
- package/dist/features/curator/dashboard/CuratorDashboard.js.map +1 -1
- package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts +13 -0
- package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts.map +1 -0
- package/dist/features/curator/dashboard/CuratorDashboardRouter.js +37 -0
- package/dist/features/curator/dashboard/CuratorDashboardRouter.js.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCard.css +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts +3 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.d.ts.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.js +26 -157
- package/dist/features/curator/dashboard/components/CurationTaskCard.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.js +10 -6
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.js.map +1 -1
- package/dist/features/curator/dashboard/components/CurationTaskCard.module.scss +31 -0
- package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts +25 -0
- package/dist/features/curator/dashboard/components/CurationTaskCardLayout.d.ts.map +1 -0
- package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js +134 -0
- package/dist/features/curator/dashboard/components/CurationTaskCardLayout.js.map +1 -0
- package/dist/features/curator/dashboard/components/ExecutableTaskCard.d.ts +10 -0
- package/dist/features/curator/dashboard/components/ExecutableTaskCard.d.ts.map +1 -0
- package/dist/features/curator/dashboard/components/ExecutableTaskCard.js +51 -0
- package/dist/features/curator/dashboard/components/ExecutableTaskCard.js.map +1 -0
- package/dist/features/curator/dashboard/components/GridTaskCard.d.ts +10 -0
- package/dist/features/curator/dashboard/components/GridTaskCard.d.ts.map +1 -0
- package/dist/features/curator/dashboard/components/GridTaskCard.js +35 -0
- package/dist/features/curator/dashboard/components/GridTaskCard.js.map +1 -0
- package/dist/features/curator/dashboard/components/NextStepButton.css +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.d.ts +3 -0
- package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js +56 -26
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.module.js +6 -5
- package/dist/features/curator/dashboard/components/NextStepButton.module.js.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.module.scss +28 -0
- package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.d.ts +31 -0
- package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.d.ts.map +1 -0
- package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.js +32 -0
- package/dist/features/curator/dashboard/components/getExecutableTaskButtonState.js.map +1 -0
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +213 -204
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts +0 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +19 -39
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts +9 -3
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +37 -46
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts +17 -0
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js +43 -0
- package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js.map +1 -0
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +27 -26
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/CommonTaskFields.d.ts +16 -0
- package/dist/features/entity/metadata-task/create-task/CommonTaskFields.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CommonTaskFields.js +64 -0
- package/dist/features/entity/metadata-task/create-task/CommonTaskFields.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts +41 -0
- package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js +165 -0
- package/dist/features/entity/metadata-task/create-task/ComputeTaskForm.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts +18 -0
- package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js +78 -0
- package/dist/features/entity/metadata-task/create-task/CreateCurationTaskFlow.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.d.ts +10 -0
- package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.js +40 -0
- package/dist/features/entity/metadata-task/create-task/CreateTaskCategoryPicker.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.d.ts +13 -0
- package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.js +35 -0
- package/dist/features/entity/metadata-task/create-task/CreateTaskConfirmation.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts +41 -0
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +198 -0
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.d.ts +8 -0
- package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.js +29 -0
- package/dist/features/entity/metadata-task/create-task/EditCurationTaskPage.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts +13 -0
- package/dist/features/entity/metadata-task/create-task/FileBasedFields.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/FileBasedFields.js +65 -0
- package/dist/features/entity/metadata-task/create-task/FileBasedFields.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.d.ts +11 -0
- package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.js +33 -0
- package/dist/features/entity/metadata-task/create-task/ProjectSelectorField.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts +13 -0
- package/dist/features/entity/metadata-task/create-task/RecordBasedFields.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js +38 -0
- package/dist/features/entity/metadata-task/create-task/RecordBasedFields.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts +13 -0
- package/dist/features/entity/metadata-task/create-task/RecordSetFields.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/RecordSetFields.js +72 -0
- package/dist/features/entity/metadata-task/create-task/RecordSetFields.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts +11 -0
- package/dist/features/entity/metadata-task/create-task/SampleSheetFields.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js +42 -0
- package/dist/features/entity/metadata-task/create-task/SampleSheetFields.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.d.ts +17 -0
- package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +70 -0
- package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/TaskFormActions.d.ts +23 -0
- package/dist/features/entity/metadata-task/create-task/TaskFormActions.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/TaskFormActions.js +68 -0
- package/dist/features/entity/metadata-task/create-task/TaskFormActions.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/TaskFormHeader.d.ts +17 -0
- package/dist/features/entity/metadata-task/create-task/TaskFormHeader.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +33 -0
- package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts +50 -0
- package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js +76 -0
- package/dist/features/entity/metadata-task/create-task/useCurationTaskFormState.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts +36 -0
- package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js +31 -0
- package/dist/features/entity/metadata-task/create-task/utils/buildComputeTaskPayload.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts +32 -0
- package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js +33 -0
- package/dist/features/entity/metadata-task/create-task/utils/buildCurateTaskPayload.js.map +1 -0
- package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.d.ts +10 -0
- package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.js +13 -0
- package/dist/features/entity/metadata-task/create-task/utils/taskIdValidation.js.map +1 -0
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js +24 -24
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js +2 -2
- package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask_legacy.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +33 -32
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +24 -21
- package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.d.ts +84 -15
- package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/constants.js +47 -3
- package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/dueDate.d.ts +22 -0
- package/dist/features/entity/metadata-task/utils/dueDate.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/utils/dueDate.js +24 -0
- package/dist/features/entity/metadata-task/utils/dueDate.js.map +1 -0
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts +2 -2
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js +5 -6
- package/dist/features/entity/metadata-task/utils/getCreateGridRequestForMetadataTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.d.ts +4 -4
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js +5 -6
- package/dist/features/entity/metadata-task/utils/getGridSourceIdForTask.js.map +1 -1
- package/dist/features/entity/metadata-task/utils/types.d.ts +12 -0
- package/dist/features/entity/metadata-task/utils/types.d.ts.map +1 -0
- package/dist/features/entity/metadata-task/utils/types.js +18 -0
- package/dist/features/entity/metadata-task/utils/types.js.map +1 -0
- package/dist/mocks/curation/mockCurationTask.d.ts +6 -0
- package/dist/mocks/curation/mockCurationTask.d.ts.map +1 -1
- package/dist/mocks/curation/mockCurationTask.js +20 -3
- package/dist/mocks/curation/mockCurationTask.js.map +1 -1
- package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.d.ts +16 -0
- package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.js +24 -0
- package/dist/mocks/msw/handlers/curationTaskExecutionHandlers.js.map +1 -0
- package/dist/style/components/_data-grid-extra.css +1 -1
- package/dist/style/components/_data-grid-extra.scss +0 -6
- package/dist/synapse-client/SynapseClient.d.ts +7 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +493 -482
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-client/index.js +3 -3
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts +8 -1
- package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +48 -34
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/theme/palette/Palettes.js +2 -2
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.d.ts.map +1 -1
- package/dist/utils/AppUtils/session/useSessionManager.js +50 -48
- package/dist/utils/AppUtils/session/useSessionManager.js.map +1 -1
- package/dist/utils/SynapseConstants.d.ts +4 -1
- package/dist/utils/SynapseConstants.d.ts.map +1 -1
- package/dist/utils/SynapseConstants.js +86 -83
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +2 -2
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js +37 -27
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/package.json +6 -6
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.d.ts +0 -8
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.d.ts.map +0 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +0 -64
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js.map +0 -1
|
@@ -1,35 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
1
|
+
import { useGetFeatureFlag as e } from "../../synapse-queries/featureflags/useGetFeatureFlag.js";
|
|
2
|
+
import "../../synapse-queries/featureflags/index.js";
|
|
3
|
+
import { FeatureFlagEnum as t } from "../../utils/featureflag/FeatureFlags.js";
|
|
4
|
+
import { useSynchronizeGridSession as n } from "../../synapse-queries/grid/useGridSession.js";
|
|
5
|
+
import r from "./useMergeGridWithTable.js";
|
|
6
|
+
import i from "./useMergeGridWithRecordSet.js";
|
|
7
|
+
import { EntityType as a } from "@sage-bionetworks/synapse-client";
|
|
8
|
+
import { useMutation as o } from "@tanstack/react-query";
|
|
9
|
+
import { c as s } from "react/compiler-runtime";
|
|
7
10
|
//#region src/components/DataGrid/useMergeGridWithSource.ts
|
|
8
|
-
function
|
|
9
|
-
let s =
|
|
10
|
-
|
|
11
|
-
let { gridSessionId: t, sourceEntityId: n, sourceEntityType: i } = e,
|
|
12
|
-
return
|
|
13
|
-
type: "
|
|
14
|
-
data: await
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
function c(c) {
|
|
12
|
+
let l = s(8), u = n(), d = r(), f = i(), p = e(t.ENABLE_RECORDSET_SYNCHRONIZATION), m;
|
|
13
|
+
l[0] !== p || l[1] !== d || l[2] !== u || l[3] !== f ? (m = async (e) => {
|
|
14
|
+
let { gridSessionId: t, sourceEntityId: n, sourceEntityType: r, syncType: i } = e, o = r === a.entityview, s = r === a.recordset;
|
|
15
|
+
return o || s && p ? {
|
|
16
|
+
type: "synchronize",
|
|
17
|
+
data: await u.mutateAsync({
|
|
18
|
+
gridSessionId: t,
|
|
19
|
+
syncType: i
|
|
20
|
+
})
|
|
21
|
+
} : s ? {
|
|
22
|
+
type: "recordset_overwrite",
|
|
23
|
+
data: await f.mutateAsync({ gridSessionId: t })
|
|
18
24
|
} : {
|
|
19
|
-
type: "
|
|
20
|
-
data: await
|
|
25
|
+
type: "tableUpdateTransaction",
|
|
26
|
+
data: await d.mutateAsync({
|
|
21
27
|
gridSessionId: t,
|
|
22
28
|
sourceEntityId: n
|
|
23
29
|
})
|
|
24
30
|
};
|
|
25
|
-
},
|
|
26
|
-
let
|
|
27
|
-
return
|
|
28
|
-
...
|
|
29
|
-
mutationFn:
|
|
30
|
-
},
|
|
31
|
+
}, l[0] = p, l[1] = d, l[2] = u, l[3] = f, l[4] = m) : m = l[4];
|
|
32
|
+
let h;
|
|
33
|
+
return l[5] !== c || l[6] !== m ? (h = {
|
|
34
|
+
...c,
|
|
35
|
+
mutationFn: m
|
|
36
|
+
}, l[5] = c, l[6] = m, l[7] = h) : h = l[7], o(h);
|
|
31
37
|
}
|
|
32
38
|
//#endregion
|
|
33
|
-
export {
|
|
39
|
+
export { c as default };
|
|
34
40
|
|
|
35
41
|
//# sourceMappingURL=useMergeGridWithSource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMergeGridWithSource.js","names":["useMergeGridWithTable","
|
|
1
|
+
{"version":3,"file":"useMergeGridWithSource.js","names":["useMergeGridWithTable","EntityType","GridRecordSetExportResponse","SynchronizeGridResponse","SyncType","TableUpdateTransactionResponse","useMutation","UseMutationOptions","SynapseClientError","useSynchronizeGridSession","useUnsafeLegacyExportAndOverwriteRecordSet","useGetFeatureFlag","FeatureFlagEnum","MergeGridWithSource","gridSessionId","sourceEntityId","sourceEntityType","syncType","MergeGridResult","type","data","useMergeGridWithSource","options","$","_c","syncGridWithSource","mergeGridWithTable","unsafeLegacyOverwriteRecordset","enableRecordSetSync","ENABLE_RECORDSET_SYNCHRONIZATION","t0","variables","isEntityView","entityview","isRecordSet","recordset","mutateAsync","data_0","data_1","t1","mutationFn"],"sources":["../../../src/components/DataGrid/useMergeGridWithSource.ts"],"sourcesContent":["import useMergeGridWithTable from './useMergeGridWithTable'\nimport {\n EntityType,\n GridRecordSetExportResponse,\n SynchronizeGridResponse,\n SyncType,\n TableUpdateTransactionResponse,\n} from '@sage-bionetworks/synapse-client'\nimport { useMutation, UseMutationOptions } from '@tanstack/react-query'\nimport { SynapseClientError } from '@sage-bionetworks/synapse-client'\nimport { useSynchronizeGridSession } from '@/synapse-queries/grid/useGridSession'\nimport useUnsafeLegacyExportAndOverwriteRecordSet from './useMergeGridWithRecordSet'\nimport { useGetFeatureFlag } from '@/synapse-queries/featureflags'\nimport { FeatureFlagEnum } from '@/utils/featureflag/FeatureFlags'\n\nexport type MergeGridWithSource = {\n /** The ID of the grid session to merge with the source entity. */\n gridSessionId: string\n /** The ID of the source entity to merge with. This is only used for client-side logic. */\n sourceEntityId?: string\n /** The type of the source entity. This is only used for client-side logic. */\n sourceEntityType?: EntityType\n /** The type of synchronization to perform. Only valid for types supported by the Synchronize service. */\n syncType?: SyncType\n}\n\nexport type MergeGridResult =\n | { type: 'synchronize'; data: SynchronizeGridResponse }\n | {\n /** @deprecated */\n type: 'recordset_overwrite'\n data: GridRecordSetExportResponse\n }\n | {\n type: 'tableUpdateTransaction'\n data: TableUpdateTransactionResponse\n }\n\n/**\n * Single entrypoint to handle merging grid edits with source Synapse data.\n * Calls the appropriate mutation based on entity type:\n * - EntityView/RecordSet -> useSynchronizeGridSession\n * - TableEntity -> useMergeGridWithTable\n *\n * Returns a query mutation that handles synchronization.\n */\nexport default function useMergeGridWithSource(\n options?: Omit<\n UseMutationOptions<\n MergeGridResult,\n SynapseClientError,\n MergeGridWithSource\n >,\n 'mutationFn'\n >,\n) {\n // SynchronizeGridSession is the best option, but not all types are supported.\n // As support for other types is added, the other hooks should be replaced.\n const syncGridWithSource = useSynchronizeGridSession()\n const mergeGridWithTable = useMergeGridWithTable()\n const unsafeLegacyOverwriteRecordset =\n useUnsafeLegacyExportAndOverwriteRecordSet()\n\n const enableRecordSetSync = useGetFeatureFlag(\n FeatureFlagEnum.ENABLE_RECORDSET_SYNCHRONIZATION,\n )\n\n return useMutation<MergeGridResult, SynapseClientError, MergeGridWithSource>({\n ...options,\n mutationFn: async variables => {\n const { gridSessionId, sourceEntityId, sourceEntityType, syncType } =\n variables\n const isEntityView = sourceEntityType === EntityType.entityview\n const isRecordSet = sourceEntityType === EntityType.recordset\n\n if (isEntityView || (isRecordSet && enableRecordSetSync)) {\n const data = await syncGridWithSource.mutateAsync({\n gridSessionId,\n syncType,\n })\n return { type: 'synchronize', data }\n } else if (isRecordSet) {\n // Deprecated/legacy path: this will overwrite the RecordSet with the grid session data instead of merging/synchronizing, which is prone to data loss.\n // Remove once we have confidence in the synch service for RecordSets.\n const data = await unsafeLegacyOverwriteRecordset.mutateAsync({\n gridSessionId,\n })\n return { type: 'recordset_overwrite', data }\n } else {\n const data = await mergeGridWithTable.mutateAsync({\n gridSessionId,\n sourceEntityId: sourceEntityId!,\n })\n return { type: 'tableUpdateTransaction', data }\n }\n },\n })\n}\n"],"mappings":";;;;;;;;;;AA8CA,SAAeqB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAYbC,IAA2BhB,EAA0B,GACrDiB,IAA2B1B,EAAsB,GACjD2B,IACEjB,EAA2C,GAE7CkB,IAA4BjB,EAC1BC,EAAeiB,gCACjB,GAACC;CAAA,AAAAP,EAAA,OAAAK,KAAAL,EAAA,OAAAG,KAAAH,EAAA,OAAAE,KAAAF,EAAA,OAAAI,KAIaG,IAAA,OAAAC,MAAA;EACV,IAAA,EAAAjB,kBAAAC,mBAAAC,qBAAAC,gBACEc,GACFC,IAAqBhB,MAAqBf,EAAUgC,YACpDC,IAAoBlB,MAAqBf,EAAUkC;EAmB/C,OAjBAH,KAAiBE,KAAAN,IAKZ;GAAAT,MAAQ;GAAaC,MAAAA,MAJTK,EAAkBW,YAAa;IAAAtB;IAAAG;GAGlD,CAAC;EACkC,IAC1BiB,IAMF;GAAAf,MAAQ;GAAqBC,MAAEA,MAHnBO,EAA8BS,YAAa,EAAAtB,iBAE9D,CAAC;EAC0C,IAMpC;GAAAK,MAAQ;GAAwBC,MAAEA,MAJtBM,EAAkBU,YAAa;IAAAtB;IAAAC;GAGlD,CAAC;EAC6C;CAC/C,GACFQ,EAAA,KAAAK,GAAAL,EAAA,KAAAG,GAAAH,EAAA,KAAAE,GAAAF,EAAA,KAAAI,GAAAJ,EAAA,KAAAO,KAAAA,IAAAP,EAAA;CAAA,IAAAgB;CACF,OADEhB,EAAA,OAAAD,KAAAC,EAAA,OAAAO,KA5B0ES,IAAA;EAAA,GACxEjB;EAAOkB,YACEV;CA2Bd,GAACP,EAAA,KAAAD,GAAAC,EAAA,KAAAO,GAAAP,EAAA,KAAAgB,KAAAA,IAAAhB,EAAA,IA7BMjB,EAAsEiC,CA6B5E;AAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAGL,MAAM,EAIP,MAAM,wCAAwC,CAAA;AAuE/C,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IACrD,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;
|
|
1
|
+
{"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAGL,MAAM,EAIP,MAAM,wCAAwC,CAAA;AAuE/C,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IACrD,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AAoLD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGzD"}
|
|
@@ -54,21 +54,18 @@ function g(e, t) {
|
|
|
54
54
|
return n.displayName = `CellWithTooltip(${t})`, n;
|
|
55
55
|
}
|
|
56
56
|
function _(e, t) {
|
|
57
|
-
return t ? "header-upsert-key" : e ? "header-cell-required" : "header-cell";
|
|
58
|
-
}
|
|
59
|
-
function v(e, t) {
|
|
60
57
|
return ({ rowData: n }) => ({
|
|
61
58
|
...n,
|
|
62
59
|
[e]: a(t)
|
|
63
60
|
});
|
|
64
61
|
}
|
|
65
|
-
function
|
|
62
|
+
function v(e) {
|
|
66
63
|
return (t) => {
|
|
67
64
|
let n = t.trim();
|
|
68
65
|
return n === "" ? a(e) : n;
|
|
69
66
|
};
|
|
70
67
|
}
|
|
71
|
-
function
|
|
68
|
+
function y(e, t) {
|
|
72
69
|
let n = {
|
|
73
70
|
showPinIcon: e.showPinIcon,
|
|
74
71
|
hasDescription: !!e.description
|
|
@@ -85,31 +82,30 @@ function b(e, t) {
|
|
|
85
82
|
isPinned: e.isPinned,
|
|
86
83
|
onTogglePin: e.onTogglePin
|
|
87
84
|
}),
|
|
88
|
-
headerClassName: _(e.isRequired, !!e.isUpsertKey),
|
|
89
85
|
minWidth: a,
|
|
90
86
|
basis: a,
|
|
91
87
|
grow: 0,
|
|
92
88
|
shrink: 0,
|
|
93
89
|
disabled: e.disabled,
|
|
94
|
-
deleteValue:
|
|
90
|
+
deleteValue: _(e.columnName, e.isRequired),
|
|
95
91
|
pasteValue: o(s.pasteValue, e.columnName, e.schemaPropertyInfo),
|
|
96
92
|
stickyLeft: e.isPinned
|
|
97
93
|
};
|
|
98
94
|
}
|
|
99
|
-
var
|
|
100
|
-
multipleEnum: (e) =>
|
|
95
|
+
var b = {
|
|
96
|
+
multipleEnum: (e) => y(e, n({
|
|
101
97
|
choices: e.enumeratedValues ?? [],
|
|
102
98
|
colType: e.typeInfo?.type || null,
|
|
103
99
|
limitTags: 3,
|
|
104
100
|
clearValue: a(e.isRequired)
|
|
105
101
|
})),
|
|
106
|
-
boolean: (e) =>
|
|
102
|
+
boolean: (e) => y(e, t({
|
|
107
103
|
choices: [!0, !1],
|
|
108
104
|
colType: "boolean",
|
|
109
105
|
clearValue: a(e.isRequired)
|
|
110
106
|
})),
|
|
111
|
-
number: (e) =>
|
|
112
|
-
enumerated: (e) =>
|
|
107
|
+
number: (e) => y(e, m),
|
|
108
|
+
enumerated: (e) => y(e, t({
|
|
113
109
|
choices: e.enumeratedValues ?? [],
|
|
114
110
|
colType: e.typeInfo?.type || null,
|
|
115
111
|
clearValue: a(e.isRequired)
|
|
@@ -124,27 +120,27 @@ var x = {
|
|
|
124
120
|
enumeratedValues: null
|
|
125
121
|
}, i);
|
|
126
122
|
return {
|
|
127
|
-
...
|
|
123
|
+
...y(t, n),
|
|
128
124
|
minWidth: a,
|
|
129
125
|
basis: a
|
|
130
126
|
};
|
|
131
127
|
},
|
|
132
128
|
text: (e) => ({
|
|
133
|
-
...
|
|
129
|
+
...y(e, p({
|
|
134
130
|
continuousUpdates: !1,
|
|
135
131
|
deletedValue: void 0,
|
|
136
|
-
parseUserInput:
|
|
132
|
+
parseUserInput: v(e.isRequired)
|
|
137
133
|
})),
|
|
138
134
|
cellClassName: "MuiInputBase-input"
|
|
139
135
|
})
|
|
140
136
|
};
|
|
141
|
-
function
|
|
137
|
+
function x(e, t) {
|
|
142
138
|
return e ? e.format === "date-time" ? "date-time" : e.isArray ? "multipleEnum" : e.type === "boolean" ? "boolean" : e.type === "number" || e.type === "integer" ? "number" : t && t.length > 0 ? "enumerated" : "text" : t && t.length > 0 ? "enumerated" : "text";
|
|
143
139
|
}
|
|
144
|
-
function
|
|
145
|
-
return x
|
|
140
|
+
function S(e) {
|
|
141
|
+
return b[x(e.typeInfo, e.enumeratedValues)](e);
|
|
146
142
|
}
|
|
147
143
|
//#endregion
|
|
148
|
-
export {
|
|
144
|
+
export { S as createColumn };
|
|
149
145
|
|
|
150
146
|
//# sourceMappingURL=columnFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","floatColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","isUpsertKey","schemaPropertyInfo","getHeaderClassName","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","headerClassName","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n floatColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n isUpsertKey?: boolean\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction getHeaderClassName(isRequired: boolean, isUpsertKey: boolean): string {\n return isUpsertKey\n ? 'header-upsert-key'\n : isRequired\n ? 'header-cell-required'\n : 'header-cell'\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n isRequired={config.isRequired}\n isUpsertKey={config.isUpsertKey}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n headerClassName: getHeaderClassName(\n config.isRequired,\n !!config.isUpsertKey,\n ),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(config, floatColumn)\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","floatColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","isUpsertKey","schemaPropertyInfo","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n floatColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n isUpsertKey?: boolean\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n isRequired={config.isRequired}\n isUpsertKey={config.isUpsertKey}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(config, floatColumn)\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@ import { PRODUCTION_ENDPOINT_CONFIG as t } from "../../utils/functions/getEndpoi
|
|
|
3
3
|
import { calculateFriendlyFileSize as n } from "../../utils/functions/calculateFriendlyFileSize.js";
|
|
4
4
|
import { copyStringToClipboard as r } from "../../utils/functions/StringUtils.js";
|
|
5
5
|
import { BlockingLoader as i, SynapseSpinner as a } from "../LoadingScreen/LoadingScreen.js";
|
|
6
|
+
import "../ToastMessage/index.js";
|
|
6
7
|
import { useGetAvailableFilesToDownloadInfinite as o, useRemoveFilesFromDownloadList as s } from "../../synapse-queries/download/useDownloadList.js";
|
|
7
8
|
import "../../synapse-queries/index.js";
|
|
8
9
|
import { SkeletonTable as c } from "../Skeleton/SkeletonTable.js";
|
|
9
10
|
import "../Skeleton/index.js";
|
|
10
|
-
import "../ToastMessage/index.js";
|
|
11
11
|
import l from "../IconSvg/IconSvg.js";
|
|
12
12
|
import { formatDate as u } from "../../utils/functions/DateFormatter.js";
|
|
13
13
|
import "../SynapseTable/SynapseTableConstants.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { displayToast as e } from "../ToastMessage/ToastMessage.js";
|
|
2
|
+
import "../ToastMessage/index.js";
|
|
2
3
|
import { SkeletonParagraph as t } from "../Skeleton/SkeletonParagraph.js";
|
|
3
4
|
import "../Skeleton/index.js";
|
|
4
|
-
import "../ToastMessage/index.js";
|
|
5
5
|
import { useState as n } from "react";
|
|
6
6
|
import { Alert as r, Box as i, Button as a, Typography as o } from "@mui/material";
|
|
7
7
|
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { displayToast as e } from "../ToastMessage/ToastMessage.js";
|
|
2
2
|
import { SYNAPSE_DOCS_SHARING_SETTINGS_PERMISSIONS_CONDITIONS_FOR_USE_URL as t } from "../../utils/SynapseConstants.js";
|
|
3
3
|
import { entityTypeToFriendlyName as n } from "../../utils/functions/EntityTypeUtils.js";
|
|
4
|
+
import "../ToastMessage/index.js";
|
|
4
5
|
import r from "../../synapse-queries/entity/useEntityBundle.js";
|
|
5
6
|
import "../../synapse-queries/index.js";
|
|
6
7
|
import { ConfirmationDialog as i } from "../ConfirmationDialog/ConfirmationDialog.js";
|
|
7
8
|
import "../ConfirmationDialog/index.js";
|
|
8
|
-
import "../ToastMessage/index.js";
|
|
9
9
|
import a from "../Dialog/ConfirmCloseWithoutSavingDialog.js";
|
|
10
10
|
import o from "./EntityAclEditor.js";
|
|
11
11
|
import { useRef as s, useState as c } from "react";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { displayToast as e } from "../ToastMessage/ToastMessage.js";
|
|
2
2
|
import { useGetRealmPrincipals as t } from "../../synapse-queries/realm/useRealmPrincipals.js";
|
|
3
|
+
import "../ToastMessage/index.js";
|
|
3
4
|
import { useSendMessage as n } from "../../synapse-queries/message/useMessage.js";
|
|
4
5
|
import { useGetCurrentUserProfile as r } from "../../synapse-queries/user/useUserBundle.js";
|
|
5
6
|
import { useGetUserGroupHeaders as i } from "../../synapse-queries/user/useUserGroupHeader.js";
|
|
6
7
|
import "../../synapse-queries/index.js";
|
|
7
|
-
import "../ToastMessage/index.js";
|
|
8
8
|
import { useCallback as a } from "react";
|
|
9
9
|
//#region src/components/EntityAclEditor/useNotifyNewACLUsers.ts
|
|
10
10
|
function o(e, t, n, r, i) {
|
|
@@ -2,11 +2,11 @@ import { displayToast as e } from "../ToastMessage/ToastMessage.js";
|
|
|
2
2
|
import { isFileEntity as t } from "../../utils/types/IsType.js";
|
|
3
3
|
import { entityTypeToFriendlyName as n, hasFilesInView as r, isContainerType as i, isDataset as a, isEntityView as o, isVersionableEntity as s } from "../../utils/functions/EntityTypeUtils.js";
|
|
4
4
|
import { useSynapseContext as c } from "../../utils/context/SynapseContext.js";
|
|
5
|
+
import "../ToastMessage/index.js";
|
|
5
6
|
import "../../utils/index.js";
|
|
6
7
|
import { useAddFileToDownloadList as l, useGetAddToDownloadListStats as u } from "../../synapse-queries/download/useDownloadList.js";
|
|
7
8
|
import { useGetEntity as d, useGetVersions as f } from "../../synapse-queries/entity/useEntity.js";
|
|
8
9
|
import "../../synapse-queries/index.js";
|
|
9
|
-
import "../ToastMessage/index.js";
|
|
10
10
|
import { displayFilesWereAddedToDownloadListSuccess as p } from "../download_list/DownloadConfirmationUtils.js";
|
|
11
11
|
import { EntityDownloadConfirmation as m } from "../EntityDownloadConfirmation/EntityDownloadConfirmation.js";
|
|
12
12
|
import "../EntityDownloadConfirmation/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityIdTextField.d.ts","sourceRoot":"","sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB,EAAE,IAAI,CAC1B,sBAAsB,EACtB,MAAM,GAAG,WAAW,GAAG,UAAU,CAClC,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"EntityIdTextField.d.ts","sourceRoot":"","sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sBAAsB,EAAE,IAAI,CAC1B,sBAAsB,EACtB,MAAM,GAAG,WAAW,GAAG,UAAU,CAClC,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CA2CvD;AAED,eAAe,iBAAiB,CAAA"}
|
|
@@ -7,24 +7,25 @@ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
|
7
7
|
import { SearchOutlined as s } from "@mui/icons-material";
|
|
8
8
|
//#region src/components/EntityFinder/EntityIdTextField.tsx
|
|
9
9
|
function c(c) {
|
|
10
|
-
let { label: l, value: u, description: d, onChange: f, disabled: p,
|
|
10
|
+
let { label: l, value: u, description: d, onChange: f, disabled: p, required: m, entityFinderModalProps: h } = c, [g, _] = n(!1);
|
|
11
11
|
return /* @__PURE__ */ o(i, { children: [/* @__PURE__ */ a(t, {
|
|
12
|
-
show:
|
|
12
|
+
show: g,
|
|
13
13
|
onConfirm: (e) => {
|
|
14
|
-
f(e[0].targetId),
|
|
14
|
+
f(e[0].targetId), _(!1);
|
|
15
15
|
},
|
|
16
|
-
onCancel: () =>
|
|
17
|
-
...
|
|
16
|
+
onCancel: () => _(!1),
|
|
17
|
+
...h
|
|
18
18
|
}), /* @__PURE__ */ a(e, {
|
|
19
19
|
label: l,
|
|
20
20
|
description: d,
|
|
21
21
|
type: "text",
|
|
22
22
|
fullWidth: !0,
|
|
23
|
+
required: m,
|
|
23
24
|
value: u,
|
|
24
25
|
disabled: p,
|
|
25
26
|
onChange: (e) => f(e.target.value),
|
|
26
27
|
slotProps: { input: { endAdornment: !p && /* @__PURE__ */ a(r, {
|
|
27
|
-
onClick: () =>
|
|
28
|
+
onClick: () => _(!0),
|
|
28
29
|
children: /* @__PURE__ */ a(s, {})
|
|
29
30
|
}) } }
|
|
30
31
|
})] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityIdTextField.js","names":[],"sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"sourcesContent":["import { SearchOutlined } from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useState } from 'react'\nimport { TextField } from '../TextField'\nimport { EntityFinderModal, EntityFinderModalProps } from './EntityFinderModal'\n\nexport type EntityIdTextFieldProps = {\n label: string\n value: string\n onChange: (value: string) => void\n description?: string\n disabled?: boolean\n entityFinderModalProps: Omit<\n EntityFinderModalProps,\n 'show' | 'onConfirm' | 'onCancel'\n >\n}\n\n/**\n * A text field with an adornment button that opens an EntityFinderModal to select an entity.\n * The selected entity's ID is set as the value of the text field. Users may also type or paste\n * a raw synId.\n */\nfunction EntityIdTextField(props: EntityIdTextFieldProps) {\n const {\n label,\n value,\n description,\n onChange,\n disabled,\n entityFinderModalProps,\n } = props\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n return (\n <>\n <EntityFinderModal\n show={showEntityFinder}\n onConfirm={selected => {\n onChange(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n onCancel={() => setShowEntityFinder(false)}\n {...entityFinderModalProps}\n />\n <TextField\n label={label}\n description={description}\n type=\"text\"\n fullWidth\n value={value}\n disabled={disabled}\n onChange={e => onChange(e.target.value)}\n slotProps={{\n input: {\n endAdornment: !disabled && (\n <IconButton onClick={() => setShowEntityFinder(true)}>\n <SearchOutlined />\n </IconButton>\n ),\n },\n }}\n />\n </>\n )\n}\n\nexport default EntityIdTextField\n"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"EntityIdTextField.js","names":[],"sources":["../../../src/components/EntityFinder/EntityIdTextField.tsx"],"sourcesContent":["import { SearchOutlined } from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useState } from 'react'\nimport { TextField } from '../TextField'\nimport { EntityFinderModal, EntityFinderModalProps } from './EntityFinderModal'\n\nexport type EntityIdTextFieldProps = {\n label: string\n value: string\n onChange: (value: string) => void\n description?: string\n disabled?: boolean\n required?: boolean\n entityFinderModalProps: Omit<\n EntityFinderModalProps,\n 'show' | 'onConfirm' | 'onCancel'\n >\n}\n\n/**\n * A text field with an adornment button that opens an EntityFinderModal to select an entity.\n * The selected entity's ID is set as the value of the text field. Users may also type or paste\n * a raw synId.\n */\nfunction EntityIdTextField(props: EntityIdTextFieldProps) {\n const {\n label,\n value,\n description,\n onChange,\n disabled,\n required,\n entityFinderModalProps,\n } = props\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n return (\n <>\n <EntityFinderModal\n show={showEntityFinder}\n onConfirm={selected => {\n onChange(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n onCancel={() => setShowEntityFinder(false)}\n {...entityFinderModalProps}\n />\n <TextField\n label={label}\n description={description}\n type=\"text\"\n fullWidth\n required={required}\n value={value}\n disabled={disabled}\n onChange={e => onChange(e.target.value)}\n slotProps={{\n input: {\n endAdornment: !disabled && (\n <IconButton onClick={() => setShowEntityFinder(true)}>\n <SearchOutlined />\n </IconButton>\n ),\n },\n }}\n />\n </>\n )\n}\n\nexport default EntityIdTextField\n"],"mappings":";;;;;;;;AAwBA,SAAS,EAAkB,GAA+B;CACxD,IAAM,EACJ,UACA,UACA,gBACA,aACA,aACA,aACA,8BACE,GACE,CAAC,GAAkB,KAAuB,EAAS,EAAK;CAC9D,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,MAAM;EACN,YAAW,MAAY;GAErB,AADA,EAAS,EAAS,GAAG,QAAQ,GAC7B,EAAoB,EAAK;EAC3B;EACA,gBAAgB,EAAoB,EAAK;EACzC,GAAI;CACL,CAAA,GACD,kBAAC,GAAD;EACS;EACM;EACb,MAAK;EACL,WAAA;EACU;EACH;EACG;EACV,WAAU,MAAK,EAAS,EAAE,OAAO,KAAK;EACtC,WAAW,EACT,OAAO,EACL,cAAc,CAAC,KACb,kBAAC,GAAD;GAAY,eAAe,EAAoB,EAAI;aACjD,kBAAC,GAAD,CAAiB,CAAA;EACP,CAAA,EAEhB,EACF;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { displayToast as e } from "../../../../ToastMessage/ToastMessage.js";
|
|
2
2
|
import { useSynapseContext as t } from "../../../../../utils/context/SynapseContext.js";
|
|
3
|
+
import "../../../../ToastMessage/index.js";
|
|
3
4
|
import "../../../../../utils/index.js";
|
|
4
5
|
import { useAddFileToDownloadList as n } from "../../../../../synapse-queries/download/useDownloadList.js";
|
|
5
6
|
import r from "../../../../../synapse-queries/entity/useEntityBundle.js";
|
|
6
7
|
import "../../../../../synapse-queries/index.js";
|
|
7
|
-
import "../../../../ToastMessage/index.js";
|
|
8
8
|
import i from "../../../../IconSvg/IconSvg.js";
|
|
9
9
|
import { displayFilesWereAddedToDownloadListSuccess as a } from "../../../../download_list/DownloadConfirmationUtils.js";
|
|
10
10
|
import { Box as o, IconButton as s, Tooltip as c } from "@mui/material";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { displayToast as e } from "../../../../ToastMessage/ToastMessage.js";
|
|
2
2
|
import { copyStringToClipboard as t } from "../../../../../utils/functions/StringUtils.js";
|
|
3
|
-
import n from "../../../../../synapse-queries/entity/useEntityBundle.js";
|
|
4
3
|
import "../../../../ToastMessage/index.js";
|
|
4
|
+
import n from "../../../../../synapse-queries/entity/useEntityBundle.js";
|
|
5
5
|
import { Skeleton as r, Tooltip as i } from "@mui/material";
|
|
6
6
|
import { Fragment as a, jsx as o } from "react/jsx-runtime";
|
|
7
7
|
import { useMutation as s } from "@tanstack/react-query";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._panel_63bk5_1{flex-direction:column;display:flex;position:relative}._content_63bk5_7{width:320px;margin-top:40px;padding:0 32px 0 0}@media (width<=1200px){._content_63bk5_7{width:100%;margin-top:10px;padding:10px 32px 0}}._sidebarHeader_63bk5_20.MuiTypography-root{color:#616972;font-size:14px;font-weight:540;line-height:20px}._divider_63bk5_27{margin-top:8px;margin-bottom:16px}._propertyValue_63bk5_32.MuiTypography-root{color:#4d535a;font-style:normal;font-weight:440;line-height:20px}._propertyTitle_63bk5_39.MuiTypography-root{color:#747d88;font-size:12px;line-height:12px}._propertiesContainer_63bk5_45{gap:12px;padding:12px 0}._propertyRow_63bk5_50{gap:4px}._toggleButton_63bk5_54.MuiButtonBase-root{white-space:nowrap;flex-direction:row;align-self:flex-start;gap:8px;display:flex;position:absolute;top:0;right:32px}@media (width<=1200px){._toggleButton_63bk5_54.MuiButtonBase-root{margin:10px 0 0 32px;position:static}}._toggleButton_63bk5_54.MuiButtonBase-root:hover{text-decoration:none}._toggleButtonText_63bk5_74.MuiTypography-root{color:#616972;font-weight:440;line-height:20px}._icon_63bk5_80{color:#616972}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySidebar.d.ts","sourceRoot":"","sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntitySidebar.d.ts","sourceRoot":"","sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"names":[],"mappings":"AAmBA,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CA2E9D"}
|
|
@@ -1,32 +1,40 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import t from "../../utils/
|
|
3
|
-
import
|
|
4
|
-
import r from "
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import h from "
|
|
9
|
-
import
|
|
1
|
+
import { ENTITY_SIDEBAR_STATE_LOCALSTORAGE_KEY as e } from "../../utils/SynapseConstants.js";
|
|
2
|
+
import { entityTypeToFriendlyName as t } from "../../utils/functions/EntityTypeUtils.js";
|
|
3
|
+
import n from "../../utils/hooks/useGetEntityMetadata.js";
|
|
4
|
+
import { useGetEntityTitleBarProperties as r } from "../entity/page/title_bar/useGetEntityTitleBarProperties.js";
|
|
5
|
+
import i from "./EntitySidebar.module.js";
|
|
6
|
+
import { useEffect as a, useState as o } from "react";
|
|
7
|
+
import { Box as s, Button as c, Collapse as l, Divider as u, Stack as d, Typography as f, useMediaQuery as p, useTheme as m } from "@mui/material";
|
|
8
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
9
|
+
import _ from "@mui/icons-material/KeyboardDoubleArrowRight";
|
|
10
|
+
import v from "@mui/icons-material/KeyboardDoubleArrowLeft";
|
|
10
11
|
//#region src/components/EntitySidebar/EntitySidebar.tsx
|
|
11
|
-
function
|
|
12
|
-
let { entityId:
|
|
13
|
-
|
|
12
|
+
function y(y) {
|
|
13
|
+
let { entityId: b, versionNumber: x } = y, S = p(m().breakpoints.down("lg")), { entityBundle: C } = n(b, x), w = C ? t(C.entityType) : "", T = r(b, x), [E, D] = o(() => {
|
|
14
|
+
let t = localStorage.getItem(e);
|
|
15
|
+
return t === null ? !0 : t === "true";
|
|
16
|
+
});
|
|
17
|
+
a(() => {
|
|
18
|
+
localStorage.setItem(e, String(E));
|
|
19
|
+
}, [E]);
|
|
20
|
+
let O = /* @__PURE__ */ g(s, {
|
|
21
|
+
className: i.content,
|
|
14
22
|
children: [
|
|
15
|
-
/* @__PURE__ */
|
|
23
|
+
/* @__PURE__ */ g(f, {
|
|
16
24
|
variant: "overline",
|
|
17
|
-
className:
|
|
18
|
-
children: ["About this ",
|
|
25
|
+
className: i.sidebarHeader,
|
|
26
|
+
children: ["About this ", w]
|
|
19
27
|
}),
|
|
20
|
-
/* @__PURE__ */
|
|
21
|
-
/* @__PURE__ */
|
|
22
|
-
className:
|
|
23
|
-
children:
|
|
24
|
-
className:
|
|
25
|
-
children: [/* @__PURE__ */
|
|
26
|
-
className:
|
|
28
|
+
/* @__PURE__ */ h(u, { className: i.divider }),
|
|
29
|
+
/* @__PURE__ */ h(d, {
|
|
30
|
+
className: i.propertiesContainer,
|
|
31
|
+
children: T.map((e) => /* @__PURE__ */ g(d, {
|
|
32
|
+
className: i.propertyRow,
|
|
33
|
+
children: [/* @__PURE__ */ h(f, {
|
|
34
|
+
className: i.propertyTitle,
|
|
27
35
|
children: e.title
|
|
28
|
-
}), /* @__PURE__ */
|
|
29
|
-
className:
|
|
36
|
+
}), /* @__PURE__ */ h(f, {
|
|
37
|
+
className: i.propertyValue,
|
|
30
38
|
variant: "smallText1",
|
|
31
39
|
component: "div",
|
|
32
40
|
children: e.value
|
|
@@ -35,28 +43,28 @@ function _(_) {
|
|
|
35
43
|
})
|
|
36
44
|
]
|
|
37
45
|
});
|
|
38
|
-
return /* @__PURE__ */
|
|
39
|
-
className:
|
|
40
|
-
children: [/* @__PURE__ */
|
|
41
|
-
onClick: () =>
|
|
42
|
-
className:
|
|
43
|
-
children: [/* @__PURE__ */
|
|
46
|
+
return /* @__PURE__ */ g(s, {
|
|
47
|
+
className: i.panel,
|
|
48
|
+
children: [/* @__PURE__ */ g(c, {
|
|
49
|
+
onClick: () => D((e) => !e),
|
|
50
|
+
className: i.toggleButton,
|
|
51
|
+
children: [/* @__PURE__ */ g(f, {
|
|
44
52
|
variant: "smallText1",
|
|
45
|
-
className:
|
|
46
|
-
children: [
|
|
47
|
-
}),
|
|
48
|
-
}), /* @__PURE__ */
|
|
49
|
-
in:
|
|
50
|
-
orientation:
|
|
53
|
+
className: i.toggleButtonText,
|
|
54
|
+
children: [E ? "Collapse" : "Expand", " Sidebar"]
|
|
55
|
+
}), h(E ? _ : v, { className: i.icon })]
|
|
56
|
+
}), /* @__PURE__ */ h(l, {
|
|
57
|
+
in: E,
|
|
58
|
+
orientation: S ? "vertical" : "horizontal",
|
|
51
59
|
timeout: {
|
|
52
60
|
enter: 200,
|
|
53
61
|
exit: 200
|
|
54
62
|
},
|
|
55
|
-
children:
|
|
56
|
-
})]
|
|
63
|
+
children: O
|
|
64
|
+
}, S ? "vertical" : "horizontal")]
|
|
57
65
|
});
|
|
58
66
|
}
|
|
59
67
|
//#endregion
|
|
60
|
-
export {
|
|
68
|
+
export { y as default };
|
|
61
69
|
|
|
62
70
|
//# sourceMappingURL=EntitySidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySidebar.js","names":[],"sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"sourcesContent":["import { useState } from 'react'\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight'\nimport KeyboardDoubleArrowLeftIcon from '@mui/icons-material/KeyboardDoubleArrowLeft'\nimport {\n Box,\n Button,\n Divider,\n Collapse,\n Stack,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport { useGetEntityTitleBarProperties } from '@/components/entity/page/title_bar/useGetEntityTitleBarProperties'\nimport styles from './EntitySidebar.module.scss'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport { entityTypeToFriendlyName } from '@/utils/functions/EntityTypeUtils'\n\ntype EntitySidebarProps = {\n entityId: string\n versionNumber?: number\n}\n\nexport default function EntitySidebar(props: EntitySidebarProps) {\n const { entityId, versionNumber } = props\n\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('lg'))\n\n const { entityBundle } = useGetEntityMetadata(entityId, versionNumber)\n\n const friendlyName = entityBundle\n ? entityTypeToFriendlyName(entityBundle.entityType)\n : ''\n\n const properties = useGetEntityTitleBarProperties(entityId, versionNumber)\n\n const [open, setOpen] = useState(true)\n\n const sidebarContent = (\n <Box className={styles.content}>\n <Typography variant=\"overline\" className={styles.sidebarHeader}>\n About this {friendlyName}\n </Typography>\n <Divider className={styles.divider} />\n <Stack className={styles.propertiesContainer}>\n {properties.map(property => (\n <Stack key={property.key} className={styles.propertyRow}>\n <Typography className={styles.propertyTitle}>\n {property.title}\n </Typography>\n <Typography\n className={styles.propertyValue}\n variant=\"smallText1\"\n component=\"div\"\n >\n {property.value}\n </Typography>\n </Stack>\n ))}\n </Stack>\n </Box>\n )\n\n return (\n <Box className={styles.panel}>\n <Button\n onClick={() => setOpen(prev => !prev)}\n className={styles.toggleButton}\n >\n <Typography variant=\"smallText1\" className={styles.toggleButtonText}>\n {open ? 'Collapse' : 'Expand'} Sidebar\n </Typography>\n {open ? (\n <KeyboardDoubleArrowRightIcon className={styles.icon} />\n ) : (\n <KeyboardDoubleArrowLeftIcon className={styles.icon} />\n )}\n </Button>\n <Collapse\n in={open}\n orientation={isMobile ? 'vertical' : 'horizontal'}\n timeout={{ enter: 200, exit: 200 }}\n >\n {sidebarContent}\n </Collapse>\n </Box>\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntitySidebar.js","names":[],"sources":["../../../src/components/EntitySidebar/EntitySidebar.tsx"],"sourcesContent":["import { useState, useEffect } from 'react'\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight'\nimport KeyboardDoubleArrowLeftIcon from '@mui/icons-material/KeyboardDoubleArrowLeft'\nimport {\n Box,\n Button,\n Divider,\n Collapse,\n Stack,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport { useGetEntityTitleBarProperties } from '@/components/entity/page/title_bar/useGetEntityTitleBarProperties'\nimport styles from './EntitySidebar.module.scss'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport { entityTypeToFriendlyName } from '@/utils/functions/EntityTypeUtils'\nimport { ENTITY_SIDEBAR_STATE_LOCALSTORAGE_KEY } from '@/utils/SynapseConstants'\n\ntype EntitySidebarProps = {\n entityId: string\n versionNumber?: number\n}\n\nexport default function EntitySidebar(props: EntitySidebarProps) {\n const { entityId, versionNumber } = props\n\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('lg'))\n\n const { entityBundle } = useGetEntityMetadata(entityId, versionNumber)\n\n const friendlyName = entityBundle\n ? entityTypeToFriendlyName(entityBundle.entityType)\n : ''\n\n const properties = useGetEntityTitleBarProperties(entityId, versionNumber)\n\n const [open, setOpen] = useState(() => {\n const savedState = localStorage.getItem(\n ENTITY_SIDEBAR_STATE_LOCALSTORAGE_KEY,\n )\n return savedState !== null ? savedState === 'true' : true\n })\n\n useEffect(() => {\n localStorage.setItem(ENTITY_SIDEBAR_STATE_LOCALSTORAGE_KEY, String(open))\n }, [open])\n\n const sidebarContent = (\n <Box className={styles.content}>\n <Typography variant=\"overline\" className={styles.sidebarHeader}>\n About this {friendlyName}\n </Typography>\n <Divider className={styles.divider} />\n <Stack className={styles.propertiesContainer}>\n {properties.map(property => (\n <Stack key={property.key} className={styles.propertyRow}>\n <Typography className={styles.propertyTitle}>\n {property.title}\n </Typography>\n <Typography\n className={styles.propertyValue}\n variant=\"smallText1\"\n component=\"div\"\n >\n {property.value}\n </Typography>\n </Stack>\n ))}\n </Stack>\n </Box>\n )\n\n return (\n <Box className={styles.panel}>\n <Button\n onClick={() => setOpen(prev => !prev)}\n className={styles.toggleButton}\n >\n <Typography variant=\"smallText1\" className={styles.toggleButtonText}>\n {open ? 'Collapse' : 'Expand'} Sidebar\n </Typography>\n {open ? (\n <KeyboardDoubleArrowRightIcon className={styles.icon} />\n ) : (\n <KeyboardDoubleArrowLeftIcon className={styles.icon} />\n )}\n </Button>\n <Collapse\n key={isMobile ? 'vertical' : 'horizontal'}\n in={open}\n orientation={isMobile ? 'vertical' : 'horizontal'}\n timeout={{ enter: 200, exit: 200 }}\n >\n {sidebarContent}\n </Collapse>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;AAwBA,SAAwB,EAAc,GAA2B;CAC/D,IAAM,EAAE,aAAU,qBAAkB,GAG9B,IAAW,EADH,EACiB,EAAM,YAAY,KAAK,IAAI,CAAC,GAErD,EAAE,oBAAiB,EAAqB,GAAU,CAAa,GAE/D,IAAe,IACjB,EAAyB,EAAa,UAAU,IAChD,IAEE,IAAa,EAA+B,GAAU,CAAa,GAEnE,CAAC,GAAM,KAAW,QAAe;EACrC,IAAM,IAAa,aAAa,QAC9B,CACF;EACA,OAAO,MAAe,OAA+B,KAAxB,MAAe;CAC9C,CAAC;CAED,QAAgB;EACd,aAAa,QAAQ,GAAuC,OAAO,CAAI,CAAC;CAC1E,GAAG,CAAC,CAAI,CAAC;CAET,IAAM,IACJ,kBAAC,GAAD;EAAK,WAAW,EAAO;YAAvB;GACE,kBAAC,GAAD;IAAY,SAAQ;IAAW,WAAW,EAAO;cAAjD,CAAgE,eAClD,CACF;;GACZ,kBAAC,GAAD,EAAS,WAAW,EAAO,QAAU,CAAA;GACrC,kBAAC,GAAD;IAAO,WAAW,EAAO;cACtB,EAAW,KAAI,MACd,kBAAC,GAAD;KAA0B,WAAW,EAAO;eAA5C,CACE,kBAAC,GAAD;MAAY,WAAW,EAAO;gBAC3B,EAAS;KACA,CAAA,GACZ,kBAAC,GAAD;MACE,WAAW,EAAO;MAClB,SAAQ;MACR,WAAU;gBAET,EAAS;KACA,CAAA,CACP;OAXK,EAAS,GAWd,CACR;GACI,CAAA;EACJ;;CAGP,OACE,kBAAC,GAAD;EAAK,WAAW,EAAO;YAAvB,CACE,kBAAC,GAAD;GACE,eAAe,GAAQ,MAAQ,CAAC,CAAI;GACpC,WAAW,EAAO;aAFpB,CAIE,kBAAC,GAAD;IAAY,SAAQ;IAAa,WAAW,EAAO;cAAnD,CACG,IAAO,aAAa,UAAS,UACpB;OAEV,EADD,IACE,IAEA,GAFD,EAA8B,WAAW,EAAO,KAAO,CAED,CAElD;MACR,kBAAC,GAAD;GAEE,IAAI;GACJ,aAAa,IAAW,aAAa;GACrC,SAAS;IAAE,OAAO;IAAK,MAAM;GAAI;aAEhC;EACO,GANH,IAAW,aAAa,YAMrB,CACP;;AAET"}
|