synapse-react-client 4.0.42 → 4.0.43

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.
Files changed (122) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +6 -20
  3. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
  4. package/dist/components/AccessRequirementList/AccessRequirementList.js +165 -159
  5. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  6. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts +3 -2
  7. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts.map +1 -1
  8. package/dist/components/AccessRequirementList/AccessRequirementListItem.js +23 -22
  9. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  10. package/dist/components/AccessRequirementList/AccessRequirementListUtils.d.ts +4 -3
  11. package/dist/components/AccessRequirementList/AccessRequirementListUtils.d.ts.map +1 -1
  12. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js +6 -4
  13. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  14. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.d.ts +22 -0
  15. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.d.ts.map +1 -0
  16. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.js +166 -0
  17. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.js.map +1 -0
  18. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.d.ts +18 -0
  19. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.d.ts.map +1 -0
  20. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.js +91 -0
  21. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.js.map +1 -0
  22. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.d.ts +33 -0
  23. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.d.ts.map +1 -0
  24. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.js +49 -0
  25. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.js.map +1 -0
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.d.ts.map +1 -1
  27. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js +26 -42
  28. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  29. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
  30. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +140 -155
  31. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  32. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
  33. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +43 -60
  34. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
  35. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.d.ts +4 -5
  36. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.d.ts.map +1 -1
  37. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +5 -5
  38. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  39. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
  40. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +88 -103
  41. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
  42. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.d.ts.map +1 -1
  43. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js +14 -30
  44. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  45. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItem.d.ts → RequestableAccessRequirementItem.d.ts} +9 -8
  46. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItem.d.ts.map +1 -0
  47. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItem.js → RequestableAccessRequirementItem.js} +16 -16
  48. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItem.js.map +1 -0
  49. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItemView.d.ts → RequestableAccessRequirementItemView.d.ts} +5 -5
  50. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItemView.d.ts.map +1 -0
  51. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItemView.js → RequestableAccessRequirementItemView.js} +3 -4
  52. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItemView.js.map +1 -0
  53. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.d.ts.map +1 -1
  54. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +94 -110
  55. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  56. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts +0 -2
  57. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts.map +1 -1
  58. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js +35 -52
  59. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js.map +1 -1
  60. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  61. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +79 -95
  62. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  63. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +2 -1
  64. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -1
  65. package/dist/components/AccessRequirementList/RequestDataStep.d.ts +34 -0
  66. package/dist/components/AccessRequirementList/RequestDataStep.d.ts.map +1 -0
  67. package/dist/components/AccessRequirementList/RequestDataStep.js +37 -0
  68. package/dist/components/AccessRequirementList/RequestDataStep.js.map +1 -0
  69. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.d.ts +1 -1
  70. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  71. package/dist/components/FormTemplateEditor/FormTemplatePreview.d.ts.map +1 -1
  72. package/dist/components/FormTemplateEditor/FormTemplatePreview.js +29 -30
  73. package/dist/components/FormTemplateEditor/FormTemplatePreview.js.map +1 -1
  74. package/dist/components/JsonSchemaForm/SchemaStepForm.d.ts +21 -0
  75. package/dist/components/JsonSchemaForm/SchemaStepForm.d.ts.map +1 -0
  76. package/dist/components/JsonSchemaForm/SchemaStepForm.js +29 -0
  77. package/dist/components/JsonSchemaForm/SchemaStepForm.js.map +1 -0
  78. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.d.ts +2 -2
  79. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.d.ts.map +1 -1
  80. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js +11 -10
  81. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  82. package/dist/components/SynapseForm/SynapseForm.js +28 -28
  83. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  84. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +5 -4
  85. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  86. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.d.ts.map +1 -1
  87. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +5 -4
  88. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  89. package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts.map +1 -1
  90. package/dist/features/curator/dashboard/CuratorDashboardRouter.js +15 -15
  91. package/dist/features/curator/dashboard/CuratorDashboardRouter.js.map +1 -1
  92. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts.map +1 -1
  93. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js +15 -14
  94. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js.map +1 -1
  95. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +7 -0
  96. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -1
  97. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +30 -15
  98. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -1
  99. package/dist/mocks/dataaccess/MockDataAccessRequest.d.ts +3 -0
  100. package/dist/mocks/dataaccess/MockDataAccessRequest.d.ts.map +1 -1
  101. package/dist/mocks/dataaccess/MockDataAccessRequest.js +24 -12
  102. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  103. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
  104. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +42 -30
  105. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  106. package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.d.ts +19 -0
  107. package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.d.ts.map +1 -0
  108. package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.js +26 -0
  109. package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.js.map +1 -0
  110. package/dist/tsconfig.build.tsbuildinfo +1 -1
  111. package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
  112. package/dist/utils/hooks/useDetectSSOCode.js +31 -26
  113. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  114. package/dist/utils/jsonschema/schemaData.d.ts +18 -0
  115. package/dist/utils/jsonschema/schemaData.d.ts.map +1 -0
  116. package/dist/utils/jsonschema/schemaData.js +26 -0
  117. package/dist/utils/jsonschema/schemaData.js.map +1 -0
  118. package/package.json +2 -2
  119. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.d.ts.map +0 -1
  120. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +0 -1
  121. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.d.ts.map +0 -1
  122. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InFlightEDucSignaturesTable.js","names":[],"sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.tsx"],"sourcesContent":["import AccessRequirementList, {\n RequestDataStep,\n} from '@/components/AccessRequirementList/AccessRequirementList'\nimport { SkeletonTable } from '@/components/Skeleton'\nimport ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '@/components/TanStackTable/StyledTanStackTable'\nimport { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport {\n useListAllUserDataAccessRequests,\n useVoidDataAccessRequestSignature,\n} from '@/synapse-queries'\nimport { useGetAccessRequirements } from '@/synapse-queries/dataaccess/useAccessRequirements'\nimport {\n Alert,\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Link as MuiLink,\n Stack,\n Typography,\n} from '@mui/material'\nimport {\n AccessRequestSummary,\n AccessRequestSummaryStatusEnum,\n} from '@sage-bionetworks/synapse-client'\nimport { ManagedACTAccessRequirement } from '@sage-bionetworks/synapse-types'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport { useEffect, useMemo, useState } from 'react'\nimport { Link as RouterLink } from 'react-router'\nimport {\n USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH,\n USER_ACCESS_HISTORY_REQUEST_SUBPATH,\n} from './RouteConstants'\n\nconst IN_FLIGHT_STATUSES: readonly AccessRequestSummaryStatusEnum[] = [\n 'sent',\n 'delivered',\n 'declined',\n 'completed',\n] as const\n\nconst STATUS_DISPLAY: Record<string, string> = {\n sent: 'Signatures pending',\n delivered: 'Signatures pending',\n declined: 'Signature declined',\n completed: 'Ready to submit',\n}\n\nconst signatureDeepLink = (requestId: string) =>\n `/${USER_ACCESS_HISTORY_REQUEST_SUBPATH}/${requestId}/${USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH}`\n\nconst columnHelper = createColumnHelper<AccessRequestSummary>()\n\ntype ActionCallbacks = {\n onModify: (summary: AccessRequestSummary) => void\n onCancel: (summary: AccessRequestSummary) => void\n modifyLoadingArId: string | undefined\n}\n\nfunction buildColumns(actions: ActionCallbacks) {\n return [\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 columnHelper.display({\n id: 'actions',\n header: props => <ColumnHeader {...props} title={'Actions'} />,\n enableSorting: false,\n enableColumnFilter: false,\n cell: ctx => {\n const summary = ctx.row.original\n const requestId = summary.requestId\n if (!requestId) return null\n const isModifyLoading =\n actions.modifyLoadingArId !== undefined &&\n actions.modifyLoadingArId === summary.accessRequirementId\n return (\n <Stack\n direction={'column'}\n sx={{ alignItems: 'flex-start', gap: 0.5 }}\n >\n <MuiLink component={RouterLink} to={signatureDeepLink(requestId)}>\n Review Signatures and Submit\n </MuiLink>\n <MuiLink\n component={'button'}\n type={'button'}\n onClick={() => actions.onModify(summary)}\n disabled={\n !summary.accessRequirementId ||\n actions.modifyLoadingArId !== undefined\n }\n sx={{ textAlign: 'left' }}\n >\n {isModifyLoading ? 'Loading…' : 'Modify Request'}\n </MuiLink>\n <MuiLink\n component={'button'}\n type={'button'}\n onClick={() => actions.onCancel(summary)}\n sx={{ textAlign: 'left' }}\n >\n Cancel Request\n </MuiLink>\n </Stack>\n )\n },\n size: 220,\n }),\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 * pushing the `isEDuc: true` filter to the server so the walk skips non-eDUC requests. Status is\n * still filtered client-side because the list endpoint has no server-side status filter.\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({ isEDuc: true })\n\n const [modifyingArId, setModifyingArId] = useState<string | undefined>()\n const [cancellingSummary, setCancellingSummary] = useState<\n AccessRequestSummary | undefined\n >()\n\n const {\n data: modifyAccessRequirement,\n isFetching: isFetchingModifyAr,\n error: modifyArError,\n } = useGetAccessRequirements<ManagedACTAccessRequirement>(\n modifyingArId ?? '',\n { enabled: Boolean(modifyingArId), staleTime: Infinity },\n )\n\n // Bail out of the Modify flow if the AR fetch fails so the user isn't stuck on a disabled button.\n useEffect(() => {\n if (modifyArError && modifyingArId) {\n displayToast(\n `Sorry, we couldn't load your request. ${modifyArError.reason ?? ''}`.trim(),\n 'danger',\n )\n setModifyingArId(undefined)\n }\n }, [modifyArError, modifyingArId])\n\n const { mutate: voidSignature, isPending: isVoiding } =\n useVoidDataAccessRequestSignature({\n onSuccess: () => {\n displayToast('Your access request has been cancelled.', 'success')\n setCancellingSummary(undefined)\n },\n onError: e => {\n displayToast(\n `Sorry, we couldn't cancel your request. ${e.reason ?? ''}`.trim(),\n 'danger',\n )\n },\n })\n\n const modifyLoadingArId = isFetchingModifyAr ? modifyingArId : undefined\n\n const columns = useMemo(\n () =>\n buildColumns({\n onModify: summary => {\n if (summary.accessRequirementId) {\n setModifyingArId(summary.accessRequirementId)\n }\n },\n onCancel: summary => setCancellingSummary(summary),\n modifyLoadingArId,\n }),\n [modifyLoadingArId],\n )\n\n const rows = useMemo(\n () =>\n (summaries ?? []).filter(\n summary =>\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&apos;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 <Stack sx={{ gap: 2 }}>\n <Typography variant=\"headline1\" gutterBottom>\n In-flight eDUC signatures\n </Typography>\n <StyledTanStackTable table={table} fullWidth={true} />\n </Stack>\n {modifyAccessRequirement && (\n <AccessRequirementList\n renderAsModal\n onHide={() => setModifyingArId(undefined)}\n initialWizardEntry={{\n step: RequestDataStep.UPDATE_RESEARCH_PROJECT,\n managedACTAccessRequirement: modifyAccessRequirement,\n }}\n />\n )}\n <Dialog\n open={Boolean(cancellingSummary)}\n onClose={() => setCancellingSummary(undefined)}\n >\n <DialogTitle>Cancel request?</DialogTitle>\n <DialogContent>\n <DialogContentText>\n Cancelling this request will void the electronic signature envelope\n for{' '}\n <strong>\n {cancellingSummary?.accessRequirementName ?? 'this request'}\n </strong>\n . Any signatures already collected will be discarded. You can start\n a new request at any time. This action cannot be undone.\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant={'outlined'}\n onClick={() => setCancellingSummary(undefined)}\n disabled={isVoiding}\n >\n Keep Request\n </Button>\n <Button\n variant={'contained'}\n color={'error'}\n loading={isVoiding}\n onClick={() => {\n if (cancellingSummary?.requestId) {\n voidSignature(cancellingSummary.requestId)\n }\n }}\n >\n Cancel Request\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InFlightEDucSignaturesTable.js","names":[],"sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.tsx"],"sourcesContent":["import AccessRequirementList from '@/components/AccessRequirementList/AccessRequirementList'\nimport {\n getFirstRequestStep,\n RequestableAccessRequirement,\n} from '@/components/AccessRequirementList/RequestDataStep'\nimport { SkeletonTable } from '@/components/Skeleton'\nimport ColumnHeader from '@/components/TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '@/components/TanStackTable/StyledTanStackTable'\nimport { displayToast } from '@/components/ToastMessage/ToastMessage'\nimport {\n useListAllUserDataAccessRequests,\n useVoidDataAccessRequestSignature,\n} from '@/synapse-queries'\nimport { useGetAccessRequirements } from '@/synapse-queries/dataaccess/useAccessRequirements'\nimport {\n Alert,\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Link as MuiLink,\n Stack,\n Typography,\n} 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 { useEffect, useMemo, useState } from 'react'\nimport { Link as RouterLink } from 'react-router'\nimport {\n USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH,\n USER_ACCESS_HISTORY_REQUEST_SUBPATH,\n} from './RouteConstants'\n\nconst IN_FLIGHT_STATUSES: readonly AccessRequestSummaryStatusEnum[] = [\n 'sent',\n 'delivered',\n 'declined',\n 'completed',\n] as const\n\nconst STATUS_DISPLAY: Record<string, string> = {\n sent: 'Signatures pending',\n delivered: 'Signatures pending',\n declined: 'Signature declined',\n completed: 'Ready to submit',\n}\n\nconst signatureDeepLink = (requestId: string) =>\n `/${USER_ACCESS_HISTORY_REQUEST_SUBPATH}/${requestId}/${USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH}`\n\nconst columnHelper = createColumnHelper<AccessRequestSummary>()\n\ntype ActionCallbacks = {\n onModify: (summary: AccessRequestSummary) => void\n onCancel: (summary: AccessRequestSummary) => void\n modifyLoadingArId: string | undefined\n}\n\nfunction buildColumns(actions: ActionCallbacks) {\n return [\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 columnHelper.display({\n id: 'actions',\n header: props => <ColumnHeader {...props} title={'Actions'} />,\n enableSorting: false,\n enableColumnFilter: false,\n cell: ctx => {\n const summary = ctx.row.original\n const requestId = summary.requestId\n if (!requestId) return null\n const isModifyLoading =\n actions.modifyLoadingArId !== undefined &&\n actions.modifyLoadingArId === summary.accessRequirementId\n return (\n <Stack\n direction={'column'}\n sx={{ alignItems: 'flex-start', gap: 0.5 }}\n >\n <MuiLink component={RouterLink} to={signatureDeepLink(requestId)}>\n Review Signatures and Submit\n </MuiLink>\n <MuiLink\n component={'button'}\n type={'button'}\n onClick={() => actions.onModify(summary)}\n disabled={\n !summary.accessRequirementId ||\n actions.modifyLoadingArId !== undefined\n }\n sx={{ textAlign: 'left' }}\n >\n {isModifyLoading ? 'Loading…' : 'Modify Request'}\n </MuiLink>\n <MuiLink\n component={'button'}\n type={'button'}\n onClick={() => actions.onCancel(summary)}\n sx={{ textAlign: 'left' }}\n >\n Cancel Request\n </MuiLink>\n </Stack>\n )\n },\n size: 220,\n }),\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 * pushing the `isEDuc: true` filter to the server so the walk skips non-eDUC requests. Status is\n * still filtered client-side because the list endpoint has no server-side status filter.\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({ isEDuc: true })\n\n const [modifyingArId, setModifyingArId] = useState<string | undefined>()\n const [cancellingSummary, setCancellingSummary] = useState<\n AccessRequestSummary | undefined\n >()\n\n const {\n data: modifyAccessRequirement,\n isFetching: isFetchingModifyAr,\n error: modifyArError,\n } = useGetAccessRequirements<RequestableAccessRequirement>(\n modifyingArId ?? '',\n {\n enabled: Boolean(modifyingArId),\n staleTime: Infinity,\n },\n )\n\n // Bail out of the Modify flow if the AR fetch fails so the user isn't stuck on a disabled button.\n useEffect(() => {\n if (modifyArError && modifyingArId) {\n displayToast(\n `Sorry, we couldn't load your request. ${modifyArError.reason ?? ''}`.trim(),\n 'danger',\n )\n setModifyingArId(undefined)\n }\n }, [modifyArError, modifyingArId])\n\n const { mutate: voidSignature, isPending: isVoiding } =\n useVoidDataAccessRequestSignature({\n onSuccess: () => {\n displayToast('Your access request has been cancelled.', 'success')\n setCancellingSummary(undefined)\n },\n onError: e => {\n displayToast(\n `Sorry, we couldn't cancel your request. ${e.reason ?? ''}`.trim(),\n 'danger',\n )\n },\n })\n\n const modifyLoadingArId = isFetchingModifyAr ? modifyingArId : undefined\n\n const columns = useMemo(\n () =>\n buildColumns({\n onModify: summary => {\n if (summary.accessRequirementId) {\n setModifyingArId(summary.accessRequirementId)\n }\n },\n onCancel: summary => setCancellingSummary(summary),\n modifyLoadingArId,\n }),\n [modifyLoadingArId],\n )\n\n const rows = useMemo(\n () =>\n (summaries ?? []).filter(\n summary =>\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&apos;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 <Stack sx={{ gap: 2 }}>\n <Typography variant=\"headline1\" gutterBottom>\n In-flight eDUC signatures\n </Typography>\n <StyledTanStackTable table={table} fullWidth={true} />\n </Stack>\n {modifyAccessRequirement && (\n <AccessRequirementList\n renderAsModal\n onHide={() => setModifyingArId(undefined)}\n initialWizardEntry={{\n step: getFirstRequestStep(modifyAccessRequirement),\n accessRequirement: modifyAccessRequirement,\n }}\n />\n )}\n <Dialog\n open={Boolean(cancellingSummary)}\n onClose={() => setCancellingSummary(undefined)}\n >\n <DialogTitle>Cancel request?</DialogTitle>\n <DialogContent>\n <DialogContentText>\n Cancelling this request will void the electronic signature envelope\n for{' '}\n <strong>\n {cancellingSummary?.accessRequirementName ?? 'this request'}\n </strong>\n . Any signatures already collected will be discarded. You can start\n a new request at any time. This action cannot be undone.\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant={'outlined'}\n onClick={() => setCancellingSummary(undefined)}\n disabled={isVoiding}\n >\n Keep Request\n </Button>\n <Button\n variant={'contained'}\n color={'error'}\n loading={isVoiding}\n onClick={() => {\n if (cancellingSummary?.requestId) {\n voidSignature(cancellingSummary.requestId)\n }\n }}\n >\n Cancel Request\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserAccessRequestHistoryPlace.d.ts","sourceRoot":"","sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.tsx"],"names":[],"mappings":"AAmCA,KAAK,sBAAsB,GAAG;IAC5B,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,6GAA6G;IAC7G,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAsKD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,2CAuB1E;AAED,eAAe,6BAA6B,CAAA"}
1
+ {"version":3,"file":"UserAccessRequestHistoryPlace.d.ts","sourceRoot":"","sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.tsx"],"names":[],"mappings":"AAkCA,KAAK,sBAAsB,GAAG;IAC5B,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,6GAA6G;IAC7G,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAsKD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,2CAuB1E;AAED,eAAe,6BAA6B,CAAA"}
@@ -3,7 +3,8 @@ import "../../../utils/AppUtils/index.js";
3
3
  import { useGetAccessRequirements as t } from "../../../synapse-queries/dataaccess/useAccessRequirements.js";
4
4
  import { useListAllUserDataAccessRequests as n } from "../../../synapse-queries/dataaccess/useEDuc.js";
5
5
  import "../../../synapse-queries/index.js";
6
- import r, { RequestDataStep as i } from "../../AccessRequirementList/AccessRequirementList.js";
6
+ import { RequestDataStep as r } from "../../AccessRequirementList/RequestDataStep.js";
7
+ import i from "../../AccessRequirementList/AccessRequirementList.js";
7
8
  import { Breadcrumbs as a } from "../../Breadcrumbs/Breadcrumbs.js";
8
9
  import o from "../SubmissionPage/SubmissionPage.js";
9
10
  import { REQUEST_ID_PARAM as s, SUBMISSION_ID_PARAM as c, USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH as l, USER_ACCESS_HISTORY_REQUEST_SUBPATH as u, USER_ACCESS_HISTORY_SUBMISSION_SUBPATH as d } from "./RouteConstants.js";
@@ -29,14 +30,14 @@ function O() {
29
30
  return s || l && d ? null : !c || !l || !u ? /* @__PURE__ */ g(v, {
30
31
  to: "/",
31
32
  replace: !0
32
- }) : /* @__PURE__ */ g(r, {
33
+ }) : /* @__PURE__ */ g(i, {
33
34
  renderAsModal: !0,
34
35
  onHide: () => {
35
36
  a("/");
36
37
  },
37
38
  initialWizardEntry: {
38
- step: i.SIGNATURE_STATUS,
39
- managedACTAccessRequirement: u
39
+ step: r.SIGNATURE_STATUS,
40
+ accessRequirement: u
40
41
  }
41
42
  });
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UserAccessRequestHistoryPlace.js","names":[],"sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.tsx"],"sourcesContent":["import {\n BreadcrumbItem,\n Breadcrumbs,\n} from '@/components/Breadcrumbs/Breadcrumbs'\nimport { useListAllUserDataAccessRequests } from '@/synapse-queries'\nimport { useGetAccessRequirements } from '@/synapse-queries/dataaccess/useAccessRequirements'\nimport { AuthenticationGuard } from '@/utils/AppUtils'\nimport { Box } from '@mui/material'\nimport { ManagedACTAccessRequirement } from '@sage-bionetworks/synapse-types'\nimport { useMemo } from 'react'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n Navigate,\n Outlet,\n RouteObject,\n RouterProvider,\n useLocation,\n useNavigate,\n useParams,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport AccessRequirementList, {\n RequestDataStep,\n} from '../../AccessRequirementList/AccessRequirementList'\nimport SubmissionPage from '../SubmissionPage/SubmissionPage'\nimport {\n REQUEST_ID_PARAM,\n SUBMISSION_ID_PARAM,\n USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH,\n USER_ACCESS_HISTORY_REQUEST_SUBPATH,\n USER_ACCESS_HISTORY_SUBMISSION_SUBPATH,\n} from './RouteConstants'\nimport { UserAccessRequestHistoryPage } from './UserAccessRequestHistoryPage'\n\ntype ReviewerDashboardProps = {\n /** Used to determine the base path for the component. Default is RequestHistory:default */\n routerBaseName?: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For demo/test purposes only. */\n useMemoryRouter?: boolean\n}\n\nfunction UserSubmissionPageRouteRenderer() {\n const { submissionId } = useParams<{ [SUBMISSION_ID_PARAM]: string }>()\n if (!submissionId) {\n return <Navigate to=\"/\" />\n }\n return <SubmissionPage submissionId={submissionId} isReviewer={false} />\n}\n\n/**\n * Deep-link route element for `/request/:requestId/signature`. Rendered inside\n * `UserAccessRequestHistoryPage`'s `<Outlet />` so the page stays mounted while the dialog is open.\n * Looks up the request in the user's own access-request list, then mounts the signature-status\n * wizard step for the AR. Requests that don't belong to the user (or don't exist) redirect back\n * to the history index. The surrounding `AuthenticationGuard` handles unauthenticated visitors.\n */\nfunction RequestSignatureRouteRenderer() {\n const { requestId } = useParams<{ [REQUEST_ID_PARAM]: string }>()\n const navigate = useNavigate()\n\n const { data: summaries, isLoading: isLoadingSummaries } =\n useListAllUserDataAccessRequests({ isEDuc: true })\n const summary = summaries?.find(s => s.requestId === requestId)\n const accessRequirementId = summary?.accessRequirementId\n\n const { data: accessRequirement, isLoading: isLoadingAr } =\n useGetAccessRequirements<ManagedACTAccessRequirement>(\n accessRequirementId ?? '',\n { enabled: Boolean(accessRequirementId), staleTime: Infinity },\n )\n\n // Wait for the summary + AR to load before mounting the dialog. `UserAccessRequestHistoryPage`\n // renders its own skeletons in the meantime, so no visible spinner is needed here.\n if (isLoadingSummaries || (accessRequirementId && isLoadingAr)) {\n return null\n }\n\n // Summary not found in the user's own requests, or its access requirement failed to load.\n if (!summary || !accessRequirementId || !accessRequirement) {\n return <Navigate to=\"/\" replace />\n }\n\n return (\n <AccessRequirementList\n renderAsModal\n onHide={() => {\n void navigate('/')\n }}\n initialWizardEntry={{\n step: RequestDataStep.SIGNATURE_STATUS,\n managedACTAccessRequirement: accessRequirement,\n }}\n />\n )\n}\n\n/**\n * Layout for UserAccessRequestHistory pages. Includes header with title.\n * @constructor\n */\nfunction UserAccessRequestHistoryPageLayout() {\n return (\n <>\n <div className=\"pageHeader\">\n <div className=\"grid\">\n <h3 className=\"pageHeaderTitle\">Access Requests</h3>\n </div>\n </div>\n <Box sx={{ px: 5, py: 3 }}>\n <Outlet />\n </Box>\n </>\n )\n}\n\n/**\n * Breadcrumb layout for UserAccessRequestHistory pages. Displays breadcrumbs for navigation.\n */\nfunction UserAccessRequestHistoryBreadcrumbLayout() {\n const { submissionId } = useParams<{ [SUBMISSION_ID_PARAM]: string }>()\n const location = useLocation()\n\n const breadcrumbItems: BreadcrumbItem[] = [\n {\n text: 'Access Request History',\n to: '/',\n current: location.pathname === '/',\n },\n ]\n if (submissionId) {\n const submissionPath = `/${USER_ACCESS_HISTORY_SUBMISSION_SUBPATH}/${submissionId}`\n breadcrumbItems.push({\n text: `Request #${submissionId}`,\n to: submissionPath,\n current: location.pathname === submissionPath,\n })\n }\n\n return (\n <>\n <Breadcrumbs\n items={breadcrumbItems}\n sx={{\n mt: 2,\n mb: 4,\n ['& .MuiLink-root']: {\n color: 'text.secondary',\n letterSpacing: 0,\n '&:visited': {\n color: 'text.secondary',\n },\n },\n '& .MuiSvgIcon-root': {\n color: 'grey.500',\n },\n }}\n />\n <Outlet />\n </>\n )\n}\n\nconst routes: RouteObject[] = [\n {\n element: <UserAccessRequestHistoryPageLayout />,\n children: [\n {\n path: '/',\n children: [\n {\n // Keep the history page mounted across the index ↔ signature-deep-link transition.\n element: <UserAccessRequestHistoryPage />,\n children: [\n { index: true, element: null },\n {\n path: `${USER_ACCESS_HISTORY_REQUEST_SUBPATH}/:${REQUEST_ID_PARAM}/${USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH}`,\n element: (\n <AuthenticationGuard>\n <RequestSignatureRouteRenderer />\n </AuthenticationGuard>\n ),\n },\n ],\n },\n {\n // Do not display the breadcrumbs on the `index` page\n element: <UserAccessRequestHistoryBreadcrumbLayout />,\n children: [\n {\n path: `${USER_ACCESS_HISTORY_SUBMISSION_SUBPATH}`,\n children: [\n {\n path: `:${SUBMISSION_ID_PARAM}`,\n element: <UserSubmissionPageRouteRenderer />,\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n]\n\n/**\n * Component that renders User Access Request history table & submission page. Handles routing internally.\n */\nexport function UserAccessRequestHistoryPlace(props: ReviewerDashboardProps) {\n const {\n routerBaseName = '/RequestHistory:default',\n useMemoryRouter = false,\n } = props\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, routerBaseName])\n\n if (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n\nexport default UserAccessRequestHistoryPlace\n"],"mappings":"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"}
1
+ {"version":3,"file":"UserAccessRequestHistoryPlace.js","names":[],"sources":["../../../../src/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.tsx"],"sourcesContent":["import {\n BreadcrumbItem,\n Breadcrumbs,\n} from '@/components/Breadcrumbs/Breadcrumbs'\nimport { useListAllUserDataAccessRequests } from '@/synapse-queries'\nimport { useGetAccessRequirements } from '@/synapse-queries/dataaccess/useAccessRequirements'\nimport { AuthenticationGuard } from '@/utils/AppUtils'\nimport { Box } from '@mui/material'\nimport { ManagedACTAccessRequirement } from '@sage-bionetworks/synapse-types'\nimport { useMemo } from 'react'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n Navigate,\n Outlet,\n RouteObject,\n RouterProvider,\n useLocation,\n useNavigate,\n useParams,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport AccessRequirementList from '../../AccessRequirementList/AccessRequirementList'\nimport { RequestDataStep } from '../../AccessRequirementList/RequestDataStep'\nimport SubmissionPage from '../SubmissionPage/SubmissionPage'\nimport {\n REQUEST_ID_PARAM,\n SUBMISSION_ID_PARAM,\n USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH,\n USER_ACCESS_HISTORY_REQUEST_SUBPATH,\n USER_ACCESS_HISTORY_SUBMISSION_SUBPATH,\n} from './RouteConstants'\nimport { UserAccessRequestHistoryPage } from './UserAccessRequestHistoryPage'\n\ntype ReviewerDashboardProps = {\n /** Used to determine the base path for the component. Default is RequestHistory:default */\n routerBaseName?: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For demo/test purposes only. */\n useMemoryRouter?: boolean\n}\n\nfunction UserSubmissionPageRouteRenderer() {\n const { submissionId } = useParams<{ [SUBMISSION_ID_PARAM]: string }>()\n if (!submissionId) {\n return <Navigate to=\"/\" />\n }\n return <SubmissionPage submissionId={submissionId} isReviewer={false} />\n}\n\n/**\n * Deep-link route element for `/request/:requestId/signature`. Rendered inside\n * `UserAccessRequestHistoryPage`'s `<Outlet />` so the page stays mounted while the dialog is open.\n * Looks up the request in the user's own access-request list, then mounts the signature-status\n * wizard step for the AR. Requests that don't belong to the user (or don't exist) redirect back\n * to the history index. The surrounding `AuthenticationGuard` handles unauthenticated visitors.\n */\nfunction RequestSignatureRouteRenderer() {\n const { requestId } = useParams<{ [REQUEST_ID_PARAM]: string }>()\n const navigate = useNavigate()\n\n const { data: summaries, isLoading: isLoadingSummaries } =\n useListAllUserDataAccessRequests({ isEDuc: true })\n const summary = summaries?.find(s => s.requestId === requestId)\n const accessRequirementId = summary?.accessRequirementId\n\n const { data: accessRequirement, isLoading: isLoadingAr } =\n useGetAccessRequirements<ManagedACTAccessRequirement>(\n accessRequirementId ?? '',\n { enabled: Boolean(accessRequirementId), staleTime: Infinity },\n )\n\n // Wait for the summary + AR to load before mounting the dialog. `UserAccessRequestHistoryPage`\n // renders its own skeletons in the meantime, so no visible spinner is needed here.\n if (isLoadingSummaries || (accessRequirementId && isLoadingAr)) {\n return null\n }\n\n // Summary not found in the user's own requests, or its access requirement failed to load.\n if (!summary || !accessRequirementId || !accessRequirement) {\n return <Navigate to=\"/\" replace />\n }\n\n return (\n <AccessRequirementList\n renderAsModal\n onHide={() => {\n void navigate('/')\n }}\n initialWizardEntry={{\n step: RequestDataStep.SIGNATURE_STATUS,\n accessRequirement,\n }}\n />\n )\n}\n\n/**\n * Layout for UserAccessRequestHistory pages. Includes header with title.\n * @constructor\n */\nfunction UserAccessRequestHistoryPageLayout() {\n return (\n <>\n <div className=\"pageHeader\">\n <div className=\"grid\">\n <h3 className=\"pageHeaderTitle\">Access Requests</h3>\n </div>\n </div>\n <Box sx={{ px: 5, py: 3 }}>\n <Outlet />\n </Box>\n </>\n )\n}\n\n/**\n * Breadcrumb layout for UserAccessRequestHistory pages. Displays breadcrumbs for navigation.\n */\nfunction UserAccessRequestHistoryBreadcrumbLayout() {\n const { submissionId } = useParams<{ [SUBMISSION_ID_PARAM]: string }>()\n const location = useLocation()\n\n const breadcrumbItems: BreadcrumbItem[] = [\n {\n text: 'Access Request History',\n to: '/',\n current: location.pathname === '/',\n },\n ]\n if (submissionId) {\n const submissionPath = `/${USER_ACCESS_HISTORY_SUBMISSION_SUBPATH}/${submissionId}`\n breadcrumbItems.push({\n text: `Request #${submissionId}`,\n to: submissionPath,\n current: location.pathname === submissionPath,\n })\n }\n\n return (\n <>\n <Breadcrumbs\n items={breadcrumbItems}\n sx={{\n mt: 2,\n mb: 4,\n ['& .MuiLink-root']: {\n color: 'text.secondary',\n letterSpacing: 0,\n '&:visited': {\n color: 'text.secondary',\n },\n },\n '& .MuiSvgIcon-root': {\n color: 'grey.500',\n },\n }}\n />\n <Outlet />\n </>\n )\n}\n\nconst routes: RouteObject[] = [\n {\n element: <UserAccessRequestHistoryPageLayout />,\n children: [\n {\n path: '/',\n children: [\n {\n // Keep the history page mounted across the index ↔ signature-deep-link transition.\n element: <UserAccessRequestHistoryPage />,\n children: [\n { index: true, element: null },\n {\n path: `${USER_ACCESS_HISTORY_REQUEST_SUBPATH}/:${REQUEST_ID_PARAM}/${USER_ACCESS_HISTORY_REQUEST_SIGNATURE_SUBPATH}`,\n element: (\n <AuthenticationGuard>\n <RequestSignatureRouteRenderer />\n </AuthenticationGuard>\n ),\n },\n ],\n },\n {\n // Do not display the breadcrumbs on the `index` page\n element: <UserAccessRequestHistoryBreadcrumbLayout />,\n children: [\n {\n path: `${USER_ACCESS_HISTORY_SUBMISSION_SUBPATH}`,\n children: [\n {\n path: `:${SUBMISSION_ID_PARAM}`,\n element: <UserSubmissionPageRouteRenderer />,\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n]\n\n/**\n * Component that renders User Access Request history table & submission page. Handles routing internally.\n */\nexport function UserAccessRequestHistoryPlace(props: ReviewerDashboardProps) {\n const {\n routerBaseName = '/RequestHistory:default',\n useMemoryRouter = false,\n } = props\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, routerBaseName])\n\n if (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n\nexport default UserAccessRequestHistoryPlace\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CuratorDashboardRouter.d.ts","sourceRoot":"","sources":["../../../../src/features/curator/dashboard/CuratorDashboardRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAWlD,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC1D,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,KAAK,EAAE,2BAA2B,2CA0CnC"}
1
+ {"version":3,"file":"CuratorDashboardRouter.d.ts","sourceRoot":"","sources":["../../../../src/features/curator/dashboard/CuratorDashboardRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAYlD,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC1D,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,KAAK,EAAE,2BAA2B,2CA2CnC"}
@@ -2,20 +2,20 @@ import e from "../../entity/metadata-task/create-task/EditCurationTaskPage.js";
2
2
  import t from "./CuratorDashboard.js";
3
3
  import n from "../../../components/layout/SWCPageLayout.js";
4
4
  import { useMemo as r } from "react";
5
- import { jsx as i } from "react/jsx-runtime";
6
- import { Outlet as a, RouterProvider as o, createBrowserRouter as s, createMemoryRouter as c } from "react-router";
7
- import { RouterProvider as l } from "react-router/dom";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ import { Outlet as o, RouterProvider as s, ScrollRestoration as c, createBrowserRouter as l, createMemoryRouter as u } from "react-router";
7
+ import { RouterProvider as d } from "react-router/dom";
8
8
  //#region src/features/curator/dashboard/CuratorDashboardRouter.tsx
9
- function u(u) {
10
- let { routerBaseName: d = "/CuratorDashboard:0", useMemoryRouter: f = !1 } = u, p = r(() => [{
9
+ function f(f) {
10
+ let { routerBaseName: p = "/CuratorDashboard:0", useMemoryRouter: m = !1 } = f, h = r(() => [{
11
11
  path: "/",
12
- element: /* @__PURE__ */ i(n, {
12
+ element: /* @__PURE__ */ a(n, {
13
13
  header: { title: "Curator Dashboard" },
14
- children: /* @__PURE__ */ i("div", {
14
+ children: [/* @__PURE__ */ i("div", {
15
15
  className: "pageContent",
16
16
  style: { marginTop: "2rem" },
17
- children: /* @__PURE__ */ i(a, {})
18
- })
17
+ children: /* @__PURE__ */ i(o, {})
18
+ }), /* @__PURE__ */ i(c, { getKey: (e) => e.pathname })]
19
19
  }),
20
20
  children: [{
21
21
  index: !0,
@@ -24,14 +24,14 @@ function u(u) {
24
24
  path: "edit/:taskId",
25
25
  element: /* @__PURE__ */ i(e, {})
26
26
  }]
27
- }], []), m = r(() => f ? c(p, { basename: d }) : s(p, { basename: d }), [
28
- f,
29
- p,
30
- d
27
+ }], []), g = r(() => m ? u(h, { basename: p }) : l(h, { basename: p }), [
28
+ m,
29
+ h,
30
+ p
31
31
  ]);
32
- return i(f ? o : l, { router: m });
32
+ return i(m ? s : d, { router: g });
33
33
  }
34
34
  //#endregion
35
- export { u as default };
35
+ export { f as default };
36
36
 
37
37
  //# sourceMappingURL=CuratorDashboardRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CuratorDashboardRouter.js","names":[],"sources":["../../../../src/features/curator/dashboard/CuratorDashboardRouter.tsx"],"sourcesContent":["import EditCurationTaskPage from '@/features/entity/metadata-task/create-task/EditCurationTaskPage'\nimport CuratorDashboardContent from './CuratorDashboard'\nimport { PropsWithChildren, useMemo } from 'react'\nimport { Outlet } from 'react-router'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n RouteObject,\n RouterProvider,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport SWCPageLayout from '@/components/layout/SWCPageLayout'\n\nexport type CuratorDashboardRouterProps = PropsWithChildren<{\n /** Used to determine the base path for the component. Default is CuratorDashboard:0 */\n routerBaseName?: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For testing purposes only. */\n useMemoryRouter?: boolean\n}>\n\n/**\n * A router wrapper for the CuratorDashboard, which applies a router around the component to support using react-router APIs\n * from within the dashboard.\n */\nexport default function CuratorDashboardRouter(\n props: CuratorDashboardRouterProps,\n) {\n const { routerBaseName = '/CuratorDashboard:0', useMemoryRouter = false } =\n props\n\n const routes: RouteObject[] = useMemo(\n () => [\n {\n path: '/',\n element: (\n <SWCPageLayout header={{ title: 'Curator Dashboard' }}>\n <div className=\"pageContent\" style={{ marginTop: '2rem' }}>\n <Outlet />\n </div>\n </SWCPageLayout>\n ),\n children: [\n { index: true, element: <CuratorDashboardContent /> },\n { path: 'edit/:taskId', element: <EditCurationTaskPage /> },\n ],\n },\n ],\n [],\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 (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n"],"mappings":";;;;;;;;AAwBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,oBAAiB,uBAAuB,qBAAkB,OAChE,GAEI,IAAwB,QACtB,CACJ;EACE,MAAM;EACN,SACE,kBAAC,GAAD;GAAe,QAAQ,EAAE,OAAO,oBAAoB;aAClD,kBAAC,OAAD;IAAK,WAAU;IAAc,OAAO,EAAE,WAAW,OAAO;cACtD,kBAAC,GAAD,CAAS,CAAA;GACN,CAAA;EACQ,CAAA;EAEjB,UAAU,CACR;GAAE,OAAO;GAAM,SAAS,kBAAC,GAAD,CAA0B,CAAA;EAAE,GACpD;GAAE,MAAM;GAAgB,SAAS,kBAAC,GAAD,CAAuB,CAAA;EAAE,CAC5D;CACF,CACF,GACA,CAAC,CACH,GAEM,IAAS,QACT,IACK,EAAmB,GAAQ,EAChC,UAAU,EACZ,CAAC,IAEM,EAAoB,GAAQ,EACjC,UAAU,EACZ,CAAC,GAEF;EAAC;EAAiB;EAAQ;CAAc,CAAC;CAM5C,OAHS,EADL,IACM,IAGF,GAHC,EAAwB,UAAS,CAAA;AAI5C"}
1
+ {"version":3,"file":"CuratorDashboardRouter.js","names":[],"sources":["../../../../src/features/curator/dashboard/CuratorDashboardRouter.tsx"],"sourcesContent":["import EditCurationTaskPage from '@/features/entity/metadata-task/create-task/EditCurationTaskPage'\nimport CuratorDashboardContent from './CuratorDashboard'\nimport { PropsWithChildren, useMemo } from 'react'\nimport { Outlet } from 'react-router'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n RouteObject,\n RouterProvider,\n ScrollRestoration,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport SWCPageLayout from '@/components/layout/SWCPageLayout'\n\nexport type CuratorDashboardRouterProps = PropsWithChildren<{\n /** Used to determine the base path for the component. Default is CuratorDashboard:0 */\n routerBaseName?: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For testing purposes only. */\n useMemoryRouter?: boolean\n}>\n\n/**\n * A router wrapper for the CuratorDashboard, which applies a router around the component to support using react-router APIs\n * from within the dashboard.\n */\nexport default function CuratorDashboardRouter(\n props: CuratorDashboardRouterProps,\n) {\n const { routerBaseName = '/CuratorDashboard:0', useMemoryRouter = false } =\n props\n\n const routes: RouteObject[] = useMemo(\n () => [\n {\n path: '/',\n element: (\n <SWCPageLayout header={{ title: 'Curator Dashboard' }}>\n <div className=\"pageContent\" style={{ marginTop: '2rem' }}>\n <Outlet />\n </div>\n <ScrollRestoration getKey={location => location.pathname} />\n </SWCPageLayout>\n ),\n children: [\n { index: true, element: <CuratorDashboardContent /> },\n { path: 'edit/:taskId', element: <EditCurationTaskPage /> },\n ],\n },\n ],\n [],\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 (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n"],"mappings":";;;;;;;;AAyBA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,oBAAiB,uBAAuB,qBAAkB,OAChE,GAEI,IAAwB,QACtB,CACJ;EACE,MAAM;EACN,SACE,kBAAC,GAAD;GAAe,QAAQ,EAAE,OAAO,oBAAoB;aAApD,CACE,kBAAC,OAAD;IAAK,WAAU;IAAc,OAAO,EAAE,WAAW,OAAO;cACtD,kBAAC,GAAD,CAAS,CAAA;GACN,CAAA,GACL,kBAAC,GAAD,EAAmB,SAAQ,MAAY,EAAS,SAAW,CAAA,CAC9C;;EAEjB,UAAU,CACR;GAAE,OAAO;GAAM,SAAS,kBAAC,GAAD,CAA0B,CAAA;EAAE,GACpD;GAAE,MAAM;GAAgB,SAAS,kBAAC,GAAD,CAAuB,CAAA;EAAE,CAC5D;CACF,CACF,GACA,CAAC,CACH,GAEM,IAAS,QACT,IACK,EAAmB,GAAQ,EAChC,UAAU,EACZ,CAAC,IAEM,EAAoB,GAAQ,EACjC,UAAU,EACZ,CAAC,GAEF;EAAC;EAAiB;EAAQ;CAAc,CAAC;CAM5C,OAHS,EADL,IACM,IAGF,GAHC,EAAwB,UAAS,CAAA;AAI5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTasksPageRouter.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAUlD,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,KAAK,EAAE,4BAA4B,2CA4CpC"}
1
+ {"version":3,"file":"MetadataTasksPageRouter.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAYlD,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,2GAA2G;IAC3G,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,KAAK,EAAE,4BAA4B,2CAkDpC"}
@@ -2,38 +2,39 @@ import e from "../create-task/EditCurationTaskPage.js";
2
2
  import { getCurationTaskFlowRoutes as t } from "../create-task/curationTaskFlowRoutes.js";
3
3
  import { MetadataTasksPageInternal as n } from "./MetadataTasksPage.js";
4
4
  import { useMemo as r } from "react";
5
- import { jsx as i } from "react/jsx-runtime";
6
- import { RouterProvider as a, createBrowserRouter as o, createMemoryRouter as s } from "react-router";
7
- import { RouterProvider as c } from "react-router/dom";
5
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ import { Outlet as s, RouterProvider as c, ScrollRestoration as l, createBrowserRouter as u, createMemoryRouter as d } from "react-router";
7
+ import { RouterProvider as f } from "react-router/dom";
8
8
  //#region src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx
9
- function l(l) {
10
- let { projectId: u, routerBaseName: d, useMemoryRouter: f = !1 } = l, p = r(() => [{
9
+ function p(p) {
10
+ let { projectId: m, routerBaseName: h, useMemoryRouter: g = !1 } = p, _ = r(() => [{
11
11
  path: "/",
12
+ element: /* @__PURE__ */ o(i, { children: [/* @__PURE__ */ a(s, {}), /* @__PURE__ */ a(l, { getKey: (e) => e.pathname })] }),
12
13
  children: [
13
14
  {
14
15
  index: !0,
15
- element: /* @__PURE__ */ i(n, { projectId: u })
16
+ element: /* @__PURE__ */ a(n, { projectId: m })
16
17
  },
17
18
  {
18
19
  path: "create",
19
20
  children: t({
20
- projectId: u,
21
+ projectId: m,
21
22
  exitPath: "/"
22
23
  })
23
24
  },
24
25
  {
25
26
  path: "edit/:taskId",
26
- element: /* @__PURE__ */ i(e, {})
27
+ element: /* @__PURE__ */ a(e, {})
27
28
  }
28
29
  ]
29
- }], [u]), m = r(() => f ? s(p, { basename: d }) : o(p, { basename: d }), [
30
- f,
31
- p,
32
- d
30
+ }], [m]), v = r(() => g ? d(_, { basename: h }) : u(_, { basename: h }), [
31
+ g,
32
+ _,
33
+ h
33
34
  ]);
34
- return i(f ? a : c, { router: m });
35
+ return a(g ? c : f, { router: v });
35
36
  }
36
37
  //#endregion
37
- export { l as default };
38
+ export { p as default };
38
39
 
39
40
  //# sourceMappingURL=MetadataTasksPageRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataTasksPageRouter.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx"],"sourcesContent":["import { getCurationTaskFlowRoutes } from '@/features/entity/metadata-task/create-task/curationTaskFlowRoutes'\nimport EditCurationTaskPage from '@/features/entity/metadata-task/create-task/EditCurationTaskPage'\nimport { PropsWithChildren, useMemo } from 'react'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n RouteObject,\n RouterProvider,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport { MetadataTasksPageInternal } from './MetadataTasksPage'\n\nexport type MetadataTasksPageRouterProps = PropsWithChildren<{\n projectId: string\n /**\n * Used to determine the base path for the component. In SWC, this should be /Synapse:syn123/metadata/\n * (replacing syn123 with the project ID).\n */\n routerBaseName: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For testing purposes only. */\n useMemoryRouter?: boolean\n}>\n\n/**\n * A router wrapper for `MetadataTasksPage`, which applies a router around the page content to support\n * page-based create/edit flows for curation tasks, mirroring `GridPageRouter`.\n */\nexport default function MetadataTasksPageRouter(\n props: MetadataTasksPageRouterProps,\n) {\n const { projectId, routerBaseName, useMemoryRouter = false } = props\n\n const routes: RouteObject[] = useMemo(\n () => [\n {\n path: '/',\n children: [\n {\n index: true,\n element: <MetadataTasksPageInternal projectId={projectId} />,\n },\n {\n path: 'create',\n children: getCurationTaskFlowRoutes({ projectId, exitPath: '/' }),\n },\n {\n path: 'edit/:taskId',\n element: <EditCurationTaskPage />,\n },\n ],\n },\n ],\n [projectId],\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 (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n"],"mappings":";;;;;;;;AA2BA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,cAAW,mBAAgB,qBAAkB,OAAU,GAEzD,IAAwB,QACtB,CACJ;EACE,MAAM;EACN,UAAU;GACR;IACE,OAAO;IACP,SAAS,kBAAC,GAAD,EAAsC,aAAY,CAAA;GAC7D;GACA;IACE,MAAM;IACN,UAAU,EAA0B;KAAE;KAAW,UAAU;IAAI,CAAC;GAClE;GACA;IACE,MAAM;IACN,SAAS,kBAAC,GAAD,CAAuB,CAAA;GAClC;EACF;CACF,CACF,GACA,CAAC,CAAS,CACZ,GAEM,IAAS,QACT,IACK,EAAmB,GAAQ,EAChC,UAAU,EACZ,CAAC,IAEM,EAAoB,GAAQ,EACjC,UAAU,EACZ,CAAC,GAEF;EAAC;EAAiB;EAAQ;CAAc,CAAC;CAM5C,OAHS,EADL,IACM,IAGF,GAHC,EAAwB,UAAS,CAAA;AAI5C"}
1
+ {"version":3,"file":"MetadataTasksPageRouter.js","names":[],"sources":["../../../../../src/features/entity/metadata-task/components/MetadataTasksPageRouter.tsx"],"sourcesContent":["import { getCurationTaskFlowRoutes } from '@/features/entity/metadata-task/create-task/curationTaskFlowRoutes'\nimport EditCurationTaskPage from '@/features/entity/metadata-task/create-task/EditCurationTaskPage'\nimport { PropsWithChildren, useMemo } from 'react'\nimport {\n createBrowserRouter,\n createMemoryRouter,\n Outlet,\n RouteObject,\n RouterProvider,\n ScrollRestoration,\n} from 'react-router'\nimport { RouterProvider as DOMRouterProvider } from 'react-router/dom'\nimport { MetadataTasksPageInternal } from './MetadataTasksPage'\n\nexport type MetadataTasksPageRouterProps = PropsWithChildren<{\n projectId: string\n /**\n * Used to determine the base path for the component. In SWC, this should be /Synapse:syn123/metadata/\n * (replacing syn123 with the project ID).\n */\n routerBaseName: string\n /** If true use a MemoryRouter, which prevents the browser URL from updating. For testing purposes only. */\n useMemoryRouter?: boolean\n}>\n\n/**\n * A router wrapper for `MetadataTasksPage`, which applies a router around the page content to support\n * page-based create/edit flows for curation tasks, mirroring `GridPageRouter`.\n */\nexport default function MetadataTasksPageRouter(\n props: MetadataTasksPageRouterProps,\n) {\n const { projectId, routerBaseName, useMemoryRouter = false } = props\n\n const routes: RouteObject[] = useMemo(\n () => [\n {\n path: '/',\n element: (\n <>\n <Outlet />\n <ScrollRestoration getKey={location => location.pathname} />\n </>\n ),\n children: [\n {\n index: true,\n element: <MetadataTasksPageInternal projectId={projectId} />,\n },\n {\n path: 'create',\n children: getCurationTaskFlowRoutes({ projectId, exitPath: '/' }),\n },\n {\n path: 'edit/:taskId',\n element: <EditCurationTaskPage />,\n },\n ],\n },\n ],\n [projectId],\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 (useMemoryRouter) {\n return <RouterProvider router={router} />\n }\n\n return <DOMRouterProvider router={router} />\n}\n"],"mappings":";;;;;;;;AA6BA,SAAwB,EACtB,GACA;CACA,IAAM,EAAE,cAAW,mBAAgB,qBAAkB,OAAU,GAEzD,IAAwB,QACtB,CACJ;EACE,MAAM;EACN,SACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,CAAS,CAAA,GACT,kBAAC,GAAD,EAAmB,SAAQ,MAAY,EAAS,SAAW,CAAA,CAC3D,EAAA,CAAA;EAEJ,UAAU;GACR;IACE,OAAO;IACP,SAAS,kBAAC,GAAD,EAAsC,aAAY,CAAA;GAC7D;GACA;IACE,MAAM;IACN,UAAU,EAA0B;KAAE;KAAW,UAAU;IAAI,CAAC;GAClE;GACA;IACE,MAAM;IACN,SAAS,kBAAC,GAAD,CAAuB,CAAA;GAClC;EACF;CACF,CACF,GACA,CAAC,CAAS,CACZ,GAEM,IAAS,QACT,IACK,EAAmB,GAAQ,EAChC,UAAU,EACZ,CAAC,IAEM,EAAoB,GAAQ,EACjC,UAAU,EACZ,CAAC,GAEF;EAAC;EAAiB;EAAQ;CAAc,CAAC;CAM5C,OAHS,EADL,IACM,IAGF,GAHC,EAAwB,UAAS,CAAA;AAI5C"}
@@ -1,7 +1,14 @@
1
1
  import { JsonSchemaAccessRequirement } from '@sage-bionetworks/synapse-client';
2
+ import { WikiPage, WikiPageKey } from '@sage-bionetworks/synapse-types';
2
3
  /** AR 1: Genomics Data Access — references the Genomics FormTemplate. No DUC required. */
3
4
  export declare const mockJsonSchemaAR1: JsonSchemaAccessRequirement;
4
5
  /** AR 2: Clinical Trial Data Access — references the Clinical Trial FormTemplate. Requires an uploaded DUC. */
5
6
  export declare const mockJsonSchemaAR2: JsonSchemaAccessRequirement;
6
7
  export declare const mockJsonSchemaAccessRequirements: JsonSchemaAccessRequirement[];
8
+ /**
9
+ * A wiki for {@link mockJsonSchemaAR1}. It is intentionally not registered with the shared access requirement wiki
10
+ * mocks, so that the AR is wiki-less by default.
11
+ */
12
+ export declare const mockJsonSchemaAR1WikiPage: WikiPage;
13
+ export declare const mockJsonSchemaAR1WikiPageKey: WikiPageKey;
7
14
  //# sourceMappingURL=mockJsonSchemaAccessRequirements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockJsonSchemaAccessRequirements.d.ts","sourceRoot":"","sources":["../../../src/mocks/accessRequirement/mockJsonSchemaAccessRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAE5B,MAAM,kCAAkC,CAAA;AAMzC,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,EAAE,2BAiB/B,CAAA;AAED,+GAA+G;AAC/G,eAAO,MAAM,iBAAiB,EAAE,2BAkB/B,CAAA;AAED,eAAO,MAAM,gCAAgC,EAAE,2BAA2B,EAGzE,CAAA"}
1
+ {"version":3,"file":"mockJsonSchemaAccessRequirements.d.ts","sourceRoot":"","sources":["../../../src/mocks/accessRequirement/mockJsonSchemaAccessRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAE5B,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAEL,QAAQ,EACR,WAAW,EACZ,MAAM,iCAAiC,CAAA;AAKxC,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,EAAE,2BAiB/B,CAAA;AAED,+GAA+G;AAC/G,eAAO,MAAM,iBAAiB,EAAE,2BAkB/B,CAAA;AAED,eAAO,MAAM,gCAAgC,EAAE,2BAA2B,EAGzE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAWvC,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,WAI1C,CAAA"}
@@ -1,16 +1,17 @@
1
1
  import { MOCK_DUC_TEMPLATE_FILE_HANDLE_ID as e } from "../mock_file_handle.js";
2
- import { JsonSchemaAccessRequirementConcreteTypeEnum as t } from "@sage-bionetworks/synapse-client";
2
+ import { ObjectType as t } from "@sage-bionetworks/synapse-types";
3
+ import { JsonSchemaAccessRequirementConcreteTypeEnum as n } from "@sage-bionetworks/synapse-client";
3
4
  //#region src/mocks/accessRequirement/mockJsonSchemaAccessRequirements.ts
4
- var n = (/* @__PURE__ */ new Date()).toISOString(), r = "1234567", i = {
5
+ var r = (/* @__PURE__ */ new Date()).toISOString(), i = "1234567", a = {
5
6
  id: 9e3,
6
7
  name: "Genomics Data Access",
7
8
  etag: "etag-ar-9000",
8
9
  versionNumber: 1,
9
- createdOn: n,
10
- modifiedOn: n,
11
- createdBy: r,
12
- modifiedBy: r,
13
- concreteType: t.org_sagebionetworks_repo_model_JsonSchemaAccessRequirement,
10
+ createdOn: r,
11
+ modifiedOn: r,
12
+ createdBy: i,
13
+ modifiedBy: i,
14
+ concreteType: n.org_sagebionetworks_repo_model_JsonSchemaAccessRequirement,
14
15
  formTemplateRef: {
15
16
  templateId: "template-1",
16
17
  templateVersionNumber: 1
@@ -20,16 +21,16 @@ var n = (/* @__PURE__ */ new Date()).toISOString(), r = "1234567", i = {
20
21
  isValidatedProfileRequired: !1,
21
22
  isTwoFaRequired: !1,
22
23
  isDUCRequired: !1
23
- }, a = {
24
+ }, o = {
24
25
  id: 9001,
25
26
  name: "Clinical Trial Data Access",
26
27
  etag: "etag-ar-9001",
27
28
  versionNumber: 1,
28
- createdOn: n,
29
- modifiedOn: n,
30
- createdBy: r,
31
- modifiedBy: r,
32
- concreteType: t.org_sagebionetworks_repo_model_JsonSchemaAccessRequirement,
29
+ createdOn: r,
30
+ modifiedOn: r,
31
+ createdBy: i,
32
+ modifiedBy: i,
33
+ concreteType: n.org_sagebionetworks_repo_model_JsonSchemaAccessRequirement,
33
34
  formTemplateRef: {
34
35
  templateId: "template-2",
35
36
  templateVersionNumber: 1
@@ -40,8 +41,22 @@ var n = (/* @__PURE__ */ new Date()).toISOString(), r = "1234567", i = {
40
41
  isTwoFaRequired: !0,
41
42
  isDUCRequired: !0,
42
43
  ducTemplateFileHandleId: e
43
- }, o = [i, a];
44
+ }, s = [a, o], c = {
45
+ id: "9000",
46
+ etag: "etag-wiki-9000",
47
+ createdOn: r,
48
+ createdBy: i,
49
+ modifiedOn: r,
50
+ modifiedBy: i,
51
+ title: "",
52
+ markdown: "**Access to these genomics data is controlled.**\n\nTo request access, provide the information that is requested in the following steps, including a description of your proposed research.",
53
+ attachmentFileHandleIds: []
54
+ }, l = {
55
+ wikiPageId: c.id,
56
+ ownerObjectId: String(a.id),
57
+ ownerObjectType: t.ACCESS_REQUIREMENT
58
+ };
44
59
  //#endregion
45
- export { i as mockJsonSchemaAR1, a as mockJsonSchemaAR2, o as mockJsonSchemaAccessRequirements };
60
+ export { a as mockJsonSchemaAR1, c as mockJsonSchemaAR1WikiPage, l as mockJsonSchemaAR1WikiPageKey, o as mockJsonSchemaAR2, s as mockJsonSchemaAccessRequirements };
46
61
 
47
62
  //# sourceMappingURL=mockJsonSchemaAccessRequirements.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockJsonSchemaAccessRequirements.js","names":[],"sources":["../../../src/mocks/accessRequirement/mockJsonSchemaAccessRequirements.ts"],"sourcesContent":["import {\n JsonSchemaAccessRequirement,\n JsonSchemaAccessRequirementConcreteTypeEnum,\n} from '@sage-bionetworks/synapse-client'\nimport { MOCK_DUC_TEMPLATE_FILE_HANDLE_ID } from '@/mocks/mock_file_handle'\n\nconst now = new Date().toISOString()\nconst actUserId = '1234567'\n\n/** AR 1: Genomics Data Access — references the Genomics FormTemplate. No DUC required. */\nexport const mockJsonSchemaAR1: JsonSchemaAccessRequirement = {\n id: 9000,\n name: 'Genomics Data Access',\n etag: 'etag-ar-9000',\n versionNumber: 1,\n createdOn: now,\n modifiedOn: now,\n createdBy: actUserId,\n modifiedBy: actUserId,\n concreteType:\n JsonSchemaAccessRequirementConcreteTypeEnum.org_sagebionetworks_repo_model_JsonSchemaAccessRequirement,\n formTemplateRef: { templateId: 'template-1', templateVersionNumber: 1 },\n expirationPeriod: 31536000000, // 1 year\n isCertifiedUserRequired: true,\n isValidatedProfileRequired: false,\n isTwoFaRequired: false,\n isDUCRequired: false,\n}\n\n/** AR 2: Clinical Trial Data Access — references the Clinical Trial FormTemplate. Requires an uploaded DUC. */\nexport const mockJsonSchemaAR2: JsonSchemaAccessRequirement = {\n id: 9001,\n name: 'Clinical Trial Data Access',\n etag: 'etag-ar-9001',\n versionNumber: 1,\n createdOn: now,\n modifiedOn: now,\n createdBy: actUserId,\n modifiedBy: actUserId,\n concreteType:\n JsonSchemaAccessRequirementConcreteTypeEnum.org_sagebionetworks_repo_model_JsonSchemaAccessRequirement,\n formTemplateRef: { templateId: 'template-2', templateVersionNumber: 1 },\n expirationPeriod: 15768000000, // 6 months\n isCertifiedUserRequired: true,\n isValidatedProfileRequired: true,\n isTwoFaRequired: true,\n isDUCRequired: true,\n ducTemplateFileHandleId: MOCK_DUC_TEMPLATE_FILE_HANDLE_ID,\n}\n\nexport const mockJsonSchemaAccessRequirements: JsonSchemaAccessRequirement[] = [\n mockJsonSchemaAR1,\n mockJsonSchemaAR2,\n]\n"],"mappings":";;;AAMA,IAAM,qBAAM,IAAI,KAAK,GAAE,YAAY,GAC7B,IAAY,WAGL,IAAiD;CAC5D,IAAI;CACJ,MAAM;CACN,MAAM;CACN,eAAe;CACf,WAAW;CACX,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,cACE,EAA4C;CAC9C,iBAAiB;EAAE,YAAY;EAAc,uBAAuB;CAAE;CACtE,kBAAkB;CAClB,yBAAyB;CACzB,4BAA4B;CAC5B,iBAAiB;CACjB,eAAe;AACjB,GAGa,IAAiD;CAC5D,IAAI;CACJ,MAAM;CACN,MAAM;CACN,eAAe;CACf,WAAW;CACX,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,cACE,EAA4C;CAC9C,iBAAiB;EAAE,YAAY;EAAc,uBAAuB;CAAE;CACtE,kBAAkB;CAClB,yBAAyB;CACzB,4BAA4B;CAC5B,iBAAiB;CACjB,eAAe;CACf,yBAAyB;AAC3B,GAEa,IAAkE,CAC7E,GACA,CACF"}
1
+ {"version":3,"file":"mockJsonSchemaAccessRequirements.js","names":[],"sources":["../../../src/mocks/accessRequirement/mockJsonSchemaAccessRequirements.ts"],"sourcesContent":["import {\n JsonSchemaAccessRequirement,\n JsonSchemaAccessRequirementConcreteTypeEnum,\n} from '@sage-bionetworks/synapse-client'\nimport { MOCK_DUC_TEMPLATE_FILE_HANDLE_ID } from '@/mocks/mock_file_handle'\nimport {\n ObjectType,\n WikiPage,\n WikiPageKey,\n} from '@sage-bionetworks/synapse-types'\n\nconst now = new Date().toISOString()\nconst actUserId = '1234567'\n\n/** AR 1: Genomics Data Access — references the Genomics FormTemplate. No DUC required. */\nexport const mockJsonSchemaAR1: JsonSchemaAccessRequirement = {\n id: 9000,\n name: 'Genomics Data Access',\n etag: 'etag-ar-9000',\n versionNumber: 1,\n createdOn: now,\n modifiedOn: now,\n createdBy: actUserId,\n modifiedBy: actUserId,\n concreteType:\n JsonSchemaAccessRequirementConcreteTypeEnum.org_sagebionetworks_repo_model_JsonSchemaAccessRequirement,\n formTemplateRef: { templateId: 'template-1', templateVersionNumber: 1 },\n expirationPeriod: 31536000000, // 1 year\n isCertifiedUserRequired: true,\n isValidatedProfileRequired: false,\n isTwoFaRequired: false,\n isDUCRequired: false,\n}\n\n/** AR 2: Clinical Trial Data Access — references the Clinical Trial FormTemplate. Requires an uploaded DUC. */\nexport const mockJsonSchemaAR2: JsonSchemaAccessRequirement = {\n id: 9001,\n name: 'Clinical Trial Data Access',\n etag: 'etag-ar-9001',\n versionNumber: 1,\n createdOn: now,\n modifiedOn: now,\n createdBy: actUserId,\n modifiedBy: actUserId,\n concreteType:\n JsonSchemaAccessRequirementConcreteTypeEnum.org_sagebionetworks_repo_model_JsonSchemaAccessRequirement,\n formTemplateRef: { templateId: 'template-2', templateVersionNumber: 1 },\n expirationPeriod: 15768000000, // 6 months\n isCertifiedUserRequired: true,\n isValidatedProfileRequired: true,\n isTwoFaRequired: true,\n isDUCRequired: true,\n ducTemplateFileHandleId: MOCK_DUC_TEMPLATE_FILE_HANDLE_ID,\n}\n\nexport const mockJsonSchemaAccessRequirements: JsonSchemaAccessRequirement[] = [\n mockJsonSchemaAR1,\n mockJsonSchemaAR2,\n]\n\n/**\n * A wiki for {@link mockJsonSchemaAR1}. It is intentionally not registered with the shared access requirement wiki\n * mocks, so that the AR is wiki-less by default.\n */\nexport const mockJsonSchemaAR1WikiPage: WikiPage = {\n id: '9000',\n etag: 'etag-wiki-9000',\n createdOn: now,\n createdBy: actUserId,\n modifiedOn: now,\n modifiedBy: actUserId,\n title: '',\n markdown:\n '**Access to these genomics data is controlled.**\\n\\nTo request access, provide the information that is requested in the following steps, including a description of your proposed research.',\n attachmentFileHandleIds: [],\n}\n\nexport const mockJsonSchemaAR1WikiPageKey: WikiPageKey = {\n wikiPageId: mockJsonSchemaAR1WikiPage.id,\n ownerObjectId: String(mockJsonSchemaAR1.id),\n ownerObjectType: ObjectType.ACCESS_REQUIREMENT,\n}\n"],"mappings":";;;;AAWA,IAAM,qBAAM,IAAI,KAAK,GAAE,YAAY,GAC7B,IAAY,WAGL,IAAiD;CAC5D,IAAI;CACJ,MAAM;CACN,MAAM;CACN,eAAe;CACf,WAAW;CACX,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,cACE,EAA4C;CAC9C,iBAAiB;EAAE,YAAY;EAAc,uBAAuB;CAAE;CACtE,kBAAkB;CAClB,yBAAyB;CACzB,4BAA4B;CAC5B,iBAAiB;CACjB,eAAe;AACjB,GAGa,IAAiD;CAC5D,IAAI;CACJ,MAAM;CACN,MAAM;CACN,eAAe;CACf,WAAW;CACX,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,cACE,EAA4C;CAC9C,iBAAiB;EAAE,YAAY;EAAc,uBAAuB;CAAE;CACtE,kBAAkB;CAClB,yBAAyB;CACzB,4BAA4B;CAC5B,iBAAiB;CACjB,eAAe;CACf,yBAAyB;AAC3B,GAEa,IAAkE,CAC7E,GACA,CACF,GAMa,IAAsC;CACjD,IAAI;CACJ,MAAM;CACN,WAAW;CACX,WAAW;CACX,YAAY;CACZ,YAAY;CACZ,OAAO;CACP,UACE;CACF,yBAAyB,CAAC;AAC5B,GAEa,IAA4C;CACvD,YAAY,EAA0B;CACtC,eAAe,OAAO,EAAkB,EAAE;CAC1C,iBAAiB,EAAW;AAC9B"}
@@ -3,4 +3,7 @@ export declare const MOCK_DATA_ACCESS_REQUEST_ID = "3541518";
3
3
  export declare const MOCK_DATA_ACCESS_RENEWAL_ID = "49813181";
4
4
  export declare const MOCK_DATA_ACCESS_REQUEST: Request;
5
5
  export declare const MOCK_DATA_ACCESS_RENEWAL: Renewal;
6
+ export declare const MOCK_JSON_SCHEMA_DATA_ACCESS_REQUEST_ID = "7710001";
7
+ /** An in-progress request for {@link mockJsonSchemaAR1}, which has no saved answers. */
8
+ export declare const MOCK_JSON_SCHEMA_DATA_ACCESS_REQUEST: Request;
6
9
  //# sourceMappingURL=MockDataAccessRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MockDataAccessRequest.d.ts","sourceRoot":"","sources":["../../../src/mocks/dataaccess/MockDataAccessRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAW9E,eAAO,MAAM,2BAA2B,YAAY,CAAA;AACpD,eAAO,MAAM,2BAA2B,aAAa,CAAA;AAErD,eAAO,MAAM,wBAAwB,EAAE,OAsBtC,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,OA+BtC,CAAA"}
1
+ {"version":3,"file":"MockDataAccessRequest.d.ts","sourceRoot":"","sources":["../../../src/mocks/dataaccess/MockDataAccessRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAY9E,eAAO,MAAM,2BAA2B,YAAY,CAAA;AACpD,eAAO,MAAM,2BAA2B,aAAa,CAAA;AAErD,eAAO,MAAM,wBAAwB,EAAE,OAsBtC,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,OA+BtC,CAAA;AAED,eAAO,MAAM,uCAAuC,YAAY,CAAA;AAEhE,wFAAwF;AACxF,eAAO,MAAM,oCAAoC,EAAE,OAWlD,CAAA"}
@@ -1,14 +1,15 @@
1
1
  import { MOCK_USER_ID_2 as e } from "../user/mock_user_profile.js";
2
2
  import { MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_1_FILE_HANDLE_ID as t, MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_2_FILE_HANDLE_ID as n, MOCK_DATA_ACCESS_SUBMISSION_IRB_APPROVAL_FILE_HANDLE_ID as r, MOCK_DUC_SUBMISSION_FILE_HANDLE_ID as i } from "../mock_file_handle.js";
3
3
  import { mockManagedACTAccessRequirement as a } from "../accessRequirement/mockAccessRequirements.js";
4
- import { MOCK_RESEARCH_PROJECT_ID as o } from "./MockResearchProject.js";
5
- import { AccessType as s } from "@sage-bionetworks/synapse-types";
4
+ import { mockJsonSchemaAR1 as o } from "../accessRequirement/mockJsonSchemaAccessRequirements.js";
5
+ import { MOCK_RESEARCH_PROJECT_ID as s } from "./MockResearchProject.js";
6
+ import { AccessType as c } from "@sage-bionetworks/synapse-types";
6
7
  //#region src/mocks/dataaccess/MockDataAccessRequest.ts
7
- var c = "3541518", l = "49813181", u = {
8
- id: c,
8
+ var l = "3541518", u = "49813181", d = {
9
+ id: l,
9
10
  accessorChanges: [{
10
11
  userId: "999",
11
- type: s.GAIN_ACCESS
12
+ type: c.GAIN_ACCESS
12
13
  }],
13
14
  attachments: [t, n],
14
15
  createdBy: "999",
@@ -17,18 +18,18 @@ var c = "3541518", l = "49813181", u = {
17
18
  irbFileHandleId: r,
18
19
  modifiedBy: "999",
19
20
  modifiedOn: "2023-04-19T13:06:51+00:00",
20
- researchProjectId: o,
21
+ researchProjectId: s,
21
22
  etag: "0",
22
23
  accessRequirementId: String(a.id),
23
24
  concreteType: "org.sagebionetworks.repo.model.dataaccess.Request"
24
- }, d = {
25
- id: l,
25
+ }, f = {
26
+ id: u,
26
27
  accessorChanges: [{
27
28
  userId: "999",
28
- type: s.GAIN_ACCESS
29
+ type: c.GAIN_ACCESS
29
30
  }, {
30
31
  userId: String(e),
31
- type: s.REVOKE_ACCESS
32
+ type: c.REVOKE_ACCESS
32
33
  }],
33
34
  attachments: [t, n],
34
35
  createdBy: "999",
@@ -37,14 +38,25 @@ var c = "3541518", l = "49813181", u = {
37
38
  irbFileHandleId: r,
38
39
  modifiedBy: "999",
39
40
  modifiedOn: "2023-04-19T13:06:51+00:00",
40
- researchProjectId: o,
41
+ researchProjectId: s,
41
42
  etag: "0",
42
43
  accessRequirementId: String(a.id),
43
44
  concreteType: "org.sagebionetworks.repo.model.dataaccess.Renewal",
44
45
  publication: "My cool paper that used this data: https://doi.org/10.1016/j.cell.2011.02.013",
45
46
  summaryOfUse: "We ran a χ² test of homogeneity to determine if this data was representative of the rest of the population with consideration for similar large data collections."
47
+ }, p = "7710001", m = {
48
+ id: p,
49
+ accessorChanges: [],
50
+ createdBy: "999",
51
+ createdOn: "2026-09-01T13:06:51+00:00",
52
+ irbFileHandleId: "",
53
+ modifiedBy: "999",
54
+ modifiedOn: "2026-09-01T13:06:51+00:00",
55
+ etag: "0",
56
+ accessRequirementId: String(o.id),
57
+ concreteType: "org.sagebionetworks.repo.model.dataaccess.Request"
46
58
  };
47
59
  //#endregion
48
- export { d as MOCK_DATA_ACCESS_RENEWAL, l as MOCK_DATA_ACCESS_RENEWAL_ID, u as MOCK_DATA_ACCESS_REQUEST, c as MOCK_DATA_ACCESS_REQUEST_ID };
60
+ export { f as MOCK_DATA_ACCESS_RENEWAL, u as MOCK_DATA_ACCESS_RENEWAL_ID, d as MOCK_DATA_ACCESS_REQUEST, l as MOCK_DATA_ACCESS_REQUEST_ID, m as MOCK_JSON_SCHEMA_DATA_ACCESS_REQUEST, p as MOCK_JSON_SCHEMA_DATA_ACCESS_REQUEST_ID };
49
61
 
50
62
  //# sourceMappingURL=MockDataAccessRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MockDataAccessRequest.js","names":[],"sources":["../../../src/mocks/dataaccess/MockDataAccessRequest.ts"],"sourcesContent":["import { AccessType, Renewal, Request } from '@sage-bionetworks/synapse-types'\nimport { mockManagedACTAccessRequirement } from '../accessRequirement/mockAccessRequirements'\nimport { MOCK_USER_ID, MOCK_USER_ID_2 } from '../user/mock_user_profile'\nimport {\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_1_FILE_HANDLE_ID,\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_2_FILE_HANDLE_ID,\n MOCK_DATA_ACCESS_SUBMISSION_IRB_APPROVAL_FILE_HANDLE_ID,\n MOCK_DUC_SUBMISSION_FILE_HANDLE_ID,\n} from '../mock_file_handle'\nimport { MOCK_RESEARCH_PROJECT_ID } from './MockResearchProject'\n\nexport const MOCK_DATA_ACCESS_REQUEST_ID = '3541518'\nexport const MOCK_DATA_ACCESS_RENEWAL_ID = '49813181'\n\nexport const MOCK_DATA_ACCESS_REQUEST: Request = {\n id: MOCK_DATA_ACCESS_REQUEST_ID,\n accessorChanges: [\n {\n userId: String(MOCK_USER_ID),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n attachments: [\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_1_FILE_HANDLE_ID,\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_2_FILE_HANDLE_ID,\n ],\n createdBy: String(MOCK_USER_ID),\n createdOn: '2023-04-19T13:06:51+00:00',\n ducFileHandleId: MOCK_DUC_SUBMISSION_FILE_HANDLE_ID,\n irbFileHandleId: MOCK_DATA_ACCESS_SUBMISSION_IRB_APPROVAL_FILE_HANDLE_ID,\n modifiedBy: String(MOCK_USER_ID),\n modifiedOn: '2023-04-19T13:06:51+00:00',\n researchProjectId: MOCK_RESEARCH_PROJECT_ID,\n etag: '0',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n concreteType: 'org.sagebionetworks.repo.model.dataaccess.Request',\n}\n\nexport const MOCK_DATA_ACCESS_RENEWAL: Renewal = {\n id: MOCK_DATA_ACCESS_RENEWAL_ID,\n accessorChanges: [\n {\n userId: String(MOCK_USER_ID),\n type: AccessType.GAIN_ACCESS,\n },\n {\n userId: String(MOCK_USER_ID_2),\n type: AccessType.REVOKE_ACCESS,\n },\n ],\n attachments: [\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_1_FILE_HANDLE_ID,\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_2_FILE_HANDLE_ID,\n ],\n createdBy: String(MOCK_USER_ID),\n createdOn: '2023-04-19T13:06:51+00:00',\n ducFileHandleId: MOCK_DUC_SUBMISSION_FILE_HANDLE_ID,\n irbFileHandleId: MOCK_DATA_ACCESS_SUBMISSION_IRB_APPROVAL_FILE_HANDLE_ID,\n modifiedBy: String(MOCK_USER_ID),\n modifiedOn: '2023-04-19T13:06:51+00:00',\n researchProjectId: MOCK_RESEARCH_PROJECT_ID,\n etag: '0',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n concreteType: 'org.sagebionetworks.repo.model.dataaccess.Renewal',\n publication:\n 'My cool paper that used this data: https://doi.org/10.1016/j.cell.2011.02.013',\n summaryOfUse:\n 'We ran a χ² test of homogeneity to determine if this data was representative of the rest of the population with' +\n ' consideration for similar large data collections.',\n}\n"],"mappings":";;;;;;AAWA,IAAa,IAA8B,WAC9B,IAA8B,YAE9B,IAAoC;CAC/C,IAAI;CACJ,iBAAiB,CACf;EACE,QAAQ;EACR,MAAM,EAAW;CACnB,CACF;CACA,aAAa,CACX,GACA,CACF;CACA,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,mBAAmB;CACnB,MAAM;CACN,qBAAqB,OAAO,EAAgC,EAAE;CAC9D,cAAc;AAChB,GAEa,IAAoC;CAC/C,IAAI;CACJ,iBAAiB,CACf;EACE,QAAQ;EACR,MAAM,EAAW;CACnB,GACA;EACE,QAAQ,OAAO,CAAc;EAC7B,MAAM,EAAW;CACnB,CACF;CACA,aAAa,CACX,GACA,CACF;CACA,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,mBAAmB;CACnB,MAAM;CACN,qBAAqB,OAAO,EAAgC,EAAE;CAC9D,cAAc;CACd,aACE;CACF,cACE;AAEJ"}
1
+ {"version":3,"file":"MockDataAccessRequest.js","names":[],"sources":["../../../src/mocks/dataaccess/MockDataAccessRequest.ts"],"sourcesContent":["import { AccessType, Renewal, Request } from '@sage-bionetworks/synapse-types'\nimport { mockManagedACTAccessRequirement } from '../accessRequirement/mockAccessRequirements'\nimport { mockJsonSchemaAR1 } from '../accessRequirement/mockJsonSchemaAccessRequirements'\nimport { MOCK_USER_ID, MOCK_USER_ID_2 } from '../user/mock_user_profile'\nimport {\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_1_FILE_HANDLE_ID,\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_2_FILE_HANDLE_ID,\n MOCK_DATA_ACCESS_SUBMISSION_IRB_APPROVAL_FILE_HANDLE_ID,\n MOCK_DUC_SUBMISSION_FILE_HANDLE_ID,\n} from '../mock_file_handle'\nimport { MOCK_RESEARCH_PROJECT_ID } from './MockResearchProject'\n\nexport const MOCK_DATA_ACCESS_REQUEST_ID = '3541518'\nexport const MOCK_DATA_ACCESS_RENEWAL_ID = '49813181'\n\nexport const MOCK_DATA_ACCESS_REQUEST: Request = {\n id: MOCK_DATA_ACCESS_REQUEST_ID,\n accessorChanges: [\n {\n userId: String(MOCK_USER_ID),\n type: AccessType.GAIN_ACCESS,\n },\n ],\n attachments: [\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_1_FILE_HANDLE_ID,\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_2_FILE_HANDLE_ID,\n ],\n createdBy: String(MOCK_USER_ID),\n createdOn: '2023-04-19T13:06:51+00:00',\n ducFileHandleId: MOCK_DUC_SUBMISSION_FILE_HANDLE_ID,\n irbFileHandleId: MOCK_DATA_ACCESS_SUBMISSION_IRB_APPROVAL_FILE_HANDLE_ID,\n modifiedBy: String(MOCK_USER_ID),\n modifiedOn: '2023-04-19T13:06:51+00:00',\n researchProjectId: MOCK_RESEARCH_PROJECT_ID,\n etag: '0',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n concreteType: 'org.sagebionetworks.repo.model.dataaccess.Request',\n}\n\nexport const MOCK_DATA_ACCESS_RENEWAL: Renewal = {\n id: MOCK_DATA_ACCESS_RENEWAL_ID,\n accessorChanges: [\n {\n userId: String(MOCK_USER_ID),\n type: AccessType.GAIN_ACCESS,\n },\n {\n userId: String(MOCK_USER_ID_2),\n type: AccessType.REVOKE_ACCESS,\n },\n ],\n attachments: [\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_1_FILE_HANDLE_ID,\n MOCK_DATA_ACCESS_SUBMISSION_ATTACHMENT_2_FILE_HANDLE_ID,\n ],\n createdBy: String(MOCK_USER_ID),\n createdOn: '2023-04-19T13:06:51+00:00',\n ducFileHandleId: MOCK_DUC_SUBMISSION_FILE_HANDLE_ID,\n irbFileHandleId: MOCK_DATA_ACCESS_SUBMISSION_IRB_APPROVAL_FILE_HANDLE_ID,\n modifiedBy: String(MOCK_USER_ID),\n modifiedOn: '2023-04-19T13:06:51+00:00',\n researchProjectId: MOCK_RESEARCH_PROJECT_ID,\n etag: '0',\n accessRequirementId: String(mockManagedACTAccessRequirement.id),\n concreteType: 'org.sagebionetworks.repo.model.dataaccess.Renewal',\n publication:\n 'My cool paper that used this data: https://doi.org/10.1016/j.cell.2011.02.013',\n summaryOfUse:\n 'We ran a χ² test of homogeneity to determine if this data was representative of the rest of the population with' +\n ' consideration for similar large data collections.',\n}\n\nexport const MOCK_JSON_SCHEMA_DATA_ACCESS_REQUEST_ID = '7710001'\n\n/** An in-progress request for {@link mockJsonSchemaAR1}, which has no saved answers. */\nexport const MOCK_JSON_SCHEMA_DATA_ACCESS_REQUEST: Request = {\n id: MOCK_JSON_SCHEMA_DATA_ACCESS_REQUEST_ID,\n accessorChanges: [],\n createdBy: String(MOCK_USER_ID),\n createdOn: '2026-09-01T13:06:51+00:00',\n irbFileHandleId: '',\n modifiedBy: String(MOCK_USER_ID),\n modifiedOn: '2026-09-01T13:06:51+00:00',\n etag: '0',\n accessRequirementId: String(mockJsonSchemaAR1.id),\n concreteType: 'org.sagebionetworks.repo.model.dataaccess.Request',\n}\n"],"mappings":";;;;;;;AAYA,IAAa,IAA8B,WAC9B,IAA8B,YAE9B,IAAoC;CAC/C,IAAI;CACJ,iBAAiB,CACf;EACE,QAAQ;EACR,MAAM,EAAW;CACnB,CACF;CACA,aAAa,CACX,GACA,CACF;CACA,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,mBAAmB;CACnB,MAAM;CACN,qBAAqB,OAAO,EAAgC,EAAE;CAC9D,cAAc;AAChB,GAEa,IAAoC;CAC/C,IAAI;CACJ,iBAAiB,CACf;EACE,QAAQ;EACR,MAAM,EAAW;CACnB,GACA;EACE,QAAQ,OAAO,CAAc;EAC7B,MAAM,EAAW;CACnB,CACF;CACA,aAAa,CACX,GACA,CACF;CACA,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,mBAAmB;CACnB,MAAM;CACN,qBAAqB,OAAO,EAAgC,EAAE;CAC9D,cAAc;CACd,aACE;CACF,cACE;AAEJ,GAEa,IAA0C,WAG1C,IAAgD;CAC3D,IAAI;CACJ,iBAAiB,CAAC;CAClB,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,MAAM;CACN,qBAAqB,OAAO,EAAkB,EAAE;CAChD,cAAc;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataAccessRequestHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/dataAccessRequestHandlers.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AA2BtE,eAAO,MAAM,0BAA0B,EAAE,mBAQxC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,+BAyGjE"}
1
+ {"version":3,"file":"dataAccessRequestHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/dataAccessRequestHandlers.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAmCtE,eAAO,MAAM,0BAA0B,EAAE,mBAQxC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,+BAyGjE"}