synapse-react-client 4.0.3 → 4.0.4
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.js +1 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +4 -4
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +8 -7
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +4 -4
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js +11 -11
- package/dist/components/AccessRequirementList/RequirementItem/RequirementItem.js +1 -1
- package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js +9 -9
- package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js +5 -5
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.d.ts.map +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +33 -32
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.js +8 -8
- package/dist/components/AclEditor/AclEditor.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js +34 -34
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/Authentication/AuthenticationMethodSelection.js +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js +6 -5
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.css +1 -1
- package/dist/components/BasePortalCard/BasePortalCard.module.scss +6 -0
- package/dist/components/BasePortalCard/BasePortalCard.module.scss.js +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.css +1 -1
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.js +7 -7
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss +13 -5
- package/dist/components/BasePortalCard/ColorfulPortalCardWithChips/ColorfulPortalCardWithChips.module.scss.js +5 -5
- package/dist/components/CardContainer/CardLink.d.ts +12 -0
- package/dist/components/CardContainer/CardLink.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +12 -12
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +7 -7
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.d.ts.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js +13 -12
- package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
- package/dist/components/CookiesNotification/CookiesNotification.js +1 -1
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js +3 -4
- package/dist/components/CreateOrUpdateAccessRequirementWizard/CreateOrUpdateAccessRequirementWizard.js.map +1 -1
- package/dist/components/DataGrid/MergeGridWithSourceTableButton.js +2 -2
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +35 -35
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +2 -2
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js +9 -7
- package/dist/components/DataGrid/hooks/useExportDataGridToCsv.js.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredCard/ActionRequiredCard.js +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js +1 -1
- package/dist/components/Ecosystem/EcosystemSkeleton.js +2 -2
- package/dist/components/Ecosystem/TableQueryEcosystem.js +1 -1
- package/dist/components/EntityAclEditor/EntityAclEditorModal.js +1 -1
- package/dist/components/EntityAclEditor/OpenData.js +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +113 -127
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityCitation/EntityCitation.js +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/CreatedOnCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/EntityNameCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntityMD5Cell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/FileEntitySizeCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedByCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/ModifiedOnCell.js +1 -1
- package/dist/components/EntityFinder/details/view/table/ParentProjectCell.js +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.d.ts.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js +39 -39
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts +8 -0
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.d.ts.map +1 -0
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js +46 -0
- package/dist/components/Evaluation/DeleteEvaluationQueueConfirmationDialog.js.map +1 -0
- package/dist/components/Evaluation/EvaluationCard.d.ts.map +1 -1
- package/dist/components/Evaluation/EvaluationCard.js +35 -41
- package/dist/components/Evaluation/EvaluationCard.js.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.d.ts.map +1 -1
- package/dist/components/Evaluation/EvaluationEditor.js +95 -90
- package/dist/components/Evaluation/EvaluationEditor.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.d.ts.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js +133 -124
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/FilePreview/EntityPreview.js +1 -1
- package/dist/components/Forum/DiscussionReply.js +10 -10
- package/dist/components/Forum/DiscussionThread.js +21 -21
- package/dist/components/GenericCard/CardUtils.d.ts.map +1 -1
- package/dist/components/GenericCard/CardUtils.js +36 -36
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/CollapsibleDescription.js +25 -25
- package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +72 -67
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts +4 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +98 -96
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.d.ts.map +1 -1
- package/dist/components/GoalsV2/GoalsV2.Desktop.js +14 -15
- package/dist/components/GoalsV2/GoalsV2.Desktop.js.map +1 -1
- package/dist/components/GoogleAnalytics/GoogleAnalytics.js +1 -1
- package/dist/components/HasAccess/HasAccessV2.js +1 -1
- package/dist/components/HasAccess/useHasAccess.js +1 -1
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js +23 -23
- package/dist/components/IDUReport/IDUReportSubmissionInfo.js.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.d.ts +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.d.ts.map +1 -1
- package/dist/components/JSONArrayEditor/useParseCsv.js +9 -9
- package/dist/components/JSONArrayEditor/useParseCsv.js.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js +7 -7
- package/dist/components/Markdown/MarkdownEditor.js +11 -11
- package/dist/components/Markdown/MarkdownGithub.js +1 -1
- package/dist/components/Markdown/MarkdownPopover.js +6 -6
- package/dist/components/Markdown/MarkdownPopover.js.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownSynapse.js +139 -135
- package/dist/components/Markdown/MarkdownSynapse.js.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.d.ts +8 -0
- package/dist/components/Markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownUtils.js +139 -65
- package/dist/components/Markdown/MarkdownUtils.js.map +1 -1
- package/dist/components/Markdown/UserMentionModal.js +18 -18
- package/dist/components/Markdown/UserMentionModal.js.map +1 -1
- package/dist/components/Markdown/widget/MarkdownButton.js +3 -3
- package/dist/components/Markdown/widget/MarkdownButton.js.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.d.ts.map +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +9 -8
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.css +1 -0
- package/dist/components/Plot/SynapsePlot.d.ts +2 -0
- package/dist/components/Plot/SynapsePlot.d.ts.map +1 -1
- package/dist/components/Plot/SynapsePlot.js +43 -39
- package/dist/components/Plot/SynapsePlot.js.map +1 -1
- package/dist/components/Plot/SynapsePlot.scss +8 -0
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +114 -113
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js.map +1 -1
- package/dist/components/Resources/Resources.Desktop.js +7 -7
- package/dist/components/Resources/Resources.Mobile.js +6 -6
- package/dist/components/SubsectionRowRenderer/SubsectionRowRenderer.js +3 -3
- package/dist/components/SustainabilityScorecard/SustainabilityScorecardSummary.js +10 -10
- package/dist/components/SynapseChat/SynapseChatInteraction.js +5 -5
- package/dist/components/SynapseForm/WarningDialog.d.ts +1 -0
- package/dist/components/SynapseForm/WarningDialog.d.ts.map +1 -1
- package/dist/components/SynapseForm/WarningDialog.js +18 -16
- package/dist/components/SynapseForm/WarningDialog.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +1 -1
- package/dist/components/SynapseSearchPageResults/HasAccessChip.js +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js +12 -13
- package/dist/components/SynapseSearchPageResults/SearchPagePortalBanners.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +5 -5
- package/dist/components/SynapseTable/ExpandableTableDataCell.d.ts.map +1 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js +3 -1
- package/dist/components/SynapseTable/ExpandableTableDataCell.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js +4 -4
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js +122 -122
- package/dist/components/SynapseTable/SynapseTableCell/SynapseTableCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +5 -5
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditor.js +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +1 -1
- package/dist/components/TableFeedCards/TableFeedCards.js +9 -9
- package/dist/components/TermsAndConditions/TermsAndConditionsItem.js +10 -10
- package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +9 -9
- package/dist/components/UserSearchBox/UserSearchBox.d.ts +23 -0
- package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -0
- package/dist/components/UserSearchBox/UserSearchBox.js +146 -0
- package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -0
- package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js +13 -13
- package/dist/components/WizardChoiceButton/WizardChoiceButton.js +3 -3
- package/dist/components/dataaccess/AccessHistoryDashboard.js +5 -5
- package/dist/components/dataaccess/AccessHistoryDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js +1 -1
- package/dist/components/dataaccess/AccessSubmissionDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +5 -5
- package/dist/components/dataaccess/UseAccessRequirementTable.js +3 -3
- package/dist/components/dataaccess/UseAccessRequirementTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
- package/dist/components/download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js +2 -2
- package/dist/components/entity/metadata/EntityModal.js +1 -1
- package/dist/components/entity/metadata/MetadataTable.js +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +1 -1
- package/dist/components/entity/page/title_bar/EntityTitleBarVersionInfo.js +1 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +27 -26
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/index.js +109 -107
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/InfiniteTableLayout.js +1 -1
- package/dist/components/styled/HoverPopover.css +1 -0
- package/dist/components/styled/HoverPopover.d.ts +28 -0
- package/dist/components/styled/HoverPopover.d.ts.map +1 -0
- package/dist/components/styled/HoverPopover.js +103 -0
- package/dist/components/styled/HoverPopover.js.map +1 -0
- package/dist/components/styled/HoverPopover.module.scss +9 -0
- package/dist/components/styled/HoverPopover.module.scss.js +10 -0
- package/dist/components/styled/HoverPopover.module.scss.js.map +1 -0
- package/dist/components/styled/index.d.ts +2 -0
- package/dist/components/styled/index.d.ts.map +1 -1
- package/dist/components/styled/index.js +11 -9
- package/dist/components/styled/index.js.map +1 -1
- package/dist/components/table/CsvPreview/CsvPreview.js +2 -2
- package/dist/components/table/CsvPreview/CsvPreviewDialog.js +2 -2
- package/dist/components/widgets/Range.js +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +35 -32
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js +69 -68
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js +24 -21
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js +3 -3
- package/dist/features/curator/GridPage/GridPage.js +2 -2
- package/dist/features/curator/GridPage/components/GridPageTitle.js +2 -2
- package/dist/features/entity/metadata-task/hooks/useMetadataTaskTable.js +1 -1
- package/dist/index.js +157 -155
- package/dist/index.js.map +1 -1
- package/dist/mocks/msw/handlers/accessRequirementHandlers.js +5 -5
- package/dist/mocks/msw/handlers/projectStorageHandlers.js +5 -5
- package/dist/mocks/msw/handlers/wikiHandlers.js +1 -1
- package/dist/mocks/msw/handlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers.js +67 -59
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/style/base/_core.scss +0 -1
- package/dist/style/components/_all.scss +0 -1
- package/dist/style/components/_entity-badge.scss +0 -2
- package/dist/style/components/_expandable_table_data.scss +3 -3
- package/dist/style/components/facet_nav/_facet-nav-panel.scss +3 -0
- package/dist/style/components/facet_nav/_facet-nav.scss +4 -0
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/SynapseClient.js +118 -118
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-queries/auth/useOIDC.js +1 -1
- package/dist/synapse-queries/auth/useTwoFactorEnrollment.js +1 -1
- package/dist/synapse-queries/entity/index.js +6 -6
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
- package/dist/synapse-queries/index.js +1 -1
- package/dist/synapse-queries/user/usePersonalAccessToken.js +1 -1
- package/dist/testutils/vitest.setup.js +10 -11
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/theme/DefaultTheme.js +1 -1
- package/dist/theme/ThemeProvider.d.ts +2 -1
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/ThemeProvider.js +11 -10
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/theme/mergeTheme.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/AppUtils/AppUtils.js +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.d.ts.map +1 -1
- package/dist/utils/functions/SanitizeHtmlUtils.js +34 -40
- package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js +10 -10
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/hooks/index.js +6 -6
- package/dist/utils/hooks/useDetectSSOCode.js +3 -3
- package/dist/utils/hooks/useGetEntityMetadata.js +1 -1
- package/dist/utils/hooks/useNativeSearchParams.d.ts.map +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js +1 -1
- package/dist/utils/hooks/useNativeSearchParams.js.map +1 -1
- package/dist/utils/hooks/useOneSageURL.d.ts.map +1 -1
- package/dist/utils/hooks/useOneSageURL.js +15 -15
- package/dist/utils/hooks/useOneSageURL.js.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.d.ts +1 -0
- package/dist/utils/hooks/useSourceAppConfigs.d.ts.map +1 -1
- package/dist/utils/hooks/useSourceAppConfigs.js +79 -77
- package/dist/utils/hooks/useSourceAppConfigs.js.map +1 -1
- package/dist/utils/index.js +4 -4
- package/package.json +14 -15
- package/dist/_virtual/index.js +0 -6
- package/dist/_virtual/index.js.map +0 -1
- package/dist/_virtual/index2.js +0 -5
- package/dist/_virtual/index2.js.map +0 -1
- package/dist/_virtual/index3.js +0 -5
- package/dist/_virtual/index3.js.map +0 -1
- package/dist/_virtual/index4.js +0 -5
- package/dist/_virtual/index4.js.map +0 -1
- package/dist/_virtual/index5.js +0 -5
- package/dist/_virtual/index5.js.map +0 -1
- package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts +0 -21
- package/dist/components/UserSearchBox/UserSearchBoxV2.d.ts.map +0 -1
- package/dist/components/UserSearchBox/UserSearchBoxV2.js +0 -144
- package/dist/components/UserSearchBox/UserSearchBoxV2.js.map +0 -1
- package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js +0 -53
- package/dist/node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js.map +0 -1
- package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js +0 -948
- package/dist/node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js.map +0 -1
- package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +0 -30
- package/dist/node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js.map +0 -1
- package/dist/node_modules/.pnpm/vite-plugin-node-polyfills@0.17.0_rollup@4.55.1_vite@7.3.1_@types_node@22.19.13_sass@1._2da6e8f78437c36f3eb7db51bdd4d89e/node_modules/vite-plugin-node-polyfills/shims/dist/index.js +0 -15
- package/dist/node_modules/.pnpm/vite-plugin-node-polyfills@0.17.0_rollup@4.55.1_vite@7.3.1_@types_node@22.19.13_sass@1._2da6e8f78437c36f3eb7db51bdd4d89e/node_modules/vite-plugin-node-polyfills/shims/dist/index.js.map +0 -1
- package/dist/style/components/_user-search-box.scss +0 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessSubmissionDashboard.js","sources":["../../../src/components/dataaccess/AccessSubmissionDashboard.tsx"],"sourcesContent":["import React from 'react'\nimport { useIsCurrentUserACTMember } from '@/synapse-queries/index'\nimport { useDebouncedEffect } from '@/utils/hooks/useDebouncedEffect'\nimport { ACT_TEAM_ID } from '@/utils/SynapseConstants'\nimport {\n Checkbox,\n FormControlLabel,\n Grid,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n SubmissionReviewerFilterType,\n SubmissionState,\n TYPE_FILTER,\n} from '@sage-bionetworks/synapse-types'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport UserSearchBoxV2 from '../UserSearchBox/UserSearchBoxV2'\nimport {\n AccessRequestSubmissionTable,\n AccessRequestSubmissionTableProps,\n} from './AccessRequestSubmissionTable'\nimport AccessRequirementSearchBox from './AccessRequirementSearchBox/AccessRequirementSearchBox'\n\nexport const getReviewerFilterID = (selected: string | null) => {\n if (selected && selected !== ACT_TEAM_ID.toString()) {\n return selected\n } else {\n return undefined\n }\n}\n\nexport const DataAccessSubmissionDashboard = (): React.ReactNode => {\n const [accessRequirementId, setAccessRequirementId] = useState<\n string | undefined\n >()\n const [accessorId, setAccessorId] = useState<string | undefined>()\n const [reviewerId, setReviewerId] = useState<string | undefined>()\n const [reviewerFilterType, setReviewerFilterType] = useState<\n SubmissionReviewerFilterType | undefined\n >(SubmissionReviewerFilterType.ALL)\n const [tableProps, setTableProps] =\n useState<AccessRequestSubmissionTableProps>({\n accessRequirementId,\n accessorId,\n reviewerId,\n showRequesters: true,\n submissionState: SubmissionState.SUBMITTED,\n })\n\n const location = useLocation()\n const navigate = useNavigate()\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { data: isACT } = useIsCurrentUserACTMember()\n\n useEffect(() => {\n const initializeFromSearchParam = () => {\n const initialParams = new URLSearchParams(location.search)\n setAccessRequirementId(\n initialParams.get('accessRequirementId') ?? undefined,\n )\n setAccessorId(initialParams.get('accessorId') ?? undefined)\n setReviewerId(initialParams.get('reviewerId') ?? undefined)\n setReviewerFilterType(\n (initialParams.get(\n 'reviewerFilterType',\n ) as SubmissionReviewerFilterType) ?? undefined,\n )\n }\n initializeFromSearchParam()\n }, [location.search])\n\n const onRequesterChange = useCallback((selected: string | null) => {\n if (selected) {\n setAccessorId(selected)\n } else {\n setAccessorId(undefined)\n }\n }, [])\n\n const onReviewerChange = useCallback((selected: string | null) => {\n setReviewerId(getReviewerFilterID(selected))\n }, [])\n\n useDebouncedEffect(\n () => {\n const updateQueryParams = (\n accessRequirementId: string | undefined,\n accessorId: string | undefined,\n reviewerId: string | undefined,\n reviewerFilterType: SubmissionReviewerFilterType | undefined,\n ) => {\n const params = new URLSearchParams(\n omitBy(\n {\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n },\n item => item === undefined || item === '',\n ) as Record<string, string>,\n )\n navigate(\n {\n pathname: location.pathname,\n search: params.toString(),\n },\n { replace: true },\n )\n }\n\n updateQueryParams(\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n )\n setTableProps({\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n showRequesters: true,\n submissionState: SubmissionState.SUBMITTED,\n })\n },\n [\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n navigate,\n location.pathname,\n ],\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n\n return (\n <div className=\"AccessSubmissionDashboard\">\n <Grid\n container\n spacing={2}\n className=\"InputPanel\"\n sx={{ alignItems: 'stretch' }}\n >\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"arId-filter\"\n >\n Filter by Access Requirement Name\n </Typography>\n <AccessRequirementSearchBox\n inputId=\"arId-filter\"\n onChange={setAccessRequirementId}\n placeholder=\"Search for an Access Requirement Name \"\n />\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"requester-filter\"\n >\n Filter by Requester\n </Typography>\n <UserSearchBoxV2\n inputId=\"requester-filter\"\n placeholder=\"Search for a user name\"\n defaultValue={accessorId}\n onChange={onRequesterChange}\n typeFilter={TYPE_FILTER.USERS_ONLY}\n />\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBoxV2\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a user or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n {isACT && (\n <Grid size={12} sx={{ textAlign: 'right' }}>\n <Tooltip\n title={\n 'This will hide submissions that have a reviewer specifically assigned.'\n }\n >\n <FormControlLabel\n control={<Checkbox />}\n value={\n reviewerFilterType === SubmissionReviewerFilterType.ACT_ONLY\n }\n label=\"Reviewed by ACT only\"\n onChange={(_, checked) => {\n const newValue = checked\n ? SubmissionReviewerFilterType.ACT_ONLY\n : SubmissionReviewerFilterType.ALL\n setReviewerFilterType(newValue)\n }}\n />\n </Tooltip>\n </Grid>\n )}\n </Grid>\n\n <Typography variant=\"headline3\">Access Request Submissions</Typography>\n <AccessRequestSubmissionTable {...tableProps} />\n </div>\n )\n}\n"],"names":["getReviewerFilterID","selected","ACT_TEAM_ID","DataAccessSubmissionDashboard","accessRequirementId","setAccessRequirementId","useState","accessorId","setAccessorId","reviewerId","setReviewerId","reviewerFilterType","setReviewerFilterType","SubmissionReviewerFilterType","tableProps","setTableProps","SubmissionState","location","useLocation","navigate","useNavigate","INPUT_CHANGE_DEBOUNCE_DELAY_MS","isACT","useIsCurrentUserACTMember","useEffect","initialParams","onRequesterChange","useCallback","onReviewerChange","useDebouncedEffect","params","omitBy","item","jsxs","Grid","jsx","Typography","AccessRequirementSearchBox","UserSearchBoxV2","TYPE_FILTER","Tooltip","FormControlLabel","Checkbox","_","checked","newValue","AccessRequestSubmissionTable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AccessSubmissionDashboard.js","sources":["../../../src/components/dataaccess/AccessSubmissionDashboard.tsx"],"sourcesContent":["import React from 'react'\nimport { useIsCurrentUserACTMember } from '@/synapse-queries/index'\nimport { useDebouncedEffect } from '@/utils/hooks/useDebouncedEffect'\nimport { ACT_TEAM_ID } from '@/utils/SynapseConstants'\nimport {\n Checkbox,\n FormControlLabel,\n Grid,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport {\n SubmissionReviewerFilterType,\n SubmissionState,\n TYPE_FILTER,\n} from '@sage-bionetworks/synapse-types'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\nimport {\n AccessRequestSubmissionTable,\n AccessRequestSubmissionTableProps,\n} from './AccessRequestSubmissionTable'\nimport AccessRequirementSearchBox from './AccessRequirementSearchBox/AccessRequirementSearchBox'\n\nexport const getReviewerFilterID = (selected: string | null) => {\n if (selected && selected !== ACT_TEAM_ID.toString()) {\n return selected\n } else {\n return undefined\n }\n}\n\nexport const DataAccessSubmissionDashboard = (): React.ReactNode => {\n const [accessRequirementId, setAccessRequirementId] = useState<\n string | undefined\n >()\n const [accessorId, setAccessorId] = useState<string | undefined>()\n const [reviewerId, setReviewerId] = useState<string | undefined>()\n const [reviewerFilterType, setReviewerFilterType] = useState<\n SubmissionReviewerFilterType | undefined\n >(SubmissionReviewerFilterType.ALL)\n const [tableProps, setTableProps] =\n useState<AccessRequestSubmissionTableProps>({\n accessRequirementId,\n accessorId,\n reviewerId,\n showRequesters: true,\n submissionState: SubmissionState.SUBMITTED,\n })\n\n const location = useLocation()\n const navigate = useNavigate()\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { data: isACT } = useIsCurrentUserACTMember()\n\n useEffect(() => {\n const initializeFromSearchParam = () => {\n const initialParams = new URLSearchParams(location.search)\n setAccessRequirementId(\n initialParams.get('accessRequirementId') ?? undefined,\n )\n setAccessorId(initialParams.get('accessorId') ?? undefined)\n setReviewerId(initialParams.get('reviewerId') ?? undefined)\n setReviewerFilterType(\n (initialParams.get(\n 'reviewerFilterType',\n ) as SubmissionReviewerFilterType) ?? undefined,\n )\n }\n initializeFromSearchParam()\n }, [location.search])\n\n const onRequesterChange = useCallback((selected: string | null) => {\n if (selected) {\n setAccessorId(selected)\n } else {\n setAccessorId(undefined)\n }\n }, [])\n\n const onReviewerChange = useCallback((selected: string | null) => {\n setReviewerId(getReviewerFilterID(selected))\n }, [])\n\n useDebouncedEffect(\n () => {\n const updateQueryParams = (\n accessRequirementId: string | undefined,\n accessorId: string | undefined,\n reviewerId: string | undefined,\n reviewerFilterType: SubmissionReviewerFilterType | undefined,\n ) => {\n const params = new URLSearchParams(\n omitBy(\n {\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n },\n item => item === undefined || item === '',\n ) as Record<string, string>,\n )\n navigate(\n {\n pathname: location.pathname,\n search: params.toString(),\n },\n { replace: true },\n )\n }\n\n updateQueryParams(\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n )\n setTableProps({\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n showRequesters: true,\n submissionState: SubmissionState.SUBMITTED,\n })\n },\n [\n accessRequirementId,\n accessorId,\n reviewerId,\n reviewerFilterType,\n navigate,\n location.pathname,\n ],\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n\n return (\n <div className=\"AccessSubmissionDashboard\">\n <Grid\n container\n spacing={2}\n className=\"InputPanel\"\n sx={{ alignItems: 'stretch' }}\n >\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"arId-filter\"\n >\n Filter by Access Requirement Name\n </Typography>\n <AccessRequirementSearchBox\n inputId=\"arId-filter\"\n onChange={setAccessRequirementId}\n placeholder=\"Search for an Access Requirement Name \"\n />\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"requester-filter\"\n >\n Filter by Requester\n </Typography>\n <UserSearchBox\n inputId=\"requester-filter\"\n placeholder=\"Search for a user name\"\n defaultValue={accessorId}\n onChange={onRequesterChange}\n typeFilter={TYPE_FILTER.USERS_ONLY}\n />\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBox\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a user or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n {isACT && (\n <Grid size={12} sx={{ textAlign: 'right' }}>\n <Tooltip\n title={\n 'This will hide submissions that have a reviewer specifically assigned.'\n }\n >\n <FormControlLabel\n control={<Checkbox />}\n value={\n reviewerFilterType === SubmissionReviewerFilterType.ACT_ONLY\n }\n label=\"Reviewed by ACT only\"\n onChange={(_, checked) => {\n const newValue = checked\n ? SubmissionReviewerFilterType.ACT_ONLY\n : SubmissionReviewerFilterType.ALL\n setReviewerFilterType(newValue)\n }}\n />\n </Tooltip>\n </Grid>\n )}\n </Grid>\n\n <Typography variant=\"headline3\">Access Request Submissions</Typography>\n <AccessRequestSubmissionTable {...tableProps} />\n </div>\n )\n}\n"],"names":["getReviewerFilterID","selected","ACT_TEAM_ID","DataAccessSubmissionDashboard","accessRequirementId","setAccessRequirementId","useState","accessorId","setAccessorId","reviewerId","setReviewerId","reviewerFilterType","setReviewerFilterType","SubmissionReviewerFilterType","tableProps","setTableProps","SubmissionState","location","useLocation","navigate","useNavigate","INPUT_CHANGE_DEBOUNCE_DELAY_MS","isACT","useIsCurrentUserACTMember","useEffect","initialParams","onRequesterChange","useCallback","onReviewerChange","useDebouncedEffect","params","omitBy","item","jsxs","Grid","jsx","Typography","AccessRequirementSearchBox","UserSearchBox","TYPE_FILTER","Tooltip","FormControlLabel","Checkbox","_","checked","newValue","AccessRequestSubmissionTable"],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ import { formatDate as F } from "../../../utils/functions/DateFormatter.js";
|
|
|
40
40
|
import l from "dayjs";
|
|
41
41
|
import ne from "dayjs/plugin/duration";
|
|
42
42
|
import { SynapseErrorBoundary as oe } from "../../error/ErrorBanner.js";
|
|
43
|
-
import {
|
|
43
|
+
import { Markdown as de } from "../../Markdown/MarkdownSynapse.js";
|
|
44
44
|
import { UserBadge as S } from "../../UserCard/UserBadge.js";
|
|
45
45
|
import P from "../../UserOrTeamBadge/UserOrTeamBadge.js";
|
|
46
46
|
import { FileHandleLink as ce } from "../../widgets/FileHandleLink.js";
|
|
@@ -90,9 +90,9 @@ function ue(c, s) {
|
|
|
90
90
|
function nt(c) {
|
|
91
91
|
const { submissionId: s, isReviewer: d } = c, [u, A] = p(!1), { data: f } = se(), { data: t, isLoading: O } = Q(s, {
|
|
92
92
|
throwOnError: !0
|
|
93
|
-
}),
|
|
94
|
-
enabled:
|
|
95
|
-
}), C = !!(q && l(q.expiredOn).isBefore(l())),
|
|
93
|
+
}), k = !!(t && f && ue(f.ownerId, t)), { data: q, isLoading: B } = re(String(s), {
|
|
94
|
+
enabled: k && t && t.state === m.APPROVED
|
|
95
|
+
}), C = !!(q && l(q.expiredOn).isBefore(l())), E = t && t.submittedBy === f?.ownerId, { data: n } = z(
|
|
96
96
|
parseInt(t?.accessRequirementId),
|
|
97
97
|
{ enabled: !!t }
|
|
98
98
|
), { data: K, isLoading: v } = Y(
|
|
@@ -185,7 +185,7 @@ function nt(c) {
|
|
|
185
185
|
}
|
|
186
186
|
)
|
|
187
187
|
] }),
|
|
188
|
-
t &&
|
|
188
|
+
t && E && /* @__PURE__ */ r("div", { className: "ButtonContainer", children: [
|
|
189
189
|
/* @__PURE__ */ e(
|
|
190
190
|
W,
|
|
191
191
|
{
|
|
@@ -31,7 +31,7 @@ import "@sage-bionetworks/synapse-client";
|
|
|
31
31
|
import "../../utils/types/IsType.js";
|
|
32
32
|
import { useSearchAccessRequirementsInfinite as J } from "../../synapse-queries/dataaccess/useAccessRequirements.js";
|
|
33
33
|
import { formatDate as f } from "../../utils/functions/DateFormatter.js";
|
|
34
|
-
import { useReactTable as W, getCoreRowModel as X,
|
|
34
|
+
import { useReactTable as W, getCoreRowModel as X, getFacetedUniqueValues as Z, createColumnHelper as ee } from "@tanstack/react-table";
|
|
35
35
|
import A from "dayjs";
|
|
36
36
|
import { EntityLink as te } from "../EntityLink.js";
|
|
37
37
|
import a from "../TanStackTable/ColumnHeader.js";
|
|
@@ -58,7 +58,7 @@ const re = [
|
|
|
58
58
|
h,
|
|
59
59
|
U,
|
|
60
60
|
O
|
|
61
|
-
], ne = (e) => /^\d+$/.test(e), l =
|
|
61
|
+
], ne = (e) => /^\d+$/.test(e), l = ee(), ie = [
|
|
62
62
|
l.accessor("id", {
|
|
63
63
|
header: (e) => /* @__PURE__ */ r(a, { ...e, title: "AR ID" }),
|
|
64
64
|
cell: ({ getValue: e }) => /* @__PURE__ */ r(
|
|
@@ -213,7 +213,7 @@ function Ke(e) {
|
|
|
213
213
|
sorting: C,
|
|
214
214
|
columnFilters: _
|
|
215
215
|
},
|
|
216
|
-
getFacetedUniqueValues: (n, i) => i === "type" ? () => new Map(re.map((o) => [o, 0])) :
|
|
216
|
+
getFacetedUniqueValues: (n, i) => i === "type" ? () => new Map(re.map((o) => [o, 0])) : Z()(
|
|
217
217
|
n,
|
|
218
218
|
i
|
|
219
219
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseAccessRequirementTable.js","sources":["../../../src/components/dataaccess/UseAccessRequirementTable.tsx"],"sourcesContent":["import { useSearchAccessRequirementsInfinite } from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { ACT_TEAM_ID } from '@/utils/SynapseConstants'\nimport { Link, Typography } from '@mui/material'\nimport {\n ACCESS_REQUIREMENT_CONCRETE_TYPE,\n ACCESS_TYPE,\n AccessRequirementSearchRequest,\n AccessRequirementSearchResult,\n AccessRequirementSearchSort,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SortDirection,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ColumnFiltersState,\n ColumnSort,\n createColumnHelper,\n getCoreRowModel,\n getFacetedUniqueValues as defaultGetFacetedUniqueValues,\n SortingState,\n Table,\n Updater,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { noop } from 'lodash-es'\nimport { Fragment, useCallback, useMemo, useState } from 'react'\nimport { EntityLink } from '../EntityLink'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport UserOrTeamBadge from '../UserOrTeamBadge/UserOrTeamBadge'\n\nexport function accessRequirementConcreteTypeValueToDisplayValue(\n accessRequirementConcreteTypeValue: ACCESS_REQUIREMENT_CONCRETE_TYPE,\n) {\n switch (accessRequirementConcreteTypeValue) {\n case TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE: {\n return SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n }\n case MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n default:\n return 'Unknown'\n }\n}\n\nconst ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES = [\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n]\n\nconst isIntegerInput = (v: string): boolean => {\n return /^\\d+$/.test(v)\n}\nconst columnHelper = createColumnHelper<AccessRequirementSearchResult>()\nconst columns = [\n columnHelper.accessor('id', {\n header: props => <ColumnHeader {...props} title={'AR ID'} />,\n cell: ({ getValue }) => (\n <Link\n href={`${\n PRODUCTION_ENDPOINT_CONFIG.PORTAL\n }AccessRequirement:AR_ID=${getValue()}`}\n >\n {getValue()}\n </Link>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('name', {\n header: props => (\n <ColumnHeader {...props} title={'Access Requirement Name'} />\n ),\n cell: ({ getValue }) => getValue(),\n enableSorting: true,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('type', {\n header: props => <ColumnHeader {...props} title={'Type'} />,\n cell: ({ getValue }) =>\n accessRequirementConcreteTypeValueToDisplayValue(getValue()),\n enableSorting: false,\n enableColumnFilter: true,\n meta: {\n filterVariant: 'enumeration',\n getDisplayText: accessRequirementConcreteTypeValueToDisplayValue,\n enableMultipleSelect: false,\n },\n }),\n columnHelper.accessor('relatedProjectIds', {\n header: props => <ColumnHeader {...props} title={'Related to Projects'} />,\n cell: ({ getValue }) => (\n <>\n {getValue().map(projectId => (\n <Fragment key={projectId}>\n <EntityLink entity={projectId} />{' '}\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n ({projectId})\n </Typography>\n <br />\n </Fragment>\n ))}\n </>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('reviewerIds', {\n header: props => <ColumnHeader {...props} title={'Reviewer'} />,\n cell: ({ getValue }) => (\n <>\n {getValue().length === 0 ? (\n <UserOrTeamBadge principalId={ACT_TEAM_ID} />\n ) : (\n getValue().map(reviewerId => (\n <UserOrTeamBadge key={reviewerId} principalId={reviewerId} />\n ))\n )}\n </>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Last Modified'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('createdOn', {\n header: props => <ColumnHeader {...props} title={'Created On'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: true,\n enableColumnFilter: false,\n }),\n]\nconst DEFAULT_SORTING_STATE: SortingState = [\n {\n desc: true,\n id: 'createdOn',\n },\n]\ntype UseAccessRequirementTableOptions = {\n nameOrID?: string\n relatedProjectId?: string\n reviewerId?: string\n accessType?: ACCESS_TYPE\n typeFilter?: string\n onTypeFilterChange?: (typeFilter: string | undefined) => void\n}\n\nfunction columnSortToAccessRequirementSearchSort(\n columnSort: ColumnSort,\n): AccessRequirementSearchSort {\n const direction: SortDirection = columnSort.desc ? 'DESC' : 'ASC'\n\n if (columnSort.id == 'createdOn') {\n return {\n field: 'CREATED_ON',\n direction,\n }\n } else if (columnSort.id == 'name') {\n return {\n field: 'NAME',\n direction,\n }\n } else {\n throw new Error(\n `Could not map sort field ${columnSort.id} to AccessRequirementSortField`,\n )\n }\n}\n\nfunction getTypeFilterFromColumnFilters(\n columnFilters?: ColumnFiltersState,\n): string | undefined {\n const matchingFilter = (columnFilters || []).find(f => f.id === 'type')\n const filterValues = matchingFilter?.value\n if (filterValues) {\n return (filterValues as string[])[0]\n }\n return undefined\n}\n\nexport function useAccessRequirementTable(\n opts: UseAccessRequirementTableOptions,\n) {\n const {\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n typeFilter,\n onTypeFilterChange = noop,\n } = opts\n const [sortingState, setSortingState] = useState<SortingState>(\n DEFAULT_SORTING_STATE,\n )\n\n const columnFilters = useMemo(\n () => (typeFilter ? [{ id: 'type', value: [typeFilter] }] : []),\n [typeFilter],\n )\n\n const onColumnFiltersChange = useCallback(\n (updaterOrValue: Updater<ColumnFiltersState>) => {\n const newValue: ColumnFiltersState =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(columnFilters)\n : updaterOrValue\n\n // Unlike the other controls, the type filter control is inside the table. State is still stored in the parent component.\n // When the user updates the filter, this function will fire, so we must propagate changes to the type filter to the parent.\n const typeFilter = getTypeFilterFromColumnFilters(newValue)\n onTypeFilterChange(typeFilter)\n },\n [columnFilters, onTypeFilterChange],\n )\n\n // Map the @tanstack/react-table sort state object to the Synapse API object\n const apiRequestSortState: AccessRequirementSearchRequest['sort'] = useMemo(\n () => sortingState.map(columnSortToAccessRequirementSearchSort),\n [sortingState],\n )\n\n const searchRequest: Omit<AccessRequirementSearchRequest, 'nextPageToken'> =\n useMemo(() => {\n // SWC-6615: If the input string is a single integer, assume it's the AR ID. Otherwise, use as the nameContains field.\n let nameContains: string | undefined = undefined\n let ids: number[] | undefined = undefined\n if (nameOrID !== undefined) {\n const nameOrIDTrimmed = nameOrID.trim()\n if (isIntegerInput(nameOrIDTrimmed)) {\n ids = [Number.parseInt(nameOrIDTrimmed)]\n } else {\n nameContains = nameOrIDTrimmed\n }\n }\n return {\n ids,\n nameContains,\n relatedProjectId,\n reviewerId,\n accessType,\n sort: apiRequestSortState,\n type: typeFilter,\n }\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n apiRequestSortState,\n typeFilter,\n ])\n\n const { data, hasNextPage, fetchNextPage, isLoading, isFetchingNextPage } =\n useSearchAccessRequirementsInfinite(searchRequest)\n\n const accessRequirements = useMemo(\n () => data?.pages.flatMap(page => page.results) ?? [],\n [data],\n )\n\n const table: Table<AccessRequirementSearchResult> =\n useReactTable<AccessRequirementSearchResult>({\n data: accessRequirements,\n columns: columns,\n state: {\n sorting: sortingState,\n columnFilters: columnFilters,\n },\n getFacetedUniqueValues: (\n table: Table<AccessRequirementSearchResult>,\n columnId: string,\n ) => {\n if (columnId === 'type') {\n // Hard-code the set of possible access requirement types with count = 0 to indicate that we don't have facet counts.\n return () =>\n new Map(ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES.map(v => [v, 0]))\n }\n return defaultGetFacetedUniqueValues<AccessRequirementSearchResult>()(\n table,\n columnId,\n )\n },\n onSortingChange: setSortingState,\n onColumnFiltersChange: onColumnFiltersChange,\n getRowId: row => row.id,\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: true,\n enableMultiSort: false,\n // Sort is required for this API call, so prevent the user from removing the sort.\n enableSortingRemoval: false,\n manualFiltering: true,\n })\n\n return { table, isLoading, hasNextPage, fetchNextPage, isFetchingNextPage }\n}\n"],"names":["accessRequirementConcreteTypeValueToDisplayValue","accessRequirementConcreteTypeValue","TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES","isIntegerInput","v","columnHelper","createColumnHelper","columns","props","jsx","ColumnHeader","getValue","Link","PRODUCTION_ENDPOINT_CONFIG","Fragment","projectId","jsxs","EntityLink","Typography","UserOrTeamBadge","ACT_TEAM_ID","reviewerId","formatDate","dayjs","DEFAULT_SORTING_STATE","columnSortToAccessRequirementSearchSort","columnSort","direction","getTypeFilterFromColumnFilters","columnFilters","filterValues","f","useAccessRequirementTable","opts","nameOrID","relatedProjectId","accessType","typeFilter","onTypeFilterChange","noop","sortingState","setSortingState","useState","useMemo","onColumnFiltersChange","useCallback","updaterOrValue","newValue","apiRequestSortState","searchRequest","nameContains","ids","nameOrIDTrimmed","data","hasNextPage","fetchNextPage","isLoading","isFetchingNextPage","useSearchAccessRequirementsInfinite","accessRequirements","page","useReactTable","table","columnId","defaultGetFacetedUniqueValues","row","getCoreRowModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UseAccessRequirementTable.js","sources":["../../../src/components/dataaccess/UseAccessRequirementTable.tsx"],"sourcesContent":["import { useSearchAccessRequirementsInfinite } from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { PRODUCTION_ENDPOINT_CONFIG } from '@/utils/functions/getEndpoint'\nimport { ACT_TEAM_ID } from '@/utils/SynapseConstants'\nimport { Link, Typography } from '@mui/material'\nimport {\n ACCESS_REQUIREMENT_CONCRETE_TYPE,\n ACCESS_TYPE,\n AccessRequirementSearchRequest,\n AccessRequirementSearchResult,\n AccessRequirementSearchSort,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SortDirection,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE,\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n} from '@sage-bionetworks/synapse-types'\nimport {\n ColumnFiltersState,\n ColumnSort,\n createColumnHelper,\n getCoreRowModel,\n getFacetedUniqueValues as defaultGetFacetedUniqueValues,\n SortingState,\n Table,\n Updater,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { noop } from 'lodash-es'\nimport { Fragment, useCallback, useMemo, useState } from 'react'\nimport { EntityLink } from '../EntityLink'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport UserOrTeamBadge from '../UserOrTeamBadge/UserOrTeamBadge'\n\nexport function accessRequirementConcreteTypeValueToDisplayValue(\n accessRequirementConcreteTypeValue: ACCESS_REQUIREMENT_CONCRETE_TYPE,\n) {\n switch (accessRequirementConcreteTypeValue) {\n case TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE: {\n return SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n }\n case MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n case LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE:\n return LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE\n default:\n return 'Unknown'\n }\n}\n\nconst ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES = [\n TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE,\n]\n\nconst isIntegerInput = (v: string): boolean => {\n return /^\\d+$/.test(v)\n}\nconst columnHelper = createColumnHelper<AccessRequirementSearchResult>()\nconst columns = [\n columnHelper.accessor('id', {\n header: props => <ColumnHeader {...props} title={'AR ID'} />,\n cell: ({ getValue }) => (\n <Link\n href={`${\n PRODUCTION_ENDPOINT_CONFIG.PORTAL\n }AccessRequirement:AR_ID=${getValue()}`}\n >\n {getValue()}\n </Link>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('name', {\n header: props => (\n <ColumnHeader {...props} title={'Access Requirement Name'} />\n ),\n cell: ({ getValue }) => getValue(),\n enableSorting: true,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('type', {\n header: props => <ColumnHeader {...props} title={'Type'} />,\n cell: ({ getValue }) =>\n accessRequirementConcreteTypeValueToDisplayValue(getValue()),\n enableSorting: false,\n enableColumnFilter: true,\n meta: {\n filterVariant: 'enumeration',\n getDisplayText: accessRequirementConcreteTypeValueToDisplayValue,\n enableMultipleSelect: false,\n },\n }),\n columnHelper.accessor('relatedProjectIds', {\n header: props => <ColumnHeader {...props} title={'Related to Projects'} />,\n cell: ({ getValue }) => (\n <>\n {getValue().map(projectId => (\n <Fragment key={projectId}>\n <EntityLink entity={projectId} />{' '}\n <Typography\n component={'span'}\n variant={'smallText1'}\n sx={{\n color: 'grey.700',\n }}\n >\n ({projectId})\n </Typography>\n <br />\n </Fragment>\n ))}\n </>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('reviewerIds', {\n header: props => <ColumnHeader {...props} title={'Reviewer'} />,\n cell: ({ getValue }) => (\n <>\n {getValue().length === 0 ? (\n <UserOrTeamBadge principalId={ACT_TEAM_ID} />\n ) : (\n getValue().map(reviewerId => (\n <UserOrTeamBadge key={reviewerId} principalId={reviewerId} />\n ))\n )}\n </>\n ),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Last Modified'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('createdOn', {\n header: props => <ColumnHeader {...props} title={'Created On'} />,\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n enableSorting: true,\n enableColumnFilter: false,\n }),\n]\nconst DEFAULT_SORTING_STATE: SortingState = [\n {\n desc: true,\n id: 'createdOn',\n },\n]\ntype UseAccessRequirementTableOptions = {\n nameOrID?: string\n relatedProjectId?: string\n reviewerId?: string\n accessType?: ACCESS_TYPE\n typeFilter?: string\n onTypeFilterChange?: (typeFilter: string | undefined) => void\n}\n\nfunction columnSortToAccessRequirementSearchSort(\n columnSort: ColumnSort,\n): AccessRequirementSearchSort {\n const direction: SortDirection = columnSort.desc ? 'DESC' : 'ASC'\n\n if (columnSort.id == 'createdOn') {\n return {\n field: 'CREATED_ON',\n direction,\n }\n } else if (columnSort.id == 'name') {\n return {\n field: 'NAME',\n direction,\n }\n } else {\n throw new Error(\n `Could not map sort field ${columnSort.id} to AccessRequirementSortField`,\n )\n }\n}\n\nfunction getTypeFilterFromColumnFilters(\n columnFilters?: ColumnFiltersState,\n): string | undefined {\n const matchingFilter = (columnFilters || []).find(f => f.id === 'type')\n const filterValues = matchingFilter?.value\n if (filterValues) {\n return (filterValues as string[])[0]\n }\n return undefined\n}\n\nexport function useAccessRequirementTable(\n opts: UseAccessRequirementTableOptions,\n) {\n const {\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n typeFilter,\n onTypeFilterChange = noop,\n } = opts\n const [sortingState, setSortingState] = useState<SortingState>(\n DEFAULT_SORTING_STATE,\n )\n\n const columnFilters = useMemo(\n () => (typeFilter ? [{ id: 'type', value: [typeFilter] }] : []),\n [typeFilter],\n )\n\n const onColumnFiltersChange = useCallback(\n (updaterOrValue: Updater<ColumnFiltersState>) => {\n const newValue: ColumnFiltersState =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(columnFilters)\n : updaterOrValue\n\n // Unlike the other controls, the type filter control is inside the table. State is still stored in the parent component.\n // When the user updates the filter, this function will fire, so we must propagate changes to the type filter to the parent.\n const typeFilter = getTypeFilterFromColumnFilters(newValue)\n onTypeFilterChange(typeFilter)\n },\n [columnFilters, onTypeFilterChange],\n )\n\n // Map the @tanstack/react-table sort state object to the Synapse API object\n const apiRequestSortState: AccessRequirementSearchRequest['sort'] = useMemo(\n () => sortingState.map(columnSortToAccessRequirementSearchSort),\n [sortingState],\n )\n\n const searchRequest: Omit<AccessRequirementSearchRequest, 'nextPageToken'> =\n useMemo(() => {\n // SWC-6615: If the input string is a single integer, assume it's the AR ID. Otherwise, use as the nameContains field.\n let nameContains: string | undefined = undefined\n let ids: number[] | undefined = undefined\n if (nameOrID !== undefined) {\n const nameOrIDTrimmed = nameOrID.trim()\n if (isIntegerInput(nameOrIDTrimmed)) {\n ids = [Number.parseInt(nameOrIDTrimmed)]\n } else {\n nameContains = nameOrIDTrimmed\n }\n }\n return {\n ids,\n nameContains,\n relatedProjectId,\n reviewerId,\n accessType,\n sort: apiRequestSortState,\n type: typeFilter,\n }\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n apiRequestSortState,\n typeFilter,\n ])\n\n const { data, hasNextPage, fetchNextPage, isLoading, isFetchingNextPage } =\n useSearchAccessRequirementsInfinite(searchRequest)\n\n const accessRequirements = useMemo(\n () => data?.pages.flatMap(page => page.results) ?? [],\n [data],\n )\n\n const table: Table<AccessRequirementSearchResult> =\n useReactTable<AccessRequirementSearchResult>({\n data: accessRequirements,\n columns: columns,\n state: {\n sorting: sortingState,\n columnFilters: columnFilters,\n },\n getFacetedUniqueValues: (\n table: Table<AccessRequirementSearchResult>,\n columnId: string,\n ) => {\n if (columnId === 'type') {\n // Hard-code the set of possible access requirement types with count = 0 to indicate that we don't have facet counts.\n return () =>\n new Map(ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES.map(v => [v, 0]))\n }\n return defaultGetFacetedUniqueValues<AccessRequirementSearchResult>()(\n table,\n columnId,\n )\n },\n onSortingChange: setSortingState,\n onColumnFiltersChange: onColumnFiltersChange,\n getRowId: row => row.id,\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n manualSorting: true,\n enableMultiSort: false,\n // Sort is required for this API call, so prevent the user from removing the sort.\n enableSortingRemoval: false,\n manualFiltering: true,\n })\n\n return { table, isLoading, hasNextPage, fetchNextPage, isFetchingNextPage }\n}\n"],"names":["accessRequirementConcreteTypeValueToDisplayValue","accessRequirementConcreteTypeValue","TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","TERMS_OF_USE_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","SELF_SIGN_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","MANAGED_ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","ACT_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_VALUE","LOCK_ACCESS_REQUIREMENT_CONCRETE_TYPE_DISPLAY_VALUE","ALL_ACCESS_REQUIREMENT_CONCRETE_TYPES","isIntegerInput","v","columnHelper","createColumnHelper","columns","props","jsx","ColumnHeader","getValue","Link","PRODUCTION_ENDPOINT_CONFIG","Fragment","projectId","jsxs","EntityLink","Typography","UserOrTeamBadge","ACT_TEAM_ID","reviewerId","formatDate","dayjs","DEFAULT_SORTING_STATE","columnSortToAccessRequirementSearchSort","columnSort","direction","getTypeFilterFromColumnFilters","columnFilters","filterValues","f","useAccessRequirementTable","opts","nameOrID","relatedProjectId","accessType","typeFilter","onTypeFilterChange","noop","sortingState","setSortingState","useState","useMemo","onColumnFiltersChange","useCallback","updaterOrValue","newValue","apiRequestSortState","searchRequest","nameContains","ids","nameOrIDTrimmed","data","hasNextPage","fetchNextPage","isLoading","isFetchingNextPage","useSearchAccessRequirementsInfinite","accessRequirements","page","useReactTable","table","columnId","defaultGetFacetedUniqueValues","row","getCoreRowModel"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { StyledFormControl as ce } from "../styled/StyledFormControl.js";
|
|
|
9
9
|
import { displayToast as de } from "../ToastMessage/ToastMessage.js";
|
|
10
10
|
import { useGetDOI as me, useCreateOrUpdateDOI as ue } from "../../synapse-queries/doi/useDOI.js";
|
|
11
11
|
import { useGetVersions as pe } from "../../synapse-queries/entity/useEntity.js";
|
|
12
|
-
import
|
|
12
|
+
import fe from "../../synapse-queries/entity/useEntityBundle.js";
|
|
13
13
|
import { useGetPortal as he } from "../../synapse-queries/portal/usePortal.js";
|
|
14
14
|
import { useGetRealmPrincipals as ye } from "../../synapse-queries/realm/useRealmPrincipals.js";
|
|
15
15
|
import { useGetCurrentUserProfile as ge } from "../../synapse-queries/user/useUserBundle.js";
|
|
@@ -30,7 +30,7 @@ import "universal-cookie";
|
|
|
30
30
|
import "../../../utils/AppUtils/session/ApplicationSessionContext.js";
|
|
31
31
|
import "../../../utils/context/FullContextProvider.js";
|
|
32
32
|
import "../../../utils/context/DocumentMetadataContext.js";
|
|
33
|
-
import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
|
|
33
|
+
import '../../Plot/SynapsePlot.css';import '../../FullWidthAlert/FullWidthAlert.css';import '../../../style/components/_spinner.css';/* empty css */
|
|
34
34
|
import "react-router";
|
|
35
35
|
import "@mui/icons-material/Close";
|
|
36
36
|
import "../../styled/StyledPopover.js";
|
|
@@ -168,7 +168,6 @@ import "@mui/x-date-pickers/AdapterDayjs";
|
|
|
168
168
|
import "@mui/x-date-pickers/LocalizationProvider";
|
|
169
169
|
import "../../FeaturedDataTabs/FacetPlotsCardGrid.js";
|
|
170
170
|
import "../../Forum/ForumTable.js";
|
|
171
|
-
import "@mui/material/IconButton";
|
|
172
171
|
import "@mui/icons-material/NavigateNext";
|
|
173
172
|
import "@react-google-maps/api";
|
|
174
173
|
import "../../Markdown/MarkdownUtils.js";
|
|
@@ -182,6 +181,7 @@ import "lodash-es/orderBy";
|
|
|
182
181
|
import "../../styled/LargeButton.js";
|
|
183
182
|
import "../../../assets/illustrations/diagonalLinePattern.svg.js";
|
|
184
183
|
import "@upsetjs/react";
|
|
184
|
+
/* empty css */
|
|
185
185
|
import "reactflow";
|
|
186
186
|
import "../../ProvenanceGraph/ProvenanceUtils.js";
|
|
187
187
|
import "reactflow/dist/style.css";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as u, Fragment as E, jsx as n } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
2
|
+
import W from "../../../synapse-queries/entity/useEntityBundle.js";
|
|
3
3
|
import { isVersionableEntityType as j, entityTypeToFriendlyName as _ } from "../../../utils/functions/EntityTypeUtils.js";
|
|
4
4
|
import { getEndpoint as q, BackendDestinationEnum as G } from "../../../utils/functions/getEndpoint.js";
|
|
5
5
|
import { Button as l, Tooltip as U } from "@mui/material";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as a, jsxs as t } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
2
|
+
import b from "../../../synapse-queries/entity/useEntityBundle.js";
|
|
3
3
|
import { useGetUploadDestinationForStorageLocation as T } from "../../../synapse-queries/file/useUploadDestination.js";
|
|
4
4
|
import { formatDate as s } from "../../../utils/functions/DateFormatter.js";
|
|
5
5
|
import { isVersionableEntity as N, entityTypeToFriendlyName as M, getVersionDisplay as h } from "../../../utils/functions/EntityTypeUtils.js";
|
|
@@ -29,7 +29,7 @@ import "lodash-es/xorWith";
|
|
|
29
29
|
import "react-router";
|
|
30
30
|
import "@sage-bionetworks/synapse-client";
|
|
31
31
|
import { isDockerRepository as x } from "../../../../utils/types/IsType.js";
|
|
32
|
-
import
|
|
32
|
+
import h from "../../../../synapse-queries/entity/useEntityBundle.js";
|
|
33
33
|
import u from "../../../favorites/FavoriteButton.js";
|
|
34
34
|
import w, { type2SvgIconName as I } from "../../../IconSvg/IconSvg.js";
|
|
35
35
|
import v from "../action_menu/EntityActionMenu.js";
|
|
@@ -29,7 +29,7 @@ import "lodash-es/xorWith";
|
|
|
29
29
|
import "react-router";
|
|
30
30
|
import "@sage-bionetworks/synapse-client";
|
|
31
31
|
import "../../../../utils/types/IsType.js";
|
|
32
|
-
import
|
|
32
|
+
import h from "../../../../synapse-queries/entity/useEntityBundle.js";
|
|
33
33
|
const L = 50;
|
|
34
34
|
function p(t) {
|
|
35
35
|
return !n(t) || l(t) && t.isLatestVersion ? null : t.versionLabel ?? null;
|
|
@@ -28,7 +28,7 @@ import "lodash-es/xorWith";
|
|
|
28
28
|
import "react-router";
|
|
29
29
|
import "@sage-bionetworks/synapse-client";
|
|
30
30
|
import "../../../../utils/types/IsType.js";
|
|
31
|
-
import
|
|
31
|
+
import b from "../../../../synapse-queries/entity/useEntityBundle.js";
|
|
32
32
|
import { useGetFeatureFlag as k } from "../../../../synapse-queries/featureflags/useGetFeatureFlag.js";
|
|
33
33
|
import C from "../../../AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js";
|
|
34
34
|
import { useGetEntityTitleBarProperties as F } from "./useGetEntityTitleBarProperties.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetEntityTitleBarProperties.d.ts","sourceRoot":"","sources":["../../../../../src/components/entity/page/title_bar/useGetEntityTitleBarProperties.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useGetEntityTitleBarProperties.d.ts","sourceRoot":"","sources":["../../../../../src/components/entity/page/title_bar/useGetEntityTitleBarProperties.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAA;AAQ3C,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,cAAc,EAAE,CAuLlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as e, jsxs as a, Fragment as p } from "react/jsx-runtime";
|
|
2
2
|
import "../../../../synapse-client/SynapseClient.js";
|
|
3
3
|
import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
|
|
4
4
|
import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
|
|
@@ -10,7 +10,7 @@ import "lodash-es";
|
|
|
10
10
|
import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
|
|
11
11
|
import "@tanstack/react-query";
|
|
12
12
|
import "../../../../utils/PermissionLevelToAccessType.js";
|
|
13
|
-
import { useState as
|
|
13
|
+
import { useState as F } from "react";
|
|
14
14
|
import "../../../../utils/context/SynapseContext.js";
|
|
15
15
|
import "use-deep-compare-effect";
|
|
16
16
|
import { Link as d, Box as j } from "@mui/material";
|
|
@@ -37,53 +37,54 @@ import { HasAccessV2 as $ } from "../../../HasAccess/HasAccessV2.js";
|
|
|
37
37
|
import { CitationsDialog as E } from "./CitationsDialog.js";
|
|
38
38
|
import { useDataCiteUsage as q, maxCitationCount as J } from "./useDataCiteUsage.js";
|
|
39
39
|
import { useGetMentions as Q } from "./useGetMentions.js";
|
|
40
|
-
|
|
40
|
+
import W from "../../../GenericCard/Linkify.js";
|
|
41
|
+
function Kt(o, I) {
|
|
41
42
|
const {
|
|
42
|
-
entityBundle:
|
|
43
|
-
fileHandle:
|
|
43
|
+
entityBundle: i,
|
|
44
|
+
fileHandle: r,
|
|
44
45
|
downloadAlias: u,
|
|
45
|
-
isContainer:
|
|
46
|
+
isContainer: s,
|
|
46
47
|
fileHandleStorageInfo: t,
|
|
47
48
|
uploadDestinationString: y
|
|
48
|
-
} = _(o, I), [M, f] =
|
|
49
|
+
} = _(o, I), [M, f] = F(!1), [U, C] = F(!1), { data: T } = N(
|
|
49
50
|
{
|
|
50
51
|
parentId: o,
|
|
51
52
|
includeTypes: Object.values(H),
|
|
52
53
|
includeTotalChildCount: !0
|
|
53
54
|
},
|
|
54
|
-
{ enabled:
|
|
55
|
-
), k =
|
|
55
|
+
{ enabled: s }
|
|
56
|
+
), k = i && !i.doiAssociation && K(i.entity) && i.entity.isLatestVersion, { data: z } = P(
|
|
56
57
|
{ id: o, version: void 0, type: R.ENTITY },
|
|
57
58
|
{
|
|
58
59
|
enabled: k
|
|
59
60
|
}
|
|
60
|
-
), g =
|
|
61
|
+
), g = r?.contentSize && Y(r.contentSize), v = t && "location" in t && t.location, D = t && "endpoint" in t && t.endpoint, h = t && "bucket" in t && t.bucket, S = t && "fileKey" in t && t.fileKey, b = t && "url" in t && t.url, x = r?.contentMd5, c = k ? z : i?.doiAssociation, { data: n } = q(c?.doiUri), m = c && `https://doi.org/${c?.doiUri}`, w = !!n && n.citationCount > 0, L = T?.totalChildCount, A = i?.entity && V(i.entity) ? ((i?.entity).items ?? []).length : null, { data: l } = Q(o), B = !!l && l.length > 0;
|
|
61
62
|
return [
|
|
62
63
|
{
|
|
63
64
|
key: "id",
|
|
64
65
|
title: "SynID",
|
|
65
|
-
value: /* @__PURE__ */
|
|
66
|
+
value: /* @__PURE__ */ e(O, { value: o })
|
|
66
67
|
},
|
|
67
68
|
{
|
|
68
69
|
key: "access",
|
|
69
70
|
title: "Access",
|
|
70
|
-
value: /* @__PURE__ */
|
|
71
|
+
value: /* @__PURE__ */ e($, { entityId: o })
|
|
71
72
|
},
|
|
72
73
|
g && { key: "fileSize", title: "Size", value: g },
|
|
73
|
-
|
|
74
|
+
L != null && {
|
|
74
75
|
key: "containerItems",
|
|
75
76
|
title: "Items",
|
|
76
|
-
value:
|
|
77
|
+
value: L.toLocaleString()
|
|
77
78
|
},
|
|
78
|
-
|
|
79
|
+
A != null && {
|
|
79
80
|
key: "entityRefCollectionItems",
|
|
80
81
|
title: "Items",
|
|
81
|
-
value:
|
|
82
|
+
value: A.toLocaleString()
|
|
82
83
|
},
|
|
83
84
|
m && {
|
|
84
85
|
key: "doi",
|
|
85
86
|
title: "DOI",
|
|
86
|
-
value: /* @__PURE__ */
|
|
87
|
+
value: /* @__PURE__ */ e(d, { href: m, rel: "noopener noreferrer", target: "_blank", children: m })
|
|
87
88
|
},
|
|
88
89
|
w && {
|
|
89
90
|
key: "citations",
|
|
@@ -93,7 +94,7 @@ function Bt(o, I) {
|
|
|
93
94
|
n.citationCount.toLocaleString(),
|
|
94
95
|
n.citationCount == J && "+"
|
|
95
96
|
] }),
|
|
96
|
-
/* @__PURE__ */
|
|
97
|
+
/* @__PURE__ */ e(
|
|
97
98
|
E,
|
|
98
99
|
{
|
|
99
100
|
open: M,
|
|
@@ -107,8 +108,8 @@ function Bt(o, I) {
|
|
|
107
108
|
key: "mentions",
|
|
108
109
|
title: "Mentions",
|
|
109
110
|
value: /* @__PURE__ */ a(p, { children: [
|
|
110
|
-
/* @__PURE__ */
|
|
111
|
-
/* @__PURE__ */
|
|
111
|
+
/* @__PURE__ */ e(d, { onClick: () => C(!0), children: l.length.toLocaleString() }),
|
|
112
|
+
/* @__PURE__ */ e(
|
|
112
113
|
E,
|
|
113
114
|
{
|
|
114
115
|
open: U,
|
|
@@ -122,14 +123,14 @@ function Bt(o, I) {
|
|
|
122
123
|
x && {
|
|
123
124
|
key: "fileMd5",
|
|
124
125
|
title: "MD5",
|
|
125
|
-
value: /* @__PURE__ */
|
|
126
|
+
value: /* @__PURE__ */ e(O, { value: x })
|
|
126
127
|
},
|
|
127
|
-
!
|
|
128
|
+
!s && v && {
|
|
128
129
|
key: "fileStorageLocation",
|
|
129
130
|
title: "Storage Location",
|
|
130
131
|
value: v
|
|
131
132
|
},
|
|
132
|
-
|
|
133
|
+
s && y && {
|
|
133
134
|
key: "uploadDestination",
|
|
134
135
|
title: "Upload Destination",
|
|
135
136
|
value: y
|
|
@@ -142,7 +143,7 @@ function Bt(o, I) {
|
|
|
142
143
|
b && {
|
|
143
144
|
key: "externalUrl",
|
|
144
145
|
title: "URL",
|
|
145
|
-
value: b
|
|
146
|
+
value: /* @__PURE__ */ e(W, { text: b })
|
|
146
147
|
},
|
|
147
148
|
h && { key: "externalFileBucket", title: "Bucket", value: h },
|
|
148
149
|
S && { key: "externalFileKey", title: "File Key", value: S },
|
|
@@ -151,12 +152,12 @@ function Bt(o, I) {
|
|
|
151
152
|
title: "Alias",
|
|
152
153
|
value: /* @__PURE__ */ a(p, { children: [
|
|
153
154
|
"Name when downloaded will be: ",
|
|
154
|
-
/* @__PURE__ */
|
|
155
|
+
/* @__PURE__ */ e(j, { sx: { display: "inline", fontFamily: "monospace" }, children: u })
|
|
155
156
|
] })
|
|
156
157
|
}
|
|
157
158
|
].filter((G) => !!G);
|
|
158
159
|
}
|
|
159
160
|
export {
|
|
160
|
-
|
|
161
|
+
Kt as useGetEntityTitleBarProperties
|
|
161
162
|
};
|
|
162
163
|
//# sourceMappingURL=useGetEntityTitleBarProperties.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetEntityTitleBarProperties.js","sources":["../../../../../src/components/entity/page/title_bar/useGetEntityTitleBarProperties.tsx"],"sourcesContent":["import { useGetEntityChildren } from '@/synapse-queries'\nimport { useGetDOIAssociation } from '@/synapse-queries/doi/useDOI'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isEntityRefCollectionView,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport { Box, Link } from '@mui/material'\nimport { DoiObjectType, EntityType } from '@sage-bionetworks/synapse-client'\nimport { EntityRefCollectionView } from '@sage-bionetworks/synapse-types'\nimport { ReactNode, useState } from 'react'\nimport CopyToClipboardString from '../../../CopyToClipboardString/CopyToClipboardString'\nimport { HasAccessV2 } from '../../../HasAccess/HasAccessV2'\nimport { CitationsDialog } from './CitationsDialog'\nimport { maxCitationCount, useDataCiteUsage } from './useDataCiteUsage'\nimport { useGetMentions } from './useGetMentions'\n\nexport type EntityProperty = {\n key: string\n title: string\n value: ReactNode\n}\n\n/**\n * This hook fetches all the entity metadata shown on the Entity page, and transforms the data into an ordered list of\n * render-able key-value pairs.\n * @param entityId\n * @param versionNumber\n */\nexport function useGetEntityTitleBarProperties(\n entityId: string,\n versionNumber?: number,\n): EntityProperty[] {\n const {\n entityBundle: bundle,\n fileHandle: dataFileHandle,\n downloadAlias,\n isContainer,\n fileHandleStorageInfo,\n uploadDestinationString,\n } = useGetEntityMetadata(entityId, versionNumber)\n const [dataCiteCitationsDialogOpen, setDataCiteCitationsDialogOpen] =\n useState(false)\n const [mentionsDialogOpen, setMentionsDialogOpen] = useState(false)\n const { data: entityChildrenResponse } = useGetEntityChildren(\n {\n parentId: entityId,\n includeTypes: Object.values(EntityType),\n includeTotalChildCount: true,\n },\n { enabled: isContainer },\n )\n\n // If this is the latest entity version, show the \"versionless\" DOI if it exists.\n const useFallbackVersionlessDOI =\n bundle &&\n !bundle.doiAssociation &&\n isVersionableEntity(bundle.entity) &&\n bundle.entity.isLatestVersion\n const { data: versionlessDOIAssociation } = useGetDOIAssociation(\n { id: entityId, version: undefined, type: DoiObjectType.ENTITY },\n {\n enabled: useFallbackVersionlessDOI,\n },\n )\n\n const size =\n dataFileHandle?.contentSize &&\n calculateFriendlyFileSize(dataFileHandle.contentSize)\n const storageLocation =\n fileHandleStorageInfo &&\n 'location' in fileHandleStorageInfo &&\n fileHandleStorageInfo.location\n const endpoint =\n fileHandleStorageInfo &&\n 'endpoint' in fileHandleStorageInfo &&\n fileHandleStorageInfo.endpoint\n const bucket =\n fileHandleStorageInfo &&\n 'bucket' in fileHandleStorageInfo &&\n fileHandleStorageInfo.bucket\n const fileKey =\n fileHandleStorageInfo &&\n 'fileKey' in fileHandleStorageInfo &&\n fileHandleStorageInfo.fileKey\n const externalUrl =\n fileHandleStorageInfo &&\n 'url' in fileHandleStorageInfo &&\n fileHandleStorageInfo.url\n\n const md5 = dataFileHandle?.contentMd5\n\n // If there is no version-specific DOI, fall back to the versionless DOI\n const doiAssociation = useFallbackVersionlessDOI\n ? versionlessDOIAssociation\n : bundle?.doiAssociation\n const { data: dataCiteUsage } = useDataCiteUsage(doiAssociation?.doiUri)\n const doi = doiAssociation && `https://doi.org/${doiAssociation?.doiUri}`\n const isDoiUsage = !!dataCiteUsage && dataCiteUsage.citationCount > 0\n const containerItems = entityChildrenResponse?.totalChildCount\n\n const datasetItems =\n bundle?.entity && isEntityRefCollectionView(bundle.entity)\n ? ((bundle?.entity as EntityRefCollectionView).items ?? []).length\n : null\n\n const { data: mentions } = useGetMentions(entityId)\n const isMentions = !!mentions && mentions.length > 0\n return [\n {\n key: 'id',\n title: 'SynID',\n value: <CopyToClipboardString value={entityId} />,\n },\n {\n key: 'access',\n title: 'Access',\n value: <HasAccessV2 entityId={entityId} />,\n },\n size && { key: 'fileSize', title: 'Size', value: size },\n containerItems != null && {\n key: 'containerItems',\n title: 'Items',\n value: containerItems.toLocaleString(),\n },\n datasetItems != null && {\n key: 'entityRefCollectionItems',\n title: 'Items',\n value: datasetItems.toLocaleString(),\n },\n doi && {\n key: 'doi',\n title: 'DOI',\n value: (\n <Link href={doi} rel={'noopener noreferrer'} target={'_blank'}>\n {doi}\n </Link>\n ),\n },\n isDoiUsage && {\n key: 'citations',\n title: 'Citations',\n value: (\n <>\n <Link onClick={() => setDataCiteCitationsDialogOpen(true)}>\n {dataCiteUsage.citationCount.toLocaleString()}\n {dataCiteUsage.citationCount == maxCitationCount && '+'}\n </Link>\n <CitationsDialog\n open={dataCiteCitationsDialogOpen}\n onClose={() => setDataCiteCitationsDialogOpen(false)}\n citations={dataCiteUsage.citations}\n />\n </>\n ),\n },\n isMentions && {\n key: 'mentions',\n title: 'Mentions',\n value: (\n <>\n <Link onClick={() => setMentionsDialogOpen(true)}>\n {mentions.length.toLocaleString()}\n </Link>\n <CitationsDialog\n open={mentionsDialogOpen}\n onClose={() => setMentionsDialogOpen(false)}\n citations={mentions}\n title=\"Mentioned in\"\n />\n </>\n ),\n },\n md5 && {\n key: 'fileMd5',\n title: 'MD5',\n value: <CopyToClipboardString value={md5} />,\n },\n !isContainer &&\n storageLocation && {\n key: 'fileStorageLocation',\n title: 'Storage Location',\n value: storageLocation,\n },\n isContainer &&\n uploadDestinationString && {\n key: 'uploadDestination',\n title: 'Upload Destination',\n value: uploadDestinationString,\n },\n endpoint && {\n key: 'externalFileEndpoint',\n title: 'Endpoint',\n value: endpoint,\n },\n externalUrl && {\n key: 'externalUrl',\n title: 'URL',\n value: externalUrl,\n },\n bucket && { key: 'externalFileBucket', title: 'Bucket', value: bucket },\n fileKey && { key: 'externalFileKey', title: 'File Key', value: fileKey },\n downloadAlias && {\n key: 'fileAlias',\n title: 'Alias',\n value: (\n <>\n {'Name when downloaded will be: '}\n <Box sx={{ display: 'inline', fontFamily: 'monospace' }}>\n {downloadAlias}\n </Box>\n </>\n ),\n },\n ].filter(item => !!item) as EntityProperty[]\n}\n"],"names":["useGetEntityTitleBarProperties","entityId","versionNumber","bundle","dataFileHandle","downloadAlias","isContainer","fileHandleStorageInfo","uploadDestinationString","useGetEntityMetadata","dataCiteCitationsDialogOpen","setDataCiteCitationsDialogOpen","useState","mentionsDialogOpen","setMentionsDialogOpen","entityChildrenResponse","useGetEntityChildren","EntityType","useFallbackVersionlessDOI","isVersionableEntity","versionlessDOIAssociation","useGetDOIAssociation","DoiObjectType","size","calculateFriendlyFileSize","storageLocation","endpoint","bucket","fileKey","externalUrl","md5","doiAssociation","dataCiteUsage","useDataCiteUsage","doi","isDoiUsage","containerItems","datasetItems","isEntityRefCollectionView","mentions","useGetMentions","isMentions","jsx","CopyToClipboardString","HasAccessV2","Link","jsxs","Fragment","maxCitationCount","CitationsDialog","Box","item"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useGetEntityTitleBarProperties.js","sources":["../../../../../src/components/entity/page/title_bar/useGetEntityTitleBarProperties.tsx"],"sourcesContent":["import { useGetEntityChildren } from '@/synapse-queries'\nimport { useGetDOIAssociation } from '@/synapse-queries/doi/useDOI'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport {\n isEntityRefCollectionView,\n isVersionableEntity,\n} from '@/utils/functions/EntityTypeUtils'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport { Box, Link } from '@mui/material'\nimport { DoiObjectType, EntityType } from '@sage-bionetworks/synapse-client'\nimport { EntityRefCollectionView } from '@sage-bionetworks/synapse-types'\nimport { ReactNode, useState } from 'react'\nimport CopyToClipboardString from '../../../CopyToClipboardString/CopyToClipboardString'\nimport { HasAccessV2 } from '../../../HasAccess/HasAccessV2'\nimport { CitationsDialog } from './CitationsDialog'\nimport { maxCitationCount, useDataCiteUsage } from './useDataCiteUsage'\nimport { useGetMentions } from './useGetMentions'\nimport Linkify from '@/components/GenericCard/Linkify'\n\nexport type EntityProperty = {\n key: string\n title: string\n value: ReactNode\n}\n\n/**\n * This hook fetches all the entity metadata shown on the Entity page, and transforms the data into an ordered list of\n * render-able key-value pairs.\n * @param entityId\n * @param versionNumber\n */\nexport function useGetEntityTitleBarProperties(\n entityId: string,\n versionNumber?: number,\n): EntityProperty[] {\n const {\n entityBundle: bundle,\n fileHandle: dataFileHandle,\n downloadAlias,\n isContainer,\n fileHandleStorageInfo,\n uploadDestinationString,\n } = useGetEntityMetadata(entityId, versionNumber)\n const [dataCiteCitationsDialogOpen, setDataCiteCitationsDialogOpen] =\n useState(false)\n const [mentionsDialogOpen, setMentionsDialogOpen] = useState(false)\n const { data: entityChildrenResponse } = useGetEntityChildren(\n {\n parentId: entityId,\n includeTypes: Object.values(EntityType),\n includeTotalChildCount: true,\n },\n { enabled: isContainer },\n )\n\n // If this is the latest entity version, show the \"versionless\" DOI if it exists.\n const useFallbackVersionlessDOI =\n bundle &&\n !bundle.doiAssociation &&\n isVersionableEntity(bundle.entity) &&\n bundle.entity.isLatestVersion\n const { data: versionlessDOIAssociation } = useGetDOIAssociation(\n { id: entityId, version: undefined, type: DoiObjectType.ENTITY },\n {\n enabled: useFallbackVersionlessDOI,\n },\n )\n\n const size =\n dataFileHandle?.contentSize &&\n calculateFriendlyFileSize(dataFileHandle.contentSize)\n const storageLocation =\n fileHandleStorageInfo &&\n 'location' in fileHandleStorageInfo &&\n fileHandleStorageInfo.location\n const endpoint =\n fileHandleStorageInfo &&\n 'endpoint' in fileHandleStorageInfo &&\n fileHandleStorageInfo.endpoint\n const bucket =\n fileHandleStorageInfo &&\n 'bucket' in fileHandleStorageInfo &&\n fileHandleStorageInfo.bucket\n const fileKey =\n fileHandleStorageInfo &&\n 'fileKey' in fileHandleStorageInfo &&\n fileHandleStorageInfo.fileKey\n const externalUrl =\n fileHandleStorageInfo &&\n 'url' in fileHandleStorageInfo &&\n fileHandleStorageInfo.url\n\n const md5 = dataFileHandle?.contentMd5\n\n // If there is no version-specific DOI, fall back to the versionless DOI\n const doiAssociation = useFallbackVersionlessDOI\n ? versionlessDOIAssociation\n : bundle?.doiAssociation\n const { data: dataCiteUsage } = useDataCiteUsage(doiAssociation?.doiUri)\n const doi = doiAssociation && `https://doi.org/${doiAssociation?.doiUri}`\n const isDoiUsage = !!dataCiteUsage && dataCiteUsage.citationCount > 0\n const containerItems = entityChildrenResponse?.totalChildCount\n\n const datasetItems =\n bundle?.entity && isEntityRefCollectionView(bundle.entity)\n ? ((bundle?.entity as EntityRefCollectionView).items ?? []).length\n : null\n\n const { data: mentions } = useGetMentions(entityId)\n const isMentions = !!mentions && mentions.length > 0\n return [\n {\n key: 'id',\n title: 'SynID',\n value: <CopyToClipboardString value={entityId} />,\n },\n {\n key: 'access',\n title: 'Access',\n value: <HasAccessV2 entityId={entityId} />,\n },\n size && { key: 'fileSize', title: 'Size', value: size },\n containerItems != null && {\n key: 'containerItems',\n title: 'Items',\n value: containerItems.toLocaleString(),\n },\n datasetItems != null && {\n key: 'entityRefCollectionItems',\n title: 'Items',\n value: datasetItems.toLocaleString(),\n },\n doi && {\n key: 'doi',\n title: 'DOI',\n value: (\n <Link href={doi} rel={'noopener noreferrer'} target={'_blank'}>\n {doi}\n </Link>\n ),\n },\n isDoiUsage && {\n key: 'citations',\n title: 'Citations',\n value: (\n <>\n <Link onClick={() => setDataCiteCitationsDialogOpen(true)}>\n {dataCiteUsage.citationCount.toLocaleString()}\n {dataCiteUsage.citationCount == maxCitationCount && '+'}\n </Link>\n <CitationsDialog\n open={dataCiteCitationsDialogOpen}\n onClose={() => setDataCiteCitationsDialogOpen(false)}\n citations={dataCiteUsage.citations}\n />\n </>\n ),\n },\n isMentions && {\n key: 'mentions',\n title: 'Mentions',\n value: (\n <>\n <Link onClick={() => setMentionsDialogOpen(true)}>\n {mentions.length.toLocaleString()}\n </Link>\n <CitationsDialog\n open={mentionsDialogOpen}\n onClose={() => setMentionsDialogOpen(false)}\n citations={mentions}\n title=\"Mentioned in\"\n />\n </>\n ),\n },\n md5 && {\n key: 'fileMd5',\n title: 'MD5',\n value: <CopyToClipboardString value={md5} />,\n },\n !isContainer &&\n storageLocation && {\n key: 'fileStorageLocation',\n title: 'Storage Location',\n value: storageLocation,\n },\n isContainer &&\n uploadDestinationString && {\n key: 'uploadDestination',\n title: 'Upload Destination',\n value: uploadDestinationString,\n },\n endpoint && {\n key: 'externalFileEndpoint',\n title: 'Endpoint',\n value: endpoint,\n },\n externalUrl && {\n key: 'externalUrl',\n title: 'URL',\n value: <Linkify text={externalUrl} />,\n },\n bucket && { key: 'externalFileBucket', title: 'Bucket', value: bucket },\n fileKey && { key: 'externalFileKey', title: 'File Key', value: fileKey },\n downloadAlias && {\n key: 'fileAlias',\n title: 'Alias',\n value: (\n <>\n {'Name when downloaded will be: '}\n <Box sx={{ display: 'inline', fontFamily: 'monospace' }}>\n {downloadAlias}\n </Box>\n </>\n ),\n },\n ].filter(item => !!item) as EntityProperty[]\n}\n"],"names":["useGetEntityTitleBarProperties","entityId","versionNumber","bundle","dataFileHandle","downloadAlias","isContainer","fileHandleStorageInfo","uploadDestinationString","useGetEntityMetadata","dataCiteCitationsDialogOpen","setDataCiteCitationsDialogOpen","useState","mentionsDialogOpen","setMentionsDialogOpen","entityChildrenResponse","useGetEntityChildren","EntityType","useFallbackVersionlessDOI","isVersionableEntity","versionlessDOIAssociation","useGetDOIAssociation","DoiObjectType","size","calculateFriendlyFileSize","storageLocation","endpoint","bucket","fileKey","externalUrl","md5","doiAssociation","dataCiteUsage","useDataCiteUsage","doi","isDoiUsage","containerItems","datasetItems","isEntityRefCollectionView","mentions","useGetMentions","isMentions","jsx","CopyToClipboardString","HasAccessV2","Link","jsxs","Fragment","maxCitationCount","CitationsDialog","Linkify","Box","item"],"mappings":"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"}
|