synapse-react-client 4.0.45 → 4.0.47

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 (842) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +1 -0
  3. package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -1
  4. package/dist/aridhia-queries/AridhiaKeyFactory.js +3 -0
  5. package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -1
  6. package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
  7. package/dist/aridhia-queries/index.d.ts +1 -0
  8. package/dist/aridhia-queries/index.d.ts.map +1 -1
  9. package/dist/aridhia-queries/index.js +11 -10
  10. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts +19 -0
  11. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts.map +1 -0
  12. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js +14 -0
  13. package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js.map +1 -0
  14. package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
  15. package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
  16. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.d.ts.map +1 -1
  17. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +6 -4
  18. package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
  19. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  20. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +1 -1
  21. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -1
  22. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +1 -1
  23. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  24. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +1 -1
  25. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -1
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  27. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +11 -8
  28. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  29. package/dist/components/AccessTokenPage/AccessTokenPage.js +1 -1
  30. package/dist/components/AccessTokenPage/AccessTokenPage.js.map +1 -1
  31. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +1 -1
  32. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  33. package/dist/components/AccountLevelBadges/AccountLevelBadges.js +1 -1
  34. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  35. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js +1 -1
  36. package/dist/components/AcknowledgementsPage/AcknowledgementsPage.js.map +1 -1
  37. package/dist/components/AclEditor/AclEditor.test-utils.js +3 -5
  38. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  39. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  40. package/dist/components/Aridhia/AridhiaAccessStatus.js +43 -30
  41. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  42. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +6 -2
  43. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -1
  44. package/dist/components/Aridhia/AridhiaDarStatusPopover.js +101 -31
  45. package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -1
  46. package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -1
  47. package/dist/components/Aridhia/DarWizard/DarSectionForm.js +17 -13
  48. package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -1
  49. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +3 -3
  50. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -1
  51. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +33 -34
  52. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
  53. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +11 -9
  54. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
  55. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +24 -13
  56. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  57. package/dist/components/Aridhia/fairFormToRjsf.js +1 -1
  58. package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -1
  59. package/dist/components/Authentication/LastLoginInfo.js +3 -3
  60. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  61. package/dist/components/Authentication/RecoveryCodeForm.js +1 -1
  62. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  63. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  64. package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
  65. package/dist/components/Authentication/TOTPForm.js +3 -3
  66. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  67. package/dist/components/Authentication/index.d.ts +6 -6
  68. package/dist/components/Authentication/index.d.ts.map +1 -1
  69. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +1 -1
  70. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  71. package/dist/components/CardContainer/CardContainer.js +7 -7
  72. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  73. package/dist/components/CertificationQuiz/CertificationQuiz.js +1 -1
  74. package/dist/components/CertificationQuiz/CertificationQuiz.js.map +1 -1
  75. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js +1 -1
  76. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  77. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js +1 -1
  78. package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.js.map +1 -1
  79. package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
  80. package/dist/components/ChallengeSubmission/ChallengeSubmission.js +1 -1
  81. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  82. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js +1 -1
  83. package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
  84. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +6 -6
  85. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  86. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.d.ts.map +1 -1
  87. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js +4 -4
  88. package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
  89. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +4 -4
  90. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  91. package/dist/components/CitationPopover/CitationPopoverContent.js +4 -4
  92. package/dist/components/CitationPopover/CitationPopoverContent.js.map +1 -1
  93. package/dist/components/CitationPopover/CitationPopoverUtils.js +2 -2
  94. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  95. package/dist/components/CohortBuilder/CohortBuilder.css +1 -0
  96. package/dist/components/CohortBuilder/CohortBuilder.d.ts +35 -0
  97. package/dist/components/CohortBuilder/CohortBuilder.d.ts.map +1 -0
  98. package/dist/components/CohortBuilder/CohortBuilder.js +108 -0
  99. package/dist/components/CohortBuilder/CohortBuilder.js.map +1 -0
  100. package/dist/components/CohortBuilder/CohortBuilder.module.js +10 -0
  101. package/dist/components/CohortBuilder/CohortBuilder.module.js.map +1 -0
  102. package/dist/components/CohortBuilder/CohortBuilder.module.scss +20 -0
  103. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts +16 -0
  104. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts.map +1 -0
  105. package/dist/components/CohortBuilder/CohortFilesPanel.js +124 -0
  106. package/dist/components/CohortBuilder/CohortFilesPanel.js.map +1 -0
  107. package/dist/components/CohortBuilder/cohortHandOff.d.ts +25 -0
  108. package/dist/components/CohortBuilder/cohortHandOff.d.ts.map +1 -0
  109. package/dist/components/CohortBuilder/cohortHandOff.js +26 -0
  110. package/dist/components/CohortBuilder/cohortHandOff.js.map +1 -0
  111. package/dist/components/ColumnFilter/ColumnFilter.d.ts.map +1 -1
  112. package/dist/components/ColumnFilter/ColumnFilter.js +14 -13
  113. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  114. package/dist/components/ComponentCollapse.d.ts.map +1 -1
  115. package/dist/components/ComponentCollapse.js +2 -1
  116. package/dist/components/ComponentCollapse.js.map +1 -1
  117. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
  118. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  119. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  120. package/dist/components/DataGrid/SynapseGrid.js +231 -219
  121. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  122. package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
  123. package/dist/components/DataGrid/SyncGridWithSourceButton.js +5 -4
  124. package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
  125. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +11 -2
  126. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  127. package/dist/components/DataGrid/columns/AutocompleteColumn.js +115 -109
  128. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  129. package/dist/components/DataGrid/columns/NumberColumn.js +1 -1
  130. package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -1
  131. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts +20 -0
  132. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts.map +1 -0
  133. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js +18 -0
  134. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js.map +1 -0
  135. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
  136. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +7 -5
  137. package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
  138. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js +4 -4
  139. package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
  140. package/dist/components/DataGrid/components/ReorderColumnsButton.js +4 -4
  141. package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
  142. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  143. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +12 -8
  144. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  145. package/dist/components/DataGrid/components/UploadCsvToGridButton.js +1 -1
  146. package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
  147. package/dist/components/DataGrid/components/contextMenu.js +3 -3
  148. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  149. package/dist/components/DataGrid/hooks/useGridUndoRedo.d.ts.map +1 -1
  150. package/dist/components/DataGrid/hooks/useGridUndoRedo.js +14 -12
  151. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  152. package/dist/components/DataGrid/hooks/useStack.d.ts +1 -1
  153. package/dist/components/DataGrid/hooks/useStack.js +2 -2
  154. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  155. package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
  156. package/dist/components/DataGrid/utils/applyModelChange.js +14 -14
  157. package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
  158. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  159. package/dist/components/DataGrid/utils/columnFactory.js +47 -42
  160. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  161. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js +7 -7
  162. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  163. package/dist/components/DataGrid/utils/json-rx/JsonRx.js +2 -2
  164. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  165. package/dist/components/DataGrid/utils/splitPatch.d.ts.map +1 -1
  166. package/dist/components/DataGrid/utils/splitPatch.js +22 -13
  167. package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
  168. package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
  169. package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
  170. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
  171. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +3 -2
  172. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  173. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -1
  174. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +1 -3
  175. package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
  176. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  177. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  178. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +16 -10
  179. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  180. package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
  181. package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
  182. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +5 -5
  183. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  184. package/dist/components/EntityFinder/EntityFinder.js +4 -4
  185. package/dist/components/EntityFinder/EntityIdTextField.js +1 -1
  186. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -1
  187. package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
  188. package/dist/components/EntityFinder/details/view/DetailsView.js +4 -4
  189. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  190. package/dist/components/EntityFinder/tree/VirtualizedTree.d.ts.map +1 -1
  191. package/dist/components/EntityFinder/tree/VirtualizedTree.js +5 -4
  192. package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
  193. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
  194. package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
  195. package/dist/components/EntityHeaderTable/Filter.d.ts.map +1 -1
  196. package/dist/components/EntityHeaderTable/Filter.js +1 -1
  197. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  198. package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
  199. package/dist/components/EntityTreeTable/components/EntityNameCell.js +2 -1
  200. package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
  201. package/dist/components/EntityUpload/FileUploadProgress.d.ts.map +1 -1
  202. package/dist/components/EntityUpload/FileUploadProgress.js +11 -7
  203. package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
  204. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  205. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.d.ts.map +1 -1
  206. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js +4 -3
  207. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  208. package/dist/components/ExperimentalMode/ExperimentalMode.js +1 -1
  209. package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
  210. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js +1 -1
  211. package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js.map +1 -1
  212. package/dist/components/FeaturedDataTabs/FacetPlotsCard.d.ts.map +1 -1
  213. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +80 -84
  214. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  215. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -1
  216. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +2 -1
  217. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -1
  218. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
  219. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +2 -1
  220. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
  221. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -1
  222. package/dist/components/FormTemplateEditor/FieldLibrary.js +2 -1
  223. package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -1
  224. package/dist/components/FormTemplateEditor/FieldLibraryRow.js +4 -4
  225. package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -1
  226. package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
  227. package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -1
  228. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +1 -1
  229. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -1
  230. package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -1
  231. package/dist/components/FormTemplateEditor/StepCard.js +15 -10
  232. package/dist/components/FormTemplateEditor/StepCard.js.map +1 -1
  233. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -1
  234. package/dist/components/FormTemplateEditor/StepFieldRow.js +11 -6
  235. package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -1
  236. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -1
  237. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +2 -1
  238. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -1
  239. package/dist/components/FormTemplateEditor/schemaFieldUtils.js +2 -2
  240. package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
  241. package/dist/components/FullTextSearch/FullTextSearch.js +8 -8
  242. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  243. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +46 -46
  244. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js.map +1 -1
  245. package/dist/components/GenericCard/DuoTermTags/duoTerms.js +1 -1
  246. package/dist/components/GenericCard/DuoTermTags/duoTerms.js.map +1 -1
  247. package/dist/components/GenericCard/PortalDOI/PortalDOI.js +5 -5
  248. package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
  249. package/dist/components/GenericCard/TableRowGenericCard.js +38 -38
  250. package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
  251. package/dist/components/GoalsV3/GoalsV3.js +1 -1
  252. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  253. package/dist/components/HelpPopover/HelpPopover.js +1 -1
  254. package/dist/components/HelpPopover/HelpPopover.js.map +1 -1
  255. package/dist/components/HexGrid/HexGrid.d.ts +3 -1
  256. package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
  257. package/dist/components/HexGrid/HexGrid.js +14 -13
  258. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  259. package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
  260. package/dist/components/IconSvg/IconSvg.js +154 -47
  261. package/dist/components/IconSvg/IconSvg.js.map +1 -1
  262. package/dist/components/IconSvg/index.d.ts +1 -1
  263. package/dist/components/IconSvg/index.d.ts.map +1 -1
  264. package/dist/components/IconSvg/index.js.map +1 -1
  265. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.d.ts.map +1 -1
  266. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js +3 -3
  267. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  268. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.d.ts.map +1 -1
  269. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js +19 -16
  270. package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
  271. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
  272. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +2 -1
  273. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  274. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts +9 -0
  275. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts.map +1 -0
  276. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js +21 -0
  277. package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js.map +1 -0
  278. package/dist/components/Markdown/MarkdownCollapse.d.ts.map +1 -1
  279. package/dist/components/Markdown/MarkdownCollapse.js +3 -1
  280. package/dist/components/Markdown/MarkdownCollapse.js.map +1 -1
  281. package/dist/components/Markdown/MarkdownEditor.js +1 -1
  282. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  283. package/dist/components/Markdown/widget/index.d.ts +1 -1
  284. package/dist/components/Markdown/widget/index.d.ts.map +1 -1
  285. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js +1 -1
  286. package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.map +1 -1
  287. package/dist/components/ModalDownload/ModalDownload.d.ts.map +1 -1
  288. package/dist/components/ModalDownload/ModalDownload.js +2 -1
  289. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  290. package/dist/components/OAuthClientManagement/OAuthManagement.js +14 -13
  291. package/dist/components/OAuthClientManagement/OAuthManagement.js.map +1 -1
  292. package/dist/components/Plot/BarPlot.js +1 -1
  293. package/dist/components/Plot/BarPlot.js.map +1 -1
  294. package/dist/components/Plot/PlotPanelHeader.d.ts +3 -2
  295. package/dist/components/Plot/PlotPanelHeader.d.ts.map +1 -1
  296. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  297. package/dist/components/PortalList/PortalCard.d.ts.map +1 -1
  298. package/dist/components/PortalList/PortalCard.js +6 -5
  299. package/dist/components/PortalList/PortalCard.js.map +1 -1
  300. package/dist/components/PortalList/PortalList.js +4 -4
  301. package/dist/components/PortalList/PortalList.js.map +1 -1
  302. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
  303. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  304. package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +6 -6
  305. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js +1 -1
  306. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  307. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  308. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +3 -3
  309. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  310. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
  311. package/dist/components/QueryBuilder/FilterConditionRow.js +31 -30
  312. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
  313. package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
  314. package/dist/components/QueryBuilder/FilterGroupNode.js +91 -75
  315. package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
  316. package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -1
  317. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
  318. package/dist/components/QueryBuilder/QueryBuilderControls.js +91 -79
  319. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
  320. package/dist/components/QueryBuilder/QueryBuilderControls.module.js +11 -11
  321. package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -1
  322. package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +2 -0
  323. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +2 -0
  324. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
  325. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
  326. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts +18 -0
  327. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts.map +1 -0
  328. package/dist/components/QueryBuilder/queryBuilderLimits.js +38 -0
  329. package/dist/components/QueryBuilder/queryBuilderLimits.js.map +1 -0
  330. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +0 -8
  331. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
  332. package/dist/components/QueryBuilder/queryBuilderMetadata.js +6 -9
  333. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
  334. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +5 -4
  335. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
  336. package/dist/components/QueryBuilder/queryBuilderTranslation.js +58 -33
  337. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
  338. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -1
  339. package/dist/components/QueryBuilder/useQBCombinedSql.js +4 -4
  340. package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -1
  341. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -1
  342. package/dist/components/QueryBuilder/useQBValueDisplayName.js +5 -5
  343. package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -1
  344. package/dist/components/QueryCountButton/QueryCountButton.js +5 -5
  345. package/dist/components/QueryCountButton/QueryCountButton.js.map +1 -1
  346. package/dist/components/QuerySortSelector.js +5 -5
  347. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +21 -21
  348. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  349. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts +20 -0
  350. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts.map +1 -0
  351. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js +50 -0
  352. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js.map +1 -0
  353. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts +5 -3
  354. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts.map +1 -1
  355. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js +7 -3
  356. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  357. package/dist/components/QueryWrapper/downloadListFiles.d.ts +25 -0
  358. package/dist/components/QueryWrapper/downloadListFiles.d.ts.map +1 -0
  359. package/dist/components/QueryWrapper/downloadListFiles.js +39 -0
  360. package/dist/components/QueryWrapper/downloadListFiles.js.map +1 -0
  361. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts +16 -0
  362. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts.map +1 -0
  363. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js +50 -0
  364. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js.map +1 -0
  365. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts +4 -1
  366. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts.map +1 -1
  367. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js +15 -28
  368. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  369. package/dist/components/QueryWrapper/useOnQueryDataChange.d.ts.map +1 -1
  370. package/dist/components/QueryWrapper/useOnQueryDataChange.js +7 -6
  371. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  372. package/dist/components/QueryWrapperErrorBoundary.d.ts +3 -1
  373. package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
  374. package/dist/components/QueryWrapperErrorBoundary.js +26 -21
  375. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  376. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +7 -7
  377. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +2 -2
  378. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  379. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +34 -32
  380. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  381. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js +7 -7
  382. package/dist/components/QueryWrapperPlotNav/UseRowSet.d.ts.map +1 -1
  383. package/dist/components/QueryWrapperPlotNav/UseRowSet.js +12 -12
  384. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  385. package/dist/components/ReleaseCard/ReleaseCardLarge.js +5 -5
  386. package/dist/components/ReleaseCard/ReleaseCardLarge.js.map +1 -1
  387. package/dist/components/RowDataTable/CategorizedRowDataTable.css +1 -0
  388. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts +33 -0
  389. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts.map +1 -0
  390. package/dist/components/RowDataTable/CategorizedRowDataTable.js +64 -0
  391. package/dist/components/RowDataTable/CategorizedRowDataTable.js.map +1 -0
  392. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js +8 -0
  393. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js.map +1 -0
  394. package/dist/components/RowDataTable/CategorizedRowDataTable.module.scss +18 -0
  395. package/dist/components/RowDataTable/RowDataTable.d.ts +13 -0
  396. package/dist/components/RowDataTable/RowDataTable.d.ts.map +1 -1
  397. package/dist/components/RowDataTable/RowDataTable.js +25 -8
  398. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  399. package/dist/components/RssFeedCards/RssFeedCards.js +1 -1
  400. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  401. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.d.ts.map +1 -1
  402. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js +2 -2
  403. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  404. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js +1 -1
  405. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  406. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +17 -9
  407. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  408. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +39 -30
  409. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  410. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +24 -24
  411. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  412. package/dist/components/ShareThisPage/ShareThisPage.js +4 -4
  413. package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
  414. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
  415. package/dist/components/SustainabilityScorecard/DialLayout.js +1 -1
  416. package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
  417. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js +1 -1
  418. package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
  419. package/dist/components/SynapseChat/SynapseChat.js +1 -1
  420. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  421. package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
  422. package/dist/components/SynapseChat/SynapseChatInteraction.js +2 -1
  423. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  424. package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
  425. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  426. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js +1 -1
  427. package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js.map +1 -1
  428. package/dist/components/SynapseFooter/SynapseFooter.js +1 -1
  429. package/dist/components/SynapseFooter/SynapseFooter.js.map +1 -1
  430. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  431. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  432. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js +1 -1
  433. package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
  434. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.d.ts.map +1 -1
  435. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +2 -1
  436. package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
  437. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js +4 -4
  438. package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
  439. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js +1 -1
  440. package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
  441. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
  442. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +4 -1
  443. package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
  444. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
  445. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  446. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js +1 -1
  447. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  448. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.d.ts.map +1 -1
  449. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js +3 -3
  450. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  451. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js +1 -1
  452. package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
  453. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
  454. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +12 -9
  455. package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js.map +1 -1
  456. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.d.ts.map +1 -1
  457. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +38 -44
  458. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  459. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +4 -4
  460. package/dist/components/SynapseTable/SqlEditor.js +7 -7
  461. package/dist/components/SynapseTable/SynapseTable.js +8 -8
  462. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  463. package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
  464. package/dist/components/SynapseTable/SynapseTableRenderers.js +73 -72
  465. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  466. package/dist/components/SynapseTable/SynapseTableUtils.js +1 -1
  467. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  468. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  469. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +44 -45
  470. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  471. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js +1 -1
  472. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  473. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.d.ts.map +1 -1
  474. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +6 -6
  475. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  476. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +4 -4
  477. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +12 -12
  478. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  479. package/dist/components/SynapseTable/table-top/ColumnSelection.js +6 -6
  480. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +0 -1
  481. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
  482. package/dist/components/SynapseTable/table-top/DownloadOptions.js +64 -57
  483. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  484. package/dist/components/SynapseTable/usePrefetchTableData.d.ts.map +1 -1
  485. package/dist/components/SynapseTable/usePrefetchTableData.js +3 -3
  486. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  487. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +2 -2
  488. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  489. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
  490. package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js.map +1 -1
  491. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js +1 -1
  492. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  493. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
  494. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +2 -2
  495. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  496. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +59 -59
  497. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  498. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.d.ts.map +1 -1
  499. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js +6 -4
  500. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js.map +1 -1
  501. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js +1 -1
  502. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  503. package/dist/components/TanStackTable/ColumnHeader.js +1 -1
  504. package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
  505. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js +1 -1
  506. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  507. package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
  508. package/dist/components/TanStackTable/StyledTanStackTable.js +1 -4
  509. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  510. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js +1 -1
  511. package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
  512. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.d.ts.map +1 -1
  513. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js +4 -3
  514. package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js.map +1 -1
  515. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  516. package/dist/components/TotalQueryResults.js +14 -14
  517. package/dist/components/Webhook/WebhookDashboard.d.ts.map +1 -1
  518. package/dist/components/Webhook/WebhookDashboard.js +3 -3
  519. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  520. package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
  521. package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
  522. package/dist/components/dataaccess/AccessRequirementTable.js +1 -1
  523. package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
  524. package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -1
  525. package/dist/components/dataaccess/EDucTemplateTable.js +13 -11
  526. package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -1
  527. package/dist/components/dataaccess/FormTemplateTable.js +6 -6
  528. package/dist/components/dataaccess/FormTemplateTable.js.map +1 -1
  529. package/dist/components/dataaccess/ReviewerDashboard.js +17 -17
  530. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  531. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +4 -4
  532. package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
  533. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  534. package/dist/components/download_list/DownloadConfirmationUtils.d.ts +5 -1
  535. package/dist/components/download_list/DownloadConfirmationUtils.d.ts.map +1 -1
  536. package/dist/components/download_list/DownloadConfirmationUtils.js +2 -2
  537. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  538. package/dist/components/download_list/DownloadDetails.d.ts.map +1 -1
  539. package/dist/components/download_list/DownloadDetails.js +12 -10
  540. package/dist/components/download_list/DownloadDetails.js.map +1 -1
  541. package/dist/components/entity/metadata/AnnotationsTable.js +1 -1
  542. package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
  543. package/dist/components/entity/page/CreatedByModifiedBy.js +1 -1
  544. package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
  545. package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
  546. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  547. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
  548. package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
  549. package/dist/components/error/ErrorBanner.d.ts.map +1 -1
  550. package/dist/components/error/ErrorBanner.js +49 -46
  551. package/dist/components/error/ErrorBanner.js.map +1 -1
  552. package/dist/components/error/ErrorChip.d.ts.map +1 -1
  553. package/dist/components/error/ErrorChip.js +2 -1
  554. package/dist/components/error/ErrorChip.js.map +1 -1
  555. package/dist/components/file/upload/MultiFileUploadProgress.js +5 -5
  556. package/dist/components/row_renderers/Dataset.d.ts.map +1 -1
  557. package/dist/components/row_renderers/Dataset.js +6 -6
  558. package/dist/components/row_renderers/Dataset.js.map +1 -1
  559. package/dist/components/row_renderers/Funder.js +1 -1
  560. package/dist/components/row_renderers/Funder.js.map +1 -1
  561. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +14 -14
  562. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +4 -4
  563. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -1
  564. package/dist/components/widgets/ElementWithTooltip.d.ts +6 -1
  565. package/dist/components/widgets/ElementWithTooltip.d.ts.map +1 -1
  566. package/dist/components/widgets/ElementWithTooltip.js +22 -14
  567. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  568. package/dist/components/widgets/RangeSlider/RangeSlider.d.ts.map +1 -1
  569. package/dist/components/widgets/RangeSlider/RangeSlider.js +1 -1
  570. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  571. package/dist/components/widgets/SynapseImage.js +1 -1
  572. package/dist/components/widgets/SynapseImage.js.map +1 -1
  573. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +16 -5
  574. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  575. package/dist/components/widgets/facet-nav/FacetNavPanel.js +115 -102
  576. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  577. package/dist/components/widgets/facet-nav/FacetPlotLegendList.d.ts.map +1 -1
  578. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js +4 -2
  579. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  580. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js +1 -1
  581. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  582. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts +2 -0
  583. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts.map +1 -1
  584. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  585. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +7 -0
  586. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  587. package/dist/components/widgets/facet-nav/PlotsContainer.js +47 -45
  588. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  589. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js +4 -4
  590. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts +3 -2
  591. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  592. package/dist/components/widgets/facet-nav/useFacetPlots.js +16 -15
  593. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  594. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js +4 -4
  595. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +2 -2
  596. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  597. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +62 -60
  598. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  599. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts +2 -0
  600. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts.map +1 -1
  601. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js +10 -10
  602. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  603. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
  604. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
  605. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +2 -1
  606. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  607. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts +3 -2
  608. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts.map +1 -1
  609. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  610. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts +3 -2
  611. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts.map +1 -1
  612. package/dist/components/widgets/query-filter/FacetFilterControls.js +63 -62
  613. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  614. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.d.ts.map +1 -1
  615. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js +30 -29
  616. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  617. package/dist/components/widgets/query-filter/RangeFacetFilter.js +5 -5
  618. package/dist/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
  619. package/dist/features/curator/dashboard/components/NextStepButton.js +7 -6
  620. package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
  621. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +8 -8
  622. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
  623. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +4 -4
  624. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  625. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +4 -4
  626. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  627. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
  628. package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
  629. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +4 -4
  630. package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
  631. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +1 -1
  632. package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -1
  633. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +1 -1
  634. package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -1
  635. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +10 -10
  636. package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -1
  637. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js +1 -1
  638. package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
  639. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts +53 -0
  640. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts.map +1 -0
  641. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js +391 -0
  642. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js.map +1 -0
  643. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts +41 -0
  644. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts.map +1 -0
  645. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js +379 -0
  646. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js.map +1 -0
  647. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts +26 -0
  648. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts.map +1 -0
  649. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js +112 -0
  650. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js.map +1 -0
  651. package/dist/mocks/mockAnnotationColumns.d.ts.map +1 -1
  652. package/dist/mocks/mockAnnotationColumns.js +1 -1
  653. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  654. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +17 -0
  655. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  656. package/dist/mocks/msw/handlers/aridhiaHandlers.js +62 -42
  657. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  658. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +21 -2
  659. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
  660. package/dist/mocks/msw/handlers/asyncJobHandlers.js +30 -22
  661. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  662. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts +27 -0
  663. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts.map +1 -0
  664. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js +158 -0
  665. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js.map +1 -0
  666. package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
  667. package/dist/mocks/msw/handlers/entityHandlers.js +70 -67
  668. package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
  669. package/dist/mocks/msw/handlers/gridHandlers.js +2 -2
  670. package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
  671. package/dist/mocks/msw/handlers/subscriptionHandlers.js +1 -1
  672. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  673. package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
  674. package/dist/mocks/msw/handlers/userProfileHandlers.js +2 -2
  675. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  676. package/dist/mocks/msw/server.d.ts.map +1 -1
  677. package/dist/mocks/msw/server.js +4 -2
  678. package/dist/mocks/msw/server.js.map +1 -1
  679. package/dist/mocks/query/mockColumnCategoryTable.d.ts +19 -0
  680. package/dist/mocks/query/mockColumnCategoryTable.d.ts.map +1 -0
  681. package/dist/mocks/query/mockColumnCategoryTable.js +188 -0
  682. package/dist/mocks/query/mockColumnCategoryTable.js.map +1 -0
  683. package/dist/stories/ColorPaletteInspector.d.ts.map +1 -1
  684. package/dist/stories/ColorPaletteInspector.js +2 -2
  685. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  686. package/dist/style/components/facet_nav/_facet-nav-panel.scss +8 -0
  687. package/dist/style/main.css +1 -1
  688. package/dist/synapse-queries/auth/useOIDC.js +2 -2
  689. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  690. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +2 -2
  691. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -1
  692. package/dist/synapse-queries/challenge/useChallenge.js +2 -2
  693. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  694. package/dist/synapse-queries/chat/useChat.js +8 -8
  695. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  696. package/dist/synapse-queries/curation/task/useCurationTask.js +10 -10
  697. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  698. package/dist/synapse-queries/dataaccess/useAccessRequirements.js +24 -24
  699. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  700. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js +4 -4
  701. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  702. package/dist/synapse-queries/dataaccess/useEDuc.js +6 -6
  703. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  704. package/dist/synapse-queries/dataaccess/useFormTemplate.js +4 -4
  705. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
  706. package/dist/synapse-queries/download/index.js +2 -2
  707. package/dist/synapse-queries/download/useDownloadList.d.ts +5 -0
  708. package/dist/synapse-queries/download/useDownloadList.d.ts.map +1 -1
  709. package/dist/synapse-queries/download/useDownloadList.js +14 -13
  710. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  711. package/dist/synapse-queries/entity/useEntity.d.ts.map +1 -1
  712. package/dist/synapse-queries/entity/useEntity.js +20 -20
  713. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  714. package/dist/synapse-queries/entity/useExportToADWorkbench.d.ts.map +1 -1
  715. package/dist/synapse-queries/entity/useExportToADWorkbench.js +2 -1
  716. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  717. package/dist/synapse-queries/entity/useExportToCavatica.d.ts.map +1 -1
  718. package/dist/synapse-queries/entity/useExportToCavatica.js +3 -2
  719. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  720. package/dist/synapse-queries/entity/useExportToPluto.d.ts.map +1 -1
  721. package/dist/synapse-queries/entity/useExportToPluto.js +2 -1
  722. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  723. package/dist/synapse-queries/entity/useGetQueryResultBundle.d.ts.map +1 -1
  724. package/dist/synapse-queries/entity/useGetQueryResultBundle.js +4 -7
  725. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  726. package/dist/synapse-queries/forum/useReply.js +6 -6
  727. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  728. package/dist/synapse-queries/forum/useThread.js +14 -14
  729. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  730. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  731. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  732. package/dist/synapse-queries/grid/useGridSession.js +4 -4
  733. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  734. package/dist/synapse-queries/index.js +177 -176
  735. package/dist/synapse-queries/oauth/useOAuthClient.js +9 -9
  736. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  737. package/dist/synapse-queries/portal/usePortal.js +7 -7
  738. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  739. package/dist/synapse-queries/subscription/useSubscription.js +4 -4
  740. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  741. package/dist/synapse-queries/table/useTableUpdateTransaction.js +2 -2
  742. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  743. package/dist/synapse-queries/team/useTeam.js +2 -2
  744. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  745. package/dist/synapse-queries/team/useTeamList.d.ts.map +1 -1
  746. package/dist/synapse-queries/team/useTeamList.js +3 -3
  747. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  748. package/dist/synapse-queries/team/useTeamMembers.js +8 -8
  749. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  750. package/dist/synapse-queries/termsOfService/useTermsOfService.js +2 -2
  751. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  752. package/dist/synapse-queries/trash/useTrashCan.js +4 -4
  753. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  754. package/dist/synapse-queries/user/useCertificationQuiz.js +2 -2
  755. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  756. package/dist/synapse-queries/user/useFavorites.js +4 -4
  757. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  758. package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
  759. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  760. package/dist/synapse-queries/user/useRevokeCertification.js +2 -2
  761. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  762. package/dist/synapse-queries/wiki/useWiki.js +10 -10
  763. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  764. package/dist/theme/DefaultTheme.d.ts.map +1 -1
  765. package/dist/theme/DefaultTheme.js +4 -1
  766. package/dist/theme/DefaultTheme.js.map +1 -1
  767. package/dist/tsconfig.build.tsbuildinfo +1 -1
  768. package/dist/utils/APIConstants.d.ts.map +1 -1
  769. package/dist/utils/APIConstants.js.map +1 -1
  770. package/dist/utils/AppUtils/AppUtils.js +1 -1
  771. package/dist/utils/AppUtils/AppUtils.js.map +1 -1
  772. package/dist/utils/ContentTypeUtils.js +4 -4
  773. package/dist/utils/ContentTypeUtils.js.map +1 -1
  774. package/dist/utils/PermissionLevelToAccessType.js +1 -1
  775. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  776. package/dist/utils/analytics/useGoogleAnalytics.js +1 -1
  777. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  778. package/dist/utils/context/DocumentMetadataContext.js +1 -1
  779. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  780. package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
  781. package/dist/utils/functions/AccessControlListUtils.js +3 -3
  782. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  783. package/dist/utils/functions/ArrayUtils.js +2 -2
  784. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  785. package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
  786. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  787. package/dist/utils/functions/FileHandleUtils.js +1 -1
  788. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  789. package/dist/utils/functions/RegularExpressions.js +1 -1
  790. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  791. package/dist/utils/functions/StringUtils.d.ts.map +1 -1
  792. package/dist/utils/functions/StringUtils.js +1 -2
  793. package/dist/utils/functions/StringUtils.js.map +1 -1
  794. package/dist/utils/functions/deepLinkingUtils.js +2 -2
  795. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  796. package/dist/utils/functions/enumerationFacet.d.ts +26 -0
  797. package/dist/utils/functions/enumerationFacet.d.ts.map +1 -0
  798. package/dist/utils/functions/enumerationFacet.js +27 -0
  799. package/dist/utils/functions/enumerationFacet.js.map +1 -0
  800. package/dist/utils/functions/facetCountUtils.d.ts +12 -0
  801. package/dist/utils/functions/facetCountUtils.d.ts.map +1 -0
  802. package/dist/utils/functions/facetCountUtils.js +9 -0
  803. package/dist/utils/functions/facetCountUtils.js.map +1 -0
  804. package/dist/utils/functions/getEndpoint.js.map +1 -1
  805. package/dist/utils/functions/getUserData.js +1 -1
  806. package/dist/utils/functions/getUserData.js.map +1 -1
  807. package/dist/utils/functions/queryUtils.d.ts +1 -1
  808. package/dist/utils/functions/queryUtils.d.ts.map +1 -1
  809. package/dist/utils/functions/queryUtils.js +26 -22
  810. package/dist/utils/functions/queryUtils.js.map +1 -1
  811. package/dist/utils/functions/testDownloadSpeed.d.ts.map +1 -1
  812. package/dist/utils/functions/testDownloadSpeed.js +17 -26
  813. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  814. package/dist/utils/functions/unCamelCase.js +1 -1
  815. package/dist/utils/functions/unCamelCase.js.map +1 -1
  816. package/dist/utils/hooks/useGetInfoFromIds.js +5 -5
  817. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  818. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js +1 -1
  819. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  820. package/dist/utils/hooks/useLogin.d.ts.map +1 -1
  821. package/dist/utils/hooks/useLogin.js +5 -5
  822. package/dist/utils/hooks/useLogin.js.map +1 -1
  823. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  824. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +6 -0
  825. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -1
  826. package/dist/utils/jsonschema/collectTopLevelProperties.js +1 -1
  827. package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -1
  828. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts +22 -0
  829. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts.map +1 -0
  830. package/dist/utils/jsonschema/getNumberOrEnumInfo.js +39 -0
  831. package/dist/utils/jsonschema/getNumberOrEnumInfo.js.map +1 -0
  832. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts +1 -0
  833. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts.map +1 -1
  834. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js +1 -1
  835. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  836. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts +5 -0
  837. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
  838. package/dist/utils/jsonschema/getSchemaPropertyInfo.js +30 -15
  839. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  840. package/dist/utils/jsonschema/submissionContext.js +2 -2
  841. package/dist/utils/jsonschema/submissionContext.js.map +1 -1
  842. package/package.json +7 -6
