synapse-react-client 4.0.17 → 4.0.19

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 (297) hide show
  1. package/README.md +5 -3
  2. package/dist/SWC.index.d.ts +2 -0
  3. package/dist/SWC.index.d.ts.map +1 -1
  4. package/dist/SWC.index.js +3 -1
  5. package/dist/SWC.index.js.map +1 -1
  6. package/dist/assets/homepage/BlinkingLiveIcon.d.ts +1 -1
  7. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.d.ts.map +1 -1
  8. package/dist/components/AccessRequirementAclEditor/AccessRequirementAclEditor.js.map +1 -1
  9. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  10. package/dist/components/AccessRequirementList/RequirementItem/CertificationRequirement.js.map +1 -1
  11. package/dist/components/AccessRequirementList/RequirementItem/SelfSignAccessRequirementItem.js.map +1 -1
  12. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  13. package/dist/components/AccessRequirementList/RequirementItem/ValidationRequirement.js.map +1 -1
  14. package/dist/components/AccessTokenPage/CreateAccessTokenModal.d.ts.map +1 -1
  15. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +56 -54
  16. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  17. package/dist/components/Authentication/PasswordField.d.ts +1 -1
  18. package/dist/components/Authentication/PasswordField.d.ts.map +1 -1
  19. package/dist/components/Authentication/PasswordField.js.map +1 -1
  20. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  21. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +1 -2
  22. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  23. package/dist/components/Authentication/UsernamePasswordForm.d.ts.map +1 -1
  24. package/dist/components/Authentication/UsernamePasswordForm.js +32 -29
  25. package/dist/components/Authentication/UsernamePasswordForm.js.map +1 -1
  26. package/dist/components/CardContainer/CardLink.d.ts +2 -2
  27. package/dist/components/CardContainer/CardLink.d.ts.map +1 -1
  28. package/dist/components/CardDeck/CardDeckCardProps.d.ts.map +1 -1
  29. package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
  30. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.d.ts.map +1 -1
  31. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +106 -103
  32. package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
  33. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.d.ts.map +1 -1
  34. package/dist/components/ChallengeTeamWizard/MembershipRequestForm.js.map +1 -1
  35. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.d.ts.map +1 -1
  36. package/dist/components/ChallengeTeamWizard/useCreateAndRegisterChallengeTeam.js.map +1 -1
  37. package/dist/components/CreateProjectModal/CreateProjectModal.d.ts.map +1 -1
  38. package/dist/components/CreateProjectModal/CreateProjectModal.js +4 -4
  39. package/dist/components/CreateProjectModal/CreateProjectModal.js.map +1 -1
  40. package/dist/components/CreateTableViewWizard/TableNameForm.js +6 -6
  41. package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
  42. package/dist/components/CrispChat/CrispChat.js +4 -4
  43. package/dist/components/CrispChat/CrispChat.js.map +1 -1
  44. package/dist/components/DataExplorer/DataExplorer.css +1 -0
  45. package/dist/components/DataExplorer/DataExplorer.d.ts +13 -0
  46. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -0
  47. package/dist/components/DataExplorer/DataExplorer.js +119 -0
  48. package/dist/components/DataExplorer/DataExplorer.js.map +1 -0
  49. package/dist/components/DataExplorer/DataExplorer.module.js +22 -0
  50. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -0
  51. package/dist/components/DataExplorer/DataExplorer.module.scss +156 -0
  52. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  53. package/dist/components/DataGrid/columns/AutocompleteColumn.js +106 -102
  54. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  55. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
  56. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +97 -89
  57. package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
  58. package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts +19 -8
  59. package/dist/components/DataGrid/columns/useGridAutocompleteState.d.ts.map +1 -1
  60. package/dist/components/DataGrid/columns/useGridAutocompleteState.js +64 -43
  61. package/dist/components/DataGrid/columns/useGridAutocompleteState.js.map +1 -1
  62. package/dist/components/DataGrid/components/UploadCsvToGridDialog.d.ts.map +1 -1
  63. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js +9 -9
  64. package/dist/components/DataGrid/components/UploadCsvToGridDialog.js.map +1 -1
  65. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.d.ts.map +1 -1
  66. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +8 -1
  67. package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js.map +1 -1
  68. package/dist/components/DataGrid/utils/json-rx/JsonRxResponseComplete.js.map +1 -1
  69. package/dist/components/DownloadCart/RequestDownloadCard.js +14 -14
  70. package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
  71. package/dist/components/EntityAclEditor/EntityAclEditor.d.ts.map +1 -1
  72. package/dist/components/EntityAclEditor/EntityAclEditor.js.map +1 -1
  73. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
  74. package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
  75. package/dist/components/EntityCitation/EntityCitationUtils.js.map +1 -1
  76. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  77. package/dist/components/EntityFinder/EntityFinder.js.map +1 -1
  78. package/dist/components/EntityFinder/EntityIdTextField.d.ts +17 -0
  79. package/dist/components/EntityFinder/EntityIdTextField.d.ts.map +1 -0
  80. package/dist/components/EntityFinder/EntityIdTextField.js +35 -0
  81. package/dist/components/EntityFinder/EntityIdTextField.js.map +1 -0
  82. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.d.ts.map +1 -1
  83. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js +22 -16
  84. package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptions.js.map +1 -1
  85. package/dist/components/FeaturedDataTabs/FacetPlotsCardGrid.js.map +1 -1
  86. package/dist/components/Forum/ForumThreadEditor.js.map +1 -1
  87. package/dist/components/FullWidthAlert/FullWidthAlert.d.ts.map +1 -1
  88. package/dist/components/FullWidthAlert/FullWidthAlert.js.map +1 -1
  89. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.d.ts.map +1 -1
  90. package/dist/components/GenericCard/PortalDOI/PortalDOIUtils.js.map +1 -1
  91. package/dist/components/Markdown/widget/MarkdownSynapsePlot.js.map +1 -1
  92. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.d.ts.map +1 -1
  93. package/dist/components/OAuthClientAclEditor/OAuthClientAclEditor.js.map +1 -1
  94. package/dist/components/PortalAclEditor/PortalAclEditor.d.ts.map +1 -1
  95. package/dist/components/PortalAclEditor/PortalAclEditor.js.map +1 -1
  96. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts +1 -1
  97. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts.map +1 -1
  98. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js +1 -1
  99. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  100. package/dist/components/PortalList/CreatePortalModal.d.ts.map +1 -1
  101. package/dist/components/PortalList/CreatePortalModal.js +34 -33
  102. package/dist/components/PortalList/CreatePortalModal.js.map +1 -1
  103. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.d.ts.map +1 -1
  104. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +67 -65
  105. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  106. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -1
  107. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  108. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +1 -0
  109. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  110. package/dist/components/QueryWrapperPlotNav/RowSetView.d.ts.map +1 -1
  111. package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
  112. package/dist/components/Resources/Resources.Desktop.js.map +1 -1
  113. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  114. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts +1 -1
  115. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.d.ts.map +1 -1
  116. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js +1 -0
  117. package/dist/components/SearchQueryWrapperPlotNav/SearchQueryWrapperPlotNav.js.map +1 -1
  118. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.d.ts.map +1 -1
  119. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  120. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.d.ts.map +1 -1
  121. package/dist/components/SetBasicAccessRequirementFields/SetBasicAccessRequirementFields.js.map +1 -1
  122. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
  123. package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
  124. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts +1 -1
  125. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.d.ts.map +1 -1
  126. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js.map +1 -1
  127. package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
  128. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.d.ts.map +1 -1
  129. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
  130. package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js.map +1 -1
  131. package/dist/components/SynapseTable/SearchV2.js.map +1 -1
  132. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  133. package/dist/components/SynapseTable/SynapseTableUtils.d.ts.map +1 -1
  134. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  135. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  136. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +9 -9
  137. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  138. package/dist/components/TableColumnSchemaEditor/ColumnModelFormFields/MultiValueField.js +4 -4
  139. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.d.ts.map +1 -1
  140. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +25 -25
  141. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  142. package/dist/components/TanStackTable/TanStackTableUtils.js.map +1 -1
  143. package/dist/components/TextField/TextField.css +1 -1
  144. package/dist/components/TextField/TextField.d.ts +14 -3
  145. package/dist/components/TextField/TextField.d.ts.map +1 -1
  146. package/dist/components/TextField/TextField.js +41 -43
  147. package/dist/components/TextField/TextField.js.map +1 -1
  148. package/dist/components/TextField/TextField.module.js +3 -4
  149. package/dist/components/TextField/TextField.module.js.map +1 -1
  150. package/dist/components/TextField/TextField.module.scss +18 -10
  151. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.d.ts.map +1 -1
  152. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js +20 -16
  153. package/dist/components/TimelinePlot/TimelinePlotSpeciesSelector.js.map +1 -1
  154. package/dist/components/UserCardList/UserCardList.d.ts.map +1 -1
  155. package/dist/components/UserCardList/UserCardList.js.map +1 -1
  156. package/dist/components/UserCardList/UserCardListGroups/UserCardListGroups.Desktop.js.map +1 -1
  157. package/dist/components/UserOrTeamBadge/useUserOrTeam.js.map +1 -1
  158. package/dist/components/UserSearchBox/UserSearchBox.d.ts.map +1 -1
  159. package/dist/components/UserSearchBox/UserSearchBox.js.map +1 -1
  160. package/dist/components/WikiMarkdownEditorButton/WikiMarkdownEditorButton.js.map +1 -1
  161. package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
  162. package/dist/components/doi/CreateOrUpdateDoiModal.js +13 -13
  163. package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
  164. package/dist/components/entity/page/title_bar/TitleBarProperties.js +23 -23
  165. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +1 -1
  166. package/dist/components/entity/page/title_bar/useGetMentions.js.map +1 -1
  167. package/dist/components/index.js +17 -17
  168. package/dist/components/styled/StyledFormControl.d.ts +15 -0
  169. package/dist/components/styled/StyledFormControl.d.ts.map +1 -1
  170. package/dist/components/styled/StyledFormControl.js +1 -0
  171. package/dist/components/styled/StyledFormControl.js.map +1 -1
  172. package/dist/components/styled/index.js +3 -3
  173. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts +18 -0
  174. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.d.ts.map +1 -0
  175. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js +116 -0
  176. package/dist/components/table/CsvPreview/CreateTableFromCsvDialog.js.map +1 -0
  177. package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts +5 -5
  178. package/dist/components/table/CsvPreview/CsvPreviewDialog.d.ts.map +1 -1
  179. package/dist/components/table/CsvPreview/CsvPreviewDialog.js +27 -76
  180. package/dist/components/table/CsvPreview/CsvPreviewDialog.js.map +1 -1
  181. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts +19 -0
  182. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.d.ts.map +1 -0
  183. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +41 -0
  184. package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js.map +1 -0
  185. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts +12 -0
  186. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.d.ts.map +1 -0
  187. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js +25 -0
  188. package/dist/components/table/CsvPreview/CsvUploadPreviewContent.js.map +1 -0
  189. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts +18 -0
  190. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.d.ts.map +1 -0
  191. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js +55 -0
  192. package/dist/components/table/CsvPreview/UpdateTableWithCsvDialog.js.map +1 -0
  193. package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts +19 -0
  194. package/dist/components/table/CsvPreview/useCreateTableFromCsv.d.ts.map +1 -0
  195. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js +35 -0
  196. package/dist/components/table/CsvPreview/useCreateTableFromCsv.js.map +1 -0
  197. package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts +22 -0
  198. package/dist/components/table/CsvPreview/useCsvUploadPreview.d.ts.map +1 -0
  199. package/dist/components/table/CsvPreview/useCsvUploadPreview.js +32 -0
  200. package/dist/components/table/CsvPreview/useCsvUploadPreview.js.map +1 -0
  201. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts +14 -0
  202. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.d.ts.map +1 -0
  203. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js +23 -0
  204. package/dist/components/table/CsvPreview/useUploadCsvToExistingTable.js.map +1 -0
  205. package/dist/components/utils/ConditionalWrapper.d.ts.map +1 -1
  206. package/dist/components/utils/ConditionalWrapper.js.map +1 -1
  207. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  208. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  209. package/dist/components/widgets/facet-nav/FacetNavPanel.js +69 -62
  210. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  211. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +1 -0
  212. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  213. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +27 -26
  214. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  215. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.d.ts +1 -0
  216. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.d.ts.map +1 -1
  217. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js +2 -1
  218. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterDropdown.js.map +1 -1
  219. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
  220. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
  221. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +44 -43
  222. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  223. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts +13 -0
  224. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -0
  225. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +398 -0
  226. package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -0
  227. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.d.ts.map +1 -1
  228. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +49 -19
  229. package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
  230. package/dist/features/entity/metadata-task/components/MetadataTasksPage.d.ts.map +1 -1
  231. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +49 -25
  232. package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
  233. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts +0 -1
  234. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.d.ts.map +1 -1
  235. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js +20 -22
  236. package/dist/features/entity/metadata-task/hooks/useGridSessionForCurationTask.js.map +1 -1
  237. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
  238. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +25 -27
  239. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  240. package/dist/features/entity/metadata-task/utils/constants.d.ts +29 -0
  241. package/dist/features/entity/metadata-task/utils/constants.d.ts.map +1 -1
  242. package/dist/features/entity/metadata-task/utils/constants.js +2 -2
  243. package/dist/features/entity/metadata-task/utils/constants.js.map +1 -1
  244. package/dist/index.js +17 -17
  245. package/dist/mockServiceWorker.js +6 -8
  246. package/dist/mocks/curation/mockCurationTask.d.ts +2 -2
  247. package/dist/mocks/curation/mockCurationTask.d.ts.map +1 -1
  248. package/dist/mocks/curation/mockCurationTask.js +9 -5
  249. package/dist/mocks/curation/mockCurationTask.js.map +1 -1
  250. package/dist/mocks/msw/handlers/featureFlagHandlers.d.ts +1 -1
  251. package/dist/mocks/msw/handlers/featureFlagHandlers.d.ts.map +1 -1
  252. package/dist/mocks/msw/handlers/featureFlagHandlers.js +1 -1
  253. package/dist/mocks/msw/handlers/featureFlagHandlers.js.map +1 -1
  254. package/dist/style/components/_cards.scss +0 -3
  255. package/dist/style/components/_data-grid-extra.scss +2 -2
  256. package/dist/style/components/_login.scss +6 -2
  257. package/dist/style/main.css +1 -1
  258. package/dist/synapse-client/SynapseClient.d.ts +2 -1
  259. package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
  260. package/dist/synapse-client/SynapseClient.js.map +1 -1
  261. package/dist/synapse-queries/QueryFilterUtils.js.map +1 -1
  262. package/dist/synapse-queries/curation/task/useCurationTask.d.ts +1 -0
  263. package/dist/synapse-queries/curation/task/useCurationTask.d.ts.map +1 -1
  264. package/dist/synapse-queries/curation/task/useCurationTask.js +16 -6
  265. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  266. package/dist/synapse-queries/dataaccess/useAccessRequirements.d.ts.map +1 -1
  267. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  268. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  269. package/dist/synapse-queries/featureflags/useGetFeatureFlag.d.ts +1 -1
  270. package/dist/synapse-queries/featureflags/useGetFeatureFlag.d.ts.map +1 -1
  271. package/dist/synapse-queries/featureflags/useGetFeatureFlag.js.map +1 -1
  272. package/dist/synapse-queries/file/useFiles.d.ts.map +1 -1
  273. package/dist/synapse-queries/file/useFiles.js.map +1 -1
  274. package/dist/synapse-queries/termsOfService/useTermsOfService.d.ts.map +1 -1
  275. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  276. package/dist/synapse-queries/user/useGetUserChallenges.d.ts.map +1 -1
  277. package/dist/synapse-queries/user/useGetUserChallenges.js.map +1 -1
  278. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  279. package/dist/theme/palette/Palettes.d.ts +2 -2
  280. package/dist/theme/palette/Palettes.d.ts.map +1 -1
  281. package/dist/theme/palette/Palettes.js +2 -2
  282. package/dist/theme/palette/Palettes.js.map +1 -1
  283. package/dist/tsconfig.build.tsbuildinfo +1 -1
  284. package/dist/types/ThemeTypes.d.ts +5 -6
  285. package/dist/utils/AppUtils/session/SynapseSessionManager.d.ts.map +1 -1
  286. package/dist/utils/AppUtils/session/SynapseSessionManager.js.map +1 -1
  287. package/dist/utils/featureflag/FeatureFlags.d.ts +13 -0
  288. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -0
  289. package/dist/utils/featureflag/FeatureFlags.js +8 -0
  290. package/dist/utils/featureflag/FeatureFlags.js.map +1 -0
  291. package/dist/utils/functions/SanitizeHtmlUtils.js.map +1 -1
  292. package/dist/utils/functions/queryUtils.js.map +1 -1
  293. package/dist/utils/hooks/useGetInfoFromIds.d.ts.map +1 -1
  294. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  295. package/dist/utils/slots/SlotUtils.d.ts.map +1 -1
  296. package/dist/utils/slots/SlotUtils.js.map +1 -1
  297. package/package.json +5 -6
