synapse-react-client 4.0.33 → 4.0.35
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/assets/icons/curie-head.svg +21 -0
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +29 -3
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +153 -84
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +49 -42
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts +6 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +161 -155
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts +21 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +164 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts +22 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +264 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +105 -96
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.d.ts +13 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +122 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts +17 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js +112 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts +27 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +194 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.d.ts +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js +7 -7
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.d.ts +2 -1
- package/dist/components/DraggableDialog/DraggableDialog.d.ts.map +1 -1
- package/dist/components/DraggableDialog/DraggableDialog.js +42 -33
- package/dist/components/DraggableDialog/DraggableDialog.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js +12 -6
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +2 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.d.ts.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js +23 -20
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +100 -99
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +64 -55
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js +4 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.d.ts.map +1 -1
- package/dist/components/StorybookComponentWrapper.js +16 -13
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js +6 -6
- package/dist/components/SynapseChat/SynapseChat.d.ts +2 -1
- package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js +118 -74
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +3 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js +21 -21
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.d.ts +1 -0
- package/dist/components/SynapseChat/SynapseChatMessage.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js +9 -8
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js +2 -1
- package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.d.ts.map +1 -1
- package/dist/components/TanStackTable/TanStackTableUtils.js +6 -6
- package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.d.ts.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js +55 -55
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/EDucTemplateTable.d.ts +3 -0
- package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -0
- package/dist/components/dataaccess/EDucTemplateTable.js +213 -0
- package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -0
- package/dist/components/dataaccess/ReviewerDashboard.d.ts.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js +44 -34
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts +12 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +84 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js +20 -18
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.d.ts.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js +43 -61
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/createdByModifiedByTooltips.d.ts +7 -0
- package/dist/components/entity/page/createdByModifiedByTooltips.d.ts.map +1 -0
- package/dist/components/entity/page/createdByModifiedByTooltips.js +36 -0
- package/dist/components/entity/page/createdByModifiedByTooltips.js.map +1 -0
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +130 -65
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/widgets/Range.js +8 -2
- package/dist/components/widgets/Range.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +2 -0
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +35 -40
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +2 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js +19 -19
- package/dist/components/widgets/query-filter/RangeFacetFilterUI.js.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +48 -23
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/eDucTemplateHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/eDucTemplateHandlers.js +9 -9
- package/dist/mocks/msw/handlers/eDucTemplateHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/fileHandlers.js +22 -22
- package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js +36 -36
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/user/mock_user_profile.d.ts +1 -0
- package/dist/mocks/user/mock_user_profile.d.ts.map +1 -1
- package/dist/mocks/user/mock_user_profile.js +45 -45
- package/dist/mocks/user/mock_user_profile.js.map +1 -1
- package/dist/style/components/facet_nav/_facet-nav-panel.scss +0 -6
- package/dist/synapse-queries/KeyFactory.d.ts +1 -0
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +3 -0
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/dataaccess/index.js +4 -4
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts +13 -1
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +67 -49
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/index.js +185 -184
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts +6 -0
- package/dist/utils/APIConstants.d.ts.map +1 -1
- package/dist/utils/APIConstants.js +2 -2
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js +20 -19
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +1 -0
- 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/functions/RegularExpressions.d.ts +7 -0
- package/dist/utils/functions/RegularExpressions.d.ts.map +1 -1
- package/dist/utils/functions/RegularExpressions.js +5 -4
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/hooks/useFetchBlobUrl.d.ts +9 -0
- package/dist/utils/hooks/useFetchBlobUrl.d.ts.map +1 -0
- package/dist/utils/hooks/useFetchBlobUrl.js +19 -0
- package/dist/utils/hooks/useFetchBlobUrl.js.map +1 -0
- package/dist/utils/hooks/useIsHydrated.d.ts +9 -0
- package/dist/utils/hooks/useIsHydrated.d.ts.map +1 -0
- package/dist/utils/hooks/useIsHydrated.js +10 -0
- package/dist/utils/hooks/useIsHydrated.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EDucTemplateTable.js","names":[],"sources":["../../../src/components/dataaccess/EDucTemplateTable.tsx"],"sourcesContent":["import {\n useGetEDucTemplateValidation,\n useListEDucTemplates,\n} from '@/synapse-queries'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { CheckCircleTwoTone, ErrorTwoTone, Replay } from '@mui/icons-material'\nimport {\n Alert,\n Box,\n Button,\n IconButton,\n Skeleton,\n Tooltip,\n Typography,\n} from '@mui/material'\nimport { EDucTemplate } from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { useEffect, useMemo, useState } from 'react'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\n\nconst columnHelper = createColumnHelper<EDucTemplate>()\n\nconst columns = [\n columnHelper.accessor('name', {\n header: props => <ColumnHeader {...props} title={'Name'} />,\n cell: ({ getValue }) => getValue() ?? '',\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('description', {\n header: props => <ColumnHeader {...props} title={'Description'} />,\n cell: ({ getValue }) => getValue() ?? '',\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('createdOn', {\n header: props => <ColumnHeader {...props} title={'Created on'} />,\n cell: ({ getValue }) => {\n const value = getValue()\n return value ? formatDate(dayjs(value)) : ''\n },\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('modifiedOn', {\n header: props => <ColumnHeader {...props} title={'Modified on'} />,\n cell: ({ getValue }) => {\n const value = getValue()\n return value ? formatDate(dayjs(value)) : ''\n },\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: 'validation',\n header: props => <ColumnHeader {...props} title={'Validation status'} />,\n cell: ({ row }) => <ValidationCell templateId={row.original.templateId} />,\n }),\n]\n\nfunction ValidationCell(props: { templateId: string | undefined }) {\n const { templateId } = props\n const [hasRequestedValidation, setHasRequestedValidation] = useState(false)\n\n const { data, error, isFetching, refetch } = useGetEDucTemplateValidation(\n templateId ?? '',\n { enabled: hasRequestedValidation && Boolean(templateId) },\n )\n\n if (!templateId) return null\n\n if (!hasRequestedValidation) {\n return (\n <Button\n variant={'outlined'}\n size={'small'}\n onClick={() => setHasRequestedValidation(true)}\n >\n Validate\n </Button>\n )\n }\n\n if (isFetching) {\n return (\n <Box sx={{ display: 'inline-flex', alignItems: 'center' }}>\n <SynapseSpinner size={16} />\n </Box>\n )\n }\n\n if (error) {\n return (\n <Box sx={{ display: 'inline-flex', alignItems: 'center', gap: 0.5 }}>\n <ErrorTwoTone color={'error'} fontSize={'small'} />\n <Typography variant={'smallText1'} sx={{ color: 'error.main' }}>\n {error.reason}\n </Typography>\n <Tooltip title={'Re-validate'}>\n <IconButton\n size={'small'}\n onClick={() => {\n refetch()\n }}\n aria-label={'Re-validate'}\n >\n <Replay fontSize={'small'} />\n </IconButton>\n </Tooltip>\n </Box>\n )\n }\n\n if (data?.isValid) {\n return (\n <Box sx={{ display: 'inline-flex', alignItems: 'center', gap: 0.5 }}>\n <CheckCircleTwoTone color={'success'} fontSize={'small'} />\n <Typography variant={'smallText1'}>Valid</Typography>\n <Tooltip title={'Re-validate'}>\n <IconButton\n size={'small'}\n onClick={() => {\n refetch()\n }}\n aria-label={'Re-validate'}\n >\n <Replay fontSize={'small'} />\n </IconButton>\n </Tooltip>\n </Box>\n )\n }\n\n return (\n <Box sx={{ display: 'inline-flex', alignItems: 'center', gap: 0.5 }}>\n <ErrorTwoTone color={'error'} fontSize={'small'} />\n <Typography variant={'smallText1'} sx={{ color: 'error.main' }}>\n {data?.reason ?? 'Invalid'}\n </Typography>\n <Tooltip title={'Re-validate'}>\n <IconButton\n size={'small'}\n onClick={() => {\n refetch()\n }}\n aria-label={'Re-validate'}\n >\n <Replay fontSize={'small'} />\n </IconButton>\n </Tooltip>\n </Box>\n )\n}\n\nexport function EDucTemplateTable() {\n const {\n data,\n isLoading,\n error,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n } = useListEDucTemplates()\n\n useEffect(() => {\n if (hasNextPage && !isFetchingNextPage) {\n void fetchNextPage()\n }\n }, [hasNextPage, isFetchingNextPage, fetchNextPage])\n\n const templates = useMemo(\n () => data?.pages.flatMap(page => page.results ?? []) ?? [],\n [data],\n )\n\n const table = useReactTable<EDucTemplate>({\n data: templates,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getRowId: row => row.templateId ?? '',\n })\n\n if (isLoading || (hasNextPage && templates.length === 0)) {\n return (\n <Box>\n <Skeleton\n variant={'rectangular'}\n height={200}\n data-testid={'EDucTemplateTable-loading'}\n />\n </Box>\n )\n }\n\n if (error) {\n return (\n <Alert severity={'error'}>\n <strong>Sorry, we couldn't load the eDUC templates.</strong>\n <br />\n {error.reason}\n </Alert>\n )\n }\n\n if (templates.length === 0) {\n return (\n <Alert severity={'info'}>\n No eDUC templates are registered in DocuSign.\n </Alert>\n )\n }\n\n return (\n <Box>\n <Typography variant={'body1'} sx={{ mb: 2, color: 'grey.700' }}>\n Templates are managed in DocuSign. Use the <strong>Validate</strong>{' '}\n action to check whether a template meets Synapse's eDUC\n requirements.\n </Typography>\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{ sx: { my: 2 } }}\n />\n </Box>\n )\n}\n\nexport default EDucTemplateTable\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewerDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/dataaccess/ReviewerDashboard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReviewerDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/dataaccess/ReviewerDashboard.tsx"],"names":[],"mappings":"AAuCA,KAAK,sBAAsB,GAAG;IAC5B,iGAAiG;IACjG,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,wGAAwG;IACxG,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAgH9D;AAUD,eAAe,iBAAiB,CAAA"}
|
|
@@ -6,66 +6,76 @@ import i from "../OrientationBanner/index.js";
|
|
|
6
6
|
import { UserHistoryDashboard as a } from "./AccessHistoryDashboard.js";
|
|
7
7
|
import { AccessRequirementDashboard as o } from "./AccessRequirementDashboard.js";
|
|
8
8
|
import { DataAccessSubmissionDashboard as s } from "./AccessSubmissionDashboard.js";
|
|
9
|
-
import c from "./
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { RouterProvider as x } from "react-router
|
|
9
|
+
import { EDucTemplateTable as c } from "./EDucTemplateTable.js";
|
|
10
|
+
import l from "./SubmissionPage/SubmissionPage.js";
|
|
11
|
+
import { useMemo as u } from "react";
|
|
12
|
+
import { Typography as d } from "@mui/material";
|
|
13
|
+
import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
14
|
+
import { NavLink as h, Navigate as g, Outlet as _, RouterProvider as v, createBrowserRouter as y, createMemoryRouter as b, useParams as x } from "react-router";
|
|
15
|
+
import { RouterProvider as S } from "react-router/dom";
|
|
15
16
|
//#region src/components/dataaccess/ReviewerDashboard.tsx
|
|
16
|
-
function
|
|
17
|
+
function C(e) {
|
|
17
18
|
let { href: t, children: n, icon: i } = e;
|
|
18
|
-
return /* @__PURE__ */
|
|
19
|
+
return /* @__PURE__ */ m(h, {
|
|
19
20
|
className: "Tab",
|
|
20
21
|
role: "tab",
|
|
21
22
|
to: t,
|
|
22
|
-
children: [/* @__PURE__ */
|
|
23
|
+
children: [/* @__PURE__ */ p(r, {
|
|
23
24
|
icon: i,
|
|
24
25
|
sx: { paddingRight: "0.2rem" }
|
|
25
|
-
}), /* @__PURE__ */
|
|
26
|
+
}), /* @__PURE__ */ p(d, {
|
|
26
27
|
variant: "buttonLink",
|
|
27
28
|
children: n
|
|
28
29
|
})]
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
|
-
function
|
|
32
|
-
let { routerBaseName:
|
|
32
|
+
function w(r) {
|
|
33
|
+
let { routerBaseName: l = "/DataAccessManagement:default", useMemoryRouter: d = !1 } = r, { data: h, isLoading: g } = n(), x = h?.isACTMember, w = h?.isACTMember || h?.isARReviewer, E = u(() => [{
|
|
33
34
|
path: "/",
|
|
34
|
-
element: /* @__PURE__ */
|
|
35
|
+
element: /* @__PURE__ */ m("div", {
|
|
35
36
|
className: "ReviewerDashboard",
|
|
36
|
-
children: [/* @__PURE__ */
|
|
37
|
+
children: [/* @__PURE__ */ m("div", {
|
|
37
38
|
className: "Tabs",
|
|
38
39
|
role: "tablist",
|
|
39
40
|
children: [
|
|
40
|
-
|
|
41
|
+
x && /* @__PURE__ */ p(C, {
|
|
41
42
|
href: "/AccessRequirements",
|
|
42
43
|
icon: "accessClosed",
|
|
43
44
|
children: "Access Requirements"
|
|
44
45
|
}),
|
|
45
|
-
|
|
46
|
+
x && /* @__PURE__ */ p(C, {
|
|
47
|
+
href: "/EDucTemplates",
|
|
48
|
+
icon: "fileOutlined",
|
|
49
|
+
children: "eDUC Templates"
|
|
50
|
+
}),
|
|
51
|
+
w && /* @__PURE__ */ p(C, {
|
|
46
52
|
href: "/Submissions",
|
|
47
53
|
icon: "discussion",
|
|
48
54
|
children: "Submissions"
|
|
49
55
|
}),
|
|
50
|
-
|
|
56
|
+
w && /* @__PURE__ */ p(C, {
|
|
51
57
|
href: "/UserAccessHistory",
|
|
52
58
|
icon: "history",
|
|
53
59
|
children: "User Access History"
|
|
54
60
|
})
|
|
55
61
|
]
|
|
56
|
-
}), /* @__PURE__ */
|
|
62
|
+
}), /* @__PURE__ */ p("div", {
|
|
57
63
|
className: "TabContentContainer",
|
|
58
|
-
children: /* @__PURE__ */
|
|
64
|
+
children: /* @__PURE__ */ p(e, { children: /* @__PURE__ */ p(_, {}) })
|
|
59
65
|
})]
|
|
60
66
|
}),
|
|
61
67
|
children: [
|
|
62
68
|
{
|
|
63
69
|
path: "AccessRequirements",
|
|
64
|
-
element:
|
|
70
|
+
element: x ? /* @__PURE__ */ p(o, {}) : null
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
path: "EDucTemplates",
|
|
74
|
+
element: x ? /* @__PURE__ */ p(c, {}) : null
|
|
65
75
|
},
|
|
66
76
|
{
|
|
67
77
|
path: "Submissions",
|
|
68
|
-
element:
|
|
78
|
+
element: w ? /* @__PURE__ */ m(f, { children: [!x && /* @__PURE__ */ p(i, {
|
|
69
79
|
name: "DataAccessManagement",
|
|
70
80
|
title: "Getting Started With Data Access Management",
|
|
71
81
|
text: "When someone requests access to data, that request will show up here. Clicking on the Request ID will take you to a page where you can review the request.",
|
|
@@ -73,32 +83,32 @@ function C(r) {
|
|
|
73
83
|
margin: "-20px -30px 20px -30px",
|
|
74
84
|
width: "auto"
|
|
75
85
|
}
|
|
76
|
-
}), /* @__PURE__ */
|
|
86
|
+
}), /* @__PURE__ */ p(s, {})] }) : null
|
|
77
87
|
},
|
|
78
88
|
{
|
|
79
89
|
path: "Submissions/:id",
|
|
80
|
-
element:
|
|
90
|
+
element: w ? /* @__PURE__ */ p(T, {}) : null
|
|
81
91
|
},
|
|
82
92
|
{
|
|
83
93
|
path: "UserAccessHistory",
|
|
84
|
-
element: /* @__PURE__ */
|
|
94
|
+
element: /* @__PURE__ */ p(a, {})
|
|
85
95
|
}
|
|
86
96
|
]
|
|
87
|
-
}], [
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
97
|
+
}], [x, w]), D = u(() => d ? b(E, { basename: l }) : y(E, { basename: l }), [
|
|
98
|
+
d,
|
|
99
|
+
E,
|
|
100
|
+
l
|
|
91
101
|
]);
|
|
92
|
-
return
|
|
102
|
+
return g ? /* @__PURE__ */ p(t, { size: 50 }) : p(d ? v : S, { router: D });
|
|
93
103
|
}
|
|
94
|
-
function
|
|
95
|
-
let { id: e } =
|
|
96
|
-
return e ? /* @__PURE__ */
|
|
104
|
+
function T() {
|
|
105
|
+
let { id: e } = x();
|
|
106
|
+
return e ? /* @__PURE__ */ p(l, {
|
|
97
107
|
submissionId: e,
|
|
98
108
|
isReviewer: !0
|
|
99
|
-
}) : /* @__PURE__ */
|
|
109
|
+
}) : /* @__PURE__ */ p(g, { to: "Submissions/" });
|
|
100
110
|
}
|
|
101
111
|
//#endregion
|
|
102
|
-
export {
|
|
112
|
+
export { w as ReviewerDashboard, w as default };
|
|
103
113
|
|
|
104
114
|
//# sourceMappingURL=ReviewerDashboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewerDashboard.js","names":[],"sources":["../../../src/components/dataaccess/ReviewerDashboard.tsx"],"sourcesContent":["import { useGetCurrentUserBundle } from '@/synapse-queries/user/useUserBundle'\nimport { Typography } from '@mui/material'\nimport { ReactNode, useMemo } from 'react'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n Navigate,\n NavLink,\n Outlet,\n RouteObject,\n RouterProvider,\n useParams,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport OrientationBanner from '../OrientationBanner'\nimport { UserHistoryDashboard } from './AccessHistoryDashboard'\nimport { AccessRequirementDashboard } from './AccessRequirementDashboard'\nimport { DataAccessSubmissionDashboard } from './AccessSubmissionDashboard'\nimport SubmissionPage from './SubmissionPage/SubmissionPage'\n\nfunction LinkTab(props: { href: string; children: ReactNode; icon: IconName }) {\n const { href, children, icon } = props\n return (\n <NavLink className=\"Tab\" role=\"tab\" to={href}>\n <IconSvg\n icon={icon}\n sx={{\n paddingRight: '0.2rem',\n }}\n />\n <Typography variant=\"buttonLink\">{children}</Typography>\n </NavLink>\n )\n}\n\ntype ReviewerDashboardProps = {\n /** Used to determine the base path for the component. Default is DataAccessManagement:default */\n routerBaseName?: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For demo purposes only. */\n useMemoryRouter?: boolean\n}\n\nexport function ReviewerDashboard(props: ReviewerDashboardProps) {\n const {\n routerBaseName = '/DataAccessManagement:default',\n useMemoryRouter = false,\n } = props\n\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n\n const hasActPermissions = userBundle?.isACTMember\n const hasReviewerPermissions =\n userBundle?.isACTMember || userBundle?.isARReviewer\n\n const routes: RouteObject[] = useMemo(\n () => [\n {\n path: '/',\n element: (\n <div className=\"ReviewerDashboard\">\n <div className=\"Tabs\" role=\"tablist\">\n {hasActPermissions && (\n <LinkTab href=\"/AccessRequirements\" icon=\"accessClosed\">\n Access Requirements\n </LinkTab>\n )}\n {hasReviewerPermissions && (\n <LinkTab href=\"/Submissions\" icon=\"discussion\">\n Submissions\n </LinkTab>\n )}\n {hasReviewerPermissions && (\n <LinkTab href=\"/UserAccessHistory\" icon=\"history\">\n User Access History\n </LinkTab>\n )}\n </div>\n <div className=\"TabContentContainer\">\n <SynapseErrorBoundary>\n <Outlet />\n </SynapseErrorBoundary>\n </div>\n </div>\n ),\n children: [\n {\n path: 'AccessRequirements',\n element: hasActPermissions ? <AccessRequirementDashboard /> : null,\n },\n {\n path: 'Submissions',\n element: hasReviewerPermissions ? (\n <>\n {!hasActPermissions && (\n <OrientationBanner\n name=\"DataAccessManagement\"\n title=\"Getting Started With Data Access Management\"\n text=\"When someone requests access to data, that request will show up here. Clicking on the Request ID will take you to a page where you can review the request.\"\n sx={{\n margin: '-20px -30px 20px -30px',\n width: 'auto',\n }}\n />\n )}\n <DataAccessSubmissionDashboard />\n </>\n ) : null,\n },\n {\n path: 'Submissions/:id',\n element: hasReviewerPermissions ? (\n <SubmissionPageRouteRenderer />\n ) : null,\n },\n {\n path: 'UserAccessHistory',\n element: <UserHistoryDashboard />,\n },\n ],\n },\n ],\n [hasActPermissions, hasReviewerPermissions],\n )\n\n const router = useMemo(() => {\n if (useMemoryRouter) {\n return createMemoryRouter(routes, {\n basename: routerBaseName,\n })\n } else {\n return createBrowserRouter(routes, {\n basename: routerBaseName,\n })\n }\n }, [useMemoryRouter, routes, routerBaseName])\n\n if (isLoading) {\n return <SynapseSpinner size={50} />\n }\n\n if (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n\nfunction SubmissionPageRouteRenderer() {\n const { id } = useParams<{ id: string }>()\n if (!id) {\n return <Navigate to=\"Submissions/\" />\n }\n return <SubmissionPage submissionId={id} isReviewer={true} />\n}\n\nexport default ReviewerDashboard\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReviewerDashboard.js","names":[],"sources":["../../../src/components/dataaccess/ReviewerDashboard.tsx"],"sourcesContent":["import { useGetCurrentUserBundle } from '@/synapse-queries/user/useUserBundle'\nimport { Typography } from '@mui/material'\nimport { ReactNode, useMemo } from 'react'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n Navigate,\n NavLink,\n Outlet,\n RouteObject,\n RouterProvider,\n useParams,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport { SynapseErrorBoundary } from '../error/ErrorBanner'\nimport IconSvg, { IconName } from '../IconSvg/IconSvg'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport OrientationBanner from '../OrientationBanner'\nimport { UserHistoryDashboard } from './AccessHistoryDashboard'\nimport { AccessRequirementDashboard } from './AccessRequirementDashboard'\nimport { DataAccessSubmissionDashboard } from './AccessSubmissionDashboard'\nimport { EDucTemplateTable } from './EDucTemplateTable'\nimport SubmissionPage from './SubmissionPage/SubmissionPage'\n\nfunction LinkTab(props: { href: string; children: ReactNode; icon: IconName }) {\n const { href, children, icon } = props\n return (\n <NavLink className=\"Tab\" role=\"tab\" to={href}>\n <IconSvg\n icon={icon}\n sx={{\n paddingRight: '0.2rem',\n }}\n />\n <Typography variant=\"buttonLink\">{children}</Typography>\n </NavLink>\n )\n}\n\ntype ReviewerDashboardProps = {\n /** Used to determine the base path for the component. Default is DataAccessManagement:default */\n routerBaseName?: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For demo purposes only. */\n useMemoryRouter?: boolean\n}\n\nexport function ReviewerDashboard(props: ReviewerDashboardProps) {\n const {\n routerBaseName = '/DataAccessManagement:default',\n useMemoryRouter = false,\n } = props\n\n const { data: userBundle, isLoading } = useGetCurrentUserBundle()\n\n const hasActPermissions = userBundle?.isACTMember\n const hasReviewerPermissions =\n userBundle?.isACTMember || userBundle?.isARReviewer\n\n const routes: RouteObject[] = useMemo(\n () => [\n {\n path: '/',\n element: (\n <div className=\"ReviewerDashboard\">\n <div className=\"Tabs\" role=\"tablist\">\n {hasActPermissions && (\n <LinkTab href=\"/AccessRequirements\" icon=\"accessClosed\">\n Access Requirements\n </LinkTab>\n )}\n {hasActPermissions && (\n <LinkTab href=\"/EDucTemplates\" icon=\"fileOutlined\">\n eDUC Templates\n </LinkTab>\n )}\n {hasReviewerPermissions && (\n <LinkTab href=\"/Submissions\" icon=\"discussion\">\n Submissions\n </LinkTab>\n )}\n {hasReviewerPermissions && (\n <LinkTab href=\"/UserAccessHistory\" icon=\"history\">\n User Access History\n </LinkTab>\n )}\n </div>\n <div className=\"TabContentContainer\">\n <SynapseErrorBoundary>\n <Outlet />\n </SynapseErrorBoundary>\n </div>\n </div>\n ),\n children: [\n {\n path: 'AccessRequirements',\n element: hasActPermissions ? <AccessRequirementDashboard /> : null,\n },\n {\n path: 'EDucTemplates',\n element: hasActPermissions ? <EDucTemplateTable /> : null,\n },\n {\n path: 'Submissions',\n element: hasReviewerPermissions ? (\n <>\n {!hasActPermissions && (\n <OrientationBanner\n name=\"DataAccessManagement\"\n title=\"Getting Started With Data Access Management\"\n text=\"When someone requests access to data, that request will show up here. Clicking on the Request ID will take you to a page where you can review the request.\"\n sx={{\n margin: '-20px -30px 20px -30px',\n width: 'auto',\n }}\n />\n )}\n <DataAccessSubmissionDashboard />\n </>\n ) : null,\n },\n {\n path: 'Submissions/:id',\n element: hasReviewerPermissions ? (\n <SubmissionPageRouteRenderer />\n ) : null,\n },\n {\n path: 'UserAccessHistory',\n element: <UserHistoryDashboard />,\n },\n ],\n },\n ],\n [hasActPermissions, hasReviewerPermissions],\n )\n\n const router = useMemo(() => {\n if (useMemoryRouter) {\n return createMemoryRouter(routes, {\n basename: routerBaseName,\n })\n } else {\n return createBrowserRouter(routes, {\n basename: routerBaseName,\n })\n }\n }, [useMemoryRouter, routes, routerBaseName])\n\n if (isLoading) {\n return <SynapseSpinner size={50} />\n }\n\n if (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n\nfunction SubmissionPageRouteRenderer() {\n const { id } = useParams<{ id: string }>()\n if (!id) {\n return <Navigate to=\"Submissions/\" />\n }\n return <SubmissionPage submissionId={id} isReviewer={true} />\n}\n\nexport default ReviewerDashboard\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,SAAS,EAAQ,GAA8D;CAC7E,IAAM,EAAE,SAAM,aAAU,YAAS;CACjC,OACE,kBAAC,GAAD;EAAS,WAAU;EAAM,MAAK;EAAM,IAAI;YAAxC,CACE,kBAAC,GAAD;GACQ;GACN,IAAI,EACF,cAAc,SAChB;EACD,CAAA,GACD,kBAAC,GAAD;GAAY,SAAQ;GAAc;EAAqB,CAAA,CAChD;;AAEb;AASA,SAAgB,EAAkB,GAA+B;CAC/D,IAAM,EACJ,oBAAiB,iCACjB,qBAAkB,OAChB,GAEE,EAAE,MAAM,GAAY,iBAAc,EAAwB,GAE1D,IAAoB,GAAY,aAChC,IACJ,GAAY,eAAe,GAAY,cAEnC,IAAwB,QACtB,CACJ;EACE,MAAM;EACN,SACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD;IAAK,WAAU;IAAO,MAAK;cAA3B;KACG,KACC,kBAAC,GAAD;MAAS,MAAK;MAAsB,MAAK;gBAAe;KAE/C,CAAA;KAEV,KACC,kBAAC,GAAD;MAAS,MAAK;MAAiB,MAAK;gBAAe;KAE1C,CAAA;KAEV,KACC,kBAAC,GAAD;MAAS,MAAK;MAAe,MAAK;gBAAa;KAEtC,CAAA;KAEV,KACC,kBAAC,GAAD;MAAS,MAAK;MAAqB,MAAK;gBAAU;KAEzC,CAAA;IAER;OACL,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,CAAS,CAAA,EACW,CAAA;GACnB,CAAA,CACF;;EAEP,UAAU;GACR;IACE,MAAM;IACN,SAAS,IAAoB,kBAAC,GAAD,CAA6B,CAAA,IAAI;GAChE;GACA;IACE,MAAM;IACN,SAAS,IAAoB,kBAAC,GAAD,CAAoB,CAAA,IAAI;GACvD;GACA;IACE,MAAM;IACN,SAAS,IACP,kBAAA,GAAA,EAAA,UAAA,CACG,CAAC,KACA,kBAAC,GAAD;KACE,MAAK;KACL,OAAM;KACN,MAAK;KACL,IAAI;MACF,QAAQ;MACR,OAAO;KACT;IACD,CAAA,GAEH,kBAAC,GAAD,CAAgC,CAAA,CAChC,EAAA,CAAA,IACA;GACN;GACA;IACE,MAAM;IACN,SAAS,IACP,kBAAC,GAAD,CAA8B,CAAA,IAC5B;GACN;GACA;IACE,MAAM;IACN,SAAS,kBAAC,GAAD,CAAuB,CAAA;GAClC;EACF;CACF,CACF,GACA,CAAC,GAAmB,CAAsB,CAC5C,GAEM,IAAS,QACT,IACK,EAAmB,GAAQ,EAChC,UAAU,EACZ,CAAC,IAEM,EAAoB,GAAQ,EACjC,UAAU,EACZ,CAAC,GAEF;EAAC;EAAiB;EAAQ;CAAc,CAAC;CAU5C,OARI,IACK,kBAAC,GAAD,EAAgB,MAAM,GAAK,CAAA,IAI3B,EADL,IACM,IAGF,GAHC,EAAwB,UAAS,CAAA;AAI5C;AAEA,SAAS,IAA8B;CACrC,IAAM,EAAE,UAAO,EAA0B;CAIzC,OAHK,IAGE,kBAAC,GAAD;EAAgB,cAAc;EAAI,YAAY;CAAO,CAAA,IAFnD,kBAAC,GAAD,EAAU,IAAG,eAAgB,CAAA;AAGxC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lists the requester's active eDUC signatures (routed / signed but not yet submitted).
|
|
3
|
+
*
|
|
4
|
+
* The underlying query walks every page of `POST /dataAccessRequest/list` inside its `queryFn`
|
|
5
|
+
* because filtering is done client-side pending PLFM-9907 (which will add an `isEDuc` server-side
|
|
6
|
+
* filter). Once server-side filtering ships, callers can switch back to a per-page infinite query
|
|
7
|
+
* with a "Show More" button.
|
|
8
|
+
*
|
|
9
|
+
* Renders nothing when the fully-loaded, filtered list is empty.
|
|
10
|
+
*/
|
|
11
|
+
export declare function InFlightEDucSignaturesTable(): import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
//# sourceMappingURL=InFlightEDucSignaturesTable.d.ts.map
|
package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InFlightEDucSignaturesTable.d.ts","sourceRoot":"","sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.tsx"],"names":[],"mappings":"AA2DA;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,mDAqD1C"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { useListAllUserDataAccessRequests as e } from "../../../synapse-queries/dataaccess/useEDuc.js";
|
|
2
|
+
import "../../../synapse-queries/index.js";
|
|
3
|
+
import { SkeletonTable as t } from "../../Skeleton/SkeletonTable.js";
|
|
4
|
+
import "../../Skeleton/index.js";
|
|
5
|
+
import n from "../../TanStackTable/StyledTanStackTable.js";
|
|
6
|
+
import r from "../../TanStackTable/ColumnHeader.js";
|
|
7
|
+
import { useMemo as i } from "react";
|
|
8
|
+
import { Alert as a, Box as o, Typography as s } from "@mui/material";
|
|
9
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
10
|
+
import { createColumnHelper as u, getCoreRowModel as d, useReactTable as f } from "@tanstack/react-table";
|
|
11
|
+
//#region src/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.tsx
|
|
12
|
+
var p = [
|
|
13
|
+
"sent",
|
|
14
|
+
"delivered",
|
|
15
|
+
"completed"
|
|
16
|
+
], m = {
|
|
17
|
+
sent: "Signatures pending",
|
|
18
|
+
delivered: "Signatures pending",
|
|
19
|
+
completed: "Ready to submit"
|
|
20
|
+
}, h = u(), g = [
|
|
21
|
+
h.accessor("accessRequirementName", {
|
|
22
|
+
header: (e) => /* @__PURE__ */ c(r, {
|
|
23
|
+
...e,
|
|
24
|
+
title: "Request type"
|
|
25
|
+
}),
|
|
26
|
+
enableSorting: !1,
|
|
27
|
+
enableColumnFilter: !1
|
|
28
|
+
}),
|
|
29
|
+
h.display({
|
|
30
|
+
id: "signatureProgress",
|
|
31
|
+
header: (e) => /* @__PURE__ */ c(r, {
|
|
32
|
+
...e,
|
|
33
|
+
title: "Signature progress"
|
|
34
|
+
}),
|
|
35
|
+
enableSorting: !1,
|
|
36
|
+
cell: (e) => `${e.row.original.signaturesAcquired ?? 0} of ${e.row.original.signaturesRequested ?? 0}`,
|
|
37
|
+
enableColumnFilter: !1,
|
|
38
|
+
size: 150
|
|
39
|
+
}),
|
|
40
|
+
h.accessor("status", {
|
|
41
|
+
header: (e) => /* @__PURE__ */ c(r, {
|
|
42
|
+
...e,
|
|
43
|
+
title: "Current status"
|
|
44
|
+
}),
|
|
45
|
+
enableSorting: !1,
|
|
46
|
+
cell: (e) => {
|
|
47
|
+
let t = e.getValue();
|
|
48
|
+
return t ? m[t] ?? t : "";
|
|
49
|
+
},
|
|
50
|
+
enableColumnFilter: !1,
|
|
51
|
+
size: 150
|
|
52
|
+
})
|
|
53
|
+
];
|
|
54
|
+
function _() {
|
|
55
|
+
let { data: r, isLoading: u, error: m } = e(), h = i(() => (r ?? []).filter((e) => e.isEDuc === !0 && e.status !== void 0 && p.includes(e.status)), [r]), _ = f({
|
|
56
|
+
data: h,
|
|
57
|
+
columns: g,
|
|
58
|
+
getCoreRowModel: d(),
|
|
59
|
+
columnResizeMode: "onChange"
|
|
60
|
+
});
|
|
61
|
+
return m ? /* @__PURE__ */ l(a, {
|
|
62
|
+
severity: "error",
|
|
63
|
+
children: [
|
|
64
|
+
/* @__PURE__ */ c("strong", { children: "Sorry, we couldn't load your in-flight eDUC signatures." }),
|
|
65
|
+
/* @__PURE__ */ c("br", {}),
|
|
66
|
+
m.reason
|
|
67
|
+
]
|
|
68
|
+
}) : u ? /* @__PURE__ */ c(t, {
|
|
69
|
+
numCols: g.length,
|
|
70
|
+
fullWidthCells: !0
|
|
71
|
+
}) : h.length === 0 ? null : /* @__PURE__ */ l(o, { children: [/* @__PURE__ */ c(s, {
|
|
72
|
+
variant: "headline2",
|
|
73
|
+
component: "h2",
|
|
74
|
+
gutterBottom: !0,
|
|
75
|
+
children: "In-flight eDUC signatures"
|
|
76
|
+
}), /* @__PURE__ */ c(n, {
|
|
77
|
+
table: _,
|
|
78
|
+
fullWidth: !0
|
|
79
|
+
})] });
|
|
80
|
+
}
|
|
81
|
+
//#endregion
|
|
82
|
+
export { _ as InFlightEDucSignaturesTable };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=InFlightEDucSignaturesTable.js.map
|
package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InFlightEDucSignaturesTable.js","names":[],"sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.tsx"],"sourcesContent":["import { SkeletonTable } from '@/components/Skeleton'\nimport ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '@/components/TanStackTable/StyledTanStackTable'\nimport { useListAllUserDataAccessRequests } from '@/synapse-queries'\nimport { Alert, Box, Typography } from '@mui/material'\nimport {\n AccessRequestSummary,\n AccessRequestSummaryStatusEnum,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport { useMemo } from 'react'\n\nconst IN_FLIGHT_STATUSES: readonly AccessRequestSummaryStatusEnum[] = [\n 'sent',\n 'delivered',\n 'completed',\n] as const\n\nconst STATUS_DISPLAY: Record<string, string> = {\n sent: 'Signatures pending',\n delivered: 'Signatures pending',\n completed: 'Ready to submit',\n}\n\nconst columnHelper = createColumnHelper<AccessRequestSummary>()\nconst columns = [\n columnHelper.accessor('accessRequirementName', {\n header: props => <ColumnHeader {...props} title={'Request type'} />,\n enableSorting: false,\n enableColumnFilter: false,\n }),\n columnHelper.display({\n id: 'signatureProgress',\n header: props => <ColumnHeader {...props} title={'Signature progress'} />,\n enableSorting: false,\n cell: ctx => {\n const acquired = ctx.row.original.signaturesAcquired ?? 0\n const requested = ctx.row.original.signaturesRequested ?? 0\n return `${acquired} of ${requested}`\n },\n enableColumnFilter: false,\n size: 150,\n }),\n columnHelper.accessor('status', {\n header: props => <ColumnHeader {...props} title={'Current status'} />,\n enableSorting: false,\n cell: ctx => {\n const status = ctx.getValue()\n return status ? (STATUS_DISPLAY[status] ?? status) : ''\n },\n enableColumnFilter: false,\n size: 150,\n }),\n]\n\n/**\n * Lists the requester's active eDUC signatures (routed / signed but not yet submitted).\n *\n * The underlying query walks every page of `POST /dataAccessRequest/list` inside its `queryFn`\n * because filtering is done client-side pending PLFM-9907 (which will add an `isEDuc` server-side\n * filter). Once server-side filtering ships, callers can switch back to a per-page infinite query\n * with a \"Show More\" button.\n *\n * Renders nothing when the fully-loaded, filtered list is empty.\n */\nexport function InFlightEDucSignaturesTable() {\n const {\n data: summaries,\n isLoading,\n error,\n } = useListAllUserDataAccessRequests()\n\n const rows = useMemo(\n () =>\n (summaries ?? []).filter(\n summary =>\n summary.isEDuc === true &&\n summary.status !== undefined &&\n (IN_FLIGHT_STATUSES as readonly string[]).includes(summary.status),\n ),\n [summaries],\n )\n\n const table = useReactTable({\n data: rows,\n columns,\n getCoreRowModel: getCoreRowModel(),\n columnResizeMode: 'onChange',\n })\n\n if (error) {\n return (\n <Alert severity={'error'}>\n <strong>\n Sorry, we couldn't load your in-flight eDUC signatures.\n </strong>\n <br />\n {error.reason}\n </Alert>\n )\n }\n\n if (isLoading) {\n return <SkeletonTable numCols={columns.length} fullWidthCells />\n }\n\n if (rows.length === 0) {\n return null\n }\n\n return (\n <Box>\n <Typography variant={'headline2'} component={'h2'} gutterBottom>\n In-flight eDUC signatures\n </Typography>\n <StyledTanStackTable table={table} fullWidth={true} />\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;AAgBA,IAAM,IAAgE;CACpE;CACA;CACA;AACF,GAEM,IAAyC;CAC7C,MAAM;CACN,WAAW;CACX,WAAW;AACb,GAEM,IAAe,EAAyC,GACxD,IAAU;CACd,EAAa,SAAS,yBAAyB;EAC7C,SAAQ,MAAS,kBAAC,GAAD;GAAc,GAAI;GAAO,OAAO;EAAiB,CAAA;EAClE,eAAe;EACf,oBAAoB;CACtB,CAAC;CACD,EAAa,QAAQ;EACnB,IAAI;EACJ,SAAQ,MAAS,kBAAC,GAAD;GAAc,GAAI;GAAO,OAAO;EAAuB,CAAA;EACxE,eAAe;EACf,OAAM,MAGG,GAFU,EAAI,IAAI,SAAS,sBAAsB,EAErC,MADD,EAAI,IAAI,SAAS,uBAAuB;EAG5D,oBAAoB;EACpB,MAAM;CACR,CAAC;CACD,EAAa,SAAS,UAAU;EAC9B,SAAQ,MAAS,kBAAC,GAAD;GAAc,GAAI;GAAO,OAAO;EAAmB,CAAA;EACpE,eAAe;EACf,OAAM,MAAO;GACX,IAAM,IAAS,EAAI,SAAS;GAC5B,OAAO,IAAU,EAAe,MAAW,IAAU;EACvD;EACA,oBAAoB;EACpB,MAAM;CACR,CAAC;AACH;AAYA,SAAgB,IAA8B;CAC5C,IAAM,EACJ,MAAM,GACN,cACA,aACE,EAAiC,GAE/B,IAAO,SAER,KAAa,CAAC,GAAG,QAChB,MACE,EAAQ,WAAW,MACnB,EAAQ,WAAW,KAAA,KAClB,EAAyC,SAAS,EAAQ,MAAM,CACrE,GACF,CAAC,CAAS,CACZ,GAEM,IAAQ,EAAc;EAC1B,MAAM;EACN;EACA,iBAAiB,EAAgB;EACjC,kBAAkB;CACpB,CAAC;CAsBD,OApBI,IAEA,kBAAC,GAAD;EAAO,UAAU;YAAjB;GACE,kBAAC,UAAD,EAAA,UAAQ,0DAEA,CAAA;GACR,kBAAC,MAAD,CAAK,CAAA;GACJ,EAAM;EACF;MAIP,IACK,kBAAC,GAAD;EAAe,SAAS,EAAQ;EAAQ,gBAAA;CAAgB,CAAA,IAG7D,EAAK,WAAW,IACX,OAIP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;EAAY,SAAS;EAAa,WAAW;EAAM,cAAA;YAAa;CAEpD,CAAA,GACZ,kBAAC,GAAD;EAA4B;EAAO,WAAW;CAAO,CAAA,CAClD,EAAA,CAAA;AAET"}
|
package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserAccessRequestHistoryPage.d.ts","sourceRoot":"","sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserAccessRequestHistoryPage.d.ts","sourceRoot":"","sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.tsx"],"names":[],"mappings":"AA6BA,wBAAgB,4BAA4B,4CAwC3C"}
|
|
@@ -1,47 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import l from "
|
|
1
|
+
import { InFlightEDucSignaturesTable as e } from "./InFlightEDucSignaturesTable.js";
|
|
2
|
+
import { UserAccessRequestHistoryTable as t } from "./UserAccessRequestHistoryTable.js";
|
|
3
|
+
import { Accordion as n, AccordionDetails as r, AccordionSummary as i, Stack as a, Typography as o } from "@mui/material";
|
|
4
|
+
import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
|
+
import u from "@mui/icons-material/ExpandMore";
|
|
5
6
|
//#region src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.tsx
|
|
6
|
-
var
|
|
7
|
-
function
|
|
8
|
-
return /* @__PURE__ */
|
|
7
|
+
var d = [];
|
|
8
|
+
function f() {
|
|
9
|
+
return /* @__PURE__ */ l(a, {
|
|
9
10
|
sx: { gap: 2 },
|
|
10
11
|
children: [
|
|
11
|
-
/* @__PURE__ */
|
|
12
|
+
/* @__PURE__ */ c(o, {
|
|
12
13
|
variant: "headline1",
|
|
13
14
|
gutterBottom: !0,
|
|
14
15
|
children: "History of your access requests"
|
|
15
16
|
}),
|
|
16
|
-
/* @__PURE__ */
|
|
17
|
+
/* @__PURE__ */ c(o, {
|
|
17
18
|
variant: "body1",
|
|
18
19
|
gutterBottom: !0,
|
|
19
20
|
children: "This list represents every access request you have been named in. It includes requests you've submitted yourself, and requests submitted by others, which you were named as a requester on."
|
|
20
21
|
}),
|
|
21
|
-
/* @__PURE__ */
|
|
22
|
+
/* @__PURE__ */ c(o, {
|
|
22
23
|
variant: "body1",
|
|
23
24
|
gutterBottom: !0,
|
|
24
25
|
children: "Note: Requests where your access has been revoked will appear as \"Approved\"."
|
|
25
26
|
}),
|
|
26
|
-
|
|
27
|
+
d.length > 0 && /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c(o, {
|
|
27
28
|
variant: "headline2",
|
|
28
29
|
gutterBottom: !0,
|
|
29
30
|
children: "Frequently Asked Questions"
|
|
30
|
-
}), /* @__PURE__ */
|
|
31
|
+
}), /* @__PURE__ */ c("div", { children: d.map((e) => /* @__PURE__ */ l(n, {
|
|
31
32
|
sx: { p: 1 },
|
|
32
|
-
children: [/* @__PURE__ */
|
|
33
|
-
expandIcon: /* @__PURE__ */
|
|
34
|
-
children: /* @__PURE__ */
|
|
33
|
+
children: [/* @__PURE__ */ c(i, {
|
|
34
|
+
expandIcon: /* @__PURE__ */ c(u, {}),
|
|
35
|
+
children: /* @__PURE__ */ c(o, {
|
|
35
36
|
variant: "headline3",
|
|
36
37
|
children: e.summary
|
|
37
38
|
})
|
|
38
|
-
}), /* @__PURE__ */
|
|
39
|
+
}), /* @__PURE__ */ c(r, { children: e.details })]
|
|
39
40
|
}, e.summary)) })] }),
|
|
40
|
-
/* @__PURE__ */
|
|
41
|
+
/* @__PURE__ */ c(e, {}),
|
|
42
|
+
/* @__PURE__ */ c(t, {})
|
|
41
43
|
]
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
46
|
//#endregion
|
|
45
|
-
export {
|
|
47
|
+
export { f as UserAccessRequestHistoryPage };
|
|
46
48
|
|
|
47
49
|
//# sourceMappingURL=UserAccessRequestHistoryPage.js.map
|
package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserAccessRequestHistoryPage.js","names":[],"sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.tsx"],"sourcesContent":["import ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Stack,\n Typography,\n} from '@mui/material'\nimport { UserAccessRequestHistoryTable } from './UserAccessRequestHistoryTable'\n\ntype FaqItem = {\n summary: string\n details: string\n}\n\nconst faqContent: FaqItem[] = [\n // {\n // summary:\n // 'Why do I still have access to data when I have an expired, canceled, or rejected access request?',\n // details:\n // \"This table shows all the requests you've ever been part of, including requests that were canceled, rejected, or that have since expired. If an older request was canceled, rejected, or has expired, but a newer request was approved and is still active, you'll still have access to the data.\",\n // },\n // {\n // summary: 'Some other question?',\n // details: 'Here is another answer!',\n // },\n]\n\nexport function UserAccessRequestHistoryPage() {\n return (\n <Stack\n sx={{\n gap: 2,\n }}\n >\n <Typography variant=\"headline1\" gutterBottom>\n History of your access requests\n </Typography>\n <Typography variant=\"body1\" gutterBottom>\n This list represents every access request you have been named in. It\n includes requests you've submitted yourself, and requests submitted\n by others, which you were named as a requester on.\n </Typography>\n <Typography variant=\"body1\" gutterBottom>\n Note: Requests where your access has been revoked will appear as\n "Approved".\n </Typography>\n {faqContent.length > 0 && (\n <>\n <Typography variant=\"headline2\" gutterBottom>\n Frequently Asked Questions\n </Typography>\n <div>\n {faqContent.map(faq => (\n <Accordion key={faq.summary} sx={{ p: 1 }}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"headline3\">{faq.summary}</Typography>\n </AccordionSummary>\n <AccordionDetails>{faq.details}</AccordionDetails>\n </Accordion>\n ))}\n </div>\n </>\n )}\n <UserAccessRequestHistoryTable />\n </Stack>\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserAccessRequestHistoryPage.js","names":[],"sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.tsx"],"sourcesContent":["import ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Stack,\n Typography,\n} from '@mui/material'\nimport { InFlightEDucSignaturesTable } from './InFlightEDucSignaturesTable'\nimport { UserAccessRequestHistoryTable } from './UserAccessRequestHistoryTable'\n\ntype FaqItem = {\n summary: string\n details: string\n}\n\nconst faqContent: FaqItem[] = [\n // {\n // summary:\n // 'Why do I still have access to data when I have an expired, canceled, or rejected access request?',\n // details:\n // \"This table shows all the requests you've ever been part of, including requests that were canceled, rejected, or that have since expired. If an older request was canceled, rejected, or has expired, but a newer request was approved and is still active, you'll still have access to the data.\",\n // },\n // {\n // summary: 'Some other question?',\n // details: 'Here is another answer!',\n // },\n]\n\nexport function UserAccessRequestHistoryPage() {\n return (\n <Stack\n sx={{\n gap: 2,\n }}\n >\n <Typography variant=\"headline1\" gutterBottom>\n History of your access requests\n </Typography>\n <Typography variant=\"body1\" gutterBottom>\n This list represents every access request you have been named in. It\n includes requests you've submitted yourself, and requests submitted\n by others, which you were named as a requester on.\n </Typography>\n <Typography variant=\"body1\" gutterBottom>\n Note: Requests where your access has been revoked will appear as\n "Approved".\n </Typography>\n {faqContent.length > 0 && (\n <>\n <Typography variant=\"headline2\" gutterBottom>\n Frequently Asked Questions\n </Typography>\n <div>\n {faqContent.map(faq => (\n <Accordion key={faq.summary} sx={{ p: 1 }}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"headline3\">{faq.summary}</Typography>\n </AccordionSummary>\n <AccordionDetails>{faq.details}</AccordionDetails>\n </Accordion>\n ))}\n </div>\n </>\n )}\n <InFlightEDucSignaturesTable />\n <UserAccessRequestHistoryTable />\n </Stack>\n )\n}\n"],"mappings":";;;;;;AAgBA,IAAM,IAAwB,CAW9B;AAEA,SAAgB,IAA+B;CAC7C,OACE,kBAAC,GAAD;EACE,IAAI,EACF,KAAK,EACP;YAHF;GAKE,kBAAC,GAAD;IAAY,SAAQ;IAAY,cAAA;cAAa;GAEjC,CAAA;GACZ,kBAAC,GAAD;IAAY,SAAQ;IAAQ,cAAA;cAAa;GAI7B,CAAA;GACZ,kBAAC,GAAD;IAAY,SAAQ;IAAQ,cAAA;cAAa;GAG7B,CAAA;GACX,EAAW,SAAS,KACnB,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IAAY,SAAQ;IAAY,cAAA;cAAa;GAEjC,CAAA,GACZ,kBAAC,OAAD,EAAA,UACG,EAAW,KAAI,MACd,kBAAC,GAAD;IAA6B,IAAI,EAAE,GAAG,EAAE;cAAxC,CACE,kBAAC,GAAD;KAAkB,YAAY,kBAAC,GAAD,CAAiB,CAAA;eAC7C,kBAAC,GAAD;MAAY,SAAQ;gBAAa,EAAI;KAAoB,CAAA;IACzC,CAAA,GAClB,kBAAC,GAAD,EAAA,UAAmB,EAAI,QAA0B,CAAA,CACxC;MALK,EAAI,OAKT,CACZ,EACE,CAAA,CACL,EAAA,CAAA;GAEJ,kBAAC,GAAD,CAA8B,CAAA;GAC9B,kBAAC,GAAD,CAAgC,CAAA;EAC3B;;AAEX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatedByModifiedBy.d.ts","sourceRoot":"","sources":["../../../../src/components/entity/page/CreatedByModifiedBy.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CreatedByModifiedBy.d.ts","sourceRoot":"","sources":["../../../../src/components/entity/page/CreatedByModifiedBy.tsx"],"names":[],"mappings":"AAiCA,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAeD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CA0GlE;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -6,114 +6,96 @@ import "../../../synapse-queries/index.js";
|
|
|
6
6
|
import { formatDate as o } from "../../../utils/functions/DateFormatter.js";
|
|
7
7
|
import s from "../../utils/ConditionalWrapper.js";
|
|
8
8
|
import { UserBadge as c } from "../../UserCard/UserBadge.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
9
|
+
import { INFO_ICON_SX as l, getTableLastRebuiltTooltip as u, getTableModifiedOnAccessibleLabel as d, getTableModifiedOnTooltip as f } from "./createdByModifiedByTooltips.js";
|
|
10
|
+
import { Box as p, Breadcrumbs as m, Skeleton as h, Tooltip as g, Typography as _, useMediaQuery as v, useTheme as y } from "@mui/material";
|
|
11
|
+
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
12
|
+
import { InfoTwoTone as S } from "@mui/icons-material";
|
|
13
|
+
import C from "dayjs";
|
|
13
14
|
//#region src/components/entity/page/CreatedByModifiedBy.tsx
|
|
14
|
-
function
|
|
15
|
-
return
|
|
15
|
+
function w() {
|
|
16
|
+
return v(y().breakpoints.down("sm")) ? null : /* @__PURE__ */ b(_, {
|
|
16
17
|
variant: "breadcrumb1",
|
|
17
18
|
sx: { color: "grey.700" },
|
|
18
19
|
children: "/"
|
|
19
20
|
});
|
|
20
21
|
}
|
|
21
|
-
function
|
|
22
|
-
let { entityId:
|
|
23
|
-
entityId:
|
|
24
|
-
query: { sql: `SELECT * FROM ${
|
|
22
|
+
function T(v) {
|
|
23
|
+
let { entityId: y, versionNumber: T } = v, E = `${y}${T ? `.${T}` : ""}`, { data: D } = i(y, T), { data: O } = a({
|
|
24
|
+
entityId: y,
|
|
25
|
+
query: { sql: `SELECT * FROM ${E} LIMIT 0` },
|
|
25
26
|
partMask: 128,
|
|
26
27
|
concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest"
|
|
27
|
-
}, { enabled: !!(
|
|
28
|
-
|
|
29
|
-
"This is when the configuration of this ",
|
|
30
|
-
D,
|
|
31
|
-
" was last changed."
|
|
32
|
-
] }),
|
|
33
|
-
/* @__PURE__ */ _("p", { children: "Configuration changes may be triggered by (for example):" }),
|
|
34
|
-
/* @__PURE__ */ v("ul", { children: [/* @__PURE__ */ v("li", { children: ["Editing the name of the ", D] }), /* @__PURE__ */ v("li", { children: ["Updating the schema used by the ", D] })] }),
|
|
35
|
-
/* @__PURE__ */ v("p", { children: [
|
|
36
|
-
"This does NOT reflect changes to the data displayed in the the",
|
|
37
|
-
" ",
|
|
38
|
-
D,
|
|
39
|
-
"."
|
|
40
|
-
] })
|
|
41
|
-
] }), k = `This is when the configuration of this ${D} was last changed.`, A = `When data changes, the ${D} is rebuilt to reflect those changes. This is the last time changes were made to the data.`, j = `${C}-createdByTooltip`, M = `${C}-modifiedByTooltip`, N = `${C}-lastUpdatedTooltip`, P = {
|
|
42
|
-
width: "16px",
|
|
43
|
-
height: "16px",
|
|
44
|
-
ml: "4px",
|
|
45
|
-
verticalAlign: "text-bottom"
|
|
46
|
-
};
|
|
47
|
-
return /* @__PURE__ */ _(l, {
|
|
28
|
+
}, { enabled: !!(D && r(D)) }), k = O?.responseBody?.lastUpdatedOn, A = D ? t(e(D.concreteType)) : "", j = `${E}-createdByTooltip`, M = `${E}-modifiedByTooltip`, N = `${E}-lastUpdatedTooltip`;
|
|
29
|
+
return /* @__PURE__ */ b(p, {
|
|
48
30
|
sx: (e) => ({
|
|
49
31
|
bgcolor: "grey.100",
|
|
50
|
-
|
|
32
|
+
p: "10px",
|
|
51
33
|
[e.breakpoints.down("sm")]: { p: "24px 40px" }
|
|
52
34
|
}),
|
|
53
|
-
children: /* @__PURE__ */
|
|
54
|
-
separator: /* @__PURE__ */
|
|
35
|
+
children: /* @__PURE__ */ x(m, {
|
|
36
|
+
separator: /* @__PURE__ */ b(w, {}),
|
|
55
37
|
sx: (e) => ({ "& .MuiBreadcrumbs-ol": {
|
|
56
38
|
justifyContent: "center",
|
|
57
39
|
[e.breakpoints.down("sm")]: { gap: "4px" }
|
|
58
40
|
} }),
|
|
59
41
|
children: [
|
|
60
|
-
/* @__PURE__ */
|
|
61
|
-
condition: !
|
|
62
|
-
wrapper:
|
|
63
|
-
children: /* @__PURE__ */
|
|
42
|
+
/* @__PURE__ */ b(s, {
|
|
43
|
+
condition: !D,
|
|
44
|
+
wrapper: h,
|
|
45
|
+
children: /* @__PURE__ */ x(_, {
|
|
64
46
|
sx: { color: "grey.700" },
|
|
65
47
|
variant: "breadcrumb1",
|
|
66
48
|
"aria-describedby": j,
|
|
67
49
|
children: [
|
|
68
|
-
|
|
50
|
+
A,
|
|
69
51
|
" created by ",
|
|
70
|
-
/* @__PURE__ */
|
|
52
|
+
/* @__PURE__ */ b(c, { userId: D?.createdBy }),
|
|
71
53
|
" ",
|
|
72
54
|
"on ",
|
|
73
|
-
o(
|
|
74
|
-
|
|
55
|
+
o(C(D?.createdOn)),
|
|
56
|
+
D && n(D) && /* @__PURE__ */ b(g, {
|
|
75
57
|
id: j,
|
|
76
58
|
title: "This is the user who created this Dataset. This may not be the same person who generated the files in this Dataset, or who originally uploaded these files to Synapse.",
|
|
77
|
-
children: /* @__PURE__ */
|
|
59
|
+
children: /* @__PURE__ */ b(S, { sx: l })
|
|
78
60
|
})
|
|
79
61
|
]
|
|
80
62
|
})
|
|
81
63
|
}),
|
|
82
|
-
/* @__PURE__ */
|
|
83
|
-
condition: !
|
|
84
|
-
wrapper:
|
|
85
|
-
children: /* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ b(s, {
|
|
65
|
+
condition: !D,
|
|
66
|
+
wrapper: h,
|
|
67
|
+
children: /* @__PURE__ */ x(_, {
|
|
86
68
|
sx: { color: "grey.700" },
|
|
87
69
|
variant: "breadcrumb1",
|
|
88
70
|
"aria-describedby": M,
|
|
89
71
|
children: [
|
|
90
|
-
|
|
72
|
+
D && r(D) ? "Configuration" : A,
|
|
91
73
|
" last modified by ",
|
|
92
|
-
/* @__PURE__ */
|
|
74
|
+
/* @__PURE__ */ b(c, { userId: D?.modifiedBy }),
|
|
93
75
|
" on",
|
|
94
76
|
" ",
|
|
95
|
-
o(
|
|
96
|
-
|
|
77
|
+
o(C(D?.modifiedOn)),
|
|
78
|
+
D && r(D) && /* @__PURE__ */ b(g, {
|
|
97
79
|
id: M,
|
|
98
|
-
title:
|
|
99
|
-
"aria-label":
|
|
100
|
-
children: /* @__PURE__ */
|
|
80
|
+
title: f(A),
|
|
81
|
+
"aria-label": d(A),
|
|
82
|
+
children: /* @__PURE__ */ b(S, { sx: l })
|
|
101
83
|
})
|
|
102
84
|
]
|
|
103
85
|
})
|
|
104
86
|
}),
|
|
105
|
-
|
|
87
|
+
k && /* @__PURE__ */ x(_, {
|
|
106
88
|
sx: { color: "grey.700" },
|
|
107
89
|
variant: "breadcrumb1",
|
|
108
90
|
"aria-describedby": N,
|
|
109
91
|
children: [
|
|
110
|
-
|
|
92
|
+
A,
|
|
111
93
|
" last rebuilt on ",
|
|
112
|
-
o(
|
|
113
|
-
/* @__PURE__ */
|
|
114
|
-
title: A,
|
|
94
|
+
o(C(k)),
|
|
95
|
+
/* @__PURE__ */ b(g, {
|
|
96
|
+
title: u(A),
|
|
115
97
|
id: N,
|
|
116
|
-
children: /* @__PURE__ */
|
|
98
|
+
children: /* @__PURE__ */ b(S, { sx: l })
|
|
117
99
|
})
|
|
118
100
|
]
|
|
119
101
|
})
|
|
@@ -122,6 +104,6 @@ function S(m) {
|
|
|
122
104
|
});
|
|
123
105
|
}
|
|
124
106
|
//#endregion
|
|
125
|
-
export {
|
|
107
|
+
export { T as CreatedByModifiedBy, T as default };
|
|
126
108
|
|
|
127
109
|
//# sourceMappingURL=CreatedByModifiedBy.js.map
|