@@ -1,11 +1,11 @@
1
- import { SynapseErrorBoundary as e } from "./error/ErrorBanner.js";
2
- import { SkeletonInlineBlock as t } from "./Skeleton/SkeletonInlineBlock.js";
1
+ import { useQueryVisualizationContext as e } from "./QueryVisualizationWrapper/QueryVisualizationContext.js";
2
+ import { SynapseErrorBoundary as t } from "./error/ErrorBanner.js";
3
+ import { SkeletonInlineBlock as n } from "./Skeleton/SkeletonInlineBlock.js";
3
4
  import "./Skeleton/index.js";
4
- import n from "./IconSvg/IconSvg.js";
5
- import { useQueryContext as r } from "./QueryContext/QueryContext.js";
5
+ import r from "./IconSvg/IconSvg.js";
6
+ import { useQueryContext as i } from "./QueryContext/QueryContext.js";
6
7
  import "./QueryContext/index.js";
7
- import { useSuspenseGetQueryMetadata as i } from "./QueryWrapper/useGetQueryMetadata.js";
8
- import { useQueryVisualizationContext as a } from "./QueryVisualizationWrapper/QueryVisualizationContext.js";
8
+ import { useSuspenseGetQueryMetadata as a } from "./QueryWrapper/useGetQueryMetadata.js";
9
9
  import "./QueryVisualizationWrapper/index.js";