@@ -11,17 +11,17 @@ function _(e) {
11
11
  return e.replace(/\s/g, "").toLowerCase();
12
12
  }
13
13
  function v(v) {
14
- let { filterIsActive: y, containerAs: b = "Collapsible", dropdownType: x = "Icon", hideCollapsible: S = !1, facetValues: C, onAddValueToSelection: w, onRemoveValueFromSelection: T, facetTitle: E, onRemoveAllFacetSelections: D, onHoverOverValue: O, canMultiSelect: k = !0, defaultShowAllValues: A = !1 } = v, [j, M] = o(A), [N, P] = o(!1), [F, I] = o(!1), [L, R] = o(""), z = C.length > g && C.slice(g).some(({ isSelected: e }) => e), B = b === "Dropdown" || j || F || z, V = i(() => F && L.length > 0 ? C.filter(({ displayText: e }) => e.toLowerCase().indexOf(L.trim().toLowerCase()) > -1) : B ? C : C.slice(0, g), [
15
- C,
16
- L,
17
- F,
18
- B
19
- ]), H = a(null), U = b === "Dropdown", W = !B && C.length > g, G = B && !L && !z && C.length > g, K = /* @__PURE__ */ h("div", {
20
- className: U ? "EnumFacetFilter__dropdown_menu" : "",
14
+ let { labelId: y, filterIsActive: b, containerAs: x = "Collapsible", dropdownType: S = "Icon", hideCollapsible: C = !1, facetValues: w, onAddValueToSelection: T, onRemoveValueFromSelection: E, facetTitle: D, onRemoveAllFacetSelections: O, onHoverOverValue: k, canMultiSelect: A = !0, defaultShowAllValues: j = !1 } = v, [M, N] = o(j), [P, F] = o(!1), [I, L] = o(!1), [R, z] = o(""), B = w.length > g && w.slice(g).some(({ isSelected: e }) => e), V = x === "Dropdown" || M || I || B, H = i(() => I && R.length > 0 ? w.filter(({ displayText: e }) => e.toLowerCase().indexOf(R.trim().toLowerCase()) > -1) : V ? w : w.slice(0, g), [
15
+ w,
16
+ R,
17
+ I,
18
+ V
19
+ ]), U = a(null), W = x === "Dropdown", G = !V && w.length > g, K = V && !R && !B && w.length > g, q = /* @__PURE__ */ h("div", {
20
+ className: W ? "EnumFacetFilter__dropdown_menu" : "",
21
21
  children: [/* @__PURE__ */ h("div", {
22
22
  className: "EnumFacetFilter__checkboxContainer--forAll",
23
23
  children: [/* @__PURE__ */ m(d, {
24
- sx: { display: F ? void 0 : "none" },
24
+ sx: { display: I ? void 0 : "none" },
25
25
  size: "small",
26
26
  fullWidth: !0,
27
27
  slotProps: { input: {
@@ -30,7 +30,7 @@ function v(v) {
30
30
  children: /* @__PURE__ */ m(u, {
31
31
  size: "small",
32
32
  onClick: () => {
33
- I(!1), M(A);
33
+ L(!1), N(j);
34
34
  },
35
35
  children: /* @__PURE__ */ m(e, {
36
36
  sx: { fontSize: "inherit" },
@@ -39,12 +39,12 @@ function v(v) {
39
39
  })
40
40
  })
41
41
  }),
42
- endAdornment: L.length > 0 && /* @__PURE__ */ m(f, {
42
+ endAdornment: R.length > 0 && /* @__PURE__ */ m(f, {
43
43
  title: "Clear",
44
44
  children: /* @__PURE__ */ m(u, {
45
45
  size: "small",
46
46
  onClick: () => {
47
- R(""), H.current?.focus();
47
+ z(""), U.current?.focus();
48
48
  },
49
49
  children: /* @__PURE__ */ m(e, {
50
50
  sx: { fontSize: "inherit" },
@@ -56,20 +56,20 @@ function v(v) {
56
56
  } },
57
57
  type: "text",
58
58
  placeholder: "Find values",
59
- value: L,
60
- ref: H,
59
+ value: R,
60
+ ref: U,
61
61
  onChange: (e) => {
62
- R(e.target.value);
62
+ z(e.target.value);
63
63
  }
64
- }), !F && /* @__PURE__ */ h("div", {
64
+ }), !I && /* @__PURE__ */ h("div", {
65
65
  className: "EnumFacetFilter__checkAll",
66
66
  children: [/* @__PURE__ */ m(l, {
67
67
  control: /* @__PURE__ */ m(s, {}),
68
68
  className: "EnumFacetFilter__checkbox",
69
69
  onChange: () => {
70
- y && D();
70
+ b && O();
71
71
  },
72
- checked: !y,
72
+ checked: !b,
73
73
  label: "All"
74
74
  }, "select_all"), /* @__PURE__ */ m(f, {
75
75
  title: "Search",
@@ -77,7 +77,7 @@ function v(v) {
77
77
  size: "small",
78
78
  sx: { aspectRatio: "1 / 1" },
79
79
  onClick: () => {
80
- R(""), I(!0), H.current?.focus();
80
+ z(""), L(!0), U.current?.focus();
81
81
  },
82
82
  children: /* @__PURE__ */ m(e, {
83
83
  sx: { fontSize: "inherit" },
@@ -88,44 +88,44 @@ function v(v) {
88
88
  })]
89
89
  })]
90
90
  }), /* @__PURE__ */ h("div", { children: [
91
- V.map((e, t) => {
91
+ H.map((e, t) => {
92
92
  let { isSelected: r, displayText: i, value: a, count: o } = e;
93
93
  return /* @__PURE__ */ m(n, {
94
94
  id: [
95
- _(E),
95
+ _(D),
96
96
  _(String(a)),
97
97
  t
98
98
  ].join("-"),
99
99
  label: i,
100
100
  count: o,
101
- isDropdown: U,
101
+ isDropdown: W,
102
102
  checked: r,
103
103
  onHover: () => {
104
- O(a);
104
+ k(a);
105
105
  },
106
106
  onChange: (e) => {
107
- e ? w(a) : T(a);
107
+ e ? T(a) : E(a);
108
108
  },
109
- inputType: k ? "checkbox" : "radio"
109
+ inputType: A ? "checkbox" : "radio"
110
110
  }, String(a));
111
111
  }),
112
- !U && /* @__PURE__ */ h(p, { children: [W && /* @__PURE__ */ m("button", {
112
+ !W && /* @__PURE__ */ h(p, { children: [G && /* @__PURE__ */ m("button", {
113
113
  className: "EnumFacetFilter__showMoreFacetsBtn",
114
- onClick: () => M(!0),
114
+ onClick: () => N(!0),
115
115
  children: /* @__PURE__ */ m("div", {
116
116
  className: "EnumFacetFilter__checkboxContainer",
117
117
  children: /* @__PURE__ */ h("div", {
118
118
  className: "EnumFacetFilter__showMoreFacetsLabel",
119
119
  children: [
120
120
  "Show all (",
121
- C.length,
121
+ w.length,
122
122
  ")"
123
123
  ]
124
124
  })
125
125
  })
126
- }), G && /* @__PURE__ */ m("button", {
126
+ }), K && /* @__PURE__ */ m("button", {
127
127
  className: "EnumFacetFilter__showMoreFacetsBtn",
128
- onClick: () => M(!1),
128
+ onClick: () => N(!1),
129
129
  children: /* @__PURE__ */ m("div", {
130
130
  className: "EnumFacetFilter__checkboxContainer",
131
131
  children: /* @__PURE__ */ m("div", {
@@ -134,27 +134,28 @@ function v(v) {
134
134
  })
135
135
  })
136
136
  })] }),
137
- V.length <= 0 && /* @__PURE__ */ m("div", {
137
+ H.length <= 0 && /* @__PURE__ */ m("div", {
138
138
  className: "EnumFacetFilter__noMatch",
139
139
  children: "No match found"
140
140
  })
141
141
  ] })]
142
- }), q = i(() => y ? y && V.filter((e) => e.isSelected).length === 1 ? V.filter((e) => e.isSelected)[0].displayText : "Multiple Values Selected" : "All", [y, V]);
143
- return U ? /* @__PURE__ */ m(r, {
144
- facetTitle: E,
145
- dropdownType: x,
146
- menuText: q,
147
- filterIsActive: y,
148
- children: K
142
+ }), J = i(() => b ? b && H.filter((e) => e.isSelected).length === 1 ? H.filter((e) => e.isSelected)[0].displayText : "Multiple Values Selected" : "All", [b, H]);
143
+ return W ? /* @__PURE__ */ m(r, {
144
+ facetTitle: D,
145
+ dropdownType: S,
146
+ menuText: J,
147
+ filterIsActive: b,
148
+ labelId: y,
149
+ children: q
149
150
  }) : /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(t, {
150
- hideCollapsible: S,
151
- isCollapsed: N,
152
- label: E,
153
- onClick: (e) => P(e)
151
+ hideCollapsible: C,
152
+ isCollapsed: P,
153
+ label: D,
154
+ onClick: (e) => F(e)
154
155
  }), /* @__PURE__ */ m(c, {
155
156
  className: "EnumFacetFilter",
156
- in: !N,
157
- children: K
157
+ in: !P,
158
+ children: q
158
159
  })] });
159
160
  }
160
161
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"EnumFacetFilterUI.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.tsx"],"sourcesContent":["import {\n Checkbox,\n Collapse,\n FormControlLabel,\n IconButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport { useMemo, useRef, useState } from 'react'\nimport { FacetColumnResultValueCount } from '@sage-bionetworks/synapse-types'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport { FacetFilterHeader } from '../FacetFilterHeader'\nimport { EnumFacetFilterOption } from './EnumFacetFilterOption'\nimport EnumFacetFilterDropdown from './EnumFacetFilterDropdown'\nimport { SetOptional } from 'type-fest'\n\nconst MAX_ENUMERATION_VALUES_TO_SHOW = 5\n\nexport type RenderedFacetValue<TValue = string> = Omit<\n SetOptional<FacetColumnResultValueCount, 'count'>,\n 'value'\n> & {\n value: TValue\n /* Text displayed for the option, and also used to filter in search */\n displayText: string\n}\n\nexport type EnumFacetFilterUIProps<TValue = string> = {\n /* The title of the faceted column to be displayed */\n facetTitle: string\n /* List of all facet values and information associated with each value */\n facetValues: RenderedFacetValue<TValue>[]\n /* Determines how the component is styled and whether the 'All' checkbox should be selected. */\n filterIsActive: boolean // filterIsActive cannot be derived from facetValues[*].isSelected. See PORTALS-2680\n /* The EnumFacetFilter can be rendered as a collapsible panel or a dropdown. Default is `'Collapsible'` */\n containerAs?: 'Collapsible' | 'Dropdown'\n /* If `containerAs` is a dropdown, the dropdown can be either an IconButton or a SelectBox. Default is `'Icon'` */\n dropdownType?: 'Icon' | 'SelectBox'\n /* If true, hides the button to collapse the panel (only shown if `containerAs` is 'Collapsible'). Default is false.*/\n hideCollapsible?: boolean\n /* Called when an unselected value is selected */\n onAddValueToSelection: (value: TValue) => void\n /* Called when a selected value is unselected */\n onRemoveValueFromSelection: (value: TValue) => void\n /* Called when all values should be unselected (e.g. 'All' is clicked) */\n onRemoveAllFacetSelections: () => void\n /* Called when an value is hovered over */\n onHoverOverValue: (value: TValue) => void\n /* Set to true if multiple values can be selected for the filter */\n canMultiSelect: boolean\n /* By default, all values are not shown (defaultShowAllValues = false) */\n defaultShowAllValues?: boolean\n}\n\nfunction removeWhitespace(value: string): string {\n return value.replace(/\\s/g, '').toLowerCase()\n}\n\nexport default function EnumFacetFilterUI<TValue = string>(\n props: EnumFacetFilterUIProps<TValue>,\n) {\n const {\n filterIsActive,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n facetValues,\n onAddValueToSelection,\n onRemoveValueFromSelection,\n facetTitle,\n onRemoveAllFacetSelections,\n onHoverOverValue,\n canMultiSelect = true,\n defaultShowAllValues = false,\n } = props\n const [toggleShowAll, setToggleShowAll] =\n useState<boolean>(defaultShowAllValues)\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n const [showSearch, setShowSearch] = useState<boolean>(false)\n const [searchTerm, setSearchText] = useState<string>('')\n\n // e.g. we show a subset of facet values before hiding the rest behind \"Show More\"\n // If the user has selected a value that would normally be hidden, always show all of the values\n const valueIndexedGreaterThanMaxToShowIsSelected =\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW &&\n facetValues\n .slice(MAX_ENUMERATION_VALUES_TO_SHOW)\n .some(({ isSelected }) => isSelected)\n const showAll =\n containerAs === 'Dropdown' ||\n toggleShowAll ||\n showSearch ||\n valueIndexedGreaterThanMaxToShowIsSelected\n\n const facetValuesToShow = useMemo(() => {\n if (showSearch && searchTerm.length > 0) {\n return facetValues.filter(({ displayText }) => {\n return (\n displayText.toLowerCase().indexOf(searchTerm.trim().toLowerCase()) >\n -1\n )\n })\n }\n if (showAll) {\n return facetValues\n }\n return facetValues.slice(0, MAX_ENUMERATION_VALUES_TO_SHOW)\n }, [facetValues, searchTerm, showSearch, showAll])\n\n const textInput = useRef<HTMLInputElement>(null)\n\n const isDropdown = containerAs === 'Dropdown'\n const showMoreButtonIsVisible =\n !showAll && facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n const showLessButtonIsVisible =\n showAll &&\n !searchTerm &&\n !valueIndexedGreaterThanMaxToShowIsSelected &&\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n\n const content = (\n <div className={isDropdown ? 'EnumFacetFilter__dropdown_menu' : ''}>\n <div className=\"EnumFacetFilter__checkboxContainer--forAll\">\n <TextField // Search Filter Text\n sx={{\n display: showSearch ? undefined : 'none',\n }}\n size={'small'}\n fullWidth={true}\n slotProps={{\n input: {\n startAdornment: (\n <Tooltip title={'Close search'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setShowSearch(false)\n setToggleShowAll(defaultShowAllValues)\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"arrowBack\"\n />\n </IconButton>\n </Tooltip>\n ),\n endAdornment: searchTerm.length > 0 && (\n <Tooltip title={'Clear'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setSearchText('')\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"close\"\n />\n </IconButton>\n </Tooltip>\n ),\n },\n }}\n type=\"text\"\n placeholder=\"Find values\"\n value={searchTerm}\n ref={textInput}\n onChange={e => {\n setSearchText(e.target.value)\n }}\n />\n {!showSearch && (\n <div className=\"EnumFacetFilter__checkAll\">\n <FormControlLabel\n control={<Checkbox />}\n className=\"EnumFacetFilter__checkbox\"\n onChange={() => {\n if (filterIsActive) {\n onRemoveAllFacetSelections()\n }\n }}\n key=\"select_all\"\n checked={!filterIsActive}\n label=\"All\"\n />\n <Tooltip title={'Search'}>\n <IconButton\n size={'small'}\n sx={{ aspectRatio: '1 / 1' }}\n onClick={() => {\n setSearchText('')\n setShowSearch(true)\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"search\"\n />\n </IconButton>\n </Tooltip>\n </div>\n )}\n </div>\n <div>\n {facetValuesToShow.map((facetValueAndCount, index: number) => {\n const { isSelected, displayText, value, count } = facetValueAndCount\n\n return (\n <EnumFacetFilterOption\n key={String(value)}\n id={[\n removeWhitespace(facetTitle),\n removeWhitespace(String(value)),\n index,\n ].join('-')}\n label={displayText}\n count={count}\n isDropdown={isDropdown}\n checked={isSelected}\n onHover={() => {\n onHoverOverValue(value)\n }}\n onChange={(newIsSelected: boolean) => {\n if (newIsSelected) {\n onAddValueToSelection(value)\n } else {\n onRemoveValueFromSelection(value)\n }\n }}\n inputType={canMultiSelect ? 'checkbox' : 'radio'}\n />\n )\n })}\n {!isDropdown && (\n <>\n {showMoreButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(true)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show all ({facetValues.length})\n </div>\n </div>\n </button>\n )}\n {showLessButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(false)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show less\n </div>\n </div>\n </button>\n )}\n </>\n )}\n {facetValuesToShow.length <= 0 && (\n <div className=\"EnumFacetFilter__noMatch\">No match found</div>\n )}\n </div>\n </div>\n )\n\n const menuText = useMemo(() => {\n if (!filterIsActive) {\n return 'All'\n } else if (\n filterIsActive &&\n facetValuesToShow.filter(item => item.isSelected).length === 1\n ) {\n return facetValuesToShow.filter(item => item.isSelected)[0].displayText\n } else {\n return 'Multiple Values Selected'\n }\n }, [filterIsActive, facetValuesToShow])\n\n if (isDropdown) {\n return (\n <EnumFacetFilterDropdown\n facetTitle={facetTitle}\n dropdownType={dropdownType}\n menuText={menuText}\n filterIsActive={filterIsActive}\n >\n {content}\n </EnumFacetFilterDropdown>\n )\n } else {\n return (\n <>\n <FacetFilterHeader\n hideCollapsible={hideCollapsible}\n isCollapsed={isCollapsed}\n label={facetTitle}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n />\n <Collapse className=\"EnumFacetFilter\" in={!isCollapsed}>\n {content}\n </Collapse>\n </>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EnumFacetFilterUI.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.tsx"],"sourcesContent":["import {\n Checkbox,\n Collapse,\n FormControlLabel,\n IconButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport { useMemo, useRef, useState } from 'react'\nimport { FacetColumnResultValueCount } from '@sage-bionetworks/synapse-types'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport { FacetFilterHeader } from '../FacetFilterHeader'\nimport { EnumFacetFilterOption } from './EnumFacetFilterOption'\nimport EnumFacetFilterDropdown from './EnumFacetFilterDropdown'\nimport { SetOptional } from 'type-fest'\n\nconst MAX_ENUMERATION_VALUES_TO_SHOW = 5\n\nexport type RenderedFacetValue<TValue = string> = Omit<\n SetOptional<FacetColumnResultValueCount, 'count'>,\n 'value'\n> & {\n value: TValue\n /* Text displayed for the option, and also used to filter in search */\n displayText: string\n}\n\nexport type EnumFacetFilterUIProps<TValue = string> = {\n /* The ID of the corresponding label, for testing and accessibility */\n labelId?: string\n /* The title of the faceted column to be displayed */\n facetTitle: string\n /* List of all facet values and information associated with each value */\n facetValues: RenderedFacetValue<TValue>[]\n /* Determines how the component is styled and whether the 'All' checkbox should be selected. */\n filterIsActive: boolean // filterIsActive cannot be derived from facetValues[*].isSelected. See PORTALS-2680\n /* The EnumFacetFilter can be rendered as a collapsible panel or a dropdown. Default is `'Collapsible'` */\n containerAs?: 'Collapsible' | 'Dropdown'\n /* If `containerAs` is a dropdown, the dropdown can be either an IconButton or a SelectBox. Default is `'Icon'` */\n dropdownType?: 'Icon' | 'SelectBox'\n /* If true, hides the button to collapse the panel (only shown if `containerAs` is 'Collapsible'). Default is false.*/\n hideCollapsible?: boolean\n /* Called when an unselected value is selected */\n onAddValueToSelection: (value: TValue) => void\n /* Called when a selected value is unselected */\n onRemoveValueFromSelection: (value: TValue) => void\n /* Called when all values should be unselected (e.g. 'All' is clicked) */\n onRemoveAllFacetSelections: () => void\n /* Called when an value is hovered over */\n onHoverOverValue: (value: TValue) => void\n /* Set to true if multiple values can be selected for the filter */\n canMultiSelect: boolean\n /* By default, all values are not shown (defaultShowAllValues = false) */\n defaultShowAllValues?: boolean\n}\n\nfunction removeWhitespace(value: string): string {\n return value.replace(/\\s/g, '').toLowerCase()\n}\n\nexport default function EnumFacetFilterUI<TValue = string>(\n props: EnumFacetFilterUIProps<TValue>,\n) {\n const {\n labelId,\n filterIsActive,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n facetValues,\n onAddValueToSelection,\n onRemoveValueFromSelection,\n facetTitle,\n onRemoveAllFacetSelections,\n onHoverOverValue,\n canMultiSelect = true,\n defaultShowAllValues = false,\n } = props\n const [toggleShowAll, setToggleShowAll] =\n useState<boolean>(defaultShowAllValues)\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n const [showSearch, setShowSearch] = useState<boolean>(false)\n const [searchTerm, setSearchText] = useState<string>('')\n\n // e.g. we show a subset of facet values before hiding the rest behind \"Show More\"\n // If the user has selected a value that would normally be hidden, always show all of the values\n const valueIndexedGreaterThanMaxToShowIsSelected =\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW &&\n facetValues\n .slice(MAX_ENUMERATION_VALUES_TO_SHOW)\n .some(({ isSelected }) => isSelected)\n const showAll =\n containerAs === 'Dropdown' ||\n toggleShowAll ||\n showSearch ||\n valueIndexedGreaterThanMaxToShowIsSelected\n\n const facetValuesToShow = useMemo(() => {\n if (showSearch && searchTerm.length > 0) {\n return facetValues.filter(({ displayText }) => {\n return (\n displayText.toLowerCase().indexOf(searchTerm.trim().toLowerCase()) >\n -1\n )\n })\n }\n if (showAll) {\n return facetValues\n }\n return facetValues.slice(0, MAX_ENUMERATION_VALUES_TO_SHOW)\n }, [facetValues, searchTerm, showSearch, showAll])\n\n const textInput = useRef<HTMLInputElement>(null)\n\n const isDropdown = containerAs === 'Dropdown'\n const showMoreButtonIsVisible =\n !showAll && facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n const showLessButtonIsVisible =\n showAll &&\n !searchTerm &&\n !valueIndexedGreaterThanMaxToShowIsSelected &&\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n\n const content = (\n <div className={isDropdown ? 'EnumFacetFilter__dropdown_menu' : ''}>\n <div className=\"EnumFacetFilter__checkboxContainer--forAll\">\n <TextField // Search Filter Text\n sx={{\n display: showSearch ? undefined : 'none',\n }}\n size={'small'}\n fullWidth={true}\n slotProps={{\n input: {\n startAdornment: (\n <Tooltip title={'Close search'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setShowSearch(false)\n setToggleShowAll(defaultShowAllValues)\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"arrowBack\"\n />\n </IconButton>\n </Tooltip>\n ),\n endAdornment: searchTerm.length > 0 && (\n <Tooltip title={'Clear'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setSearchText('')\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"close\"\n />\n </IconButton>\n </Tooltip>\n ),\n },\n }}\n type=\"text\"\n placeholder=\"Find values\"\n value={searchTerm}\n ref={textInput}\n onChange={e => {\n setSearchText(e.target.value)\n }}\n />\n {!showSearch && (\n <div className=\"EnumFacetFilter__checkAll\">\n <FormControlLabel\n control={<Checkbox />}\n className=\"EnumFacetFilter__checkbox\"\n onChange={() => {\n if (filterIsActive) {\n onRemoveAllFacetSelections()\n }\n }}\n key=\"select_all\"\n checked={!filterIsActive}\n label=\"All\"\n />\n <Tooltip title={'Search'}>\n <IconButton\n size={'small'}\n sx={{ aspectRatio: '1 / 1' }}\n onClick={() => {\n setSearchText('')\n setShowSearch(true)\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"search\"\n />\n </IconButton>\n </Tooltip>\n </div>\n )}\n </div>\n <div>\n {facetValuesToShow.map((facetValueAndCount, index: number) => {\n const { isSelected, displayText, value, count } = facetValueAndCount\n\n return (\n <EnumFacetFilterOption\n key={String(value)}\n id={[\n removeWhitespace(facetTitle),\n removeWhitespace(String(value)),\n index,\n ].join('-')}\n label={displayText}\n count={count}\n isDropdown={isDropdown}\n checked={isSelected}\n onHover={() => {\n onHoverOverValue(value)\n }}\n onChange={(newIsSelected: boolean) => {\n if (newIsSelected) {\n onAddValueToSelection(value)\n } else {\n onRemoveValueFromSelection(value)\n }\n }}\n inputType={canMultiSelect ? 'checkbox' : 'radio'}\n />\n )\n })}\n {!isDropdown && (\n <>\n {showMoreButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(true)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show all ({facetValues.length})\n </div>\n </div>\n </button>\n )}\n {showLessButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(false)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show less\n </div>\n </div>\n </button>\n )}\n </>\n )}\n {facetValuesToShow.length <= 0 && (\n <div className=\"EnumFacetFilter__noMatch\">No match found</div>\n )}\n </div>\n </div>\n )\n\n const menuText = useMemo(() => {\n if (!filterIsActive) {\n return 'All'\n } else if (\n filterIsActive &&\n facetValuesToShow.filter(item => item.isSelected).length === 1\n ) {\n return facetValuesToShow.filter(item => item.isSelected)[0].displayText\n } else {\n return 'Multiple Values Selected'\n }\n }, [filterIsActive, facetValuesToShow])\n\n if (isDropdown) {\n return (\n <EnumFacetFilterDropdown\n facetTitle={facetTitle}\n dropdownType={dropdownType}\n menuText={menuText}\n filterIsActive={filterIsActive}\n labelId={labelId}\n >\n {content}\n </EnumFacetFilterDropdown>\n )\n } else {\n return (\n <>\n <FacetFilterHeader\n hideCollapsible={hideCollapsible}\n isCollapsed={isCollapsed}\n label={facetTitle}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n />\n <Collapse className=\"EnumFacetFilter\" in={!isCollapsed}>\n {content}\n </Collapse>\n </>\n )\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { CurationTask } from '@sage-bionetworks/synapse-client';
2
+ export type CreateOrUpdateCurationTaskDialogProps = {
3
+ open: boolean;
4
+ onCancel: () => void;
5
+ onSuccess: (task: CurationTask) => void;
6
+ projectId: string;
7
+ task?: CurationTask;
8
+ };
9
+ /**
10
+ * Dialog component that guides a user through creating a new CurationTask or editing an existing one.
11
+ */
12
+ export default function CreateOrUpdateCurationTaskDialog(props: CreateOrUpdateCurationTaskDialogProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=CreateOrUpdateCurationTaskDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateOrUpdateCurationTaskDialog.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.tsx"],"names":[],"mappings":"AAgCA,OAAO,EACL,YAAY,EAKb,MAAM,kCAAkC,CAAA;AAmCzC,MAAM,MAAM,qCAAqC,GAAG;IAClD,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB,CAAA;AAsBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,gCAAgC,CACtD,KAAK,EAAE,qCAAqC,2CAwgB7C"}
@@ -0,0 +1,398 @@
1
+ import { EntityTypeGroup as e } from "../../../../utils/functions/EntityTypeUtils.js";
2
+ import { DialogBase as t } from "../../../../components/DialogBase.js";
3
+ import n from "../../../../components/TextField/TextField.js";
4
+ import "../../../../components/TextField/index.js";
5
+ import r from "../../../../components/UserOrTeamBadge/UserOrTeamBadge.js";
6
+ import i from "../../../../components/UserSearchBox/UserSearchBox.js";
7
+ import { VersionSelectionType as a } from "../../../../components/EntityFinder/VersionSelectionType.js";
8
+ import { FinderScope as o } from "../../../../components/EntityFinder/tree/EntityTree.js";
9
+ import s from "../../../../components/WizardChoiceButton/WizardChoiceButton.js";
10
+ import ee from "../../../../components/WizardChoiceButton/WizardChoiceButtonGroup.js";
11
+ import { useCreateCurationTask as te, useUpdateCurationTask as ne } from "../../../../synapse-queries/curation/task/useCurationTask.js";
12
+ import { ASSIGNEE_TOOLTIP as re, AUTH_MODE_NONE_TITLE as ie, AUTH_MODE_NONE_TOOLTIP as ae, AUTH_MODE_SESSION_OWNER_TITLE as oe, AUTH_MODE_SESSION_OWNER_TOOLTIP as se, AUTH_MODE_SOURCE_BENEFACTOR_TITLE as ce, AUTH_MODE_SOURCE_BENEFACTOR_TOOLTIP as le, COLLABORATORS_TOOLTIP as ue, CREATE_CURATION_TASK_DIALOG_TITLE as de, EDIT_CURATION_TASK_DIALOG_TITLE as fe, FILE_BASED_FILE_VIEW_INPUT_DESCRIPTION as pe, FILE_BASED_TASK_DESCRIPTION as me, FILE_BASED_TASK_TITLE as he, FILE_BASED_UPLOAD_FOLDER_INPUT_DESCRIPTION as ge, FILE_VIEW_FINDER_PROMPT as _e, FILE_VIEW_FINDER_TITLE as ve, RECORD_BASED_RECORD_SET_INPUT_DESCRIPTION as ye, RECORD_BASED_TASK_DESCRIPTION as be, RECORD_BASED_TASK_TITLE as xe, RECORD_SET_FINDER_PROMPT as Se, RECORD_SET_FINDER_TITLE as Ce, SELECT_TASK_TYPE_DESCRIPTION as we, TASK_INSTRUCTIONS_INPUT_DESCRIPTION as Te, TASK_NAME_INPUT_DESCRIPTION as Ee, UPLOAD_FOLDER_FINDER_PROMPT as De, UPLOAD_FOLDER_FINDER_TITLE as Oe } from "../utils/constants.js";
13
+ import c from "../../../../components/EntityFinder/EntityIdTextField.js";
14
+ import { useState as l } from "react";
15
+ import { Alert as u, Box as d, Button as f, FormControl as ke, FormControlLabel as p, FormLabel as Ae, Grid as m, IconButton as je, InputLabel as h, Radio as g, RadioGroup as Me, Stack as _, Tooltip as v, Typography as y } from "@mui/material";
16
+ import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
17
+ import { TYPE_FILTER as C } from "@sage-bionetworks/synapse-types";
18
+ import { EntityType as w, FileBasedMetadataTaskPropertiesConcreteTypeEnum as T, RecordBasedMetadataTaskPropertiesConcreteTypeEnum as E } from "@sage-bionetworks/synapse-client";
19
+ import { HelpTwoTone as D } from "@mui/icons-material";
20
+ import Ne from "@mui/icons-material/Close";
21
+ //#region src/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.tsx
22
+ var O = T.org_sagebionetworks_repo_model_curation_metadata_FileBasedMetadataTaskProperties, k = E.org_sagebionetworks_repo_model_curation_metadata_RecordBasedMetadataTaskProperties;
23
+ function Pe(e) {
24
+ return e === "SESSION_OWNER" || e === "SOURCE_BENEFACTOR" ? e : "NONE";
25
+ }
26
+ function A(T) {
27
+ let { open: E, onCancel: A, onSuccess: j, projectId: Fe, task: M } = T, N = M !== void 0, [P, F] = l(() => M ? "COMMON_MUTABLE_FIELDS" : "SELECT_TYPE"), [I, L] = l(() => {
28
+ let e = M?.taskProperties?.concreteType;
29
+ return e === O || e === k ? e : null;
30
+ }), [R, Ie] = l(() => M?.dataType ?? ""), [z, Le] = l(() => M?.instructions ?? ""), [B, Re] = l(() => M?.assigneePrincipalId), V = Pe(M?.taskProperties?.suggestedAuthorizationMode), [H, ze] = l(V), [Be] = l(V), [U, Ve] = l(() => {
31
+ let e = M?.taskProperties;
32
+ return e?.concreteType === O ? e.uploadFolderId ?? "" : "";
33
+ }), [W, He] = l(() => {
34
+ let e = M?.taskProperties;
35
+ return e?.concreteType === O ? e.fileViewId ?? "" : "";
36
+ }), [G, Ue] = l(() => {
37
+ let e = M?.taskProperties;
38
+ return e?.concreteType === k ? e.recordSetId ?? "" : "";
39
+ }), [K, q] = l(() => M?.taskProperties?.collaboratorPrincipalIds ?? []), [J, Y] = l(null), { mutate: We, isPending: Ge, error: Ke } = te({ onSuccess: (e) => {
40
+ j(e);
41
+ } }), { mutate: qe, isPending: Je, error: Ye } = ne({ onSuccess: (e) => {
42
+ j(e);
43
+ } }), X = Ge || Je, Z = Ke ?? Ye, Xe = I === O && U && W || I === k && G;
44
+ function Ze() {
45
+ let e = H === "NONE" ? void 0 : H, t = I, n, r = K.length > 0 ? K : void 0;
46
+ return n = t === O ? {
47
+ concreteType: O,
48
+ uploadFolderId: U || void 0,
49
+ fileViewId: W || void 0,
50
+ suggestedAuthorizationMode: e,
51
+ collaboratorPrincipalIds: r
52
+ } : {
53
+ concreteType: k,
54
+ recordSetId: G || void 0,
55
+ suggestedAuthorizationMode: e,
56
+ collaboratorPrincipalIds: r
57
+ }, {
58
+ ...N ? M : {},
59
+ projectId: Fe,
60
+ dataType: R || void 0,
61
+ instructions: z || void 0,
62
+ assigneePrincipalId: B || void 0,
63
+ taskProperties: n
64
+ };
65
+ }
66
+ function Qe() {
67
+ let e = Ze();
68
+ N ? qe(e) : We(e);
69
+ }
70
+ let $e = N && H !== Be, et = /* @__PURE__ */ S(ke, { children: [/* @__PURE__ */ x(Ae, { children: "Authorization Mode" }), /* @__PURE__ */ S(Me, {
71
+ value: H,
72
+ onChange: (e, t) => ze(t),
73
+ children: [
74
+ /* @__PURE__ */ x(p, {
75
+ value: "NONE",
76
+ control: /* @__PURE__ */ x(g, {}),
77
+ label: /* @__PURE__ */ S(d, {
78
+ sx: {
79
+ display: "flex",
80
+ alignItems: "center",
81
+ gap: .5
82
+ },
83
+ children: [/* @__PURE__ */ x(y, {
84
+ variant: "body1",
85
+ children: ie
86
+ }), /* @__PURE__ */ x(v, {
87
+ title: ae,
88
+ children: /* @__PURE__ */ x(D, { sx: { color: "grey.700" } })
89
+ })]
90
+ })
91
+ }),
92
+ /* @__PURE__ */ x(p, {
93
+ value: "SESSION_OWNER",
94
+ control: /* @__PURE__ */ x(g, {}),
95
+ label: /* @__PURE__ */ S(d, {
96
+ sx: {
97
+ display: "flex",
98
+ alignItems: "center",
99
+ gap: .5
100
+ },
101
+ children: [/* @__PURE__ */ x(y, {
102
+ variant: "body1",
103
+ children: oe
104
+ }), /* @__PURE__ */ x(v, {
105
+ title: se,
106
+ children: /* @__PURE__ */ x(D, { sx: { color: "grey.700" } })
107
+ })]
108
+ })
109
+ }),
110
+ /* @__PURE__ */ x(p, {
111
+ value: "SOURCE_BENEFACTOR",
112
+ control: /* @__PURE__ */ x(g, {}),
113
+ label: /* @__PURE__ */ S(d, {
114
+ sx: {
115
+ display: "flex",
116
+ alignItems: "center",
117
+ gap: .5
118
+ },
119
+ children: [/* @__PURE__ */ x(y, {
120
+ variant: "body1",
121
+ children: ce
122
+ }), /* @__PURE__ */ x(v, {
123
+ title: le,
124
+ children: /* @__PURE__ */ x(D, { sx: { color: "grey.700" } })
125
+ })]
126
+ })
127
+ })
128
+ ]
129
+ })] }), tt = /* @__PURE__ */ S(d, { children: [/* @__PURE__ */ S(d, {
130
+ sx: {
131
+ display: "flex",
132
+ alignItems: "center",
133
+ gap: .5
134
+ },
135
+ children: [/* @__PURE__ */ x(h, {
136
+ htmlFor: "dlg-set-task-assignee",
137
+ children: "Assignee"
138
+ }), /* @__PURE__ */ x(v, {
139
+ title: re,
140
+ children: /* @__PURE__ */ x("div", { children: /* @__PURE__ */ x(D, { sx: { color: "grey.700" } }) })
141
+ })]
142
+ }), /* @__PURE__ */ x(i, {
143
+ inputId: "dlg-set-task-assignee",
144
+ defaultValue: B,
145
+ onChange: (e) => Re(e ?? void 0),
146
+ typeFilter: C.ALL
147
+ }, E.toString())] }), nt = /* @__PURE__ */ S(_, {
148
+ gap: 2,
149
+ children: [
150
+ /* @__PURE__ */ x(n, {
151
+ label: "Task Name",
152
+ fullWidth: !0,
153
+ value: R,
154
+ onChange: (e) => Ie(e.target.value),
155
+ required: !0,
156
+ description: Ee
157
+ }),
158
+ /* @__PURE__ */ x(n, {
159
+ label: "Instructions",
160
+ fullWidth: !0,
161
+ multiline: !0,
162
+ minRows: 3,
163
+ value: z,
164
+ onChange: (e) => Le(e.target.value),
165
+ description: Te
166
+ }),
167
+ /* @__PURE__ */ S(d, {
168
+ display: "none",
169
+ children: [/* @__PURE__ */ S(d, {
170
+ sx: {
171
+ display: "flex",
172
+ alignItems: "center",
173
+ gap: .5
174
+ },
175
+ children: [/* @__PURE__ */ x(h, { children: "Collaborators" }), /* @__PURE__ */ x(v, {
176
+ title: ue,
177
+ children: /* @__PURE__ */ x("div", { children: /* @__PURE__ */ x(D, { sx: { color: "grey.700" } }) })
178
+ })]
179
+ }), /* @__PURE__ */ S(_, {
180
+ gap: 1,
181
+ children: [/* @__PURE__ */ S(_, {
182
+ direction: "row",
183
+ gap: 1,
184
+ alignItems: "center",
185
+ children: [/* @__PURE__ */ x(d, {
186
+ flex: 1,
187
+ children: /* @__PURE__ */ x(i, {
188
+ value: J,
189
+ onChange: (e) => Y(e),
190
+ typeFilter: C.ALL,
191
+ placeholder: "Search for a user or team"
192
+ })
193
+ }), /* @__PURE__ */ x(f, {
194
+ variant: "outlined",
195
+ onClick: () => {
196
+ J && !K.includes(J) && q((e) => [...e, J]), Y(null);
197
+ },
198
+ disabled: !J,
199
+ children: "Add"
200
+ })]
201
+ }), K.map((e) => /* @__PURE__ */ S(_, {
202
+ direction: "row",
203
+ alignItems: "center",
204
+ justifyContent: "space-between",
205
+ children: [/* @__PURE__ */ x(r, { principalId: e }), /* @__PURE__ */ x(je, {
206
+ size: "small",
207
+ onClick: () => q((t) => t.filter((t) => t !== e)),
208
+ children: /* @__PURE__ */ x(Ne, { fontSize: "small" })
209
+ })]
210
+ }, e))]
211
+ })]
212
+ })
213
+ ]
214
+ }), rt = /* @__PURE__ */ S(_, {
215
+ gap: 2,
216
+ children: [/* @__PURE__ */ x(c, {
217
+ label: "Upload Folder ID",
218
+ value: U,
219
+ description: ge,
220
+ onChange: Ve,
221
+ disabled: N,
222
+ entityFinderModalProps: {
223
+ title: Oe,
224
+ promptCopy: De,
225
+ confirmButtonCopy: "Select",
226
+ configuration: {
227
+ initialScope: o.ALL_PROJECTS,
228
+ initialContainer: "root",
229
+ selectMultiple: !1,
230
+ treeOnly: !1,
231
+ versionSelection: a.DISALLOWED,
232
+ selectableTypes: e.CONTAINER
233
+ }
234
+ }
235
+ }), /* @__PURE__ */ x(c, {
236
+ label: "File View ID",
237
+ value: W,
238
+ description: pe,
239
+ onChange: He,
240
+ disabled: N,
241
+ entityFinderModalProps: {
242
+ title: ve,
243
+ promptCopy: _e,
244
+ confirmButtonCopy: "Select",
245
+ configuration: {
246
+ initialScope: o.ALL_PROJECTS,
247
+ initialContainer: "root",
248
+ selectMultiple: !1,
249
+ treeOnly: !1,
250
+ versionSelection: a.DISALLOWED,
251
+ selectableTypes: [w.entityview]
252
+ }
253
+ }
254
+ })]
255
+ }), it = /* @__PURE__ */ x(c, {
256
+ label: "Record Set ID",
257
+ value: G,
258
+ description: ye,
259
+ onChange: Ue,
260
+ disabled: N,
261
+ entityFinderModalProps: {
262
+ title: Ce,
263
+ promptCopy: Se,
264
+ confirmButtonCopy: "Select",
265
+ configuration: {
266
+ initialScope: o.ALL_PROJECTS,
267
+ initialContainer: "root",
268
+ selectMultiple: !1,
269
+ treeOnly: !1,
270
+ versionSelection: a.DISALLOWED,
271
+ selectableTypes: [w.recordset]
272
+ }
273
+ }
274
+ }), at = /* @__PURE__ */ S(_, {
275
+ gap: 2,
276
+ children: [/* @__PURE__ */ x(y, {
277
+ variant: "body1",
278
+ children: we
279
+ }), /* @__PURE__ */ S(ee, { children: [/* @__PURE__ */ x(s, {
280
+ title: he,
281
+ description: me,
282
+ onClick: () => {
283
+ L(O), F("TYPE_SPECIFIC_FIELDS");
284
+ }
285
+ }), /* @__PURE__ */ x(s, {
286
+ title: xe,
287
+ description: be,
288
+ onClick: () => {
289
+ L(k), F("TYPE_SPECIFIC_FIELDS");
290
+ }
291
+ })] })]
292
+ }), ot = /* @__PURE__ */ S(_, {
293
+ gap: 2,
294
+ children: [I === O && rt, I === k && it]
295
+ }), st = /* @__PURE__ */ S(_, {
296
+ gap: 3,
297
+ children: [
298
+ /* @__PURE__ */ S(m, {
299
+ container: !0,
300
+ spacing: 3,
301
+ alignItems: "flex-start",
302
+ children: [/* @__PURE__ */ x(m, {
303
+ size: {
304
+ xs: 12,
305
+ sm: 6
306
+ },
307
+ children: /* @__PURE__ */ x(_, {
308
+ gap: 2,
309
+ children: nt
310
+ })
311
+ }), /* @__PURE__ */ x(m, {
312
+ size: {
313
+ xs: 12,
314
+ sm: 6
315
+ },
316
+ children: /* @__PURE__ */ S(_, {
317
+ gap: 3,
318
+ children: [tt, et]
319
+ })
320
+ })]
321
+ }),
322
+ N && I === null && /* @__PURE__ */ x(u, {
323
+ severity: "error",
324
+ children: "This task has an unrecognized task type and cannot be edited here."
325
+ }),
326
+ $e && /* @__PURE__ */ x(u, {
327
+ severity: "warning",
328
+ children: "Changing the Authorization Mode will clear the active session ID on this task. Any in-progress grid session linked to this task will no longer be associated with it."
329
+ }),
330
+ Z && /* @__PURE__ */ x(u, {
331
+ severity: "error",
332
+ children: Z.reason ?? "An error occurred. Please try again."
333
+ })
334
+ ]
335
+ }), ct = N ? fe : de, Q = null;
336
+ switch (P) {
337
+ case "SELECT_TYPE":
338
+ Q = at;
339
+ break;
340
+ case "TYPE_SPECIFIC_FIELDS":
341
+ Q = ot;
342
+ break;
343
+ case "COMMON_MUTABLE_FIELDS":
344
+ Q = st;
345
+ break;
346
+ }
347
+ let $ = null;
348
+ switch (P) {
349
+ case "SELECT_TYPE":
350
+ $ = null;
351
+ break;
352
+ case "TYPE_SPECIFIC_FIELDS":
353
+ $ = /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(f, {
354
+ variant: "outlined",
355
+ onClick: () => F("SELECT_TYPE"),
356
+ disabled: X,
357
+ children: "Back"
358
+ }), /* @__PURE__ */ x(f, {
359
+ variant: "contained",
360
+ onClick: () => F("COMMON_MUTABLE_FIELDS"),
361
+ disabled: X || !Xe,
362
+ children: "Next"
363
+ })] });
364
+ break;
365
+ case "COMMON_MUTABLE_FIELDS":
366
+ $ = /* @__PURE__ */ S(b, { children: [!N && /* @__PURE__ */ x(f, {
367
+ variant: "outlined",
368
+ onClick: () => F("TYPE_SPECIFIC_FIELDS"),
369
+ disabled: X,
370
+ children: "Back"
371
+ }), /* @__PURE__ */ x(f, {
372
+ variant: "contained",
373
+ onClick: Qe,
374
+ disabled: X || I === null,
375
+ children: "Save"
376
+ })] });
377
+ break;
378
+ }
379
+ return /* @__PURE__ */ x(t, {
380
+ open: E,
381
+ title: ct,
382
+ maxWidth: "md",
383
+ fullWidth: !0,
384
+ onCancel: A,
385
+ content: Q,
386
+ actions: /* @__PURE__ */ x(_, {
387
+ direction: "row",
388
+ gap: 1,
389
+ justifyContent: "flex-end",
390
+ width: "100%",
391
+ children: $
392
+ })
393
+ });
394
+ }
395
+ //#endregion
396
+ export { A as default };
397
+
398
+ //# sourceMappingURL=CreateOrUpdateCurationTaskDialog.js.map