10
10
  import "./error/index.js";
11
11
  import o from "./widgets/facet-nav/SelectionCriteriaPills.js";
@@ -13,11 +13,11 @@ import { Suspense as s } from "react";
13
13
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
14
14
  import u from "pluralize";
15
15
  //#region src/components/TotalQueryResults.tsx
16
- function d(e) {
17
- let { style: t, frontText: s, endText: d = "", hideIfUnfiltered: f = !1 } = e, { resetQuery: p, hasResettableFilters: m } = r(), { data: h } = i(), { unitDescription: g } = a(), _ = h?.queryCount, v = m;
16
+ function d(t) {
17
+ let { style: n, frontText: s, endText: d = "", hideIfUnfiltered: f = !1 } = t, { resetQuery: p, hasResettableFilters: m } = i(), { data: h } = a(), { unitDescription: g } = e(), _ = h?.queryCount, v = m;
18
18
  return /* @__PURE__ */ l("div", {
19
19
  className: `TotalQueryResults ${m ? "hasFilters" : ""}`,
20
- style: t,
20
+ style: n,
21
21
  children: [(m || !f) && /* @__PURE__ */ l("div", {
22
22
  className: "TotalQueryResults__topbar",
23
23
  children: [/* @__PURE__ */ l("span", {
@@ -34,7 +34,7 @@ function d(e) {
34
34
  }), v && /* @__PURE__ */ l("a", {
35
35
  onClick: p,
36
36
  className: "TotalQueryResults__topbar__clearall",
37
- children: [/* @__PURE__ */ c(n, { icon: "deleteSweep" }), "Clear all filters"]
37
+ children: [/* @__PURE__ */ c(r, { icon: "deleteSweep" }), "Clear all filters"]
38
38
  })]
39
39
  }), /* @__PURE__ */ c("div", {
40
40
  className: "TotalQueryResults__selections",
@@ -42,10 +42,10 @@ function d(e) {
42
42
  })]
43
43
  });
44
44
  }
45
- function f(n) {
46
- return /* @__PURE__ */ c(e, { children: /* @__PURE__ */ c(s, {
47
- fallback: /* @__PURE__ */ c(t, { width: 100 }),
48
- children: /* @__PURE__ */ c(d, { ...n })
45
+ function f(e) {
46
+ return /* @__PURE__ */ c(t, { children: /* @__PURE__ */ c(s, {
47
+ fallback: /* @__PURE__ */ c(n, { width: 100 }),
48
+ children: /* @__PURE__ */ c(d, { ...e })
49
49
  }) });
50
50
  }
51
51
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/Webhook/WebhookDashboard.tsx"],"names":[],"mappings":"AAgLA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CAwJvC"}
1
+ {"version":3,"file":"WebhookDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/Webhook/WebhookDashboard.tsx"],"names":[],"mappings":"AA8KA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CAwJvC"}
@@ -12,11 +12,11 @@ import { upperFirst as m } from "lodash-es";
12
12
  import { Box as h, Button as g, Link as _, Stack as v, Typography as y, useMediaQuery as b, useTheme as x } from "@mui/material";
13
13
  import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
14
14
  import { SynapseObjectType as T, WebhookVerificationStatus as E } from "@sage-bionetworks/synapse-client";
15
- import { AddCircleTwoTone as D } from "@mui/icons-material";
15
+ import D from "@mui/icons-material/AddCircleTwoTone";
16
16
  import O from "dayjs";
17
17
  import { createColumnHelper as k, getCoreRowModel as A, useReactTable as j } from "@tanstack/react-table";
18
18
  //#region src/components/Webhook/WebhookDashboard.tsx
19
- var M = [E.FAILED, E.REVOKED], N = k();
19
+ var M = new Set([E.FAILED, E.REVOKED]), N = k();
20
20
  function P(i, a, o) {
21
21
  return [
22
22
  N.accessor("id", {
@@ -85,7 +85,7 @@ function P(i, a, o) {
85
85
  },
86
86
  children: "Verify code"
87
87
  }),
88
- M.includes(e.row.original.verificationStatus) && /* @__PURE__ */ C(g, {
88
+ M.has(e.row.original.verificationStatus) && /* @__PURE__ */ C(g, {
89
89
  variant: "outlined",
90
90
  onClick: () => {
91
91
  a(e.row.original);
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookDashboard.js","names":[],"sources":["../../../src/components/Webhook/WebhookDashboard.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport {\n useGetWebhooksInfinite,\n useResendVerificationCode,\n} from '@/synapse-queries/webhook/useWebhook'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport { AddCircleTwoTone } from '@mui/icons-material'\nimport {\n Box,\n Button,\n Link,\n Stack,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport {\n SynapseObjectType,\n Webhook,\n WebhookVerificationStatus,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { upperFirst } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { EntityLink } from '../EntityLink'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport CreateWebhookModal from './CreateWebhookModal'\nimport { WebhookVerificationDialog } from './WebhookVerificationDialog'\n\nconst WEBHOOK_CAN_RESEND_CODE_STATES: WebhookVerificationStatus[] = [\n WebhookVerificationStatus.FAILED,\n WebhookVerificationStatus.REVOKED,\n]\n\nconst columnHelper = createColumnHelper<Webhook>()\n\nfunction getWebhookTableColumns(\n onClickVerifyWebhook: (webhook: Webhook) => void,\n onClickResendVerificationCode: (webhook: Webhook) => void,\n onClickEditWebhook: (webhook: Webhook) => void,\n) {\n return [\n columnHelper.accessor('id', {\n header: 'ID',\n size: 75,\n cell: ctx => ctx.cell.getValue(),\n }),\n columnHelper.display({\n header: 'Object',\n cell: ctx => {\n if (ctx.row.original.objectType === SynapseObjectType.ENTITY) {\n return (\n <>\n <EntityLink entity={ctx.row.original.objectId!} /> (syn\n {ctx.row.original.objectId})\n </>\n )\n }\n return `${ctx.row.original.objectType}: ${ctx.row.original.objectId}`\n },\n }),\n columnHelper.accessor('eventTypes', {\n header: 'Event Type(s)',\n cell: ctx => (\n <Stack>\n {Array.from<string>(ctx.cell.getValue()!)\n .map(s => s.toLowerCase())\n .map(upperFirst)\n .map(val => (\n <span key={val}>{val}</span>\n ))}\n </Stack>\n ),\n }),\n columnHelper.accessor('isEnabled', {\n header: 'Enabled',\n size: 10,\n cell: ctx => (ctx.cell.getValue() ? 'Yes' : 'No'),\n }),\n columnHelper.accessor('createdOn', {\n header: 'Created On',\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n }),\n columnHelper.accessor('modifiedOn', {\n header: 'Modified On',\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n }),\n columnHelper.accessor('verificationStatus', {\n header: 'Verification Status',\n cell: ctx => (\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n gap: 1,\n }}\n >\n {ctx.row.original.verificationStatus === 'PENDING' && (\n // useEffect above will trigger a refetch until this resolves\n <SynapseSpinner size={20} />\n )}\n {ctx.row.original.verificationStatus !==\n WebhookVerificationStatus.PENDING &&\n upperFirst(\n (ctx.row.original.verificationStatus || '')\n .toLowerCase()\n .replaceAll('_', ' '),\n )}\n {ctx.row.original.verificationMsg && (\n <HelpPopover markdownText={ctx.row.original.verificationMsg} />\n )}\n </Stack>\n ),\n }),\n columnHelper.display({\n id: 'actions',\n header: 'Actions',\n size: 10,\n meta: {\n textAlign: 'right',\n },\n cell: ctx => (\n <Stack\n sx={{\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: 2,\n }}\n >\n {ctx.row.original.verificationStatus ===\n WebhookVerificationStatus.CODE_SENT && (\n <Button\n variant={'outlined'}\n onClick={() => {\n onClickVerifyWebhook(ctx.row.original)\n }}\n >\n Verify code\n </Button>\n )}\n\n {WEBHOOK_CAN_RESEND_CODE_STATES.includes(\n ctx.row.original.verificationStatus as WebhookVerificationStatus,\n ) && (\n <Button\n variant={'outlined'}\n onClick={() => {\n onClickResendVerificationCode(ctx.row.original)\n }}\n >\n Resend code\n </Button>\n )}\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={() => {\n onClickEditWebhook(ctx.row.original)\n }}\n >\n Edit\n </Button>\n </Stack>\n ),\n }),\n ]\n}\n\nexport default function WebhookDashboard() {\n const [showCreateModal, setShowCreateModal] = useState(false)\n const [showVerificationDialog, setShowVerificationDialog] = useState(false)\n const [webhookToUpdate, setWebhookToUpdate] = useState<Webhook | undefined>(\n undefined,\n )\n\n const theme = useTheme()\n const hideOptionalColumns = useMediaQuery(theme.breakpoints.down('md'))\n\n const {\n data: infiniteData,\n refetch,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n isLoading,\n } = useGetWebhooksInfinite()\n const webhooks = useMemo(\n () => infiniteData?.pages.flatMap(page => page.page!) ?? [],\n [infiniteData],\n )\n\n // If the Webhook verification status is PENDING, Synapse may not have sent the verification code, or may have not reported a response.\n // Refetch on an interval to check if the verification status has changed.\n useEffect(() => {\n let intervalId: NodeJS.Timeout\n if (webhooks.some(webhook => webhook.verificationStatus === 'PENDING')) {\n intervalId = setInterval(() => {\n void refetch()\n }, 2500)\n }\n return () => clearInterval(intervalId)\n }, [refetch, webhooks])\n\n const { mutate: resendVerificationCode } = useResendVerificationCode()\n\n const onClickVerifyWebhook = useCallback((webhook: Webhook) => {\n setWebhookToUpdate(webhook)\n setShowVerificationDialog(true)\n }, [])\n const onClickEditWebhook = useCallback((webhook: Webhook) => {\n setWebhookToUpdate(webhook)\n setShowCreateModal(true)\n }, [])\n const onClickResendVerificationCode = useCallback(\n (webhook: Webhook) => {\n resendVerificationCode(webhook.id!)\n },\n [resendVerificationCode],\n )\n\n const columns = useMemo(\n () =>\n getWebhookTableColumns(\n onClickVerifyWebhook,\n onClickResendVerificationCode,\n onClickEditWebhook,\n ),\n [onClickEditWebhook, onClickResendVerificationCode, onClickVerifyWebhook],\n )\n\n const webhookTable = useReactTable<Webhook>({\n data: webhooks,\n columns: columns,\n state: {\n columnVisibility: {\n createdOn: !hideOptionalColumns,\n modifiedOn: !hideOptionalColumns,\n },\n },\n getCoreRowModel: getCoreRowModel(),\n })\n\n const isEmpty = !isLoading && webhookTable.getRowModel().rows.length === 0\n\n return (\n <div>\n <WebhookVerificationDialog\n key={webhookToUpdate?.id}\n open={showVerificationDialog}\n onClose={() => setShowVerificationDialog(false)}\n webhookId={webhookToUpdate?.id!}\n />\n <Typography variant={'headline3'}>Webhook Dashboard</Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n my: 2,\n gap: 3,\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n }}\n >\n <div>\n <Typography variant={'body1'} gutterBottom>\n Webhooks can be used to programmatically receive alerts that are\n triggered by events in Synapse. A webhook can specify a Synapse\n entity to receive events related to that entity. For entities that\n represent a container (folder and project), matching events are\n published to the webhook endpoint for any entity in its hierarchy.\n </Typography>\n <Typography variant={'body1'} gutterBottom>\n For more information, see the{' '}\n <Link\n href={\n 'http://dev.release.rest.doc.sagebase.org.s3-website-us-east-1.amazonaws.com/index.html#org.sagebionetworks.repo.web.controller.WebhookController'\n }\n target={'blank'}\n >\n Synapse API REST Docs section on Webhooks\n </Link>\n .\n </Typography>\n </div>\n <Button\n size=\"large\"\n variant=\"contained\"\n startIcon={<AddCircleTwoTone />}\n onClick={() => {\n setWebhookToUpdate(undefined)\n setShowCreateModal(true)\n }}\n sx={{ flexShrink: 0 }}\n >\n Create Webhook\n </Button>\n <CreateWebhookModal\n initialData={webhookToUpdate}\n open={showCreateModal}\n onClose={() => setShowCreateModal(false)}\n />\n </Box>\n <InfiniteTableLayout\n table={<StyledTanStackTable table={webhookTable} />}\n isLoading={isLoading}\n noResults={\n <Typography variant=\"body1\">\n You have not created any webhooks. Click &quot;Create Webhook&quot;\n above to begin.\n </Typography>\n }\n isEmpty={isEmpty}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => {\n void fetchNextPage()\n }}\n isFetchingNextPage={isFetchingNextPage}\n />\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAoCA,IAAM,IAA8D,CAClE,EAA0B,QAC1B,EAA0B,OAC5B,GAEM,IAAe,EAA4B;AAEjD,SAAS,EACP,GACA,GACA,GACA;CACA,OAAO;EACL,EAAa,SAAS,MAAM;GAC1B,QAAQ;GACR,MAAM;GACN,OAAM,MAAO,EAAI,KAAK,SAAS;EACjC,CAAC;EACD,EAAa,QAAQ;GACnB,QAAQ;GACR,OAAM,MACA,EAAI,IAAI,SAAS,eAAe,EAAkB,SAElD,kBAAA,GAAA,EAAA,UAAA;IACE,kBAAC,GAAD,EAAY,QAAQ,EAAI,IAAI,SAAS,SAAY,CAAA;IAAC;IACjD,EAAI,IAAI,SAAS;IAAS;GAC3B,EAAA,CAAA,IAGC,GAAG,EAAI,IAAI,SAAS,WAAW,IAAI,EAAI,IAAI,SAAS;EAE/D,CAAC;EACD,EAAa,SAAS,cAAc;GAClC,QAAQ;GACR,OAAM,MACJ,kBAAC,GAAD,EAAA,UACG,MAAM,KAAa,EAAI,KAAK,SAAS,CAAE,EACrC,KAAI,MAAK,EAAE,YAAY,CAAC,EACxB,IAAI,CAAU,EACd,KAAI,MACH,kBAAC,QAAD,EAAA,UAAiB,EAAU,GAAhB,CAAgB,CAC5B,EACE,CAAA;EAEX,CAAC;EACD,EAAa,SAAS,aAAa;GACjC,QAAQ;GACR,MAAM;GACN,OAAM,MAAQ,EAAI,KAAK,SAAS,IAAI,QAAQ;EAC9C,CAAC;EACD,EAAa,SAAS,aAAa;GACjC,QAAQ;GACR,OAAO,EAAE,kBAAe,EAAW,EAAM,EAAS,CAAC,CAAC;EACtD,CAAC;EACD,EAAa,SAAS,cAAc;GAClC,QAAQ;GACR,OAAO,EAAE,kBAAe,EAAW,EAAM,EAAS,CAAC,CAAC;EACtD,CAAC;EACD,EAAa,SAAS,sBAAsB;GAC1C,QAAQ;GACR,OAAM,MACJ,kBAAC,GAAD;IACE,IAAI;KACF,eAAe;KACf,YAAY;KACZ,KAAK;IACP;cALF;KAOG,EAAI,IAAI,SAAS,uBAAuB,aAEvC,kBAAC,GAAD,EAAgB,MAAM,GAAK,CAAA;KAE5B,EAAI,IAAI,SAAS,uBAChB,EAA0B,WAC1B,GACG,EAAI,IAAI,SAAS,sBAAsB,IACrC,YAAY,EACZ,WAAW,KAAK,GAAG,CACxB;KACD,EAAI,IAAI,SAAS,mBAChB,kBAAC,GAAD,EAAa,cAAc,EAAI,IAAI,SAAS,gBAAkB,CAAA;IAE3D;;EAEX,CAAC;EACD,EAAa,QAAQ;GACnB,IAAI;GACJ,QAAQ;GACR,MAAM;GACN,MAAM,EACJ,WAAW,QACb;GACA,OAAM,MACJ,kBAAC,GAAD;IACE,IAAI;KACF,eAAe;KACf,gBAAgB;KAChB,YAAY;KACZ,KAAK;IACP;cANF;KAQG,EAAI,IAAI,SAAS,uBAChB,EAA0B,aAC1B,kBAAC,GAAD;MACE,SAAS;MACT,eAAe;OACb,EAAqB,EAAI,IAAI,QAAQ;MACvC;gBACD;KAEO,CAAA;KAGT,EAA+B,SAC9B,EAAI,IAAI,SAAS,kBACnB,KACE,kBAAC,GAAD;MACE,SAAS;MACT,eAAe;OACb,EAA8B,EAAI,IAAI,QAAQ;MAChD;gBACD;KAEO,CAAA;KAEV,kBAAC,GAAD;MACE,MAAK;MACL,SAAQ;MACR,eAAe;OACb,EAAmB,EAAI,IAAI,QAAQ;MACrC;gBACD;KAEO,CAAA;IACH;;EAEX,CAAC;CACH;AACF;AAEA,SAAwB,IAAmB;CACzC,IAAM,CAAC,GAAiB,KAAsB,EAAS,EAAK,GACtD,CAAC,GAAwB,KAA6B,EAAS,EAAK,GACpE,CAAC,GAAiB,KAAsB,EAC5C,KAAA,CACF,GAGM,IAAsB,EADd,EAC4B,EAAM,YAAY,KAAK,IAAI,CAAC,GAEhE,EACJ,MAAM,GACN,YACA,gBACA,kBACA,uBACA,iBACE,EAAuB,GACrB,IAAW,QACT,GAAc,MAAM,SAAQ,MAAQ,EAAK,IAAK,KAAK,CAAC,GAC1D,CAAC,CAAY,CACf;CAIA,QAAgB;EACd,IAAI;EAMJ,OALI,EAAS,MAAK,MAAW,EAAQ,uBAAuB,SAAS,MACnE,IAAa,kBAAkB;GAC7B,EAAa;EACf,GAAG,IAAI,UAEI,cAAc,CAAU;CACvC,GAAG,CAAC,GAAS,CAAQ,CAAC;CAEtB,IAAM,EAAE,QAAQ,MAA2B,EAA0B,GAE/D,IAAuB,GAAa,MAAqB;EAE7D,AADA,EAAmB,CAAO,GAC1B,EAA0B,EAAI;CAChC,GAAG,CAAC,CAAC,GACC,IAAqB,GAAa,MAAqB;EAE3D,AADA,EAAmB,CAAO,GAC1B,EAAmB,EAAI;CACzB,GAAG,CAAC,CAAC,GACC,IAAgC,GACnC,MAAqB;EACpB,EAAuB,EAAQ,EAAG;CACpC,GACA,CAAC,CAAsB,CACzB,GAYM,IAAe,EAAuB;EAC1C,MAAM;EACG,SAZK,QAEZ,EACE,GACA,GACA,CACF,GACF;GAAC;GAAoB;GAA+B;EAAoB,CAK/D;EACT,OAAO,EACL,kBAAkB;GAChB,WAAW,CAAC;GACZ,YAAY,CAAC;EACf,EACF;EACA,iBAAiB,EAAgB;CACnC,CAAC,GAEK,IAAU,CAAC,KAAa,EAAa,YAAY,EAAE,KAAK,WAAW;CAEzE,OACE,kBAAC,OAAD,EAAA,UAAA;EACE,kBAAC,GAAD;GAEE,MAAM;GACN,eAAe,EAA0B,EAAK;GAC9C,WAAW,GAAiB;EAC7B,GAJM,GAAiB,EAIvB;EACD,kBAAC,GAAD;GAAY,SAAS;aAAa;EAA6B,CAAA;EAC/D,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,eAAe;IACf,IAAI;IACJ,KAAK;IACL,gBAAgB;IAChB,YAAY;GACd;aARF;IAUE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,GAAD;KAAY,SAAS;KAAS,cAAA;eAAa;IAM/B,CAAA,GACZ,kBAAC,GAAD;KAAY,SAAS;KAAS,cAAA;eAA9B;MAA2C;MACX;MAC9B,kBAAC,GAAD;OACE,MACE;OAEF,QAAQ;iBACT;MAEK,CAAA;MAAC;KAEG;MACT,EAAA,CAAA;IACL,kBAAC,GAAD;KACE,MAAK;KACL,SAAQ;KACR,WAAW,kBAAC,GAAD,CAAmB,CAAA;KAC9B,eAAe;MAEb,AADA,EAAmB,KAAA,CAAS,GAC5B,EAAmB,EAAI;KACzB;KACA,IAAI,EAAE,YAAY,EAAE;eACrB;IAEO,CAAA;IACR,kBAAC,GAAD;KACE,aAAa;KACb,MAAM;KACN,eAAe,EAAmB,EAAK;IACxC,CAAA;GACE;;EACL,kBAAC,GAAD;GACE,OAAO,kBAAC,GAAD,EAAqB,OAAO,EAAe,CAAA;GACvC;GACX,WACE,kBAAC,GAAD;IAAY,SAAQ;cAAQ;GAGhB,CAAA;GAEL;GACI;GACb,8BAA8B;IAC5B,EAAmB;GACrB;GACoB;EACrB,CAAA;CACE,EAAA,CAAA;AAET"}
1
+ {"version":3,"file":"WebhookDashboard.js","names":[],"sources":["../../../src/components/Webhook/WebhookDashboard.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport {\n useGetWebhooksInfinite,\n useResendVerificationCode,\n} from '@/synapse-queries/webhook/useWebhook'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport AddCircleTwoTone from '@mui/icons-material/AddCircleTwoTone'\nimport {\n Box,\n Button,\n Link,\n Stack,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport {\n SynapseObjectType,\n Webhook,\n WebhookVerificationStatus,\n} from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport dayjs from 'dayjs'\nimport { upperFirst } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { EntityLink } from '../EntityLink'\nimport { HelpPopover } from '../HelpPopover/HelpPopover'\nimport { SynapseSpinner } from '../LoadingScreen/LoadingScreen'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport CreateWebhookModal from './CreateWebhookModal'\nimport { WebhookVerificationDialog } from './WebhookVerificationDialog'\n\nconst WEBHOOK_CAN_RESEND_CODE_STATES: ReadonlySet<WebhookVerificationStatus> =\n new Set([WebhookVerificationStatus.FAILED, WebhookVerificationStatus.REVOKED])\n\nconst columnHelper = createColumnHelper<Webhook>()\n\nfunction getWebhookTableColumns(\n onClickVerifyWebhook: (webhook: Webhook) => void,\n onClickResendVerificationCode: (webhook: Webhook) => void,\n onClickEditWebhook: (webhook: Webhook) => void,\n) {\n return [\n columnHelper.accessor('id', {\n header: 'ID',\n size: 75,\n cell: ctx => ctx.cell.getValue(),\n }),\n columnHelper.display({\n header: 'Object',\n cell: ctx => {\n if (ctx.row.original.objectType === SynapseObjectType.ENTITY) {\n return (\n <>\n <EntityLink entity={ctx.row.original.objectId!} /> (syn\n {ctx.row.original.objectId})\n </>\n )\n }\n return `${ctx.row.original.objectType}: ${ctx.row.original.objectId}`\n },\n }),\n columnHelper.accessor('eventTypes', {\n header: 'Event Type(s)',\n cell: ctx => (\n <Stack>\n {Array.from<string>(ctx.cell.getValue()!)\n .map(s => s.toLowerCase())\n .map(upperFirst)\n .map(val => (\n <span key={val}>{val}</span>\n ))}\n </Stack>\n ),\n }),\n columnHelper.accessor('isEnabled', {\n header: 'Enabled',\n size: 10,\n cell: ctx => (ctx.cell.getValue() ? 'Yes' : 'No'),\n }),\n columnHelper.accessor('createdOn', {\n header: 'Created On',\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n }),\n columnHelper.accessor('modifiedOn', {\n header: 'Modified On',\n cell: ({ getValue }) => formatDate(dayjs(getValue())),\n }),\n columnHelper.accessor('verificationStatus', {\n header: 'Verification Status',\n cell: ctx => (\n <Stack\n sx={{\n flexDirection: 'row',\n alignItems: 'center',\n gap: 1,\n }}\n >\n {ctx.row.original.verificationStatus === 'PENDING' && (\n // useEffect above will trigger a refetch until this resolves\n <SynapseSpinner size={20} />\n )}\n {ctx.row.original.verificationStatus !==\n WebhookVerificationStatus.PENDING &&\n upperFirst(\n (ctx.row.original.verificationStatus || '')\n .toLowerCase()\n .replaceAll('_', ' '),\n )}\n {ctx.row.original.verificationMsg && (\n <HelpPopover markdownText={ctx.row.original.verificationMsg} />\n )}\n </Stack>\n ),\n }),\n columnHelper.display({\n id: 'actions',\n header: 'Actions',\n size: 10,\n meta: {\n textAlign: 'right',\n },\n cell: ctx => (\n <Stack\n sx={{\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: 2,\n }}\n >\n {ctx.row.original.verificationStatus ===\n WebhookVerificationStatus.CODE_SENT && (\n <Button\n variant={'outlined'}\n onClick={() => {\n onClickVerifyWebhook(ctx.row.original)\n }}\n >\n Verify code\n </Button>\n )}\n\n {WEBHOOK_CAN_RESEND_CODE_STATES.has(\n ctx.row.original.verificationStatus as WebhookVerificationStatus,\n ) && (\n <Button\n variant={'outlined'}\n onClick={() => {\n onClickResendVerificationCode(ctx.row.original)\n }}\n >\n Resend code\n </Button>\n )}\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={() => {\n onClickEditWebhook(ctx.row.original)\n }}\n >\n Edit\n </Button>\n </Stack>\n ),\n }),\n ]\n}\n\nexport default function WebhookDashboard() {\n const [showCreateModal, setShowCreateModal] = useState(false)\n const [showVerificationDialog, setShowVerificationDialog] = useState(false)\n const [webhookToUpdate, setWebhookToUpdate] = useState<Webhook | undefined>(\n undefined,\n )\n\n const theme = useTheme()\n const hideOptionalColumns = useMediaQuery(theme.breakpoints.down('md'))\n\n const {\n data: infiniteData,\n refetch,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n isLoading,\n } = useGetWebhooksInfinite()\n const webhooks = useMemo(\n () => infiniteData?.pages.flatMap(page => page.page!) ?? [],\n [infiniteData],\n )\n\n // If the Webhook verification status is PENDING, Synapse may not have sent the verification code, or may have not reported a response.\n // Refetch on an interval to check if the verification status has changed.\n useEffect(() => {\n let intervalId: NodeJS.Timeout\n if (webhooks.some(webhook => webhook.verificationStatus === 'PENDING')) {\n intervalId = setInterval(() => {\n void refetch()\n }, 2500)\n }\n return () => clearInterval(intervalId)\n }, [refetch, webhooks])\n\n const { mutate: resendVerificationCode } = useResendVerificationCode()\n\n const onClickVerifyWebhook = useCallback((webhook: Webhook) => {\n setWebhookToUpdate(webhook)\n setShowVerificationDialog(true)\n }, [])\n const onClickEditWebhook = useCallback((webhook: Webhook) => {\n setWebhookToUpdate(webhook)\n setShowCreateModal(true)\n }, [])\n const onClickResendVerificationCode = useCallback(\n (webhook: Webhook) => {\n resendVerificationCode(webhook.id!)\n },\n [resendVerificationCode],\n )\n\n const columns = useMemo(\n () =>\n getWebhookTableColumns(\n onClickVerifyWebhook,\n onClickResendVerificationCode,\n onClickEditWebhook,\n ),\n [onClickEditWebhook, onClickResendVerificationCode, onClickVerifyWebhook],\n )\n\n const webhookTable = useReactTable<Webhook>({\n data: webhooks,\n columns: columns,\n state: {\n columnVisibility: {\n createdOn: !hideOptionalColumns,\n modifiedOn: !hideOptionalColumns,\n },\n },\n getCoreRowModel: getCoreRowModel(),\n })\n\n const isEmpty = !isLoading && webhookTable.getRowModel().rows.length === 0\n\n return (\n <div>\n <WebhookVerificationDialog\n key={webhookToUpdate?.id}\n open={showVerificationDialog}\n onClose={() => setShowVerificationDialog(false)}\n webhookId={webhookToUpdate?.id!}\n />\n <Typography variant={'headline3'}>Webhook Dashboard</Typography>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n my: 2,\n gap: 3,\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n }}\n >\n <div>\n <Typography variant={'body1'} gutterBottom>\n Webhooks can be used to programmatically receive alerts that are\n triggered by events in Synapse. A webhook can specify a Synapse\n entity to receive events related to that entity. For entities that\n represent a container (folder and project), matching events are\n published to the webhook endpoint for any entity in its hierarchy.\n </Typography>\n <Typography variant={'body1'} gutterBottom>\n For more information, see the{' '}\n <Link\n href={\n 'http://dev.release.rest.doc.sagebase.org.s3-website-us-east-1.amazonaws.com/index.html#org.sagebionetworks.repo.web.controller.WebhookController'\n }\n target={'blank'}\n >\n Synapse API REST Docs section on Webhooks\n </Link>\n .\n </Typography>\n </div>\n <Button\n size=\"large\"\n variant=\"contained\"\n startIcon={<AddCircleTwoTone />}\n onClick={() => {\n setWebhookToUpdate(undefined)\n setShowCreateModal(true)\n }}\n sx={{ flexShrink: 0 }}\n >\n Create Webhook\n </Button>\n <CreateWebhookModal\n initialData={webhookToUpdate}\n open={showCreateModal}\n onClose={() => setShowCreateModal(false)}\n />\n </Box>\n <InfiniteTableLayout\n table={<StyledTanStackTable table={webhookTable} />}\n isLoading={isLoading}\n noResults={\n <Typography variant=\"body1\">\n You have not created any webhooks. Click &quot;Create Webhook&quot;\n above to begin.\n </Typography>\n }\n isEmpty={isEmpty}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => {\n void fetchNextPage()\n }}\n isFetchingNextPage={isFetchingNextPage}\n />\n </div>\n )\n}\n"],"mappings":"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"}
@@ -9,13 +9,13 @@ import { omitBy as u } from "lodash-es";
9
9
  import { Grid as d, InputAdornment as f, TextField as p, Typography as m } from "@mui/material";
10
10
  import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
11
11
  import { EntityType as v } from "@sage-bionetworks/synapse-client";
12
- import { SearchOutlined as y } from "@mui/icons-material";
13
- import { useLocation as b, useNavigate as x } from "react-router";
12
+ import { useLocation as y, useNavigate as b } from "react-router";
13
+ import x from "@mui/icons-material/SearchOutlined";
14
14
  import { useDebouncedState as S } from "@react-hookz/web";
15
15
  //#region src/components/dataaccess/AccessRequirementDashboard.tsx
16
16
  var C = "nameOrID", w = "relatedProjectId", T = "reviewerId", E = "type";
17
17
  function D(D) {
18
- let { onCreateNewAccessRequirementClicked: O } = D, k = b(), A = c(() => new URLSearchParams(k.search), [k.search]), j = x(), [M, N] = S(A.get("nameOrID") ?? "", 500), [P, F] = S(A.get("relatedProjectId") ?? void 0, 500), [I, L] = S(A.get("reviewerId") ?? void 0, 500), [R, z] = l(A.get("type") ?? void 0), B = c(() => !!(P && !e.exec(P)), [P]), [V, H] = l(!1);
18
+ let { onCreateNewAccessRequirementClicked: O } = D, k = y(), A = c(() => new URLSearchParams(k.search), [k.search]), j = b(), [M, N] = S(A.get("nameOrID") ?? "", 500), [P, F] = S(A.get("relatedProjectId") ?? void 0, 500), [I, L] = S(A.get("reviewerId") ?? void 0, 500), [R, z] = l(A.get("type") ?? void 0), B = c(() => !!(P && !e.exec(P)), [P]), [V, H] = l(!1);
19
19
  s(() => {
20
20
  let e = u({
21
21
  [C]: M,
@@ -82,7 +82,7 @@ function D(D) {
82
82
  },
83
83
  slotProps: { input: { endAdornment: /* @__PURE__ */ g(f, {
84
84
  position: "end",
85
- children: /* @__PURE__ */ g(y, {})
85
+ children: /* @__PURE__ */ g(x, {})
86
86
  }) } }
87
87
  })
88
88
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"AccessRequirementDashboard.js","names":[],"sources":["../../../src/components/dataaccess/AccessRequirementDashboard.tsx"],"sourcesContent":["import { InputSizedButton } from '@/components/styled/InputSizedButton'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { SearchOutlined } from '@mui/icons-material'\nimport { Grid, InputAdornment, TextField, Typography } from '@mui/material'\nimport { useDebouncedState } from '@react-hookz/web'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport { EntityFinderModal } from '../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../EntityFinder/tree/EntityTree'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\nimport { AccessRequirementTable } from './AccessRequirementTable'\n\nexport const AR_NAME_OR_ID_SEARCH_PARAM_KEY = 'nameOrID'\nexport const RELATED_PROJECT_ID_SEARCH_PARAM_KEY = 'relatedProjectId'\nexport const REVIEWER_ID_SEARCH_PARAM_KEY = 'reviewerId'\nexport const AR_TYPE_SEARCH_PARAM_KEY = 'type'\n\nexport type AccessRequirementDashboardProps = {\n onCreateNewAccessRequirementClicked?: () => void\n}\n\nexport function AccessRequirementDashboard(\n props: AccessRequirementDashboardProps,\n) {\n // Amount of time to wait after an input value changes before sending a new request\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { onCreateNewAccessRequirementClicked } = props\n\n const location = useLocation()\n const urlSearchParams = useMemo(\n () => new URLSearchParams(location.search),\n [location.search],\n )\n const navigate = useNavigate()\n\n /**\n * When an input changes, update the props passed to the table and update the search params.\n *\n * Debounced to prevent firing many queries while the user is entering text.\n */\n const [nameOrID, setNameOrID] = useDebouncedState<string>(\n urlSearchParams.get(AR_NAME_OR_ID_SEARCH_PARAM_KEY) ?? '',\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [relatedProjectId, setRelatedProjectId] = useDebouncedState<\n string | undefined\n >(\n urlSearchParams.get(RELATED_PROJECT_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [reviewerId, setReviewerId] = useDebouncedState<string | undefined>(\n urlSearchParams.get(REVIEWER_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [typeFilter, setTypeFilter] = useState<string | undefined>(\n urlSearchParams.get(AR_TYPE_SEARCH_PARAM_KEY) ?? undefined,\n )\n\n const projectFilterFieldIsError: boolean = useMemo(\n () =>\n !!(relatedProjectId && !SYNAPSE_ENTITY_ID_REGEX.exec(relatedProjectId)),\n [relatedProjectId],\n )\n\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n\n // Update the QueryParams when the filter state changes\n useEffect(() => {\n // Don't include undefined/empty parameters\n const params = omitBy(\n {\n // Sync the search params state with the debounced props\n [AR_NAME_OR_ID_SEARCH_PARAM_KEY]: nameOrID,\n [RELATED_PROJECT_ID_SEARCH_PARAM_KEY]: relatedProjectId,\n [REVIEWER_ID_SEARCH_PARAM_KEY]: reviewerId,\n [AR_TYPE_SEARCH_PARAM_KEY]: typeFilter, // typeFilter state is not debounced\n },\n item => item === undefined || item === '',\n ) as Record<string, string>\n\n // Add the new params to the URL\n // Replace history because intuitively, the user has not navigated to a new page\n const paramsObject = new URLSearchParams(params)\n navigate(\n {\n pathname: location.pathname,\n search: paramsObject.toString(),\n },\n { replace: true },\n )\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n typeFilter,\n navigate,\n location.pathname,\n ])\n\n const onReviewerChange = useCallback(\n (selected: string | null) => {\n if (selected) {\n setReviewerId(selected)\n } else {\n setReviewerId(undefined)\n }\n },\n [setReviewerId],\n )\n\n const accessRequirementsPanel = (\n <>\n <EntityFinderModal\n configuration={{\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: null,\n selectMultiple: false,\n selectableTypes: [EntityType.project],\n treeOnly: true,\n }}\n show={showEntityFinder}\n onCancel={() => {\n setShowEntityFinder(false)\n }}\n title={'Select Project to Filter Access Requirements'}\n promptCopy={\n 'Select a project to find Access Requirements that are associated with that project. Access Requirements will be found if the Access Requirement is applied to the project, or if it is applied to any item inside the project.'\n }\n onConfirm={selected => {\n setRelatedProjectId(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n confirmButtonCopy={'Select'}\n />\n <Grid component={'form'} container spacing={2} className=\"InputPanel\">\n <Grid size={{ xs: 12, md: 4 }}>\n <TextField\n label=\"Filter by Access Requirement Name or ID\"\n id=\"ar-name-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Search for an Access Requirement Name or ID\"\n onChange={e => {\n setNameOrID(e.target.value)\n }}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">\n <SearchOutlined />\n </InputAdornment>\n ),\n },\n }}\n />\n </Grid>\n <Grid\n size={{ xs: 12, md: 4 }}\n sx={{\n display: 'flex',\n gap: '5px',\n alignItems: 'stretch',\n }}\n >\n <TextField\n label=\"Filter by Project\"\n id=\"project-id-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Enter a project SynID\"\n error={projectFilterFieldIsError}\n helperText={\n projectFilterFieldIsError\n ? 'Value must be a Synapse ID, e.g. \"syn1234\"'\n : undefined\n }\n onChange={e => {\n const newValue = e.target.value\n if (newValue === '') {\n setRelatedProjectId(undefined)\n } else {\n setRelatedProjectId(newValue)\n }\n }}\n />\n <InputSizedButton\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => {\n setShowEntityFinder(true)\n }}\n >\n Browse\n </InputSizedButton>\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBox\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a username or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n </Grid>\n <AccessRequirementTable\n nameOrID={nameOrID}\n relatedProjectId={relatedProjectId}\n reviewerId={reviewerId}\n onCreateNewAccessRequirementClicked={\n onCreateNewAccessRequirementClicked\n }\n typeFilter={typeFilter}\n onTypeFilterChange={setTypeFilter}\n />\n </>\n )\n\n return (\n <div className=\"AccessRequirementDashboard\">{accessRequirementsPanel}</div>\n )\n}\n\nexport default AccessRequirementDashboard\n"],"mappings":"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"}
1
+ {"version":3,"file":"AccessRequirementDashboard.js","names":[],"sources":["../../../src/components/dataaccess/AccessRequirementDashboard.tsx"],"sourcesContent":["import { InputSizedButton } from '@/components/styled/InputSizedButton'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport SearchOutlined from '@mui/icons-material/SearchOutlined'\nimport { Grid, InputAdornment, TextField, Typography } from '@mui/material'\nimport { useDebouncedState } from '@react-hookz/web'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport { EntityFinderModal } from '../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../EntityFinder/tree/EntityTree'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\nimport { AccessRequirementTable } from './AccessRequirementTable'\n\nexport const AR_NAME_OR_ID_SEARCH_PARAM_KEY = 'nameOrID'\nexport const RELATED_PROJECT_ID_SEARCH_PARAM_KEY = 'relatedProjectId'\nexport const REVIEWER_ID_SEARCH_PARAM_KEY = 'reviewerId'\nexport const AR_TYPE_SEARCH_PARAM_KEY = 'type'\n\nexport type AccessRequirementDashboardProps = {\n onCreateNewAccessRequirementClicked?: () => void\n}\n\nexport function AccessRequirementDashboard(\n props: AccessRequirementDashboardProps,\n) {\n // Amount of time to wait after an input value changes before sending a new request\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { onCreateNewAccessRequirementClicked } = props\n\n const location = useLocation()\n const urlSearchParams = useMemo(\n () => new URLSearchParams(location.search),\n [location.search],\n )\n const navigate = useNavigate()\n\n /**\n * When an input changes, update the props passed to the table and update the search params.\n *\n * Debounced to prevent firing many queries while the user is entering text.\n */\n const [nameOrID, setNameOrID] = useDebouncedState<string>(\n urlSearchParams.get(AR_NAME_OR_ID_SEARCH_PARAM_KEY) ?? '',\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [relatedProjectId, setRelatedProjectId] = useDebouncedState<\n string | undefined\n >(\n urlSearchParams.get(RELATED_PROJECT_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [reviewerId, setReviewerId] = useDebouncedState<string | undefined>(\n urlSearchParams.get(REVIEWER_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [typeFilter, setTypeFilter] = useState<string | undefined>(\n urlSearchParams.get(AR_TYPE_SEARCH_PARAM_KEY) ?? undefined,\n )\n\n const projectFilterFieldIsError: boolean = useMemo(\n () =>\n !!(relatedProjectId && !SYNAPSE_ENTITY_ID_REGEX.exec(relatedProjectId)),\n [relatedProjectId],\n )\n\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n\n // Update the QueryParams when the filter state changes\n useEffect(() => {\n // Don't include undefined/empty parameters\n const params = omitBy(\n {\n // Sync the search params state with the debounced props\n [AR_NAME_OR_ID_SEARCH_PARAM_KEY]: nameOrID,\n [RELATED_PROJECT_ID_SEARCH_PARAM_KEY]: relatedProjectId,\n [REVIEWER_ID_SEARCH_PARAM_KEY]: reviewerId,\n [AR_TYPE_SEARCH_PARAM_KEY]: typeFilter, // typeFilter state is not debounced\n },\n item => item === undefined || item === '',\n ) as Record<string, string>\n\n // Add the new params to the URL\n // Replace history because intuitively, the user has not navigated to a new page\n const paramsObject = new URLSearchParams(params)\n navigate(\n {\n pathname: location.pathname,\n search: paramsObject.toString(),\n },\n { replace: true },\n )\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n typeFilter,\n navigate,\n location.pathname,\n ])\n\n const onReviewerChange = useCallback(\n (selected: string | null) => {\n if (selected) {\n setReviewerId(selected)\n } else {\n setReviewerId(undefined)\n }\n },\n [setReviewerId],\n )\n\n const accessRequirementsPanel = (\n <>\n <EntityFinderModal\n configuration={{\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: null,\n selectMultiple: false,\n selectableTypes: [EntityType.project],\n treeOnly: true,\n }}\n show={showEntityFinder}\n onCancel={() => {\n setShowEntityFinder(false)\n }}\n title={'Select Project to Filter Access Requirements'}\n promptCopy={\n 'Select a project to find Access Requirements that are associated with that project. Access Requirements will be found if the Access Requirement is applied to the project, or if it is applied to any item inside the project.'\n }\n onConfirm={selected => {\n setRelatedProjectId(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n confirmButtonCopy={'Select'}\n />\n <Grid component={'form'} container spacing={2} className=\"InputPanel\">\n <Grid size={{ xs: 12, md: 4 }}>\n <TextField\n label=\"Filter by Access Requirement Name or ID\"\n id=\"ar-name-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Search for an Access Requirement Name or ID\"\n onChange={e => {\n setNameOrID(e.target.value)\n }}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">\n <SearchOutlined />\n </InputAdornment>\n ),\n },\n }}\n />\n </Grid>\n <Grid\n size={{ xs: 12, md: 4 }}\n sx={{\n display: 'flex',\n gap: '5px',\n alignItems: 'stretch',\n }}\n >\n <TextField\n label=\"Filter by Project\"\n id=\"project-id-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Enter a project SynID\"\n error={projectFilterFieldIsError}\n helperText={\n projectFilterFieldIsError\n ? 'Value must be a Synapse ID, e.g. \"syn1234\"'\n : undefined\n }\n onChange={e => {\n const newValue = e.target.value\n if (newValue === '') {\n setRelatedProjectId(undefined)\n } else {\n setRelatedProjectId(newValue)\n }\n }}\n />\n <InputSizedButton\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => {\n setShowEntityFinder(true)\n }}\n >\n Browse\n </InputSizedButton>\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBox\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a username or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n </Grid>\n <AccessRequirementTable\n nameOrID={nameOrID}\n relatedProjectId={relatedProjectId}\n reviewerId={reviewerId}\n onCreateNewAccessRequirementClicked={\n onCreateNewAccessRequirementClicked\n }\n typeFilter={typeFilter}\n onTypeFilterChange={setTypeFilter}\n />\n </>\n )\n\n return (\n <div className=\"AccessRequirementDashboard\">{accessRequirementsPanel}</div>\n )\n}\n\nexport default AccessRequirementDashboard\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { useAccessRequirementTable as n } from "./UseAccessRequirementTable.js";
4
4
  import { noop as r } from "lodash-es";
5
5
  import { Button as i, Typography as a } from "@mui/material";
6
6
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
- import { StarTwoTone as c } from "@mui/icons-material";
7
+ import c from "@mui/icons-material/StarTwoTone";
8
8
  //#region src/components/dataaccess/AccessRequirementTable.tsx
9
9
  function l(l) {
10
10
  let { nameOrID: u, relatedProjectId: d, reviewerId: f, accessType: p, onCreateNewAccessRequirementClicked: m, typeFilter: h, onTypeFilterChange: g = r } = l, { table: _, isLoading: v, hasNextPage: y, fetchNextPage: b, isFetchingNextPage: x } = n({
@@ -1 +1 @@
1
- {"version":3,"file":"AccessRequirementTable.js","names":[],"sources":["../../../src/components/dataaccess/AccessRequirementTable.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport { ACCESS_TYPE } from '@sage-bionetworks/synapse-types'\nimport { Button, Typography } from '@mui/material'\nimport { StarTwoTone } from '@mui/icons-material'\nimport { useAccessRequirementTable } from './UseAccessRequirementTable'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport { noop } from 'lodash-es'\n\nexport type AccessRequirementTableProps = {\n nameOrID?: string\n relatedProjectId?: string\n reviewerId?: string\n accessType?: ACCESS_TYPE\n onCreateNewAccessRequirementClicked?: () => void\n typeFilter?: string\n onTypeFilterChange?: (typeFilter: string | undefined) => void\n}\n\nexport function AccessRequirementTable(props: AccessRequirementTableProps) {\n const {\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n onCreateNewAccessRequirementClicked,\n typeFilter,\n onTypeFilterChange = noop,\n } = props\n\n const { table, isLoading, hasNextPage, fetchNextPage, isFetchingNextPage } =\n useAccessRequirementTable({\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n typeFilter,\n onTypeFilterChange,\n })\n\n const isEmpty = !isLoading && table.getRowModel().rows.length === 0\n\n return (\n <div>\n <div className=\"SRC-split\">\n <Typography variant=\"headline3\" style={{ marginBottom: 0 }}>\n Access Requirements\n </Typography>\n {onCreateNewAccessRequirementClicked && (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={onCreateNewAccessRequirementClicked}\n startIcon={<StarTwoTone />}\n >\n New Access Requirement\n </Button>\n )}\n </div>\n <InfiniteTableLayout\n table={\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{ sx: { my: 2 } }}\n />\n }\n isLoading={isLoading}\n isEmpty={isEmpty}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => {\n fetchNextPage()\n }}\n isFetchingNextPage={isFetchingNextPage}\n />\n </div>\n )\n}\n"],"mappings":";;;;;;;;AAkBA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EACJ,aACA,qBACA,eACA,eACA,wCACA,eACA,wBAAqB,MACnB,GAEE,EAAE,UAAO,cAAW,gBAAa,kBAAe,0BACpD,EAA0B;EACxB;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAEG,IAAU,CAAC,KAAa,EAAM,YAAY,EAAE,KAAK,WAAW;CAElE,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD;GAAY,SAAQ;GAAY,OAAO,EAAE,cAAc,EAAE;aAAG;EAEhD,CAAA,GACX,KACC,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,SAAS;GACT,WAAW,kBAAC,GAAD,CAAc,CAAA;aAC1B;EAEO,CAAA,CAEP;KACL,kBAAC,GAAD;EACE,OACE,kBAAC,GAAD;GACS;GACP,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;EAC5C,CAAA;EAEQ;EACF;EACI;EACb,8BAA8B;GAC5B,EAAc;EAChB;EACoB;CACrB,CAAA,CACE,EAAA,CAAA;AAET"}
1
+ {"version":3,"file":"AccessRequirementTable.js","names":[],"sources":["../../../src/components/dataaccess/AccessRequirementTable.tsx"],"sourcesContent":["import InfiniteTableLayout from '@/components/layout/InfiniteTableLayout'\nimport { ACCESS_TYPE } from '@sage-bionetworks/synapse-types'\nimport { Button, Typography } from '@mui/material'\nimport StarTwoTone from '@mui/icons-material/StarTwoTone'\nimport { useAccessRequirementTable } from './UseAccessRequirementTable'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport { noop } from 'lodash-es'\n\nexport type AccessRequirementTableProps = {\n nameOrID?: string\n relatedProjectId?: string\n reviewerId?: string\n accessType?: ACCESS_TYPE\n onCreateNewAccessRequirementClicked?: () => void\n typeFilter?: string\n onTypeFilterChange?: (typeFilter: string | undefined) => void\n}\n\nexport function AccessRequirementTable(props: AccessRequirementTableProps) {\n const {\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n onCreateNewAccessRequirementClicked,\n typeFilter,\n onTypeFilterChange = noop,\n } = props\n\n const { table, isLoading, hasNextPage, fetchNextPage, isFetchingNextPage } =\n useAccessRequirementTable({\n nameOrID,\n relatedProjectId,\n reviewerId,\n accessType,\n typeFilter,\n onTypeFilterChange,\n })\n\n const isEmpty = !isLoading && table.getRowModel().rows.length === 0\n\n return (\n <div>\n <div className=\"SRC-split\">\n <Typography variant=\"headline3\" style={{ marginBottom: 0 }}>\n Access Requirements\n </Typography>\n {onCreateNewAccessRequirementClicked && (\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={onCreateNewAccessRequirementClicked}\n startIcon={<StarTwoTone />}\n >\n New Access Requirement\n </Button>\n )}\n </div>\n <InfiniteTableLayout\n table={\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{ sx: { my: 2 } }}\n />\n }\n isLoading={isLoading}\n isEmpty={isEmpty}\n hasNextPage={hasNextPage}\n onFetchNextPageClicked={() => {\n fetchNextPage()\n }}\n isFetchingNextPage={isFetchingNextPage}\n />\n </div>\n )\n}\n"],"mappings":";;;;;;;;AAkBA,SAAgB,EAAuB,GAAoC;CACzE,IAAM,EACJ,aACA,qBACA,eACA,eACA,wCACA,eACA,wBAAqB,MACnB,GAEE,EAAE,UAAO,cAAW,gBAAa,kBAAe,0BACpD,EAA0B;EACxB;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,GAEG,IAAU,CAAC,KAAa,EAAM,YAAY,EAAE,KAAK,WAAW;CAElE,OACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,GAAD;GAAY,SAAQ;GAAY,OAAO,EAAE,cAAc,EAAE;aAAG;EAEhD,CAAA,GACX,KACC,kBAAC,GAAD;GACE,SAAQ;GACR,OAAM;GACN,SAAS;GACT,WAAW,kBAAC,GAAD,CAAc,CAAA;aAC1B;EAEO,CAAA,CAEP;KACL,kBAAC,GAAD;EACE,OACE,kBAAC,GAAD;GACS;GACP,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;EAC5C,CAAA;EAEQ;EACF;EACI;EACb,8BAA8B;GAC5B,EAAc;EAChB;EACoB;CACrB,CAAA,CACE,EAAA,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"EDucTemplateTable.d.ts","sourceRoot":"","sources":["../../../src/components/dataaccess/EDucTemplateTable.tsx"],"names":[],"mappings":"AAiKA,wBAAgB,iBAAiB,4CAuEhC;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"EDucTemplateTable.d.ts","sourceRoot":"","sources":["../../../src/components/dataaccess/EDucTemplateTable.tsx"],"names":[],"mappings":"AAmKA,wBAAgB,iBAAiB,4CAuEhC;AAED,eAAe,iBAAiB,CAAA"}
@@ -7,11 +7,13 @@ import a from "../TanStackTable/ColumnHeader.js";
7
7
  import { useEffect as o, useMemo as s, useState as c } from "react";
8
8
  import { Alert as l, Box as u, Button as d, IconButton as f, Skeleton as p, Tooltip as m, Typography as h } from "@mui/material";
9
9
  import { jsx as g, jsxs as _ } from "react/jsx-runtime";
10
- import { CheckCircleTwoTone as v, ErrorTwoTone as y, Replay as b } from "@mui/icons-material";
11
- import x from "dayjs";
12
- import { createColumnHelper as S, getCoreRowModel as C, useReactTable as w } from "@tanstack/react-table";
10
+ import v from "@mui/icons-material/CheckCircleTwoTone";
11
+ import y from "@mui/icons-material/ErrorTwoTone";
12
+ import b from "dayjs";
13
+ import { createColumnHelper as x, getCoreRowModel as S, useReactTable as C } from "@tanstack/react-table";
14
+ import w from "@mui/icons-material/Replay";
13
15
  //#region src/components/dataaccess/EDucTemplateTable.tsx
14
- var T = S(), E = [
16
+ var T = x(), E = [
15
17
  T.accessor("name", {
16
18
  header: (e) => /* @__PURE__ */ g(a, {
17
19
  ...e,
@@ -37,7 +39,7 @@ var T = S(), E = [
37
39
  }),
38
40
  cell: ({ getValue: e }) => {
39
41
  let t = e();
40
- return t ? r(x(t)) : "";
42
+ return t ? r(b(t)) : "";
41
43
  },
42
44
  enableSorting: !1,
43
45
  enableColumnFilter: !1
@@ -49,7 +51,7 @@ var T = S(), E = [
49
51
  }),
50
52
  cell: ({ getValue: e }) => {
51
53
  let t = e();
52
- return t ? r(x(t)) : "";
54
+ return t ? r(b(t)) : "";
53
55
  },
54
56
  enableSorting: !1,
55
57
  enableColumnFilter: !1
@@ -95,7 +97,7 @@ function D(n) {
95
97
  p();
96
98
  },
97
99
  "aria-label": "Re-validate",
98
- children: /* @__PURE__ */ g(b, { fontSize: "small" })
100
+ children: /* @__PURE__ */ g(w, { fontSize: "small" })
99
101
  })
100
102
  })
101
103
  ]
@@ -122,7 +124,7 @@ function D(n) {
122
124
  p();
123
125
  },
124
126
  "aria-label": "Re-validate",
125
- children: /* @__PURE__ */ g(b, { fontSize: "small" })
127
+ children: /* @__PURE__ */ g(w, { fontSize: "small" })
126
128
  })
127
129
  })
128
130
  ]
@@ -150,7 +152,7 @@ function D(n) {
150
152
  p();
151
153
  },
152
154
  "aria-label": "Re-validate",
153
- children: /* @__PURE__ */ g(b, { fontSize: "small" })
155
+ children: /* @__PURE__ */ g(w, { fontSize: "small" })
154
156
  })
155
157
  })
156
158
  ]
@@ -170,10 +172,10 @@ function O() {
170
172
  d,
171
173
  c
172
174
  ]);
173
- let f = s(() => e?.pages.flatMap((e) => e.results ?? []) ?? [], [e]), m = w({
175
+ let f = s(() => e?.pages.flatMap((e) => e.results ?? []) ?? [], [e]), m = C({
174
176
  data: f,
175
177
  columns: E,
176
- getCoreRowModel: C(),
178
+ getCoreRowModel: S(),
177
179
  getRowId: (e) => e.templateId ?? ""
178
180
  });
179
181
  return t || a && f.length === 0 ? /* @__PURE__ */ g(u, { children: /* @__PURE__ */ g(p, {
@@ -1 +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&apos;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&apos;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
+ {"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 from '@mui/icons-material/CheckCircleTwoTone'\nimport ErrorTwoTone from '@mui/icons-material/ErrorTwoTone'\nimport Replay from '@mui/icons-material/Replay'\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&apos;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&apos;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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"}
@@ -5,8 +5,8 @@ import { useMemo as r, useState as i } from "react";
5
5
  import { Alert as a, Box as o, Button as s, Chip as c, FormControlLabel as l, InputAdornment as u, Skeleton as d, Switch as f, TextField as p, Typography as m } from "@mui/material";
6
6
  import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
7
7
  import { keepPreviousData as v } from "@tanstack/react-query";
8
- import { SearchOutlined as y } from "@mui/icons-material";
9
- import { Link as b, useNavigate as x } from "react-router";
8
+ import { Link as y, useNavigate as b } from "react-router";
9
+ import x from "@mui/icons-material/SearchOutlined";
10
10
  import { useDebouncedState as S } from "@react-hookz/web";
11
11
  import { createColumnHelper as C, getCoreRowModel as w, useReactTable as T } from "@tanstack/react-table";
12
12
  //#region src/components/dataaccess/FormTemplateTable.tsx
@@ -16,7 +16,7 @@ var E = "FormTemplates", D = `${E}/new`, O = `${E}/:templateId`, k = `/${E}`, A
16
16
  ...e,
17
17
  title: "Name"
18
18
  }),
19
- cell: ({ row: e, getValue: t }) => e.original.id ? /* @__PURE__ */ g(b, {
19
+ cell: ({ row: e, getValue: t }) => e.original.id ? /* @__PURE__ */ g(y, {
20
20
  to: j(e.original.id),
21
21
  children: t()
22
22
  }) : t(),
@@ -42,7 +42,7 @@ var E = "FormTemplates", D = `${E}/new`, O = `${E}/:templateId`, k = `/${E}`, A
42
42
  })
43
43
  ];
44
44
  function F() {
45
- let n = x(), [c, b] = S("", 500), [C, E] = i(!1), { data: D, isLoading: O, error: k, hasNextPage: j, fetchNextPage: M, isFetchingNextPage: N } = e(r(() => ({
45
+ let n = b(), [c, y] = S("", 500), [C, E] = i(!1), { data: D, isLoading: O, error: k, hasNextPage: j, fetchNextPage: M, isFetchingNextPage: N } = e(r(() => ({
46
46
  name: c || void 0,
47
47
  includeDeprecated: C
48
48
  }), [c, C]), { placeholderData: v }), F = r(() => D?.pages.flatMap((e) => e.results ?? []) ?? [], [D]), I = T({
@@ -93,10 +93,10 @@ function F() {
93
93
  label: "Filter by template name",
94
94
  type: "text",
95
95
  size: "small",
96
- onChange: (e) => b(e.target.value),
96
+ onChange: (e) => y(e.target.value),
97
97
  slotProps: { input: { endAdornment: /* @__PURE__ */ g(u, {
98
98
  position: "end",
99
- children: /* @__PURE__ */ g(y, {})
99
+ children: /* @__PURE__ */ g(x, {})
100
100
  }) } },
101
101
  sx: { minWidth: 300 }
102
102
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"FormTemplateTable.js","names":[],"sources":["../../../src/components/dataaccess/FormTemplateTable.tsx"],"sourcesContent":["import { useSearchFormTemplatesInfinite } from '@/synapse-queries/dataaccess/useFormTemplate'\nimport { SearchOutlined } from '@mui/icons-material'\nimport {\n Alert,\n Box,\n Button,\n Chip,\n FormControlLabel,\n InputAdornment,\n Skeleton,\n Switch,\n TextField,\n Typography,\n} from '@mui/material'\nimport { useDebouncedState } from '@react-hookz/web'\nimport { FormTemplate } from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport { useMemo, useState } from 'react'\nimport { Link, useNavigate } from 'react-router'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport { keepPreviousData } from '@tanstack/react-query'\n\nexport const FORM_TEMPLATES_ROUTE = 'FormTemplates'\nexport const NEW_FORM_TEMPLATE_ROUTE = `${FORM_TEMPLATES_ROUTE}/new`\nexport const FORM_TEMPLATE_ROUTE = `${FORM_TEMPLATES_ROUTE}/:templateId`\nexport const FORM_TEMPLATES_PATH = `/${FORM_TEMPLATES_ROUTE}`\nexport const NEW_FORM_TEMPLATE_PATH = `/${NEW_FORM_TEMPLATE_ROUTE}`\nexport const getFormTemplatePath = (templateId: string) =>\n `${FORM_TEMPLATES_PATH}/${templateId}`\n\n// Time to wait after the search input changes before sending a new request\nexport const NAME_SEARCH_DEBOUNCE_DELAY_MS = 500\n\nconst columnHelper = createColumnHelper<FormTemplate>()\n\nconst columns = [\n columnHelper.accessor('name', {\n header: props => <ColumnHeader {...props} title={'Name'} />,\n cell: ({ row, getValue }) =>\n row.original.id ? (\n <Link to={getFormTemplatePath(row.original.id)}>{getValue()}</Link>\n ) : (\n getValue()\n ),\n enableColumnFilter: false,\n }),\n columnHelper.accessor('versionNumber', {\n header: props => <ColumnHeader {...props} title={'Version'} />,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('deprecated', {\n header: props => <ColumnHeader {...props} title={'Status'} />,\n cell: ({ getValue }) =>\n getValue() ? <Chip label={'Deprecated'} size={'small'} /> : null,\n enableColumnFilter: false,\n }),\n]\n\nexport function FormTemplateTable() {\n const navigate = useNavigate()\n const [name, setName] = useDebouncedState<string>(\n '',\n NAME_SEARCH_DEBOUNCE_DELAY_MS,\n )\n const [includeDeprecated, setIncludeDeprecated] = useState(false)\n\n const request = useMemo(\n () => ({ name: name || undefined, includeDeprecated }),\n [name, includeDeprecated],\n )\n const {\n data,\n isLoading,\n error,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n } = useSearchFormTemplatesInfinite(request, {\n // keepPreviousData avoids a flicker when the request changes\n placeholderData: keepPreviousData,\n })\n\n const templates = useMemo(\n () => data?.pages.flatMap(page => page.results ?? []) ?? [],\n [data],\n )\n\n const table = useReactTable<FormTemplate>({\n data: templates,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getRowId: row => row.id ?? '',\n })\n\n const errorAlert = error && (\n <Alert severity={'error'}>\n <strong>Sorry, we couldn&apos;t load the form templates.</strong>\n <br />\n {error.reason}\n </Alert>\n )\n\n let content\n if (isLoading) {\n content = <Skeleton variant={'rectangular'} height={200} />\n } else if (error && !data) {\n content = errorAlert\n } else if (templates.length === 0) {\n content = (\n <Typography variant={'body1'} sx={{ textAlign: 'center', my: 2 }}>\n No form templates found.\n </Typography>\n )\n } else {\n content = (\n <>\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{ sx: { my: 2 } }}\n />\n {/* A failed \"Load more\" keeps the loaded rows; clicking \"Load more\" again retries */}\n {errorAlert}\n {hasNextPage && (\n <Button\n variant={'outlined'}\n disabled={isFetchingNextPage}\n onClick={() => void fetchNextPage()}\n >\n Load more\n </Button>\n )}\n </>\n )\n }\n\n return (\n <Box>\n <Box\n sx={{\n display: 'flex',\n // The text field's label sits above its input, so align to the bottom to line up with the input\n alignItems: 'flex-end',\n gap: 2,\n flexWrap: 'wrap',\n mb: 2,\n }}\n >\n <TextField\n label={'Filter by template name'}\n type={'text'}\n size={'small'}\n onChange={e => setName(e.target.value)}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position={'end'}>\n <SearchOutlined />\n </InputAdornment>\n ),\n },\n }}\n sx={{ minWidth: 300 }}\n />\n <FormControlLabel\n label={'Include deprecated'}\n // Drop the inherited bottom margin so the switch lines up with the input\n sx={{ mb: 0 }}\n control={\n <Switch\n // The hidden input's default margin overflows the switch and scrolls it when checked\n sx={{ '& .MuiSwitch-input': { m: 0 } }}\n checked={includeDeprecated}\n onChange={e => setIncludeDeprecated(e.target.checked)}\n />\n }\n />\n <Button\n variant={'contained'}\n sx={{ ml: 'auto' }}\n onClick={() => void navigate(NEW_FORM_TEMPLATE_PATH)}\n >\n Create template\n </Button>\n </Box>\n {content}\n </Box>\n )\n}\n\nexport default FormTemplateTable\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormTemplateTable.js","names":[],"sources":["../../../src/components/dataaccess/FormTemplateTable.tsx"],"sourcesContent":["import { useSearchFormTemplatesInfinite } from '@/synapse-queries/dataaccess/useFormTemplate'\nimport SearchOutlined from '@mui/icons-material/SearchOutlined'\nimport {\n Alert,\n Box,\n Button,\n Chip,\n FormControlLabel,\n InputAdornment,\n Skeleton,\n Switch,\n TextField,\n Typography,\n} from '@mui/material'\nimport { useDebouncedState } from '@react-hookz/web'\nimport { FormTemplate } from '@sage-bionetworks/synapse-client'\nimport {\n createColumnHelper,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table'\nimport { useMemo, useState } from 'react'\nimport { Link, useNavigate } from 'react-router'\nimport ColumnHeader from '../TanStackTable/ColumnHeader'\nimport StyledTanStackTable from '../TanStackTable/StyledTanStackTable'\nimport { keepPreviousData } from '@tanstack/react-query'\n\nexport const FORM_TEMPLATES_ROUTE = 'FormTemplates'\nexport const NEW_FORM_TEMPLATE_ROUTE = `${FORM_TEMPLATES_ROUTE}/new`\nexport const FORM_TEMPLATE_ROUTE = `${FORM_TEMPLATES_ROUTE}/:templateId`\nexport const FORM_TEMPLATES_PATH = `/${FORM_TEMPLATES_ROUTE}`\nexport const NEW_FORM_TEMPLATE_PATH = `/${NEW_FORM_TEMPLATE_ROUTE}`\nexport const getFormTemplatePath = (templateId: string) =>\n `${FORM_TEMPLATES_PATH}/${templateId}`\n\n// Time to wait after the search input changes before sending a new request\nexport const NAME_SEARCH_DEBOUNCE_DELAY_MS = 500\n\nconst columnHelper = createColumnHelper<FormTemplate>()\n\nconst columns = [\n columnHelper.accessor('name', {\n header: props => <ColumnHeader {...props} title={'Name'} />,\n cell: ({ row, getValue }) =>\n row.original.id ? (\n <Link to={getFormTemplatePath(row.original.id)}>{getValue()}</Link>\n ) : (\n getValue()\n ),\n enableColumnFilter: false,\n }),\n columnHelper.accessor('versionNumber', {\n header: props => <ColumnHeader {...props} title={'Version'} />,\n enableColumnFilter: false,\n }),\n columnHelper.accessor('deprecated', {\n header: props => <ColumnHeader {...props} title={'Status'} />,\n cell: ({ getValue }) =>\n getValue() ? <Chip label={'Deprecated'} size={'small'} /> : null,\n enableColumnFilter: false,\n }),\n]\n\nexport function FormTemplateTable() {\n const navigate = useNavigate()\n const [name, setName] = useDebouncedState<string>(\n '',\n NAME_SEARCH_DEBOUNCE_DELAY_MS,\n )\n const [includeDeprecated, setIncludeDeprecated] = useState(false)\n\n const request = useMemo(\n () => ({ name: name || undefined, includeDeprecated }),\n [name, includeDeprecated],\n )\n const {\n data,\n isLoading,\n error,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n } = useSearchFormTemplatesInfinite(request, {\n // keepPreviousData avoids a flicker when the request changes\n placeholderData: keepPreviousData,\n })\n\n const templates = useMemo(\n () => data?.pages.flatMap(page => page.results ?? []) ?? [],\n [data],\n )\n\n const table = useReactTable<FormTemplate>({\n data: templates,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getRowId: row => row.id ?? '',\n })\n\n const errorAlert = error && (\n <Alert severity={'error'}>\n <strong>Sorry, we couldn&apos;t load the form templates.</strong>\n <br />\n {error.reason}\n </Alert>\n )\n\n let content\n if (isLoading) {\n content = <Skeleton variant={'rectangular'} height={200} />\n } else if (error && !data) {\n content = errorAlert\n } else if (templates.length === 0) {\n content = (\n <Typography variant={'body1'} sx={{ textAlign: 'center', my: 2 }}>\n No form templates found.\n </Typography>\n )\n } else {\n content = (\n <>\n <StyledTanStackTable\n table={table}\n styledTableContainerProps={{ sx: { my: 2 } }}\n />\n {/* A failed \"Load more\" keeps the loaded rows; clicking \"Load more\" again retries */}\n {errorAlert}\n {hasNextPage && (\n <Button\n variant={'outlined'}\n disabled={isFetchingNextPage}\n onClick={() => void fetchNextPage()}\n >\n Load more\n </Button>\n )}\n </>\n )\n }\n\n return (\n <Box>\n <Box\n sx={{\n display: 'flex',\n // The text field's label sits above its input, so align to the bottom to line up with the input\n alignItems: 'flex-end',\n gap: 2,\n flexWrap: 'wrap',\n mb: 2,\n }}\n >\n <TextField\n label={'Filter by template name'}\n type={'text'}\n size={'small'}\n onChange={e => setName(e.target.value)}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position={'end'}>\n <SearchOutlined />\n </InputAdornment>\n ),\n },\n }}\n sx={{ minWidth: 300 }}\n />\n <FormControlLabel\n label={'Include deprecated'}\n // Drop the inherited bottom margin so the switch lines up with the input\n sx={{ mb: 0 }}\n control={\n <Switch\n // The hidden input's default margin overflows the switch and scrolls it when checked\n sx={{ '& .MuiSwitch-input': { m: 0 } }}\n checked={includeDeprecated}\n onChange={e => setIncludeDeprecated(e.target.checked)}\n />\n }\n />\n <Button\n variant={'contained'}\n sx={{ ml: 'auto' }}\n onClick={() => void navigate(NEW_FORM_TEMPLATE_PATH)}\n >\n Create template\n </Button>\n </Box>\n {content}\n </Box>\n )\n}\n\nexport default FormTemplateTable\n"],"mappings":"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"}
@@ -15,13 +15,13 @@ import _ from "./SubmissionPage/SubmissionPage.js";
15
15
  import { useMemo as v } from "react";
16
16
  import { Box as y, Typography as b } from "@mui/material";
17
17
  import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
18
- import { DynamicFormOutlined as w } from "@mui/icons-material";
19
- import { NavLink as T, Navigate as E, Outlet as D, RouterProvider as O, createBrowserRouter as k, createMemoryRouter as A, useParams as j } from "react-router";
20
- import { RouterProvider as M } from "react-router/dom";
18
+ import { NavLink as w, Navigate as T, Outlet as E, RouterProvider as D, createBrowserRouter as O, createMemoryRouter as k, useParams as A } from "react-router";
19
+ import { RouterProvider as j } from "react-router/dom";
20
+ import M from "@mui/icons-material/DynamicFormOutlined";
21
21
  //#region src/components/dataaccess/ReviewerDashboard.tsx
22
22
  function N(e) {
23
23
  let { href: t, children: n, icon: r } = e;
24
- return /* @__PURE__ */ C(T, {
24
+ return /* @__PURE__ */ C(w, {
25
25
  className: "Tab",
26
26
  role: "tab",
27
27
  to: t,
@@ -39,7 +39,7 @@ function N(e) {
39
39
  });
40
40
  }
41
41
  function P(_) {
42
- let { routerBaseName: y = "/DataAccessManagement:default", useMemoryRouter: b = !1 } = _, { data: T, isLoading: E } = r(), j = T?.isACTMember, P = T?.isACTMember || T?.isARReviewer, I = n(o.ACT_DASHBOARD_FORM_TEMPLATES), L = j && I, R = v(() => [{
42
+ let { routerBaseName: y = "/DataAccessManagement:default", useMemoryRouter: b = !1 } = _, { data: w, isLoading: T } = r(), A = w?.isACTMember, P = w?.isACTMember || w?.isARReviewer, I = n(o.ACT_DASHBOARD_FORM_TEMPLATES), L = A && I, R = v(() => [{
43
43
  path: "/",
44
44
  element: /* @__PURE__ */ C("div", {
45
45
  className: "ReviewerDashboard",
@@ -47,19 +47,19 @@ function P(_) {
47
47
  className: "Tabs",
48
48
  role: "tablist",
49
49
  children: [
50
- j && /* @__PURE__ */ S(N, {
50
+ A && /* @__PURE__ */ S(N, {
51
51
  href: "/AccessRequirements",
52
52
  icon: /* @__PURE__ */ S(i, { icon: "accessClosed" }),
53
53
  children: "Access Requirements"
54
54
  }),
55
- j && /* @__PURE__ */ S(N, {
55
+ A && /* @__PURE__ */ S(N, {
56
56
  href: "/EDucTemplates",
57
57
  icon: /* @__PURE__ */ S(i, { icon: "fileOutlined" }),
58
58
  children: "eDUC Templates"
59
59
  }),
60
60
  L && /* @__PURE__ */ S(N, {
61
61
  href: d,
62
- icon: /* @__PURE__ */ S(w, {}),
62
+ icon: /* @__PURE__ */ S(M, {}),
63
63
  children: "Form Templates"
64
64
  }),
65
65
  P && /* @__PURE__ */ S(N, {
@@ -75,17 +75,17 @@ function P(_) {
75
75
  ]
76
76
  }), /* @__PURE__ */ S("div", {
77
77
  className: "TabContentContainer",
78
- children: /* @__PURE__ */ S(e, { children: /* @__PURE__ */ S(D, {}) })
78
+ children: /* @__PURE__ */ S(e, { children: /* @__PURE__ */ S(E, {}) })
79
79
  })]
80
80
  }),
81
81
  children: [
82
82
  {
83
83
  path: "AccessRequirements",
84
- element: j ? /* @__PURE__ */ S(c, {}) : null
84
+ element: A ? /* @__PURE__ */ S(c, {}) : null
85
85
  },
86
86
  {
87
87
  path: "EDucTemplates",
88
- element: j ? /* @__PURE__ */ S(u, {}) : null
88
+ element: A ? /* @__PURE__ */ S(u, {}) : null
89
89
  },
90
90
  {
91
91
  path: f,
@@ -101,7 +101,7 @@ function P(_) {
101
101
  },
102
102
  {
103
103
  path: "Submissions",
104
- element: P ? /* @__PURE__ */ C(x, { children: [!j && /* @__PURE__ */ S(a, {
104
+ element: P ? /* @__PURE__ */ C(x, { children: [!A && /* @__PURE__ */ S(a, {
105
105
  name: "DataAccessManagement",
106
106
  title: "Getting Started With Data Access Management",
107
107
  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.",
@@ -121,22 +121,22 @@ function P(_) {
121
121
  }
122
122
  ]
123
123
  }], [
124
- j,
124
+ A,
125
125
  P,
126
126
  L
127
- ]), z = v(() => b ? A(R, { basename: y }) : k(R, { basename: y }), [
127
+ ]), z = v(() => b ? k(R, { basename: y }) : O(R, { basename: y }), [
128
128
  b,
129
129
  R,
130
130
  y
131
131
  ]);
132
- return E ? /* @__PURE__ */ S(t, { size: 50 }) : S(b ? O : M, { router: z });
132
+ return T ? /* @__PURE__ */ S(t, { size: 50 }) : S(b ? D : j, { router: z });
133
133
  }
134
134
  function F() {
135
- let { id: e } = j();
135
+ let { id: e } = A();
136
136
  return e ? /* @__PURE__ */ S(_, {
137
137
  submissionId: e,
138
138
  isReviewer: !0
139
- }) : /* @__PURE__ */ S(E, { to: "Submissions/" });
139
+ }) : /* @__PURE__ */ S(T, { to: "Submissions/" });
140
140
  }
141
141
  //#endregion
142
142
  export { P as ReviewerDashboard, P as default };